ChangeLog-2013-04-24 [plain text]
2013-04-24 Arvid Nilsson <anilsson@rim.com>
[BlackBerry] Remove the setContentsToColor flavor of LayerTiler::TextureJob
https://bugs.webkit.org/show_bug.cgi?id=115092
Reviewed by Carlos Garcia Campos.
With the Skia backend, we had an optimization to detect solid color
layers. The Skia code has been purged, but these bits remained. With
BlackBerry::Platform::Graphics::PlatformGraphicsContext, only the solid
color will be drawn anyway, so we don't need to detect such layers at
the WebCore level. Fixed by removing the setContentsToColor flavor of
LayerTiler::TextureJob.
BlackBerry::WebKit::WebOverlay still uses
TextureCacheCompositingThread::textureForColor() so that one can stay
for now.
This was dead code so no new tests.
* platform/graphics/blackberry/LayerTile.cpp:
* platform/graphics/blackberry/LayerTile.h:
(LayerTile):
* platform/graphics/blackberry/LayerTiler.cpp:
(WebCore::LayerTiler::processTextureJob):
(WebCore::LayerTiler::performTileJob):
* platform/graphics/blackberry/LayerTiler.h:
(WebCore::LayerTiler::TextureJob::setContents):
(TextureJob):
2013-04-24 Zan Dobersek <zdobersek@igalia.com>
[GTK] Move image decoders, some other GStreamer, Cairo and Soup sources to libPlatform
https://bugs.webkit.org/show_bug.cgi?id=115050
Reviewed by Martin Robinson.
No new tests - no new functionality.
* GNUmakefile.list.am: Move the image decoders source files and a couple of GStreamer, Cairo and Libsoup source
files under the libPlatform's list of files to build. All of these are already free of platform layer violations.
2013-04-23 Kent Tamura <tkent@chromium.org>
Remove TextFieldDecoration feature
https://bugs.webkit.org/show_bug.cgi?id=115068
Reviewed by Andreas Kling.
Only Chromium port used this feature.
* dom/Element.h: Remove isTextFieldDecoration.
* html/InputType.cpp:
(WebCore::InputType::destroyShadowSubtree):
Update a comment.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::createShadowSubtree):
Remove call sites of willAddTextFieldDecorationsTo and addTextFieldDecorationsTo.
* html/shadow/TextFieldDecorationElement.cpp: Removed.
* html/shadow/TextFieldDecorationElement.h: Removed.
* page/ChromeClient.h:
(ChromeClient): Remove willAddTextFieldDecorationsTo and
addTextFieldDecorationsTo
2013-04-23 Andreas Kling <akling@apple.com>
Micro-optimize Length::initFromLength().
<http://webkit.org/b/115073>
From Blink r148621 by <timloh@chromium.org>:
This appears to improve html5-full-render by 1-2% on my system (gcc 4.6.3) by using memcpy
instead of copying members (and branching to copy the union).
* platform/Length.h:
(WebCore::Length::initFromLength):
2013-04-23 Kent Tamura <tkent@chromium.org>
Add missing copyright header to ColorChooserClient.h
https://bugs.webkit.org/show_bug.cgi?id=115067
Reviewed by Andreas Kling.
* platform/ColorChooserClient.h:
This was added in 2011 by a Google employee.
http://trac.webkit.org/changeset/103168
2013-04-23 Andreas Kling <akling@apple.com>
Call the correct superclass in RenderSlider::layout().
<http://webkit.org/b/115071>
From Blink r147850 by <cbiesinger@chromium.org>:
The superclass is RenderFlexibleBox, not RenderBlock.
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::layout):
2013-04-23 Mihai Tica <mitica@adobe.com>
Add platform support for -webkit-background-blend-mode to CG context with background color
https://bugs.webkit.org/show_bug.cgi?id=114412
Reviewed by Darin Adler.
Tests: css3/compositing/effect-background-blend-mode-color.html, css3/compositing/effect-background-blend-mode-color2.html
This patch adds support for blending on background colors to the Core Graphics port of WebKit.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::fillRoundedRect):
* platform/graphics/GraphicsContext.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
2013-04-23 Ryosuke Niwa <rniwa@webkit.org>
Remove an unused member variable erroneously added in r149007.
* rendering/LogicalSelectionOffsetCaches.h:
(WebCore::LogicalSelectionOffsetCaches::LogicalSelectionOffsetCaches):
(LogicalSelectionOffsetCaches):
2013-04-22 Ryosuke Niwa <rniwa@webkit.org>
logicalLeftSelectionGap and logicalRightSelectionGap call availableLogicalWidth() multiple times
https://bugs.webkit.org/show_bug.cgi?id=113479
Reviewed by David Hyatt.
Introduced LogicalSelectionOffsetCaches to cache the containing blocks and their logical left and right
selection offsets in computing selection gaps. An instance of this class stores the containing block for
each position type and caches their logical selection offsets when none of their block ancestors up until
its nearest selection root do no have any floating objects or regions and exclusions.
When blockSelectionGaps recurses to another level, it creates a new cache instance by "inheriting"
(like RenderStyle) from the old cache, overriding those containing blocks that are replaced by "this".
This eliminates the need to traverse containing block ancestors in RenderBlock::logicalLeftSelectionOffset
and RenderBlock::logicalRightSelectionOffset, and improves WebKit's performance by roughly 20%.
Performance Tests: Interactive/SelectAll.html
* GNUmakefile.list.am:
* Target.pri:
* WebCore.xcodeproj/project.pbxproj:
* rendering/LogicalSelectionOffsetCaches.h: Added.
(WebCore::isContainingBlockCandidateForAbsolutelyPositionedObject): Moved from RenderObject.h.
(WebCore::isNonRenderBlockInline): Ditto.
(WebCore::containingBlockForFixedPosition): Extracted from RenderObject::containingBlock.
(WebCore::containingBlockForAbsolutePosition): Ditto.
(WebCore::containingBlockForObjectInFlow): Ditto.
(WebCore::LogicalSelectionOffsetCaches): Added.
(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::ContainingBlockInfo): Added.
(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::setBlock): Added. m_hasFloatsOrRegions is
or'ed with itself when ContainingBlockInfo is copy constructed since m_hasFloatsOrRegions needs be true
for a block when any of its containing block ancestors have floats or regions.
(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::block): Added.
(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::cache): Added.
(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::logicalLeftSelectionOffset): Added. Caches
the logical selection offset if it hasn't.
(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::logicalRightSelectionOffset): Ditto.
(WebCore::LogicalSelectionOffsetCaches::LogicalSelectionOffsetCaches): The first constructor is used
for a selection root. The second one is used for inheriting from another cache. In the latter case,
copy all containing block information except ones that need to be overridden by this block.
(WebCore::LogicalSelectionOffsetCaches::containingBlockInfo): Returns a ContainingBlockInfo based on
object's position value.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::selectionGapRectsForRepaint):
(WebCore::RenderBlock::paintSelection):
(WebCore::RenderBlock::selectionGaps):
(WebCore::RenderBlock::inlineSelectionGaps):
(WebCore::RenderBlock::blockSelectionGaps): Exit before instantiating a new LogicalSelectionOffsetCaches
if there is no child to recurse.
(WebCore::RenderBlock::blockSelectionGap):
(WebCore::RenderBlock::logicalLeftSelectionGap):
(WebCore::RenderBlock::logicalRightSelectionGap):
(WebCore::RenderBlock::logicalLeftSelectionOffset): Use LogicalSelectionOffsetCaches to get its containing
block and its logical selection offset.
(WebCore::RenderBlock::logicalRightSelectionOffset): Ditto.
* rendering/RenderBlock.h:
(WebCore::RenderBlock):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock): Extracted code into LogicalSelectionOffsetCaches.h.
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::lineSelectionGap):
* rendering/RootInlineBox.h:
(WebCore::RootInlineBox):
2013-04-23 Eric Carlson <eric.carlson@apple.com>
[Mac] forced subtitle track should change when audio track language changes
https://bugs.webkit.org/show_bug.cgi?id=115043
Reviewed by Jer Noble.
No new tests, it isn't possible to test this automatically because there is currently no way
to enable/disable audio tracks.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::configureTextTrackGroup): Set m_forcedOrAutomaticSubtitleTrackLanguage.
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged): Call markCaptionAndSubtitleTracksAsUnconfigured
after a delay if the language of the primary audio track changes.
(WebCore::HTMLMediaElement::setClosedCaptionsVisible): markCaptionAndSubtitleTracksAsUnconfigured API change.
(WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Take parameter to allow
the reconfiguration to happen after a delay to avoid doing it during a callback from the
media engine. Clear the ConfigureTextTracks bit in m_pendingActionFlags to cancel any pending
asynch configuration.
* html/HTMLMediaElement.h:
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::textTrackSelectionScore): Clean up logic.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Call characteristicChanged when
the primary audio track language changes.
2013-04-23 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Improve ExclusionPolygon smart pointer safety
https://bugs.webkit.org/show_bug.cgi?id=114984
Reviewed by Dirk Schulze.
Assign newly allocated objects to PassOwnPtrs as early as possible to reduce the
chances of future leaks. No new tests were added, this change adds no new functionality.
* rendering/ExclusionPolygon.cpp:
(WebCore::computeShapePaddingBounds):
(WebCore::computeShapeMarginBounds):
(WebCore::ExclusionPolygon::shapePaddingBounds):
(WebCore::ExclusionPolygon::shapeMarginBounds):
* rendering/ExclusionShape.cpp:
(WebCore::ExclusionShape::createExclusionShape):
2013-04-23 Andreas Kling <akling@apple.com>
Revert "Throttle resize events during live window resize."
<http://webkit.org/b/114292>
<rdar://problem/13411454>
<rdar://problem/13694839>
Reviewed by Geoffrey Garen.
It appears that this caused more glitches than it helped resize performance.
* page/FrameView.h:
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::sendResizeEvent):
Turn the null-check of m_frame into an assertion since this method is
no longer called asynchronously.
(WebCore::FrameView::willEndLiveResize):
Ninja fix: call up to the closest superclass implementation.
2013-04-23 Christophe Dumez <ch.dumez@sisa.samsung.com>
Global constructors should be configurable and not enumerable
https://bugs.webkit.org/show_bug.cgi?id=110573
Reviewed by Geoffrey Garen.
Update JSC Code generator so that global constructors now have the following
attributes:
{ [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
instead of previously:
{ [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }
The new behavior is according to the Web IDL specification (section 4.4):
http://dev.w3.org/cvsweb/~checkout~/2006/webapi/WebIDL/Overview.html?rev=1.617;content-type=text%2Fhtml#es-interfaces
This also matches the behavior of Firefox.
Tests: fast/js/global-constructors-attributes.html
fast/js/global-constructors-deletable.html
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateAttributesHashTable):
2013-04-23 Simon Fraser <simon.fraser@apple.com>
Don't create compositing layers for sticky position unless using the ScrollingCoordinator
https://bugs.webkit.org/show_bug.cgi?id=115060
Reviewed by Tim Horton.
Creating compositing layers for sticky position elements is only useful
when we're using a ScrollingCoordinator, so don't create them if
we're not in a frame that uses a scrolling coordinator.
Tests: compositing/layer-creation/no-compositing-for-sticky.html
platform/mac-wk2/tiled-drawing/sticky/sticky-layers.html
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
2013-04-23 Christophe Dumez <ch.dumez@sisa.samsung.com>
'length' property of DOM bindings functions returns wrong value
https://bugs.webkit.org/show_bug.cgi?id=110569
Reviewed by Geoffrey Garen.
Make the 'length' property of Function objects and Interface
objects behave according to the latest Web IDL specification
editor draft:
http://dev.w3.org/2006/webapi/WebIDL/#es-interface-call
http://dev.w3.org/2006/webapi/WebIDL/#es-operations
As a result, only mandatory arguments are taken into account
when computing the value for the 'length' property. This
behavior is consistent with Firefox and Blink.
Tests: fast/js/constructor-length.html
fast/js/function-length.html
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateConstructorHelperMethods):
Update the JSC code generator to only account for mandatory parameters
when computing the value for the 'length' property of Function objects
and constructors.
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructorConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTargetConstructor::finishCreation):
(WebCore):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::JSTestExceptionConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorConstructor::finishCreation):
(WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
(WebCore):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore):
Rebaseline bindings tests results.
* fileapi/Blob.idl:
Remove 'ConstructorParameters=2' extended attribute as the correct value
is 0, given that a Blob can be constructed without parameter.
* html/canvas/DataView.idl:
Update ConstructorParameters extended attribute value from 3 to 1 as only
one of the 3 parameters is mandatory.
* html/canvas/Float32Array.idl:
* html/canvas/Float64Array.idl:
* html/canvas/Int16Array.idl:
* html/canvas/Int32Array.idl:
* html/canvas/Int8Array.idl:
* html/canvas/Uint16Array.idl:
* html/canvas/Uint32Array.idl:
* html/canvas/Uint8Array.idl:
* html/canvas/Uint8ClampedArray.idl:
Remove 'ConstructorParameters=1' extended attribute from interfaces using
'ConstructorTemplate=TypedArray' as the bindings generator now properly
compute the number of constructor parameters for such interfaces.
* page/WebKitPoint.idl:
Remove 'ConstructorParameters=2' extended attribute as the correct value
should be 0, given that a WebKitPoint can be constructed without parameters.
2013-04-23 Benjamin Poulain <benjamin@webkit.org>
Minor String usage fixes in WebCore/platform
https://bugs.webkit.org/show_bug.cgi?id=115021
Reviewed by Andreas Kling.
Use ASCIILiteral when possible + minor fixes.
* platform/ContentType.cpp:
(WebCore::ContentType::codecs):
* platform/ContentType.h:
(ContentType):
* platform/Decimal.cpp:
(WebCore::Decimal::toString):
* platform/KURL.cpp:
(WebCore::KURL::setProtocol):
2013-04-23 Dirk Schulze <krit@webkit.org>
Pick up color and mat values in custom shaders
https://bugs.webkit.org/show_bug.cgi?id=115046
Reviewed by Dean Jackson.
The custom filter functions accept color values and mat2-4 functions
as parameter types. These were implemented in CSS already.
This patch picks up the values and applies them as uniforms to the
custom shader program.
Tests: css3/filters/custom/custom-filter-color.html
css3/filters/custom/custom-filter-matN.html
* platform/graphics/filters/CustomFilterRenderer.cpp:
(WebCore::CustomFilterRenderer::bindProgramColorParameters): Set uniform for color values.
(WebCore):
(WebCore::CustomFilterRenderer::bindProgramMatrixParameters): Set uniform for mat2-4 values.
(WebCore::CustomFilterRenderer::bindProgramParameters): Call color and matrix functions.
* platform/graphics/filters/CustomFilterRenderer.h:
(WebCore):
(CustomFilterRenderer):
2013-04-23 Jacky Jiang <zhajiang@blackberry.com>
Remove redundant code in ViewportArguments::resolve
https://bugs.webkit.org/show_bug.cgi?id=115054
Reviewed by Kenneth Rohde Christiansen.
Remove redundant code "result.orientation = orientation;".
* dom/ViewportArguments.cpp:
(WebCore::ViewportArguments::resolve):
2013-04-23 Simon Fraser <simon.fraser@apple.com>
Tiled layers clipped inside nested transform/preserve-3d hierarchies
https://bugs.webkit.org/show_bug.cgi?id=115044
Reviewed by Dean Jackson.
The optimization added in r139479 to call move() for integral translation
transforms hit a bug in TransformState::move(). If m_accumulatedTransform is
not null, we have to apply it.
Test: compositing/visible-rect/flipped-preserve-3d.html
* platform/graphics/transforms/TransformState.cpp:
(WebCore::TransformState::move):
2013-04-23 Claudio Saavedra <csaavedra@igalia.com>
Ctrl+Shift+Right in Windows should select the spacing after the word
https://bugs.webkit.org/show_bug.cgi?id=110487
Reviewed by Ryosuke Niwa.
Tests: editing/deleting/smart-editing-disabled-win.html
editing/execCommand/remove-format-multiple-elements-win.html
editing/execCommand/toggle-link-win.html
editing/execCommand/toggle-unlink-win.html
editing/selection/extend-selection-enclosing-block-win.html
editing/style/make-text-writing-direction-inline-win.html
editing/style/push-down-font-styles-win.html
editing/style/push-down-implicit-styles-around-list-win.html
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::nextWordPositionForPlatform): New method
that takes platform-specific editing behaviour in order to decide
what the next word position is, that is, for Windows, skip
spacing, for all other platforms, behave as currently.
(WebCore::FrameSelection::modifyExtendingRight):
(WebCore::FrameSelection::modifyExtendingForward):
(WebCore::FrameSelection::modifyMovingForward):
(WebCore::FrameSelection::modifyExtendingLeft): Use the new method
in all of the above.
* editing/FrameSelection.h: Declare the new method.
2013-04-23 Benjamin Poulain <bpoulain@apple.com>
Inline SelectorQuery::matches, SelectorQuery::queryAll, SelectorQuery::queryFirst
https://bugs.webkit.org/show_bug.cgi?id=115012
Reviewed by Andreas Kling.
Each of these function has a single call site:
-SelectorQuery::matches from Element::webkitMatchesSelector.
-SelectorQuery::queryAll from Node::querySelectorAll.
-SelectorQuery::queryFirst from Node::querySelector.
Having a dedicated method to jump to was a little overkill.
* dom/SelectorQuery.cpp:
* dom/SelectorQuery.h:
(WebCore::SelectorQuery::matches):
(WebCore::SelectorQuery::queryAll):
(WebCore::SelectorQuery::queryFirst):
2013-04-23 Benjamin Poulain <bpoulain@apple.com>
Remove wxWebKit's folders from WebCore
https://bugs.webkit.org/show_bug.cgi?id=115007
Reviewed by Andreas Kling.
The wxWebKit port is no longer actively maintained by Kevin
on webkit.org. Remove the code until new maintainers resume the work.
* accessibility/wx/AccessibilityObjectWx.cpp: Removed.
* editing/wx/EditorWx.cpp: Removed.
* page/wx/DragControllerWx.cpp: Removed.
* page/wx/EventHandlerWx.cpp: Removed.
* platform/graphics/wx/ColorWx.cpp: Removed.
* platform/graphics/wx/FloatRectWx.cpp: Removed.
* platform/graphics/wx/FontCacheWx.cpp: Removed.
* platform/graphics/wx/FontCustomPlatformData.cpp: Removed.
* platform/graphics/wx/FontCustomPlatformData.h: Removed.
* platform/graphics/wx/FontPlatformData.h: Removed.
* platform/graphics/wx/FontPlatformDataWx.cpp: Removed.
* platform/graphics/wx/FontPlatformDataWxMac.mm: Removed.
* platform/graphics/wx/FontWx.cpp: Removed.
* platform/graphics/wx/GlyphMapWx.cpp: Removed.
* platform/graphics/wx/GradientWx.cpp: Removed.
* platform/graphics/wx/GraphicsContextWx.cpp: Removed.
* platform/graphics/wx/IconWx.cpp: Removed.
* platform/graphics/wx/ImageBufferDataWx.h: Removed.
* platform/graphics/wx/ImageBufferWx.cpp: Removed.
* platform/graphics/wx/ImageWx.cpp: Removed.
* platform/graphics/wx/IntPointWx.cpp: Removed.
* platform/graphics/wx/IntRectWx.cpp: Removed.
* platform/graphics/wx/IntSizeWx.cpp: Removed.
* platform/graphics/wx/PathWx.cpp: Removed.
* platform/graphics/wx/SimpleFontDataWx.cpp: Removed.
* platform/graphics/wx/TransformationMatrixWx.cpp: Removed.
* platform/image-decoders/wx/ImageDecoderWx.cpp: Removed.
* platform/wx/ClipboardWx.cpp: Removed.
* platform/wx/ClipboardWx.h: Removed.
* platform/wx/ContextMenuItemWx.cpp: Removed.
* platform/wx/ContextMenuWx.cpp: Removed.
* platform/wx/CursorWx.cpp: Removed.
* platform/wx/DragDataWx.cpp: Removed.
* platform/wx/DragImageWx.cpp: Removed.
* platform/wx/EventLoopWx.cpp: Removed.
* platform/wx/FileSystemWx.cpp: Removed.
* platform/wx/KeyEventWin.cpp: Removed.
* platform/wx/KeyboardEventWx.cpp: Removed.
* platform/wx/LanguageWx.cpp: Removed.
* platform/wx/LocalDC.h: Removed.
* platform/wx/LocalizedStringsWx.cpp: Removed.
* platform/wx/LoggingWx.cpp: Removed.
* platform/wx/MimeTypeRegistryWx.cpp: Removed.
* platform/wx/MouseEventWx.cpp: Removed.
* platform/wx/MouseWheelEventWx.cpp: Removed.
* platform/wx/PasteboardWx.cpp: Removed.
* platform/wx/PopupMenuWx.cpp: Removed.
* platform/wx/PopupMenuWx.h: Removed.
* platform/wx/RenderThemeWx.cpp: Removed.
* platform/wx/RunLoopWx.cpp: Removed.
* platform/wx/SSLKeyGeneratorWx.cpp: Removed.
* platform/wx/ScreenWx.cpp: Removed.
* platform/wx/ScrollViewWx.cpp: Removed.
* platform/wx/ScrollbarThemeWx.cpp: Removed.
* platform/wx/ScrollbarThemeWx.h: Removed.
* platform/wx/SearchPopupMenuWx.cpp: Removed.
* platform/wx/SearchPopupMenuWx.h: Removed.
* platform/wx/SharedBufferWx.cpp: Removed.
* platform/wx/SharedTimerWx.cpp: Removed.
* platform/wx/SoundWx.cpp: Removed.
* platform/wx/SystemTimeWx.cpp: Removed.
* platform/wx/TemporaryLinkStubs.cpp: Removed.
* platform/wx/TextBreakIteratorInternalICUWx.cpp: Removed.
* platform/wx/WidgetWx.cpp: Removed.
* platform/wx/wxcode/cairo/non-kerned-drawing.cpp: Removed.
* platform/wx/wxcode/fontprops.cpp: Removed.
* platform/wx/wxcode/fontprops.h: Removed.
* platform/wx/wxcode/gdiplus/non-kerned-drawing.cpp: Removed.
* platform/wx/wxcode/gtk/fontprops.cpp: Removed.
* platform/wx/wxcode/gtk/non-kerned-drawing.cpp: Removed.
* platform/wx/wxcode/gtk/scrollbar_render.cpp: Removed.
* platform/wx/wxcode/mac/carbon/fontprops.mm: Removed.
* platform/wx/wxcode/mac/carbon/non-kerned-drawing.cpp: Removed.
* platform/wx/wxcode/mac/carbon/scrollbar_render.cpp: Removed.
* platform/wx/wxcode/non-kerned-drawing.h: Removed.
* platform/wx/wxcode/scrollbar_render.h: Removed.
* platform/wx/wxcode/win/fontprops.cpp: Removed.
* platform/wx/wxcode/win/non-kerned-drawing.cpp: Removed.
* platform/wx/wxcode/win/scrollbar_render.cpp: Removed.
* plugins/wx/PluginDataWx.cpp: Removed.
2013-04-23 Roger Fong <roger_fong@apple.com>
AppleWin build fix.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
2013-04-23 Roger Fong <roger_fong@apple.com>
AppleWin build fix.
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::create):
(WebCore):
* inspector/InspectorMemoryAgent.h:
(InspectorMemoryAgent):
2013-04-23 Zoltan Horvath <zoltan@webkit.org>
[CSS Exclusions] shape-inside overflow should be pushed to the outside of the content box
https://bugs.webkit.org/show_bug.cgi?id=114526
Reviewed by David Hyatt.
The specification has changed to define shape-outside as the inverse of an exclusion. Overflowing content
should not overlap the shape, and it should be pushed outside the content box. This change affects several
tests, but only one new has been added. In this change I'm not intended to include the behavior change for
shape-inside on CSS Regions, I'm going to fix that in a follow up patch.
Tests: fast/exclusions/shape-inside/shape-inside-overflow-fixed-dimensions.html: Modified.
fast/exclusions/shape-inside/shape-inside-bottom-edge.html: Modified.
fast/exclusions/shape-inside/shape-inside-empty.html: Modified.
fast/exclusions/shape-inside/shape-inside-overflow-fixed-dimensions.html: Added.
fast/exclusions/shape-inside/shape-inside-overflow.html: Modified.
fast/exclusions/shape-inside/shape-inside-percentage.html: Modified.
fast/exclusions/shape-inside/shape-inside-rounded-rectangle-004.html: Modified.
* rendering/ExclusionShapeInfo.h:
(WebCore::ExclusionShapeInfo::clearSegments): Shape-outside's code uses shape-inside codepaths, when that happens we need to provide a
way to reset the m_segments member.
(WebCore::ExclusionShapeInfo::shapeContainingBlockHeight): The containing block's height is stored in m_shapeLogicalHeight, I added a
function to get this value when we need it to calculate the content box's bottom position.
(ExclusionShapeInfo):
(WebCore::ExclusionShapeInfo::lineOverlapsShapeBounds):
(WebCore::ExclusionShapeInfo::lineWithinShapeBounds): Add function to test whether a whole line is within a shape or not.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange): Overflowing content should start under the content box.
(WebCore::RenderBlock::LineBreaker::nextLineBreak): Since we use shape-inside codepaths for shape-outside in layoutRunsAndFloatsInRange function
and for shape-outside is not a requirement to check the line's bottom position is within the shape we might end up with some extra segments here.
In this case we should clear segments, since we don't want to apply any horizontal offsets on the overflowing content.
2013-04-23 Antti Koivisto <antti@apple.com>
Avoid computing style twice when element has no existing style
https://bugs.webkit.org/show_bug.cgi?id=115042
Reviewed by Andreas Kling.
We currently compute element style twice if we end up having to reattach, first in recalcStyle and then
again during attach(). We can easily avoid this in common case where the element has no existing style
(usually because it is display:none).
* dom/Element.cpp:
(WebCore::Element::recalcStyle):
Don't compute the style and diff if there is no existing style. There is nothing to diff against.
Instead just call reattach() directly, we ended up doing that anyway with the existing code.
2013-04-23 Lamarque V. Souza <Lamarque.Souza@basyskom.com>
WebSocket: Return type of send() should be void if hybi-10 protocol is chosen
https://bugs.webkit.org/show_bug.cgi?id=65850
Reviewed by Alexey Proskuryakov.
WebSocket API draft changed the return type of send() from boolean to void based on Simon
Pieters' post to WHATWG. Firefox 8 and IE 10 already follow the specification, hence it should
make sense for us to do the same when hybi protocol is used.
Original patch by Yuta Kitamura <yutak@chromium.org>
Tests: http/tests/websocket/tests/hybi/bufferedAmount-after-close.html (updated)
http/tests/websocket/tests/hybi/send-after-close-on-unload.html (updated)
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::send):
* Modules/websockets/WebSocket.h:
* Modules/websockets/WebSocket.idl:
2013-04-23 Carlos Garcia Campos <cgarcia@igalia.com>
ScrollbarThemeComposite depends on Page/FrameView/ChromeClient
https://bugs.webkit.org/show_bug.cgi?id=21361
Reviewed by Andreas Kling.
Remove unused header includes.
* platform/ScrollbarThemeComposite.cpp:
2013-04-23 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add webkit_uri_request_get_http_headers to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=112160
Reviewed by Andreas Kling.
* platform/network/soup/GOwnPtrSoup.cpp:
(WTF::SoupMessageHeaders): Add freeOwnedGPtr implementation for
SoupMessageHeaders.
(WTF):
* platform/network/soup/GOwnPtrSoup.h:
(WTF):
* platform/network/soup/ResourceRequest.h:
(ResourceRequest):
* platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::updateSoupMessageHeaders): New function
to update the given SoupMessageHeaders with the ResourceRequest
headers.
(WebCore::ResourceRequest::updateFromSoupMessageHeaders): New
function to update the ResourceRequest headers with the given
SoupMessageHeaders.
(WebCore::ResourceRequest::updateSoupMessage): Use
updateSoupMessageHeaders() to update the headers.
(WebCore::ResourceRequest::toSoupMessage): Ditto.
(WebCore::ResourceRequest::updateFromSoupMessage): Use
updateFromSoupMessageHeaders to update the headers.
2013-04-23 Andreas Kling <akling@apple.com>
Clear StyleResolver state before returning from styleForElement().
<http://webkit.org/b/115035>
Reviewed by Antti Koivisto.
From Blink r148687 by <inferno@chromium.org>.
A cached element pointer in the resolver state was causing confusion because
in some cases a subsequent call to styleForElement() would use a pointer to
a different object that is at the same memory address as the previous one.
Test: fast/css/reload-non-styled-element-crash.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::styleForElement):
2013-04-23 Andreas Kling <akling@apple.com>
XSSAuditor performance regression due to threaded parser changes.
<http://webkit.org/b/115037>
<rdar://problem/13716069>
Reviewed by Anders Carlsson.
From Blink r148792 by <abarth@chromium.org>:
The refactoring we did for the threaded parser introduced a performance
regression in innerHTML because we'd boot up the XSSAuditor for fragment
parsing. This CL returns to our earlier behavior of not booting up the
XSSAuditor when parsing fragments.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::initForFragment):
* html/parser/XSSAuditor.h:
(XSSAuditor):
2013-04-23 Andreas Kling <akling@apple.com>
Speed up ElementData::getAttributeItem(), which is hot.
<http://webkit.org/b/115031>
Reviewed by Antti Koivisto.
From Blink r148622 by <cevans@chromium.org>.
The previous version had a couple of issues:
- Incurred new WTF::Vector::operator[] checks.
- Had a branch in _every_ loop iteration that checked whether the storage was Vector or array[] backed.
Both these issues are fixed, and CloneNodes.html seems reliably at +2%.
I also believe GetElement.html is maybe +1%.
For WebKit, also applied the same optimization to getAttributeItemIndex().
* dom/Element.h:
(WebCore::ElementData::attributeBase):
(WebCore::ElementData::getAttributeItemIndex):
(WebCore::ElementData::getAttributeItem):
(WebCore::ElementData::attributeItem):
2013-04-23 Antoine Quint <graouts@apple.com>
Initial advance of text runs should be taken into account
https://bugs.webkit.org/show_bug.cgi?id=114949
Reviewed by Darin Adler.
Keep track of complex text runs' initial advance by adding a new
member to GlyphBuffer and adding the initial advance of any non-first
text run to the advance of the last glyph added for the previous text run.
Additionally, we now correctly handle advance values in the y-axis.
Test: fast/text/complex-initial-advance.html
* WebCore.exp.in:
Add support for new WebKitSystemInterface API.
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::drawGlyphBuffer):
Take into account the buffer's initial advance in the y-axis to adjust
the point at which to draw the buffers. Additionally, keep track of advances
on the y-axis as well as the x-axis (which we already were doing) as we iterate
through glyphs and adjust the start point.
(WebCore::Font::drawEmphasisMarks):
Adopt change of GlyphBuffer::advanceAt() return type.
* platform/graphics/GlyphBuffer.h:
Removing the WINCE-specific GlyphBufferAdvance struct since heights are now necessary.
(WebCore::GlyphBufferAdvance::GlyphBufferAdvance):
New default constructor for GlyphBufferAdvance to support the m_initialAdvance member.
(WebCore::GlyphBuffer::setInitialAdvance):
(WebCore::GlyphBuffer::initialAdvance):
New APIs to get and set the initial advance for a glyph buffer.
(WebCore::GlyphBuffer::advanceAt):
Return a GlyphBufferAdvance rather than a float which used to be only
the glyph buffer's x-axis advance. This is necessary to handle deltas
on the y-axis as well (see WebCore::Font::drawGlyphBuffer).
* platform/graphics/GlyphBuffer.h:
(GlyphBuffer):
(WebCore::GlyphBuffer::setInitialAdvance):
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advanceInternal):
(WebCore::WidthIterator::advanceOneCharacter):
Adopt change of GlyphBuffer::advanceAt() return type.
* platform/graphics/cairo/FontCairo.cpp:
(WebCore::Font::drawGlyphs):
Adopt change of GlyphBuffer::advanceAt() return type.
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::advance):
When processing the first text run, set that run's initial advance as
the glyph buffer's initial advance.
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
Represent the initial advance for a text run by adjusting the advance
of the last glyph of the previous text run in the glyph buffer.
* platform/graphics/mac/ComplexTextController.h:
(WebCore::ComplexTextController::ComplexTextRun::initialAdvance):
(ComplexTextRun):
New API to read the inital advance of a complex text run.
* platform/graphics/mac/ComplexTextControllerCoreText.mm:
(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
Obtain the text run's initial advance via the new wkCTRunGetInitialAdvance
WebKitSystemInterface API.
* platform/graphics/qt/FontQt.cpp:
(WebCore::Font::drawGlyphs):
Adopt change of GlyphBuffer::advanceAt() return type.
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
Add support for the new wkCTRunGetInitialAdvance WebKitSystemInterface API.
* platform/wx/wxcode/cairo/non-kerned-drawing.cpp:
(WebCore::drawTextWithSpacing):
Adopt change of GlyphBuffer::advanceAt() return type.
* rendering/svg/SVGTextRunRenderingContext.cpp:
(WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):
Adopt change of GlyphBuffer::advanceAt() return type.
2013-04-23 Noam Rosenthal <noam@webkit.org>
[Texmap] Don't paint to an intermediate surface when the result is going to be clipped out completely.
https://bugs.webkit.org/show_bug.cgi?id=115015
Reviewed by Allan Sandfeld Jensen.
Maintain a clipBounds rectangle in TextureMapper, and test it against the bounds of an intermediate
surface before it is painted.
This allows us to opt out completely of painting into the surface if the result is going to be optimized
out by the GPU clipping.
Covered by tests in compositing/overlap-blending.
* platform/graphics/texmap/TextureMapper.h:
(TextureMapper):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::clipBounds):
(WebCore):
* platform/graphics/texmap/TextureMapperGL.h:
* platform/graphics/texmap/TextureMapperImageBuffer.h:
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
2013-04-23 Noam Rosenthal <noam@webkit.org>
[Coordinated Graphics] Remove the lockAnimations code path
https://bugs.webkit.org/show_bug.cgi?id=114899
Reviewed by Benjamin Poulain.
Remove locking/unlocking animations and checks for the lock state.
The animation locking has been tested to create not-so-smooth animations,
while the use case where the composited animations run out of sync from
the non-composited animations is very rare and unnoticeable.
No new tests, removing functionality that wasn't tested in the first place.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
(WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebCore::CoordinatedGraphicsScene::commitSceneState):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
(CoordinatedGraphicsScene):
2013-04-23 Allan Sandfeld Jensen <allan.jensen@digia.com>
Respect image-rendering setting for determing image-rendering quality
https://bugs.webkit.org/show_bug.cgi?id=113405
Reviewed by Benjamin Poulain.
Remove the CSS4 values as they are not ready for implementation yet.
We still parse the -webkit-crisp-edges and SVG compatibility values to
be closer to the the partial support in Gecko and Presto.
Tests: fast/css/image-rendering-canvas.html
fast/css/image-rendering-parsing.html
fast/css/image-rendering.html
fast/css/optimize-contrast-image.html
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EImageRendering):
* css/CSSValueKeywords.in:
* css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
* rendering/RenderBoxModelObject.cpp:
(WebCore::ImageQualityController::shouldPaintAtLowQuality):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::paintReplaced):
* rendering/style/RenderStyleConstants.h:
2013-04-23 Commit Queue <rniwa@webkit.org>
Unreviewed, rolling out r148923.
http://trac.webkit.org/changeset/148923
https://bugs.webkit.org/show_bug.cgi?id=115020
The patch causes multiple failures in CSS, canvas tests
(Requested by zdobersek on #webkit).
* platform/graphics/cairo/PlatformContextCairo.cpp:
(WebCore::PlatformContextCairo::drawSurfaceToContext):
2013-04-22 Noam Rosenthal <noam@webkit.org>
[EFL] Assertion Failures in Coordinated Graphics after r148433
https://bugs.webkit.org/show_bug.cgi?id=114731
Reviewed by Gyuyoung Kim.
The assert is incorrect. In some cases in coordinated graphics we may have a backing store
and drawsContent would be set to false.
No new tests.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelf):
2013-04-22 Suchit Agrawal <a.suchit@samsung.com>
table's text aligned on top instead of center because of rowspan
https://bugs.webkit.org/show_bug.cgi?id=18092
Reviewed by Beth Dakin.
Last row in the rowspan is not getting the height of rowspan cell because there is not
enough rows present below rowspan cell and we are strictly applying height of rowspan
to the row which should lay last in the rowspan based of rowspan value.
When row contains rowspan cell and it is last row of the table then
rowspan height is adding to last row of the table.
Test: fast/table/Rowspan-value-more-than-number-of-rows-present.html
It calculates logical height of the rows in the table.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::calcRowLogicalHeight):
2013-04-22 Mihnea Ovidenie <mihnea@adobe.com>
[CSS Regions] Region's float parent doesn't size according to region size but to content node size
https://bugs.webkit.org/show_bug.cgi?id=111332
Reviewed by David Hyatt.
Tests: fast/regions/intrinsic-sized-regions.html
fast/regions/region-with-float-parent.html
The patch ensures that the computation of region's preferred widths
takes into account the region width/min-width if these values are specified.
Also implemented the computation of intrinsic widths for a region,
based on the min/max preferred widths of the associated flow thread.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::computeIntrinsicLogicalWidths):
(WebCore):
(WebCore::RenderRegion::computePreferredLogicalWidths):
* rendering/RenderRegion.h:
(RenderRegion):
2013-04-22 Jessie Berlin <jberlin@apple.com>
Debug build fix.
Rubber-stamped by Ryosuke Niwa.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
* inspector/InspectorMemoryAgent.h:
(WebCore):
(WebCore::InspectorMemoryAgent::create):
(InspectorMemoryAgent):
2013-04-22 Brady Eidson <beidson@apple.com>
Address review feedback I forgot to address in r148929
https://bugs.webkit.org/show_bug.cgi?id=114480
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequest): Rework the "what" comment into a more useful "why" comment.
2013-04-22 Benjamin Poulain <bpoulain@apple.com>
Second Mac debug build fix after r148921
Unreviewed.
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
* inspector/InspectorMemoryAgent.h:
(InspectorMemoryAgent):
2013-04-22 Brady Eidson <beidson@apple.com>
REGRESSION (r141136): Wiki "Random article" function very broken.
<rdar://problem/13229985> and https://bugs.webkit.org/show_bug.cgi?id=114480
Reviewed by Alexey Proskuryakov.
Test: http/tests/navigation/redirect-to-random-url-versus-memory-cache.html
If we are performing a conditional GET to revalidate a resource and there's a redirect,
check to see if the redirect is to a different URL than the final URL of the resource.
If the URLs differ then we should make the redirect-request unconditional and do a normal load.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequest):
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::makeUnconditional):
* platform/network/ResourceRequestBase.h:
(ResourceRequestBase):
2013-04-22 Benjamin Poulain <bpoulain@apple.com>
Mac debug build fix after r148921
Unreviewed.
* page/animation/CompositeAnimation.cpp:
2013-04-22 Rashmi Shyamasundar <rashmi.s2@samsung.com>
[Cairo] Canvas-shadow behavior is not being as expected
https://bugs.webkit.org/show_bug.cgi?id=108897
Reviewed by Martin Robinson.
Use the pattern-extend-mode "CAIRO_EXTEND_NONE" instead of "CAIRO_EXTEND_PAD" in
PlatformContextCairo::drawSurfaceToContext().
In the function PlatformContextCairo::drawSurfaceToContext(), a pattern is being
created from the source surface and this pattern is drawn onto the destination
context. There is no gradient involved. Hence the extend mode for filling the
pattern should be "CAIRO_EXTEND_NONE". If we use the extend mode
"CAIRO_EXTEND_PAD" in PlatformContextCairo::drawSurfaceToContext(), the original
image area is also filled with the shadow color which is not the expected behavior.
Test: fast/canvas/canvas-image-shadow.html
* platform/graphics/cairo/PlatformContextCairo.cpp:
(WebCore::PlatformContextCairo::drawSurfaceToContext):
2013-04-22 Benjamin Poulain <benjamin@webkit.org>
Remove the memory instrumentation code
https://bugs.webkit.org/show_bug.cgi?id=114931
Reviewed by Andreas Kling.
The Memory Instrumentation code is unfinished and has already
become out of sync the objects it is supposed to represent.
The current approach does not seem maintainable, it is better to
remove it before someone gets hurt.
By removing the code, the binary become 1240976 bytes smaller.
Yep, almost 1 Mb, bringing WebCore to the size it has 5 months ago :)
* MostWebCoreFiles: remove the support for memory instrumentation.
2013-04-22 Bear Travis <betravis@adobe.com>
Do not reuse ExclusionShapeInsideInfo in a recursive region layout
https://bugs.webkit.org/show_bug.cgi?id=114467
Reviewed by David Hyatt.
Elements that respect shape-inside that have inline children should not reuse an
ExclusionShapeInsideInfo for their children's layout. This patch adds the test
for regions. See the details for non-region layout in bug 104582.
https://bugs.webkit.org/show_bug.cgi?id=104582
Test: fast/regions/shape-inside/shape-inside-recursive-layout.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutExclusionShapeInsideInfo): Do not look up a region's
ExclusionShapeInsideInfo if a block is already respecting shape-inside.
2013-04-22 Martin Robinson <mrobinson@igalia.com>
[GTK] Fix remaining introspection warnings
https://bugs.webkit.org/show_bug.cgi?id=114980
Reviewed by Gustavo Noronha Silva.
* bindings/gobject/WebKitDOMCustom.h: Add scope and transfer annotations and flesh
out gtkdoc for completeness.
* bindings/gobject/WebKitDOMEventTarget.h:
(_WebKitDOMEventTargetIface): Ditto and also align virtual method names with those used
for the concrete ones.
2013-04-22 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Support unlocking encrypted PDFs
https://bugs.webkit.org/show_bug.cgi?id=114938
<rdar://problem/12872888>
Reviewed by Alexey Proskuryakov.
Export HTMLNames::typeAttr.
* WebCore.exp.in:
2013-04-22 Ryosuke Niwa <rniwa@webkit.org>
Use-after-free in CompositeEditCommand::cloneParagraphUnderNewElement
https://bugs.webkit.org/show_bug.cgi?id=114911
Reviewed by Oliver Hunt.
Back ported https://src.chromium.org/viewvc/blink?revision=148680&view=revision.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
2013-04-22 Eric Carlson <eric.carlson@apple.com>
[Mac] "automatic" track selection should only select a track that matches user language
https://bugs.webkit.org/show_bug.cgi?id=114976
Reviewed by Jer Noble.
Test: media/track/track-automatic-subtitles.html
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::textTrackSelectionScore): When in "automatic" mode, only
consider text tracks that match the user's preferred language when the primary audio track
does not.
2013-04-22 Jer Noble <jer.noble@apple.com>
Cancelling load may cause deadlock in -[AVPlayerItem release]
https://bugs.webkit.org/show_bug.cgi?id=114962
Reviewed by Eric Carlson.
Work around a bug in AVAssetResourceLoader by using a generic, non-main dispatch queue
to recieve AVAssetResourceLoaderDelegate callbacks, and then marshalling those
callbacks to the main thread asynchronously.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::globalLoaderDelegateQueue): Added.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Use the new global queue.
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
Marshall the request to the main queue, and return YES (wait) immediately.
2013-04-22 Zan Dobersek <zdobersek@igalia.com>
[GTK] Set up libPlatform.la
https://bugs.webkit.org/show_bug.cgi?id=114168
Reviewed by Martin Robinson.
No new tests - no new functionality.
* GNUmakefile.am: Also add the LevelDB-specific cppflags to the platform_cppflags if required as the LevelDB
code is now built into the new libPlatform.la library.
* GNUmakefile.list.am: Build a small set of non-GTK-specific platform source files that are already free of
platform violations into the new libPlatform.la library.
2013-04-22 Andy Estes <aestes@apple.com>
Range.getClientRects() should not include rects for partially selected elements
https://bugs.webkit.org/show_bug.cgi?id=76839
Reviewed by Sam Weinig.
CSSOM says that Range.getClientRects() should include the border boxes
of each element selected by the range. However, we were also
incorrectly including border boxes for partially selected elements.
For instance, consider the following selection:
<div>line one<br>line two</div>
-------------
The <div> is two lines tall, but only the first line is selected.
Despite this, we'd include the <div>'s border box since its start tag
was included in the selection.
Fix this by excluding partially selected elements. This is accomplished
by skipping over elements that come after the start boundary point of
the range but are ancestors of the end boundary point.
Added test cases to LayoutTests/fast/dom/Range/getClientRects.html.
* dom/Range.cpp:
(WebCore::Range::getBorderAndTextQuads):
2013-04-22 Yi Shen <max.hong.shen@gmail.com>
Crash on OS X when shift clicking outside of input
https://bugs.webkit.org/show_bug.cgi?id=104058
Reviewed by Chang Shu.
Shift clicking outside of a focused div while removing the focused div from
the dom tree at the same time may hit a null visible position, which should
not be used to calculate the text distance with the new selection's start and
end position. Otherwise, the browser may crash.
Test: editing/selection/crash-on-shift-click.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEventSingleClick):
2013-04-22 Carlos Garcia Campos <cgarcia@igalia.com>
Scrollbar should not depend on EventHandler, Frame and FrameView
https://bugs.webkit.org/show_bug.cgi?id=114941
Reviewed by Darin Adler.
It's a layering violation that Scrollbar uses EventHandler, Frame
and FrameView. Frame is used to get the EventHandler that is used
to set mousePressed to false after a Scrollbar::mouseUp(). This is
not really needed, since EventHandler already sets m_mousePressed
to false when calling Scrollbar::mouseUp(). The PopupMenu windows
implementation also calls Scrollbar::mouseUp(), but that scrollbar
is not inside a FrameView.
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::isScrollViewScrollbar):
isScrollViewScrollbar() is a method of ScrollView so we don't need
to cast to FrameView.
(WebCore::Scrollbar::mouseUp): Remove EventHandler ussage.
2013-04-22 Andreas Kling <akling@apple.com>
Shrink baseline size of WTF::Vector on 64-bit by switching to unsigned capacity and size.
<http://webkit.org/b/97268>
<rdar://problem/12376519>
Reviewed by Sam Weinig.
* CMakeLists.txt: Add a workaround for GCC 4.6.x in Release mode so it
does not crash.
2013-04-22 John Griggs <jgriggs@blackberry.com>
[BlackBerry] URL decode data: URLs before passing to the platform media player.
https://bugs.webkit.org/show_bug.cgi?id=114887
Reviewed by Rob Buis.
Pass data URL through URL decoding before passing to platform media player. PR 313635.
Reviewed internally by Liam Quinn
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::load):
2013-04-22 Xuefei Ren <xren@blackberry.com>
fix build warning(unused parameter)
https://bugs.webkit.org/show_bug.cgi?id=114855
Reviewed by Rob Buis.
remove warning(unused parameter) in
Source/WebCore/platform/graphics/blackberry
* platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:
(WebCore::CanvasLayerCompositingThreadClient::drawTextures):
(WebCore::CanvasLayerCompositingThreadClient::deleteTextures):
(WebCore::CanvasLayerCompositingThreadClient::commitPendingTextureUploads):
* platform/graphics/blackberry/FontBlackBerry.cpp:
(WebCore::Font::offsetForPositionForComplexText):
* platform/graphics/blackberry/FontCacheBlackBerry.cpp:
(WebCore::FontCache::getSimilarFontPlatformData):
(WebCore::FontCache::getTraitsInFamily):
* platform/graphics/blackberry/GlyphPageTreeNodeBlackBerry.cpp:
(WebCore::GlyphPage::fill):
* platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
* platform/graphics/blackberry/GraphicsContextBlackBerry.cpp:
(WebCore::GraphicsContext::drawConvexPolygon):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::roundToDevicePixels):
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::GraphicsContext::clipConvexPolygon):
(WebCore::GraphicsContext::setURLForRect):
(WebCore::GraphicsContext::setPlatformStrokeColor):
(WebCore::GraphicsContext::setPlatformFillColor):
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/blackberry/ImageBlackBerry.cpp:
(WebCore::BitmapImage::draw):
(WebCore::Image::drawPattern):
* platform/graphics/blackberry/ImageBufferBlackBerry.cpp:
(WebCore::flushAndDraw):
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::copyImage):
(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::platformTransformColorSpace):
* platform/graphics/blackberry/LayerTiler.cpp:
(WebCore::LayerTiler::drawTile):
* platform/graphics/blackberry/PathBlackBerry.cpp:
(WebCore::GraphicsContext::drawFocusRing):
(WebCore::GraphicsContext::clipPath):
* platform/graphics/blackberry/PatternBlackBerry.cpp:
(WebCore::Pattern::platformPattern):
2013-04-22 Mike Fenton <mifenton@rim.com>
[BlackBerry] Add additional datalist support.
https://bugs.webkit.org/show_bug.cgi?id=114883
Reviewed by Rob Buis.
PR 210083.
Extend support for datalist to include all non-popup input types.
Re-enabling fast/forms/datalist/input-list
Internally Reviewed by Otto Cheung.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::RenderThemeBlackBerry::supportsDataListUI):
2013-04-22 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] Add dummy implementations of DragData::droppedFileSystemId()
https://bugs.webkit.org/show_bug.cgi?id=114861
Reviewed by Carlos Garcia Campos.
* platform/blackberry/DragDataBlackBerry.cpp:
(WebCore):
(WebCore::DragData::droppedFileSystemId):
2013-04-22 Mihai Maerean <mmaerean@adobe.com>
[CSS Regions] Elements in a region should be assignable to a named flow
https://bugs.webkit.org/show_bug.cgi?id=74144
Reviewed by David Hyatt.
DOM children of a region must not be rendered as children of the region, but can be collected in flow threads.
NodeRenderingContext::parentRenderer now creates the parent render flow thread if it doesn't exist.
Element::moveToFlowThreadIsNeeded is a virtual method that is overriden in PseudoElement to return false and
in SVGElement so only svg root elements can directly be collected by a render flow thread.
RenderObject::canDOMChildrenHaveRenderParent exists to optimize the code so nodes inside regions (and maybe
other types of renderers in the future) can still have renderers if they need to be in a flow thread while the
rest of renderers that can't have children skip the new instructions.
Tests: fast/regions/flow-body-in-html.html . To test the duplicate bug #103685.
fast/regions/region-content-flown-into-region.html
fast/regions/universal-selector-children-to-the-same-region.html . To test the duplicate bug #103685.
* dom/Element.cpp:
(WebCore::Element::moveToFlowThreadIsNeeded):
* dom/Element.h:
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::parentRenderer): the renderer that will be the parent for this node's renderer.
In the case of RenderFlowThreads, it may need to create it.
(WebCore::NodeRenderingContext::shouldCreateRenderer): In a region, only the children that need to be in a flow
thread should have a renderer.
(WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
(WebCore::NodeRenderingContext::moveToFlowThread):
* dom/NodeRenderingContext.h:
(NodeRenderingContext):
* dom/PseudoElement.h: pseudo-elements cannot be directly collected into a named flow.
* dom/Text.cpp:
(WebCore::Text::textRendererIsNeeded):
(WebCore::Text::updateTextRenderer): Because calling textRendererIsNeeded(NodeRenderingContext(...)) on a
non-const l-value NodeRenderingContext cannot be done on a temporary object on the stack.
* dom/Text.h:
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::isContentNodeRegisteredWithAnyNamedFlow):
* rendering/FlowThreadController.h:
* rendering/RenderObject.h:
(WebCore::RenderObject::canDOMChildrenHaveRenderParent): Even if this render object can't have render children,
the children in the DOM tree may have a render parent (that is different from this render object).
* rendering/RenderRegion.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::moveToFlowThreadIsNeeded): Allow only svg root elements to be directly collected by a
render flow thread.
* svg/SVGElement.h:
2013-04-22 Alberto Garcia <agarcia@igalia.com>
Gradient: add PlatformGradient definition for BlackBerry
https://bugs.webkit.org/show_bug.cgi?id=114727
Reviewed by Carlos Garcia Campos.
* platform/graphics/Gradient.h:
(Graphics):
2013-04-22 Andrei Bucur <abucur@adobe.com>
Use DOM ordering for list counts
https://bugs.webkit.org/show_bug.cgi?id=110352
Reviewed by Elliott Sprehn.
Currently the list items ordering is made by traversing the render tree. This gives bad results for:
- list items flown inside regions because they are not rendered as descendants of their DOM list ancestors.
- list items matched to insertion points inside a shadow tree. The insertion point may be a child of a
list so the numbering gets broken.
To implement correct DOM ordering I've taken into account the fact that pseudo-elements can have display: list-item
so they should be included when traversing the DOM tree. I've added helper methods on the NodeTraversal
namespace that should allow easily traversing the tree including the pseudo-elements (e.g. firstChildWithPseudo
for an element with pseudo-before will return the before PseudoElement). Using these helper methods I've implemented
pre-order traversal methods aware of the pseudo-elements.
An effect of this change is how the list items inside shadow tree update their counting. With the patch, if there's
no <ol> or <ul> element on the ancestor chain of a <li> element to the shadow root, the list node will be considered the
first parent of the <li> or the shadow root if there is no ancestor.
The RenderListItem class now makes use of this new method of traversal, replacing the one based on the render tree.
To simplify the CSS counters implementation, I've changed the traversal functions inside RenderCounter to also make use
of this method. The CSS counters and the list items now have the same traversal algorithm.
In later patches I'll add tests that should cover the regions and shadow DOM use cases.
Tests bug for shadow DOM: https://bugs.webkit.org/show_bug.cgi?id=113193
Tests bug for regions: https://bugs.webkit.org/show_bug.cgi?id=103975
Tests: no new tests is this patch; added the correct expectations for fast/lists/positioned-count-crash.html
and fast/dom/shadow/shadow-and-list-elements.html
* dom/Node.cpp:
(WebCore::Node::pseudoAwarePreviousSibling):
(WebCore):
(WebCore::Node::pseudoAwareNextSibling):
(WebCore::Node::pseudoAwareFirstChild):
(WebCore::Node::pseudoAwareLastChild):
* dom/Node.h:
(Node):
* dom/NodeTraversal.cpp:
(WebCore):
(WebCore::NodeTraversal::previousIncludingPseudo):
(NodeTraversal):
(WebCore::NodeTraversal::nextIncludingPseudo):
(WebCore::NodeTraversal::nextIncludingPseudoSkippingChildren):
* dom/NodeTraversal.h:
(ElementTraversal):
(NodeTraversal):
(WebCore::ElementTraversal::previousIncludingPseudo):
(WebCore::ElementTraversal::nextIncludingPseudo):
(WebCore::ElementTraversal::nextIncludingPseudoSkippingChildren):
(WebCore::ElementTraversal::pseudoAwarePreviousSibling):
* html/HTMLLIElement.cpp:
(WebCore::HTMLLIElement::attach):
* html/HTMLOListElement.cpp:
(WebCore::HTMLOListElement::updateItemValues):
(WebCore::HTMLOListElement::recalculateItemCount):
* rendering/RenderCounter.cpp:
(WebCore::previousInPreOrder):
(WebCore::previousSiblingOrParent):
(WebCore::parentElement):
(WebCore::nextInPreOrder):
* rendering/RenderListItem.cpp:
(WebCore):
(WebCore::enclosingList):
(WebCore::RenderListItem::nextListItem):
(WebCore::previousListItem):
(WebCore::RenderListItem::calcValue):
(WebCore::RenderListItem::explicitValueChanged):
(WebCore::previousOrNextItem):
(WebCore::RenderListItem::updateListMarkerNumbers):
* rendering/RenderListItem.h:
(RenderListItem):
2013-04-22 Alberto Garcia <agarcia@igalia.com>
Fix multiple definition of ImageBuffer::platformLayer() in the BlackBerry port
https://bugs.webkit.org/show_bug.cgi?id=114936
Reviewed by Carlos Garcia Campos.
We already have a definition in ImageBufferBlackBerry.cpp.
* platform/graphics/ImageBuffer.cpp:
(WebCore):
2013-04-21 Carlos Garcia Campos <cgarcia@igalia.com>
Division by zero in CSSGradientValue::addStops()
https://bugs.webkit.org/show_bug.cgi?id=114807
Reviewed by Dean Jackson.
The normalization of the color stop positions of a linear gradient
doesn't take into account that the first and last position can be
the same. In such case the positions are computed dividing by 0.
Clamp the positions to 1 without moving the end points in such
case to match what other browsers do. This ensures that positions
passed to the platform gradient are in the 0-1 range which fixes a
crash due to an assert in BlackBerry port running test
fast/forms/type-after-focus-rule-shrink-width.html.
Test: fast/gradients/css3-color-stop-invalid.html
* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::addStops):
2013-04-21 Benjamin Poulain <benjamin@webkit.org>
Fix some minor bad use of strings in WebCore
https://bugs.webkit.org/show_bug.cgi?id=114907
Reviewed by Darin Adler.
* editing/Editor.cpp:
(WebCore::Editor::selectedText): This was implicitly getting the emptyString()
for the argument "".
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::takeResults): ditto.
2013-04-21 Dirk Schulze <krit@webkit.org>
[Part 4] Parse the custom() function in -webkit-filter: parse the matN() functions
https://bugs.webkit.org/show_bug.cgi?id=71444
Reviewed by Dean Jackson.
Custom filter parameters should support mat2 to mat4 value functions. Added parsing
and style resolving bits to support the matrix function values. A later patch will
add the matrices to the shader program.
https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#custom-filter-parameters
Modified existing tests to cover changes.
* GNUmakefile.list.am: Added WebKitCSSMatFunctionValue to individual build systems.
* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForCustomFilterMatParameter):
(WebCore):
(WebCore::valueForCustomFilterParameter):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseTransform):
(WebCore::CSSParser::parseMatValue):
(WebCore):
(WebCore::CSSParser::parseCustomFilterParameters):
* css/CSSParser.h:
(WebCore):
* css/CSSValue.cpp:
(WebCore::CSSValue::reportMemoryUsage):
(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
(WebCore::CSSValue::cloneForCSSOM):
* css/CSSValue.h:
(WebCore::CSSValue::isWebKitCSSMatFunctionValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::parseCustomFilterArrayParameter):
(WebCore::StyleResolver::parseCustomFilterParameter):
* css/StyleResolver.h:
(StyleResolver):
* css/WebKitCSSMatFunctionValue.cpp:
(WebCore::WebKitCSSMatFunctionValue::WebKitCSSMatFunctionValue):
(WebCore::WebKitCSSMatFunctionValue::customCssText):
(WebCore::WebKitCSSMatFunctionValue::cloneForCSSOM):
(WebCore::WebKitCSSMatFunctionValue::equals):
(WebCore::WebKitCSSMatFunctionValue::reportDescendantMemoryUsage):
* css/WebKitCSSMatFunctionValue.h:
(WebKitCSSMatFunctionValue):
(WebCore::WebKitCSSMatFunctionValue::create):
* platform/graphics/filters/CustomFilterArrayParameter.h:
(WebCore::CustomFilterArrayParameter::create):
(WebCore::CustomFilterArrayParameter::CustomFilterArrayParameter):
* platform/graphics/filters/CustomFilterParameter.h:
(CustomFilterParameter):
* platform/graphics/filters/CustomFilterRenderer.cpp:
(WebCore::CustomFilterRenderer::bindProgramParameters):
2013-04-12 Balazs Kelemen <kbalazs@webkit.org>
[GStreamer] Media attribute preload="none" is not honored
https://bugs.webkit.org/show_bug.cgi?id=114357
Reviewed by Philippe Normand.
Fix the logic that prevents live streams from being buffered to not make preload="none" ignored.
Test: http/tests/media/video-preload.html
We need a http test because the bug does not triggered with local files.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(MediaPlayerPrivateGStreamer):
Remove m_originalPreloadWasAutoAndWasOverridden because it is not necessary and it is causing this bug.
Currently if the tag has preload="none" attribute we set m_preload to Auto in the constructor. After that
MedaPlayer calls setPreload(None), so we set m_originalPreloadWasAutoAndWasOverridden to true and later
reset m_preload to Auto. The error prone factor here is that the m_preload member is repeated in the
private class and setPreload is also used there. This seems to be necessary because we need to be able
to ignore preloading if this is a live stream. Fortunately the original parsed value is available in the
constructor, so we can use that. This will give the correct value that we should override only in the case
of a live stream and that's it, we don't need to reset it later to Auto.
Furthermore, we should ignore setting preload to auto from js if it is a live stream. This patch also handles
this with an early return in setPreload.
2013-04-21 Carlos Garcia Campos <cgarcia@igalia.com>
Widget should not depend on AXObjectCache
https://bugs.webkit.org/show_bug.cgi?id=114514
Reviewed by Chris Fleizach.
Move AXObjectCache usage from platform files to FrameView.
* WebCore.exp.in: Update symbols.
* page/FrameView.cpp:
(WebCore::FrameView::didAddScrollbar): Handle scrollbar updates in
AXObjectCache.
(WebCore::FrameView::willRemoveScrollbar): Handle scrollbar
updates in AXObjectCache and remove the scrollbar from the cache.
* page/FrameView.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::setHasHorizontalScrollbar): Use
didAddScrollbar/willRemoveScrollbar
(WebCore::ScrollView::setHasVerticalScrollbar): Ditto.
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::didAddScrollbar): This is the old
didAddVerticalScrollbar and didAddHorizontalScrollbar joined in a
single method that receives a ScrollbarOrientation parameter.
(WebCore::ScrollableArea::willRemoveScrollbar): This is the old
willRemoveVerticalScrollbar and
willRemoveHorizontalScrollbarScrollbar joined in a single method
that receives a ScrollbarOrientation parameter.
* platform/ScrollableArea.h:
(ScrollableArea):
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::~Scrollbar): Remove AXObjectCache usage.
* platform/Scrollbar.h:
* platform/Widget.h:
(Widget): Remove axObjectCache() method.
* platform/mac/ScrollAnimatorMac.h:
(ScrollAnimatorMac):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::createScrollbar): Use didAddScrollbar.
(WebCore::RenderLayer::destroyScrollbar): Use willRemoveScrollbar.
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::createScrollbar): Use didAddScrollbar.
(WebCore::RenderListBox::destroyScrollbar): Use willRemoveScrollbar.
2013-04-20 Dirk Schulze <krit@webkit.org>
[Part 5] Parse color value for custom() function parameters
https://bugs.webkit.org/show_bug.cgi?id=114902
Reviewed by Dean Jackson.
Custom filter parameters should support color values. Added parsing
and style resolving bits to support color values. A later patch will
add the color values to the shader program.
https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#custom-filter-parameters
Modified existing tests to cover changes.
* GNUmakefile.list.am: Added CustomFilterColorParameter to support color values
as custom filter parameters.
* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForCustomFilterColorParameter):
(WebCore):
(WebCore::valueForCustomFilterParameter):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseCustomFilterParameters):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::parseCustomFilterColorParameter):
(WebCore):
(WebCore::StyleResolver::parseCustomFilterParameter):
* css/StyleResolver.h:
(StyleResolver):
* platform/graphics/filters/CustomFilterColorParameter.h: Added.
(WebCore):
(WebCore::blendFunc):
(CustomFilterColorParameter):
(WebCore::CustomFilterColorParameter::create):
(WebCore::CustomFilterColorParameter::blend):
(WebCore::CustomFilterColorParameter::color):
(WebCore::CustomFilterColorParameter::setColor):
(WebCore::CustomFilterColorParameter::operator==):
(WebCore::CustomFilterColorParameter::CustomFilterColorParameter):
(WebCore::CustomFilterColorParameter::~CustomFilterColorParameter):
* platform/graphics/filters/CustomFilterParameter.h:
(CustomFilterParameter):
* platform/graphics/filters/CustomFilterRenderer.cpp:
(WebCore::CustomFilterRenderer::bindProgramParameters):
2013-04-20 Glenn Adams <glenn@skynav.com>
REGRESSION (r147588): Line breaks occur in the middle of Hebrew words at haaertz.co.il and other websites
https://bugs.webkit.org/show_bug.cgi?id=114721
Reviewed by Dean Jackson.
Tests: fast/text/line-break-after-empty-inline-hebrew.html
fast/text/line-break-after-inline-latin1.html
If prior context changes content or length after creating line break iterator, then need to
create new iterator with new prior context instead of using cached iterator with old prior context.
* platform/text/TextBreakIterator.h:
(WebCore::LazyLineBreakIterator::LazyLineBreakIterator): Initialize members to cache reference to initialized prior context.
(WebCore::LazyLineBreakIterator::get): Create new iterator if prior context content reference changes.
(WebCore::LazyLineBreakIterator::resetStringAndReleaseIterator): Reset cached prior context references.
(LazyLineBreakIterator): Add members to cache reference to initialized prior context.
2013-04-19 Ryuan Choi <ryuan.choi@samsung.com>
[EFL] Arrow of combo box are drawn twice
https://bugs.webkit.org/show_bug.cgi?id=113917
Reviewed by Gyuyoung Kim.
combo_button_icon part is for arrow so that images of combo_button part should
not contain arrow.
No new tests required due to no behavioral change.
* platform/efl/DefaultTheme/widget/combo/combo_focus_button.png:
* platform/efl/DefaultTheme/widget/combo/combo_hover_button.png:
* platform/efl/DefaultTheme/widget/combo/combo_press_button.png:
2013-04-19 Brendan Long <b.long@cablelabs.com>
Add interfaces and stubs for audio and video tracks
https://bugs.webkit.org/show_bug.cgi?id=113965
Reviewed by Jer Noble.
No new tests because there's no implementations, so there's nothing
interesting to test.
* CMakeLists.txt: Add AudioTrack, VideoTrack, AudioTrackList and VideoTrackList.
* DerivedSources.cpp: Same.
* DerivedSources.make: Same.
* DerivedSources.pri: Same.
* GNUmakefile.list.am: Same.
* Target.pri: Same.
* UseJSC.cmake: Same.
* WebCore.vcproj/WebCore.vcproj: Same.
* WebCore.xcodeproj/project.pbxproj: Same.
* bindings/gobject/GNUmakefile.am: Same.
* bindings/js/JSAudioTrackCustom.cpp: Added, based on JSTestTrackCustom
* bindings/js/JSAudioTrackListCustom.cpp: Same.
* bindings/js/JSBindingsAllInOne.cpp: Add AudioTrack, VideoTrack, AudioTrackList and VideoTrackList.
* bindings/js/JSVideoTrackCustom.cpp: Added, based on JSTestTrackCustom
* bindings/js/JSVideoTrackListCustom.cpp: Same.
* dom/EventTarget.h: Make AudioTrackList and VideoTrackList event targets.
* dom/EventTargetFactory.in: Same.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Add m_audioTracks and m_videoTracks
(WebCore::HTMLMediaElement::~HTMLMediaElement): Clear clients for audio and video tracks
(WebCore::HTMLMediaElement::audioTrackEnabledChanged): Added.
(WebCore::HTMLMediaElement::videoTrackSelectedChanged): Added.
(WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack): Added, based on mediaPlayerDidAddTextTrack
(WebCore::HTMLMediaElement::mediaPlayerDidAddVideoTrack): Same.
(WebCore::HTMLMediaElement::mediaPlayerDidRemoveAudioTrack): Added, based on mediaPlayerDidRemoveTextTrack
(WebCore::HTMLMediaElement::mediaPlayerDidRemoveVideoTrack): Same.
(WebCore::HTMLMediaElement::addAudioTrack): Added, based on addTextTrack
(WebCore::HTMLMediaElement::addVideoTrack): Same.
(WebCore::HTMLMediaElement::removeAudioTrack): Added, based on removeTextTrack
(WebCore::HTMLMediaElement::removeVideoTrack): Added, based on removeTextTrack
(WebCore::HTMLMediaElement::removeAllInbandTracks): Remove audio and video tracks too
(WebCore::HTMLMediaElement::audioTracks): Added, based on textTracks
(WebCore::HTMLMediaElement::videoTracks): Added, based on textTracks
(WebCore::HTMLMediaElement::reportMemoryUsage): Add audio and video tracks
* html/HTMLMediaElement.h: Add audioTracks and videoTracks and related functions
* html/HTMLMediaElement.idl: Add audioTracks and videoTracks
* html/track/AudioTrack.cpp: Added, based on TextTrack and InbandTextTrack.
* html/track/AudioTrack.h: Same.
* html/track/AudioTrack.idl: Added.
* html/track/AudioTrackList.cpp: Added, based on TextTrackList
* html/track/AudioTrackList.h: Same.
* html/track/AudioTrackList.idl: Added.
* html/track/TextTrackList.h: Add missing OVERRIDE on interfaceName()
* html/track/VideoTrack.cpp: Added, based on TextTrack and InbandTextTrack.
* html/track/VideoTrack.h: Same.
* html/track/VideoTrack.idl: Added.
* html/track/VideoTrackList.cpp: Added, based on TextTrackList
* html/track/VideoTrackList.h: Same.
* html/track/VideoTrackList.idl: Added.
* platform/graphics/AudioTrackPrivate.h: Added, based on InbandTextTrackPrivate.h
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::addAudioTrack): Added, based on addTextTrack
(WebCore::MediaPlayer::removeAudioTrack): Added, based on removeTextTrack
(WebCore::MediaPlayer::addVideoTrack): Added, based on addTextTrack
(WebCore::MediaPlayer::removeVideoTrack): Added, based on removeTextTrack
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerDidAddAudioTrack): Added, based on mediaPlayerDidAddTextTrack
(WebCore::MediaPlayerClient::mediaPlayerDidAddVideoTrack): Same
(WebCore::MediaPlayerClient::mediaPlayerDidRemoveAudioTrack): Added, based on mediaPlayerDidRemoveTextTrack
(WebCore::MediaPlayerClient::mediaPlayerDidRemoveVideoTrack): Same
* platform/graphics/VideoTrackPrivate.h: Added, based on InbandTextTrackPrivate.h
2013-04-19 Bear Travis <betravis@adobe.com>
[CSS Exclusions] Implement empty segments for multiple-segment shape-insides
https://bugs.webkit.org/show_bug.cgi?id=100049
Reviewed by David Hyatt.
Content should not overflow a shape-inside segment, even if that means no content
will be placed in that segment. Overflow may be pushed to outside the shape. This
patch removes the restriction that every line must consume at least some text
input while inside a shape-inside. Content that does not fit is pushed down until
it does, either inside the shape or just below it.
Test: fast/exclusions/shape-inside/shape-inside-empty-segments.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::constructBidiRunsForSegment): Do not include empty segments for
consideration, as the actual BidiRuns construction expects to consume at
least one character.
(WebCore::constructBidiRunsForLine): Ditto.
(WebCore::firstPositiveWidth): Find the first positive word measurement width,
as there may be some empty word break measurements inserted.
(WebCore::adjustLogicalLineTop): Move the current line down, if necessary, to
fit it within the shape inside.
(WebCore::RenderBlock::layoutRunsAndFloatsInRange): If nothing fit in the
current segment, find the first available position for the smallest item
at the beginning of the text.
(WebCore::RenderBlock::LineBreaker::nextLineBreak): Return an empty segment
for a line that is inside the shape, but has no segments.
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Do not consume
input to meet minimum size requirements if you are inside a shape.
2013-04-19 Ryosuke Niwa <rniwa@webkit.org>
Add a missing null pointer check after r148759.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock):
2013-04-19 Benjamin Poulain <benjamin@webkit.org>
Use Vector instead of StringBuilder for CSSPreloadScanner's buffers
https://bugs.webkit.org/show_bug.cgi?id=114794
Reviewed by Ryosuke Niwa.
Cleanup for other String changes.
CSSPreloadScanner only handles UChar, StringBuilder was a little
overkill.
* html/parser/CSSPreloadScanner.cpp:
(WebCore):
(WebCore::ruleEqualIgnoringCase):
(WebCore::CSSPreloadScanner::emitRule):
* html/parser/CSSPreloadScanner.h:
2013-04-19 Benjamin Poulain <benjamin@webkit.org>
StyledMarkupAccumulator::appendText() should not allocate an intermediary StringBuilder
https://bugs.webkit.org/show_bug.cgi?id=114847
Reviewed by Geoffrey Garen.
For some reason StyledMarkupAccumulator::appendText() was allocating a separate buffer
for invoking appendStyleNodeOpenTag. This is a bad idea.
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::appendStyleNodeOpenTag):
(WebCore::StyledMarkupAccumulator::appendText):
2013-04-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Support the SourceMap header, X-SourceMap was deprecated
https://bugs.webkit.org/show_bug.cgi?id=114888
Check first for SourceMap, then fallback to X-SourceMap. Leaving in
support for the deprecated header because most tools and articles
online mention that version and have not yet updated.
Reviewed by Timothy Hatcher.
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::sourceMapURLForScript):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::sourceMapURLForResource):
2013-04-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Backend should detect sourceMappingURLs in CSS Resources
https://bugs.webkit.org/show_bug.cgi?id=114854
Reviewed by Timothy Hatcher.
Test: http/tests/inspector/network/css-source-mapping-url.html
* inspector/Inspector.json:
- Page.getResourceTree - add sourceMapURL to resource payloads
- Network.loadingFinished and Network.requestServedFromMemoryCache,
include the sourceMapURL in the results.
* inspector/ContentSearchUtils.h:
* inspector/ContentSearchUtils.cpp:
(WebCore::ContentSearchUtils::scriptCommentPattern):
(WebCore::ContentSearchUtils::stylesheetCommentPattern):
(WebCore::ContentSearchUtils::findMagicComment):
(WebCore::ContentSearchUtils::findScriptSourceURL):
(WebCore::ContentSearchUtils::findScriptSourceMapURL):
(WebCore::ContentSearchUtils::findStylesheetSourceMapURL):
Separate Script and Stylesheet regex pattern creation, but
share the search function using the pattern.
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::sourceMapURLForScript):
(WebCore::InspectorDebuggerAgent::didParseSource):
Update function names. Check for the SourceMap header before
checking for a sourceMappingURL comment.
* inspector/InspectorPageAgent.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::sourceMapURLForResource):
(WebCore::InspectorPageAgent::buildObjectForFrameTree):
Provide the sourceMapURL for Page.getResourceTree.
* inspector/InspectorResourceAgent.cpp:
(WebCore::buildObjectForCachedResource):
(WebCore::InspectorResourceAgent::didFinishLoading):
(WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
Include sourceMapURLs in finish loading and request served from cache.
2013-04-19 Shawn Singh <shawnsingh@chromium.org>
Remove non-overlap testing code in RenderLayerCompositor
https://bugs.webkit.org/show_bug.cgi?id=85521
Reviewed by Simon Fraser.
m_compositingConsultsOverlap is always true in the current
code. This patch removes this flag, and removes dead code that is
never executed because it was never false.
No new tests, no change in behavior. The cleanup is covered by
existing tests.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateCompositingLayersAfterScroll):
removed if-statement that is always true.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::shouldClipCompositedBounds):
removed if-statement that would never get triggered.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::updateCompositingLayers):
removed m_compositingConsultsOverlap, and retained the code as if the flag were "true".
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
2013-04-19 Roger Fong <roger_fong@apple.com>
Unreviewed. WebKit_Source is incorrectly set.
* WebCore.vcxproj/WebCore.make:
2013-04-18 Ryosuke Niwa <rniwa@webkit.org>
Make loops in RenderObject::containingBlock homogeneous in their forms to simplify
https://bugs.webkit.org/show_bug.cgi?id=114853
Reviewed by David Hyatt.
This patch prepares us to avoid computing containing blocks during a depth-first traversal of the render tree.
Extracted inline functions out of RenderBlock::containingBlock to make the code simpler. Also moved the code
to obtain the nearest containing block out of the loop for a relatively positioned inline.
* rendering/RenderObject.cpp:
(WebCore::isNonReplacedInlineInFlowPosition): Extracted.
(WebCore::isContainingBlockCandidateForAbsolutelyPositionedObject): Extracted.
(WebCore::isNonRenderBlockInline): Extracted.
(WebCore::RenderObject::containingBlock): Refactored as stated above.
2013-04-19 Tim Horton <timothy_horton@apple.com>
WebKit should not decode or support PDF favicons
https://bugs.webkit.org/show_bug.cgi?id=114650
<rdar://problem/10133914>
Reviewed by Dan Bernstein.
Drop the image data on the floor if it begins with the PDF magic number.
No other browser I can find on OS X supports PDF favicons (by experimentation),
and we do not properly display them.
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::notifyFinished):
2013-04-19 Martin Robinson <mrobinson@igalia.com>
Remove the OpenVG backend
https://bugs.webkit.org/show_bug.cgi?id=114881
Reviewed by Tim Horton.
* platform/graphics/FloatRect.h:
(FloatRect): Remove #ifdefs for OpenVG backend.
* platform/graphics/GraphicsContext.cpp:
(WebCore): Ditto.
* platform/graphics/GraphicsContext.h:
* platform/graphics/NativeImagePtr.h:
(WebCore): Ditto.
* platform/graphics/Path.cpp:
(WebCore): Ditto.
* platform/graphics/Path.h:
* platform/graphics/openvg/EGLDisplayOpenVG.cpp: Removed.
* platform/graphics/openvg/EGLDisplayOpenVG.h: Removed.
* platform/graphics/openvg/EGLUtils.h: Removed.
* platform/graphics/openvg/GraphicsContextOpenVG.cpp: Removed.
* platform/graphics/openvg/ImageOpenVG.cpp: Removed.
* platform/graphics/openvg/PainterOpenVG.cpp: Removed.
* platform/graphics/openvg/PainterOpenVG.h: Removed.
* platform/graphics/openvg/PathOpenVG.cpp: Removed.
* platform/graphics/openvg/PlatformPathOpenVG.h: Removed.
* platform/graphics/openvg/SharedResourceOpenVG.cpp: Removed.
* platform/graphics/openvg/SharedResourceOpenVG.h: Removed.
* platform/graphics/openvg/SurfaceOpenVG.cpp: Removed.
* platform/graphics/openvg/SurfaceOpenVG.h: Removed.
* platform/graphics/openvg/TiledImageOpenVG.cpp: Removed.
* platform/graphics/openvg/TiledImageOpenVG.h: Removed.
* platform/graphics/openvg/VGUtils.cpp: Removed.
* platform/graphics/openvg/VGUtils.h: Removed.
* platform/graphics/transforms/AffineTransform.h:
(AffineTransform): Ditto.
* platform/graphics/transforms/TransformationMatrix.h:
(TransformationMatrix): Ditto.
* platform/image-decoders/openvg/ImageDecoderOpenVG.cpp: Removed.
2013-04-19 Andrei Bucur <abucur@adobe.com>
ContainerNode::removeChildren should first detach the children then remove them
https://bugs.webkit.org/show_bug.cgi?id=113433
Reviewed by Ryosuke Niwa.
Currently, ContainerNode::removeChildren initially removes the nodes from the DOM tree and then
calls detach() on each of them. This is anti-intuitive and can lead to subtle bugs because the
detached renderers are not backed by a valid DOM tree any more. With the patch, the nodes are first
detached and then removed from the DOM.
The patch also lets the tree in a consistent state after each node removal by clearing the previous
sibling pointer of the node following the one removed.
I haven't found any proof the performance will get worse if the detachment happens when the children
are still in the DOM tree.
Tests: No changed visible functionality.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeChildren):
2013-04-19 Dirk Schulze <krit@webkit.org>
Refactor transform code in StyleResolver
https://bugs.webkit.org/show_bug.cgi?id=114874
Reviewed by Andreas Kling.
Move transform code frome StyleResolver into own files.
Refactoring, no changes in functionality.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::parseCustomFilterTransformParameter):
* css/StyleResolver.h:
* css/TransformFunctions.cpp: Added.
(WebCore):
(WebCore::transformOperationType):
(WebCore::convertToFloatLength):
(WebCore::transformsForValue):
* css/TransformFunctions.h: Added.
(WebCore):
* css/WebKitCSSMatrix.cpp:
(WebCore::WebKitCSSMatrix::setMatrixValue):
2013-04-19 Erik Arvidsson <arv@chromium.org>
Rename TextTrackList owner to element for consistency
https://bugs.webkit.org/show_bug.cgi?id=79822
Reviewed by Eric Carlson.
No new tests. Covered by existing tests.
* bindings/js/JSTextTrackListCustom.cpp:
(WebCore::JSTextTrackListOwner::isReachableFromOpaqueRoots):
(WebCore::JSTextTrackList::visitChildren):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement):
* html/track/TextTrackList.cpp:
(TextTrackList::append):
(TextTrackList::remove):
* html/track/TextTrackList.h:
(WebCore::TextTrackList::create):
* html/track/TrackListBase.cpp:
(TrackListBase::TrackListBase):
(TrackListBase::remove):
* html/track/TrackListBase.h:
(WebCore::TrackListBase::clearElement):
(WebCore::TrackListBase::element):
(TrackListBase):
2013-04-19 Andreas Kling <akling@apple.com>
[Mac] ComplexTextController is slow with large numbers of text runs.
<http://webkit.org/b/114875>
<rdar://problem/13337036>
Reviewed by Dan Bernstein.
Instead of iterating over the text runs in indexOfCurrentRun() to figure out the leftmost glyph,
create a lookup table of [run# -> distance in glyphs] at ComplexTextController construction time.
This avoids O(n^2) behavior in indexOfCurrentRun().
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::ComplexTextController):
(WebCore::ComplexTextController::indexOfCurrentRun):
* platform/graphics/mac/ComplexTextController.h:
(ComplexTextController):
2013-04-19 Mario Sanchez Prada <mario.prada@samsung.com>
[GTK] Minimize calls to GailTextUtil in AtkText implementation
https://bugs.webkit.org/show_bug.cgi?id=114868
Reviewed by Martin Robinson.
Create a new helper function to concentrate inside of it the calls to
gail_text_util_get_text(), so we can get rid of it later more easily.
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(webkitAccessibleTextGetTextForOffset): New helper function.
(webkitAccessibleTextGetTextAfterOffset): Rely on the new function.
(webkitAccessibleTextGetTextAtOffset): Ditto.
(webkitAccessibleTextGetTextBeforeOffset): Ditto.
2013-04-19 Noam Rosenthal <noam@webkit.org>
[Texmap] Implementation for pattern compositing
https://bugs.webkit.org/show_bug.cgi?id=109588
Reviewed by Allan Sandfeld Jensen.
Enable pattern compositing (background images) for CoordinatedGraphics/TextureMapperGL.
Use the existing patternTransform shader uniform, multiplying it by a matrix calculated
using the contentsRect, tileSize and tilePhase.
Covered by existing tests in compositing/patterns.
* platform/graphics/GraphicsLayer.h:
(GraphicsLayer):
Conditionally enable pattern compositing for coordinated graphics.
* platform/graphics/texmap/TextureMapper.cpp:
(WebCore::TextureMapper::TextureMapper):
* platform/graphics/texmap/TextureMapper.h:
(WebCore::TextureMapper::setPatternTransform):
(WebCore::TextureMapper::setWrapMode):
(WebCore::TextureMapper::wrapMode):
(WebCore::TextureMapper::patternTransform):
Add wrapMode and patternTransform properties to the TextureMapper state.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
Paint with GL_REPEAT and a pattern transform when needed.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computePatternTransformIfNeeded):
(WebCore):
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::setContentsRect):
(WebCore::TextureMapperLayer::setContentsTileSize):
(WebCore::TextureMapperLayer::setContentsTilePhase):
Apply the patternTransform from the tile size/phase.
* platform/graphics/texmap/TextureMapperLayer.h:
(WebCore::TextureMapperLayer::TextureMapperLayer):
(TextureMapperLayer):
(WebCore::TextureMapperLayer::setShouldMapBackingStoreToContentsRect):
(State):
(WebCore::TextureMapperLayer::State::State):
Allow the client to configure whether a layer uses its bounds or its
contents rect to paint the backing store.
This is needed now since layers with background images, unlike layers
with regular images, may have bounds that are greater than the contents
rect.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::setContentsTileSize):
(WebCore):
(WebCore::CoordinatedGraphicsLayer::setContentsTilePhase):
(WebCore::CoordinatedGraphicsLayer::setShouldSupportContentsTiling):
(WebCore::GraphicsLayer::supportsContentsTiling):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
(CoordinatedGraphicsLayer):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::setLayerState):
(WebCore::CoordinatedGraphicsScene::assignImageBackingToLayer):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
(CoordinatedGraphicsLayerState):
Logic to pass the tileSize/tilePhase from CoordinatedGraphicsLayer
to TextureMapperLayer.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
Don't reset the layer's image contents when this is a directly composited image.
2013-04-19 ChangSeok Oh <changseok.oh@collabora.com>
[GTK][AC] Manage actor's children by using clutter's own way.
https://bugs.webkit.org/show_bug.cgi?id=114257
Reviewed by Gustavo Noronha Silva.
I believe we don't need to maintain a children list of GList. We can do it
by using clutter APIs like clutter_actor_get_children, clutter_actor_get_first_child, etc.
No new tests since no functionality changed.
* platform/graphics/clutter/GraphicsLayerActor.cpp:
(graphics_layer_actor_init):
(graphicsLayerActorAllocate):
(graphicsLayerActorPaint):
(graphicsLayerActorRemoveAll):
(graphicsLayerActorGetnChildren):
(graphicsLayerActorReplaceSublayer):
(graphicsLayerActorInsertSublayer):
* platform/graphics/clutter/GraphicsLayerActor.h:
(_GraphicsLayerActor):
2013-04-19 ChangSeok Oh <changseok.oh@collabora.com>
[GTK][AC] Support masksToBounds for clutter AC backend.
https://bugs.webkit.org/show_bug.cgi?id=114113
Reviewed by Gustavo Noronha Silva.
We can support the masksToBounds property by using clutter_actor_set_clip simply.
Covered by existing AC tests.
* platform/graphics/clutter/GraphicsLayerActor.cpp:
(graphicsLayerActorSetMasksToBounds):
* platform/graphics/clutter/GraphicsLayerActor.h:
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::GraphicsLayerClutter::setMasksToBounds):
(WebCore):
(WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerClutter::setupContentsLayer):
(WebCore::GraphicsLayerClutter::updateMasksToBounds):
* platform/graphics/clutter/GraphicsLayerClutter.h:
(GraphicsLayerClutter):
2013-04-19 Dan Beam <dbeam@chromium.org>
Remove unmaintained feature REQUEST_AUTOCOMPLETE
https://bugs.webkit.org/show_bug.cgi?id=114846
Reviewed by Kent Tamura.
* GNUmakefile.list.am: Remove AutocompleteErrorEvent.h include.
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore): Remove requestAutocomplete() runtime feature.
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures): Remove requestAutocomplete() runtime feature.
* dom/AutocompleteErrorEvent.h: Removed.
* dom/AutocompleteErrorEvent.idl: Removed.
* dom/EventNames.h: Remove `autocomplete` and `autocompleteerror` event names.
(WebCore):
* dom/EventNames.in: Remove `autocomplete` and `autocompleteerror` event names.
* html/HTMLAttributeNames.in: Remove `onautocomplete` and `onautocompleteerror` form attributes.
* html/HTMLFormElement.cpp: Remove requestAutocomplete() related code.
(WebCore::HTMLFormElement::HTMLFormElement): Remove timer and event queue for requestAutocomplete() related events.
(WebCore::HTMLFormElement::parseAttribute): Remove parsing of `onautocomplete` and `onautocompleterror`.
* html/HTMLFormElement.h: Remove requestAutocomplete() related members.
(HTMLFormElement):
* html/HTMLFormElement.idl: Remove public requestAutocomplete() API method.
* loader/EmptyClients.cpp: Remove stub implementation.
(WebCore):
* loader/EmptyClients.h: Remove stub interface.
(EmptyFrameLoaderClient):
* loader/FrameLoaderClient.h: Remove didRequestAutocomplete() from interface.
(FrameLoaderClient):
* page/DOMWindow.idl: Remove `AutocompleteErrorEvent` from window DOM interface.
2013-04-18 Timothy Hatcher <timothy@apple.com>
Add CSS.setStyleText to the Web Inspector protocol.
This provides a direct path for the Safari Web Inspector to live edit whole style rules.
https://webkit.org/b/109340
rdar://problem/13337211
Reviewed by Joseph Pecoraro.
* inspector/Inspector.json:
(CSS.setStyleText): Added.
* inspector/InspectorCSSAgent.cpp:
(InspectorCSSAgent::SetStyleTextAction):
(WebCore::InspectorCSSAgent::SetStyleTextAction::SetStyleTextAction): Added.
(WebCore::InspectorCSSAgent::SetStyleTextAction::perform): Added.
(WebCore::InspectorCSSAgent::SetStyleTextAction::undo): Added.
(WebCore::InspectorCSSAgent::SetStyleTextAction::redo): Added.
(WebCore::InspectorCSSAgent::SetStyleTextAction::mergeId): Added.
(WebCore::InspectorCSSAgent::SetStyleTextAction::merge): Added.
(WebCore::InspectorCSSAgent::SetPropertyTextAction::redo):
(WebCore::InspectorCSSAgent::setStyleText): Added.
* inspector/InspectorCSSAgent.h:
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyle::getText): Added.
(WebCore::InspectorStyle::setText): Added.
(WebCore::InspectorStyleSheet::setStyleText):
(WebCore::InspectorStyleSheetForInlineStyle::setStyleText):
* inspector/InspectorStyleSheet.h:
(WebCore::InspectorStyle::styleText): Added as an alias to getText.
(WebCore::InspectorStyle::applyStyleText): Added as an alias to setText.
2013-04-18 Jer Noble <jer.noble@apple.com>
Unreviewed gardening; fix bindings tests after r148700.
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTargetOwner::isReachableFromOpaqueRoots):
2013-04-18 Andy Estes <aestes@apple.com>
REGRESSION (r116645): Versions app's UI is munged in HiDPI due to background-size being reset to 'auto' when background short-hand is also specified
https://bugs.webkit.org/show_bug.cgi?id=114833
Reviewed by David Kilzer.
Added applicationIsVersions() to RuntimeApplicationChecks.
* WebCore.exp.in:
* platform/RuntimeApplicationChecks.cpp:
(WebCore::applicationIsVersions):
(WebCore):
* platform/RuntimeApplicationChecks.h:
(WebCore):
2013-04-18 Sam Weinig <sam@webkit.org>
Network Process crashing trying to read in IDNScriptWhiteList.txt
https://bugs.webkit.org/show_bug.cgi?id=114827
Reviewed by Anders Carlsson.
Move IDNScriptWhiteList.txt from WebKit to WebCore, so that the NetworkProcess does not have to link against
WebKit. It was a layering violation for WebCore to be trying to access WebKit resources anyway.
* Resources/IDNScriptWhiteList.txt: Copied from Source/WebKit/mac/Resources/IDNScriptWhiteList.txt.
* WebCore.xcodeproj/project.pbxproj:
* platform/mac/WebCoreNSURLExtras.mm:
(WebCore::readIDNScriptWhiteList):
2013-04-18 Simon Fraser <simon.fraser@apple.com>
Remove GraphicsLayerCA::constrainedSize() now that we can manage large layer memory use ourselves in TileController
https://bugs.webkit.org/show_bug.cgi?id=114834
Reviewed by Tim Horton.
GraphicsLayerCA::constrainedSize() was added to handle poor CATiledLayer behavior when layer sizes
got extremely large. Now that we no longer use CATiledLayer, remove this code. We can later add
tile memory bounding to TileController if that becomes necessary.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateGeometry):
* platform/graphics/ca/GraphicsLayerCA.h:
(GraphicsLayerCA):
2013-04-18 Alberto Garcia <agarcia@igalia.com>
Remove obsolete macros from libpng
https://bugs.webkit.org/show_bug.cgi?id=114817
Reviewed by Benjamin Poulain.
libpng 1.4 removes the png_voidp_NULL and png_error_ptr_NULL
macros. Null pointers must be used directly instead.
* platform/image-encoders/PNGImageEncoder.cpp:
(WebCore::compressRGBABigEndianToPNG):
2013-04-18 Jer Noble <jer.noble@apple.com>
CodeGeneratorJS.pm should generate "isFiringEventListeners()" check in isReachableFromOpaqueRoots()
https://bugs.webkit.org/show_bug.cgi?id=114784
Reviewed by Geoffrey Garen.
EventTarget subclasses shouldn't have to use CustomIsReachable directives
in order to keep their wrappers alive while firing event listeners.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
2013-04-17 Geoffrey Garen <ggaren@apple.com>
Renamed JSGlobalData to VM
https://bugs.webkit.org/show_bug.cgi?id=114777
Reviewed by Phil Pizlo.
* ForwardingHeaders/runtime/JSGlobalData.h: Removed.
* ForwardingHeaders/runtime/VM.h: Copied from Source/WebCore/ForwardingHeaders/runtime/JSGlobalData.h.
* WebCore.exp.in:
* WebCore.order:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* bindings/js/DOMObjectHashTableMap.cpp:
(WebCore::DOMObjectHashTableMap::mapFor):
* bindings/js/DOMObjectHashTableMap.h:
(JSC):
(DOMObjectHashTableMap):
* bindings/js/DOMWrapperWorld.cpp:
(WebCore::DOMWrapperWorld::DOMWrapperWorld):
(WebCore::DOMWrapperWorld::~DOMWrapperWorld):
(WebCore::normalWorld):
(WebCore::mainThreadNormalWorld):
* bindings/js/DOMWrapperWorld.h:
(WebCore::DOMWrapperWorld::create):
(WebCore::DOMWrapperWorld::vm):
(DOMWrapperWorld):
(WebCore):
* bindings/js/GCController.cpp:
(WebCore::collect):
(WebCore::GCController::garbageCollectSoon):
(WebCore::GCController::garbageCollectNow):
(WebCore::GCController::setJavaScriptGarbageCollectorTimerEnabled):
(WebCore::GCController::discardAllCompiledCode):
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::get):
(WebCore::set):
(WebCore::deserializeIDBValue):
(WebCore::deserializeIDBValueBuffer):
(WebCore::idbKeyToScriptValue):
* bindings/js/JSCallbackData.h:
(WebCore::JSCallbackData::JSCallbackData):
* bindings/js/JSCustomSQLStatementErrorCallback.cpp:
(WebCore::JSSQLStatementErrorCallback::handleEvent):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::JSCustomXPathNSResolver):
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSDOMBinding.cpp:
(WebCore::getHashTableForGlobalData):
(WebCore::reportException):
(WebCore::cacheDOMStructure):
* bindings/js/JSDOMBinding.h:
(WebCore::DOMConstructorObject::createStructure):
(WebCore::DOMConstructorWithDocument::finishCreation):
(WebCore::getDOMStructure):
(WebCore::setInlineCachedWrapper):
(WebCore):
(WebCore::jsStringWithCache):
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
(WebCore::JSDOMGlobalObject::finishCreation):
* bindings/js/JSDOMGlobalObject.h:
(JSDOMGlobalObject):
(WebCore::JSDOMGlobalObject::createStructure):
(WebCore::getDOMConstructor):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::JSDOMWindowBase):
(WebCore::JSDOMWindowBase::finishCreation):
(WebCore::JSDOMWindowBase::updateDocument):
(WebCore::JSDOMWindowBase::commonVM):
* bindings/js/JSDOMWindowBase.h:
(JSDOMWindowBase):
(WebCore::JSDOMWindowBase::createStructure):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::setLocation):
(WebCore::DialogHandler::dialogCreated):
(WebCore::DialogHandler::returnValue):
* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::JSDOMWindowShell):
(WebCore::JSDOMWindowShell::finishCreation):
(WebCore::JSDOMWindowShell::setWindow):
* bindings/js/JSDOMWindowShell.h:
(JSDOMWindowShell):
(WebCore::JSDOMWindowShell::create):
(WebCore::JSDOMWindowShell::createStructure):
* bindings/js/JSDOMWrapper.h:
(WebCore::JSDOMWrapper::JSDOMWrapper):
* bindings/js/JSDeviceMotionEventCustom.cpp:
(WebCore::createAccelerationObject):
(WebCore::createRotationRateObject):
* bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue):
* bindings/js/JSDictionary.h:
(WebCore::JSDictionary::JSDictionary):
* bindings/js/JSErrorHandler.cpp:
(WebCore::JSErrorHandler::handleEvent):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JSEventListener.h:
(WebCore::JSEventListener::setWrapper):
(WebCore::JSEventListener::jsFunction):
* bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::all):
(WebCore::JSHTMLDocument::setAll):
* bindings/js/JSHTMLTemplateElementCustom.cpp:
(WebCore::JSHTMLTemplateElement::content):
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::state):
* bindings/js/JSImageConstructor.cpp:
(WebCore::JSImageConstructor::finishCreation):
* bindings/js/JSImageConstructor.h:
(WebCore::JSImageConstructor::createStructure):
* bindings/js/JSImageDataCustom.cpp:
(WebCore::toJS):
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::InjectedScriptHost::nodeAsScriptValue):
(WebCore::JSInjectedScriptHost::functionDetails):
(WebCore::getJSListenerFunctions):
(WebCore::JSInjectedScriptHost::getEventListeners):
(WebCore::JSInjectedScriptHost::inspect):
* bindings/js/JSLazyEventListener.cpp:
(WebCore::JSLazyEventListener::initializeJSFunction):
* bindings/js/JSMessageEventCustom.cpp:
(WebCore::JSMessageEvent::data):
(WebCore::handleInitMessageEvent):
* bindings/js/JSMutationCallback.cpp:
(WebCore::JSMutationCallback::call):
* bindings/js/JSMutationObserverCustom.cpp:
(WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
* bindings/js/JSNodeFilterCondition.cpp:
(WebCore::JSNodeFilterCondition::JSNodeFilterCondition):
* bindings/js/JSNodeFilterCondition.h:
(WebCore::JSNodeFilterCondition::create):
(JSNodeFilterCondition):
* bindings/js/JSNodeFilterCustom.cpp:
(WebCore::toNodeFilter):
* bindings/js/JSPopStateEventCustom.cpp:
(WebCore::cacheState):
* bindings/js/JSRequestAnimationFrameCallbackCustom.cpp:
(WebCore::JSRequestAnimationFrameCallback::handleEvent):
* bindings/js/JSSQLResultSetRowListCustom.cpp:
(WebCore::JSSQLResultSetRowList::item):
* bindings/js/JSWorkerContextBase.cpp:
(WebCore::JSWorkerContextBase::JSWorkerContextBase):
(WebCore::JSWorkerContextBase::finishCreation):
* bindings/js/JSWorkerContextBase.h:
(WebCore::JSWorkerContextBase::createStructure):
(JSWorkerContextBase):
* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::recompileAllJSFunctions):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::ScheduledAction):
(WebCore::ScheduledAction::executeFunctionInContext):
* bindings/js/ScheduledAction.h:
(WebCore::ScheduledAction::ScheduledAction):
* bindings/js/ScriptCachedFrameData.cpp:
(WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
(WebCore::ScriptCachedFrameData::restore):
(WebCore::ScriptCachedFrameData::clear):
* bindings/js/ScriptCallStackFactory.cpp:
(WebCore::createScriptCallStack):
(WebCore::createScriptArguments):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::createWindowShell):
(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::createWorld):
(WebCore::ScriptController::getAllWorlds):
(WebCore::ScriptController::clearWindowShell):
(WebCore::ScriptController::initScript):
(WebCore::ScriptController::updateDocument):
(WebCore::ScriptController::cacheableBindingRootObject):
(WebCore::ScriptController::bindingRootObject):
(WebCore::ScriptController::clearScriptObjects):
(WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
* bindings/js/ScriptControllerMac.mm:
(WebCore::ScriptController::windowScriptObject):
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::dispatchDidPause):
* bindings/js/ScriptEventListener.cpp:
(WebCore::eventListenerHandlerBody):
(WebCore::eventListenerHandler):
(WebCore::eventListenerHandlerLocation):
* bindings/js/ScriptFunctionCall.cpp:
(WebCore::ScriptFunctionCall::call):
(WebCore::ScriptCallback::call):
* bindings/js/ScriptGCEvent.cpp:
(WebCore::ScriptGCEvent::getHeapSize):
* bindings/js/ScriptObject.cpp:
(WebCore::ScriptObject::ScriptObject):
(WebCore::ScriptGlobalObject::set):
* bindings/js/ScriptState.h:
(WebCore):
* bindings/js/ScriptValue.cpp:
(WebCore::ScriptValue::deserialize):
* bindings/js/ScriptValue.h:
(WebCore::ScriptValue::ScriptValue):
* bindings/js/ScriptWrappable.h:
(JSC):
(ScriptWrappable):
* bindings/js/ScriptWrappableInlines.h:
(WebCore::ScriptWrappable::setWrapper):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::readTerminal):
(WebCore::SerializedScriptValue::deserializeForInspector):
(WebCore::SerializedScriptValue::maybeThrowExceptionIfSerializationFailed):
* bindings/js/WebCoreJSClientData.h:
(WebCoreJSClientData):
(WebCore::initNormalWorldClientData):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::WorkerScriptController):
(WebCore::WorkerScriptController::~WorkerScriptController):
(WebCore::WorkerScriptController::initScript):
(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::scheduleExecutionTermination):
(WebCore::WorkerScriptController::isExecutionTerminating):
(WebCore::WorkerScriptController::disableEval):
* bindings/js/WorkerScriptController.h:
(JSC):
(WebCore::WorkerScriptController::vm):
(WorkerScriptController):
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
* bindings/objc/WebScriptObject.mm:
(+[WebScriptObject _convertValueToObjcValue:JSC::originRootObject:rootObject:]):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
(GenerateCallbackImplementation):
(JSValueToNative):
(GenerateConstructorDeclaration):
(GenerateConstructorHelperMethods):
* bindings/scripts/test/JS/JSFloat64Array.cpp:
(WebCore::getJSFloat64ArrayConstructorTable):
(WebCore::JSFloat64ArrayConstructor::finishCreation):
(WebCore::getJSFloat64ArrayPrototypeTable):
(WebCore::getJSFloat64ArrayTable):
(WebCore::JSFloat64Array::finishCreation):
(WebCore::JSFloat64Array::createPrototype):
* bindings/scripts/test/JS/JSFloat64Array.h:
(WebCore::JSFloat64Array::create):
(WebCore::JSFloat64Array::createStructure):
(JSFloat64Array):
(WebCore::JSFloat64ArrayPrototype::create):
(WebCore::JSFloat64ArrayPrototype::createStructure):
(WebCore::JSFloat64ArrayPrototype::JSFloat64ArrayPrototype):
(WebCore::JSFloat64ArrayConstructor::createStructure):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
(WebCore::JSTestActiveDOMObject::finishCreation):
(WebCore::JSTestActiveDOMObject::createPrototype):
* bindings/scripts/test/JS/JSTestActiveDOMObject.h:
(WebCore::JSTestActiveDOMObject::create):
(WebCore::JSTestActiveDOMObject::createStructure):
(JSTestActiveDOMObject):
(WebCore::JSTestActiveDOMObjectPrototype::create):
(WebCore::JSTestActiveDOMObjectPrototype::createStructure):
(WebCore::JSTestActiveDOMObjectPrototype::JSTestActiveDOMObjectPrototype):
(WebCore::JSTestActiveDOMObjectConstructor::createStructure):
* bindings/scripts/test/JS/JSTestCallback.cpp:
(WebCore::JSTestCallback::callbackWithNoParam):
(WebCore::JSTestCallback::callbackWithClass1Param):
(WebCore::JSTestCallback::callbackWithClass2Param):
(WebCore::JSTestCallback::callbackWithStringList):
(WebCore::JSTestCallback::callbackWithBoolean):
(WebCore::JSTestCallback::callbackRequiresThisToPass):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
(WebCore::JSTestCustomNamedGetter::finishCreation):
(WebCore::JSTestCustomNamedGetter::createPrototype):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
(WebCore::JSTestCustomNamedGetter::create):
(WebCore::JSTestCustomNamedGetter::createStructure):
(JSTestCustomNamedGetter):
(WebCore::JSTestCustomNamedGetterPrototype::create):
(WebCore::JSTestCustomNamedGetterPrototype::createStructure):
(WebCore::JSTestCustomNamedGetterPrototype::JSTestCustomNamedGetterPrototype):
(WebCore::JSTestCustomNamedGetterConstructor::createStructure):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructorConstructor::finishCreation):
(WebCore::JSTestEventConstructor::finishCreation):
(WebCore::JSTestEventConstructor::createPrototype):
* bindings/scripts/test/JS/JSTestEventConstructor.h:
(WebCore::JSTestEventConstructor::create):
(WebCore::JSTestEventConstructor::createStructure):
(JSTestEventConstructor):
(WebCore::JSTestEventConstructorPrototype::create):
(WebCore::JSTestEventConstructorPrototype::createStructure):
(WebCore::JSTestEventConstructorPrototype::JSTestEventConstructorPrototype):
(WebCore::JSTestEventConstructorConstructor::createStructure):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTargetConstructor::finishCreation):
(WebCore::JSTestEventTarget::finishCreation):
(WebCore::JSTestEventTarget::createPrototype):
* bindings/scripts/test/JS/JSTestEventTarget.h:
(WebCore::JSTestEventTarget::create):
(WebCore::JSTestEventTarget::createStructure):
(JSTestEventTarget):
(WebCore::JSTestEventTargetPrototype::create):
(WebCore::JSTestEventTargetPrototype::createStructure):
(WebCore::JSTestEventTargetPrototype::JSTestEventTargetPrototype):
(WebCore::JSTestEventTargetConstructor::createStructure):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::JSTestExceptionConstructor::finishCreation):
(WebCore::JSTestException::finishCreation):
(WebCore::JSTestException::createPrototype):
* bindings/scripts/test/JS/JSTestException.h:
(WebCore::JSTestException::create):
(WebCore::JSTestException::createStructure):
(JSTestException):
(WebCore::JSTestExceptionPrototype::create):
(WebCore::JSTestExceptionPrototype::createStructure):
(WebCore::JSTestExceptionPrototype::JSTestExceptionPrototype):
(WebCore::JSTestExceptionConstructor::createStructure):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::finishCreation):
(WebCore::JSTestInterface::finishCreation):
(WebCore::JSTestInterface::createPrototype):
* bindings/scripts/test/JS/JSTestInterface.h:
(WebCore::JSTestInterface::create):
(WebCore::JSTestInterface::createStructure):
(JSTestInterface):
(WebCore::JSTestInterfacePrototype::create):
(WebCore::JSTestInterfacePrototype::createStructure):
(WebCore::JSTestInterfacePrototype::JSTestInterfacePrototype):
(WebCore::JSTestInterfaceConstructor::createStructure):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
(WebCore::JSTestMediaQueryListListener::finishCreation):
(WebCore::JSTestMediaQueryListListener::createPrototype):
(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
(WebCore::JSTestMediaQueryListListener::create):
(WebCore::JSTestMediaQueryListListener::createStructure):
(JSTestMediaQueryListListener):
(WebCore::JSTestMediaQueryListListenerPrototype::create):
(WebCore::JSTestMediaQueryListListenerPrototype::createStructure):
(WebCore::JSTestMediaQueryListListenerPrototype::JSTestMediaQueryListListenerPrototype):
(WebCore::JSTestMediaQueryListListenerConstructor::createStructure):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorConstructor::finishCreation):
(WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
(WebCore::JSTestNamedConstructor::finishCreation):
(WebCore::JSTestNamedConstructor::createPrototype):
* bindings/scripts/test/JS/JSTestNamedConstructor.h:
(WebCore::JSTestNamedConstructor::create):
(WebCore::JSTestNamedConstructor::createStructure):
(JSTestNamedConstructor):
(WebCore::JSTestNamedConstructorPrototype::create):
(WebCore::JSTestNamedConstructorPrototype::createStructure):
(WebCore::JSTestNamedConstructorPrototype::JSTestNamedConstructorPrototype):
(WebCore::JSTestNamedConstructorConstructor::createStructure):
(WebCore::JSTestNamedConstructorNamedConstructor::createStructure):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNodeConstructor::finishCreation):
(WebCore::JSTestNode::finishCreation):
(WebCore::JSTestNode::createPrototype):
* bindings/scripts/test/JS/JSTestNode.h:
(WebCore::JSTestNode::create):
(WebCore::JSTestNode::createStructure):
(JSTestNode):
(WebCore::JSTestNodePrototype::create):
(WebCore::JSTestNodePrototype::createStructure):
(WebCore::JSTestNodePrototype::JSTestNodePrototype):
(WebCore::JSTestNodeConstructor::createStructure):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::finishCreation):
(WebCore::JSTestObj::finishCreation):
(WebCore::JSTestObj::createPrototype):
(WebCore::jsTestObjCachedAttribute1):
(WebCore::jsTestObjCachedAttribute2):
(WebCore::setJSTestObjConditionalAttr4Constructor):
(WebCore::setJSTestObjConditionalAttr5Constructor):
(WebCore::setJSTestObjConditionalAttr6Constructor):
(WebCore::setJSTestObjAnyAttribute):
(WebCore::setJSTestObjReplaceableAttribute):
* bindings/scripts/test/JS/JSTestObj.h:
(WebCore::JSTestObj::create):
(WebCore::JSTestObj::createStructure):
(JSTestObj):
(WebCore::JSTestObjPrototype::create):
(WebCore::JSTestObjPrototype::createStructure):
(WebCore::JSTestObjPrototype::JSTestObjPrototype):
(WebCore::JSTestObjConstructor::createStructure):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
(WebCore::JSTestOverloadedConstructors::finishCreation):
(WebCore::JSTestOverloadedConstructors::createPrototype):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
(WebCore::JSTestOverloadedConstructors::create):
(WebCore::JSTestOverloadedConstructors::createStructure):
(JSTestOverloadedConstructors):
(WebCore::JSTestOverloadedConstructorsPrototype::create):
(WebCore::JSTestOverloadedConstructorsPrototype::createStructure):
(WebCore::JSTestOverloadedConstructorsPrototype::JSTestOverloadedConstructorsPrototype):
(WebCore::JSTestOverloadedConstructorsConstructor::createStructure):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
(WebCore::JSTestSerializedScriptValueInterface::finishCreation):
(WebCore::JSTestSerializedScriptValueInterface::createPrototype):
(WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
(WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
(WebCore::JSTestSerializedScriptValueInterface::create):
(WebCore::JSTestSerializedScriptValueInterface::createStructure):
(JSTestSerializedScriptValueInterface):
(WebCore::JSTestSerializedScriptValueInterfacePrototype::create):
(WebCore::JSTestSerializedScriptValueInterfacePrototype::createStructure):
(WebCore::JSTestSerializedScriptValueInterfacePrototype::JSTestSerializedScriptValueInterfacePrototype):
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::createStructure):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsConstructor::finishCreation):
(WebCore::JSTestTypedefs::finishCreation):
(WebCore::JSTestTypedefs::createPrototype):
* bindings/scripts/test/JS/JSTestTypedefs.h:
(WebCore::JSTestTypedefs::create):
(WebCore::JSTestTypedefs::createStructure):
(JSTestTypedefs):
(WebCore::JSTestTypedefsPrototype::create):
(WebCore::JSTestTypedefsPrototype::createStructure):
(WebCore::JSTestTypedefsPrototype::JSTestTypedefsPrototype):
(WebCore::JSTestTypedefsConstructor::createStructure):
* bridge/c/CRuntimeObject.h:
(JSC::Bindings::CRuntimeObject::createStructure):
* bridge/c/c_instance.cpp:
(JSC::Bindings::CRuntimeMethod::create):
(JSC::Bindings::CRuntimeMethod::createStructure):
(JSC::Bindings::CRuntimeMethod::finishCreation):
* bridge/jsc/BridgeJSC.cpp:
(JSC::Bindings::Instance::createRuntimeObject):
* bridge/objc/ObjCRuntimeObject.h:
(JSC::Bindings::ObjCRuntimeObject::createStructure):
* bridge/objc/objc_instance.mm:
(ObjCRuntimeMethod::create):
(ObjCRuntimeMethod::createStructure):
(ObjCRuntimeMethod::finishCreation):
* bridge/objc/objc_runtime.h:
(JSC::Bindings::ObjcFallbackObjectImp::createStructure):
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
(JSC::Bindings::ObjcFallbackObjectImp::finishCreation):
* bridge/qt/qt_instance.cpp:
(JSC::Bindings::QtRuntimeObject::createStructure):
(JSC::Bindings::QtInstance::~QtInstance):
(JSC::Bindings::QtInstance::getQtInstance):
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::RuntimeArray):
(JSC::RuntimeArray::finishCreation):
* bridge/runtime_array.h:
(JSC::RuntimeArray::create):
(JSC::RuntimeArray::createStructure):
(RuntimeArray):
* bridge/runtime_method.cpp:
(JSC::RuntimeMethod::finishCreation):
* bridge/runtime_method.h:
(JSC::RuntimeMethod::create):
(JSC::RuntimeMethod::createStructure):
(RuntimeMethod):
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::RuntimeObject):
(JSC::Bindings::RuntimeObject::finishCreation):
* bridge/runtime_object.h:
(JSC::Bindings::RuntimeObject::createStructure):
* bridge/runtime_root.cpp:
(JSC::Bindings::RootObject::RootObject):
(JSC::Bindings::RootObject::gcProtect):
(JSC::Bindings::RootObject::gcUnprotect):
(JSC::Bindings::RootObject::updateGlobalObject):
(JSC::Bindings::RootObject::addRuntimeObject):
* bridge/runtime_root.h:
(RootObject):
* dom/Node.cpp:
* dom/Node.h:
(JSC):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::vm):
* dom/ScriptExecutionContext.h:
(JSC):
(ScriptExecutionContext):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createImageBuffer):
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::notifyFinished):
* inspector/ScriptArguments.cpp:
(WebCore::ScriptArguments::ScriptArguments):
* loader/icon/IconDatabaseBase.cpp:
(WebCore):
(WebCore::iconDatabase):
(WebCore::setGlobalIconDatabase):
* platform/qt/MemoryUsageSupportQt.cpp:
(WebCore::memoryUsageKB):
(WebCore::actualMemoryUsageKB):
* platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::createGlobalData):
* plugins/PluginView.cpp:
(WebCore::PluginView::start):
(WebCore::PluginView::stop):
(WebCore::PluginView::performRequest):
(WebCore::PluginView::npObject):
(WebCore::PluginView::privateBrowsingStateChanged):
* plugins/blackberry/PluginViewBlackBerry.cpp:
(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::platformStart):
(WebCore::PluginView::getWindowInfo):
* plugins/efl/PluginViewEfl.cpp:
(WebCore::PluginView::dispatchNPEvent):
* plugins/gtk/PluginViewGtk.cpp:
(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::handleKeyboardEvent):
(WebCore::PluginView::handleMouseEvent):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::platformStart):
* plugins/mac/PluginViewMac.mm:
(WebCore::PluginView::platformStart):
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::setNPWindowIfNeeded):
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::handleKeyboardEvent):
(WebCore::PluginView::handleMouseEvent):
(WebCore::PluginView::setNPWindowRect):
* testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::injectInternalsObject):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::dropProtection):
2013-04-18 Oliver Hunt <oliver@apple.com>
Fix windows build by moving template definition to JSDOMBinding.h
* bindings/js/JSDOMBinding.h:
(WebCore):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
* bindings/scripts/test/JS/JSTestException.cpp:
* bindings/scripts/test/JS/JSTestInterface.cpp:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
2013-04-18 Eric Carlson <eric.carlson@apple.com>
Forced subtitles never rendered
https://bugs.webkit.org/show_bug.cgi?id=114818
Reviewed by Jer Noble.
No new tests, media/track/track-forced-subtitles-in-band.html was updated to test this change.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::isRendered): "forced" tracks are rendered.
2013-04-17 Anders Carlsson <andersca@apple.com>
Change storage factory functions to take a PageGroup and Page respectively
https://bugs.webkit.org/show_bug.cgi?id=114776
Reviewed by Beth Dakin.
Change StorageNamespace::localStorageNamespace to take a PageGroup since WebKit2 needs
to know which local storage namespace belongs to which page group. Also remove the quota parameter from
the sessionStorageNamespace function since that's trivial to get from the Page.
* WebCore.exp.in:
* page/Page.cpp:
(WebCore::Page::sessionStorage):
* page/PageGroup.cpp:
(WebCore::PageGroup::localStorage):
* storage/StorageNamespace.cpp:
(WebCore::StorageNamespace::localStorageNamespace):
(WebCore::StorageNamespace::sessionStorageNamespace):
* storage/StorageNamespace.h:
* storage/StorageNamespaceImpl.cpp:
(WebCore::StorageNamespaceImpl::localStorageNamespace):
(WebCore::StorageNamespaceImpl::sessionStorageNamespace):
* storage/StorageNamespaceImpl.h:
* storage/StorageStrategy.cpp:
(WebCore::StorageStrategy::localStorageNamespace):
(WebCore::StorageStrategy::sessionStorageNamespace):
* storage/StorageStrategy.h:
2013-04-18 Martin Robinson <mrobinson@igalia.com>
[GTK] fast/canvas/DrawImageSinglePixelStretch.html fails
https://bugs.webkit.org/show_bug.cgi?id=58309
Reviewed by Alejandro G. Castro.
No new tests. This patch unskips a test.
Prevent sampling outside source boundaries, by creating subsurfaces from source surfaces.
This also requires careful handling of negative and floating source rectangles.
* platform/graphics/cairo/PlatformContextCairo.cpp:
(WebCore::PlatformContextCairo::drawSurfaceToContext): Use a subsurface to prevent sampling
outside rectangle boundaries.
2013-04-18 Jonathan Feldstein <jfeldstein@blackberry.com>
[BlackBerry] Improper initialization of ANGLEResources (resubmission)
https://bugs.webkit.org/show_bug.cgi?id=114814
Reviewed by Yong Li, Rob Buis
Internally reviewed by Maxim Mogilnitsky
MaxDrawBuffers, OES_standard_derivatives, OES_EGL_image_external and ARB_texture_rectangle
are initialized through the ShBuiltInResources function so these fields do not need to be
set again in GraphicsContext3DBlackBerry.cpp. In addition, the extension flags should not
be set to true without getExtension being called (Khronos WebGL specs, section 5.14.14.).
In fact, as a direct result of these extensions being enabled prior to calling
getExtension, a WebGL conformance suite test for GL_OES_standard_derivatives was failing.
* platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
2013-04-18 Xuefei Ren <xren@blackberry.com>
remove build warning(unused parameter)
https://bugs.webkit.org/show_bug.cgi?id=114670
Reviewed by Rob Buis.
remove warning(unused parameter) in
Source/WebCore/html/shadow/MediaControlsBlackBerry.cpp
Source/WebCore/loader/blackberry/CookieJarBlackBerry.cpp
Source/WebCore/platform/blackberry/AuthenticationChallengeManager.cpp
Source/WebCore/platform/blackberry/RenderThemeBlackBerry.cpp
Source/WebCore/platform/network/blackberry/ResourceResponseBlackBerry.cpp
Source/WebCore/platform/network/blackberry/SocketStreamHandleBlackBerry.cpp
Source/WebCore/plugins/blackberry/PluginViewBlackBerry.cpp
* html/shadow/MediaControlsBlackBerry.cpp:
(WebCore::MediaControlFullscreenFullscreenButtonElement::setIsFullscreen):
* loader/blackberry/CookieJarBlackBerry.cpp:
(WebCore::getRawCookies):
(WebCore::deleteCookie):
* platform/blackberry/AuthenticationChallengeManager.cpp:
(WebCore::AuthenticationChallengeManager::notifyChallengeResult):
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::RenderTheme::themeForPage):
* platform/network/blackberry/ResourceResponseBlackBerry.cpp:
(WebCore::ResourceResponse::doPlatformAdopt):
* platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
(WebCore::SocketStreamHandle::notifyStatusReceived):
* plugins/blackberry/PluginViewBlackBerry.cpp:
(WebCore::PluginView::invalidateRegion):
2013-04-18 Xuefei Ren <xren@blackberry.com>
remove build warning(unused parameter)
https://bugs.webkit.org/show_bug.cgi?id=114670
Reviewed by Rob Buis.
remove builde warning (unused parameter) in
Source/WebCore/platform/blackberry/CursorBlackBerry.cpp
* platform/blackberry/CursorBlackBerry.cpp:
(WebCore::Cursor::Cursor):
2013-04-18 Andreas Kling <akling@apple.com>
EditingStyle: Avoid some unnecessary CSSStyleDeclaration wrappers.
<http://webkit.org/b/114763>
Reviewed by Antti Koivisto.
removeEquivalentProperties(CSSStyleDeclaration) and removeEquivalentProperties(StylePropertySet)
only have different behavior if the CSSStyleDeclaration is computed style (they differ in handling
of the 'font-size' property.)
Avoid creating a CSSStyleDeclaration for StylePropertySets where we can just pass them in directly.
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::removeStyleAddedByNode):
(WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode):
2013-04-18 Allan Sandfeld Jensen <allan.jensen@digia.com>
Unset :hover in inner documents
https://bugs.webkit.org/show_bug.cgi?id=114446
Reviewed by Antonio Gomes.
Fixes a regression from r145126 where hover nodes in inner documents was sometimes
not unset. Additionally it uses the new api from r145126 to avoid an unnecessary
hit test in touch-event handling.
Test: fast/events/touch/frame-hover-update.html
* dom/Document.cpp:
(WebCore::Document::updateHoverActiveState):
* page/EventHandler.cpp:
(WebCore::shouldGesturesTriggerActive):
(WebCore::EventHandler::handleTouchEvent):
2013-04-18 Seokju Kwon <seokju.kwon@gmail.com>
Web Inspector: Toolbar icons are displayed incorrectly
https://bugs.webkit.org/show_bug.cgi?id=114792
Reviewed by Timothy Hatcher.
Inspector uses small toolbar icons when docking the inspector.
So icons should have different x position.
No tests because no behavior change is expected.
* inspector/front-end/inspector.css: Add missing 'background-position-x' values.
(body.dock-to-bottom .toolbar-item.profiles .toolbar-icon):
(body.dock-to-bottom .toolbar-item.cpu-profiler .toolbar-icon):
(body.dock-to-bottom .toolbar-item.css-profiler .toolbar-icon):
(body.dock-to-bottom .toolbar-item.heap-profiler .toolbar-icon):
(body.dock-to-bottom .toolbar-item.canvas-profiler .toolbar-icon):
(body.dock-to-bottom .toolbar-item.memory-chart-profiler .toolbar-icon):
(body.dock-to-bottom .toolbar-item.memory-snapshot-profiler .toolbar-icon):
2013-04-17 Jaehun Lim <ljaehun.lim@samsung.com>
[css3-text] Rendering -webkit-hanging value for text-indent from css3-text
https://bugs.webkit.org/show_bug.cgi?id=114663
Reviewed by Beth Dakin.
This patch is the rendering part to support hanging value for text-indent.
"hanging" means "Inverts which lines are affected."
It's prefixed and guarded by CSS3_TEXT flag.
Spec: http://dev.w3.org/csswg/css-text/#text-indent
Test: fast/css3-text/css3-text-indent/text-indent-each-line-hanging.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::requiresIndent): Inverted the return value when "-webkit-hanging" is applied.
2013-04-17 James Craig <james@cookiecrook.com>
AX: aria-level does not override implicit level on h1, h2, etc
https://bugs.webkit.org/show_bug.cgi?id=114692
Reviewed by Chris Fleizach.
aria-level now works on headings without an explicit role="heading" defined. Updated existing test coverage.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::headingLevel):
2013-04-17 Chris Fleizach <cfleizach@apple.com>
AX: VoiceOver says everything that isn't a link is a "clickable" in Safari reader?
https://bugs.webkit.org/show_bug.cgi?id=114687
Reviewed by Tim Horton.
VoiceOver is saying all text is clickable, because AXPress is exposed as an action on static text.
That is happening, because there's a click handler on the body element in this case.
I think the best plan to keep existing functionality, but fix this case is not to expose
the press action for static text when the handler is on the body element.
Test: platform/mac/accessibility/press-action-not-exposed-when-body-is-click-handler.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::mouseButtonListener):
Change from checking getAttributeEventListener to hasEventListeners. The former only
checks if "onclick" is installed on the element and does not work with addEventListener!
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isStaticText):
2013-04-17 Simon Fraser <simon.fraser@apple.com>
Fix GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush() to do predictive visible rect expansion
https://bugs.webkit.org/show_bug.cgi?id=114775
Reviewed by Tim Horton.
GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush() is intended to answer the question
"if your visible rect is changed to X, would any tiles be created or destroyed?".
However, for compositing layer tiled layers, we do some predictive visible rect expansion based on how
the visible rect is changing when we actually commit visible rect changes. recursiveVisibleRectChangeRequiresFlush()
was not doing that, causing it to give confusing answers, so fix it to do so.
Both now call adjustTiledLayerVisibleRect(), and it's cleaner to make this a static function.
A somewhat unrelated change is to take the layer bounds origin into account
in GraphicsLayerCA::computeVisibleRect(). Desktop WebKit never sets this, but it's used
on other platforms for composited scrolling, so needs to be taken into account
when computing visible rects.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush):
(WebCore::GraphicsLayerCA::computeVisibleRect):
(WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect):
(WebCore::GraphicsLayerCA::updateVisibleRect):
* platform/graphics/ca/GraphicsLayerCA.h:
(GraphicsLayerCA):
2013-04-17 Oliver Hunt <oliver@apple.com>
Automate generation of toJS function for classes that need to report extra memory usage
https://bugs.webkit.org/show_bug.cgi?id=114768
Reviewed by Geoff Garen.
Only really used by AudioBuffer for now. The other classes that need it can be
trivially refactored at a later date.
* Modules/webaudio/AudioBuffer.idl:
* bindings/js/JSAudioBufferCustom.cpp:
* bindings/js/JSDOMBinding.h:
(WebCore):
(HasMemoryCost):
(NoType):
(BaseMixin):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
2013-04-17 Dirk Schulze <krit@webkit.org>
BasicShapeFunctions should use RenderStyle instead of StyleResolver
https://bugs.webkit.org/show_bug.cgi?id=114743
Reviewed by Antti Koivisto.
BasicShapeFunctions does include RenderStyle instead of StyleResolver now.
This is a simple refactoring patch, no new tests.
* css/BasicShapeFunctions.cpp:
(WebCore::convertToLength): Use style and rootElementStyle directly.
(WebCore::basicShapeForValue): Ditto.
* css/BasicShapeFunctions.h:
(WebCore):
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyClipPath::applyValue):
(WebCore::ApplyPropertyExclusionShape::applyValue):
2013-04-17 Beth Dakin <bdakin@apple.com>
Content inside frames and scrollbars in overflow areas hit-tests incorrectly when
the WKView has a header
https://bugs.webkit.org/show_bug.cgi?id=114769
Reviewed by Simon Fraser.
convertToRenderer() and convertFromRenderer() need to factor in the headerHeight,
much like all of the conversion functions on ScrollView.
* page/FrameView.cpp:
(WebCore::FrameView::convertFromRenderer):
(WebCore::FrameView::convertToRenderer):
The scrollPosition equivalent of the existing scrollOffsetRelativeToDocument()
function.
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollPositionRelativeToDocument):
* platform/ScrollView.h:
(ScrollView):
2013-04-17 Andreas Kling <akling@apple.com>
Remove FragmentScriptingPermission.h include from Element.h.
<http://webkit.org/b/114757>
Rubber-stamped by Anders Carlsson.
* dom/Element.h:
2013-04-17 Mark Lam <mark.lam@apple.com>
Add LLINT and baseline JIT support for timing out scripts.
https://bugs.webkit.org/show_bug.cgi?id=114577.
Reviewed by Geoffrey Garen.
Replaced use of the obsolete JSGlobalData.terminator methods with the
JSGlobalData.watchdog equivalents.
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::maybeThrowExceptionIfSerializationFailed):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::scheduleExecutionTermination):
(WebCore::WorkerScriptController::isExecutionTerminating):
2013-04-16 Jer Noble <jer.noble@apple.com>
Crash in WebCore::HTMLMediaElement::~HTMLMediaElement.
https://bugs.webkit.org/show_bug.cgi?id=113531
Reviewed by Eric Carlson.
No new tests, though this is intermittently reproducible with
http/tests/misc/delete-frame-during-readystatechange.html under ASAN.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement): Clear the media player manually
before the destructor exits. Clearing the media player may cancel a resource load,
which can trigger a readystatechange event. It's possible for the HTMLMediaElement
to attempt to fire an abort event within the readystatechange event, even though it is
now in an inconsistent state. Clearling the media player before finishing the destructor
ensures that the HTMLMediaElement will at least still be alive if this case is triggered.
Set m_completelyLoaded to true to ensure that if userCancelledLoad() is called, it doesn't
attempt to fire events while destructing.
2013-04-17 Sergio Correia <sergio.correia@openbossa.org>
Web Inspector: make generate-inspector-protocol-version work with python3
https://bugs.webkit.org/show_bug.cgi?id=114717
Revision r146765 added print() calls that made the script complain about
invalid syntax when using python3.
This commit replaces such calls with calls to sys.stdout.write(), analogous
to the sys.stderr.write() ones already used throughout the file.
Reviewed by Timothy Hatcher.
No new tests. No user visible behavior changed.
* inspector/generate-inspector-protocol-version:
(main):
2013-04-17 Seokju Kwon <seokju.kwon@gmail.com>
Web Inspector: Fix Localized string warngs
https://bugs.webkit.org/show_bug.cgi?id=114718
Reviewed by Timothy Hatcher.
No tests because no behavior change is expected.
* English.lproj/localizedStrings.js:
2013-04-17 Csaba Osztrogonác <ossy@webkit.org>
[Qt] Unreviewed Windows buildfix.
* platform/qt/DragDataQt.cpp: Add a missing include.
2013-04-17 ChangSeok Oh <shivamidow@gmail.com>
Breaking Float: floated block level element following inline element in floated container breaks to next line
https://bugs.webkit.org/show_bug.cgi?id=45274
Reviewed by David Hyatt.
Fix position issue of floating element in floating element.
Inner floating element has placed at next line when outer floating element has text,
even though previous line has spaces enough to fit it.
To solve this, the width of a space added temporarily for prohibiting duplication more than 2 empty spaces
is subtracted when floating element is checked whether it fits on a line.
Tests: css2.1/20110323/floats-001.html
css2.1/20110323/floats-102.html
fast/inline-block/float-both-whitespace.html
fast/inline-block/float-leading-whitespace.html
fast/inline-block/float-no-whitespace.html
fast/inline-block/float-trailing-whitespace.html
fast/inline-block/multiple-floats-with-whitespace.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::LineWidth::LineWidth):
(WebCore::LineWidth::fitsOnLine):
(WebCore::LineWidth::trailingWhitespaceWidth):
(WebCore::LineWidth::setTrailingWhitespaceWidth):
(LineWidth):
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
2013-04-17 Leo Yang <leoyang@rim.com>
Lots of unused parameter warnings in filesystem code
https://bugs.webkit.org/show_bug.cgi?id=114747
Reviewed by Carlos Garcia Campos.
Comment out or remove unused parameter identifiers.
No functionalities changed, no new tests.
* Modules/filesystem/DOMFileSystem.cpp: Comment out |snapshot| because
it is referred in the comments inside the function.
(WebCore):
* Modules/filesystem/DOMFileSystemSync.cpp: Ditto.
(WebCore):
* Modules/filesystem/FileWriter.cpp: Remove unused |ec|.
(WebCore::FileWriter::abort):
* Modules/filesystem/FileWriterSync.cpp:
(WebCore::FileWriterSync::didWrite): Remove unused |bytes|.
* platform/AsyncFileSystemCallbacks.h:
(WebCore::AsyncFileSystemCallbacks::didOpenFileSystem): Comment out unused parameters
because the function is inlined.
(WebCore::AsyncFileSystemCallbacks::didCreateSnapshotFile): Ditto.
(WebCore::AsyncFileSystemCallbacks::didReadDirectoryEntry): Ditto.
(WebCore::AsyncFileSystemCallbacks::didReadDirectoryEntries): Ditto.
(WebCore::AsyncFileSystemCallbacks::didCreateFileWriter): Ditto.
* platform/blackberry/WorkerAsyncFileSystemBlackBerry.cpp:
(WebCore::WorkerAsyncFileSystemBlackBerry::createWriterOnMainThread): Remove unused |client|.
2013-04-17 Brent Fulgham <bfulgham@webkit.org>
[Windows, WinCairo] Stop individually building WTF files in WebCore
https://bugs.webkit.org/show_bug.cgi?id=114705
Reviewed by Anders Carlsson.
* WebCore.vcproj/WebCore.vcproj: Remove references to WTF objects.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto
2013-04-17 Dirk Schulze <krit@webkit.org>
Make lengthConversion methods and arguments const
https://bugs.webkit.org/show_bug.cgi?id=114749
Reviewed by Andreas Kling.
Refactoring, no new tests.
* css/CSSCalculationValue.cpp:
(WebCore::CSSCalcValue::computeLengthPx):
(WebCore::CSSCalcPrimitiveValue::toCalcValue):
(WebCore::CSSCalcPrimitiveValue::computeLengthPx):
(WebCore::CSSCalcBinaryOperation::toCalcValue):
(WebCore::CSSCalcBinaryOperation::computeLengthPx):
* css/CSSCalculationValue.h:
(WebCore::CSSCalcValue::toCalcValue):
(CSSCalcValue):
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::computeLength):
(WebCore::CSSPrimitiveValue::computeLengthDouble):
(WebCore::CSSPrimitiveValue::viewportPercentageLength):
* css/CSSPrimitiveValue.h:
(CSSPrimitiveValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::convertToLength):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::convertToIntLength):
(WebCore::StyleResolver::convertToFloatLength):
* css/StyleResolver.h:
(StyleResolver):
2013-04-17 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
[refactor] Moved ScriptedAnimationController common code to inline function
https://bugs.webkit.org/show_bug.cgi?id=114681
Reviewed by Daniel Bates.
Avoided duplicated code by moving ScriptedAnimationController clearance
code to a common function used by both Document::dispose() and
Document::detach().
No new tests, no behavior changes.
* dom/Document.cpp:
(WebCore::Document::dispose):
(WebCore::Document::detach):
(WebCore::Document::clearScriptedAnimationController): Added.
* dom/Document.h:
(Document):
2013-04-17 Chris Fleizach <cfleizach@apple.com>
AX: When img@alt is undefined, WebKit should use @title as accessibility label if available
https://bugs.webkit.org/show_bug.cgi?id=114535
Reviewed by Tim Horton.
Don't hide images from Accessibility that have the title attribute on them.
Test: accessibility/empty-image-with-title.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
2013-04-17 Arpita Bahuguna <a.bah@samsung.com>
getAttribute does not behave correctly for mixed-case attributes on HTML elements
https://bugs.webkit.org/show_bug.cgi?id=105713
Reviewed by Andreas Kling.
getAttribute() and getAttributeNode() APIs do not convert the
passed attribute name to lowercase before comparing against the
existing attributes.
The specification however states that the passed name should
be converted to ASCII lowercase before checking for the existence
of the given attribute. [www.w3.org/TR/domcore/#dom-element-getattribute]
Test: fast/dom/Element/getAttribute-case-insensitivity.html
* dom/Element.h:
(WebCore::ElementData::getAttributeItemIndex):
getAttributeItemIndex() accepts a bool param 'shouldIgnoreAttributeCase'
which specifies whether or not the attribute's case should be ignored
before comparison but we don't really convert the passed name to lowercase
before carrying out the comparison.
Thus, when called from APIs such as getAttribute() and getAttributeNode()
which do not explicitally convert the attribute name to lowercase
before calling on this method, it fails to carry out a case-insensitive
search.
Have thus made changes to convert the passed attribute's name to
lowercase if 'shouldIgnoreAttributeCase' is true.
2013-04-17 John Griggs <jgriggs@blackberry.com>
[BlackBerry] Add support for filesystem: URLs to BlackBerry Media Player.
https://bugs.webkit.org/show_bug.cgi?id=114686
https://przilla.ott.qnx.com/bugzilla/show_bug.cgi?id=314865
Reviewed by Rob Buis.
Translate filesystem: URLs to file:// URLs for use by the media player, but only after the filesystem: URL has been checked for security, etc.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::load):
(WebCore::MediaPlayerPrivate::onError):
(WebCore::MediaPlayerPrivate::onDurationChanged):
(WebCore::MediaPlayerPrivate::notifyChallengeResult):
2013-04-17 Brendan Long <b.long@cablelabs.com>
[GStreamer] Eclipse warnings in MediaPlayerPrivateGStreamer
https://bugs.webkit.org/show_bug.cgi?id=114654
Reviewed by Philippe Normand.
No new tests (nothing added).
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
Initialize m_volumeAndMuteInitialized
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
Initialize signal handlers to 0.
2013-04-17 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Remove m_flowThread from NodeRenderingContext
https://bugs.webkit.org/show_bug.cgi?id=114732
Reviewed by Antti Koivisto.
Cleanup NodeRenderingContext. Remove unused member m_flowThread.
Tests: None needed.
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
* dom/NodeRenderingContext.h: Removed m_flowThread.
2013-04-17 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] MediaPlayerPrivateQt.cpp doesn't build in debug
Unreviewed build fix.
We need to include Logging.h to get the LOG definitions.
* platform/graphics/qt/MediaPlayerPrivateQt.cpp:
2013-04-17 Claudio Saavedra <csaavedra@igalia.com>
execCommand("RemoveFormat") might remove format after the selection
https://bugs.webkit.org/show_bug.cgi?id=112240
Reviewed by Ryosuke Niwa.
Tests: editing/execCommand/remove-format-multiple-elements-mac.html
This bug is hit when ApplyStyleCommand is used to change the
style and the current selection ends in the beginning of a new node.
The bug is actually a two-fold thing:
1. There was no check as to whether the end node is really
selected or not, and format was always removed from it with
pushDownInlineStyleAroundNode(). An equivalent check for the start
node was already in place, so fix it analogously.
2. Previous stage might change the dom tree, resulting in a render
tree that is not up-to-date. Position::upstream() is later used
and, in order to be able to find a visually equivalent position in
a text node, this method needs the render tree to be up-to-date,
therefore, a call to updateLayoutIgnorePendingStylesheets() is
necessary.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::removeInlineStyle): Make sure that no
format is removed from the end node if it's not fully selected.
(WebCore::ApplyStyleCommand::nodeFullySelected): Call updateLayoutIgnorePendingStylesheets()
2013-04-17 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] GraphicsContext3D: don't initialize m_extensions in the constructor
https://bugs.webkit.org/show_bug.cgi?id=114726
Reviewed by Carlos Garcia Campos.
m_extensions is now initialized on demand by
GraphicsContext3D::getExtensions().
Doing it in the constructor produces a crash, because
Extensions3DOpenGLES() calls glGetString before the WebGL context
is current.
* platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
2013-04-16 Maciej Stachowiak <mjs@apple.com>
Replace JSC-specific IDL extended attributes with generic (JSC+V8) ones, now that the distinction no longer matters
https://bugs.webkit.org/show_bug.cgi?id=114712
Reviewed by Dan Bernstein.
No behavior change expected.
* bindings/scripts/IDLAttributes.txt: Remove the JSFoo attributes
that have bare Foo equivalents.
* bindings/scripts/CodeGeneratorJS.pm: Remove support for JSFoo
aliases.
(GetGenerateIsReachable):
(GetCustomIsReachable):
(ShouldGenerateToJSDeclaration):
(ShouldGenerateToJSImplementation):
(HasCustomConstructor):
(HasCustomGetter):
(HasCustomSetter):
(HasCustomMethod):
Replace JSFoo attributes with equivalen Foo attributs in all files
below:
* Modules/geolocation/Geolocation.idl:
* Modules/indexeddb/IDBDatabase.idl:
* Modules/indexeddb/IDBObjectStore.idl:
* Modules/webaudio/DOMWindowWebAudio.idl:
* Modules/websockets/DOMWindowWebSocket.idl:
* Modules/websockets/WorkerContextWebSocket.idl:
* css/CSSRule.idl:
* css/CSSRuleList.idl:
* css/CSSStyleDeclaration.idl:
* css/CSSValue.idl:
* css/MediaList.idl:
* css/StyleMedia.idl:
* css/StyleSheet.idl:
* dom/MessagePort.idl:
* dom/MutationObserver.idl:
* dom/Node.idl:
* fileapi/Blob.idl:
* html/HTMLDocument.idl:
* html/HTMLTemplateElement.idl:
* html/canvas/ArrayBuffer.idl:
* html/canvas/CanvasRenderingContext.idl:
* html/canvas/DataView.idl:
* html/canvas/EXTDrawBuffers.idl:
* html/canvas/EXTTextureFilterAnisotropic.idl:
* html/canvas/OESElementIndexUint.idl:
* html/canvas/OESStandardDerivatives.idl:
* html/canvas/OESTextureFloat.idl:
* html/canvas/OESTextureHalfFloat.idl:
* html/canvas/OESVertexArrayObject.idl:
* html/canvas/WebGLCompressedTextureATC.idl:
* html/canvas/WebGLCompressedTexturePVRTC.idl:
* html/canvas/WebGLCompressedTextureS3TC.idl:
* html/canvas/WebGLDebugRendererInfo.idl:
* html/canvas/WebGLDebugShaders.idl:
* html/canvas/WebGLDepthTexture.idl:
* html/canvas/WebGLLoseContext.idl:
* html/track/TextTrack.idl:
* html/track/TextTrackCue.idl:
* html/track/TextTrackList.idl:
* loader/appcache/DOMApplicationCache.idl:
* page/BarInfo.idl:
* page/Console.idl:
* page/DOMSelection.idl:
* page/DOMWindow.idl:
* page/History.idl:
* page/Location.idl:
* page/MemoryInfo.idl:
* page/Navigator.idl:
* page/Screen.idl:
* page/WorkerNavigator.idl:
* plugins/DOMMimeTypeArray.idl:
* plugins/DOMPluginArray.idl:
* storage/Storage.idl:
* workers/AbstractWorker.idl:
* workers/SharedWorker.idl:
* workers/Worker.idl:
* workers/WorkerContext.idl:
* workers/WorkerLocation.idl:
* xml/XMLHttpRequestUpload.idl:
2013-04-16 Beth Dakin <bdakin@apple.com>
Re-name Page::layoutMilestones() to Page::requestedLayoutMilestones()
https://bugs.webkit.org/show_bug.cgi?id=114713
Reviewed by Simon Fraser.
* page/FrameView.cpp:
(WebCore::FrameView::performPostLayoutTasks):
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::addLayoutMilestones):
(WebCore::Page::removeLayoutMilestones):
(WebCore::Page::isCountingRelevantRepaintedObjects):
* page/Page.h:
(WebCore::Page::requestedLayoutMilestones):
(Page):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
2013-04-16 Patrick Gansterer <paroga@webkit.org>
[CMake] Fix dependecy calculation for generated inspector files
https://bugs.webkit.org/show_bug.cgi?id=114092
Reviewed by Brent Fulgham.
At least in a generated Visual Studio solution the files generated via
CodeGeneratorInspector.py are considered outdated all the time because
the code generator only touches the file when the content changed.
Add an --write_always parameter to the script to touch the file always.
* CMakeLists.txt:
* inspector/CodeGeneratorInspector.py:
2013-04-16 Anders Carlsson <andersca@apple.com>
Clone storage namespaces for window.open
https://bugs.webkit.org/show_bug.cgi?id=114703
Reviewed by Sam Weinig.
Pass the new page to StorageNamespace::copy.
* page/Chrome.cpp:
(WebCore::Chrome::createWindow):
* storage/StorageNamespace.h:
(StorageNamespace):
* storage/StorageNamespaceImpl.cpp:
(WebCore::StorageNamespaceImpl::copy):
* storage/StorageNamespaceImpl.h:
(WebCore):
(StorageNamespaceImpl):
2013-04-16 Sam Weinig <sam@webkit.org>
Fix fallout after r148545.
* platform/text/TextChecking.h:
Move Platform defines that were incorrectly in WebCore, into Platform.h
2013-04-16 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] polygon shape-inside layout fails
https://bugs.webkit.org/show_bug.cgi?id=114402
Reviewed by Dirk Schulze.
The firstIncludedIntervalLogicalTop() method's implementation relied on optimistic
assumptions about floating point accuracy which, in rare cases, caused it to discard
first-fit locations based on the intersection of the minLogicalIntervalTop offset edge
and a polygon offset edge. Now: we do not verify that first-fit locations based on the
intersection of an offset edge and the minLogicalIntervalTop offset edge are below
the horizontal minLogicalIntervalTop line. They're essentially below the line "by definition".
Test: fast/exclusions/shape-inside/shape-inside-polygon-layout.html
* rendering/ExclusionPolygon.cpp:
(WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): Avoid floating point problems
when checking intersections with the offset edge based on minLogicalIntervalTop.
* rendering/ExclusionPolygon.h:
(WebCore::OffsetPolygonEdge::OffsetPolygonEdge): Initialize the basis field.
(WebCore::OffsetPolygonEdge::basis): Report what the offset edge is "based on": a polygon
edge, the top of the line, or a (reflex) vertex.
(OffsetPolygonEdge): Added the Basis enum to enable tracking what the geometry of
an offset edge is based on.
2013-04-16 Jer Noble <jer.noble@apple.com>
Further unreviewed build fix: protect JSAudioBufferCustom with a ENABLE(WEB_AUDIO) check.
* bindings/js/JSAudioBufferCustom.cpp:
2013-04-16 Jer Noble <jer.noble@apple.com>
Unreviewed build fix; add new JSAudioBuffer.cpp file to more build systems.
* GNUmakefile.list.am:
* Target.pri:
* UseJSC.cmake:
2013-04-16 Jer Noble <jer.noble@apple.com>
Repeated use of decodeAudioData() causes leak
https://bugs.webkit.org/show_bug.cgi?id=114709
Reviewed by Geoffrey Garen.
Report the correct size of the AudioBuffer to the garbage collector so that creating
these large buffers will trigger garbage collection.
* Modules/webaudio/AudioBuffer.cpp:
(WebCore::AudioBuffer::memoryCost): Added; simple sum of the buffer sizes in m_channels;
* Modules/webaudio/AudioBuffer.h:
* Modules/webaudio/AudioBuffer.idl: Add the CustomToJSObject flag.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSAudioBufferCustom.cpp: Added.
(WebCore::toJS): Added; report the extra size of an AudioBuffer when the wrapper
is created.
2013-04-16 Beth Dakin <bdakin@apple.com>
Need a new layout milestone to notify bundle clients when the header has been
flushed
https://bugs.webkit.org/show_bug.cgi?id=114706
-and corresponding-
<rdar://problem/13657284>
Reviewed by Simon Fraser.
New LayoutMilestone is DidFirstFlushForHeaderLayer.
* page/LayoutMilestones.h:
New API to allow removing a LayoutMilestone.
* WebCore.exp.in:
* page/Page.cpp:
(WebCore::Page::removeLayoutMilestones):
* page/Page.h:
(Page):
New boolean member variable m_headerLayerAwaitingFirstFlush keeps track of whether
we need to send the DidFirstFlushForHeaderLayer milestone.
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
Send the milestone if appropriate.
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
Set m_headerLayerAwaitingFirstFlush to true for a newly created layer.
(WebCore::RenderLayerCompositor::updateLayerForHeader):
2013-04-16 Tim Horton <timothy_horton@apple.com>
PlugIn Snapshotting: Crashes refreshing non-main-frame PDFPlugins
https://bugs.webkit.org/show_bug.cgi?id=114702
<rdar://problem/13542020>
Reviewed by Dean Jackson.
If:
a) a plugin fails all the tests in willCreatePlugIn, so it is WaitingForSnapshot there
b) primary plugin detection attempts to restart a plugin between the
time that willCreatePlugIn and didCreatePlugIn fire
c) when didCreatePlugIn fires, shouldAlwaysAutoStart() returns true,
because the plug-in is whitelisted,
we end up reattach()ing and going to Restarted state, and then going straight
to Playing state in didCreatePlugIn.
Instead, primary plugin promotion should be deferred until after the plugin is created,
so that we can take that one last bit of information (shouldAlwaysAutoStart) into account
before restarting and reattaching the plug-in.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
(WebCore::HTMLPlugInImageElement::setIsPrimarySnapshottedPlugIn):
(WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn):
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn):
(WebCore::HTMLPlugInImageElement::subframeLoaderDidCreatePlugIn):
* html/HTMLPlugInImageElement.h:
2013-04-16 Wei James <james.wei@intel.com>
ASSERTION FAILED: i < size(), UNKNOWN in WebCore::ChannelMergerNode::process
https://bugs.webkit.org/show_bug.cgi?id=112657
Avoid to access input bus in checkNumberOfChannelsForInput() before the
bus is updated with AudioNode::checkNumberOfChannelsForInput().
Reviewed by Chris Rogers.
* Modules/webaudio/ChannelMergerNode.cpp:
(WebCore::ChannelMergerNode::checkNumberOfChannelsForInput):
2013-04-16 Ryosuke Niwa <rniwa@webkit.org>
Even more Windows build fix and a Qt minimal build fix attempt.
* html/parser/XSSAuditorDelegate.cpp:
* page/win/FrameCGWin.cpp:
2013-04-16 Ryosuke Niwa <rniwa@webkit.org>
More Windows build fixes.
* platform/win/DragDataWin.cpp:
* platform/win/PasteboardWin.cpp:
2013-04-16 Sam Weinig <sam@webkit.org>
Windows build fix.
* page/win/FrameWin.cpp:
2013-04-16 Dean Jackson <dino@apple.com>
PlugIns that resize in user gestures should be immune to snapshotting
https://bugs.webkit.org/show_bug.cgi?id=114697
<rdar://problem/13666258>
Reviewed by Tim Horton.
Now that we snapshot plugins if they resize above the snapshotting threshold,
we need to make sure that we don't do it in response to a user gesture
such as a click.
Due to the complexities of real-world content and the way they often do
things using timeout, I copied the code from the generic user gesture
timeout, which gives a 5 second grace period after clicks.
* html/HTMLPlugInImageElement.cpp:
(WebCore::documentHadRecentUserGesture): New static function to share the code for
checking the time since the last click (or whatever).
(WebCore::HTMLPlugInImageElement::checkSizeChangeForSnapshotting): Make sure
to test for a user gesture.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Move the
code into the new function.
2013-04-15 Sam Weinig <sam@webkit.org>
Remove more #includes from Frame.h
https://bugs.webkit.org/show_bug.cgi?id=114642
Reviewed by Anders Carlsson.
Convert Editor, FrameSelection, EventHandler and AnimationController into
OwnPtrs, to avoid inclusion.
* accessibility/AXObjectCache.cpp:
* accessibility/AccessibilityObject.cpp:
* accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
* bindings/objc/DOM.mm:
* dom/CharacterData.cpp:
* dom/ContainerNode.cpp:
* dom/Element.cpp:
* editing/AlternativeTextController.cpp:
* editing/CompositeEditCommand.cpp:
* editing/DeleteButtonController.h:
* editing/EditingStyle.cpp:
* editing/InsertLineBreakCommand.cpp:
* editing/SpellChecker.cpp:
* editing/SpellingCorrectionCommand.cpp:
* editing/TextInsertionBaseCommand.cpp:
* history/CachedFrame.cpp:
* html/HTMLAnchorElement.cpp:
* html/HTMLInputElement.cpp:
* html/HTMLPlugInElement.cpp:
* html/HTMLSelectElement.cpp:
* html/HTMLTextAreaElement.cpp:
* html/HTMLTextFormControlElement.cpp:
* html/TextFieldInputType.cpp:
* html/shadow/ClearButtonElement.cpp:
* html/shadow/MediaControlElements.cpp:
* html/shadow/SliderThumbElement.cpp:
* inspector/InspectorPageAgent.h:
* loader/FrameLoader.cpp:
* page/DOMWindow.cpp:
* page/Frame.cpp:
* page/Frame.h:
* page/FrameView.cpp:
* page/FrameView.h:
* page/Page.cpp:
* page/TouchAdjustment.cpp:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
* platform/gtk/PasteboardGtk.cpp:
* platform/qt/ClipboardQt.cpp:
* rendering/HitTestResult.cpp:
* rendering/RenderBlock.cpp:
* rendering/RenderEmbeddedObject.cpp:
* rendering/RenderLayer.cpp:
* rendering/RenderNamedFlowThread.cpp:
* rendering/RenderObject.cpp:
* rendering/RenderSnapshottedPlugIn.cpp:
* svg/graphics/SVGImage.cpp:
* testing/Internals.cpp:
2013-04-16 Jessie Berlin <jberlin@apple.com>
Speculative Windows build fix.
* platform/win/ContextMenuWin.cpp:
2013-04-16 Eric Carlson <eric.carlson@apple.com>
[Mac] in-band cues sometimes displayed late
https://bugs.webkit.org/show_bug.cgi?id=114629
Reviewed by Jer Noble.
No new tests, this deals with a platform-specific issue that is extremely timing dependent.
* html/track/InbandTextTrack.cpp:
(WebCore::TextTrackCueMap::add): New, two way cue data <-> cue map.
(WebCore::TextTrackCueMap::find):
(WebCore::TextTrackCueMap::remove):
(WebCore::InbandTextTrack::updateCueFromCueData): New, update an existing cue. Set cue end time
to video duration if it is unknown.
(WebCore::InbandTextTrack::addGenericCue): Look for existing cues without considering duration
so we can match incomplete cues.
(WebCore::InbandTextTrack::updateGenericCue): New, update an existing cue. This allows us to
add in-band cues as soon as we get them from the media engine and update them as more
information becomes available.
(WebCore::InbandTextTrack::removeGenericCue): New, remove an existing cue. This is necessary
because we never want to keep an incomplete cue when a seek happens.
(WebCore::InbandTextTrack::removeCue): New, base class override so we can keep the two way
map up to date.
* html/track/InbandTextTrack.h:
* html/track/TextTrack.cpp:
(WebCore::TextTrack::addCue): TextTrack::removeCue takes a RefPtr.
(WebCore::TextTrack::removeCue): Take a RefPtr.
(WebCore::TextTrack::hasCue): Allow caller to request match without considering end time.
* html/track/TextTrack.h:
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::TextTrackCue): Initialize m_processingCueChanges.
(WebCore::TextTrackCue::willChange): Renamed from cueWillChange. Use m_processingCueChanges
to avoid thrashing the track when many cue properties will change.
(WebCore::TextTrackCue::didChange): Renamed from cueDidChange. Use m_processingCueChanges
to avoid thrashing the track when many cue properties will change.
(WebCore::TextTrackCue::setId): cueWillChange -> willChange. cueDidChange -> didChange.
(WebCore::TextTrackCue::setStartTime): Ditto.
(WebCore::TextTrackCue::setEndTime): Ditto.
(WebCore::TextTrackCue::setPauseOnExit): Ditto.
(WebCore::TextTrackCue::setVertical): Ditto.
(WebCore::TextTrackCue::setSnapToLines): Ditto.
(WebCore::TextTrackCue::setLine): Ditto.
(WebCore::TextTrackCue::setPosition): Ditto.
(WebCore::TextTrackCue::setSize): Ditto.
(WebCore::TextTrackCue::setAlign): Ditto.
(WebCore::TextTrackCue::setText): Ditto.
(WebCore::TextTrackCue::setRegionId): Ditto.
(WebCore::TextTrackCue::isEqual): Renamed from operator==, take match rules param.
* html/track/TextTrackCue.h:
* html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGeneric::isEqual): Renamed from operator==, take match rules param.
* html/track/TextTrackCueGeneric.h:
* platform/graphics/InbandTextTrackPrivateClient.h: Make GenericCueData refcounted.
(WebCore::GenericCueData::create): New.
(WebCore::GenericCueData::status): Ditto.
(WebCore::GenericCueData::setStatus): Ditto.
(WebCore::GenericCueData::GenericCueData):
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processCue): Add cues as soon as we get them from the media
engine, update duration once we know it.
(WebCore::InbandTextTrackPrivateAVF::resetCueValues): Tell the client to remove all incomplete
cues we have delivered.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Do not flush cues when seek completes,
we did that when the seek started and cues can be delivered before we get the the
seek completed notification.
2013-04-16 James Craig <james@cookiecrook.com>
dfn element should be exposed as AXGroup:AXDefinition
https://bugs.webkit.org/show_bug.cgi?id=108980
Reviewed by Chris Fleizach.
dfn element now exposed as AXGroup:AXDefinition. Updated existing tests.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
2013-04-16 Anders Carlsson <andersca@apple.com>
Begin chipping away at ScriptState
https://bugs.webkit.org/show_bug.cgi?id=114695
Reviewed by Geoffrey Garen.
Remove ScriptStateProtectedPtr as well as evalEnabled and setEvalEnabled.
* bindings/js/ScriptState.cpp:
* bindings/js/ScriptState.h:
* inspector/InjectedScriptBase.cpp:
(WebCore::InjectedScriptBase::callFunctionWithEvalEnabled):
* inspector/ScriptArguments.cpp:
(WebCore::ScriptArguments::ScriptArguments):
(WebCore::ScriptArguments::globalState):
* inspector/ScriptArguments.h:
2013-04-15 Anders Carlsson <andersca@apple.com>
Remove unneeded headers from ScriptExecutionContext.h
https://bugs.webkit.org/show_bug.cgi?id=114631
Reviewed by Alexey Proskuryakov.
This shaves another minute off WebCore build time on my MacBook Pro.
* dom/ScriptExecutionContext.cpp:
* dom/ScriptExecutionContext.h:
* fileapi/Blob.cpp:
* rendering/RenderBlock.cpp:
* rendering/RenderBox.cpp:
* rendering/RenderFlowThread.cpp:
* rendering/RenderFrameSet.cpp:
* rendering/RenderIFrame.cpp:
* rendering/RenderImage.cpp:
* rendering/RenderListBox.cpp:
* rendering/RenderListItem.cpp:
* rendering/RenderListMarker.cpp:
* rendering/RenderMedia.cpp:
* rendering/RenderObject.cpp:
* rendering/RenderRegion.cpp:
* rendering/RenderReplaced.cpp:
* rendering/RenderReplica.cpp:
* rendering/RenderRubyRun.cpp:
* rendering/RenderScrollbarPart.cpp:
* rendering/RenderSlider.cpp:
* rendering/RenderTable.cpp:
* rendering/RenderTableCell.cpp:
* rendering/RenderTableRow.cpp:
* rendering/RenderTableSection.cpp:
* rendering/RenderTextControlSingleLine.cpp:
* rendering/RenderTextTrackCue.cpp:
* rendering/RenderVideo.cpp:
* rendering/RenderView.cpp:
* rendering/RenderWidget.cpp:
* rendering/svg/RenderSVGContainer.cpp:
* rendering/svg/RenderSVGForeignObject.cpp:
* rendering/svg/RenderSVGGradientStop.cpp:
* rendering/svg/RenderSVGHiddenContainer.cpp:
* rendering/svg/RenderSVGImage.cpp:
* rendering/svg/RenderSVGResourceContainer.cpp:
* rendering/svg/RenderSVGResourceMarker.cpp:
* rendering/svg/RenderSVGRoot.cpp:
* rendering/svg/RenderSVGShape.cpp:
* rendering/svg/RenderSVGText.cpp:
2013-04-16 Maciej Stachowiak <mjs@apple.com>
Remove even yet still more traces of v8
https://bugs.webkit.org/show_bug.cgi?id=114693
Reviewed by Anders Carlsson.
No behavior change.
* bindings/generic/ActiveDOMCallback.h:
(WebCore::ActiveDOMCallback::isScriptControllerTerminating): Remove a V8-specific
method and the comment referencing it.
* bindings/generic/ActiveDOMCallback.cpp:
(WebCore::ActiveDOMCallback::isScriptControllerTerminating): ditto
* fileapi/File.cpp:
(WebCore::File::File): Remove a comment referencing v8
* inspector/InjectedScriptExterns.js: ditto
2013-04-16 Alexey Proskuryakov <ap@apple.com>
Remove unused AlternativeTextClient::dismissDictationAlternativeUI
https://bugs.webkit.org/show_bug.cgi?id=114598
Reviewed by Ryosuke Niwa.
Removing dead code.
* WebCore.exp.in:
* editing/mac/AlternativeTextUIController.h: Made dismissAlternatives() private.
* page/AlternativeTextClient.h:
2013-04-16 Robert Hogan <robert@webkit.org>
Float at exact multiple of line-height affects too many lines
https://bugs.webkit.org/show_bug.cgi?id=112744
Reviewed by David Hyatt.
Tests: fast/block/float/float-with-fractional-height-vertical-lr.html
fast/block/float/float-with-fractional-height.html
When adding floats to the interval tree used for testing floats' overlap with lineboxes
truncate the dimensions of the float rather than rounding them. This matches the
treatment of linebox dimensions so ensures the test for overlap is comparing like
with like.
* rendering/RenderBlock.cpp:
(WebCore::::collectIfNeeded):
(WebCore::RenderBlock::FloatingObjects::intervalForFloatingObject):
(WebCore::::string):
2013-04-16 Chris Fleizach <cfleizach@apple.com>
AX: aria-valuetext is not exposed on OS X.
https://bugs.webkit.org/show_bug.cgi?id=114628
Reviewed by Tim Horton.
aria-valuetext is only being exposed on ARIA controls. That's because there were
checks in place so that ONLY ARIA defined controls would return anything related to valuetext.
We should allow this to work on native controls as well.
Test: platform/mac/accessibility/aria-valuetext-on-native-slider.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::valueDescription):
(WebCore):
(WebCore::AccessibilityNodeObject::valueForRange):
(WebCore::AccessibilityNodeObject::maxValueForRange):
(WebCore::AccessibilityNodeObject::minValueForRange):
* accessibility/AccessibilityNodeObject.h:
(AccessibilityNodeObject):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isRangeControl):
Rename isARIAControl to isRangeControl and make it apply to all elements.
* accessibility/AccessibilityObject.h:
2013-04-15 Jon Lee <jonlee@apple.com>
RenderView should bail out of paintBoxDecorations() when painting with a different renderer
https://bugs.webkit.org/show_bug.cgi?id=114665
<rdar://problem/13434884>
Reviewed by Simon Fraser.
* rendering/RenderView.cpp:
(WebCore::RenderView::paintBoxDecorations): Add a check to see if we should paint within the renderer.
This check exists in all other implementations of paintBoxDecorations(), and correctly avoids painting the
decorations if the root provided is not the RenderView.
2013-04-16 Max Vujovic <mvujovic@adobe.com>
[CSS Shaders] Remove the cache of validated programs
https://bugs.webkit.org/show_bug.cgi?id=112844
Reviewed by Dean Jackson.
Since we're caching CustomFilterProgram(s) now, we don't need another cache for
CustomFilterValidatedProgram(s). With this patch, CustomFilterProgram stores a reference
to a lazily created CustomFilterValidatedProgram, and CustomFilterGlobalContext no longer
has a validated program cache.
Also, this patch removes the CustomFilterValidatedProgram's stored reference to
CustomFilterGlobalContext. The removal of the validated program cache would cause
this reference to become weak. Validated programs only needed to keep the global context
reference in order to create a CustomFilterCompiledProgram. In this patch, we create
CustomFilterCompiledProgram(s) in FECustomFilter instead of in CustomFilterValidatedProgram,
so validated programs don't need to store the global context reference anymore.
No new tests. Just Refactoring.
* platform/graphics/filters/CustomFilterCompiledProgram.cpp:
(WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
* platform/graphics/filters/CustomFilterGlobalContext.cpp:
(WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
* platform/graphics/filters/CustomFilterGlobalContext.h:
(CustomFilterGlobalContext):
* platform/graphics/filters/CustomFilterProgram.cpp:
(WebCore::CustomFilterProgram::validatedProgram):
(WebCore::CustomFilterProgram::setValidatedProgram):
* platform/graphics/filters/CustomFilterProgram.h:
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
(WebCore::CustomFilterValidatedProgram::compiledProgram):
(WebCore::CustomFilterValidatedProgram::setCompiledProgram):
(WebCore::CustomFilterValidatedProgram::~CustomFilterValidatedProgram):
* platform/graphics/filters/CustomFilterValidatedProgram.h:
(CustomFilterValidatedProgram):
* platform/graphics/filters/FECustomFilter.cpp:
(WebCore::FECustomFilter::prepareForDrawing):
* rendering/FilterEffectRenderer.cpp:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::computeFilterOperations):
2013-04-16 Anthony Scian <ascian@blackberry.com>
[BlackBerry] LayerTexture: check if the graphics context is NULL
https://bugs.webkit.org/show_bug.cgi?id=114674
Reviewed by Rob Buis.
Internal PR: 256522
* platform/graphics/blackberry/LayerTexture.cpp:
(WebCore::LayerTexture::setContentsToColor):
2013-04-13 Andreas Kling <akling@apple.com>
REGRESSION(r148128): window.resizeTo doesn't work from Safari address bar.
<rdar://problem/13635894>
<http://webkit.org/b/114561>
Reviewed by Sam Weinig.
Suppressing window geometry changes while any user gesture is active was a bit too restrictive,
and broke legitimate use-cases. Narrow it down to checking EventHandler::mousePressed().
No test yet, adding one is tracked by <http://webkit.org/b/114561>.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::allowedToChangeWindowGeometry):
Added to share code between all DOMWindow functions that alter window geometry.
(WebCore::DOMWindow::moveBy):
(WebCore::DOMWindow::moveTo):
(WebCore::DOMWindow::resizeBy):
(WebCore::DOMWindow::resizeTo):
2013-04-16 Manuel Rego Casasnovas <rego@igalia.com>
[GTK][EFL] Remove deprecated libsoup API usage
https://bugs.webkit.org/show_bug.cgi?id=104894
Reviewed by Philippe Normand.
Based on a patch by Claudio Saavedra <csaavedra@igalia.com>.
Remove LIBSOUP_USE_UNSTABLE_REQUEST_API and only include
libsoup/soup.h.
* platform/network/ResourceHandleInternal.h:
* platform/network/soup/GOwnPtrSoup.cpp:
* platform/network/soup/ProxyResolverSoup.h:
* platform/network/soup/ResourceErrorSoup.cpp:
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ensureSessionIsInitialized): No need to add the requester
feature.
(WebCore::createSoupRequestAndMessageForHandle): SoupSession has a
requester API, use it.
2013-04-15 Maciej Stachowiak <mjs@apple.com>
Remove more traces of the now-obsolete support for V8
https://bugs.webkit.org/show_bug.cgi?id=114657
Reviewed by Ryosuke Niwa.
In addition to passing existing tests, I verified that the ElementFactory
and ElementWrapperFactory files were all textually identical before and after.
* dom/CustomEvent.cpp:
(WebCore): Remove Use(V8) bock.
* dom/CustomEvent.h:
(CustomEvent): ditto
* dom/MessageEvent.cpp:
(WebCore::MessageEvent::MessageEvent): ditto
(WebCore::MessageEvent::initMessageEvent): ditto
* dom/Node.h:
(Node): ditto
* dom/make_event_factory.pl:
(generateImplementation): Remove V8 support.
* dom/make_names.pl: Remove gobs of V8 support and simplify.
(printJSElementIncludes):
(printConditionalElementIncludes):
(printFactoryCppFile):
(printWrapperFunctions):
(printWrapperFactoryCppFile):
(printWrapperFactoryHeaderFile):
* inspector/InjectedScriptCanvasModuleSource.js: Remove V8 stack
trace code.
* platform/qt/PlatformSupport.h: Remove a macro only used for V8
bindings.
* svg/SVGZoomAndPan.h:
(SVGZoomAndPan): Remove mention of V8 from comment.
2013-04-15 Ryosuke Niwa <rniwa@webkit.org>
Potential use after free in ApplyStyleCommand::splitAncestorsWithUnicodeBidi
https://bugs.webkit.org/show_bug.cgi?id=114664
Reviewed by Oliver Hunt.
Use RefPtr as needed.
No new tests since this bug was discovered by code inspection.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
2013-04-15 Timothy Hatcher <timothy@apple.com>
Web Inspector: Make var and function declarations work again in the Console.
https://webkit.org/b/114534
rdar://problem/13614477
Reviewed by Oliver Hunt.
* inspector/InjectedScriptSource.js:
(InjectedScript.prototype._evaluateOn): Use 'with' when not evaluating
on a call frame.
2013-04-15 Seokju Kwon <seokju.kwon@gmail.com>
Web Inspector: Add missing Localized strings
https://bugs.webkit.org/show_bug.cgi?id=114656
Reviewed by Timothy Hatcher.
No tests because no behavior change is expected.
* English.lproj/localizedStrings.js:
2013-04-15 Dean Jackson <dino@apple.com>
Rename restartedPlugin to isRestartedPlugin. This was
review feedback from r148038 that I thought I fixed
everywhere but failed.
https://bugs.webkit.org/show_bug.cgi?id=114233
* html/HTMLPlugInElement.h:
(WebCore::HTMLPlugInElement::isRestartedPlugin): Prefix with "is".
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
(WebCore::HTMLPlugInImageElement::setDisplayState):
(WebCore::HTMLPlugInImageElement::removeSnapshotTimerFired):
* html/HTMLPlugInImageElement.h:
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::paintContents):
* rendering/RenderLayerBacking.cpp:
(WebCore::isRestartedPlugin):
2013-04-15 Maciej Stachowiak <mjs@apple.com>
Remove V8 attribtues from IDLAttributes.txt
https://bugs.webkit.org/show_bug.cgi?id=114651
Reviewed by Sam Weinig.
No tests because no behavior change is expected.
* bindings/scripts/IDLAttributes.txt: Remove V8 attribtues.
* html/track/TextTrackList.idl: Remove a stray V8-specific attribute
(so I guess this change is not useless)
2013-04-15 James Craig <james@cookiecrook.com>
WebKit should not expose AXSubrole:AXDescriptionList on Mountain Lion as it causes a regression in VoiceOver behavior
https://bugs.webkit.org/show_bug.cgi?id=113975
Reviewed by Chris Fleizach.
Serve NSAccessibilityDescriptionListSubrole or NSAccessibilityDefinitionListSubrole
depending on platform. Updated existing test coverage.
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper subrole]):
2013-04-15 Dean Jackson <dino@apple.com>
Plugins that resize might need to be snapshotted.
https://bugs.webkit.org/show_bug.cgi?id=102157
<rdar://problem/12696259>
Reviewed by Tim Horton.
A plugin could avoid snapshotting if it started very
small (below the threshold where we autostart), and then
resized to be large (above the threshold). Detect this
case and tell the plugin to snapshot.
There unfortunately is a bit of state to track when doing
this. We have to start the snapshotting in a post-layout
task, so we carry a flag to say we're checking size but
not wanting the plugin to update (which would restart it).
We also might be a plugin that would have already restarted
due to a similar plugin being clicked or detected as dominant.
So this patch introduces a member variable that tracks what
decision has been made on snapshotting.
I also added some more logging to be more clear about what is
happening to plugins going through the snapshot process, and
changed the order of the tests in the algorithm so that domain
detection comes before examining the size.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Initialise
the two new member variables.
(WebCore::HTMLPlugInImageElement::setDisplayState): Mark a restarted
plugin as NeverSnapshot. This means that if it later resizes above the
threshold, it won't trigger the snapshot detection.
(WebCore::HTMLPlugInImageElement::checkSnapshotStatus): Renamed from
updateSnapshotInfo. This now updates the snapshot, but also runs
the check for size changes.
(WebCore::addPlugInsFromNodeListMatchingPlugInOrigin): Gather all plugins
that look like a restarting plugin, not just those snapshotted. That
way they can all be marked as NeverSnapshot.
(WebCore::HTMLPlugInImageElement::restartSimilarPlugIns): Bless every
plugin that looks similar, whether or not it is snapshotted.
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot): More logging.
(WebCore::HTMLPlugInImageElement::setIsPrimarySnapshottedPlugIn): Ditto.
(WebCore::HTMLPlugInImageElement::checkSizeChangeForSnapshotting): New
method. If the plugin was below the threshold and is now above it,
begin the snapshotting process.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Plugins
that were marked as NeverSnapshot should start immediately. Move the origin
test earlier in the method. If a plugin avoided snapshotting due to size,
remember the size.
(WebCore::HTMLPlugInImageElement::subframeLoaderDidCreatePlugIn): Mark the
plugin as NeverSnapshot.
* html/HTMLPlugInImageElement.h:
(HTMLPlugInImageElement): Four new member variables:
- the decision we made regarding snapshotting (or not), uses the SnapshotDecision enum
- the size when it avoided snapshotting
- a flag to indicate the post layout update was triggered due to
a size change
(WebCore::HTMLPlugInImageElement::needsCheckForSizeChange): New method.
(WebCore::HTMLPlugInImageElement::setNeedsCheckForSizeChange): New method.
(WebCore::HTMLPlugInImageElement::snapshotDecision): Return the decision
regarding snapshotting or not snapshotting.
* page/FrameView.cpp:
(WebCore::FrameView::addWidgetToUpdate): Guard updating the widget. We don't
want to do it when we're checking for a size change in the plugin.
(WebCore::FrameView::updateWidget): Call new name.
* plugins/PluginViewBase.h:
(WebCore::PluginViewBase::beginSnapshottingRunningPlugin): Empty virtual
method to snapshot a running plugin.
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::layout): If the plugin has increased in
size add it to the post layout list so that it will be checked.
2013-04-15 Chris Fleizach <cfleizach@apple.com>
activating a focused link to an in-page fragment ID should transfer focus to the target of the link when possible
https://bugs.webkit.org/show_bug.cgi?id=17450
Reviewed by Maciej Stachowiak.
When a fragment is scrolled to due to an activation event or on load, focus should attempt to
move to the fragment if possible.
Test: fast/dom/fragment-activation-focuses-target.html
* page/FrameView.cpp:
(WebCore::FrameView::scrollToAnchor):
2013-04-12 Maciej Stachowiak <mjs@apple.com>
Remove V8-specific extended attributes from IDL files
https://bugs.webkit.org/show_bug.cgi?id=114523
Reviewed by Geoffrey Garen.
No tests because no behavior change is expected.
* Modules/encryptedmedia/MediaKeyMessageEvent.idl:
* Modules/encryptedmedia/MediaKeyNeededEvent.idl:
* Modules/encryptedmedia/MediaKeySession.idl:
* Modules/encryptedmedia/MediaKeys.idl:
* Modules/filesystem/HTMLInputElementFileSystem.idl:
* Modules/indexeddb/IDBAny.idl:
* Modules/mediasource/MediaSource.idl:
* Modules/mediasource/SourceBuffer.idl:
* Modules/mediasource/SourceBufferList.idl:
* Modules/mediastream/MediaStream.idl:
* Modules/webaudio/AudioDestinationNode.idl:
* html/track/TextTrackCue.idl:
* html/track/TextTrackCueList.idl:
* html/track/TextTrackList.idl:
* html/track/TextTrackRegion.idl:
* html/track/TextTrackRegionList.idl:
* html/track/TrackEvent.idl:
* storage/Storage.idl:
* svg/SVGDocument.idl:
* svg/SVGElement.idl:
* workers/WorkerContext.idl:
* xml/XMLHttpRequest.idl:
* xml/XPathNSResolver.idl:
2013-04-15 Anders Carlsson <andersca@apple.com>
ScriptWrappable subclasses shouldn't have to include WeakInlines.h
https://bugs.webkit.org/show_bug.cgi?id=114641
Reviewed by Alexey Proskuryakov.
Remove ScriptWrappableInlines.h includes, they're not needed anymore.
* css/WebKitCSSMatrix.cpp:
* dom/ClientRect.cpp:
* dom/ClientRectList.cpp:
* dom/Clipboard.cpp:
* dom/DOMStringMap.cpp:
* dom/Event.cpp:
* dom/MutationRecord.cpp:
* fileapi/FileList.cpp:
* page/BarInfo.cpp:
* plugins/DOMMimeTypeArray.cpp:
* plugins/DOMPlugin.cpp:
* plugins/DOMPluginArray.cpp:
* storage/Storage.cpp:
2013-04-15 Igor Oliveira <igor.o@sisa.samsung.com>
Call directly RenderBlock::deleteLineBoxTree
https://bugs.webkit.org/show_bug.cgi?id=102761
Reviewed by Darin Adler.
Instead of implementing RenderLineBoxList::deleteLineBoxTree logic inside
RenderBlock::determineStartPosition, we can reuse the code. The commentaries added
in the changeset #86628 are not valid anymore, nextRootBox is casting m_nextLineBox
and nextLineBox is returning m_nextLineBox.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::determineStartPosition):
2013-04-15 Anders Carlsson <andersca@apple.com>
Remove files related to quota and proximity events from the Xcode project
https://bugs.webkit.org/show_bug.cgi?id=114635
Reviewed by Benjamin Poulain.
* WebCore.xcodeproj/project.pbxproj:
* history/PageCache.cpp:
* page/DOMWindow.cpp:
2013-04-15 Patrick Gansterer <paroga@webkit.org>
[CMake] Add WTF_USE_*_UNICODE variables
https://bugs.webkit.org/show_bug.cgi?id=114556
Reviewed by Brent Fulgham.
WTF_USE_ICU_UNICODE and WTF_USE_WCHAR_UNICODE are used to
reduce duplication in the platform specific CMake files.
* CMakeLists.txt:
* PlatformBlackBerry.cmake:
* PlatformEfl.cmake:
* PlatformWinCE.cmake:
2013-04-15 Eric Carlson <eric.carlson@apple.com>
HTMLMediaElement::removeTextTrack should clear track client
https://bugs.webkit.org/show_bug.cgi?id=114630
Reviewed by Jer Noble.
No new tests, this is clean-up that prevents a potential crash.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::removeTextTrack): Clear the track client.
2013-04-15 Robert Hogan <robert@webkit.org>
An inline element with an absolutely positioned child does not correctly calculate/render padding and margin
https://bugs.webkit.org/show_bug.cgi?id=47554
Reviewed by David Hyatt.
When looking for padding/margin to add from the start of a child's parent skip past any leading positioned siblings as
we don't add the padding/margin of the common parent when skipping past them in |skipLeadingWhitespace|. We
don't need to worry about the case of trailing positioned objects as we will account for their parent's
border/margin/padding when we encounter them in |nextSegmentBreak|.
Test: fast/inline/padding-before-leading-positioned-element-contributes-width.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::previousInFlowSibling):
(WebCore):
(WebCore::inlineLogicalWidth):
2013-04-15 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Compile fix.
https://bugs.webkit.org/show_bug.cgi?id=114623
Reviewed by Brent Fulgham.
* platform/network/curl/CookieJarCurl.cpp: Added required header files.
2013-04-15 Rob Buis <rbuis@rim.com>
Fix some compiler warnings (miscellaneous)
https://bugs.webkit.org/show_bug.cgi?id=80790
Reviewed by Darin Adler.
It does not seem needed to initialize jpeg_create_compress struct to zero,
all that is needed is set the err field. See for instance SkImageDecoder_libjpeg.cpp.
* platform/image-encoders/JPEGImageEncoder.cpp:
(WebCore::compressRGBABigEndianToJPEG):
2013-04-15 Patrick Gansterer <paroga@webkit.org>
[GTK] Remove platform specific implementation of KURL::fileSystemPath()
https://bugs.webkit.org/show_bug.cgi?id=114133
Reviewed by Martin Robinson.
r147883 added a generic implementation of this function,
which can be used by all ports to share the code.
* GNUmakefile.list.am:
* platform/KURL.cpp:
(WebCore):
* platform/gtk/KURLGtk.cpp: Removed.
2013-04-15 Csaba Osztrogonác <ossy@webkit.org>
Debug buildfix after r148433.
https://bugs.webkit.org/show_bug.cgi?id=108295
Reviewed by Allan Sandfeld Jensen.
* platform/graphics/texmap/TextureMapperLayer.h:
(WebCore::TextureMapperLayer::children): Added.
2013-04-15 Noam Rosenthal <noam@webkit.org>
Coordinated Graphics: Remove GraphicsLayerTextureMapper dependency from CoordinatedGraphicsScene.
https://bugs.webkit.org/show_bug.cgi?id=108295
Since all the changes to the TextureMapperLayer tree now come in a single IPC message via
CoordinatedGraphicsState, we don't need the additional buffering done in GraphicsLayerTextureMapper.
This reduces unnecessary function calls, and also streamlines GraphicsLayerTextureMapper to be used
only in WebKit1 (without CoordinatedGraphics).
Reviewed by Allan Sandfeld Jensen.
No new tests, refactor only.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
(WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
(WebCore::GraphicsLayerTextureMapper::setDrawsContent):
(WebCore::GraphicsLayerTextureMapper::prepareBackingStoreIfNeeded):
(WebCore::GraphicsLayerTextureMapper::updateDebugBorderAndRepaintCount):
(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):
(WebCore):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(GraphicsLayerTextureMapper):
Removed references to m_hasOwnBackingStore, which was done to separate the CoordinatedGraphics
path from the WK1 path.
* platform/graphics/texmap/TextureMapperLayer.h:
(WebCore::TextureMapperLayer::drawsContent):
(WebCore::TextureMapperLayer::contentsAreVisible):
(WebCore::TextureMapperLayer::size):
(WebCore::TextureMapperLayer::opacity):
(WebCore::TextureMapperLayer::transform):
(WebCore::TextureMapperLayer::isShowingRepaintCounter):
(WebCore::TextureMapperLayer::fixedToViewport):
(TextureMapperLayer):
Added a few public functions needed by CoordinatedGraphicsScene.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::layerShouldHaveBackingStore):
(WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebCore::CoordinatedGraphicsScene::paintToGraphicsContext):
(WebCore::CoordinatedGraphicsScene::adjustPositionForFixedLayers):
(WebCore::CoordinatedGraphicsScene::createCanvasIfNeeded):
(WebCore::CoordinatedGraphicsScene::syncCanvasIfNeeded):
(WebCore::CoordinatedGraphicsScene::destroyCanvasIfNeeded):
(WebCore::CoordinatedGraphicsScene::setLayerRepaintCountIfNeeded):
(WebCore::CoordinatedGraphicsScene::setLayerChildrenIfNeeded):
(WebCore::CoordinatedGraphicsScene::setLayerFiltersIfNeeded):
(WebCore::CoordinatedGraphicsScene::setLayerState):
(WebCore::CoordinatedGraphicsScene::getLayerByIDIfExists):
(WebCore::CoordinatedGraphicsScene::createLayer):
(WebCore::CoordinatedGraphicsScene::deleteLayer):
(WebCore::CoordinatedGraphicsScene::setRootLayerID):
(WebCore::CoordinatedGraphicsScene::prepareContentBackingStore):
(WebCore::CoordinatedGraphicsScene::createBackingStoreIfNeeded):
(WebCore::CoordinatedGraphicsScene::removeBackingStoreIfNeeded):
(WebCore::CoordinatedGraphicsScene::resetBackingStoreSizeToLayerSize):
(WebCore::CoordinatedGraphicsScene::createTilesIfNeeded):
(WebCore::CoordinatedGraphicsScene::removeTilesIfNeeded):
(WebCore::CoordinatedGraphicsScene::updateTilesIfNeeded):
(WebCore::CoordinatedGraphicsScene::assignImageBackingToLayer):
(WebCore::CoordinatedGraphicsScene::commitSceneState):
(WebCore::CoordinatedGraphicsScene::ensureRootLayer):
(WebCore::CoordinatedGraphicsScene::setLayerAnimationsIfNeeded):
(WebCore::CoordinatedGraphicsScene::findScrollableContentsLayerAt):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
(CoordinatedGraphicsScene):
(WebCore::CoordinatedGraphicsScene::layerByID):
(WebCore::CoordinatedGraphicsScene::rootLayer):
Use TextureMapperLayer instead of GraphicsLayer and GraphicsLayerTextureMapper.
2013-04-15 Antti Koivisto <antti@apple.com>
Dynamically triggered subframe loads are causing tile churn
https://bugs.webkit.org/show_bug.cgi?id=114440
Reviewed by Andreas Kling.
In some cases we switch in and out of minimal tiles multiple times during page loading. This
creates tile churn where we create speculative tiles and then throw them out. This can be
caused by various reasons including dynamically created subframes.
* page/FrameView.cpp:
(WebCore::FrameView::setIsVisuallyNonEmpty):
Stay in minimal tiles modes until there is some visual contents. This avoids switching out from minimal
tiles while awaiting response for the initial requests.
* page/FrameView.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
(WebCore::computeTileCoverage):
* rendering/RenderLayerBacking.h:
(WebCore::RenderLayerBacking::didSwitchToFullTileCoverageDuringLoading):
(WebCore::RenderLayerBacking::setDidSwitchToFullTileCoverageDuringLoading):
Only switch into minimal coverage mode once per page load.
(RenderLayerBacking):
2013-04-15 Rune Lillesveen <rune@opera.com>
color-index media feature not supported
https://bugs.webkit.org/show_bug.cgi?id=114468
Reviewed by Kenneth Rohde Christiansen.
Support the color-index media feature. Currently assumes that no WebKit
browser will have an output device that uses a color lookup table.
Tests: fast/media/mq-color-index-01.html
fast/media/mq-color-index-02.html
* css/MediaFeatureNames.h:
(MediaFeatureNames):
* css/MediaQueryEvaluator.cpp:
(WebCore::color_indexMediaFeatureEval):
(WebCore):
(WebCore::min_color_indexMediaFeatureEval):
(WebCore::max_color_indexMediaFeatureEval):
* css/MediaQueryExp.cpp:
(WebCore::featureWithPositiveInteger):
(WebCore::featureWithoutValue):
2013-04-15 Balazs Kelemen <kbalazs@webkit.org>
[CoordGfx] Background color should not be part of GraphicsLayerState
https://bugs.webkit.org/show_bug.cgi?id=113785
Page background is independent from layer state, send it to the UI
as soon as possible.
Should not cause observable change in behavior so no new tests.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::commitSceneState):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
2013-04-15 Carlos Garcia Campos <cgarcia@igalia.com>
[BlackBerry] Filesystem callback notifyCreateSnapshotFileAndReadMetadata can be called on the wring thread
https://bugs.webkit.org/show_bug.cgi?id=114610
Reviewed by Xan Lopez.
Override notifyCreateSnapshotFileAndReadMetadata to make sure the
callback is called on the right thread.
Fixes a crash in several fast/filesystem test in debug builds.
* platform/blackberry/WorkerPlatformAsyncFileSystemCallbacks.cpp:
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyCreateSnapshotFileAndReadMetadata):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyCreateSnapshotFileAndReadMetadataOnWorkerThread):
* platform/blackberry/WorkerPlatformAsyncFileSystemCallbacks.h:
2013-04-15 Arvid Nilsson <anilsson@rim.com>
[BlackBerry][CSS Filters] Non-image content disappears when filter applied
https://bugs.webkit.org/show_bug.cgi?id=114498
Reviewed by Carlos Garcia Campos.
Applying a filter to a div with simple text content caused the div to
disappear.
In https://bugs.webkit.org/show_bug.cgi?id=114276, we added some GL
state save/restore code for vertex attributes to make sure the state
changes done by BlackBerry::Platform::Graphics don't interfere with
GL code executing in WebKit. However, saving and restoring vertex
attribute state won't do much good if those attributes were never
enabled to begin with. Fixed by enabling vertex attributes
appropriately when setting them, so that state can be saved and
restored.
All the CSS Filters layout tests apply the filters to simple rectangles
or images, there's nothing sufficiently complex that we manage to
trigger this GL state conflict in the BlackBerry port. This suggests
adding a new platform-specific layout test would be appropriate, but
since we don't use pixel tests yet, such a test would not help detect
regressions. Ultimately we decided against adding a layout test for
this bug at this time.
* platform/graphics/blackberry/LayerFilterRenderer.cpp:
(WebCore::LayerFilterRenderer::applyActions):
2013-04-14 Jaehun Lim <ljaehun.lim@samsung.com>
[css3-text] Parsing -webkit-hanging value for text-indent from css3-text
https://bugs.webkit.org/show_bug.cgi?id=113680
Reviewed by Andreas Kling.
This patch is the parsing part to support hanging value for text-indent.
"hanging" means "Inverts which lines are affected."
It's prefixed and guarded by CSS3_TEXT flag.
No new tests, this patch updates existing tests.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseTextIndent): Parsed "-webkit-hanging" with "-webkit-each-line".
* css/CSSValueKeywords.in: Added "-webkit-hanging" keyword.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyTextIndent::applyInheritValue):
(WebCore::ApplyPropertyTextIndent::applyInitialValue):
(WebCore::ApplyPropertyTextIndent::applyValue):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h: Added enum TextIndentType.
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h: Added m_textIndentType.
(StyleRareInheritedData):
Added the usual getter / setter / initial methods for m_textIndentType.
2013-04-14 Sam Weinig <sam@webkit.org>
Move Mac specific snapshotting code into its own file
https://bugs.webkit.org/show_bug.cgi?id=114597
Reviewed by Andreas Kling.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/DOM.mm:
(-[DOMRange renderedImageForcingBlackText:]):
* page/Frame.h:
* page/mac/FrameMac.mm:
(WebCore::Frame::nodeImage):
(WebCore::Frame::dragImageForSelection):
* page/mac/FrameSnapshottingMac.h: Added.
* page/mac/FrameSnapshottingMac.mm: Added.
(WebCore::imageFromRect):
(WebCore::selectionImage):
(WebCore::rangeImage):
(WebCore::snapshotDragImage):
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::dragNSImage):
Move the four Mac specific snapshotting functions in Frame.h into FrameSnapshottingMac.h/mm and turn
them into free standing functions.
2013-04-14 Andreas Kling <akling@apple.com>
Hawtfix Mac build.
* WebCore.exp.in:
2013-04-14 Andreas Kling <akling@apple.com>
Only MutableStylePropertySets should be able to have CSSOM wrappers.
<http://webkit.org/b/114595>
Reviewed by Antti Koivisto.
Tighten typing so that only MutableStylePropertySets can have CSSOM wrappers associated.
This allows us to get rid of the out-of-line base class destructor.
* WebCore.exp.in:
* css/StylePropertySet.cpp:
(WebCore::MutableStylePropertySet::~MutableStylePropertySet):
(WebCore::MutableStylePropertySet::cssStyleDeclaration):
(WebCore::MutableStylePropertySet::ensureInlineCSSStyleDeclaration):
* css/StylePropertySet.h:
(StylePropertySet):
(MutableStylePropertySet):
* dom/StyledElement.cpp:
(WebCore::StyledElement::inlineStyleCSSOMWrapper):
2013-04-14 Andreas Kling <akling@apple.com>
Remove unused function declaration StylePropertySet::setNeedsStyleRecalc().
Rubber-stamped by Antti Koivisto.
* css/StylePropertySet.h:
(StylePropertySet):
2013-04-14 Andreas Kling <akling@apple.com>
Move StylePropertySet internal storage access helpers to subclass.
<http://webkit.org/b/114592>
Reviewed by Antti Koivisto.
Removed mutablePropertyVector() since most call sites are inside MutableStylePropertySet
and can access m_propertyVector directly. The few ones that aren't can just cast.
For ImmutableStylePropertySet, moved value/metadata array accessors to the subclass
and remove "immutable" from their names.
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::immutableCopyIfNeeded):
(WebCore::ImmutableStylePropertySet::ImmutableStylePropertySet):
(WebCore::ImmutableStylePropertySet::~ImmutableStylePropertySet):
(WebCore::MutableStylePropertySet::MutableStylePropertySet):
(WebCore::MutableStylePropertySet::removeProperty):
(WebCore::MutableStylePropertySet::removePrefixedOrUnprefixedProperty):
(WebCore::MutableStylePropertySet::setProperty):
(WebCore::MutableStylePropertySet::appendPrefixingVariantProperty):
(WebCore::MutableStylePropertySet::parseDeclaration):
(WebCore::MutableStylePropertySet::addParsedProperties):
(WebCore::MutableStylePropertySet::clear):
(WebCore::MutableStylePropertySet::removePropertiesInSet):
(WebCore::MutableStylePropertySet::findCSSPropertyWithID):
(WebCore::MutableStylePropertySet::removeEquivalentProperties):
(WebCore::StylePropertySet::reportMemoryUsage):
* css/StylePropertySet.h:
(PropertyReference):
(StylePropertySet):
(ImmutableStylePropertySet):
(WebCore::ImmutableStylePropertySet::valueArray):
(WebCore::ImmutableStylePropertySet::metadataArray):
(WebCore::StylePropertySet::PropertyReference::propertyMetadata):
(WebCore::StylePropertySet::PropertyReference::propertyValue):
(WebCore::StylePropertySet::propertyCount):
2013-04-14 Andreas Kling <akling@apple.com>
Specialize propertyCount() in StylePropertySet subclasses.
<http://webkit.org/b/114590>
Reviewed by Antti Koivisto.
Avoid branching on m_isMutable in code that already knows which type of set it is.
* css/StylePropertySet.h:
(WebCore::ImmutableStylePropertySet::propertyCount):
(ImmutableStylePropertySet):
(WebCore::MutableStylePropertySet::propertyCount):
(MutableStylePropertySet):
2013-04-14 Andreas Kling <akling@apple.com>
Move property setting/removing functions to MutableStylePropertySet.
<http://webkit.org/b/114589>
Reviewed by Antti Koivisto.
Move all functions for setting/removing properties from StylePropertySet to MutableStylePropertySet.
Had to change SVGElement::animatedSMILStyleProperties() & friends to hand out MutableStylePropertySet*
which was always the internal type anyway.
* css/StylePropertySet.cpp:
(WebCore::MutableStylePropertySet::removeShorthandProperty):
(WebCore::MutableStylePropertySet::removeProperty):
(WebCore::MutableStylePropertySet::removePrefixedOrUnprefixedProperty):
(WebCore::MutableStylePropertySet::setProperty):
(WebCore::MutableStylePropertySet::appendPrefixingVariantProperty):
(WebCore::MutableStylePropertySet::setPrefixingVariantProperty):
(WebCore::MutableStylePropertySet::mergeAndOverrideOnConflict):
(WebCore::MutableStylePropertySet::removeBlockProperties):
(WebCore::MutableStylePropertySet::removePropertiesInSet):
(WebCore::MutableStylePropertySet::findCSSPropertyWithID):
(WebCore::MutableStylePropertySet::removeEquivalentProperties):
* css/StylePropertySet.h:
(StylePropertySet):
(MutableStylePropertySet):
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
(WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::triStateOfStyle):
(WebCore::removePropertiesInStyle):
(WebCore::reconcileTextDecorationProperties):
* svg/SVGAnimateElement.cpp:
(WebCore::applyCSSPropertyToTarget):
* svg/SVGElement.cpp:
(WebCore::SVGElement::animatedSMILStyleProperties):
(WebCore::SVGElement::ensureAnimatedSMILStyleProperties):
* svg/SVGElement.h:
(SVGElement):
* svg/SVGElementRareData.h:
(WebCore::SVGElementRareData::animatedSMILStyleProperties):
(WebCore::SVGElementRareData::ensureAnimatedSMILStyleProperties):
(SVGElementRareData):
2013-04-14 Andreas Kling <akling@apple.com>
EditingStyle should have a MutableStylePropertySet internally.
<http://webkit.org/b/114588>
Reviewed by Anders Carlsson.
Switch EditingStyle::m_mutableStyle to a RefPtr<MutableStylePropertySet>.
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::copyBlockProperties):
* css/StylePropertySet.h:
(StylePropertySet):
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::setStyle):
(WebCore::EditingStyle::mergeStyleFromRules):
(WebCore::StyleChange::StyleChange):
(WebCore::setTextDecorationProperty):
(WebCore::StyleChange::extractTextStyles):
(WebCore::diffTextDecorations):
(WebCore::getPropertiesNotIn):
* editing/EditingStyle.h:
(WebCore::EditingStyle::style):
(EditingStyle):
(StyleChange):
2013-04-14 Andreas Kling <akling@apple.com>
Move addParsedProperty/addParsedProperties to MutableStylePropertySet.
<http://webkit.org/b/114587>
Reviewed by Antti Koivisto.
All CSSParser methods that mutate an existing StylePropertySet now take a MutableStylePropertySet*
instead of a StylePropertySet*.
* css/CSSParser.cpp:
(WebCore::parseColorValue):
(WebCore::parseSimpleLengthValue):
(WebCore::parseKeywordValue):
(WebCore::parseTranslateTransformValue):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseDeclaration):
* css/CSSParser.h:
(CSSParser):
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::setProperty):
(WebCore::MutableStylePropertySet::addParsedProperties):
(WebCore::MutableStylePropertySet::addParsedProperty):
* css/StylePropertySet.h:
(StylePropertySet):
(MutableStylePropertySet):
* css/ViewportStyleResolver.h:
(ViewportStyleResolver):
2013-04-14 Andreas Kling <akling@apple.com>
CSSParser should return ImmutableStylePropertySets.
<http://webkit.org/b/114585>
Reviewed by Anders Carlsson.
The StylePropertySets created by CSSParser were already immutable.
Let this be reflected in the pointer types returned.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseInlineStyleDeclaration):
(WebCore::CSSParser::parseDeclaration):
(WebCore::CSSParser::createStylePropertySet):
* css/CSSParser.h:
(CSSParser):
2013-04-14 Andreas Kling <akling@apple.com>
Move StylePropertySet::createImmutable() to ImmutableStylePropertySet.
<http://webkit.org/b/114584>
Reviewed by Anders Carlsson.
StylePropertySet::createImmutable() -> ImmutableStylePropertySet::create()
Also, immutableCopyIfNeeded() now returns a PassRefPtr<ImmutableStylePropertySet>.
* css/CSSParser.cpp:
(WebCore::CSSParser::createStylePropertySet):
* css/StylePropertySet.cpp:
(WebCore::ImmutableStylePropertySet::create):
(WebCore::StylePropertySet::immutableCopyIfNeeded):
* css/StylePropertySet.h:
(StylePropertySet):
(ImmutableStylePropertySet):
2013-04-14 Andreas Kling <akling@apple.com>
Move parseDeclaration() and clear() to MutableStylePropertySet.
<http://webkit.org/b/114583>
Reviewed by Anders Carlsson.
...and remove ASSERT(isMutable()) from the function bodies.
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::removedFrom):
Use clear() directly instead of taking an empty string through the CSS parser.
* css/StylePropertySet.cpp:
(WebCore::MutableStylePropertySet::parseDeclaration):
(WebCore::MutableStylePropertySet::clear):
* css/StylePropertySet.h:
(StylePropertySet):
(MutableStylePropertySet):
* dom/StyledElement.cpp:
(WebCore::StyledElement::setInlineStyleFromString):
2013-04-14 Andreas Kling <akling@apple.com>
Move CSSOM classes to using MutableStylePropertySet over StylePropertySet.
<http://webkit.org/b/114581>
Reviewed by Anders Carlsson.
Moved ensureCSSStyleDeclaration() and ensureInlineCSSStyleDeclaration() from StylePropertySet
to MutableStylePropertySet.
StyleRule & co now return a MutableStylePropertySet* from mutableProperties() to aid with...
CSSStyleDeclaration now only deals with MutableStylePropertySets. This was already the case
in practice, we just didn't have any compile-time foot-shooting protection.
In other words, if there's a CSSOM wrapper for a given StylePropertySet, it's guaranteed to
be mutable, and the pointer types now reflect this.
* WebCore.exp.in:
* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::StyleRuleCSSStyleDeclaration::StyleRuleCSSStyleDeclaration):
(WebCore::StyleRuleCSSStyleDeclaration::reattach):
* css/PropertySetCSSStyleDeclaration.h:
(WebCore::PropertySetCSSStyleDeclaration::PropertySetCSSStyleDeclaration):
(PropertySetCSSStyleDeclaration):
(WebCore::StyleRuleCSSStyleDeclaration::create):
(StyleRuleCSSStyleDeclaration):
(WebCore::InlineCSSStyleDeclaration::InlineCSSStyleDeclaration):
* css/StylePropertySet.cpp:
(WebCore::MutableStylePropertySet::ensureCSSStyleDeclaration):
(WebCore::MutableStylePropertySet::ensureInlineCSSStyleDeclaration):
* css/StylePropertySet.h:
(StylePropertySet):
(MutableStylePropertySet):
* css/StyleRule.cpp:
(WebCore::StyleRule::mutableProperties):
(WebCore::StyleRulePage::mutableProperties):
(WebCore::StyleRuleFontFace::mutableProperties):
(WebCore::StyleRuleViewport::mutableProperties):
(WebCore::StyleRuleFilter::mutableProperties):
* css/StyleRule.h:
(StyleRule):
(StyleRuleFontFace):
(StyleRulePage):
(StyleRuleViewport):
(StyleRuleFilter):
* css/WebKitCSSKeyframeRule.cpp:
(WebCore::StyleKeyframe::mutableProperties):
* css/WebKitCSSKeyframeRule.h:
(StyleKeyframe):
* dom/Attr.cpp:
(WebCore::Attr::style):
* dom/Attr.h:
(Attr):
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::removeStyleAddedByNode):
(WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode):
(WebCore::EditingStyle::triStateOfStyle):
(WebCore::styleFromMatchedRulesForElement):
(WebCore::EditingStyle::removeStyleFromRulesAndContext):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::copyTypingStyle):
* editing/FrameSelection.h:
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
2013-04-14 Andreas Kling <akling@apple.com>
Move create() methods from StylePropertySet to MutableStylePropertySet.
<http://webkit.org/b/114574>
Reviewed by Antti Koivisto.
Move the two create() methods that create MutableStylePropertySets from StylePropertySet
to MutableStylePropertySet, and make them actually return MutableStylePropertySets.
Switch to using {Pass,}RefPtr<MutableStylePropertySet> where appropriate to keep things building.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseFontFaceValue):
* css/DOMWindowCSS.cpp:
(WebCore::DOMWindowCSS::supports):
* css/ElementRuleCollector.cpp:
(WebCore::leftToRightDeclaration):
(WebCore::rightToLeftDeclaration):
* css/FontLoader.cpp:
(WebCore::FontLoader::resolveFontStyle):
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::copyPropertiesInSet):
(WebCore::MutableStylePropertySet::create):
* css/StylePropertySet.h:
(StylePropertySet):
(MutableStylePropertySet):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::resolveVariables):
* css/WebKitCSSMatrix.cpp:
(WebCore::WebKitCSSMatrix::setMatrixValue):
* dom/Attr.cpp:
(WebCore::Attr::style):
* dom/Document.cpp:
(WebCore::Document::createCSSStyleDeclaration):
* dom/StyledElement.cpp:
(WebCore::StyledElement::ensureMutableInlineStyle):
(WebCore::StyledElement::rebuildPresentationAttributeStyle):
* editing/ApplyStyleCommand.cpp:
(WebCore::copyStyleOrCreateEmpty):
* editing/EditingStyle.cpp:
(WebCore::editingStyleFromComputedStyle):
(WebCore::HTMLAttributeEquivalent::attributeValueAsCSSValue):
(WebCore::EditingStyle::setProperty):
(WebCore::EditingStyle::extractAndRemoveTextDirection):
(WebCore::styleFromMatchedRulesForElement):
(WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
(WebCore::EditingStyle::forceInline):
* editing/Editor.cpp:
(WebCore::Editor::setBaseWritingDirection):
* editing/EditorCommand.cpp:
(WebCore::executeApplyStyle):
(WebCore::executeToggleStyleInList):
(WebCore::executeApplyParagraphStyle):
(WebCore::executeMakeTextWritingDirectionLeftToRight):
(WebCore::executeMakeTextWritingDirectionNatural):
(WebCore::executeMakeTextWritingDirectionRightToLeft):
* html/HTMLTableElement.cpp:
(WebCore::leakBorderStyle):
(WebCore::HTMLTableElement::createSharedCellStyle):
(WebCore::leakGroupBorderStyle):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setFont):
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyle::setPropertyText):
(WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
* page/DragController.cpp:
(WebCore::DragController::concludeEditDrag):
* svg/SVGElementRareData.h:
(WebCore::SVGElementRareData::ensureAnimatedSMILStyleProperties):
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::SVGFontFaceElement):
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::getPresentationAttribute):
2013-04-13 Sam Weinig <sam@webkit.org>
Fix three crashes seen on the bots after "Make Frame's ScriptController an OwnPtr and remove the #include"
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::open):
Check that the frame is not null (as it can be in cases like http/tests/xmlhttprequest/detaching-frame-2.html).
We used to be getting lucky, in that shouldBypassMainWorldContentSecurityPolicy(), the function that is ultimately
called, only operates on global state. Now that we need to actually dereference the Frame to get the ScriptController,
we see this crash.
2013-04-13 Sukolsak Sakshuwong <sukolsak@gmail.com>
Selection direction is not preserved when applying styles
https://bugs.webkit.org/show_bug.cgi?id=110979
Reviewed by Ryosuke Niwa.
The patch is based on the one submitted by Shezan Baig.
If the starting selection was directional and its base was not first,
switch newStart and newEnd when setting the ending direction. Otherwise,
leave the order unchanged.
Test: editing/style/preserve-selection-direction.html
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::updateStartEnd):
2013-04-13 Alexey Proskuryakov <ap@apple.com>
Added svn:ignore for inspector/CodeGeneratorInspectorStrings.pyc
* inspector: Added property svn:ignore.
2013-04-13 Sam Weinig <sam@webkit.org>
Make Frame's ScriptController an OwnPtr and remove the #include
https://bugs.webkit.org/show_bug.cgi?id=114105
Reviewed by Dean Jackson.
* Modules/websockets/WebSocket.cpp:
* bindings/generic/BindingSecurity.cpp:
* bindings/js/JSEventListener.cpp:
* bindings/js/JSLazyEventListener.cpp:
* bindings/js/PageScriptDebugServer.cpp:
* bindings/js/ScriptEventListener.cpp:
* bindings/js/ScriptState.cpp:
* bindings/objc/DOM.mm:
* bindings/objc/DOMAbstractView.mm:
* bindings/objc/DOMInternal.mm:
* dom/DocumentStyleSheetCollection.cpp:
* dom/EventTarget.cpp:
* dom/ScriptElement.cpp:
* history/CachedFrame.cpp:
* html/HTMLCanvasElement.cpp:
* html/HTMLDocument.cpp:
* html/HTMLElement.cpp:
* html/HTMLFormElement.cpp:
* html/HTMLPlugInElement.cpp:
* html/HTMLPlugInImageElement.cpp:
* html/parser/HTMLParserOptions.cpp:
* inspector/InspectorAgent.cpp:
* inspector/InspectorController.cpp:
* inspector/InspectorFrontendClientLocal.cpp:
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorInstrumentation.cpp:
* inspector/InspectorOverlay.cpp:
* inspector/InspectorPageAgent.cpp:
* inspector/PageRuntimeAgent.cpp:
* loader/DocumentWriter.cpp:
* loader/NavigationScheduler.cpp:
* loader/SubframeLoader.cpp:
* loader/cache/CachedResourceLoader.cpp:
* page/DOMWindow.cpp:
* page/EventSource.cpp:
* page/Frame.cpp:
* page/Frame.h:
* page/Navigator.cpp:
* page/Page.cpp:
* page/PageGroup.cpp:
* xml/XMLHttpRequest.cpp:
* xml/XMLTreeViewer.cpp:
2013-04-13 Anders Carlsson <andersca@apple.com>
Add form delegate method that's invoked right before sending a submit event to a form element
https://bugs.webkit.org/show_bug.cgi?id=114575
Reviewed by Dan Bernstein.
* WebCore.exp.in:
Export a symbol.
* WebCore.xcodeproj/project.pbxproj:
Make DOMHTMLFormElementInternal.h a private header.
2013-03-13 Robert Hogan <robert@webkit.org>
Whitespace between nowrap elements ignored after collapsed trailing space in a text run
https://bugs.webkit.org/show_bug.cgi?id=17705
Reviewed by Ryosuke Niwa.
Bug 93448 and r138654 fixed the treatment of line-breaks between nowrap elements. This augments
that fix by recognizing that we have a potential break not only in situations where the next character is a
space and the current character is not, but also where the next character is a space and the current character
*is* a space *and* we are ignoring spaces. This is so because any spaces we have ignored up to this point
after the actual word end will get collapsed away even if we don't end up taking the line break.
In a nutshell, if we allow whitespace collapsing 'word ' and 'word' are equivalent when before a whitespace
character, so treat the first as well as the second as a potential linebreak.
Test: fast/text/whitespace/inline-whitespace-wrapping-5.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
2013-04-13 Andreas Kling <akling@apple.com>
Rename/tweak some StylePropertySet/CSSStyleDeclaration copying functions.
<http://webkit.org/b/114569>
Reviewed by Anders Carlsson.
- StylePropertySet::copy() -> mutableCopy()
This function now returns a MutableStylePropertySet, and this is also reflected in the name.
- CSSStyleDeclaration::copy() -> copyProperties()
Renamed to reflect that it's the properties being copied, not the CSSStyleDeclaration.
They also now return MutableStylePropertySets.
- StylePropertySet::copyPropertiesInSet()
- CSSStyleDeclaration::copyPropertiesInSet()
These functions now return MutableStylePropertySets.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::copyProperties):
(WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
* css/CSSComputedStyleDeclaration.h:
(CSSComputedStyleDeclaration):
* css/CSSStyleDeclaration.h:
(CSSStyleDeclaration):
* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::copyProperties):
* css/PropertySetCSSStyleDeclaration.h:
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::mutableCopy):
(WebCore::StylePropertySet::copyPropertiesInSet):
* css/StylePropertySet.h:
(StylePropertySet):
* css/StyleRule.cpp:
(WebCore::StyleRule::StyleRule):
(WebCore::StyleRule::mutableProperties):
(WebCore::StyleRulePage::StyleRulePage):
(WebCore::StyleRulePage::mutableProperties):
(WebCore::StyleRuleFontFace::StyleRuleFontFace):
(WebCore::StyleRuleFontFace::mutableProperties):
(WebCore::StyleRuleViewport::StyleRuleViewport):
(WebCore::StyleRuleViewport::mutableProperties):
(WebCore::StyleRuleFilter::StyleRuleFilter):
(WebCore::StyleRuleFilter::mutableProperties):
* css/ViewportStyleResolver.cpp:
(WebCore::ViewportStyleResolver::addViewportRule):
* css/WebKitCSSKeyframeRule.cpp:
(WebCore::StyleKeyframe::mutableProperties):
* dom/Element.cpp:
(WebCore::UniqueElementData::UniqueElementData):
* dom/StyledElement.cpp:
(WebCore::StyledElement::ensureMutableInlineStyle):
* editing/ApplyStyleCommand.cpp:
(WebCore::copyStyleOrCreateEmpty):
* editing/EditingStyle.cpp:
(WebCore::copyEditingProperties):
(WebCore::editingStyleFromComputedStyle):
(WebCore::EditingStyle::EditingStyle):
(WebCore::EditingStyle::init):
(WebCore::EditingStyle::copy):
(WebCore::EditingStyle::mergeStyle):
(WebCore::getPropertiesNotIn):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::copyTypingStyle):
2013-04-13 Dirk Schulze <krit@webkit.org>
Rename StyleBuilder to DeprecatedStyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=114532
Reviewed by Benjamin Poulain.
The StyleBuilder code is hard to read and maintain. People should
not add new properties to this class. To make this clear, this
patch renames the class to DeprecatedStyleBuilder.
Pure refactoring, no change in functionality.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSAllInOne.cpp:
* css/DeprecatedStyleBuilder.cpp: Renamed from Source/WebCore/css/StyleBuilder.cpp.
* css/DeprecatedStyleBuilder.h: Renamed from Source/WebCore/css/StyleBuilder.h.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::reportMemoryUsage):
* css/StyleResolver.h:
(StyleResolver):
* rendering/style/RenderStyle.h:
2013-04-13 Andreas Kling <akling@apple.com>
Remove unused method CSSStyleDeclaration::makeMutable().
<http://webkit.org/b/114567>
Reviewed by Anders Carlsson.
* css/CSSComputedStyleDeclaration.cpp:
* css/CSSComputedStyleDeclaration.h:
(CSSComputedStyleDeclaration):
* css/CSSStyleDeclaration.h:
(CSSStyleDeclaration):
* css/PropertySetCSSStyleDeclaration.cpp:
* css/PropertySetCSSStyleDeclaration.h:
2013-04-13 Antoine Quint <graouts@apple.com>
Width of last of consecutive tabs may be incorrect with "white-space: pre-wrap"
https://bugs.webkit.org/show_bug.cgi?id=114562
Reviewed by Dan Bernstein.
When we measure the last word of a RenderText, make sure we use the correct x
position taking into account the current accumulated word measurements up to
this character. This is of particular importance in the case of tabs where the
measured width would differ based on the x position.
Test: fast/text/tab-last-word-in-renderer-pre-wrap.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::setLogicalWidthForTextRun):
2013-04-13 Mark Salisbury <mark.salisbury@hp.com>
[Windows, WinCairo] ImageBufferCairo.cpp fails to compile after 148247, 148264.
https://bugs.webkit.org/show_bug.cgi?id=114540
Reviewed by Brent Fulgham.
* platform/graphics/cairo/ImageBufferCairo.cpp:
2013-04-13 Zan Dobersek <zdobersek@igalia.com>
Unreviewed GTK build fix after r148305.
* GNUmakefile.list.am: Adding the TrackListBase build targets to the build.
2013-04-09 Roger Fong <roger_fong@apple.com>
Update AVFoundationCF code following http://trac.webkit.org/changeset/148291.
https://bugs.webkit.org/show_bug.cgi?id=114548.
Reviewed by Eric Carlson.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::seekToTime):
(WebCore::MediaPlayerPrivateAVFoundationCF::platformMinTimeSeekable):
(WebCore):
(WebCore::MediaPlayerPrivateAVFoundationCF::platformMaxTimeSeekable):
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
(MediaPlayerPrivateAVFoundationCF):
2013-04-12 Simon Fraser <simon.fraser@apple.com>
Demystify some code in RenderLayer::updateScrollableAreaSet()
https://bugs.webkit.org/show_bug.cgi?id=114543
Reviewed by Tim Horton.
Clean up some code that called functions with important side effects
inside a ternary operator, and clean up the #ifdefs.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateScrollableAreaSet):
2013-04-12 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13277362> REGRESSION (r141981): Crash when closing a Google Docs document
https://bugs.webkit.org/show_bug.cgi?id=114541
Reviewed by Brady Eidson.
Test: http/tests/ssl/ping-with-unsafe-redirect.html
* loader/FrameNetworkingContext.h:
(WebCore::FrameNetworkingContext::shouldClearReferrerOnHTTPSToHTTPRedirect):
Added a null check. All NetworkingContext functions except for this one had it already.
2013-04-12 Ryosuke Niwa <rniwa@webkit.org>
[Mac] REGRESSION: Auto substitution strips new lines
https://bugs.webkit.org/show_bug.cgi?id=114537
Reviewed by Enrica Casucci.
The bug was caused by SpellingCorrectionCommand's use of InsertTextCommand. This command can't insert
new lines and there's even an assertion for it. Use TypingCommand::insertText instead.
Since TypingCommand::insertText calls appliedEditing on its own, we need to avoid calling that again in
CompositeEditCommand::apply after SpellingCorrectionCommand::doApply. Replaced the check in apply to use
callsAppliedEditingInDoApply instead of isTypingCommand, and added callsAppliedEditingInDoApply to both
TypingCommand and SpellingCorrectionCommand to return true (it returns false by default).
Test: platform/mac/editing/spelling/autocorrection-with-multi-line-text.html
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::apply): Use TypingCommand::insertText instead of InsertTextCommand
(WebCore::CompositeEditCommand::callsAppliedEditingInDoApply): Added. Returns false.
* editing/CompositeEditCommand.h:
(CompositeEditCommand):
* editing/SpellingCorrectionCommand.cpp:
(WebCore::SpellingCorrectionCommand::doApply):
(WebCore::SpellingCorrectionCommand::callsAppliedEditingInDoApply): Added. Returns true.
* editing/SpellingCorrectionCommand.h:
(SpellingCorrectionCommand):
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::callsAppliedEditingInDoApply): Added. Returns true.
* editing/TypingCommand.h:
(TypingCommand):
2013-04-12 Brendan Long <b.long@cablelabs.com>
Refactor TextTrack and TextTrackList to make it easier to add audio and video tracks
https://bugs.webkit.org/show_bug.cgi?id=114330
Reviewed by Jer Noble.
No new tests because this doesn't add new functionality.
* CMakeLists.txt: Only compile text track files if ENABLE(VIDEO_TRACK), and add TrackListBase
* Target.pri: Add TrackListBase
* WebCore.vcproj/WebCore.vcproj: Correct InbandTextTrackPrivate.h's location and add TrackListBase
* WebCore.xcodeproj/project.pbxproj: Add TrackListBase
* html/HTMLMediaElement.cpp: Renamed "track" functions to "textTrack"
(WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack): Renamed.
(WebCore::HTMLMediaElement::mediaPlayerDidRemoveTextTrack): Renamed.
(WebCore::HTMLMediaElement::addTextTrack): Renamed.
(WebCore::HTMLMediaElement::removeTextTrack): Renamed.
(WebCore::HTMLMediaElement::removeAllInbandTracks): Use renamed functions.
(WebCore::HTMLMediaElement::didAddTextTrack): Renamed.
(WebCore::HTMLMediaElement::didRemoveTextTrack): Renamed.
* html/HTMLMediaElement.h:
Renamed "track" functions to "textTrack" and only forward-declare TextTrackList if ENABLE(VIDEO_TRACK)
* html/HTMLTrackElement.cpp: Renamed "track" functions to "textTrack"
(WebCore::HTMLTrackElement::insertedInto):
(WebCore::HTMLTrackElement::removedFrom):
* html/track/TextTrack.cpp:
Move media element, label, language and kind into TrackBase and move EventTarget functions into TextTrack.
(WebCore::TextTrack::TextTrack): Added.
(WebCore::TextTrack::interfaceName): Added.
(WebCore::TextTrack::scriptExecutionContext): Added.
(WebCore::TextTrack::eventTargetData): Added.
(WebCore::TextTrack::ensureEventTargetData): Added.
(WebCore::TextTrack::isValidKind): Added to support TrackBase::setKind()
(WebCore::TextTrack::setKind): Override to support textTrackKindChanged()
(WebCore::TextTrack::isRendered): Use kind(), label() and language() instead of m_kind, etc.
(WebCore::TextTrack::platformTextTrack): Ditto.
(WebCore::TextTrack::isMainProgramContent): Ditto.
* html/track/TextTrack.h:
Same as TextTrack.cpp, plus added defaultKindKeyword() so TrackBase::setKind() will work and added
toTextTrack().
* html/track/TextTrackList.cpp:
Move functionality into TrackListBase, add toTextTrack() casts, use
TrackBase where necesssary and use owner() instead of m_owner.
Moved EventTarget functions into TrackListBase.
(TextTrackList::TextTrackList):
(TextTrackList::getTrackIndexRelativeToRenderedTracks):
(TextTrackList::item):
(TextTrackList::invalidateTrackIndexesAfterTrack):
(TextTrackList::append):
(TextTrackList::remove):
(TextTrackList::contains):
* html/track/TextTrackList.h:
Move EventTarget, RefCounted and m_inbandTracks into TrackListBase.
Override length(), contains() and remove().
* html/track/TrackBase.cpp: Remove EventTarget functions.
(WebCore::TrackBase::TrackBase):
Remove EventTarget, add label and language
(WebCore::TrackBase::setKind): Added
* html/track/TrackBase.h:
Don't extend EventTarget (AudioTrack and VideoTrack aren't). Handle
kind, label, language and media element.
(WebCore::TrackBase::setMediaElement): Added.
(WebCore::TrackBase::mediaElement): Added.
(WebCore::TrackBase::kind): Added.
(WebCore::TrackBase::label): Added.
(WebCore::TrackBase::setLabel): Added.
(WebCore::TrackBase::language): Added.
(WebCore::TrackBase::setLanguage): Added.
* html/track/TrackListBase.cpp:
Added. Handles functionality common to TextTrackList, AudioTrackList and
VideoTrackList.
(TrackListBase::TrackListBase): Added.
(TrackListBase::~TrackListBase): Added.
(TrackListBase::length): Added.
(TrackListBase::remove): Added.
(TrackListBase::contains): Added.
(TrackListBase::scheduleAddTrackEvent): Added.
(TrackListBase::scheduleRemoveTrackEvent): Added.
(TrackListBase::scheduleChangeEvent): Added.
(TrackListBase::asyncEventTimerFired): Added.
* html/track/TrackListBase.h:
Copied from Source/WebCore/html/track/TextTrackList.h. Handles
functionality common to TextTrackList, AudioTrackList and VideoTrackList.
(WebCore::TrackListBase::scriptExecutionContext): Added.
(WebCore::TrackListBase::clearOwner): Added.
(WebCore::TrackListBase::owner): Added.
(WebCore::TrackListBase::isFiringEventListeners): Added.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::addTextTrack): Renamed (was addTrack)
(WebCore::MediaPlayer::removeTextTrack): Renamed (was removeTrack)
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerDidAddTextTrack): Renamed (was mediaPlayerDidAddTrack)
(WebCore::MediaPlayerClient::mediaPlayerDidRemoveTextTrack): Renamed (was mediaPlayerDidRemoveTrack)
2013-04-12 Oliver Hunt <oliver@apple.com>
make the codegenerator actually emit polymorphism check in the "no vtable" path
https://bugs.webkit.org/show_bug.cgi?id=114533
Reviewed by David Kilzer.
Make the "no vtable" check correct so that we actually plant a polymorphism
check. Update a few interfaces to have the correct validation attributes.
* Modules/webdatabase/SQLTransaction.idl:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::toJS):
* bindings/scripts/test/TestInterface.idl:
* html/track/TextTrackCue.idl:
* svg/SVGAnimatedAngle.idl:
* svg/SVGAnimatedBoolean.idl:
* svg/SVGAnimatedEnumeration.idl:
* svg/SVGAnimatedInteger.idl:
* svg/SVGAnimatedLength.idl:
* svg/SVGAnimatedLengthList.idl:
* svg/SVGAnimatedNumber.idl:
* svg/SVGAnimatedNumberList.idl:
* svg/SVGAnimatedPreserveAspectRatio.idl:
* svg/SVGAnimatedRect.idl:
* svg/SVGAnimatedString.idl:
* svg/SVGAnimatedTransformList.idl:
2013-04-12 Oliver Hunt <oliver@apple.com>
Make CodeGeneratorJS plant comments to explain failures in the binding validation
https://bugs.webkit.org/show_bug.cgi?id=114528
Reviewed by Sam Weinig.
No change in behaviour, just make the generated bindings include comments
to aid diagnosing issues that may be non-obvious.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::toJS):
2013-04-12 Tim Horton <timothy_horton@apple.com>
REGRESSION (r138858): GIFs don't start playing when they come out of background tabs
https://bugs.webkit.org/show_bug.cgi?id=108864
<rdar://problem/13140489>
Reviewed by Antti Koivisto.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::resumeAnimatingImagesForLoader): Added.
Iterate through all of the loader's cached resources. If they are bitmap images
which claim to be animatable, notify the image's observers that the animation advanced
by one frame. In reality, the image is still on the same frame, but will now be repainted,
restarting the animation loop.
* loader/cache/CachedImage.h:
* page/FrameView.cpp:
(WebCore::FrameView::setIsInWindow):
When the FrameView is brought into a window, repaint all animated images.
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::canAnimate): Added.
Return whether or not the image should animate (claims to animate, has not already
finished its animation, and has an ImageObserver) *and* has more than one frame.
* platform/graphics/BitmapImage.h:
(BitmapImage): Add canAnimate.
2013-04-12 Martin Robinson <mrobinson@igalia.com>
r148197 broke the GTK+ build
https://bugs.webkit.org/show_bug.cgi?id=114525
Reviewed by Anders Carlsson.
Re-add the ENABLE(SCROLLING_THREAD) guards to scrolling thread files
and extend them with USE(COORDINATED_GRAPHICS). This code is unused
by other configurations currently.
* page/scrolling/ScrollingStateFixedNode.cpp: Re-add guards.
* page/scrolling/ScrollingStateFixedNode.h: Ditto.
* page/scrolling/ScrollingStateNode.cpp: Ditto.
* page/scrolling/ScrollingStateNode.h: Ditto.
* page/scrolling/ScrollingStateScrollingNode.cpp: Ditto.
* page/scrolling/ScrollingStateScrollingNode.h: Ditto.
* page/scrolling/ScrollingStateStickyNode.cpp: Ditto.
* page/scrolling/ScrollingStateStickyNode.h: Ditto.
* page/scrolling/ScrollingStateTree.cpp: Ditto.
* page/scrolling/ScrollingStateTree.h: Ditto.
* page/scrolling/mac/ScrollingStateNodeMac.mm: Ditto.
* page/scrolling/mac/ScrollingStateScrollingNodeMac.mm: Ditto.
2013-04-12 Jer Noble <jer.noble@apple.com>
(AVFoundation) WebKit fails to detect live stream.
https://bugs.webkit.org/show_bug.cgi?id=114474
Reviewed by Eric Carlson.
Remove a workaround (added by r88944) for an error in an Apple.com javascript
media controller. The error has been fixed, and the workaround is causing problems
with other media streams.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration):
2013-04-12 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Split GtkAuthenticationDialog in two widgets
https://bugs.webkit.org/show_bug.cgi?id=103644
Reviewed by Xan Lopez.
The current GtkAuthenticationDialog implements both the common
logic and widgets to implement a real GtkDialog and a widget to be
embedded in any container. WebKit1 uses a GtkDialog while WebKit2
embeds the dialog in the WebView. This patch splits the code to
leave in Platform only the code that is actually common, leaving
the widget implementation to the WebKit layer, using a dialog in
WebKit1 and embedding auth widget in the WebView in WebKit2.
* GNUmakefile.list.am: Add new files to compilation.
* platform/gtk/GtkAuthenticationDialog.cpp: Removed.
* platform/gtk/GtkAuthenticationDialog.h: Removed.
* platform/gtk/WebKitAuthenticationWidget.cpp: Added.
(_WebKitAuthenticationWidgetPrivate):
(packTwoColumnLayoutInBox):
(createLabel):
(createEntry):
(webkitAuthenticationWidgetInitialize):
(webkitAuthenticationWidgetFinalize):
(webkit_authentication_widget_init):
(webkit_authentication_widget_class_init):
(webkitAuthenticationWidgetNew):
(webkitAuthenticationWidgetCreateCredential):
(webkitAuthenticationWidgetGetChallenge):
* platform/gtk/WebKitAuthenticationWidget.h: Added.
(_WebKitAuthenticationWidget):
(_WebKitAuthenticationWidgetClass):
2013-04-11 Jer Noble <jer.noble@apple.com>
Add support for MediaPlayer::minTimeSeekable()
https://bugs.webkit.org/show_bug.cgi?id=114484
Reviewed by Eric Carlson.
Plumb a new minTimeSeekable() method through MediaPlayer and
MediaPlayerPrivate and use this new method in the existing
HTMLMediaElement::minTimeSeekable() method.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::minTimeSeekable): Pass to MediaPlayer.
* platform/graphics/MediaPlayer.cpp:
(WebCore::NullMediaPlayerPrivate::minTimeSeekable): Return 0.
(WebCore::MediaPlayer::minTimeSeekable): Pass to MediaPlayerPrivate.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::seekable): Define in terms of
minTimeSeekable()
(WebCore::MediaPlayerPrivateInterface::minTimeSeekable): Default to 0.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
Initialize new m_cachedMinTimeSeekable ivar.
(WebCore::MediaPlayerPrivateAVFoundation::maxTimeSeekableDouble):
Renamed from maxTimeSeekable().
(WebCore::MediaPlayerPrivateAVFoundation::minTimeSeekable): Added.
Cache value of platformMinTimeSeekable().
(WebCore::MediaPlayerPrivateAVFoundation::seekableTimeRangesChanged):
Reset m_cachedMinTimeSeekable.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime): float -> double.
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMinTimeSeekable):
Added. Retrieve the lowest value from -[m_playerItem seekableTimeRanges].
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeSeekable):
float -> double.
2013-04-12 Commit Queue <rniwa@webkit.org>
Unreviewed, rolling out r147942, r148026, and r148092.
http://trac.webkit.org/changeset/147942
http://trac.webkit.org/changeset/148026
http://trac.webkit.org/changeset/148092
https://bugs.webkit.org/show_bug.cgi?id=114521
"r147942 is buggy. Rollback all the patches depending on it."
(Requested by abucur on #webkit).
* dom/ContainerNode.cpp:
(WebCore::willRemoveChildren):
(WebCore):
(WebCore::ContainerNode::removeChildren):
* dom/Document.cpp:
(WebCore::Document::nodeChildrenWillBeRemoved):
(WebCore):
* dom/Document.h:
(Document):
* dom/Node.cpp:
* dom/Node.h:
(Node):
* dom/NodeTraversal.cpp:
* dom/NodeTraversal.h:
(ElementTraversal):
(NodeTraversal):
* dom/Range.cpp:
(WebCore::boundaryNodeChildrenWillBeRemoved):
(WebCore):
(WebCore::Range::nodeChildrenWillBeRemoved):
* dom/Range.h:
* html/HTMLLIElement.cpp:
(WebCore::HTMLLIElement::attach):
* html/HTMLOListElement.cpp:
(WebCore::HTMLOListElement::updateItemValues):
(WebCore::HTMLOListElement::recalculateItemCount):
* rendering/RenderCounter.cpp:
(WebCore::previousInPreOrder):
(WebCore::previousSiblingOrParent):
(WebCore::parentElement):
(WebCore::nextInPreOrder):
* rendering/RenderListItem.cpp:
(WebCore::enclosingList):
(WebCore::RenderListItem::nextListItem):
(WebCore::previousListItem):
(WebCore::RenderListItem::calcValue):
(WebCore::RenderListItem::explicitValueChanged):
(WebCore::previousOrNextItem):
(WebCore::RenderListItem::updateListMarkerNumbers):
* rendering/RenderListItem.h:
(RenderListItem):
2013-04-12 Jer Noble <jer.noble@apple.com>
TimeRanges::nearest() returns incorrect results.
https://bugs.webkit.org/show_bug.cgi?id=114483
Reviewed by Eric Carlson.
Test: media/timeranges-nearest.html
TimeRanges::nearest() has had an incorrect algorithm since its
addition, which has gone unnoticed because no media engine supports
seekable ranges with greater than one entry, and no media engine
seekable ranges with startTime values > 0.
Fix the algorithm used to walk a TimeRanges object; return the closest
time, not the smallest delta between range and target time.
* html/TimeRanges.cpp:
(TimeRanges::nearest):
Add some internal functions to allow us to write LayoutTests for
TimeRanges objects:
* WebCore.exp.in:
* testing/Internals.cpp:
(WebCore::Internals::createTimeRanges):
(WebCore::Internals::closestTimeToTimeRanges):
* testing/Internals.h:
* testing/Internals.idl:
2013-04-12 Eric Carlson <eric.carlson@apple.com>
Support "forced" subtitles
https://bugs.webkit.org/show_bug.cgi?id=114460
Reviewed by Jer Noble.
Test: media/track/track-forced-subtitles.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::configureTextTrackGroup): Enable a forced track if nothing else is enabled.
(WebCore::HTMLMediaElement::configureTextTracks): Include forced tracks with captions+subtitles.
* html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::InbandTextTrack): Deal with kind=forced.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::forcedKeyword): New keyword.
(WebCore::TextTrack::isValidKindKeyword): Include forced.
(WebCore::TextTrack::platformTextTrack): Ditto.
* html/track/TextTrack.h:
* page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::primaryAudioTrackLanguageOverride): New override to support testing.
* page/CaptionUserPreferences.h:
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::textTrackSelectionScore): Support forced tracks.
* platform/graphics/InbandTextTrackPrivate.h:
* platform/graphics/PlatformTextTrack.h: Add Forced, minor cleanup.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processCue): Drive-by enhancement: log cue position.
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
(WebCore::InbandTextTrackPrivateAVFObjC::kind): Support forced.
(WebCore::InbandTextTrackPrivateAVFObjC::label): Drive-by cleanup.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks): Don't filter out forced tracks.
(WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack): Log the language returned.
* testing/Internals.cpp:
(WebCore::Internals::setPrimaryAudioTrackLanguageOverride): New.
(WebCore::Internals::setCaptionDisplayMode): New.
* testing/Internals.h:
* testing/Internals.idl:
2013-04-12 Ryosuke Niwa <rniwa@webkit.org>
[Mac] Some ligatures are applied across different fronts
https://bugs.webkit.org/show_bug.cgi?id=113604
Reviewed by Darin Adler.
The bug was caused by applyFontTransforms applying ligatures without updating the font data in the glyph buffer.
Suppose we have characters AB and A uses font X and B uses font Y. Further suppose that we have ligatures for AB
in Y. The problem was that WithIterator::advanceInternal calls applyFontTransforms on AB to apply this ligature
even though A and B use different fonts. Since X doesn't contain the same ligature for A to be paired with that
of B in X, we get a blank A.
Fixed the bug by resetting lastGlyphCount after calling applyFontTransforms. This ensures that we don't call
applyFontTransforms across different fonts.
No new tests since this requires a variant of Osaka font that doesn't come with OS X.
The bug 114482 tracks the effort to add a test for this bug fix. I've already asked someone to create a custom
font for us so that we can test this bug fix but that's going to a while.
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advanceInternal):
2013-04-12 Ryosuke Niwa <rniwa@webkit.org>
[Mac] Enable spellchecking tests added in r141471
https://bugs.webkit.org/show_bug.cgi?id=108525
Reviewed by Darin Adler.
Made automatic quote substitution, dash substitution, text replacement, and spelling correction
togglable via internals object. These functions are no-op when text replacement is not used.
This allows us to disable automatic spelling correction in spellcheck tests.
Enabled several tests added in r141471.
* WebCore.exp.in:
* testing/Internals.cpp:
(WebCore::Internals::setContinuousSpellCheckingEnabled): Don't null check editor() since it's not
null whenever frame() is not null.
(WebCore::Internals::setAutomaticQuoteSubstitutionEnabled): Added.
(WebCore::Internals::setAutomaticLinkDetectionEnabled): Added.
(WebCore::Internals::setAutomaticDashSubstitutionEnabled): Added.
(WebCore::Internals::setAutomaticTextReplacementEnabled): Added.
(WebCore::Internals::setAutomaticSpellingCorrectionEnabled): Added.
* testing/Internals.h:
* testing/Internals.idl:
2013-04-12 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] Upstream the filesystem code
https://bugs.webkit.org/show_bug.cgi?id=114437
Reviewed by Rob Buis.
These are the changes for AsyncFileSystemBlackBerry.
This patch contains contributions from many members of the
BlackBerry WebKit team.
* platform/blackberry/AsyncFileSystemBlackBerry.cpp:
(WebCore::AsyncFileSystem::isAvailable):
(WebCore):
(WebCore::AsyncFileSystem::create):
(WebCore::AsyncFileSystem::openFileSystem):
(WebCore::AsyncFileSystemBlackBerry::openFileSystem):
(WebCore::AsyncFileSystem::deleteFileSystem):
(WebCore::AsyncFileSystemBlackBerry::AsyncFileSystemBlackBerry):
(WebCore::AsyncFileSystemBlackBerry::~AsyncFileSystemBlackBerry):
(WebCore::AsyncFileSystemBlackBerry::move):
(WebCore::AsyncFileSystemBlackBerry::copy):
(WebCore::AsyncFileSystemBlackBerry::remove):
(WebCore::AsyncFileSystemBlackBerry::removeRecursively):
(WebCore::AsyncFileSystemBlackBerry::readMetadata):
(WebCore::AsyncFileSystemBlackBerry::createFile):
(WebCore::AsyncFileSystemBlackBerry::createDirectory):
(WebCore::AsyncFileSystemBlackBerry::fileExists):
(WebCore::AsyncFileSystemBlackBerry::directoryExists):
(WebCore::AsyncFileSystemBlackBerry::readDirectory):
(WebCore::AsyncFileSystemBlackBerry::createWriter):
(WebCore::AsyncFileSystemBlackBerry::createSnapshotFileAndReadMetadata):
(WebCore::AsyncFileSystemBlackBerry::fileSystemURLToPath):
* platform/blackberry/AsyncFileSystemBlackBerry.h:
(WTF):
(WTF::BlackBerry::Platform::WebFileSystem):
(WebCore::AsyncFileSystemBlackBerry::create):
(AsyncFileSystemBlackBerry):
2013-04-12 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Apply our MSVC 2012 optimizer bug workaround to all minor releases
https://bugs.webkit.org/show_bug.cgi?id=114436
Reviewed by Alexey Proskuryakov.
The bug has only been partially fixed in Update 2 but our Update 1 workaround
still avoids the crash.
* platform/text/TextEncodingRegistry.cpp:
(WebCore::TextEncodingNameHash::equal):
2013-04-12 Mark Rowe <mrowe@apple.com>
And again, with the correct case this time.
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
2013-04-12 Mark Rowe <mrowe@apple.com>
Build fix.
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
Add missing #include and forward declaration.
2013-04-12 Zan Dobersek <zdobersek@igalia.com>
Unreviewed functionality fix for ports enabling the MicroData feature.
* html/DOMSettableTokenList.idl: Add the SkipVTableValidation IDL attribute to the DOMSettableTokenList interface.
This removes crashes in the MicroData layout tests that are occurring on EFL and GTK builders, the two ports being
the only ports that enable this feature.
2013-04-11 Alexey Proskuryakov <ap@apple.com>
Move CachedRawResourceClient into a separate file
https://bugs.webkit.org/show_bug.cgi?id=114491
Reviewed by Mark Rowe.
* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* loader/DocumentLoader.cpp:
* loader/DocumentLoader.h:
* loader/DocumentThreadableLoader.h:
* loader/archive/cf/LegacyWebArchive.cpp:
* loader/cache/CachedRawResource.cpp:
* loader/cache/CachedRawResource.h:
* loader/cache/CachedRawResourceClient.h: Added.
* loader/icon/IconLoader.h:
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
2013-04-12 Commit Queue <rniwa@webkit.org>
Unreviewed, rolling out r148262.
http://trac.webkit.org/changeset/148262
https://bugs.webkit.org/show_bug.cgi?id=114493
Cairo dep should now build, rolling r148247 back in (Requested
by zdobersek on #webkit).
* platform/graphics/GraphicsContext.cpp:
(WebCore):
* platform/graphics/ImageBuffer.cpp:
(WebCore):
* platform/graphics/cairo/GLContext.h:
(GLContext):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::isAcceleratedContext):
(WebCore):
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBufferData::ImageBufferData):
(WebCore):
(WebCore::createCairoGLSurface):
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::platformTransformColorSpace):
(WebCore::mapSurfaceToImage):
(WebCore::unmapSurfaceFromImage):
(WebCore::getImageData):
(WebCore::ImageBuffer::putByteArray):
(WebCore::ImageBufferData::paintToTextureMapper):
(WebCore::ImageBuffer::platformLayer):
* platform/graphics/cairo/ImageBufferDataCairo.h:
(ImageBufferData):
* platform/graphics/egl/GLContextEGL.cpp:
(WebCore::GLContextEGL::GLContextEGL):
(WebCore::GLContextEGL::~GLContextEGL):
(WebCore::GLContextEGL::cairoDevice):
(WebCore):
* platform/graphics/egl/GLContextEGL.h:
* platform/graphics/glx/GLContextGLX.cpp:
(WebCore::GLContextGLX::GLContextGLX):
(WebCore::GLContextGLX::~GLContextGLX):
(WebCore::GLContextGLX::cairoDevice):
(WebCore):
* platform/graphics/glx/GLContextGLX.h:
(GLContextGLX):
2013-04-11 Alexey Proskuryakov <ap@apple.com>
Reduce includes of CachedSVGDocument.h
https://bugs.webkit.org/show_bug.cgi?id=114489
Reviewed by Jon Honeycutt.
* loader/cache/CachedSVGDocumentReference.cpp: Added.
* loader/cache/CachedSVGDocumentReference.h:
Moved function implementations to newly added .cpp file, and removed an include
of CachedSVGDocument.h.
* css/WebKitCSSSVGDocumentValue.h: Just removed an unnecessary include.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
2013-04-11 Commit Queue <rniwa@webkit.org>
Unreviewed, rolling out r148247.
http://trac.webkit.org/changeset/148247
https://bugs.webkit.org/show_bug.cgi?id=114490
Cairo dep fails to build on builders due to missing EGL
headers (Requested by zdobersek on #webkit).
* platform/graphics/GraphicsContext.cpp:
(WebCore):
* platform/graphics/ImageBuffer.cpp:
(WebCore):
* platform/graphics/cairo/GLContext.h:
(GLContext):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBufferData::ImageBufferData):
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::platformTransformColorSpace):
(WebCore::getImageData):
(WebCore::ImageBuffer::putByteArray):
(WebCore):
* platform/graphics/cairo/ImageBufferDataCairo.h:
(ImageBufferData):
* platform/graphics/egl/GLContextEGL.cpp:
(WebCore::GLContextEGL::GLContextEGL):
(WebCore::GLContextEGL::~GLContextEGL):
* platform/graphics/egl/GLContextEGL.h:
* platform/graphics/glx/GLContextGLX.cpp:
(WebCore::GLContextGLX::GLContextGLX):
(WebCore::GLContextGLX::~GLContextGLX):
* platform/graphics/glx/GLContextGLX.h:
(GLContextGLX):
2013-04-11 Nico Weber <thakis@chromium.org>
Remove debugging code that is no longer used with current mac sdks.
https://bugs.webkit.org/show_bug.cgi?id=114486
Reviewed by Dan Bernstein.
This code compared __MAC_OS_X_VERSION_MAX_ALLOWED and friends to
107 and 106 instead of the correct 1070 and 1060. Instead of fixing
this, rip the code out completely: Since WebKit now only targets
current systems, the ifdef is always false anyways.
No tests, as this only removes debugging code.
* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore::SimpleFontData::platformInit):
2013-04-11 Oliver Hunt <oliver@apple.com>
Fix windows build and land new binding test results
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore):
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore):
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore):
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore):
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore):
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore):
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore):
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore):
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore):
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore):
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore):
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore):
(WebCore::toJS):
2013-04-11 Shezan Baig <sbaig1@bloomberg.net>
Selection gaps don't repaint correctly with transforms
https://bugs.webkit.org/show_bug.cgi?id=111000
Reviewed by Simon Fraser.
When computing offsetFromRepaintContainer, we need to add UseTransforms
to the MapCoordinateFlags argument. Note that ApplyContainerFlip is
the default value for the flag, so this change effectively only adds
the UseTransforms flag.
Tests: fast/repaint/selection-gap-absolute-child.html
fast/repaint/selection-gap-fixed-child.html
fast/repaint/selection-gap-flipped-absolute-child.html
fast/repaint/selection-gap-flipped-fixed-child.html
fast/repaint/selection-gap-transformed-absolute-child.html
fast/repaint/selection-gap-transformed-fixed-child.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::selectionGapRectsForRepaint):
2013-04-11 Oliver Hunt <oliver@apple.com>
Add more type validation to debug builds
https://bugs.webkit.org/show_bug.cgi?id=114478
Reviewed by Mark Hahnenberg.
Add a bunch more type checks to the JS DOM bindings.
* Modules/mediastream/MediaStream.idl:
* Modules/webaudio/AudioDestinationNode.idl:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMBinding.h:
(WebCore::getExistingWrapper):
(WebCore):
(WebCore::createNewWrapper):
* bindings/scripts/CodeGeneratorJS.pm:
(GetNativeTypeForConversions):
(GetGnuVTableRefForInterface):
(GetGnuVTableNameForInterface):
(GetGnuMangledNameForInterface):
(GetGnuVTableOffsetForType):
(GetWinVTableRefForInterface):
(GetWinVTableNameForInterface):
(GetWinMangledNameForInterface):
(GetNamespaceForInterface):
(GetImplementationLacksVTableForInterface):
(GetSkipVTableValidationForInterface):
(GenerateImplementation):
* bindings/scripts/IDLAttributes.txt:
* css/CSSRuleList.idl:
* css/CSSStyleDeclaration.idl:
* dom/Clipboard.idl:
* dom/DOMStringMap.idl:
* dom/MutationRecord.idl:
* dom/NodeList.idl:
* html/DOMTokenList.idl:
* html/track/TextTrack.idl:
* inspector/ScriptProfileNode.idl:
* storage/Storage.idl:
* xml/XPathNSResolver.idl:
2013-04-11 Ryosuke Niwa <rniwa@webkit.org>
Remove ResourceLoadInfo
https://bugs.webkit.org/show_bug.cgi?id=113302
Reviewed by Benjamin Poulain.
Co-authored by Christophe Dumez.
Removed ResourceLoadInfo since it had been only used by Chromium port.
* GNUmakefile.list.am:
* Target.pri:
* WebCore.order:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorResourceAgent.cpp:
(WebCore::buildObjectForResourceResponse):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadResourceSynchronously):
* platform/network/ResourceLoadInfo.h: Removed.
* platform/network/ResourceResponseBase.cpp:
(WebCore):
(WebCore::ResourceResponseBase::reportMemoryUsage):
* platform/network/ResourceResponseBase.h:
(ResourceResponseBase):
2013-04-11 Ryosuke Niwa <rniwa@webkit.org>
Another Mac Lion build fix attempt after r148197.
* page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
2013-04-11 Sukolsak Sakshuwong <sukolsak@gmail.com>
Unable to paste twice in input field when specific CSS present
https://bugs.webkit.org/show_bug.cgi?id=108675
Reviewed by Ryosuke Niwa.
When we are pre-rendering text in ReplaceSelectionCommand, we shouldn't care
whether the content is clipped by its ancestors or not. This bug was caused
by the fact the plainText() method returned an empty string because the text
was fully clipped by its ancestors. Make plainText ignore style visibility.
Test: editing/inserting/insert-text-into-text-field.html
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::ReplacementFragment):
2013-04-11 Martin Robinson <mrobinson@igalia.com>
[GTK] Add accelerated 2D canvas support using cairo-gl
https://bugs.webkit.org/show_bug.cgi?id=104672
Reviewed by Alejandro G. Castro.
No new tests. We do not yet have the ability to run tests against
accelerated content.
* platform/graphics/GraphicsContext.cpp:
(WebCore): We don't use the stub implementation of isAcceleratedContext any longer.
* platform/graphics/ImageBuffer.cpp:
(WebCore): Ditto for ImageBuffer::platformLayer.
* platform/graphics/cairo/GLContext.h:
(GLContext): Added method to get a cairo_device_t from the context.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::isAcceleratedContext): Return true when we are a CairoGL surface.
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBufferData::ImageBufferData): Initialize the size and the texture to 0.
(WebCore::createCairoGLSurface): Added this helper.
(WebCore::ImageBuffer::ImageBuffer): When we are in accelerated rendering mode, create
a CairoGL surface.
(WebCore::ImageBuffer::platformTransformColorSpace): Do not implement this for accelerated
contexts yet.
(WebCore::mapSurfaceToImage): Added this helper, since we don't require Cairo 1.12 yet,
which provides an builtin implementation.
(WebCore::unmapSurfaceFromImage): Ditto.
(WebCore::getImageData): Map the surface to an image surface first.
(WebCore::ImageBuffer::putByteArray): Ditto.
(WebCore::ImageBufferData::paintToTextureMapper): Connect the accelerated canvas into the
TextureMapper infrastructure.
(WebCore::ImageBuffer::platformLayer): This lets the TextureMapper at the ImageBufferData.
* platform/graphics/cairo/ImageBufferDataCairo.h:
(ImageBufferData): Subclass TexturMapperPlatformLayer where appropriate.
* platform/graphics/egl/GLContextEGL.cpp: Added implementation of cairoDevice.
* platform/graphics/egl/GLContextEGL.h: Ditto.
* platform/graphics/glx/GLContextGLX.cpp: Ditto
* platform/graphics/glx/GLContextGLX.h: Ditto.
2013-04-11 Anders Carlsson <andersca@apple.com>
Implement removing storage area items
https://bugs.webkit.org/show_bug.cgi?id=114472
Reviewed by Beth Dakin.
Export StorageMap::removeItem.
* WebCore.exp.in:
2013-04-11 Brendan Long <b.long@cablelabs.com>
TextTrackList's .onremovetrack is missing from IDL
https://bugs.webkit.org/show_bug.cgi?id=103421
Reviewed by Eric Carlson.
Fixed test media/track/opera/interfaces/TextTrackList/onremovetrack.html
* html/track/TextTrackList.cpp:
(TextTrackList::remove):
(TextTrackList::scheduleRemoveTrackEvent):
* html/track/TextTrackList.h:
(TextTrackList):
* html/track/TextTrackList.idl:
2013-04-11 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] Upstream the filesystem code
https://bugs.webkit.org/show_bug.cgi?id=114437
Reviewed by Rob Buis.
This patch contains contributions from many members of the
BlackBerry WebKit team.
* platform/blackberry/AsyncFileWriterBlackBerry.cpp: Added.
(WebCore):
(WebCore::AsyncFileWriterBlackBerry::write):
* platform/blackberry/AsyncFileWriterBlackBerry.h: Added.
(WTF):
(WTF::BlackBerry::Platform::WebFileWriter):
(WebCore):
* platform/blackberry/DOMFileSystemBlackBerry.cpp: Added.
(WebCore):
(WebCore::DOMFileSystemBase::createFileSystemURL):
(WebCore::DOMFileSystemBase::crackFileSystemURL):
(WebCore::DOMFileSystemBase::supportsToURL):
(WebCore::DOMFileSystemBase::isValidType):
* platform/blackberry/LocalFileSystemBlackBerry.cpp: Added.
(WebCore):
(WebCore::fileSystemTypeString):
(WebCore::openFileSystem):
(WebCore::LocalFileSystem::deleteFileSystem):
(WebCore::LocalFileSystem::readFileSystem):
(WebCore::LocalFileSystem::requestFileSystem):
* platform/blackberry/PlatformAsyncFileSystemCallbacks.cpp: Added.
(WebCore):
(WebCore::PlatformAsyncFileSystemCallbacks::notifyOpenFileSystem):
(WebCore::PlatformAsyncFileSystemCallbacks::notifySucceed):
(WebCore::PlatformAsyncFileSystemCallbacks::notifyFail):
(WebCore::getFileMetadata):
(WebCore::PlatformAsyncFileSystemCallbacks::notifyReadMetadata):
(WebCore::PlatformAsyncFileSystemCallbacks::notifyCreateSnapshotFileAndReadMetadata):
(WebCore::PlatformAsyncFileSystemCallbacks::notifyReadDirectory):
(WebCore::PlatformAsyncFileSystemCallbacks::notifyCreateFileWriter):
(WebCore::PlatformAsyncFileSystemCallbacks::createAsyncFileSystem):
(WebCore::PlatformAsyncFileSystemCallbacks::createAsyncFileWriter):
(WebCore::PlatformAsyncFileSystemCallbacks::deleteMe):
* platform/blackberry/PlatformAsyncFileSystemCallbacks.h: Added.
(WebCore):
* platform/blackberry/PlatformBlob.cpp: Added.
(WebCore):
(WebCore::PlatformBlob::nextDataItem):
* platform/blackberry/PlatformBlob.h: Added.
(WebCore):
* platform/blackberry/PlatformFileWriterClient.cpp: Added.
(WebCore):
(WebCore::PlatformFileWriterClient::notifyWrite):
(WebCore::PlatformFileWriterClient::notifyTruncate):
(WebCore::PlatformFileWriterClient::notifyFail):
* platform/blackberry/PlatformFileWriterClient.h: Added.
(WebCore):
(WTF):
(WTF::WebCore::PlatformFileWriterClient):
* platform/blackberry/WorkerAsyncFileSystemBlackBerry.cpp: Added.
(WebCore):
(WebCore::WorkerAsyncFileSystemBlackBerry::WorkerAsyncFileSystemBlackBerry):
(WebCore::WorkerAsyncFileSystemBlackBerry::~WorkerAsyncFileSystemBlackBerry):
(WebCore::WorkerAsyncFileSystemBlackBerry::waitForOperationToComplete):
(WebCore::WorkerAsyncFileSystemBlackBerry::openFileSystemOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::deleteFileSystemOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::moveOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::copyOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::removeOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::removeRecursivelyOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::readMetadataOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::createFileOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::createDirectoryOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::fileExistsOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::directoryExistsOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::readDirectoryOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::createWriterOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::createSnapshotFileAndReadMetadataOnMainThread):
(WebCore::WorkerAsyncFileSystemBlackBerry::openFileSystem):
(WebCore::WorkerAsyncFileSystemBlackBerry::deleteFileSystem):
(WebCore::WorkerAsyncFileSystemBlackBerry::move):
(WebCore::WorkerAsyncFileSystemBlackBerry::copy):
(WebCore::WorkerAsyncFileSystemBlackBerry::remove):
(WebCore::WorkerAsyncFileSystemBlackBerry::removeRecursively):
(WebCore::WorkerAsyncFileSystemBlackBerry::readMetadata):
(WebCore::WorkerAsyncFileSystemBlackBerry::createFile):
(WebCore::WorkerAsyncFileSystemBlackBerry::createDirectory):
(WebCore::WorkerAsyncFileSystemBlackBerry::fileExists):
(WebCore::WorkerAsyncFileSystemBlackBerry::directoryExists):
(WebCore::WorkerAsyncFileSystemBlackBerry::readDirectory):
(WebCore::WorkerAsyncFileSystemBlackBerry::createWriter):
(WebCore::WorkerAsyncFileSystemBlackBerry::createSnapshotFileAndReadMetadata):
* platform/blackberry/WorkerAsyncFileSystemBlackBerry.h: Added.
(WebCore):
(WorkerAsyncFileSystemBlackBerry):
(WebCore::WorkerAsyncFileSystemBlackBerry::create):
* platform/blackberry/WorkerAsyncFileWriterBlackBerry.cpp: Added.
(WebCore):
(WebCore::WorkerAsyncFileWriterBlackBerry::writeOnMainThread):
(WebCore::WorkerAsyncFileWriterBlackBerry::truncateOnMainThread):
(WebCore::WorkerAsyncFileWriterBlackBerry::abortOnMainThread):
(WebCore::WorkerAsyncFileWriterBlackBerry::write):
(WebCore::WorkerAsyncFileWriterBlackBerry::truncate):
(WebCore::WorkerAsyncFileWriterBlackBerry::abort):
(WebCore::WorkerAsyncFileWriterBlackBerry::waitForOperationToComplete):
(WebCore::WorkerAsyncFileWriterBlackBerry::platformWriterClient):
* platform/blackberry/WorkerAsyncFileWriterBlackBerry.h: Added.
(WebCore):
* platform/blackberry/WorkerPlatformAsyncFileSystemCallbacks.cpp: Added.
(WebCore):
(WebCore::performTaskOnMainThread):
(WebCore::postTaskToMainThread):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyStop):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyOpenFileSystem):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifySucceed):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyFail):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyReadMetadata):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyReadDirectory):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyCreateFileWriter):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::createAsyncFileSystem):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::createAsyncFileWriter):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::deleteMe):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::postTaskToWorkerThread):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyOpenFileSystemOnWorkerThread):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifySucceedOnWorkerThread):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyFailOnWorkerThread):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyReadMetadataOnWorkerThread):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyReadDirectoryEntryOnWorkerThread):
(WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyCreateFileWriterOnWorkerThread):
* platform/blackberry/WorkerPlatformAsyncFileSystemCallbacks.h: Added.
(WebCore):
* platform/blackberry/WorkerPlatformFileWriterClient.cpp: Added.
(WebCore):
(WebCore::WorkerPlatformFileWriterClient::notifyWriteOnWorkerThread):
(WebCore::WorkerPlatformFileWriterClient::notifyFailOnWorkerThread):
(WebCore::WorkerPlatformFileWriterClient::notifyTruncateOnWorkerThread):
(WebCore::WorkerPlatformFileWriterClient::notifyWrite):
(WebCore::WorkerPlatformFileWriterClient::notifyTruncate):
(WebCore::WorkerPlatformFileWriterClient::notifyFail):
(WebCore::WorkerPlatformFileWriterClient::postTaskToWorkerThreadIfNeeded):
* platform/blackberry/WorkerPlatformFileWriterClient.h: Added.
(WebCore):
(WTF):
(WTF::WebCore::WorkerPlatformFileWriterClient):
2013-04-11 Ryosuke Niwa <rniwa@webkit.org>
Mac Lion build fix attempt after r148197.
* page/scrolling/mac/ScrollingStateNodeMac.mm:
2013-04-11 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/10416316> [Mac] WebSocket doesn't work with authenticating proxies
https://bugs.webkit.org/show_bug.cgi?id=114464
Reviewed by Brady Eidson.
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
Updated for new wkCopyCONNECTProxyResponse signature.
* platform/network/cf/SocketStreamHandleCFNet.cpp:
(WebCore::SocketStreamHandle::executePACFileURL): Fixed a typo in a comment.
(WebCore::SocketStreamHandle::addCONNECTCredentials): Don't crash even if the rest
of the fix didn't work (which would be the case on some OS versions).
(WebCore::SocketStreamHandle::readStreamCallback): Replaced most breaks with returns,
because breaks were confusing in such a huge switch. Changed null proxyResponse
to not be treated as authentication success, because it's not. Merged two parts
of WaitingForConnect state handling for clarity.
(WebCore::SocketStreamHandle::writeStreamCallback): Don't blindly assume that we
can start WebSocket handshake after kCFStreamEventCanAcceptBytes. Perhaps it's
nothing but a failed CONNECT, and a read callback still needs to send authentication.
Without this, establishing connections was flaky. Added a check for Closed state,
matching read callback.
2013-04-11 Sukolsak Sakshuwong <sukolsak@gmail.com>
MutationRecord is not exposed
https://bugs.webkit.org/show_bug.cgi?id=114288
Reviewed by Darin Adler.
Expose MutationRecord on DOMWindow. This patch is copied from a patch
by Adam Klein. https://codereview.chromium.org/13861028
Test: fast/dom/MutationObserver/mutation-record-constructor.html
* page/DOMWindow.idl:
2013-04-11 Beth Dakin <bdakin@apple.com>
Cannot scroll to footer on a page with overflow:hidden on the body
https://bugs.webkit.org/show_bug.cgi?id=114462
-and corresponding-
<rdar://problem/13530042>
Reviewed by Simon Fraser.
Add a new scenario in which we want to overrideHidden -- whenever we are the
mainFrame and there is a header or footer.
* page/FrameView.cpp:
(WebCore::FrameView::applyOverflowToViewport):
2013-04-11 Commit Queue <rniwa@webkit.org>
Unreviewed, rolling out r148034, r148052, r148097, and
r148194.
http://trac.webkit.org/changeset/148034
http://trac.webkit.org/changeset/148052
http://trac.webkit.org/changeset/148097
http://trac.webkit.org/changeset/148194
https://bugs.webkit.org/show_bug.cgi?id=114463
broke mutiresolution favicons, among other things (Requested
by thorton on #webkit).
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::setIconDataForIconURL):
* loader/icon/IconDatabase.h:
(IconDatabase):
* loader/icon/IconDatabaseBase.h:
* loader/icon/IconRecord.cpp:
* loader/icon/IconRecord.h:
(IconRecord):
2013-04-11 ChangSeok Oh <changseok.oh@collabora.com>
[GTK][AC] Implement GraphicsLayerClutter::moveOrCopyAnimations
https://bugs.webkit.org/show_bug.cgi?id=114019
Reviewed by Gustavo Noronha Silva.
Fill moveOrCopyAnimations that is based on Mac port implementation.
Tests: animations/3d/change-transform-in-end-event.html
animations/3d/transform-origin-vs-functions.html
compositing/animation/state-at-end-event-transform-layer.html
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::GraphicsLayerClutter::moveOrCopyLayerAnimation):
(WebCore):
(WebCore::GraphicsLayerClutter::moveOrCopyAnimations):
* platform/graphics/clutter/GraphicsLayerClutter.h:
2013-04-11 Anders Carlsson <andersca@apple.com>
Implement StorageManager::getValues
https://bugs.webkit.org/show_bug.cgi?id=114461
Reviewed by Beth Dakin.
Expose the item hash map.
* storage/StorageMap.h:
(WebCore::StorageMap::items):
2013-04-11 Eli Fidler <efidler@blackberry.com>
[BlackBerry] Use the platform list of languages with fonts instead of hardcoding
https://bugs.webkit.org/show_bug.cgi?id=114452
Reviewed by Rob Buis.
BlackBerry PR 325244
Internally reviewed by Jeff Rogers
No functional change, but platform font changes won't need a WebKit change
going forward.
* page/blackberry/SettingsBlackBerry.cpp:
(WebCore::Settings::initializeDefaultFontFamilies):
2013-04-11 Dirk Schulze <krit@webkit.org>
[CSS Shaders] Parse parameters descriptor
https://bugs.webkit.org/show_bug.cgi?id=114455
Reviewed by Dean Jackson.
Add support for the 'parameters' descriptor in the filter at-rule to support
parameterization of CSS Shaders.
https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#custom-filter-parameters
Tests: css3/filters/custom-with-at-rule-syntax/parsing-parameters-property-invalid.html
css3/filters/custom-with-at-rule-syntax/parsing-parameters-property-valid.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp: Added 'parameters' property and fail parsing if not inside
of an @filter rule.
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFilterRuleParameters): New helper function to verify
values.
(WebCore):
* css/CSSParser.h:
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in: Added new property name 'parameters'.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
2013-04-11 Arunprasad Rajkumar <arunprasadr@nds.com>
Default Implementation of toString for NPObject shouldn't return NPClass & NPObject address as String
https://bugs.webkit.org/show_bug.cgi?id=114450
Reviewed by Anders Carlsson.
* bridge/c/c_instance.cpp:
(JSC::Bindings::CInstance::stringValue):
2013-04-11 Robert Hogan <robert@webkit.org>
REGRESSION (142152): ensure we skip past out-of-flow objects when detecting whitespace to ignore after leading empty inlines
https://bugs.webkit.org/show_bug.cgi?id=114311
Reviewed by Emil A Eklund.
When we hit an empty inline in line layout and try to detect whether it has any whitespace after it that we ought to ignore, then
we need to skip past out-of-flow and floating objects when looking for that whitespace. Failure to do so will result in us
adding the width from the first space we encounter to our line width and over-estimating the real width of the line.
We're hitting this bug now because we have broadened the category of empty inlines that get lineboxes so we go into line layout
and have to deal with them and their subsequent whitespace there. Previously this sort of whitespace would have been simply
consumed by |skipLeadingWhitespace|.
Test: fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::shouldSkipWhitespaceAfterStartObject):
2013-04-11 Ryosuke Niwa <rniwa@webkit.org>
Autocorrected text doesn't have a marker of type autocorrected
https://bugs.webkit.org/show_bug.cgi?id=114337
Reviewed by Darin Adler.
The bug was caused by markAndReplaceFor's text replacement errornously assuming that there are
no other text checking result starting at the same offset. That resulted in us adjusting location
offsets of the subsequent results pointing at the replaced text, hit an assertion, and blow up.
Fixed the bug by skipping all remaining results for the replaced text since they're no longer
applicable.
Tests: Existing autocorection tests have been updated to assert new behavior.
* editing/Editor.cpp:
(WebCore::Editor::markAndReplaceFor):
2013-04-11 Michelangelo De Simone <michelangelo@webkit.org>
[CSS Shaders] Parse the geometry descriptor
https://bugs.webkit.org/show_bug.cgi?id=110815
Added initial parsing for the "geometry" descriptor, as per specification:
https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#geometry
This descriptor allows to specify the mesh geometry for custom filters.
Reviewed by Dirk Schulze.
Tests: css3/filters/custom-with-at-rule-syntax/parsing-geometry-property-invalid.html
css3/filters/custom-with-at-rule-syntax/parsing-geometry-property-valid.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseGeometry): New method that parses the geometry
descriptor (grid()).
(WebCore):
* css/CSSParser.h:
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in: Added conditional "geometry" property.
* css/CSSValueKeywords.in: Added conditional "attached" value keyword; detached
was already there.
2013-04-11 Anders Carlsson <andersca@apple.com>
Make StorageAreaMap dispatch session storage events
https://bugs.webkit.org/show_bug.cgi?id=114454
Reviewed by Beth Dakin.
Export storage symbols and headers needed by WebKit2.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
2013-04-11 Allan Sandfeld Jensen <allan.jensen@digia.com>
handleMouseMoveEvent should let hit-testing hit-test scrollbars
https://bugs.webkit.org/show_bug.cgi?id=114430
Reviewed by Antonio Gomes.
Allow hit-testing to hit-test frame scrollbars so handleMouseMoveEvent
does not have to do it itself.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent):
2013-04-11 Brian Holt <brian.holt@samsung.com>
[Gtk] Combo boxes should be arrow-out-of-able similar to list boxes when caret-browsing is enabled.
https://bugs.webkit.org/show_bug.cgi?id=76796
Reviewed by Chris Fleizach.
When using caret-browsing with the right and left arrows, the
behaviour of menuLists should be the same as listBoxes. This means
not default-handling the event and passing it up the stack instead.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
2013-04-11 Alexey Proskuryakov <ap@apple.com>
Remove some ResourceHandle.h includes
https://bugs.webkit.org/show_bug.cgi?id=114416
Reviewed by Ryosuke Niwa.
* loader/CrossOriginAccessControl.h:
* loader/CrossOriginPreflightResultCache.h:
These files don't need ResourceHandle.h, just ResourceHandleTypes.h.
* loader/TextTrackLoader.cpp:
* loader/ThreadableLoader.h:
* loader/appcache/ApplicationCacheGroup.h:
* loader/cache/MemoryCache.h:
* loader/mac/ResourceLoaderMac.mm:
* page/Settings.cpp:
* platform/network/AuthenticationChallengeBase.cpp:
* platform/network/cf/CookieJarCFNet.cpp:
* platform/network/cf/ResourceRequestCFNet.cpp:
* xml/XSLTProcessorLibxslt.cpp:
* xml/parser/XMLDocumentParser.cpp:
* xml/parser/XMLDocumentParserLibxml2.cpp:
Just straightforward removal of includes.
2013-04-04 Allan Sandfeld Jensen <allan.jensen@digia.com>
Use CSS4 image-rendering to determing image scaling quality
https://bugs.webkit.org/show_bug.cgi?id=113405
Reviewed by Simon Fraser.
Implement the new CSS4 image-rendering property values.
Image scaling now uses low-quality (pixelated) scaling for
crisp-edges, pixelated and optimizeSpeed values, and always
use high quality (smooth) scaling for -webkit-smooth and
optimizeQuality. The latter can be used to disable low quality
scaling during CSS animations or live resizing.
The new values are protected with a new CSS4_IMAGES feature, but
the crisp-edge value has been introduced before to displace the
deprecated -webkit-optimize-contrast value, and optimizeSpeed
and optimizeQuality values are supported for SVG compatibility.
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EImageRendering):
* css/CSSValueKeywords.in:
* rendering/RenderBoxModelObject.cpp:
(WebCore::ImageQualityController::shouldPaintAtLowQuality):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::paintReplaced):
* rendering/style/RenderStyleConstants.h:
2013-04-11 Adenilson Cavalcanti <cavalcantii@gmail.com>
Build fix: use of uninitialized variable in ScrollingStateTree
https://bugs.webkit.org/show_bug.cgi?id=114443
Reviewed by Anders Carlsson.
Initialize pointer to zero before use, fixes build.
No new tests, no changes on behavior.
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::attachNode):
2013-04-11 Dirk Schulze <krit@webkit.org>
[CSS Shaders] Parse mix descriptor
https://bugs.webkit.org/show_bug.cgi?id=114414
Reviewed by Antti Koivisto.
Add support for the 'mix' descriptor in the filter at-rule to support blend modes
and composite operators in CSS Shaders.
Each pixel in the fragment shader will be blended and composited with the
backdrop by taking these values into account.
https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#custom-filter-mix
Tests: css3/filters/custom-with-at-rule-syntax/parsing-mix-property-invalid.html
css3/filters/custom-with-at-rule-syntax/parsing-mix-property-valid.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp: Added 'mix' property and fail parsing if not inside
of an @filter rule.
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFilterRuleMix): New helper function to verify
values.
(WebCore):
* css/CSSParser.h:
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in: Added new property name 'mix'.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
2013-04-11 Zalan Bujtas <zalan@apple.com>
Parent box with background-size auto and gradient image does not get properly repainted when child box is resized.
https://bugs.webkit.org/show_bug.cgi?id=114424
Reviewed by Antti Koivisto.
Initiate full repaint on fill layer, when the image is generated and the background
property defines auto size.
http://www.w3.org/TR/css3-background/#background-size
'If the image has neither an intrinsic width nor an intrinsic height, its size is determined as for 'contain'.'
Extended fast/repaint/background-shorthand-with-gradient-and-height-changes.html
to cover this case too.
* rendering/RenderObject.cpp:
(WebCore::mustRepaintFillLayers):
2013-04-11 ChangSeok Oh <changseok.oh@collabora.com>
[GTK][AC] use a smart pointer for GList and ClutterCanvas
https://bugs.webkit.org/show_bug.cgi?id=114057
Reviewed by Gustavo Noronha Silva.
We can make simple code & prevent possible memory leak by using a proper smart pointer.
Especially if we get children by clutter_actor_get_children, we should free it after using.
No functionality changed.
* platform/graphics/clutter/GraphicsLayerActor.cpp:
(graphicsLayerActorUpdateTexture):
(graphicsLayerActorRemoveAll):
2013-04-11 Arvid Nilsson <anilsson@rim.com>
[BlackBerry][CSS Filters] Blur filter fails to recompute blur size when layer size changes
https://bugs.webkit.org/show_bug.cgi?id=114272
Reviewed by Rob Buis.
Blur appeared blocky or pixelated when surface changed size after
creating the filter actions. The initial image size was used to
determine the blur size (expressed in texture coordinate system).
Fixed by recomputing the blur size when the surface size changes, using
a new Uniform1f subclass that can use a functor to compute the uniform
value per-frame.
This fixes css3/filters/effect-blur-hw.html. This can only be verified
by manual inspection because the BlackBerry port is not currently using
pixel tests.
PR 323730
* platform/graphics/blackberry/LayerFilterRenderer.cpp:
(WebCore):
(SurfaceFunctor):
(WebCore::SurfaceFunctor::SurfaceFunctor):
(InverseSurfaceWidth):
(WebCore::InverseSurfaceWidth::InverseSurfaceWidth):
(WebCore::InverseSurfaceWidth::operator()):
(InverseSurfaceHeight):
(WebCore::InverseSurfaceHeight::InverseSurfaceHeight):
(WebCore::LayerFilterRenderer::actionsForOperations):
* platform/graphics/blackberry/LayerFilterRenderer.h:
(Uniform1f):
(WebCore):
(Uniform1fWithFunctor):
(WebCore::Uniform1fWithFunctor::create):
(WebCore::Uniform1fWithFunctor::Uniform1fWithFunctor):
(WebCore::Uniform1fWithFunctor::apply):
(WebCore::Uniform1f::createWithFunctor):
2013-04-11 Arvid Nilsson <anilsson@rim.com>
[BlackBerry] Accelerated compositing debug rectangle incorrectly drawn for layers with surfaces
https://bugs.webkit.org/show_bug.cgi?id=114275
Reviewed by Carlos Garcia Campos.
The drawDebugBorder method was updated to mirror the logic in
compositeLayersRecursive, i.e. if we're compositing a surface to the
screen, use the transformed bounds stored in the surface. The bounds
stored in the layer should only be used when drawing the layer to the
surface.
Speaking of which, also update the code to skip border drawing when
drawing a layer to a surface. Drawing the borders inside the surface
would only result in messing up the surface contents, especially when
CSS filters like blur were the reason for having a surface in the first
place - the border would be blurred and hard to discern.
Only manually testable, the debug border is disabled during layout
tests.
PR 323746
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::drawDebugBorder):
* platform/graphics/blackberry/LayerRendererSurface.cpp:
(WebCore::LayerRendererSurface::drawRect):
(WebCore::LayerRendererSurface::transformedBounds): Added.
(WebCore):
* platform/graphics/blackberry/LayerRendererSurface.h:
(LayerRendererSurface):
2013-04-11 Arvid Nilsson <anilsson@rim.com>
[BlackBerry] Compiler warning in LayerWebKitThread.cpp
https://bugs.webkit.org/show_bug.cgi?id=114277
Reviewed by Carlos Garcia Campos.
All the relevant WTF::Vector APIs use size_t, storing the position in
an int resulted in a compiler warning. Fixed by switching to size_t.
No change in behavior, no new tests.
PR 323753
* platform/graphics/blackberry/LayerWebKitThread.cpp:
(WebCore::LayerWebKitThread::remove):
(WebCore::LayerWebKitThread::replaceSublayer):
2013-04-11 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[CoordinatedGraphics] Use ScrollingStateTree to handle fixed elements positioning while scrolling
https://bugs.webkit.org/show_bug.cgi?id=114353
Reviewed by Noam Rosenthal.
ScrollingCoordinatorCoordinatedGraphics should implement threaded scrolling interface and
re-use threaded scrolling approach (ScrollingStateTree and ViewportConstraints) to handle
fixed/sticky elements positioning while scrolling. The rationals are below.
Before the change ScrollingCoordinatorCoordinatedGraphics was implementing Chromium-specific
interface which is going to be removed eventually as there is no ScrollingCoordinatorChromium
existing.
Tested by existing manual tests (fixed-position.html for example.
* CMakeLists.txt:
* Target.pri:
Included ScrollingStateTree files.
* page/scrolling/ScrollingStateFixedNode.cpp:
* page/scrolling/ScrollingStateFixedNode.h:
* page/scrolling/ScrollingStateNode.cpp:
* page/scrolling/ScrollingStateNode.h:
* page/scrolling/ScrollingStateScrollingNode.cpp:
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ScrollingStateStickyNode.cpp:
* page/scrolling/ScrollingStateStickyNode.h:
* page/scrolling/ScrollingStateTree.cpp:
* page/scrolling/ScrollingStateTree.h:
Removed ENABLE(THREADED_SCROLLING) code guards.
* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
(WebCore::ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::~ScrollingCoordinatorCoordinatedGraphics):
(WebCore):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::attachToStateTree):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::detachFromStateTree):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::clearStateTree):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::updateViewportConstrainedNode):
* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
ScrollingCoordinatorCoordinatedGraphics is using threaded scrolling approach to handle fixed
elements positioning while scrolling.
(WebCore):
(ScrollingCoordinatorCoordinatedGraphics):
* page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp: Added.
(WebCore):
(WebCore::ScrollingStateNode::platformScrollLayer):
(WebCore::ScrollingStateNode::setScrollPlatformLayer):
(WebCore::ScrollingStateNode::setScrollLayer):
* page/scrolling/coordinatedgraphics/ScrollingStateScrollingNodeCoordinatedGraphics.cpp: Added.
(WebCore):
(WebCore::ScrollingStateScrollingNode::counterScrollingPlatformLayer):
(WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
2013-04-11 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] EventHandler should handle Space and BackSpace
https://bugs.webkit.org/show_bug.cgi?id=114428
Reviewed by Jocelyn Turcotte.
Enable default space-handling for Qt.
* page/EventHandler.cpp:
2013-04-11 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
IconDatabase: Simplify boolean logic in assertion.
https://bugs.webkit.org/show_bug.cgi?id=114425
Reviewed by Andreas Kling.
Follow-up to r148097; drop the overzealous use of !! to turn a
PassRefPtr into a boolean.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::updateIconRecord):
2013-04-11 Arvid Nilsson <anilsson@rim.com>
[BlackBerry] LayerTexture refactoring
https://bugs.webkit.org/show_bug.cgi?id=114276
Reviewed by Carlos Garcia Campos.
Remove the GpuHandle and HostType typedefs from LayerTexture, they
don't make any sense now that we removed the Skia code paths. With Skia
they used to be an OpenGL texture ID and an SkBitmap respectively, but
now it's just BlackBerry::Platform::Graphics::Buffer all around.
This allows us to rename textureId() into buffer() which is more to the
point. The texture ID concept is now up for grabs and can be used to
consolidate all the various code for extracting an OpenGL texture from
a BlackBerry::Platform::Graphics::Buffer. This opportunity is seized in
LayerTexture::platformTexture(), a name which makes more sense than
textureId() for anyone familiar with the GraphicsContext3D code. We can
also leverage the Platform3DObject typedef to avoid including gl2.h.
The vertex attribute state was getting trampled when interacting with
BlackBerry::Platform::Graphics in the LayerFilterRenderer. Some
additional GL state save/restore incantations when accessing the OpenGL
texture for a LayerTexture in the new LayerTexture::platformTexture()
method fixes various CSS Filters test cases.
Since we removed the Skia integration from LayerTiler, nobody cares
about the dirty rect, tile rect or opaqueness of the tile contents. So
remove those parameters from the updateContents code path.
No change in behavior except for fixing CSS Filters tests like
css3/filters/effect-blur-hw.html. This can only be verified by manually
looking at the tests, we don't have pixel test support to catch this
kind of regression.
PR 322882
* platform/graphics/blackberry/LayerCompositingThread.cpp:
(WebCore::LayerCompositingThread::drawSurface):
* platform/graphics/blackberry/LayerFilterRenderer.cpp:
(WebCore::LayerFilterRenderer::ping):
(WebCore::LayerFilterRenderer::pong):
(WebCore::LayerFilterRenderer::pushSnapshot):
(WebCore::LayerFilterRenderer::popSnapshot):
(WebCore::LayerFilterRenderer::applyActions):
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::useSurface):
* platform/graphics/blackberry/LayerTexture.cpp:
(WebCore::LayerTexture::LayerTexture):
(WebCore::LayerTexture::updateContents):
(WebCore::LayerTexture::setContentsToColor):
(WebCore::LayerTexture::protect):
(WebCore::LayerTexture::platformTexture):
(WebCore):
* platform/graphics/blackberry/LayerTexture.h:
(WebCore::LayerTexture::isDirty):
(WebCore::LayerTexture::buffer):
(LayerTexture):
(WebCore::LayerTexture::setBuffer):
* platform/graphics/blackberry/LayerTile.cpp:
(WebCore::LayerTile::setContents):
(WebCore::LayerTile::updateContents):
* platform/graphics/blackberry/LayerTile.h:
(WebCore::LayerTile::hasTexture):
(LayerTile):
* platform/graphics/blackberry/LayerTiler.cpp:
(WebCore::LayerTiler::updateTextureContentsIfNeeded):
(WebCore::LayerTiler::uploadTexturesIfNeeded):
(WebCore::LayerTiler::performTileJob):
(WebCore::LayerTiler::drawTile):
* platform/graphics/blackberry/LayerTiler.h:
(WebCore::LayerTiler::TextureJob::TextureJob):
(WebCore::LayerTiler::TextureJob::setContents):
(WebCore::LayerTiler::TextureJob::updateContents):
(TextureJob):
(LayerTiler):
* platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
(WebCore::TextureCacheCompositingThread::createBuffer):
(WebCore::TextureCacheCompositingThread::collectGarbage):
(WebCore::TextureCacheCompositingThread::install):
(WebCore::TextureCacheCompositingThread::resizeTexture):
(WebCore::TextureCacheCompositingThread::evict):
(WebCore::TextureCacheCompositingThread::textureForContents):
(WebCore::TextureCacheCompositingThread::updateContents):
* platform/graphics/blackberry/TextureCacheCompositingThread.h:
(TextureCacheCompositingThread):
(WebCore::TextureCacheCompositingThread::ZombieTexture::ZombieTexture):
(ZombieTexture):
2013-04-11 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] RenderThemeBlackBerry: upstream missing code
https://bugs.webkit.org/show_bug.cgi?id=114343
Reviewed by Xan Lopez.
Add implementations of sliderTickSize() and
sliderTickOffsetFromTrackCenter(), as well as a missing header.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore):
(WebCore::RenderThemeBlackBerry::sliderTickSize):
(WebCore::RenderThemeBlackBerry::sliderTickOffsetFromTrackCenter):
* platform/blackberry/RenderThemeBlackBerry.h:
(RenderThemeBlackBerry):
2013-04-11 Allan Sandfeld Jensen <allan.jensen@digia.com>
HitTestRequest::AllowFrameScrollbars does not test main frame scrollbar
https://bugs.webkit.org/show_bug.cgi?id=112563
Reviewed by Antonio Gomes.
Move the frame scrollbar testing from RenderPart to RenderView, so that it is
tested by all frame and not just child frames. At the same time remove the
main frame test from the one current callsite using the option.
Tested by fast/events/touch/gesture/gesture-scrollbar.html.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureEvent):
* rendering/RenderPart.cpp:
(WebCore::RenderPart::nodeAtPoint):
* rendering/RenderView.cpp:
(WebCore::RenderView::hitTest):
2013-04-11 Rune Lillesveen <rune@opera.com>
Incorrect evaluation of resolution media queries
https://bugs.webkit.org/show_bug.cgi?id=114029
Reviewed by Kenneth Rohde Christiansen.
The implementation used the physical resolution to evaluate the
resolution media features. Changed to use the actual CSS resolution,
also known as the device-pixel-ratio, instead. Unified the code for
evaluating the resolution and device-pixel-ratio media features.
No new tests, covered by existing tests.
* WebCore.exp.in:
* css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::isResolution):
* css/MediaQueryEvaluator.cpp:
(WebCore::evalResolution):
(WebCore::device_pixel_ratioMediaFeatureEval):
(WebCore::resolutionMediaFeatureEval):
* page/Screen.cpp:
* page/Screen.h:
* page/Settings.cpp:
(WebCore):
* page/Settings.h:
(Settings):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
* testing/InternalSettings.h:
(Backup):
(InternalSettings):
* testing/InternalSettings.idl:
2013-04-11 Carlos Garcia Campos <cgarcia@igalia.com>
FrameLoaderClient::assignIdentifierToInitialRequest() not called for the main resource when loaded from the memory cache
https://bugs.webkit.org/show_bug.cgi?id=112418
Reviewed by Darin Adler.
When the main resource is loaded from the memory cache the
response is not added to the ResponseVector of the document
loader, so that when committing the provisional load the remaining
delegate messages are not called because the ResponseVector of the
document loader is empty. When the main resource is loaded from
the memory cache, there's no resource loader, and the client is
notified about the response received using
ResourceLoadNotifier::dispatchDidReceiveResponse() directly
instead of ResourceLoadNotifier::didReceiveResponse() which is the
one adding the response to the ResponseVector of the document
loader. So, the problem can be fixed by adding the response to the
ResponseVector before calling dispatchDidReceiveResponse() when
loading the main resource without a resource loade
Test: loader/go-back-cached-main-resource.html
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
2013-04-10 Alexey Proskuryakov <ap@apple.com>
Remove some includes of CachedImage.h
https://bugs.webkit.org/show_bug.cgi?id=114411
Reviewed by Dan Bernstein.
* css/CSSCrossfadeValue.h: Initializing CachedResourceHandle with 0 requires a
definition of a class it holds, but default construction does not.
* rendering/RenderImageResource.cpp:
* rendering/RenderImageResource.h:
Moved definitions of virtual functions to a .cpp file. There is no win from having
them inline, and now we don't need CachedImage.h in the header.
* bindings/js/JSNodeCustom.cpp:
* dom/Clipboard.cpp:
(WebCore::Clipboard::Clipboard):
* platform/mac/ClipboardMac.h:
* rendering/InlineFlowBox.cpp:
* rendering/RenderBox.cpp:
* rendering/RenderListItem.cpp:
* rendering/RenderListMarker.cpp:
* rendering/RenderTableCol.cpp:
* rendering/RenderTableRow.cpp:
* rendering/RenderTableSection.cpp:
* svg/graphics/SVGImageCache.cpp:
Removed unnecessary includes.
* platform/mac/PasteboardMac.mm:
* rendering/RenderSnapshottedPlugIn.cpp:
Added ones where they are now necessary.
2013-04-10 No'am Rosenthal <noam@webkit.org>
Allow direct compositing of background images
https://bugs.webkit.org/show_bug.cgi?id=108203
Reviewed by Simon Fraser.
Use setContentsToImage for background images, if the GraphicsLayer has only a background
bitmap image and nothing else. Compute the contentsRect/contentsTileRect from the box model.
Added new properties to GraphicsLayer, contentsTilePhase and contentsTileSize, which controls the "single tile rect",
which allows us to compute the pattern-space transform of a tile, thus allowing background-size
and other characteristics of background images.
This feature is explicitly disabled when there is any composition with a background color or if
there are several background images, as in that case having a single backing store has some
advantages over directly compositing in hardware.
Currently, this feature is disabled for all ports, allowing ports to implement their backend
and decide when to enable it.
Note that RenderBoxModelObject::getGeometryForBackgroundImage crops the contents rect to the
area that contains the tiles, which allows us to assume full tiling in GraphicsLayer.
In this way contentsTileSize/Phase is equivalent to GraphicsContext::drawTiledImage.
Tests: compositing/patterns/direct-pattern-compositing-add-text.html
compositing/patterns/direct-pattern-compositing-change.html
compositing/patterns/direct-pattern-compositing-contain.html
compositing/patterns/direct-pattern-compositing-cover.html
compositing/patterns/direct-pattern-compositing-load.html
compositing/patterns/direct-pattern-compositing-padding.html
compositing/patterns/direct-pattern-compositing-position.html
compositing/patterns/direct-pattern-compositing-rotation.html
compositing/patterns/direct-pattern-compositing-size.html
compositing/patterns/direct-pattern-compositing.html
* platform/graphics/GraphicsLayer.h:
(GraphicsLayer):
(WebCore::GraphicsLayer::setContentsTileSize):
(WebCore::GraphicsLayer::setContentsTilePhase):
(WebCore::GraphicsLayer::contentsTileSize):
(WebCore::GraphicsLayer::contentsTilePhase):
(WebCore::GraphicsLayer::supportsContentsTiling):
Add a contentsTileRect property that enables tile-repeat of background images.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::imageChanged):
Pass background image changes to the layer backing.
* rendering/RenderBoxModelObject.cpp:
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::getGeometryForBackgroundImage):
Expose a function that performs the geometry calculations needed to determine
the tileRect for a background image. This function is also responsible
for cropping the contentsRect to fit the area that is drawn into.
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::contentChanged):
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::updateDirectlyCompositedContents):
(WebCore::RenderLayerBacking::resetContentsRect):
(WebCore::hasBoxDecorationsOrBackgroundImage):
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor):
(WebCore::canCreateTiledImage):
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
(WebCore::backgroundRectForBox):
Allow background images to be directly composited if conditions allow (see bug description).
2013-04-10 Patrick Gansterer <paroga@webkit.org>
Replace ENABLE_LEGACY_WEB_AUDIO preprocessor statements in IDL files with Conditional attribute
https://bugs.webkit.org/show_bug.cgi?id=114351
Reviewed by Ryosuke Niwa.
The Conditional attribute does not need a preprocessor, which is source of much pain on native windows.
* Modules/webaudio/AudioBufferSourceNode.idl:
* Modules/webaudio/AudioContext.idl:
* Modules/webaudio/AudioParam.idl:
* Modules/webaudio/OscillatorNode.idl:
2013-04-10 Patrick Gansterer <paroga@webkit.org>
Replace ENABLE_DIRECTORY_UPLOAD preprocessor statements in IDL files with Conditional attribute
https://bugs.webkit.org/show_bug.cgi?id=114350
Reviewed by Ryosuke Niwa.
The Conditional attribute does not need a preprocessor, which is source of much pain on native windows.
* fileapi/File.idl:
2013-04-10 Ryosuke Niwa <rniwa@webkit.org>
Cleanup local variables in Editor::markAndReplaceFor
https://bugs.webkit.org/show_bug.cgi?id=114383
Reviewed by Enrica Casucci.
Added resultEndLocation, which is the sum of resultLocation and resultLength.
Also replaced ambiguousBoundaryOffset by useAmbiguousBoundaryOffset since the ambiguous offset is always
selectionOffset -1 to avoid the extra house keeping and obnoxious -1 check.
* editing/Editor.cpp:
(WebCore::Editor::markAndReplaceFor):
2013-04-10 Benjamin Poulain <bpoulain@apple.com>
Mass remove all the empty directories
Rubberstamped by Ryosuke Niwa.
* Modules/intents: Removed.
* Modules/protocolhandler: Removed.
* Modules/speech/mac: Removed.
* accessibility/efl: Removed.
* accessibility/gtk: Removed.
* bridge/jni/jsc: Removed.
* editing/android: Removed.
* editing/gtk: Removed.
* history/android: Removed.
* page/android: Removed.
* platform/android: Removed.
* platform/clutter: Removed.
* platform/graphics/blackberry/skia: Removed.
* platform/graphics/harfbuzz/ng: Removed.
* platform/graphics/pango: Removed.
* platform/image-decoders/cg: Removed.
* platform/image-decoders/qt: Removed.
* platform/network/android: Removed.
* platform/network/soup/cache/webkit: Removed.
* platform/text/android: Removed.
* platform/text/wince: Removed.
* platform/track: Removed.
2013-04-10 Simon Fraser <simon.fraser@apple.com>
Log when the animation timer fires
https://bugs.webkit.org/show_bug.cgi?id=114393
Reviewed by Dean Jackson.
Logging to the Animations log channel when the updateAnimationTimer
fires is useful, because it indicates whether we're running
software animations.
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::updateAnimationTimer):
2013-04-10 Beth Dakin <bdakin@apple.com>
Inspector highlights are offset when the WKView has a header
https://bugs.webkit.org/show_bug.cgi?id=114389
-and corresponding-
<rdar://problem/13522434>
Reviewed by Sam Weinig.
rootViewToContents() and contentsToRootView() need to factor in the
headerHeight(), much like windowToContents() and contentsToWindow() do already.
* platform/ScrollView.cpp:
(WebCore::ScrollView::rootViewToContents):
(WebCore::ScrollView::contentsToRootView):
2013-04-10 Simon Fraser <simon.fraser@apple.com>
Flesh out the Animations logging
https://bugs.webkit.org/show_bug.cgi?id=114388
Reviewed by Dean Jackson.
Log state changes and transition/animation creation and destruction
to the Animations log channel.
* page/animation/AnimationBase.cpp:
(WebCore::nameForState):
(WebCore::AnimationBase::updateStateMachine):
(WebCore::AnimationBase::fireAnimationEventsIfNeeded):
(WebCore::AnimationBase::goIntoEndingOrLoopingState):
(WebCore::AnimationBase::freezeAtTime):
* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::updateTransitions):
(WebCore::CompositeAnimation::updateKeyframeAnimations):
* page/animation/KeyframeAnimation.h:
(WebCore::KeyframeAnimation::keyframes):
(KeyframeAnimation):
2013-04-10 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13047266> External XML entities are not loaded with modern libxml2
https://bugs.webkit.org/show_bug.cgi?id=114377
Reviewed by Darin Adler.
Covered by http/tests/security/xss-DENIED-xml-external-entity.xhtml when using
new enough libxml2.
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::switchToUTF16): Added a FIXME with an idea for improvement.
(WebCore::XMLParserContext::createStringParser): Apply XML_PARSE_NOENT in a non-hacky
way, so that the new libxml2 check doesn't fail.
(WebCore::XMLParserContext::createMemoryParser): Updated an unhelpful and incorrect
comment (XML_PARSE_NODICT actually means "Do not reuse the context dictionary").
2013-04-10 Eric Carlson <eric.carlson@apple.com>
[Mac] in-band tracks sometimes not recognized
https://bugs.webkit.org/show_bug.cgi?id=114380
Reviewed by Jer Noble.
No new tests, covered by existing in-band tests.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Don't call selectMediaOption,
availableMediaCharacteristicsWithMediaSelectionOptions is unlikely to be loaded at this time.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks): Disable automatic text track
selection.
(WebCore::assetMetadataKeyNames): Watch for the status of availableMediaCharacteristicsWithMediaSelectionOptions
to change.
2013-04-10 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Zoom causes shape-inside to fail when shape-padding is specified
https://bugs.webkit.org/show_bug.cgi?id=113730
Reviewed by Dirk Schulze.
Snap computed margin and polygon boundaries to the LayoutUnit grid to ensure
that they fall within the shape's LayoutUnit bounding box.
Test: fast/exclusions/shape-inside/shape-inside-polygon-zoom.html
* rendering/ExclusionPolygon.cpp:
(WebCore::snapVerticesToLayoutUnitGrid): Convert the FloatPoint coordinates to LayoutUnits and then back to floats.
(WebCore::computeShapePaddingBounds): Now calls snapVerticesToLayoutUnitGrid() before creating a FloatPolygon.
(WebCore::computeShapeMarginBounds): Ditto.
2013-04-10 Csaba Osztrogonác <ossy@webkit.org>
One more unreviewed buildfix after r148123.
* platform/graphics/filters/CustomFilterMeshGenerator.h:
2013-04-10 Beth Dakin <bdakin@apple.com>
FindBanner matches are offset when the WKView has a header or footer
https://bugs.webkit.org/show_bug.cgi?id=114314
-and corresponding-
<rdar://problem/13522434>
Reviewed by Simon Fraser.
There were already a few places in the code where we needed to adjust the
scrollOffset() to pretend that (0,0) is that the top of the Document rather than
the top of the header. To fix the FindBanner issues, we need to know that version
of the offset in a few more places, so I added a function on ScrollView to fetch
it called scrollOffsetRelativeToDocument().
New function subtracts out the headerHeight() to treat the top of
the document as (0,0).
* WebCore.exp.in:
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollOffsetRelativeToDocument):
Use scrollOffsetRelativeToDocument() where we were previously making this
calculation. Also re-name an inaccurately named variable where we are actually
converting FROM a document offset to a ScrollableArea offset.
(WebCore::ScrollView::windowToContents):
* platform/ScrollView.h:
(ScrollView):
getRectToExpose needs to know about the actual visibleContentRect and the
visibleContentRect that is relative to the Document. So this
patch adds a new parameter to getRectToExpose for that purpose.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::getRectToExpose):
* rendering/RenderLayer.h:
2013-04-10 Chris Fleizach <cfleizach@apple.com>
when ARIA button contains a link, label text is ignored (affects main buttons on m.facebook.com)
https://bugs.webkit.org/show_bug.cgi?id=113906
Reviewed by Tim Horton.
If an element does not expose any children, then it's safe to include all of its sub children when determining
the visible text.
The bug is that all elements were ignoring focusable elements (like <a>) when determining visible children text
Test: accessibility/link-inside-button-accessible-text.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::shouldUseAccessiblityObjectInnerText):
* accessibility/AccessibilityNodeObject.h:
(AccessibilityNodeObject):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isDescendantOfBarrenParent):
(AccessibilityObject):
2013-04-10 Chris Fleizach <cfleizach@apple.com>
AX: Make sure all AX methods called from outside call prepareAccessibility
https://bugs.webkit.org/show_bug.cgi?id=113818
Reviewed by Darin Adler.
Make sure any calls that can be made from outside WebCore are protected with the
prepareAccessibility method.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityMathRootIndexObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathRadicandObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathNumeratorObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathDenominatorObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathBaseObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathSubscriptObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathSuperscriptObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathUnderObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathOverObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathFencedOpenString]):
(-[WebAccessibilityObjectWrapper accessibilityMathFencedCloseString]):
(-[WebAccessibilityObjectWrapper accessibilityIsMathTopObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathType]):
2013-04-10 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed buildfix after r148123.
* inspector/InspectorInstrumentation.h:
(WebCore):
2013-04-10 Xabier Rodriguez Calvar <calvaris@igalia.com>
Clicking on the volume slider of HTML5 elements is pausing sometimes
https://bugs.webkit.org/show_bug.cgi?id=112548
Reviewed by Eric Carlson.
Test: media/click-volume-bar-not-pausing.html
* html/shadow/MediaControlElementTypes.cpp:
(WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
Calling the setDefaultHandled() method on the event prevents it
from being incorrectly propagated from the volume button up to the
MediaDocument.
2013-04-10 Arvid Nilsson <anilsson@rim.com>
[BlackBerry] Rename BlackBerry specific Texture class
https://bugs.webkit.org/show_bug.cgi?id=95781
Reviewed by Rob Buis.
Texture was a bit too generic and prone to name conflicts. Renamed it
to LayerTexture.
No change in behavior, no new tests.
PR 322882
* PlatformBlackBerry.cmake:
* platform/graphics/blackberry/LayerCompositingThread.cpp:
(WebCore::LayerCompositingThread::drawSurface):
(WebCore::LayerCompositingThread::contentsTexture):
* platform/graphics/blackberry/LayerCompositingThread.h:
(LayerCompositingThread):
* platform/graphics/blackberry/LayerCompositingThreadClient.h:
(WebCore):
(WebCore::LayerCompositingThreadClient::contentsTexture):
* platform/graphics/blackberry/LayerFilterRenderer.cpp:
(WebCore::LayerFilterRenderer::applyActions):
* platform/graphics/blackberry/LayerFilterRenderer.h:
(LayerFilterRenderer):
* platform/graphics/blackberry/LayerRendererSurface.h:
(WebCore::LayerRendererSurface::texture):
(LayerRendererSurface):
* platform/graphics/blackberry/LayerTexture.cpp: Renamed from Source/WebCore/platform/graphics/blackberry/Texture.cpp.
(WebCore):
(WebCore::LayerTexture::LayerTexture):
(WebCore::LayerTexture::~LayerTexture):
(WebCore::LayerTexture::updateContents):
(WebCore::LayerTexture::setContentsToColor):
(WebCore::LayerTexture::protect):
* platform/graphics/blackberry/LayerTexture.h: Renamed from Source/WebCore/platform/graphics/blackberry/Texture.h.
(WebCore):
(LayerTexture):
(WebCore::LayerTexture::create):
(WebCore::LayerTexture::textureId):
(WebCore::LayerTexture::isDirty):
(WebCore::LayerTexture::hasTexture):
(WebCore::LayerTexture::isColor):
(WebCore::LayerTexture::isOpaque):
(WebCore::LayerTexture::isProtected):
(WebCore::LayerTexture::protect):
(WebCore::LayerTexture::unprotect):
(WebCore::LayerTexture::size):
(WebCore::LayerTexture::width):
(WebCore::LayerTexture::height):
(WebCore::LayerTexture::bytesPerPixel):
(WebCore::LayerTexture::sizeInBytes):
(WebCore::LayerTexture::setTextureId):
(WebCore::LayerTexture::setSize):
* platform/graphics/blackberry/LayerTile.cpp:
(WebCore::LayerTile::setContents):
(WebCore::LayerTile::updateContents):
(WebCore::LayerTile::setTexture):
* platform/graphics/blackberry/LayerTile.h:
(WebCore::LayerTile::texture):
(LayerTile):
* platform/graphics/blackberry/LayerTiler.cpp:
(WebCore::LayerTiler::drawTile):
(WebCore::LayerTiler::contentsTexture):
* platform/graphics/blackberry/LayerTiler.h:
(LayerTiler):
(WebCore::LayerTiler::TextureJob::TextureJob):
(WebCore::LayerTiler::TextureJob::setContents):
(WebCore::LayerTiler::TextureJob::updateContents):
(TextureJob):
* platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
(WebCore::TextureProtector::TextureProtector):
(TextureProtector):
(WebCore::TextureCacheCompositingThread::allocateTextureId):
(WebCore::freeTextureId):
(WebCore::TextureCacheCompositingThread::textureResized):
(WebCore::TextureCacheCompositingThread::textureSizeInBytesChanged):
(WebCore::TextureCacheCompositingThread::textureDestroyed):
(WebCore::TextureCacheCompositingThread::install):
(WebCore::TextureCacheCompositingThread::resizeTexture):
(WebCore::TextureCacheCompositingThread::evict):
(WebCore::TextureCacheCompositingThread::textureAccessed):
(WebCore::TextureCacheCompositingThread::prune):
(WebCore::TextureCacheCompositingThread::textureForTiledContents):
(WebCore::TextureCacheCompositingThread::textureForColor):
(WebCore::TextureCacheCompositingThread::updateContents):
* platform/graphics/blackberry/TextureCacheCompositingThread.h:
(WebCore::TextureCacheCompositingThread::createTexture):
(TextureCacheCompositingThread):
(WebCore::TextureCacheCompositingThread::ZombieTexture::ZombieTexture):
(ZombieTexture):
2013-04-10 Andreas Kling <akling@apple.com>
Disallow programmatic movement of the browser window while user gestures are in progress.
<http://webkit.org/b/114271>
<rdar://problem/13226530>
Reviewed by Oliver Hunt.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::moveBy):
(WebCore::DOMWindow::moveTo):
(WebCore::DOMWindow::resizeBy):
(WebCore::DOMWindow::resizeTo):
2013-04-10 Ryosuke Niwa <rniwa@webkit.org>
Refactor Editor::markAndReplaceFor before fixing autocorrection bugs
https://bugs.webkit.org/show_bug.cgi?id=114344
Reviewed by Enrica Casucci.
This patch refactors Editor::markAndReplaceFor so that we can start fixing bugs in a sane state.
Extracted isAutomaticTextReplacementType and correctSpellcheckingPreservingTextCheckingParagraph,
and made convenience local variables const.
In particular, shouldMarkSpelling used to be assigned of false when shouldShowCorrectionPanel was true
in a middle of a function but this was removed in favor of explicitly checking this condition later
since shouldMarkSpelling was only referenced once after the assignment.
* editing/Editor.cpp:
(WebCore::isAutomaticTextReplacementType): Extracted.
(WebCore::correctSpellcheckingPreservingTextCheckingParagraph): Extracted. Used highestAncestor
and rangeFromLocationAndLength to match the rest of the up-to-date editing code.
(WebCore::Editor::markAndReplaceFor): See above.
2013-04-08 Anders Carlsson <andersca@apple.com>
Remove unneeded headers from FrameLoader.h
https://bugs.webkit.org/show_bug.cgi?id=114223
Reviewed by Geoffrey Garen.
Remove unneeded headers from FrameLoader.h and add them back into the respective .cpp files where needed.
* dom/Document.cpp:
* history/CachedFrame.cpp:
* history/PageCache.cpp:
* inspector/InspectorResourceAgent.cpp:
* loader/DocumentLoader.cpp:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad):
* loader/FrameLoader.h:
(WebCore):
(WebCore::FrameLoader::policyChecker):
(WebCore::FrameLoader::history):
(WebCore::FrameLoader::icon):
* loader/MixedContentChecker.h:
* loader/icon/IconLoader.cpp:
* page/History.cpp:
* page/Page.cpp:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* testing/Internals.cpp:
2013-04-10 Simon Fraser <simon.fraser@apple.com>
Minor code cleanup in AnimationBase::progress
https://bugs.webkit.org/show_bug.cgi?id=114371
Reviewed by Dean Jackson.
Convert some "return; else if" to just "return; if".
* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::progress):
2013-04-10 Robert Hogan <robert@webkit.org>
Empty inline continuations should only get lineboxes if the padding applies to their side of the inline
https://bugs.webkit.org/show_bug.cgi?id=113896
Reviewed by David Hyatt.
Test: fast/inline/inline-with-empty-inline-continuations.html
Where an empty inline is split across anonymous blocks we should only give lineboxes to the 'sides' of the
inline that have borders, padding or margin.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::shouldApplyStartBorderPaddingOrMargin):
(WebCore):
(WebCore::shouldApplyEndBorderPaddingOrMargin):
(WebCore::hasInlineDirectionBordersPaddingOrMargin):
(WebCore::alwaysRequiresLineBox):
2013-04-10 Zoltan Horvath <zoltan@webkit.org>
[CSS Exclusions] Increasing padding does not correctly layout child blocks
https://bugs.webkit.org/show_bug.cgi?id=112929
Reviewed by David Hyatt.
If a child block has changed dimension inside a shape and it has affected the block siblings
we need to relayout the content inside the shape.
Test: fast/exclusions/shape-inside/shape-inside-sibling-block-dimension-change-needs-relayout.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateRegionsAndExclusionsAfterChildLayout): Add condition for dimension change.
(WebCore::RenderBlock::layoutBlock): Call updateRegionsAndExclusionsAfterChildLayout with the new parameter.
* rendering/RenderBlock.h:
(RenderBlock): Add extra parameter to updateRegionsAndExclusionsAfterChildLayout(...)
2013-04-10 Geoffrey Garen <ggaren@apple.com>
Removed bitrotted TimeoutChecker code
https://bugs.webkit.org/show_bug.cgi?id=114336
Reviewed by Alexey Proskuryakov.
This mechanism hasn't worked for a while.
MarkL is working on a new version of this feature with a distinct
implementation.
* bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::commonJSGlobalData):
* bindings/js/JSErrorHandler.cpp:
(WebCore::JSErrorHandler::handleEvent):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JSMutationCallback.cpp:
(WebCore::JSMutationCallback::call):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::executeFunctionInContext):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::evaluateInWorld):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneBase::CloneBase):
(WebCore::CloneSerializer::serialize):
(WebCore::CloneDeserializer::deserialize):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject callWebScriptMethod:withArguments:]):
(-[WebScriptObject evaluateWebScript:]):
2013-04-10 Patrick Gansterer <paroga@webkit.org>
Replace ENABLE_JAVASCRIPT_DEBUGGER preprocessor statements in IDL files with Conditional attribute
https://bugs.webkit.org/show_bug.cgi?id=114352
Reviewed by Timothy Hatcher.
The Conditional attribute does not need a preprocessor, which is source of much pain on native windows.
* page/Console.idl:
2013-04-10 Alexandru Chiculita <achicu@adobe.com>
Layers with opacity and blur filters are reported as opaque to the compositor
https://bugs.webkit.org/show_bug.cgi?id=114295
Reviewed by Simon Fraser.
Test: compositing/contents-opaque/filter.html
Some filters like opacity and blur might still trigger transparency in the layer, even though the
background is opaque. I've added the special case in RenderLayer::backgroundIsKnownToBeOpaqueInRect to check
for filters that might have transparency. Note that this special case is required only for software drawn
filters, as the transparency is going to be backed in the GraphicsLayer content. Composited filters can
figure it out in the compositor.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::backgroundIsKnownToBeOpaqueInRect):
2013-04-10 Noam Rosenthal <noam@webkit.org>
[Texmap] In certain situations nested blending with overflow:hidden displays clipped results
https://bugs.webkit.org/show_bug.cgi?id=114290
Reviewed by Allan Sandfeld Jensen.
Always apply the clip when binding a surface, even if it hasn't changed.
Otherwise when binding a nested surface and rebinding its container surface,
the clip wouldn't apply.
Test: compositing/overlap-blending/nested-overlap-overflow.html
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::BitmapTextureGL::bind):
2013-04-10 Antti Koivisto <antti@apple.com>
Use minimal tiles during live resize
https://bugs.webkit.org/show_bug.cgi?id=114364
Reviewed by Darin Adler.
We currently update non-visible speculative tiles during resizing. We should just drop them.
* page/FrameView.cpp:
(WebCore::FrameView::willStartLiveResize):
(WebCore::FrameView::willEndLiveResize):
* page/FrameView.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::computeTileCoverage):
Use minimal coverage in live resize state.
2013-04-10 Victor Costan <costan@gmail.com>
Blob content type normalization.
https://bugs.webkit.org/show_bug.cgi?id=111380
Reviewed by Alexey Proskuryakov.
Tests: http/tests/fast/files/blob-constructor.js
http/tests/fileapi/xhr-send-form-data-filename-escaping.html
http/tests/fileapi/xhr-send-form-data-mimetype-normalization.html
* WebCore.exp.in: exported Blob::isNormalizedContentType()
* bindings/js/JSBlobCustom.cpp:
(WebCore::JSBlobConstructor::constructJSBlob): remove checks on Blob type, BlobBuilder will normalize it
* fileapi/Blob.cpp:
(BlobType): utilities for normalizing a Blob's type according to the File API spec
(WebCore::BlobType::isValid): content type validity checks in the File API spec
(WebCore::BlobType::normalize): implements the normalization rules in the File API spec
(WebCore::BlobType::isNormalized): useful for ASSERTing that a Blob type has been normalized
(WebCore): implement Blob type normalization according to the File API spec
(WebCore::Blob::Blob): normalize the Blob type in the data URL
(WebCore::Blob::slice): normalize the Blob type argument
* fileapi/Blob.h:
(BlobType): utilities for normalizing a Blob's type according to the File API spec
(WebCore::Blob::create): assert that the deserialized Blob's type was normalized
* fileapi/File.cpp:
(WebCore::createBlobDataForFileWithType): assert that the File's MIME type is a normalized Blob type
* fileapi/WebKitBlobBuilder.cpp:
(WebCore::BlobBuilder::getBlob): normalize the Blob's type before building it
* platform/network/BlobData.h:
(WebCore::BlobData::setContentType): assert that the Blob type has been normalized
* platform/network/FormData.cpp:
(WebCore::FormData::appendKeyValuePairItems): assert that Blob's type has been normalized
* platform/network/FormDataBuilder.cpp:
(WebCore::FormDataBuilder::addContentTypeToMultiPartHeader): assert that the Content-Type field is normalized
* xml/XMLHttpRequest.cpp: when responseType is blob, normalize Content-Type before passing to Blob constructor
2013-04-10 Tim Horton <timothy_horton@apple.com>
TileController doesn't remove tiles when the view is resized, leading to stale content
https://bugs.webkit.org/show_bug.cgi?id=114323
<rdar://problem/13520671>
Reviewed by Simon Fraser.
Ensure that tiles are removed if the view shrinks, so that they are not displayed
with stale content if the view later grows again (they will not be repainted by WebCore
while out-of-view).
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::revalidateTiles):
2013-04-10 Jessie Berlin <jberlin@apple.com>
Update the localizable strings file.
Rubber-stamped by Dan Bernstein.
* English.lproj/Localizable.strings:
2013-04-10 Patrick Gansterer <paroga@webkit.org>
Replace ENABLE_CHANNEL_MESSAGING preprocessor statements in IDL files with Conditional attribute
https://bugs.webkit.org/show_bug.cgi?id=114346
Reviewed by Geoffrey Garen.
The Conditional attribute does not need a preprocessor, which is source of much pain on native windows.
* page/DOMWindow.idl:
* workers/WorkerContext.idl:
2013-04-10 Eric Carlson <eric.carlson@apple.com>
Update all float attributes in HTMLMediaElement to double
https://bugs.webkit.org/show_bug.cgi?id=113615
Reviewed by Geoffrey Garen
Patch by Aaron Colwell
No new tests. Primary behavior doesn't change. Just time, playbackRate, and volume precision.
All existing LayoutTests/media tests still pass.
* WebCore.exp.in: Remove function that no longer need to be exported.
* html/HTMLMediaElement.cpp: Change all float attributes to double.
* html/HTMLMediaElement.h: Ditto.
* html/HTMLMediaElement.idl: Ditto.
* html/MediaController.cpp: Ditto.
* html/MediaController.h: Ditto.
* html/MediaControllerInterface.h: Ditto.
* html/TimeRanges.cpp: Ditto.
* html/TimeRanges.idl: Ditto.
* html/shadow/MediaControlElementTypes.cpp: Ditto.
* html/shadow/MediaControlElementTypes.h: Ditto.
* html/shadow/MediaControlElements.cpp: Ditto.
* html/shadow/MediaControlElements.h: Ditto.
* html/shadow/MediaControls.cpp: Ditto.
* html/shadow/MediaControlsApple.cpp: Ditto.
* html/shadow/MediaControlsBlackBerry.cpp: Ditto.
* html/shadow/MediaControlsBlackBerry.h: Ditto.
* html/shadow/MediaControlsGtk.cpp: Ditto.
* html/track/TextTrackCue.cpp: Ditto.
* html/track/TextTrackCue.h: Ditto.
* platform/Clock.h: Ditto.
* platform/ClockGeneric.cpp: Ditto.
* platform/ClockGeneric.h: Ditto.
* platform/graphics/MediaPlayer.cpp: Ditto.
* platform/graphics/MediaPlayer.h: Ditto.
* platform/graphics/MediaPlayerPrivate.h: Ditto.
* platform/mac/PlatformClockCA.cpp: Ditto.
* platform/mac/PlatformClockCA.h: Ditto.
* platform/mac/PlatformClockCM.h: Ditto.
* platform/mac/PlatformClockCM.mm: Ditto.
2013-04-10 Patrick Gansterer <paroga@webkit.org>
Replace ENABLE_MICRODATA preprocessor statements in IDL files with Conditional attribute
https://bugs.webkit.org/show_bug.cgi?id=114349
Reviewed by Geoffrey Garen.
The Conditional attribute does not need a preprocessor, which is source of much pain on native windows.
* dom/Document.idl:
* html/HTMLElement.idl:
2013-04-10 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
REGRESSION(r148034): IconDatabase::updateIconRecord crashes with null iconData and iconBitmap.
https://bugs.webkit.org/show_bug.cgi?id=114356
Reviewed by Tim Horton.
When loading an icon fails (for example, when a non-existent URI is
passed to the loader), updateIconRecord can be called with both
iconData and iconBitmap having no data.
This used to be fine before r148034, but causes an assertion now.
No new tests, existing tests such as fast/encoding/mispositioned-meta.html
were crashing.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::updateIconRecord): Change the ASSERT() to check
for a NAND condition that only fails if both iconData and iconBitmap
are not 0.
2013-04-10 JungJik Lee <jungjik.lee@samsung.com>
[Texmap] Update a dirty region which is not covered with keepRect.
https://bugs.webkit.org/show_bug.cgi?id=113752
Reviewed by Jocelyn Turcotte.
There can be a dirty region which is not covered with keepRect.
However the dirty could be inside the tile area. In this case,
currently we ignore the dirty by intersecting with keepRect
and the dirty region will not be invalidated until the tile is
recreated. We must expand the keep rect to its intersecting tiles
to make sure that the dirty region is applied to existing tiles.
No tests needed, change is unobservable.
* platform/graphics/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::invalidate):
2013-04-10 Laszlo Gombos <l.gombos@samsung.com>
Remove ENABLE_3D_PLUGIN
https://bugs.webkit.org/show_bug.cgi?id=108002
Remove ENABLE_3D_PLUGIN, it was only used by Chromium.
Reviewed by Antti Koivisto.
No new tests, removing dead code.
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::loadPlugin):
2013-04-10 Noam Rosenthal <noam@webkit.org>
[Texmap] Hierarchy of layers with opacity may result in wrong blending.
https://bugs.webkit.org/show_bug.cgi?id=113732
Reviewed by Allan Sandfeld Jensen.
This is a combination of three issues with nested intermediate surfaces:
- glScissor inside an intermediate surface should not be mirrored.
- The current surface should be passed to the next surface in paintOptions.
- When clipping for the non-overlap region, the containing surface offset
should be applied.
Though the changes are separate, they cannot be tested separately as neither
fixes a testable case on its own.
Tests: compositing/overlap-blending/nested-non-overlap-clipping.html
compositing/overlap-blending/nested-overlap.html
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::ClipStack::reset):
(WebCore::TextureMapperGL::ClipStack::apply):
(WebCore::TextureMapperGL::beginPainting):
(WebCore::BitmapTextureGL::clearIfNeeded):
* platform/graphics/texmap/TextureMapperGL.h:
(ClipStack):
Do not mirror the scissor clip when painting to an FBO.
Also a minor refactor to avoid reading the viewport values from the driver.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
Apply the offset when clipping for a non-overlap region.
(WebCore::TextureMapperLayer::paintIntoSurface):
Make sure the current surface is passed to the next one.
2013-04-10 Antti Koivisto <antti@apple.com>
Create fewer tiles when page is loading
https://bugs.webkit.org/show_bug.cgi?id=114294
Reviewed by Anders Carlsson.
We currently create speculative tiles immediately. Page is often changing rapidly during loading and
keeping the speculative tiles up to date creates extra work.
Tests: platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-speculative.html
platform/mac-wk2/tiled-drawing/tile-coverage-speculative.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadProgressingStatusChanged):
* page/FrameView.cpp:
(WebCore::FrameView::adjustTiledBackingCoverage):
(WebCore::FrameView::setWasScrolledByUser):
User scrolling enables speculative tiling no matter what the load status.
* page/FrameView.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::computeTileCoverage):
(WebCore::RenderLayerBacking::adjustTiledBackingCoverage):
Cover only the viewport during loading.
2013-04-10 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] RenderThemeBlackBerry: get rid of all the SKIA code
https://bugs.webkit.org/show_bug.cgi?id=114339
Reviewed by Carlos Garcia Campos.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
(WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
(WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
(WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderThumb):
2013-04-10 Zan Dobersek <zdobersek@igalia.com>
REGRESSION (r147719): Failures in two a11y tests on GTK
https://bugs.webkit.org/show_bug.cgi?id=114259
Reviewed by Ryosuke Niwa.
No new tests - covered by existing tests.
Partially revert r147719, restoring the possible creation of the AXObject cache
and the subsequent call to its handleFocusedUIElementChanged method. Removing this
code caused regressions in accessibility tests on the GTK port, so the comment about
the AXObject cache is adjusted accordingly.
* dom/Document.cpp:
(WebCore::Document::setFocusedNode):
2013-04-09 Philippe Normand <pnormand@igalia.com>
[GStreamer] playbin uri getter is invalid
https://bugs.webkit.org/show_bug.cgi?id=113884
Reviewed by Martin Robinson.
When loading a new media location use the url stored as a member
variable instead of the one stored as a playbin property. The uri
property semantic changed in playbin since 0.10.36+. One should
now use current-uri but to avoid ifdefs depending on GStreamer
version we simply use the url already known as member variable.
Test: http/tests/media/video-redirect.html
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2013-04-09 Geoffrey Garen <ggaren@apple.com>
[JSC] Script run from an isolated world should bypass a page's CSP
https://bugs.webkit.org/show_bug.cgi?id=100815
Reviewed by Oliver Hunt.
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
* bindings/js/ScriptController.h: Test the current caller's DOM wrapper
world to decide whether CSP should be enforced.
Like most of CSP, this is a stupid policy because it doesn't address
second-order effects like <script> parsing or event handler execution,
which might be triggered indirectly by privileged scripts. These indirect
effects are still broken. Oh well.
2013-04-09 Benjamin Poulain <bpoulain@apple.com>
Remove chromium exceptions from WebCore's gitattributes
https://bugs.webkit.org/show_bug.cgi?id=114327
Reviewed by Darin Adler.
* .gitattributes:
2013-04-09 Adam Klein <adamk@chromium.org>
Update Document's event listener type bitfield when adopting a Node
https://bugs.webkit.org/show_bug.cgi?id=114322
Reviewed by Darin Adler.
Without this, moving a Node between documents can silently deactivate
an event listener, if it's one of the types that whose creation is
optimized away by Document::hasListenerType.
An alternate approach would be to simply copy the old document's
bitfield over. It's a tradeoff between making adoption fast and making
the operation of any operation depending on these event types fast.
The latter seems like the right optimization given that adoption
doesn't happen very often.
Test: fast/events/event-listener-moving-documents.html
* dom/Node.cpp:
(WebCore::Node::didMoveToNewDocument): For each event listener type on the adopted node, update the new document's list of listener types.
2013-04-09 Dean Jackson <dino@apple.com>
Add logging channel for animations
https://bugs.webkit.org/show_bug.cgi?id=114325
Reviewed by Simon Fraser.
* platform/Logging.cpp: Add LogAnimations.
(WebCore::getChannelFromName): Return LogAnimations for "Animations".
* platform/Logging.h: Add LogAnimations.
* platform/mac/LoggingMac.mm:
(WebCore::initializeLoggingChannelsIfNecessary): Copy preference.
* platform/win/LoggingWin.cpp:
(WebCore::initializeLoggingChannelsIfNecessary): Copy preference.
2013-04-09 Dongwoo Joshua Im <dw.im@samsung.com>
[CSS3] Parsing the property, text-justify.
https://bugs.webkit.org/show_bug.cgi?id=100058
Reviewed by Andreas Kling.
This patch implements the parsing side of the "text-justify" property specified
in CSS3 working draft, with "-webkit-" prefix, under ENABLE_CSS3_TEXT flag.
Specification link : http://www.w3.org/TR/css3-text/#text-justify
Tests: fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify-inherited.html
fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TextJustify):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
* css/StylePropertySet.cpp:
(WebCore):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h:
(StyleRareInheritedData):
2013-04-09 Joone Hur <joone.hur@intel.com>
[GTK][AC] Adding contentsLayer for image and video
https://bugs.webkit.org/show_bug.cgi?id=113912
Reviewed by Gustavo Noronha Silva.
contentsLayer is a ClutterActor, which is added to the main layer
as a child when GraphicsLayer needs to render an image or video.
No new tests, already covered by existing AC tests.
* platform/graphics/clutter/GraphicsLayerActor.cpp:
(graphicsLayerActorUpdateTexture):
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::GraphicsLayerClutter::GraphicsLayerClutter):
(WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
(WebCore):
(WebCore::GraphicsLayerClutter::setContentsToImage): Pass a Cairo surface to GraphicsLayer.
(WebCore::GraphicsLayerClutter::setContentsNeedsDisplay):
(WebCore::GraphicsLayerClutter::setContentsRect):
(WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerClutter::setupContentsLayer):
(WebCore::GraphicsLayerClutter::updateContentsImage): Set the Cairo surface for contentsLayer
to upload it as a texture.
(WebCore::GraphicsLayerClutter::updateContentsNeedsDisplay):
(WebCore::GraphicsLayerClutter::updateContentsRect):
(WebCore::GraphicsLayerClutter::updateSublayerList):
* platform/graphics/clutter/GraphicsLayerClutter.h:
(WebCore::GraphicsLayerClutter::hasContentsLayer):
(GraphicsLayerClutter):
(WebCore::GraphicsLayerClutter::contentsLayer):
2013-04-09 Alexey Proskuryakov <ap@apple.com>
REGRESSION: Blob URLs broken with NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=114320
Reviewed by Brady Eidson.
Update BlobResourceHandle to use modern resource client calls.
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::readSync): Don't call notifyReceiveData if there is
no data (it's especially egregious when length is -1, signaling an error).
(WebCore::BlobResourceHandle::notifyResponseOnSuccess): Use didReceiveResponseAsync
when a client wants async callbacks. This is not very clean, as we don't wait
for response, but should be workable for blobs.
(WebCore::BlobResourceHandle::notifyResponseOnError): Ditto.
(WebCore::BlobResourceHandle::notifyReceiveData): Use didReceiveBuffer (clients
that only implement didReceiveData will have it automatically unwrapped).
2013-04-09 Jer Noble <jer.noble@apple.com>
REGRESSION (r123837): Full screen transition is broken at apple.com
https://bugs.webkit.org/show_bug.cgi?id=95650
Reviewed by Simon Fraser.
Cancel any outstanding animations on <video> elements as they enter full screen, so as to
not confuse the WebKit/WebKit2 full screen window animation about the starting and destination
screen rects.
* css/fullscreen.css:
(video:-webkit-full-screen, audio:-webkit-full-screen):
2013-04-09 Jer Noble <jer.noble@apple.com>
hang in mediaSelectionGroupForMediaCharacteristic
https://bugs.webkit.org/show_bug.cgi?id=114054
Reviewed by Eric Carlson.
No new tests; Fixes sporadic hangs in media/ tests.
-[AVURLAsset mediaSelectionGroupForMediaCharacteristic:] can deadlock in certain situations: When AVURLAsset
posts a synchronous AVAssetResourceLoader notification to the main thread, calling -mediaSelectionGroupForMediaCharacteristic:
on the main thread requires IO to occur if the media characteristics are not yet loaded. Instead of blocking,
bail out early if the media characteristics are not yet known.
Add a new method, safeMediaSelectionGroupForLegibleMedia(), which first checks selection group availability
before calling mediaSelectionGroupForMediaCharacteristic:.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
(MediaPlayerPrivateAVFoundationObjC):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForLegibleMedia): Added.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Use new safe method.
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Ditto.
2013-04-09 Chris Fleizach <cfleizach@apple.com>
AX: Bounding paths should be made available through accessibility
https://bugs.webkit.org/show_bug.cgi?id=113817
Unreviewed build fix for iOS.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _accessibilityPath]):
* accessibility/mac/WebAccessibilityObjectWrapperBase.h:
2013-04-09 Eric Carlson <eric.carlson@apple.com>
Unreviewed correctness fix: use lroundf instead of lround for a float to int conversion.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
2013-04-06 Roger Fong <roger_fong@apple.com>
Change requisite hardware checks for enabling antialiasing.
https://bugs.webkit.org/show_bug.cgi?id=114101
<rdar://problem/12342776>.
m_maySupportMultisampling should be true by default for all platforms/hardware now except older versions of AMD.
Reviewed by Dean Jackson.
* platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
(WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
2013-04-09 Commit Queue <rniwa@webkit.org>
Unreviewed, rolling out r148010.
http://trac.webkit.org/changeset/148010
https://bugs.webkit.org/show_bug.cgi?id=114310
Causes problems with focus rings (Requested by anttik on
#webkit).
* css/StyleBuilder.cpp:
(WebCore::ApplyPropertyComputeLength::applyValue):
(WebCore::ApplyPropertyComputeLength::createHandler):
(WebCore::StyleBuilder::StyleBuilder):
2013-04-09 Eric Carlson <eric.carlson@apple.com>
Unreviewed, another fix for the Windows build after r148050.
* html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGeneric::setFontSize): Use lround().
2013-04-09 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Exclusions] Properly position multiple stacked floats with non rectangular shape outside
https://bugs.webkit.org/show_bug.cgi?id=110372
Reviewed by Dean Jackson.
Stacked floats get positioned based on the bounding box of the shape,
not on the shape contours itself. This patch causes that to happen.
Test: fast/exclusions/shape-outside-floats/shape-outside-floats-stacked.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeLogicalLocationForFloat): Use the
"BoundingBoxOffset" mode so that we compute offsets based on the shape
bounding boxes of previous floats, not the shape contour.
(WebCore::RenderBlock::logicalLeftOffsetForLine): Check the
ShapeOutsideFloatOffsetMode to determine if the offset should be
adjusted for the shape contour or not.
(WebCore::RenderBlock::logicalRightOffsetForLine): Ditto.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::logicalRightOffsetForLine): Add parameter for offset mode.
(WebCore::RenderBlock::logicalLeftOffsetForLine): Ditto.
(RenderBlock):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): If the
new float is being added on top of a previous float on the same line,
undo the offset for the previous float's shape contour so that we
position the new float based on the bounding box.
2013-04-09 Eric Carlson <eric.carlson@apple.com>
Unreviewed, fix the Windows build after r148050.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Use lround().
2013-04-09 Tim Horton <timothy_horton@apple.com>
[wk2] IconDatabase images should be decoded in the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=112524
<rdar://problem/10133914>
Reviewed by Simon Fraser.
Move an ASSERT that dereferenced a pointer inside the null-check for that pointer.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::setIconBitmapForIconURL):
2013-04-09 Eric Carlson <eric.carlson@apple.com>
[Mac] user caption styles not applied to correct element
https://bugs.webkit.org/show_bug.cgi?id=114230
Reviewed by Jer Noble.
Test: media/track/track-css-user-override.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateActiveTextTrackCues): Drive by clean-up so we don't log excessively.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement): Initialize
new member variables.
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Set cue font size when it is
inserted into the tree.
(WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Update the font size of
all active cues.
(WebCore::MediaControlTextTrackContainerElement::updateSizes): Set size-relative CSS properties
after a time because this can be called during layout.
* html/shadow/MediaControlElements.h:
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::textTrackPreferencesChanged): Call closedCaptionTracksChanged before updateSizes.
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::setFontSize): New, set the cue's font size.
* html/track/TextTrackCue.h:
* html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties): Set cue properties on the cue element
instead of on the cue box to match what we do for the "cue" pseudo element.
(WebCore::TextTrackCueGeneric::setFontSize): New, set the cue's font size.
* html/track/TextTrackCueGeneric.h:
* html/track/TextTrackList.cpp:
(TextTrackList::remove): Drive-by cleanup, don't ASSERT when the media element is NULL.
* page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::setCaptionsStyleSheetOverride): New, allow user CSS overrides
to be tested in DRT.
(WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride): New, generate a user style
sheet override. Moved here from CaptionUserPreferencesMac.
* page/CaptionUserPreferences.h:
* page/CaptionUserPreferencesMac.h:
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::captionsBackgroundCSS): Don't ignore background color importance.
(WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Implement even when we don't
have the media accessibility framework so this can be tested in DRT. Apply all cue properties
to the element used for the "cue" pseudo element.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::didLoadingProgress): Drive-by cleanup, remove logging
because this method is called so frequently and the logging is not especially useful.
(WebCore::MediaPlayerPrivateAVFoundation::updateStates): Only log when the ready/network
state changes because this method is called so frequently.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformLayer): Drive-by cleanup, remove logging
because this method is called so frequently and the logging is not especially useful.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Make the logging more useful.
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState): Reset captions style sheet override.
(WebCore::Internals::captionsStyleSheetOverride): New, return the captions style sheet override.
(WebCore::Internals::setCaptionsStyleSheetOverride): New, override the captions style sheet override.
* testing/Internals.h:
* testing/Internals.idl:
2013-04-08 Simon Fraser <simon.fraser@apple.com>
Repaint rect too small on elements with shadows
https://bugs.webkit.org/show_bug.cgi?id=114225
Reviewed by Dain Adler.
We assumed that shadows (box-shadow, text-shadow, svg shadows)
only required inflating the repaint rect by the blur radius of
the shadow. However, this is incorrect; the shadow can extend
further, which resulted in clipped or incorrectly invalidated
shadows.
Fix by disambiguating the blur radius (which is 2x the standard
deviation of the Gaussian distribution used to generate the blur),
from the painting extent, which is how far the shadow visually
projects. Using a 1.4 multiplier of the blur radius is a good
approximation for the painting extent.
Renamed ShadowData::blur() to ShadowData::radius(), and added
ShadowData::paintingExtent(). Use the latter in all places
which relate to invalidation.
Test: fast/box-shadow/shadow-repaint.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::valueForShadow):
* editing/mac/EditorMac.mm:
(WebCore::Editor::fontAttributesForSelectionStart):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::paint):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::applyShadowToGraphicsContext):
(WebCore::InlineTextBox::paintDecoration):
* rendering/RenderBoxModelObject.cpp:
(WebCore::applyBoxShadowForBackground):
(WebCore::areaCastingShadowInHole):
(WebCore::RenderBoxModelObject::paintBoxShadow):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::getShadowExtent):
(WebCore::RenderStyle::getShadowInsetExtent):
(WebCore::RenderStyle::getShadowHorizontalExtent):
(WebCore::RenderStyle::getShadowVerticalExtent):
* rendering/style/ShadowData.cpp:
(WebCore::ShadowData::ShadowData):
(WebCore::ShadowData::operator==):
(WebCore::calculateShadowExtent):
* rendering/style/ShadowData.h:
(WebCore::ShadowData::ShadowData):
(WebCore::ShadowData::radius):
(WebCore::ShadowData::paintingExtent):
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::prepareToRenderSVGContent):
2013-04-08 Simon Fraser <simon.fraser@apple.com>
window.internals.repaintRectsAsText() is hard to use because it doesn't force layout
https://bugs.webkit.org/show_bug.cgi?id=114219
Reviewed by Beth Dakin.
Force layout when setTracksRepaints() is set to true, to flush out any pending
repaints from a layout that hasn't happened yet. Also force layout in
trackedRepaintRectsAsText(), so that any pending layout happpens and thus
repaints.
* page/FrameView.cpp:
(WebCore::FrameView::setTracksRepaints):
(WebCore::FrameView::trackedRepaintRectsAsText):
2013-04-09 Chris Fleizach <cfleizach@apple.com>
AX: Bounding paths should be made available through accessibility
https://bugs.webkit.org/show_bug.cgi?id=113817
Unreviewed build fix (again).
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
2013-04-09 Chris Fleizach <cfleizach@apple.com>
AX: Bounding paths should be made available through accessibility
https://bugs.webkit.org/show_bug.cgi?id=113817
Unreviewed build fix.
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(WebTransformCGPathToNSBezierPath):
2013-04-09 Chris Fleizach <cfleizach@apple.com>
AX: Bounding paths should be made available through accessibility
https://bugs.webkit.org/show_bug.cgi?id=113817
Reviewed by Tim Horton.
Minor fix from review feedback.
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
2013-04-09 Tim Horton <timothy_horton@apple.com>
[wk2] IconDatabase images should be decoded in the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=112524
<rdar://problem/10133914>
Reviewed by Oliver Hunt.
No testable behavior change.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::updateIconRecord):
Added updateIconRecord, which factors most of setIconDataForIconURL out so it can
be shared with setIconBitmapForIconURL. This function will set either a bitmap or
raw image data for the given icon URL.
(WebCore::IconDatabase::setIconBitmapForIconURL):
Added; make a copy of the bitmap for thread-safety purposes, and call updateIconRecord.
(WebCore::IconDatabase::setIconDataForIconURL):
Factored out of what is now updateIconRecord.
* loader/icon/IconDatabase.h:
(IconDatabase): Add setIconBitmapForIconURL and updateIconRecord.
* loader/icon/IconDatabaseBase.h:
(WebCore::IconDatabaseBase::setIconBitmapForIconURL): Added.
* loader/icon/IconRecord.cpp:
(WebCore::IconRecord::setImage): Set the image for an icon record directly (as opposed
to setting the image data, which causes the image to be decoded in the WebProcess).
* loader/icon/IconRecord.h:
(IconRecord): Add setImage.
2013-04-09 Chris Fleizach <cfleizach@apple.com>
AX: The bounding paths should be made available through accessibility
https://bugs.webkit.org/show_bug.cgi?id=113817
Reviewed by David Kilzer.
This allows bounding paths to be returned for some web elements (image map areas and SVG shapes).
This provides more accuracy when assistive technologies highlight elements.
The Mac and iOS platforms share some code to help transform paths to their screen coordinates.
Tests: platform/iphone-simulator/accessibility/element-paths.html
platform/mac/accessibility/element-paths.html
* accessibility/AccessibilityImageMapLink.cpp:
(WebCore::AccessibilityImageMapLink::imageMapLinkRenderer):
(WebCore):
(WebCore::AccessibilityImageMapLink::elementPath):
(WebCore::AccessibilityImageMapLink::elementRect):
* accessibility/AccessibilityImageMapLink.h:
(AccessibilityImageMapLink):
(WebCore::AccessibilityImageMapLink::supportsPath):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::elementPath):
(WebCore::AccessibilityObject::supportsPath):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore):
(WebCore::AccessibilityRenderObject::supportsPath):
(WebCore::AccessibilityRenderObject::elementPath):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _accessibilityPath]):
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
(-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):
(-[WebAccessibilityObjectWrapper accessibilityActivationPoint]):
(-[WebAccessibilityObjectWrapper accessibilityFrame]):
(-[WebAccessibilityObjectWrapper frameForTextMarkers:]):
* accessibility/mac/WebAccessibilityObjectWrapperBase.h:
(WebCore):
* accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(PathConversionInfo):
(ConvertPathToScreenSpaceFunction):
(-[WebAccessibilityObjectWrapperBase convertPathToScreenSpace:]):
(-[WebAccessibilityObjectWrapperBase convertPointToScreenSpace:]):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
(WebTransformCGPathToNSBezierPath):
(-[WebAccessibilityObjectWrapper bezierPathFromPath:]):
(-[WebAccessibilityObjectWrapper path]):
(-[WebAccessibilityObjectWrapper position]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2013-04-09 Benjamin Poulain <bpoulain@apple.com>
Remove the WebKit copy of GLU and the file using it
https://bugs.webkit.org/show_bug.cgi?id=114249
Reviewed by Darin Adler.
* platform/graphics/gpu/LoopBlinnPathProcessor.cpp: Removed.
2013-04-09 Andreas Kling <akling@apple.com>
Throttle resize events during live window resize.
<http://webkit.org/b/114292>
<rdar://problem/13411454>
Reviewed by Geoffrey Garen.
Limit resize events to one at max every 0.2 seconds during live window resize.
This mitigates heavy CPU usage during resize on pages with complex onresize handlers.
If there's a pending resize event when the live resize ends, it fires immediately.
* page/FrameView.cpp:
(WebCore::FrameView::sendResizeEvent):
Factored out dispatch of the resize event after layout so we can call it on a timer
instead of immediately while live window resize is active.
(WebCore::FrameView::FrameView):
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::delayedResizeEventTimerFired):
(WebCore::FrameView::willEndLiveResize):
(WebCore::FrameView::scheduleResizeEvent):
* page/FrameView.h:
* platform/ScrollableArea.h:
Made willStartLiveResize() and willEndLiveResize() virtual so we can override
them on FrameView.
2013-04-09 Jeff Rogers <jrogers@rim.com>
Add webp to supported image mime types if WEBP feature is enabled/used
https://bugs.webkit.org/show_bug.cgi?id=112819
Reviewed by Darin Adler.
Add WebP to list of supported image types in MIMETypeRegistry if enabled.
No new tests: WebP image decoding already covered by exisiting tests.
* platform/MIMETypeRegistry.cpp:
(WebCore::initializeSupportedImageMIMETypes):
2013-04-09 Arnaud Renevier <a.renevier@sisa.samsung.com>
Whitespace in particular source code changes rendering; does not in Firefox
https://bugs.webkit.org/show_bug.cgi?id=100943
Reviewed by Darin Adler.
A render inline which requires a line box is considered a possible
trailing object. So, ensureLineBoxInsideIgnoredSpaces will be called
for it, even if it is placed after a text render ending with a single
space.
Tests: fast/text/whitespace/trailing-space-before-empty-span-1.html
fast/text/whitespace/trailing-space-before-empty-span-2.html
* rendering/RenderBlockLineLayout.cpp:
(TrailingObjects):
(WebCore::TrailingObjects::appendBoxIfNeeded):
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
2013-04-09 Andrei Bucur <abucur@adobe.com>
Use DOM ordering for list counts
https://bugs.webkit.org/show_bug.cgi?id=110352
Reviewed by Elliott Sprehn.
Currently the list items ordering is made by traversing the render tree. This gives bad results for:
- list items flown inside regions because they are not rendered as descendants of their DOM list ancestors.
- list items matched to insertion points inside a shadow tree. The insertion point may be a child of a
list so the numbering gets broken.
To implement correct DOM ordering I've taken into account the fact that pseudo-elements can have display: list-item
so they should be included when traversing the DOM tree. I've added helper methods on the NodeTraversal
namespace that should allow easily traversing the tree including the pseudo-elements (e.g. firstChildWithPseudo
for an element with pseudo-before will return the before PseudoElement). Using these helper methods I've implemented
pre-order traversal methods aware of the pseudo-elements.
An effect of this change is how the list items inside shadow tree update their counting. With the patch, if there's
no <ol> or <ul> element on the ancestor chain of a <li> element to the shadow root, the list node will be considered the
first parent of the <li> or the shadow root if there is no ancestor.
The RenderListItem class now makes use of this new method of traversal, replacing the one based on the render tree.
To simplify the CSS counters implementation, I've changed the traversal functions inside RenderCounter to also make use
of this method. The CSS counters and the list items now have the same traversal algorithm.
In later patches I'll add tests that should cover the regions and shadow DOM use cases.
Tests bug for shadow DOM: https://bugs.webkit.org/show_bug.cgi?id=113193
Tests bug for regions: https://bugs.webkit.org/show_bug.cgi?id=103975
Tests: no new tests is this patch; added the correct expectations for fast/lists/positioned-count-crash.html
and fast/dom/shadow/shadow-and-list-elements.html
* dom/Node.cpp:
(WebCore::Node::pseudoAwarePreviousSibling):
(WebCore):
(WebCore::Node::pseudoAwareNextSibling):
(WebCore::Node::pseudoAwareFirstChild):
(WebCore::Node::pseudoAwareLastChild):
* dom/Node.h:
(Node):
* dom/NodeTraversal.cpp:
(WebCore):
(WebCore::NodeTraversal::previousIncludingPseudo):
(NodeTraversal):
(WebCore::NodeTraversal::nextIncludingPseudo):
(WebCore::NodeTraversal::nextIncludingPseudoSkippingChildren):
* dom/NodeTraversal.h:
(ElementTraversal):
(NodeTraversal):
(WebCore::ElementTraversal::previousIncludingPseudo):
(WebCore::ElementTraversal::nextIncludingPseudo):
(WebCore::ElementTraversal::nextIncludingPseudoSkippingChildren):
(WebCore::ElementTraversal::pseudoAwarePreviousSibling):
* html/HTMLLIElement.cpp:
(WebCore::HTMLLIElement::attach):
* html/HTMLOListElement.cpp:
(WebCore::HTMLOListElement::updateItemValues):
(WebCore::HTMLOListElement::recalculateItemCount):
* rendering/RenderCounter.cpp:
(WebCore::previousInPreOrder):
(WebCore::previousSiblingOrParent):
(WebCore::parentElement):
(WebCore::nextInPreOrder):
* rendering/RenderListItem.cpp:
(WebCore):
(WebCore::enclosingList):
(WebCore::RenderListItem::nextListItem):
(WebCore::previousListItem):
(WebCore::RenderListItem::calcValue):
(WebCore::RenderListItem::explicitValueChanged):
(WebCore::previousOrNextItem):
(WebCore::RenderListItem::updateListMarkerNumbers):
* rendering/RenderListItem.h:
(RenderListItem):
2013-04-09 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
[Texmap] TextureMapperLayer refactor for readiblity
https://bugs.webkit.org/show_bug.cgi?id=114278
Reviewed by Noam Rosenthal.
Removes non-needed return values, function parameters and changes
boolean values with enums for readibility.
No behavioral changes, thus no tests.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computeTransformsRecursive):
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::sortByZOrder):
(WebCore::TextureMapperLayer::computeOverlapRegions):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
(WebCore::commitSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):
(WebCore::TextureMapperLayer::paintRecursive):
* platform/graphics/texmap/TextureMapperLayer.h:
(TextureMapperLayer):
2013-04-09 Lamarque V. Souza <Lamarque.Souza@basyskom.com>
[WebSocket] Ignore incoming message in CLOSING state
https://bugs.webkit.org/show_bug.cgi?id=85934
Reviewed by Kent Tamura.
Change WebSocket implementation to suit the new WebSocket API, which
states that we should ignore messages in CLOSING state.
No new tests, updating existing tests.
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::didReceiveMessage):
2013-04-09 Seokju Kwon <seokju.kwon@gmail.com>
Web Inspector: Add Localized strings after r144154 and r135127
https://bugs.webkit.org/show_bug.cgi?id=114269
Reviewed by Timothy Hatcher.
No new tests, no behavior change.
* English.lproj/localizedStrings.js:
2013-04-09 Antti Koivisto <antti@apple.com>
Throttle compositing layer flushes in subframes
https://bugs.webkit.org/show_bug.cgi?id=114267
Reviewed by Andreas Kling.
Throttle compositing layer flushes in all frames, not just the main one.
This especially reduces flushes/repaints generated by ads in iframes.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadProgressingStatusChanged):
* page/FrameView.cpp:
(WebCore::FrameView::updateLayerFlushThrottlingInAllFrames):
* page/FrameView.h:
2013-04-09 Suchit Agrawal <a.suchit@samsung.com>
Table border doesn't show up
https://bugs.webkit.org/show_bug.cgi?id=13709
Reviewed by Antti Koivisto.
Border issue is fixed when border width is less than 0.8pt
Border width is stored as unsigned. Border width (specified by
author) is converted into pixels and some times this pixel value
goes less than 1px. In this case, border width becomes 0px when
pixel value (double type) assigned to unsigned type.
Border width should not fall to 0px unless it is specified by
author.
Test: fast/borders/border-width-less-then-a-unit-of-pt.html
* css/StyleBuilder.cpp:
ApplyPropetyComputeLength class is replaced with 3 classes :
ApplyPropertyComputeBorderWidth, ApplyPropertyComputeTextSpacing
and ApplyPropertyComputeTransformOriginZ.
(WebCore::ApplyPropertyComputeBorderWidth::applyValue):
(WebCore::ApplyPropertyComputeBorderWidth::createHandler):
This class handles all width properties like border, outline,
etc. These all properties stores value in integer types.
Pixel value rounded of to 1px if value less than 1px and greater
than 0px.
(WebCore):
(ApplyPropertyComputeTextSpacing):
(WebCore::ApplyPropertyComputeTextSpacing::setValue):
(WebCore::ApplyPropertyComputeTextSpacing::applyValue):
(WebCore::ApplyPropertyComputeTextSpacing::createHandler):
This class handles all spacing properties like word-spacing,
letter-spacing etc.
(ApplyPropertyComputeTransformOriginZ):
(WebCore::ApplyPropertyComputeTransformOriginZ::setValue):
(WebCore::ApplyPropertyComputeTransformOriginZ::applyValue):
(WebCore::ApplyPropertyComputeTransformOriginZ::createHandler):
This class handles TransformOriginZ Property.
(WebCore::StyleBuilder::StyleBuilder):
ApplyProprtyComputeLength class usage changed with defined new
classes as per class definition.
2013-04-09 Gabor Loki <loki@webkit.org>
Initialization skipped error on WinCario after r147643
https://bugs.webkit.org/show_bug.cgi?id=114258
Reviewed by Csaba Osztrogonác.
Build fix. Adding extra block statement to avoid error C2362 on WinCario
* platform/win/DragImageCairoWin.cpp:
(WebCore::createDragImageFromImage):
2013-04-09 Jinwoo Song <jinwoo7.song@samsung.com>
[WK2] Remove build warnings for unused parameters
https://bugs.webkit.org/show_bug.cgi?id=114234
Reviewed by Andreas Kling.
Fix build warnings -Wunused-parameter.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::openInMemory):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::CreateIndexAbortOperation::perform):
(WebCore::DeleteIndexAbortOperation::perform):
(WebCore::CreateObjectStoreAbortOperation::perform):
(WebCore::DeleteObjectStoreAbortOperation::perform):
(WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
* Modules/indexeddb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::decodeBool):
(WebCore::IDBLevelDBCoding::KeyPrefix::KeyPrefix):
* Modules/indexeddb/IDBLevelDBCoding.h:
(WebCore::IDBLevelDBCoding::encodeIntSafely):
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::canSet):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::ComparatorAdapter::FindShortestSeparator):
(WebCore::ComparatorAdapter::FindShortSuccessor):
2013-04-09 Thiago Marcos P. Santos <thiago.santos@intel.com>
[WK2] Drop WebProcess capabilities on Linux using seccomp filters
https://bugs.webkit.org/show_bug.cgi?id=89875
Reviewed by Maciej Stachowiak.
Make the DATA_DIR global since it is now needed for WebCore and WebKit2.
It is now used to set a sandbox policy for the EFL port.
* PlatformEfl.cmake:
2013-04-08 Ryosuke Niwa <rniwa@webkit.org>
Remove WebCore.gyp/gypi
https://bugs.webkit.org/show_bug.cgi?id=114239
Reviewed by Benjamin Poulain.
* WebCore.gyp: Removed.
* WebCore.gyp/.gitignore: Removed.
* WebCore.gyp/ConvertFileToHeaderWithCharacterArray.gypi: Removed.
* WebCore.gyp/MakeNames.gypi: Removed.
* WebCore.gyp/WebCore.gyp: Removed.
* WebCore.gyp/mac: Removed.
* WebCore.gyp/mac/adjust_visibility.sh: Removed.
* WebCore.gyp/mac/check_objc_rename.sh: Removed.
* WebCore.gyp/scripts: Removed.
* WebCore.gyp/scripts/action_csspropertynames.py: Removed.
* WebCore.gyp/scripts/action_cssvaluekeywords.py: Removed.
* WebCore.gyp/scripts/action_derivedsourcesallinone.py: Removed.
* WebCore.gyp/scripts/action_makenames.py: Removed.
* WebCore.gyp/scripts/action_useragentstylesheets.py: Removed.
* WebCore.gyp/scripts/rule_bison.py: Removed.
* WebCore.gyp/scripts/supplemental_idl_files.py: Removed.
* WebCore.gypi: Removed.
2013-04-08 Mihai Maerean <mmaerean@adobe.com>
Rollout r147756: performance regression
https://bugs.webkit.org/show_bug.cgi?id=114176
Reviewed by Alexis Menard.
Rolling out the patch for https://bugs.webkit.org/show_bug.cgi?id=74144 "[CSS Regions] Elements in a region
should be assignable to a named flow" because of the performance regression in Parser/html5-full-render.html .
No new tests (because this is a rollout patch).
* dom/Element.cpp:
* dom/Element.h:
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::parentRenderer):
(WebCore::NodeRenderingContext::shouldCreateRenderer):
(WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
* dom/NodeRenderingContext.h:
* dom/PseudoElement.h:
* dom/Text.cpp:
(WebCore::Text::textRendererIsNeeded):
(WebCore::Text::updateTextRenderer):
* dom/Text.h:
* rendering/FlowThreadController.cpp:
* rendering/FlowThreadController.h:
* rendering/RenderObject.h:
* rendering/RenderRegion.h:
* svg/SVGElement.cpp:
* svg/SVGElement.h:
2013-04-08 Benjamin Poulain <benjamin@webkit.org>
Remove HTML Notification
https://bugs.webkit.org/show_bug.cgi?id=114231
Reviewed by Ryosuke Niwa.
The feature is dead. It was only kept in the tree because of chromium.
* Configurations/FeatureDefines.xcconfig:
* Modules/notifications/Notification.cpp:
(WebCore):
(WebCore::Notification::Notification):
* Modules/notifications/Notification.h:
(Notification):
* Modules/notifications/NotificationCenter.h:
(NotificationCenter):
* Modules/notifications/NotificationCenter.idl:
* page/FeatureObserver.h:
2013-04-08 Dean Jackson <dino@apple.com>
Don't try to remove a non-existent snapshot
https://bugs.webkit.org/show_bug.cgi?id=114226
<rdar://problem/13604480>
Reviewed by Darin Adler.
We don't need to trigger the timer to remove a snapshot
if there was never a snapshot displayed.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::setDisplayState): Detect if we're moving from the DisplayingSnapshot state.
(WebCore::HTMLPlugInImageElement::removeSnapshotTimerFired): Guard against a missing renderer.
2013-04-08 Patrick Gansterer <paroga@webkit.org>
Do not define CAN_THEME_URL_ICON for PLATFORM(WIN_CAIRO)
https://bugs.webkit.org/show_bug.cgi?id=108444
Reviewed by Darin Adler.
Image::loadPlatformResource("urlIcon") returns nothing
since r30961 on Windows which makes the code useless.
* loader/icon/IconDatabase.cpp:
2013-04-05 Roger Fong <roger_fong@apple.com>
Build fix.
* platform/win/DragImageWin.cpp:
(WebCore::createDragImageIconForCachedImageFilename):
2013-04-08 Geoffrey Garen <ggaren@apple.com>
Stop #include-ing all of JavaScriptCore in every DOM-related file
https://bugs.webkit.org/show_bug.cgi?id=114220
Reviewed by Sam Weinig.
I separated ScriptWrappableInlines.h from ScriptWrappable.h so
WebCore data types that inherit from ScriptWrappable don't
have to #include all of the infrastructure for accessing that data member.
* ForwardingHeaders/heap/PassWeak.h: Added.
* ForwardingHeaders/heap/WeakInlines.h: Added.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/DOMWrapperWorld.h:
* bindings/js/JSDOMBinding.h:
(JSC):
* bindings/js/JSEventListener.h:
* bindings/js/JSMutationCallback.cpp:
* bindings/js/JSNodeFilterCondition.h:
* bindings/js/ScriptWrappable.h:
(JSC):
(WebCore):
(ScriptWrappable):
* bindings/js/ScriptWrappableInlines.h: Added.
(WebCore):
(WebCore::ScriptWrappable::wrapper):
(WebCore::ScriptWrappable::setWrapper):
(WebCore::ScriptWrappable::clearWrapper):
* bridge/qt/qt_instance.h:
* bridge/qt/qt_runtime.h:
* bridge/runtime_root.cpp:
* bridge/runtime_root.h:
* css/StylePropertySet.cpp:
* dom/LiveNodeList.cpp:
(WebCore::LiveNodeListBase::reportMemoryUsage):
* dom/Node.cpp:
(WebCore::Node::reportMemoryUsage):
* inspector/InspectorDebuggerAgent.cpp:
* inspector/NetworkResourcesData.cpp:
* loader/cache/CachedSVGDocument.cpp:
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::reportMemoryUsage):
2013-04-08 Tiancheng Jiang <tijiang@rim.com>
[BlackBerry] Clean up render theme code.
https://bugs.webkit.org/show_bug.cgi?id=114216
Reviewed by Rob Buis.
BlackBerry PR 323062
Clean up redundant code.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore):
(WebCore::RenderThemeBlackBerry::paintSliderTrack):
* platform/blackberry/RenderThemeBlackBerry.h:
(RenderThemeBlackBerry):
2013-04-08 Arunprasad Rajkumar <arunprasadr@nds.com>
Call Netscape Plugin's toString() and valueOf() instead of providing default implementation
https://bugs.webkit.org/show_bug.cgi?id=113139
Reviewed by Anders Carlsson.
Tests: plugins/npruntime/tostring.html
plugins/npruntime/valueof.html
* bridge/c/c_instance.cpp:
(JSC::Bindings::CInstance::~CInstance):
(JSC::Bindings::CInstance::invokeMethod):
(JSC::Bindings::CInstance::invokeDefaultMethod):
(Bindings):
(JSC::Bindings::CInstance::invokeConstruct):
(JSC::Bindings::CInstance::stringValue):
(JSC::Bindings::CInstance::booleanValue):
(JSC::Bindings::CInstance::valueOf):
(JSC::Bindings::CInstance::toJSPrimitive):
* bridge/c/c_instance.h:
(CInstance):
2013-04-08 Tim Horton <timothy_horton@apple.com>
REGRESSION (r138858): Crash in WebCore::FrameLoader::~FrameLoader() when opening page in a background tab
https://bugs.webkit.org/show_bug.cgi?id=109935
<rdar://problem/13225963>
Reviewed by Brady Eidson.
Previously, we were deciding if a Page could go into
the PageCache by blacklisting certain load types. Instead,
whitelist the load types that we know can go into the cache,
so that newly-added load types are not cached unless
that is explicitly desired.
The crash occurs when a page which is actively loading
is put into the page cache while doing a redirect with
FrameLoadTypeRedirectWithLockedBackForwardList (note that
this is a redirect that was not covered in the blacklist),
and then promptly removed from the page cache, resulting
in resources from the redirect target (the now-active page)
being incorrectly destroyed.
No new tests, only known crash repro case is extremely
timing dependent (and only happens in WebKit2, with tiled
drawing, in background tabs).
* history/PageCache.cpp:
(WebCore::PageCache::canCache):
2013-04-08 Anders Carlsson <andersca@apple.com>
Fix build.
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::continueDidReceiveResponse):
2013-04-08 Anders Carlsson <andersca@apple.com>
Add an async version of ResourceHandle::didReceiveResponse
https://bugs.webkit.org/show_bug.cgi?id=114215
Reviewed by Sam Weinig.
In order to support converting NSURLConnections to NSURLDownloads when using the network process
we need an async version of didReceiveResponse.
* WebCore.exp.in:
* platform/network/ResourceHandleClient.cpp:
(WebCore::ResourceHandleClient::didReceiveResponseAsync):
Just call continueDidReceiveResponse().
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::continueWillSendRequest):
Split up a single condition in two, making it easier to see which assertion fails.
(WebCore::ResourceHandle::continueDidReceiveResponse):
Call -[WebCoreResourceHandleAsOperationQueueDelegate continueDidReceiveResponse].
(WebCore::ResourceHandle::continueShouldUseCredentialStorage):
(WebCore::ResourceHandle::continueCanAuthenticateAgainstProtectionSpace):
(WebCore::ResourceHandle::continueWillCacheResponse):
Split up a single condition in two, making it easier to see which assertion fails.
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate continueDidReceiveResponse]):
Signal the semaphore.
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
Call didReceiveResponseAsync on the main thread and wait on the semaphore.
2013-04-08 Beth Dakin <bdakin@apple.com>
Crash in ScrollingCoordinator::mainThreadScrollingReasons() when going back
https://bugs.webkit.org/show_bug.cgi?id=114214
-and corresponding-
<rdar://problem/13208616>
Reviewed by Anders Carlsson.
When a page is restoring from the page cache, the mainFrame can have a null
Document. So we should null-check the Document here.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
2013-04-08 Andrei Bucur <abucur@adobe.com>
Simplify ContainerNode::removeChildren
https://bugs.webkit.org/show_bug.cgi?id=113517
Reviewed by Darin Adler.
The patch is based on the work made by Elliott Sprehn. He kindly agreed
for me to finalize the last bits and pieces of the fix.
Simplify ContainerNode::removeChildren by merging the loops and removing
willRemoveChildren. This removes two traversals of the children, avoids
refing and derefing all the children once, avoids allocating a second
NodeVector of children, and means we detach() in the same order as
normal removal.
This does mean you can get into an infinite loop with DOMNodeRemoved
listeners by continously adding nodes but this is true in all other browsers
and the current behavior is bad because it means you don't get notified
of nodes added during removal (which other browsers do notify of). This
patch removes the containerNode.html test that originally tested for this
infinite loop and adds a new one that tests that all nodes get notified.
This makes PerformanceTests/Parser/innerHTML-setter.html 2-6% faster.
There's also a new test verifying ranges remain consistent if modified
inside an mutation event handler. Without the patch it's possible to create
a range with boundaries outside of the DOM tree.
Tests: fast/dom/Range/range-remove-children-event.html
fast/events/mutation-during-innerHTML.html
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeChildren):
* dom/Document.cpp:
* dom/Document.h: nodeChildrenWillBeRemoved is not needed any more.
* dom/Range.cpp:
* dom/Range.h: nodeChildrenWillBeRemoved is not needed any more.
2013-04-06 Simon Fraser <simon.fraser@apple.com>
Remove some #includes in headers in rendering code
https://bugs.webkit.org/show_bug.cgi?id=114079
Reviewed by Sam Weinig.
Clean up #includes in RenderObject, RenderLayer etc.
Moved makeMatrixRenderable() into RenderLayer.app, allowing
the removal of a TransformationMatrix.h include.
Make some RenderLayer functions that deal with filters not inline,
to avoid including RenderLayerFilterInfo.h.
* platform/graphics/GraphicsLayer.h:
* platform/graphics/ImageOrientation.cpp:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
* platform/graphics/qt/GraphicsContextQt.cpp:
* platform/graphics/transforms/AffineTransform.cpp:
* platform/graphics/transforms/AffineTransform.h:
* rendering/RenderBoxModelObject.h:
* rendering/RenderLayer.cpp:
(WebCore::makeMatrixRenderable):
(WebCore::RenderLayer::filterRenderer):
(WebCore::RenderLayer::filterInfo):
(WebCore::RenderLayer::ensureFilterInfo):
(WebCore::RenderLayer::removeFilterInfoIfNeeded):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.h:
* rendering/RenderLineBoxList.h:
* rendering/RenderObject.h:
2013-04-08 Robert Hogan <robert@webkit.org>
Unreviewed, rolling out r147850.
http://trac.webkit.org/changeset/147850
https://bugs.webkit.org/show_bug.cgi?id=113706
Changeset crossed paths with 147505, which is the same fix.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::inlineLogicalWidth):
2013-04-08 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/12834449> Crashes in WebSocketChannel::processFrame when processing a ping
https://bugs.webkit.org/show_bug.cgi?id=114178
Reviewed by Brady Eidson.
No test, I could never reproduce even manually.
Calling enqueueRawFrame() could change incoming buffer, so a subsequent skipBuffer()
would operate on wrong assumptions. This happened because enqueueRawFrame() actually
tried to process the queue, and send failure sometimed clears m_buffer.
Fixing this by decoupling enqueuing from sending, and making sure that skipBuffer()
in ping frame processing case is performed at a safe time.
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::send):
(WebCore::WebSocketChannel::startClosingHandshake):
(WebCore::WebSocketChannel::processFrame):
(WebCore::WebSocketChannel::enqueueTextFrame):
(WebCore::WebSocketChannel::enqueueRawFrame):
(WebCore::WebSocketChannel::enqueueBlobFrame):
2013-04-08 Max Vujovic <mvujovic@adobe.com>
REGRESSION (r147502): Animations of CA filters broken
https://bugs.webkit.org/show_bug.cgi?id=114067
Reviewed by Dean Jackson.
Revert r147502 [1] because it broke CA filter animations.
[1]: http://trac.webkit.org/changeset/147502
* platform/graphics/IntRectExtent.h:
(WebCore::IntRectExtent::isZero):
(IntRectExtent):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::needsCompositingLayersRebuiltForOverflow):
(WebCore):
(WebCore::RenderLayer::styleChanged):
* rendering/RenderLayer.h:
(RenderLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateFilters):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::calculateCompositedBounds):
2013-04-08 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Qt] Avoid "QFont::setPixelSize: Pixel size <= 0 (0)"
https://bugs.webkit.org/show_bug.cgi?id=114175
Reviewed by Allan Sandfeld Jensen.
QFont doesn't support a 0-size but WebCore does.
Leave our QFont in its default state in this case to avoid the warning.
* platform/graphics/qt/FontPlatformDataQt.cpp:
(WebCore::FontPlatformData::FontPlatformData):
2013-04-08 Yi Shen <max.hong.shen@gmail.com>
Counter still gets incremented when counter-increment is set to none
https://bugs.webkit.org/show_bug.cgi?id=84985
Reviewed by Darin Adler.
When the counter-increment is set to none, no counters are incremented.
Tests: New test cases added in fast/css/counters/counter-increment-tests.htm
* css/StyleBuilder.cpp:
(WebCore::ApplyPropertyCounter::applyValue):
2013-04-08 Douglas Stockwell <dstockwell@chromium.org>
Crash in WebCore::ElementRuleCollector::collectMatchingRulesForList
https://bugs.webkit.org/show_bug.cgi?id=113458
Reviewed by Darin Adler.
A stylesheet which has been invalidated (type changed from "" or
"text/css") was not correctly removed from the list of active
style sheets when its children are changed.
This change releases StyleElement::m_sheet in advance of calling
DocumentStyleSheetCollection::updateActiveStyleSheets.
(StyleElement::clearSheet calls CSSStyleSheet::clearOwnerNode calls
CSSStyleSheet::didMutate calls Document::styleResolverChanged calls
DocumentStyleSheetCollection::updateActiveStyleSheets)
Test: fast/css/style-element-invalidation-crash.html
* dom/StyleElement.cpp:
(WebCore::StyleElement::clearSheet): Release m_sheet before we
trigger an update of the active style sheets.
2013-04-08 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] DOM objects created wrapping a base class have incorrect GObject type
https://bugs.webkit.org/show_bug.cgi?id=113132
Reviewed by Gustavo Noronha Silva.
Some of the DOM methods can create a concrete instance of another
object, but return a base class. GObject bindings provide custom
kit implementations for Node, Element, Event and EvenTarget, so
any concrete HTMLElement wrapped as an HTMLElement ends up
wrapping the right WebCore object but in the wrong GObject type.
This affects not only HTMLElements, but any polymorphic object
wrapped using a base class.
This patch changes the way objects are created, so that all
classes have their own kit implementation, but for polymorphic
objects the kit implementation of the base class is always
used. The kit method of polymorphic base classes use a generic
wrap method instead of the wrapFoo method like all other
classes. In the static code we provide the implementation of the
generic wrap method for every polimorphic base class, falling back
to their wrapFoo method if the concrete object can't be used to
wrap the object.
Both WebKitDOMBinding and WebKitHTMLElementWrapperFactory now provide
implementations of wrap and have been renamed to WebKitDOMPrivate
and WebKitDOMHTMLPrivate.
* bindings/gobject/GNUmakefile.am:
* bindings/gobject/WebKitDOMBinding.cpp: Removed.
* bindings/gobject/WebKitDOMEventTarget.cpp:
(WebKit::kit): Moved kit implementation from WebKitDOMBinding for
consistency with all other objects that have their own kit.
(WebKit::core): Updated to match the core implementation fo all
other objects.
* bindings/gobject/WebKitDOMEventTargetPrivate.h:
(WebCore):
(WebKit):
* bindings/gobject/WebKitDOMHTMLPrivate.cpp: Added.
(WebKit): Use preprocessor macros to define and set the wrap
functions of all HTML elements, removing a lot of boilerplate code
and making it easier to add new wrap functions in the future.
(WebKit::wrap):
* bindings/gobject/WebKitDOMHTMLPrivate.h: Renamed from Source/WebCore/bindings/gobject/WebKitHTMLElementWrapperFactory.h.
(WebCore):
(WebKit):
* bindings/gobject/WebKitDOMObject.cpp:
* bindings/gobject/WebKitDOMPrivate.cpp: Added.
(WebKit):
(WebKit::wrap):
* bindings/gobject/WebKitDOMPrivate.h: Renamed from Source/WebCore/bindings/gobject/WebKitDOMBinding.h.
(WebCore):
(WebKit):
* bindings/gobject/WebKitHTMLElementWrapperFactory.cpp: Removed.
* bindings/scripts/CodeGeneratorGObject.pm:
(IsBaseType): Helper function to check if a type is a base class.
(GetBaseClass): Helper function to get the base class for a given
parent type.
(GenerateFunction): Remove special case for EventTarget since the
kit prototype of EventTarget is in its private header like all
other objects.
(GenerateCFile): Add a kit implementation for all objects.
(IsPolymorphic): Helper function to check if the given type is the
base class of a polymorphic object.
(Generate): Include the private header of the base class for
polymorphic objects.
(WriteData): Remove the special case for WebKitDOMNode since now
all objects has a kit method.
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
(WebKit::kit):
* bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
(WebKit):
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
(WebKit):
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
(WebKit):
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
(WebKit):
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
(WebKit):
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
(WebKit):
* bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
(WebKit):
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
(WebKit):
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
(WebKit):
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
(WebKit):
* bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
(WebKit::kit):
* bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
(WebKit):
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
(WebKit):
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h:
(WebKit):
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
(WebKit):
* bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestTypedefsPrivate.h:
(WebKit):
2013-04-08 Andras Becsi <andras.becsi@digia.com>
Fix the build with strict GCC 4.8
Unreviewed build fix.
Initialize dragImage to suppress GCC's warning about it being possibly used uninitialized,
which results is a build failure with GCC 4.8 that sets -Werror=maybe-uninitialized.
No new tests needed.
* page/DragController.cpp:
(WebCore::DragController::doImageDrag):
2013-04-08 Zan Dobersek <zdobersek@igalia.com>
Remove the unused LayoutTestSupport class
https://bugs.webkit.org/show_bug.cgi?id=114170
Reviewed by Alexey Proskuryakov.
The LayoutTestSupport class is not used by any port anywhere in the code and should be removed.
No new tests - no changes in functionality.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/LayoutTestSupport.cpp: Removed.
* platform/LayoutTestSupport.h: Removed.
2013-04-08 Zan Dobersek <zdobersek@igalia.com>
Remove WebCore::(enable|disable)SecureTextInput methods
https://bugs.webkit.org/show_bug.cgi?id=114126
Reviewed by Alexey Proskuryakov.
Remove the enableSecureTextInput and disableSecureTextInput methods and all the codepaths leading to them.
These were used only by the Chromium port and are as such not required anymore.
No new tests - no changes in functionality.
* GNUmakefile.list.am:
* WebCore.order:
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
(Document):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::focusedOrActiveStateChanged):
* editing/FrameSelection.h:
(FrameSelection):
* html/PasswordInputType.cpp:
* html/PasswordInputType.h:
(PasswordInputType):
* page/Frame.cpp:
(WebCore::Frame::setDocument):
* platform/SecureTextInput.h: Removed.
2013-04-08 Jer Noble <jer.noble@apple.com>
Unreviewed build fix; r147892 moved an export definition out of
a protective #ifdef, causing a link error on platforms which do
not define that method.
* WebCore.exp.in:
2013-04-08 Brendan Long <b.long@cablelabs.com>
[Qt] Enable text tracks from track elements
https://bugs.webkit.org/show_bug.cgi?id=113522
Reviewed by Jocelyn Turcotte.
No new tests because they're already there. This just enables the feature.
* Target.pri:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* platform/qt/LocalizedStringsQt.cpp:
(WebCore):
(WebCore::textTrackSubtitlesText):
(WebCore::textTrackOffText):
(WebCore::textTrackNoLabelText):
2013-04-08 Sergio Villar Senin <svillar@igalia.com>
[GTK] Toggle OverWrite mode when pressing the Insert key
https://bugs.webkit.org/show_bug.cgi?id=113384
Reviewed by Martin Robinson.
Perform an OverWrite command as a response to the emission of the
toggle-overwrite signal. Due to the nature of the command it will
only do that when being on a richly editable web content.
* platform/gtk/KeyBindingTranslator.cpp:
(WebCore::toggleOverwriteCallback):
2013-04-08 Seokju Kwon <seokju.kwon@gmail.com>
[BlackBerry] Provide more specific error description for SocketStreamError
https://bugs.webkit.org/show_bug.cgi?id=114134
Reviewed by Rob Buis.
Pass the reason of a failure to SocketStreamError instance
and notify it via SocketStreamHandleClient::didFailSocketStream().
* platform/network/blackberry/SocketStreamError.h:
(WebCore::SocketStreamError::SocketStreamError):
* platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
(WebCore::SocketStreamHandle::notifyStatusReceived):
2013-04-08 Youenn Fablet <youennf@gmail.com>
[GTK][EFL] HEAD requests changed to GET after 303 redirection
https://bugs.webkit.org/show_bug.cgi?id=110127
Reviewed by Martin Robinson.
Made shouldRedirectAsGET always return false for HEAD requests.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::shouldRedirectAsGET):
2013-04-08 Carlos Garcia Campos <cgarcia@igalia.com>
DragImage should not depend on Frame and CachedImage
https://bugs.webkit.org/show_bug.cgi?id=21357
Reviewed by Sam Weinig.
Remove Frame and CachedImage dependencies from DragImage.
* dom/Clipboard.h:
(WebCore): Add forward delcaration for CacheImage since it's not
included anymore in DragImage.h.
* page/DragController.cpp:
(WebCore::DragController::startDrag): Use
Frame::dragImageForSelection() and call
dissolveDragImageToFraction() for the returned DragImage. Pass the
font rendering mode to createDragImageForLink, instead of a Frame
that is only used to get the font rendering mode.
(WebCore::DragController::doImageDrag): Get the suggested filename
for the cached image and pass it to
createDragImageIconForCachedImageFilename().
* platform/DragImage.cpp:
(WebCore::createDragImageForLink): Receive a FontRenderingMode
instead of a Frame.
* platform/DragImage.h:
(WebCore): Remove createDragImageForSelection, change
createDragImageForLink to receive a FontRenderingMode instead of a
frame, and rename createDragImageIconForCachedImage as
createDragImageIconForCachedImageFilename since it nows received
the suggested filename of the cached image.
* platform/blackberry/DragImageBlackBerry.cpp:
(WebCore::createDragImageIconForCachedImageFilename): Adapt to API
changes.
* platform/efl/DragImageEfl.cpp:
(WebCore::createDragImageIconForCachedImageFilename): Ditto.
* platform/gtk/DragImageGtk.cpp:
(WebCore::createDragImageIconForCachedImageFilename): Ditto.
* platform/mac/DragImageMac.mm:
(WebCore::dissolveDragImageToFraction): Return early if the passed
image is NULL.
(WebCore::createDragImageIconForCachedImageFilename): Adapt to API
changes.
(WebCore::createDragImageForLink): Ditto.
* platform/qt/DragImageQt.cpp:
(WebCore::createDragImageIconForCachedImageFilename): Ditto.
* platform/win/DragImageWin.cpp:
(WebCore::createDragImageIconForCachedImageFilename): Ditto.
(WebCore::createDragImageForLink): Ditto.
* platform/wx/DragImageWx.cpp:
(WebCore::createDragImageIconForCachedImageFilename): Ditto.
2013-04-08 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
[EFL] REGRESSION(r147743): Use the correct `operator new' override in RenderThemeEfl.
https://bugs.webkit.org/show_bug.cgi?id=114166
Reviewed by Alexis Menard.
r147743 disabled GLOBAL_FAST_MALLOC_NEW on the EFL port, but this has
caused some pixel tests in WK1 to crash.
The problem stems from RenderThemeEfl::applyEdjeRTLState() directly
calling `operator new(size_t)' for some allocations.
RefCounted<RenderTheme>, on its turn, has a WTF_MAKE_FAST_ALLOCATED
call which adds some `operator new' overrides to the class. Our direct
calls in applyEdjeRTLState() made the scope resolution rules choose the
WTF_MAKE_FAST_ALLOCATED version (which uses FastMalloc's allocator),
while WTF::deleteOwnedPtr() calls the global `operator delete' (which
uses the system's free() implementation).
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::applyEdjeRTLState): Explicitly choose the
global `operator new' when calling it.
2013-04-07 Benjamin Poulain <benjamin@webkit.org>
Remove the android code from WebCore
https://bugs.webkit.org/show_bug.cgi?id=114136
Reviewed by Anders Carlsson.
* WebCore.exp.in:
* dom/ViewportArguments.cpp:
(WebCore):
(WebCore::setViewportFeature):
(WebCore::viewportErrorMessageTemplate):
(WebCore::viewportErrorMessageLevel):
* dom/ViewportArguments.h:
(WebCore::ViewportArguments::ViewportArguments):
(ViewportArguments):
(WebCore::ViewportArguments::operator==):
* editing/EditingBehavior.h:
(WebCore::EditingBehavior::shouldMoveCaretToHorizontalBoundaryWhenPastTopOrBottom):
(WebCore::EditingBehavior::shouldAllowSpellingSuggestionsWithoutSelection):
(WebCore::EditingBehavior::shouldNavigateBackOnBackspace):
* editing/EditingBehaviorTypes.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureLongTap):
(WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
* page/Settings.cpp:
(WebCore):
(WebCore::editingBehaviorTypeForPlatform):
* platform/graphics/FontCache.h:
(FontCache):
* platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
(WebCore::FontPlatformData::getRenderStyleForStrike):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::setEditingBehavior):
2013-04-07 Oliver Hunt <oliver@apple.com>
Add bounds checking for WTF::Vector::operator[]
https://bugs.webkit.org/show_bug.cgi?id=89600
Reviewed by Filip Pizlo.
Fix exports
* WebCore.exp.in:
2013-04-07 Benjamin Poulain <benjamin@webkit.org>
Do not allocate static AtomicStrings when searching for alternate font names
https://bugs.webkit.org/show_bug.cgi?id=114110
Reviewed by Geoffrey Garen.
FontCache's alternateFamilyName does some font name substitutions
when a font is not found for a given name.
In the vast majority of cases, no substitutions are made and
alternateFamilyName returns the null atom.
Given the usage the function had a couple of problems:
-It created 6 static AtomicString.
-It did a case insensitive comparison with 6 differents strings
before failing.
This patch aims at solving both issues.
Instead of creating all AtomicString statically, the alternate name
are simply created on the fly as needed. Because the operation is so
unfrequent, and it uses the fast constructor, doing so should not slow
down the function.
To avoid comparing the input to every string, every time, the length of
the input is first evaluated, and we only do the necessary string comparisons.
On x86_64, this reduces the binary size by 2128 bytes.
* platform/graphics/FontCache.cpp:
(WebCore::familyNameEqualIgnoringCase):
When comparing strings, we know:
-The family name is non null.
-The length of both strings is equal.
-The length is not null.
Make the comparison accordingly.
(WebCore::alternateFamilyName):
(WebCore::FontCache::getCachedFontPlatformData):
2013-04-07 Zan Dobersek <zdobersek@igalia.com>
Remove remaining PLATFORM(CHROMIUM)-guarded code in WebCore
https://bugs.webkit.org/show_bug.cgi?id=114081
Remove the remaining PLATFORM(CHROMIUM) build guards. There are still a couple of guards
that most likely apply only to Chromium, like OS(ANDROID) or USE(SKIA_ON_MAC_CHROMIUM),
but removal of these should go into separate patches.
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* config.h:
* history/PageCache.cpp:
(WebCore):
(WebCore::logCanCacheFrameDecision):
(WebCore::logCanCachePageDecision):
(WebCore::PageCache::canCache):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
(WebCore::HTMLCanvasElement::shouldAccelerate):
* html/HTMLCanvasElement.h:
* html/HTMLMediaElement.cpp:
(WebCore::createFileURLForApplicationCacheResource):
(WebCore::HTMLMediaElement::loadResource):
* html/HTMLSelectElement.cpp:
(WebCore):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
* html/MediaDocument.cpp:
(WebCore::MediaDocument::defaultEventHandler):
* html/canvas/EXTDrawBuffers.cpp:
(WebCore::EXTDrawBuffers::satisfiesWebGLRequirements):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::create):
(WebCore::WebGLRenderingContext::WebGLRenderingContext):
(WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
(WebCore::WebGLRenderingContext::platformLayer):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willPaintImpl):
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::didBeginFrame):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::notifyFinished):
* page/FeatureObserver.cpp:
(WebCore::FeatureObserver::~FeatureObserver):
* platform/AsyncFileSystem.cpp:
(WebCore):
* platform/ContextMenu.h:
(ContextMenu):
* platform/ContextMenuItem.h:
* platform/Cursor.h:
* platform/DragData.cpp:
(WebCore):
* platform/DragData.h:
* platform/DragImage.h:
* platform/LocalizedStrings.h:
(WebCore):
* platform/Pasteboard.h:
(Pasteboard):
* platform/PlatformExportMacros.h:
* platform/PlatformInstrumentation.h:
(WebCore::PlatformInstrumentation::willDecodeImage):
(WebCore::PlatformInstrumentation::didDecodeImage):
(WebCore::PlatformInstrumentation::willResizeImage):
(WebCore::PlatformInstrumentation::didResizeImage):
* platform/PlatformMenuDescription.h:
(WebCore):
* platform/PlatformSpeechSynthesizer.h:
(PlatformSpeechSynthesizer):
* platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
(PlatformWheelEvent):
* platform/ScrollAnimator.cpp:
(WebCore):
(WebCore::ScrollAnimator::handleWheelEvent):
* platform/ScrollAnimator.h:
(ScrollAnimator):
* platform/ScrollAnimatorNone.cpp:
(WebCore::ScrollAnimatorNone::scroll):
(WebCore::ScrollAnimatorNone::animationTimerFired):
* platform/ScrollView.cpp:
(WebCore::ScrollView::updateOverhangAreas):
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::scrollPositionChanged):
* platform/Scrollbar.cpp:
* platform/SecureTextInput.cpp: Removed.
* platform/SecureTextInput.h:
(WebCore):
* platform/SuddenTermination.h:
(WebCore):
* platform/Widget.h:
(Widget):
* platform/graphics/ANGLEWebKitBridge.h:
* platform/graphics/BitmapImage.h:
* platform/graphics/FloatPoint.h:
(FloatPoint):
* platform/graphics/FloatRect.h:
(FloatRect):
* platform/graphics/FloatSize.h:
(FloatSize):
* platform/graphics/Font.cpp:
(WebCore):
(WebCore::Font::width):
* platform/graphics/Font.h:
(Font):
* platform/graphics/FontCache.cpp:
(WebCore):
* platform/graphics/FontCache.h:
(FontCache):
* platform/graphics/FontDescription.h:
* platform/graphics/FontPlatformData.cpp:
* platform/graphics/GlyphBuffer.h:
(WebCore):
(WebCore::GlyphBuffer::add):
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawImageBuffer):
* platform/graphics/GraphicsContext3D.h:
(GraphicsContext3D):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::supportsBackgroundColorContent):
* platform/graphics/Icon.h:
(Icon):
* platform/graphics/ImageSource.cpp:
* platform/graphics/ImageSource.h:
(WebCore):
* platform/graphics/IntRect.h:
(IntRect):
(WebCore):
* platform/graphics/MediaPlayer.cpp:
* platform/graphics/PlatformLayer.h:
* platform/graphics/SimpleFontData.h:
(SimpleFontData):
(DerivedFontData):
* platform/graphics/filters/FECustomFilter.cpp:
(WebCore::FECustomFilter::resizeContext):
* platform/graphics/gpu/DrawingBuffer.h:
(WebCore):
(DrawingBuffer):
* platform/graphics/gpu/SharedGraphicsContext3D.cpp:
* platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
(WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
* platform/image-decoders/ImageDecoder.h:
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::LevelDBDatabase::open):
* platform/network/BlobRegistry.cpp:
(WebCore::blobRegistry):
* platform/network/BlobRegistryImpl.cpp:
* platform/network/NetworkStateNotifier.cpp:
* platform/network/NetworkStateNotifier.h:
(NetworkStateNotifier):
* platform/network/NetworkingContext.h:
(NetworkingContext):
* platform/network/ResourceHandleClient.h:
* platform/network/ResourceRequestBase.cpp:
(WebCore):
* platform/text/cf/HyphenationCF.cpp:
* plugins/PluginViewNone.cpp:
(WebCore):
* testing/Internals.cpp:
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createRequest):
2013-04-07 Ed Bartosh <bartosh@gmail.com>
[EFL] --minimal build fails because of incorrect usage of GENERATE_THEME in CMakeLists.txt
https://bugs.webkit.org/show_bug.cgi?id=113902
Unreviewed.
* platform/efl/DefaultTheme/CMakeLists.txt:
Put possibly empty variable after non-empty to avoid space
at the beginning of string parameter
2013-04-07 Patrick Gansterer <paroga@webkit.org>
Add default implementation for KURL::fileSystemPath()
https://bugs.webkit.org/show_bug.cgi?id=108326
Reviewed by Benjamin Poulain.
The code for KURL::fileSystemPath() has been duplicated in different ports.
Add an implementation of this function to KURL.cpp for this ports and
get rid of the very similar port specific implementation files.
* PlatformBlackBerry.cmake:
* PlatformEfl.cmake:
* PlatformWinCE.cmake:
* platform/KURL.cpp:
(WebCore):
(WebCore::KURL::fileSystemPath):
* platform/blackberry/KURLBlackBerry.cpp: Removed.
* platform/efl/KURLEfl.cpp: Removed.
* platform/wince/KURLWinCE.cpp: Removed.
* platform/wx/KURLWx.cpp: Removed.
2013-04-07 Patrick Gansterer <paroga@webkit.org>
Remove references to Skia and V8 from CMake files
https://bugs.webkit.org/show_bug.cgi?id=114130
Reviewed by Geoffrey Garen.
* PlatformBlackBerry.cmake:
2013-04-07 David Kilzer <ddkilzer@apple.com>
Remove the rest of SVG_DOM_OBJC_BINDINGS
<http://webkit.org/b/114112>
Reviewed by Geoffrey Garen.
* Configurations/WebCore.xcconfig:
- Remove EXCLUDED_SOURCE_FILE_NAMES_SVG_DOM_OBJC_BINDINGS. Note
that DOMHTMLIFrameElementPrivate.h should not have been in
this list because the class contained methods other than just
-getSVGDocument.
* WebCore.xcodeproj/project.pbxproj:
- Remove DOMHTMLFrameElementPrivate.h since the only method it
contained was -[DOMHTMLFrameElement getSVGDocument], which was
part of the SVG DOM Objective-C bindings.
* bindings/objc/DOM.mm:
(kitClass):
* bindings/objc/DOMEvents.mm:
(kitClass):
* bindings/objc/ExceptionHandlers.mm:
(WebCore::raiseDOMException):
- Remove code in ENABLE(SVG_DOM_OBJC_BINDINGS).
2013-04-07 Oliver Hunt <oliver@apple.com>
Inspector should display information about non-object exceptions
https://bugs.webkit.org/show_bug.cgi?id=114123
Reviewed by Adele Peterson.
Make use of the stack trace for line information when we're reporting
an exception
* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
2013-04-07 Robert Hogan <robert@webkit.org>
table element may get larger when its contents are recreated
https://bugs.webkit.org/show_bug.cgi?id=111342
Reviewed by Darin Adler.
Remove anonymous table section wrappers when destroying their children.
Test: fast/table/anonymous-table-section-removed.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
2013-04-07 Patrick Gansterer <paroga@webkit.org>
[WIN] Fix build without precompiled header after r145827.
* platform/ContextMenuItem.h:
* platform/PlatformMenuDescription.h:
2013-04-07 Patrick Gansterer <paroga@webkit.org>
Fix compilation of LocaleWin with !ENABLE(CALENDAR_PICKER) && !ENABLE(DATE_AND_TIME_INPUT_TYPES)
* platform/text/win/LocaleWin.cpp:
(WebCore::LocaleWin::ensureShortMonthLabels):
(WebCore):
(WebCore::LocaleWin::ensureMonthLabels):
2013-04-07 Patrick Gansterer <paroga@webkit.org>
[WIN] Fix build without precompiled header after r144216.
* platform/network/cf/FormDataStreamCFNet.h:
* platform/network/mac/FormDataStreamMac.h:
2013-04-07 Ed Bartosh <bartosh@gmail.com>
[EFL] --minimal build fails with error: WebCore::FrameSelection::notifyAccessibilityForSelectionChange()
https://bugs.webkit.org/show_bug.cgi?id=114089
Reviewed by Chris Fleizach.
Wrapped accessibility related code in #if HAVE(ACCESSIBILITY)
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelection):
* editing/FrameSelection.h:
(WebCore):
2013-04-06 Benjamin Poulain <benjamin@webkit.org>
Get rid of skia
https://bugs.webkit.org/show_bug.cgi?id=114108
Reviewed by Anders Carlsson.
* platform/graphics/filters/skia/*: Removed.
* platform/graphics/skia/*: Removed.
* platform/image-decoders/skia/*: Removed.
* platform/image-encoders/skia/*: Removed.
2013-04-06 Benjamin Poulain <benjamin@webkit.org>
Remove the chromium code from platform/graphics/mac
https://bugs.webkit.org/show_bug.cgi?id=114107
Reviewed by Anders Carlsson.
* platform/graphics/mac/FontCacheMac.mm:
(WebCore::FontCache::getFontDataForCharacters):
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/mac/FontComplexTextMac.cpp:
(WebCore::Font::selectionRectForComplexText):
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
* platform/graphics/mac/FontMac.mm:
(WebCore::hasBrokenCTFontGetVerticalTranslationsForGlyphs):
2013-04-06 Benjamin Poulain <benjamin@webkit.org>
Clean platform/graphics/cg of the chromium bits
https://bugs.webkit.org/show_bug.cgi?id=114106
Reviewed by Anders Carlsson.
* platform/graphics/cg/BitmapImageCG.cpp:
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::roundToDevicePixels):
* platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
(GraphicsContextPlatformPrivate):
* platform/graphics/cg/ImageBufferCG.cpp:
* platform/graphics/cg/ImageCG.cpp:
* platform/graphics/cg/PathCG.cpp:
* platform/graphics/cg/PatternCG.cpp:
2013-04-06 Timothy Hatcher <timothy@apple.com>
Remove InjectedScriptHost.evaluateReturnsEvalFunction.
https://webkit.org/b/114099
* inspector/InjectedScriptHost.h:
(InjectedScriptHost):
* inspector/InjectedScriptHost.idl:
* inspector/InjectedScriptSource.js:
(InjectedScript.prototype._evaluateOn):
2013-04-06 Benjamin Poulain <bpoulain@apple.com>
Remove the chromium code from WebCore/platform/mac
https://bugs.webkit.org/show_bug.cgi?id=114104
Reviewed by Sam Weinig.
* platform/mac/NSScrollerImpDetails.h:
(WebCore::isScrollbarOverlayAPIAvailable):
* platform/mac/NSScrollerImpDetails.mm:
* platform/mac/ScrollAnimatorMac.mm:
(-[WebScrollbarPainterDelegate layer]):
(WebCore::scrollAnimationEnabledForSystem):
* platform/mac/ScrollElasticityController.mm:
(WebCore):
* platform/mac/ScrollbarThemeMac.h:
(ScrollbarThemeMac):
* platform/mac/ScrollbarThemeMac.mm:
(WebCore::ScrollbarTheme::nativeTheme):
(WebCore::ScrollbarThemeMac::paint):
(WebCore):
* platform/mac/ThemeMac.mm:
(WebCore::ThemeMac::ensuredView):
* platform/mac/WebCoreNSCellExtras.h:
2013-04-06 Benjamin Poulain <benjamin@webkit.org>
Remove the Chromium code from Mac's FontPlatformData
https://bugs.webkit.org/show_bug.cgi?id=114103
Reviewed by Sam Weinig.
* platform/graphics/FontPlatformData.h:
(WebCore):
(FontPlatformData):
* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::platformDataInit):
(WebCore::FontPlatformData::platformDataAssign):
(WebCore::FontPlatformData::setFont):
(WebCore::FontPlatformData::ctFont):
2013-04-06 Oliver Hunt <oliver@apple.com>
Unify the many and varied stack trace mechanisms, and make the result sane.
https://bugs.webkit.org/show_bug.cgi?id=114072
Reviewed by Filip Pizlo.
Now that we've fleshed out the StackFrames from Interpreter::getStackTrace
WebCore can just ask us for a stack trace rather than implementing its own
stack walking.
* bindings/js/ScriptCallStackFactory.cpp:
(WebCore::createScriptCallStack):
* inspector/ScriptCallFrame.cpp:
(WebCore::ScriptCallFrame::isEqual):
* inspector/ScriptCallFrame.h:
(ScriptCallFrame):
(WebCore::ScriptCallFrame::columnNumber):
2013-04-06 Geoffrey Garen <ggaren@apple.com>
Removed v8 bindings hooks from IDL files
https://bugs.webkit.org/show_bug.cgi?id=114091
Reviewed by Anders Carlsson and Sam Weinig.
* Modules/encryptedmedia/MediaKeySession.idl:
* Modules/filesystem/DOMWindowFileSystem.idl:
* Modules/filesystem/WorkerContextFileSystem.idl:
* Modules/gamepad/NavigatorGamepad.idl:
* Modules/geolocation/NavigatorGeolocation.idl:
* Modules/indexeddb/DOMWindowIndexedDatabase.idl:
* Modules/indexeddb/WorkerContextIndexedDatabase.idl:
* Modules/mediastream/DOMWindowMediaStream.idl:
* Modules/mediastream/NavigatorMediaStream.idl:
* Modules/notifications/DOMWindowNotifications.idl:
* Modules/notifications/NotificationCenter.idl:
* Modules/notifications/WorkerContextNotifications.idl:
* Modules/quota/DOMWindowQuota.idl:
* Modules/speech/DOMWindowSpeech.idl:
* Modules/webaudio/AudioBufferSourceNode.idl:
* Modules/webaudio/AudioContext.idl:
* Modules/webaudio/AudioParam.idl:
* Modules/webaudio/DOMWindowWebAudio.idl:
* Modules/webdatabase/DOMWindowWebDatabase.idl:
* Modules/webdatabase/WorkerContextWebDatabase.idl:
* Modules/websockets/DOMWindowWebSocket.idl:
* Modules/websockets/WorkerContextWebSocket.idl:
* bindings/js/JSDOMBinding.cpp:
* bindings/js/ScriptController.h:
(ScriptController):
* bindings/scripts/test/TestNode.idl:
* bindings/scripts/test/TestObj.idl:
* css/CSSFontFaceLoadEvent.idl:
* css/CSSHostRule.idl:
* css/CSSRule.idl:
* css/CSSRuleList.idl:
* css/CSSStyleDeclaration.idl:
* css/CSSStyleSheet.idl:
* css/CSSValue.idl:
* css/FontLoader.idl:
* css/StyleSheet.idl:
* css/WebKitCSSRegionRule.idl:
* dom/Clipboard.idl:
* dom/CustomElementConstructor.idl:
* dom/CustomEvent.idl:
* dom/DOMNamedFlowCollection.idl:
* dom/DOMStringMap.idl:
* dom/DataTransferItemList.idl:
* dom/Document.idl:
* dom/DocumentFragment.idl:
* dom/Element.idl:
* dom/Event.idl:
* dom/EventTarget.idl:
* dom/MessageChannel.idl:
* dom/MouseEvent.idl:
* dom/MutationRecord.idl:
* dom/NamedNodeMap.idl:
* dom/Node.idl:
* dom/NodeList.idl:
* dom/RequestAnimationFrameCallback.idl:
* dom/ShadowRoot.idl:
* dom/Text.idl:
* history/HistoryItem.cpp:
(WebCore::HistoryItem::encodeBackForwardTreeNode):
(WebCore::HistoryItem::decodeBackForwardTree):
* html/DOMSettableTokenList.idl:
* html/DOMTokenList.idl:
* html/HTMLAllCollection.idl:
* html/HTMLAppletElement.idl:
* html/HTMLCollection.idl:
* html/HTMLDialogElement.idl:
* html/HTMLDivElement.idl:
* html/HTMLDocument.idl:
* html/HTMLElement.idl:
* html/HTMLEmbedElement.idl:
* html/HTMLFormControlsCollection.idl:
* html/HTMLFormElement.idl:
* html/HTMLImageElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLMediaElement.idl:
* html/HTMLObjectElement.idl:
* html/HTMLOptionsCollection.idl:
* html/HTMLSelectElement.idl:
* html/HTMLSpanElement.idl:
* html/HTMLStyleElement.idl:
* html/HTMLTemplateElement.idl:
* html/HTMLTrackElement.idl:
* html/HTMLUnknownElement.idl:
* html/MediaKeyError.idl:
* html/MediaKeyEvent.idl:
* html/MicroDataItemValue.idl:
* html/canvas/CanvasRenderingContext2D.idl:
* html/canvas/DOMPath.idl:
* html/shadow/HTMLContentElement.idl:
* html/shadow/HTMLShadowElement.idl:
* html/track/TextTrack.idl:
* inspector/InjectedScriptHost.idl:
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
(WebCore::InspectorIndexedDBAgent::requestDatabase):
(WebCore::InspectorIndexedDBAgent::requestData):
(WebCore::InspectorIndexedDBAgent::clearObjectStore):
(WebCore):
* loader/EmptyClients.h:
(EmptyFrameLoaderClient):
* loader/FrameLoaderClient.h:
(FrameLoaderClient):
* page/Console.idl:
* page/DOMWindow.idl:
* page/DOMWindowPagePopup.idl:
* page/History.idl:
* page/Location.idl:
* platform/graphics/skia/PatternSkia.cpp:
(WebCore::Pattern::platformDestroy):
(WebCore::Pattern::platformPattern):
* testing/Internals.cpp:
(WebCore::Internals::serializeObject):
(WebCore::Internals::deserializeBuffer):
2013-04-06 Zan Dobersek <zdobersek@igalia.com>
Remove the USE(SKIA_ON_MAC_CHROMIUM) guards
https://bugs.webkit.org/show_bug.cgi?id=114084
Reviewed by Ryosuke Niwa.
Remove the USE(SKIA_ON_MAC_CHROMIUM) guards. The guards were enabled only
for the Chromium port via the features.gypi file that was removed in r147714.
* platform/graphics/FloatPoint.h:
(FloatPoint):
* platform/graphics/FloatRect.h:
(FloatRect):
* platform/graphics/FloatSize.h:
(FloatSize):
* platform/graphics/FontPlatformData.cpp:
(WebCore):
* platform/graphics/FontPlatformData.h:
(FontPlatformData):
(WebCore::FontPlatformData::hash):
* platform/graphics/IntPoint.h:
(IntPoint):
* platform/graphics/IntRect.h:
(IntRect):
(WebCore):
* platform/graphics/IntSize.h:
(IntSize):
* platform/graphics/SimpleFontData.h:
(SimpleFontData):
(WebCore::SimpleFontData::widthForGlyph):
* platform/graphics/cg/FloatPointCG.cpp:
* platform/graphics/cg/FloatRectCG.cpp:
* platform/graphics/cg/FloatSizeCG.cpp:
* platform/graphics/cg/IntPointCG.cpp:
* platform/graphics/cg/IntRectCG.cpp:
* platform/graphics/cg/IntSizeCG.cpp:
* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::~FontCustomPlatformData):
(WebCore::createFontCustomPlatformData):
* platform/graphics/mac/FontCustomPlatformData.h:
(WebCore::FontCustomPlatformData::FontCustomPlatformData):
(FontCustomPlatformData):
2013-04-06 Robert Hogan <robert@webkit.org>
REGRESSION(r142152): Text wraps in menu
https://bugs.webkit.org/show_bug.cgi?id=113706
Reviewed by David Hyatt.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::inlineLogicalWidth): Empty inline elements add their inline border/padding/margin to the width of the
line when we iterate through them in nextLineBreak(), so no need to add them again here when climbing back up
from their first child looking for border/padding/margin to add. (An empty inline element can have floating children.)
2013-04-06 Geoffrey Garen <ggaren@apple.com>
Rolled out 147820 and 147818 because they caused plugins tests to ASSERT
https://bugs.webkit.org/show_bug.cgi?id=114094
Reviewed by Anders Carlsson.
* bindings/js/ScriptCallStackFactory.cpp:
(WebCore::createScriptCallStack):
* inspector/ScriptCallFrame.cpp:
(WebCore::ScriptCallFrame::isEqual):
* inspector/ScriptCallFrame.h:
(ScriptCallFrame):
(WebCore::ScriptCallFrame::lineNumber):
2013-04-06 Anders Carlsson <andersca@apple.com>
Remove VisitedLinks.{cpp|h}
https://bugs.webkit.org/show_bug.cgi?id=114095
Reviewed by Geoffrey Garen.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/VisitedLinks.cpp: Removed.
* platform/VisitedLinks.h: Removed.
2013-04-06 Anders Carlsson <andersca@apple.com>
Another build fix.
Actually remove the right files from WebCore.vcxproj.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
2013-04-06 Anders Carlsson <andersca@apple.com>
Fix build.
ThreadableLoaderClientWrapper was still calling didReceiveCachedMetadata; I didn't notice it
because the file was not in the Xcode project so I went ahead and added it.
* WebCore.xcodeproj/project.pbxproj:
* loader/ThreadableLoaderClientWrapper.h:
2013-04-06 Anders Carlsson <andersca@apple.com>
Remove dead CachedMetadata code
https://bugs.webkit.org/show_bug.cgi?id=114093
Reviewed by Geoffrey Garen.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* loader/CachedMetadata.cpp: Removed.
* loader/CachedMetadata.h: Removed.
* loader/ResourceLoader.h:
(ResourceLoader):
* loader/SubresourceLoader.cpp:
* loader/SubresourceLoader.h:
(SubresourceLoader):
* loader/ThreadableLoaderClient.h:
* loader/WorkerThreadableLoader.cpp:
* loader/WorkerThreadableLoader.h:
(MainThreadBridge):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::reportMemoryUsage):
* loader/cache/CachedResource.h:
(WebCore):
(CachedResource):
* platform/network/ResourceHandle.cpp:
* platform/network/ResourceHandle.h:
(ResourceHandle):
* platform/network/ResourceHandleClient.h:
(ResourceHandleClient):
2013-04-06 Anders Carlsson <andersca@apple.com>
Remove more dead Chromium code
https://bugs.webkit.org/show_bug.cgi?id=114090
Reviewed by Alp Toker.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/StatsCounter.cpp: Removed.
* platform/StatsCounter.h: Removed.
2013-04-06 Patrick Gansterer <paroga@webkit.org>
Build fix for WinCE after r143046.
* platform/graphics/wince/ImageWinCE.cpp:
(WebCore::Image::drawPattern):
2013-04-06 Mark Salisbury <mark.salisbury@hp.com>
[WinCE] Do not call missing method createDragImageFromImage()
https://bugs.webkit.org/show_bug.cgi?id=110421
* platform/win/ClipboardWin.cpp:
2013-04-05 Mark Salisbury <mark.salisbury@hp.com>
[WinCE] Compile missing NetworkStorageSession methods
https://bugs.webkit.org/show_bug.cgi?id=110419
* PlatformWinCE.cmake:
2013-04-05 Kangil Han <kangil.han@samsung.com>
Prefer prefix ++/-- operators for non-primitive types
https://bugs.webkit.org/show_bug.cgi?id=114033
Reviewed by Alexey Proskuryakov.
Post ++/-- creates a copy of current value and it is not necessary, so use prefix instead.
* bindings/js/Dictionary.cpp:
(WebCore::Dictionary::getOwnPropertiesAsStringHashMap):
(WebCore::Dictionary::getOwnPropertyNames):
* bindings/js/ScriptCallStackFactory.cpp:
(WebCore::createScriptCallStack):
* dom/ContainerNode.cpp:
(WebCore::willRemoveChildren):
* dom/Range.cpp:
(WebCore::Range::processAncestorsAndTheirSiblings):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::detachChildren):
* platform/graphics/gpu/LoopBlinnPathProcessor.cpp:
(WebCore):
(WebCore::LoopBlinnPathProcessor::subdivideCurvesSlow):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintDocumentMarkers):
* xml/XPathFunctions.cpp:
(WebCore::XPath::Function::setArguments):
2013-04-05 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Add support for the simple case of shape-margin polygonal shape-outside
https://bugs.webkit.org/show_bug.cgi?id=113726
Reviewed by Dirk Schulze.
Add support for computing the shape-outside shape-margin boundary for a polygon.
This change is similar to the one added for padding polygons, see bug 112592.
The algorithm used for computing the margin boundary is is provisional. It works
correctly for convex polygons and will work correctly for non self-intersecting
polygons whose margin boundary is the same shape as the original polygon.
Tests: fast/exclusions/shape-outside-floats/shape-outside-floats-diamond-margin-polygon.html
fast/exclusions/shape-outside-floats/shape-outside-floats-left-margin-polygon.html
fast/exclusions/shape-outside-floats/shape-outside-floats-right-margin-polygon.html
* rendering/ExclusionPolygon.cpp:
(WebCore::appendArc): Generalized this method a little, to deal with margin and padding connecting arcs.
(WebCore::computeShapePaddingBounds): Pass the new appendArc() parameter.
(WebCore::computeShapeMarginBounds): Compute the margin boundary for a polygon, per the constraints summarized above.
(WebCore::ExclusionPolygon::getExcludedIntervals): Use the margin polygon for this computation.
2013-04-05 Andy Estes <aestes@apple.com>
Returning NULL from willSendRequest should cancel a load from the memory cache
https://bugs.webkit.org/show_bug.cgi?id=114075
Reviewed by Darin Adler.
When a resource is loaded from the memory cache and the client does not
implement the didLoadResourceFromMemoryCache delegate method, WebKit
synthesizes the typical sequence of resource load callbacks. One of
these is willSendRequest, which gives the client the opportunity to
modify the request. We should respect these modifications.
Handling any arbitrary modification is difficult given where in the
loading process we check the memory cache (see <http://webkit.org/b/113251>),
but we can handle the common case where the client cancels the load by
returning a NULL request.
Test: fast/loader/willsendrequest-returns-null-for-memory-cache-load.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::willLoadMediaElementURL): Passed request to sendRemainingDelegateMessages.
(WebCore::FrameLoader::commitProvisionalLoad): Ditto.
(WebCore::FrameLoader::loadResourceSynchronously): Ditto.
(WebCore::FrameLoader::loadedResourceFromMemoryCache): Added an out
parameter to pass back a request potentially modified by
requestFromDelegate, which is also passed to sendRemainingDelegateMessages.
* loader/FrameLoader.h:
* loader/ResourceLoadNotifier.cpp:
(WebCore::ResourceLoadNotifier::dispatchDidFailLoading): Added a
function to dispatch didFailLoading and to call the correct InspectorInstrumentation.
(WebCore::ResourceLoadNotifier::sendRemainingDelegateMessages): If the
request is NULL, call dispatchDidFailLoading and return. This matches
the delegate callback sequence of a non memory cache load that is
cancelled by willSendRequest.
* loader/ResourceLoadNotifier.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::shouldContinueAfterNotifyingLoadedFromMemoryCache):
Return false if the memory cache load is cancelled by the client.
(WebCore::CachedResourceLoader::requestResource): Return early if
shouldContinueAfterNotifyingLoadedFromMemoryCache is false.
2013-04-05 Chris Fleizach <cfleizach@apple.com>
AX: VoiceOver can't press on items
https://bugs.webkit.org/show_bug.cgi?id=114071
Reviewed by Tim Horton.
The AXScrollToVisibleAction should not be used on earlier Mac versions because
it confuses VoiceOver.
Updated existing tests.
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityActionNames]):
2013-04-05 Anders Carlsson <andersca@apple.com>
Stop building Objective-C bindings for the SVG DOM
https://bugs.webkit.org/show_bug.cgi?id=114076
Reviewed by Geoffrey Garen.
The DOM SVG Objective-C bindings have never been exposed as API, and not building them cuts WebCore build by 10%.
* Configurations/FeatureDefines.xcconfig:
* Configurations/WebCore.xcconfig:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/DOM.mm:
(WebCore::createElementClassMap):
(kitClass):
* bindings/objc/DOMCSS.mm:
(kitClass):
* bindings/objc/DOMEvents.mm:
* bindings/objc/DOMSVG.h: Removed.
* bindings/objc/DOMSVGException.h: Removed.
* bindings/objc/DOMSVGPathSegInternal.mm: Removed.
* bindings/objc/ExceptionHandlers.mm:
* html/HTMLEmbedElement.idl:
* html/HTMLFrameElement.idl:
* html/HTMLIFrameElement.idl:
* html/HTMLObjectElement.idl:
2013-04-05 Oliver Hunt <oliver@apple.com>
Unify the many and varied stack trace mechanisms, and make the result sane.
https://bugs.webkit.org/show_bug.cgi?id=114072
Reviewed by Filip Pizlo.
Now that we've fleshed out the StackFrames from Interpreter::getStackTrace
WebCore can just ask us for a stack trace rather than implementing its own
stack walking.
* bindings/js/ScriptCallStackFactory.cpp:
(WebCore::createScriptCallStack):
* inspector/ScriptCallFrame.cpp:
(WebCore::ScriptCallFrame::isEqual):
* inspector/ScriptCallFrame.h:
(ScriptCallFrame):
(WebCore::ScriptCallFrame::columnNumber):
2013-04-05 Beth Dakin <bdakin@apple.com>
Setting a header or footer should cause a relayout
https://bugs.webkit.org/show_bug.cgi?id=114070
Reviewed by Sam Weinig.
Mark the RenderView as needing layout in order to adjust everything for the new
header/footer.
* page/FrameView.cpp:
(WebCore::FrameView::setHeaderHeight):
(WebCore::FrameView::setFooterHeight):
2013-04-05 Chris Fleizach <cfleizach@apple.com>
AX: Make SVG Group containers accessible elements
https://bugs.webkit.org/show_bug.cgi?id=113939
Reviewed by Simon Fraser.
SVG group containers are currently not exposed in the AX tree.
When an SVG element has a <title> child, that is not being used for the AX label.
When hit-testing, from Accessibility, SVG groups are never returned.
All these issues are fixed for Mac and iOS.
There are two tests because right now iOS skips all the top-level accessibility tests
due to fundamental architectural differences.
Tests: accessibility/svg-group-element-with-title.html
platform/iphone-simulator/accessibility/svg-group-element-with-title.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::alternativeText):
(WebCore::AccessibilityNodeObject::accessibilityDescription):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityHitTest):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper isSVGGroupElement]):
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
(-[WebAccessibilityObjectWrapper accessibilityClickPoint]):
* rendering/HitTestRequest.h:
Add a new option, AccessibilityHitTest, that will allow us to override normal behavior.
* rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::nodeAtFloatPoint):
Allow a SVG group to be the node at a point, for accessibility hit tests.
2013-04-05 Chris Fleizach <cfleizach@apple.com>
WebSpeech: event.elapsedTime is always 1364484608
https://bugs.webkit.org/show_bug.cgi?id=114045
Reviewed by Tim Horton.
We were calculating elapsed time incorrectly.
Test: platform/mac/fast/speechsynthesis/speech-synthesis-elapsed-time.html
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::fireEvent):
2013-04-05 Chris Fleizach <cfleizach@apple.com>
WebSpeech: crash at WebCore::SpeechSynthesis::speak
https://bugs.webkit.org/show_bug.cgi?id=113937
Reviewed by Tim Horton.
Protect against the case when invalid data is passed in.
Test: platform/mac/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::speak):
* Modules/speech/SpeechSynthesisUtterance.cpp:
(WebCore::SpeechSynthesisUtterance::setVoice):
2013-04-05 Antti Koivisto <antti@apple.com>
Throttle compositing layer flushes during page loading
https://bugs.webkit.org/show_bug.cgi?id=113786
Reviewed by Simon Fraser.
Page content can change rapidly during page loading triggering excessive layer flushes and repainting. We should avoid this unnecessary work.
This patch reduces layer flushes (and painting) during loading by 50-70% on many popular pages.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadProgressingStatusChanged):
* loader/FrameLoader.h:
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::ProgressTracker):
(WebCore::ProgressTracker::reset):
(WebCore::ProgressTracker::progressStarted):
(WebCore::ProgressTracker::finalProgressComplete):
(WebCore::ProgressTracker::isLoadProgressing):
(WebCore::ProgressTracker::progressHeartbeatTimerFired):
* loader/ProgressTracker.h:
Track if the document load is progressing. This is done with a heartbeat timer that checks every 100ms if we have received more than 1k of data.
If four heartbeats pass without progress then we consider the load stalled.
* page/FrameView.cpp:
(WebCore::FrameView::resetDeferredRepaintDelay):
Disable throttling temporary on user interaction so the page stays as responsive as possible even during loading.
(WebCore::FrameView::updateLayerFlushThrottling):
Enable throttling when the load is progressing, disable otherwise.
* page/FrameView.h:
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::canThrottleLayerFlush):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
(WebCore::GraphicsLayerCA::canThrottleLayerFlush):
Don't throttle if new tiles have been added by the tile controller. They may have stale content and need to be flushed immediately.
(WebCore::GraphicsLayerCA::noteLayerPropertyChanged):
Set the new TilesAdded change flag.
* platform/graphics/ca/GraphicsLayerCA.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::notifyFlushRequired):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::notifyFlushRequired):
(WebCore::RenderLayerCompositor::scheduleLayerFlushNow):
Factor the actual flush scheduling to private function.
(WebCore::RenderLayerCompositor::scheduleLayerFlush):
Mark the compositor for flush and return without flushing if the flushes are currently being throttled.
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
After a flush, start the throtting timer (currently 0.5s) coalescing the subsequent flushes.
(WebCore::RenderLayerCompositor::didChangeVisibleRect):
Do immediately flush if needed.
(WebCore::RenderLayerCompositor::setLayerFlushThrottlingEnabled):
Flush immediately if disabled.
(WebCore::RenderLayerCompositor::disableLayerFlushThrottlingTemporarilyForInteraction):
(WebCore::RenderLayerCompositor::isThrottlingLayerFlushes):
(WebCore::RenderLayerCompositor::startLayerFlushTimerIfNeeded):
(WebCore::RenderLayerCompositor::layerFlushTimerFired):
Flush when the timer fires timer.
* rendering/RenderLayerCompositor.h:
2013-04-05 Benjamin Poulain <benjamin@webkit.org>
Clean the chromium bits of WebCore's WebDatabase
https://bugs.webkit.org/show_bug.cgi?id=114010
Reviewed by Ryosuke Niwa.
* Modules/webdatabase/AbstractDatabaseServer.h:
* Modules/webdatabase/ChangeVersionWrapper.cpp:
(WebCore::ChangeVersionWrapper::performPreflight):
(WebCore::ChangeVersionWrapper::performPostflight):
* Modules/webdatabase/Database.cpp:
* Modules/webdatabase/Database.h:
(Database):
* Modules/webdatabase/DatabaseBackend.cpp:
(WebCore::DatabaseBackend::openAndVerifyVersion):
* Modules/webdatabase/DatabaseBackendBase.cpp:
(WebCore::DoneCreatingDatabaseOnExitCaller::~DoneCreatingDatabaseOnExitCaller):
(WebCore::DatabaseBackendBase::performOpenAndVerify):
(WebCore::DatabaseBackendBase::getActualVersionForTransaction):
(WebCore::DatabaseBackendBase::incrementalVacuumIfNeeded):
* Modules/webdatabase/DatabaseBackendBase.h:
(DatabaseBackendBase):
* Modules/webdatabase/DatabaseBackendSync.cpp:
(WebCore::DatabaseBackendSync::openAndVerifyVersion):
* Modules/webdatabase/DatabaseContext.cpp:
(WebCore::DatabaseContext::databaseExceededQuota):
* Modules/webdatabase/DatabaseManager.cpp:
* Modules/webdatabase/DatabaseManager.h:
(DatabaseManager):
* Modules/webdatabase/DatabaseServer.cpp:
(WebCore::DatabaseServer::initialize):
(WebCore::DatabaseServer::setClient):
(WebCore::DatabaseServer::databaseDirectoryPath):
(WebCore::DatabaseServer::setDatabaseDirectoryPath):
(WebCore::DatabaseServer::openDatabase):
* Modules/webdatabase/DatabaseServer.h:
* Modules/webdatabase/DatabaseSync.cpp:
(WebCore::DatabaseSync::changeVersion):
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::retryCanEstablishDatabase):
* Modules/webdatabase/DatabaseTracker.h:
(WebCore):
(DatabaseTracker):
* Modules/webdatabase/SQLStatementBackend.cpp:
(WebCore::SQLStatementBackend::execute):
(WebCore::SQLStatementBackend::setDatabaseDeletedError):
(WebCore::SQLStatementBackend::setVersionMismatchedError):
(WebCore::SQLStatementBackend::setFailureDueToQuota):
* Modules/webdatabase/SQLStatementBackend.h:
(SQLStatementBackend):
* Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::deliverTransactionCallback):
(WebCore::SQLTransaction::deliverStatementCallback):
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::executeSQL):
(WebCore::SQLTransactionBackend::openTransactionAndPreflight):
(WebCore::SQLTransactionBackend::runCurrentStatementAndGetNextState):
(WebCore::SQLTransactionBackend::nextStateForCurrentStatementError):
(WebCore::SQLTransactionBackend::postflightAndCommit):
(WebCore::SQLTransactionBackend::acquireOriginLock):
(WebCore::SQLTransactionBackend::releaseOriginLockIfNeeded):
* Modules/webdatabase/SQLTransactionBackend.h:
(SQLTransactionBackend):
* Modules/webdatabase/SQLTransactionBackendSync.cpp:
(WebCore::SQLTransactionBackendSync::begin):
(WebCore::SQLTransactionBackendSync::commit):
2013-04-05 Geoffrey Garen <ggaren@apple.com>
Made USE(JSC) unconditional
https://bugs.webkit.org/show_bug.cgi?id=114058
Reviewed by Anders Carlsson.
* Modules/webdatabase/Database.cpp:
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::executeIfJavaScriptURL):
* bindings/js/JavaScriptCallFrame.cpp:
* bindings/js/JavaScriptCallFrame.h:
* bindings/scripts/InFilesCompiler.pm:
(generateHeadersHeader):
* css/MediaQueryListListener.cpp:
(WebCore::MediaQueryListListener::queryChanged):
* dom/ContainerNode.cpp:
(WebCore::dispatchChildRemovalEvents):
* dom/EventListener.h:
(EventListener):
(WebCore::EventListener::visitJSFunction):
* dom/EventTarget.h:
(EventTarget):
(WebCore):
(WebCore::EventTarget::visitJSEventListeners):
* dom/Node.cpp:
* dom/Node.h:
* dom/ScriptExecutionContext.cpp:
(WebCore):
(WebCore::ScriptExecutionContext::globalData):
* dom/ScriptExecutionContext.h:
(ScriptExecutionContext):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createImageBuffer):
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::notifyFinished):
* inspector/InjectedScriptHost.h:
(InjectedScriptHost):
(WebCore::InjectedScriptHost::evaluateReturnsEvalFunction):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
* page/Frame.cpp:
* page/Settings.cpp:
(WebCore):
(WebCore::Settings::shouldRespectPriorityInCSSAttributeSetters):
* page/Settings.h:
(Settings):
* plugins/PluginView.cpp:
(WebCore::PluginView::start):
(WebCore::PluginView::stop):
(WebCore::PluginView::performRequest):
(WebCore::PluginView::npObject):
(WebCore):
(WebCore::PluginView::bindingInstance):
(WebCore::PluginView::privateBrowsingStateChanged):
* plugins/PluginView.h:
(PluginView):
* plugins/PluginViewBase.h:
(PluginViewBase):
(WebCore::PluginViewBase::scriptObject):
* plugins/PluginViewNone.cpp:
(WebCore):
(WebCore::PluginView::bindingInstance):
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::setNPWindowIfNeeded):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::dropProtection):
2013-04-05 Roger Fong <roger_fong@apple.com>
More VS2010 solution makefile fixes.
<rdar://problem/13588964>
* WebCore.vcxproj/WebCore.make:
2013-04-05 Ed Bartosh <bartosh@gmail.com>
[EFL] --no-tiled-backing-store build fails because of not used #if USE(ACCELERATED_COMPOSITING)
https://bugs.webkit.org/show_bug.cgi?id=113627
Reviewed by Simon Fraser.
Wrapped code with #if USE(ACCELERATED_COMPOSITING) to make it compilable
with --no-tiled-backing-store build option:
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::animate):
* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::animate):
* platform/graphics/TextTrackRepresentation.cpp:
(NullTextTrackRepresentation):
* platform/graphics/TextTrackRepresentation.h:
(TextTrackRepresentation):
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setHeaderHeight):
(WebCore::Internals::setFooterHeight):
2013-04-05 Ryosuke Niwa <rniwa@webkit.org>
Remove the remaining Chromium files from WebCore
https://bugs.webkit.org/show_bug.cgi?id=114055
Reviewed by Benjamin Poulain.
Removed.
* Resources/pagepopups/chromium: Removed.
* Resources/pagepopups/chromium/calendarPickerChromium.css: Removed.
* Resources/pagepopups/chromium/pickerCommonChromium.css: Removed.
* html/shadow/MediaControlsChromium.cpp: Removed.
* html/shadow/MediaControlsChromium.h: Removed.
* html/shadow/MediaControlsChromiumAndroid.cpp: Removed.
* html/shadow/MediaControlsChromiumAndroid.h: Removed.
2013-04-05 Ryosuke Niwa <rniwa@webkit.org>
Remove Chromium code from WebCore/css
https://bugs.webkit.org/show_bug.cgi?id=114052
Reviewed by Benjamin Poulain.
Removed.
* css/mediaControlsChromium.css: Removed.
* css/mediaControlsChromiumAndroid.css: Removed.
* css/themeChromium.css: Removed.
* css/themeChromiumAndroid.css: Removed.
* css/themeChromiumLinux.css: Removed.
* css/themeChromiumSkia.css: Removed.
2013-04-05 Brendan Long <self@brendanlong.com>
[GStreamer] Segfault when attempting to install missing plugins
https://bugs.webkit.org/show_bug.cgi?id=114046
gst_install_plugins_async expects a null terminated list, but we weren't
adding a null terminator.
Reviewed by Philippe Normand.
No new tests since this just fixes a segfault.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
2013-04-05 Benjamin Poulain <benjamin@webkit.org>
Remove the chromium code for WebCore's indexeddb module
https://bugs.webkit.org/show_bug.cgi?id=114004
Reviewed by Ryosuke Niwa.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::IDBBackingStore):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::openConnection):
(WebCore::IDBDatabaseBackendImpl::close):
* Modules/indexeddb/IDBFactoryBackendInterface.cpp:
* Modules/indexeddb/IDBTracing.h:
2013-04-05 Ryosuke Niwa <rniwa@webkit.org>
Cleanup after git svn left empty directories.
* loader/chromium: Removed.
* page/chromium: Removed.
* page/scrolling/chromium: Removed.
* plugins/chromium: Removed.
2013-04-05 Ryosuke Niwa <rniwa@webkit.org>
Actually delete platform/chromium.
* platform/chromium: Removed.
2013-04-05 Ryosuke Niwa <rniwa@webkit.org>
Remove Chromium code from WebCore/platform
https://bugs.webkit.org/show_bug.cgi?id=114014
Reviewed by Anders Carlsson.
Removed.
* platform/audio/chromium: Removed.
* platform/audio/chromium/AudioBusChromium.cpp: Removed.
* platform/audio/chromium/AudioDestinationChromium.cpp: Removed.
* platform/audio/chromium/AudioDestinationChromium.h: Removed.
* platform/audio/chromium/FFTFrameOpenMAXDLAndroid.cpp: Removed.
* platform/graphics/FontPlatformData.h:
* platform/graphics/chromium: Removed.
* platform/graphics/chromium/AnimationTranslationUtil.cpp: Removed.
* platform/graphics/chromium/AnimationTranslationUtil.h: Removed.
* platform/graphics/chromium/Canvas2DLayerBridge.cpp: Removed.
* platform/graphics/chromium/Canvas2DLayerBridge.h: Removed.
* platform/graphics/chromium/Canvas2DLayerManager.cpp: Removed.
* platform/graphics/chromium/Canvas2DLayerManager.h: Removed.
* platform/graphics/chromium/CrossProcessFontLoading.h: Removed.
* platform/graphics/chromium/CrossProcessFontLoading.mm: Removed.
* platform/graphics/chromium/DeferredImageDecoder.cpp: Removed.
* platform/graphics/chromium/DeferredImageDecoder.h: Removed.
* platform/graphics/chromium/DiscardablePixelRef.cpp: Removed.
* platform/graphics/chromium/DiscardablePixelRef.h: Removed.
* platform/graphics/chromium/DrawingBufferChromium.cpp: Removed.
* platform/graphics/chromium/Extensions3DChromium.h: Removed.
* platform/graphics/chromium/FontCacheAndroid.cpp: Removed.
* platform/graphics/chromium/FontCacheChromiumLinux.cpp: Removed.
* platform/graphics/chromium/FontCacheChromiumWin.cpp: Removed.
* platform/graphics/chromium/FontChromiumWin.cpp: Removed.
* platform/graphics/chromium/FontPlatformData.h: Removed.
* platform/graphics/chromium/FontPlatformDataChromiumWin.cpp: Removed.
* platform/graphics/chromium/FontPlatformDataChromiumWin.h: Removed.
* platform/graphics/chromium/FontRenderStyle.h: Removed.
* platform/graphics/chromium/FontUtilsChromiumWin.cpp: Removed.
* platform/graphics/chromium/FontUtilsChromiumWin.h: Removed.
* platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp: Removed.
* platform/graphics/chromium/GraphicsLayerChromium.cpp: Removed.
* platform/graphics/chromium/GraphicsLayerChromium.h: Removed.
* platform/graphics/chromium/IconChromium.cpp: Removed.
* platform/graphics/chromium/IconChromiumAndroid.cpp: Removed.
* platform/graphics/chromium/ImageBufferDataSkia.h: Removed.
* platform/graphics/chromium/ImageChromium.cpp: Removed.
* platform/graphics/chromium/ImageDecodingStore.cpp: Removed.
* platform/graphics/chromium/ImageDecodingStore.h: Removed.
* platform/graphics/chromium/ImageFrameGenerator.cpp: Removed.
* platform/graphics/chromium/ImageFrameGenerator.h: Removed.
* platform/graphics/chromium/LayerPainterChromium.h: Removed.
* platform/graphics/chromium/LazyDecodingPixelRef.cpp: Removed.
* platform/graphics/chromium/LazyDecodingPixelRef.h: Removed.
* platform/graphics/chromium/MediaPlayerPrivateChromium.cpp: Removed.
* platform/graphics/chromium/MediaPlayerPrivateChromium.h: Removed.
* platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp: Removed.
* platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h: Removed.
* platform/graphics/chromium/PlatformIcon.h: Removed.
* platform/graphics/chromium/ScaledImageFragment.cpp: Removed.
* platform/graphics/chromium/ScaledImageFragment.h: Removed.
* platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: Removed.
* platform/graphics/chromium/SkSizeHash.h: Removed.
* platform/graphics/chromium/TextureUploader.h: Removed.
* platform/graphics/chromium/ThreadSafeDataTransport.cpp: Removed.
* platform/graphics/chromium/ThreadSafeDataTransport.h: Removed.
* platform/graphics/chromium/TransformSkMatrix44Conversions.cpp: Removed.
* platform/graphics/chromium/TransformSkMatrix44Conversions.h: Removed.
* platform/graphics/chromium/TransparencyWin.cpp: Removed.
* platform/graphics/chromium/TransparencyWin.h: Removed.
* platform/graphics/chromium/UniscribeHelper.cpp: Removed.
* platform/graphics/chromium/UniscribeHelper.h: Removed.
* platform/graphics/chromium/UniscribeHelperTextRun.cpp: Removed.
* platform/graphics/chromium/UniscribeHelperTextRun.h: Removed.
* platform/graphics/chromium/VDMXParser.cpp: Removed.
* platform/graphics/chromium/VDMXParser.h: Removed.
* platform/graphics/gpu/DrawingBuffer.cpp:
(WebCore):
* platform/graphics/gpu/SharedGraphicsContext3D.cpp:
(WebCore::SharedGraphicsContext3DImpl::getOrCreateContext):
* platform/mediastream/chromium: Removed.
* platform/mediastream/chromium/MediaStreamCenterChromium.cpp: Removed.
* platform/mediastream/chromium/MediaStreamCenterChromium.h: Removed.
* platform/mediastream/chromium/RTCDTMFSenderHandlerChromium.cpp: Removed.
* platform/mediastream/chromium/RTCDTMFSenderHandlerChromium.h: Removed.
* platform/mediastream/chromium/RTCDataChannelHandlerChromium.cpp: Removed.
* platform/mediastream/chromium/RTCDataChannelHandlerChromium.h: Removed.
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp: Removed.
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h: Removed.
* platform/network/chromium: Removed.
* platform/network/chromium/AuthenticationChallenge.h: Removed.
* platform/network/chromium/AuthenticationChallengeChromium.cpp: Removed.
* platform/network/chromium/BlobRegistryProxy.cpp: Removed.
* platform/network/chromium/BlobRegistryProxy.h: Removed.
* platform/network/chromium/CookieJarChromium.cpp: Removed.
* platform/network/chromium/DNSChromium.cpp: Removed.
* platform/network/chromium/ResourceError.h: Removed.
* platform/network/chromium/ResourceHandle.cpp: Removed.
* platform/network/chromium/ResourceHandleInternal.h: Removed.
* platform/network/chromium/ResourceRequest.cpp: Removed.
* platform/network/chromium/ResourceRequest.h: Removed.
* platform/network/chromium/ResourceResponse.cpp: Removed.
* platform/network/chromium/ResourceResponse.h: Removed.
* platform/network/chromium/SocketStreamError.h: Removed.
* platform/network/chromium/SocketStreamHandle.cpp: Removed.
* platform/network/chromium/SocketStreamHandle.h: Removed.
* platform/network/chromium/SocketStreamHandleInternal.h: Removed.
* platform/sql/chromium: Removed.
* platform/sql/chromium/SQLiteFileSystemChromium.cpp: Removed.
* platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp: Removed.
* platform/sql/chromium/SQLiteFileSystemChromiumWin.cpp: Removed.
* platform/text/chromium: Removed.
* platform/text/chromium/Hyphenation.cpp: Removed.
* platform/text/chromium/TextBreakIteratorInternalICUChromium.cpp: Removed.
2013-04-05 Ryosuke Niwa <rniwa@webkit.org>
Remove Chromium code from WebCore/workers
https://bugs.webkit.org/show_bug.cgi?id=114050
Reviewed by Anders Carlsson.
Removed.
* workers/WorkerLoaderProxy.h:
(WorkerLoaderProxy):
* workers/chromium: Removed.
2013-04-05 Ryosuke Niwa <rniwa@webkit.org>
Remove Chromium code from WebCore/storage
https://bugs.webkit.org/show_bug.cgi?id=114049
Reviewed by Anders Carlsson.
Removed.
* storage/StorageNamespace.cpp:
* storage/chromium: Removed.
2013-04-05 Seokju Kwon <seokju.kwon@gmail.com>
[SOUP] Remove unnecessary explicit keyword in SocketStreamError.h
https://bugs.webkit.org/show_bug.cgi?id=113913
Reviewed by Martin Robinson.
No new tests, just removing an unnecessary code.
* platform/network/soup/SocketStreamError.h:
(WebCore::SocketStreamError::SocketStreamError):
2013-04-05 Zan Dobersek <zdobersek@igalia.com>
Remove WTF_USE_GOOGLEURL-guarded code
https://bugs.webkit.org/show_bug.cgi?id=114028
Reviewed by Ryosuke Niwa.
The only remaining usage of the USE(GOOGLEURL) guards is in LinkHashChromium.cpp that will
get removed when purging the Source/WebCore/platform/chromium directory.
* config.h: Remove the define that was Chromium-specific.
* platform/KURL.cpp:
(WebCore):
(WebCore::KURL::reportMemoryUsage):
(WebCore::KURL::isSafeToSendToAnotherThread):
* platform/KURL.h:
(KURL):
* platform/KURLGoogle.cpp: Removed.
* platform/KURLGooglePrivate.h: Removed.
2013-04-05 Bem Jones-Bey <bjonesbe@adobe.com>
[regression] Security: Heap-use-after-free in WebCore::RenderBlock::logicalRightOffsetForLine
https://bugs.webkit.org/show_bug.cgi?id=111594
Reviewed by David Hyatt.
Swapping the bases was causing any floats in the right base to be
lost, so change the code so that it no longer swaps the bases.
Test: fast/ruby/float-object-doesnt-crash.html
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::removeChild): Don't swap the bases anymore.
2013-04-05 Anders Carlsson <andersca@apple.com>
Remove dead code
https://bugs.webkit.org/show_bug.cgi?id=114043
Reviewed by Beth Dakin.
* platform/PublicSuffix.h:
2013-04-05 Anders Carlsson <andersca@apple.com>
Remove dead Chromium code from WebCore/workers
https://bugs.webkit.org/show_bug.cgi?id=114039
Reviewed by Antti Koivisto.
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::importScripts):
* workers/WorkerLoaderProxy.h:
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerContextProxy::create):
* workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::WorkerScriptLoader):
(WebCore::WorkerScriptLoader::createResourceRequest):
* workers/WorkerScriptLoader.h:
* workers/WorkerThread.cpp:
(WebCore::WorkerThread::workerThread):
* workers/chromium/WorkerContextProxyChromium.cpp: Removed.
* workers/chromium/WorkerContextProxyChromium.h: Removed.
2013-04-05 Ryosuke Niwa <rniwa@webkit.org>
Remove Chromium code from WebCore/plugins
https://bugs.webkit.org/show_bug.cgi?id=114015
Reviewed by Andreas Kling.
Removed.
* plugins/chromium: Removed.
* plugins/chromium/PluginDataChromium.cpp: Removed.
* plugins/chromium/PluginDataChromium.h: Removed.
* plugins/chromium/PluginListBuilder.cpp: Removed.
* plugins/chromium/PluginListBuilder.h: Removed.
2013-04-05 Simon Fraser <simon.fraser@apple.com>
ASSERTION FAILED: m_repaintRect == renderer()->clippedOverflowRectForRepaint(renderer()->containerForRepaint()) after r135816
https://bugs.webkit.org/show_bug.cgi?id=103432
Reviewed by Allan Sandfeld Jensen.
Remove optimization added in r99752 that attempted to avoid clip rect
updates for table cells. As the assertions show, this optimization
is not always correct, so remove it. Bug 108272 tracks adding it back in.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll): Remove m_canSkipRepaintRectsUpdateOnScroll
check when updating clip rects.
* rendering/RenderLayer.h: Remove the m_canSkipRepaintRectsUpdateOnScroll bit.
2013-04-05 Bear Travis <betravis@adobe.com>
[css exclusions] Dynamically removing shape-inside should cause relayout of child blocks' inline content
https://bugs.webkit.org/show_bug.cgi?id=111029
Reviewed by David Hyatt.
Preserve a removed ExclusionShapeInsideInfo for one additional layout pass
so that it can notify descendant inline content to relayout. This patch adds
a new 'needsRemoval' boolean to ExclusionShapeInsideInfo, which is set when
a style change removes but does not replace a shape-inside. When determining
whether a block needs to relayout inline children, ExclusionShapeInsideInfos with
the needsRemoval boolean set are included, but at other times (such as during
inline layout), they are ignored.
Added tests to the existing dynamic shape testfile
fast/exclusions/shape-inside/shape-inside-dynamic-nested.html
* rendering/ExclusionShapeInsideInfo.h:
(WebCore::ExclusionShapeInsideInfo::setNeedsRemoval): Get/Set the
needsRemoval boolean.
(WebCore::ExclusionShapeInsideInfo::needsRemoval): Ditto.
(ExclusionShapeInsideInfo):
(WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo):
Initialize the needsRemoval boolean.
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState): Propagate removed shape insides
for layout correctly. You only need to track one at a time, and a
removed shape inside should not take precedence over a set shape-inside.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange):
Set the ExclusionShapeInsideInfo needsRemoval boolean, rather than immediately
removing the info.
(WebCore::exclusionInfoRequiresRelayout): Account for the needsRemoval
boolean as another way of requiring relayout.
(WebCore::RenderBlock::updateRegionsAndExclusionsBeforeChildLayout):
Look up whether an ExclusionShapeInsideInfo has been removed.
(WebCore::RenderBlock::updateRegionsAndExclusionsAfterChildLayout):
Remove any ExclusionShapeInsides marked for removal after a layout pass.
(WebCore):
(WebCore::RenderBlock::layoutBlock): Call the new updateRegionsAndExclusions
Before/After methods.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::exclusionShapeInsideInfo): Filter the result based
on whether it should include removed infos.
(RenderBlock):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutExclusionShapeInsideInfo): Ditto.
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
Same as RenderBlock::layoutBlock.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock): Ditto.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock): Ditto.
2013-04-05 Mihai Maerean <mmaerean@adobe.com>
[CSS Regions] Elements in a region should be assignable to a named flow
https://bugs.webkit.org/show_bug.cgi?id=74144
Reviewed by David Hyatt.
DOM children of a region must not be rendered as children of the region, but can be collected in flow threads.
NodeRenderingContext::parentRenderer now creates the parent render flow thread if it doesn't exist.
Element::moveToFlowThreadIsNeeded is a virtual method that is overriden in PseudoElement to return false and
in SVGElement so only svg root elements can directly be collected by a render flow thread.
RenderObject::canDOMChildrenHaveRenderParent exists to optimize the code so nodes inside regions (and maybe
other types of renderers in the future) can still have renderers if they need to be in a flow thread while the
rest of renderers that can't have children skip the new instructions.
Tests: fast/regions/flow-body-in-html.html . To test the duplicate bug #103685.
fast/regions/region-content-flown-into-region.html
fast/regions/universal-selector-children-to-the-same-region.html . To test the duplicate bug #103685.
* dom/Element.cpp:
(WebCore::Element::moveToFlowThreadIsNeeded):
* dom/Element.h:
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::parentRenderer): the renderer that will be the parent for this node's renderer.
In the case of RenderFlowThreads, it may need to create it.
(WebCore::NodeRenderingContext::shouldCreateRenderer): In a region, only the children that need to be in a flow
thread should have a renderer.
(WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
(WebCore::NodeRenderingContext::moveToFlowThread):
* dom/NodeRenderingContext.h:
(NodeRenderingContext):
* dom/PseudoElement.h: pseudo-elements cannot be directly collected into a named flow.
* dom/Text.cpp:
(WebCore::Text::textRendererIsNeeded):
(WebCore::Text::updateTextRenderer): Because calling textRendererIsNeeded(NodeRenderingContext(...)) on a
non-const l-value NodeRenderingContext cannot be done on a temporary object on the stack.
* dom/Text.h:
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::isContentNodeRegisteredWithAnyNamedFlow):
* rendering/FlowThreadController.h:
* rendering/RenderObject.h:
(WebCore::RenderObject::canDOMChildrenHaveRenderParent): Even if this render object can't have render children,
the children in the DOM tree may have a render parent (that is different from this render object).
* rendering/RenderRegion.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::moveToFlowThreadIsNeeded): Allow only svg root elements to be directly collected by a
render flow thread.
* svg/SVGElement.h:
(SVGElement):
2013-04-05 Allan Sandfeld Jensen <allan.jensen@digia.com>
Fix GCC with C++11 build
https://bugs.webkit.org/show_bug.cgi?id=111579
Reviewed by Anders Carlsson.
If the destructor is private, MemoryInstrumentation can not create an inherited class.
* css/PropertySetCSSStyleDeclaration.h:
(StyleRuleCSSStyleDeclaration):
* dom/ShadowRoot.h:
(ShadowRoot):
* loader/SubresourceLoader.h:
(SubresourceLoader):
* platform/Timer.h:
2013-03-28 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Create ShadowBlur on demand.
https://bugs.webkit.org/show_bug.cgi?id=113506
Reviewed by Noam Rosenthal.
This patch creates ShadowBlur objects on demand instead of keeping a single one alive for
each GraphicsContext. This matches what other platforms does and fixes the problem with
an active shadowblur being affected by changing shadow settings on the GraphicsContext.
The method mustUseShadowBlur is moved from ShadowBlur to GraphcisContext, so that it can
be used to determine if a ShadowBlur object should even be generated.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::hasBlurredShadow):
(WebCore::GraphicsContext::mustUseShadowBlur):
* platform/graphics/GraphicsContext.h:
(GraphicsContext):
* platform/graphics/ShadowBlur.cpp:
(WebCore::ShadowBlur::ShadowBlur):
* platform/graphics/ShadowBlur.h:
* platform/graphics/cairo/FontCairo.cpp:
(WebCore::drawGlyphsShadow):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
* platform/graphics/qt/FontQt.cpp:
(WebCore::drawQtGlyphRun):
* platform/graphics/qt/GraphicsContextQt.cpp:
(GraphicsContextPlatformPrivate):
(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
(WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
(WebCore::GraphicsContext::restorePlatformState):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::GraphicsContext::clearPlatformShadow):
* platform/graphics/qt/ImageQt.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/qt/StillImageQt.cpp:
(WebCore::StillImage::draw):
2013-04-05 Ryosuke Niwa <rniwa@webkit.org>
Remove Chromium code from WebCore/page
https://bugs.webkit.org/show_bug.cgi?id=114013
Reviewed by Anders Carlsson.
Removed.
* page/Console.cpp:
(WebCore::Console::time):
(WebCore::Console::timeEnd):
* page/EventHandler.cpp:
(WebCore::shouldGesturesTriggerActive):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore):
(WebCore::EventHandler::sendScrollEventToView):
* page/FeatureObserver.cpp:
(WebCore::FeatureObserver::updateMeasurements):
* page/FrameView.cpp:
(WebCore::FrameView::layout):
(WebCore::FrameView::useSlowRepaints):
* page/PageConsole.cpp:
* page/PageGroup.cpp:
(WebCore::PageGroup::isLinkVisited):
(WebCore::PageGroup::addVisitedLink):
* page/Settings.cpp:
(WebCore):
* page/android: Removed.
* page/chromium: Removed.
* page/chromium/ChromeClientChromium.h: Removed.
* page/chromium/DragControllerChromium.cpp: Removed.
* page/chromium/EventHandlerChromium.cpp: Removed.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::create):
(WebCore):
* page/scrolling/ScrollingCoordinator.h:
(ScrollingCoordinator):
* page/scrolling/ScrollingTree.cpp:
(WebCore):
* page/scrolling/ScrollingTree.h:
(ScrollingTree):
* page/scrolling/chromium: Removed.
* page/scrolling/chromium/ScrollingCoordinatorChromium.cpp: Removed.
* page/scrolling/chromium/ScrollingCoordinatorChromium.h: Removed.
2013-04-05 Ryosuke Niwa <rniwa@webkit.org>
Remove Chromium code from WebCore/rendering
https://bugs.webkit.org/show_bug.cgi?id=114017
Reviewed by Simon Fraser.
Removed.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::setLogicalWidthForTextRun):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::requiresHorizontalScrollbarLayer):
(WebCore::RenderLayerBacking::requiresVerticalScrollbarLayer):
(WebCore::RenderLayerBacking::requiresScrollCornerLayer):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::paintContents):
(WebCore::shouldCompositeOverflowControls):
(WebCore::RenderLayerCompositor::requiresOverhangAreasLayer):
* rendering/RenderMediaControlsChromium.cpp: Removed.
* rendering/RenderMediaControlsChromium.h: Removed.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::shouldRespectImageOrientation):
* rendering/RenderText.cpp:
(WebCore):
(WebCore::RenderText::previousOffsetForBackwardDeletion):
* rendering/RenderThemeChromiumAndroid.cpp: Removed.
* rendering/RenderThemeChromiumAndroid.h: Removed.
* rendering/RenderThemeChromiumCommon.cpp: Removed.
* rendering/RenderThemeChromiumCommon.h: Removed.
* rendering/RenderThemeChromiumDefault.cpp: Removed.
* rendering/RenderThemeChromiumDefault.h: Removed.
* rendering/RenderThemeChromiumFontProvider.cpp: Removed.
* rendering/RenderThemeChromiumFontProvider.h: Removed.
* rendering/RenderThemeChromiumFontProviderLinux.cpp: Removed.
* rendering/RenderThemeChromiumFontProviderWin.cpp: Removed.
* rendering/RenderThemeChromiumMac.h: Removed.
* rendering/RenderThemeChromiumMac.mm: Removed.
* rendering/RenderThemeChromiumSkia.cpp: Removed.
* rendering/RenderThemeChromiumSkia.h: Removed.
* rendering/RenderThemeChromiumWin.cpp: Removed.
* rendering/RenderThemeChromiumWin.h: Removed.
* rendering/RenderThemeMacShared.mm:
(WebCore::RenderThemeMacShared::paintSliderThumb):
2013-04-05 Noam Rosenthal <noam@webkit.org>
[Texmap] css3/filters/filter-animation-from-none-hw.html does not animate
https://bugs.webkit.org/show_bug.cgi?id=114026
Reviewed by Allan Sandfeld Jensen.
Allow the filter's blending function to take place when animating from/to none.
* platform/graphics/GraphicsLayerAnimation.cpp:
(WebCore::applyFilterAnimation):
2013-04-05 Noam Rosenthal <noam@webkit.org>
[CoordGfx] Enable filter animations
https://bugs.webkit.org/show_bug.cgi?id=114027
Reviewed by Allan Sandfeld Jensen.
Allow CoordinatedGraphicsLayer to serialize filter animations to the UI process.
Covered by animation tests in css3/filters.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::addAnimation):
2013-04-05 Christophe Dumez <ch.dumez@sisa.samsung.com>
Avoid double hash table lookups in TextureMapperGL
https://bugs.webkit.org/show_bug.cgi?id=114030
Reviewed by Noam Rosenthal.
Use Vector::add() and leverage its returned AddResult value instead of
calling Vector::find() then Vector::set() if the key does not already
exist in the map. This results in a single hash lookup instead of two
in this case.
No new tests, no behavior change.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGLData::SharedGLData::getShaderProgram):
(WebCore::TextureMapperGLData::getStaticVBO):
(WebCore::TextureMapperGL::drawUsingCustomFilter):
2013-04-05 Aivo Paas <aivopaas@gmail.com>
Updating mouse cursor on style changes without emitting fake mousemove event
https://bugs.webkit.org/show_bug.cgi?id=101857
Reviewed by Allan Sandfeld Jensen.
Mouse cursor changes in styles used to be reflected in UI through dispatching a fake
mousemove event. The old approach has some flaws: it emits a mousemove event in
javascript when there is no mouse movement involved (bug 85343); the fake mousemove
event is cancelled while there is a mouse button held down - cursor won't change
until mouse is moved or the button released (bug 53341).
The new approach does not use the fake mousemove event. Instead, it uses only the logic
needed for the actual cursor change to happen.
EventHandler::selectCursor was refactored to not take a whole mouse event but instead work with
HitTestResult so that EventHandler::updateCursor must not create a useless PlatformEvent.
Fixes: https://bugs.webkit.org/show_bug.cgi?id=85343 (mousemove event on cursor change)
https://bugs.webkit.org/show_bug.cgi?id=53341 (no cursor change when mouse button down)
Tests: fast/events/mouse-cursor-change.html
fast/events/mouse-cursor-no-mousemove.html
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::clear):
(WebCore::EventHandler::cursorUpdateTimerFired):
(WebCore::EventHandler::updateCursor):
(WebCore::EventHandler::selectCursor):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::scheduleCursorUpdate):
* page/EventHandler.h:
* page/FrameView.cpp:
(WebCore::FrameView::shouldSetCursor):
* page/FrameView.h:
* page/MouseEventWithHitTestResults.cpp:
(WebCore::MouseEventWithHitTestResults::isOverLink):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::isOverLink):
* rendering/HitTestResult.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleDidChange):
2013-04-05 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Qt] PluginsX11: exposedRect offset is applied twice when painting windowless
https://bugs.webkit.org/show_bug.cgi?id=114020
Reviewed by Simon Hausmann.
Both XGetImage and QPainter::drawImage would apply the offset.
Since the XImage will only contain the exposed rect, no need to specify
the source rect to drawImage.
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::paintUsingXPixmap):
2013-04-05 Seokju Kwon <seokju.kwon@gmail.com>
Web Inspector: crash in InspectorDOMAgent::innerHighlightQuad after r147566
https://bugs.webkit.org/show_bug.cgi?id=113991
Reviewed by Joseph Pecoraro.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::innerHighlightQuad):
2013-04-05 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r145279): Build fails while linking when MEDIA_STREAM is enabled
https://bugs.webkit.org/show_bug.cgi?id=113294
Reviewed by Xan Lopez.
In r145279 NamedGetter extended attribute is added to
RTCStatsResponse.idl which makes the code generator to add
prototypes for JSRTCStatsResponse::nameGetter and
JSRTCStatsResponse::canGetItemsForName to the generated
JSRTCStatsResponse header, but they are not implemented
anywhere. We need to provide a JSRTCStatsResponseCustom file with
the implementation of both functions.
* GNUmakefile.list.am: Add JSRTCStatsResponseCustom.cpp to
compilation.
* Target.pri: Ditto.
* UseJSC.cmake: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* bindings/js/JSRTCStatsResponseCustom.cpp: Added.
(WebCore):
(WebCore::JSRTCStatsResponse::canGetItemsForName):
(WebCore::JSRTCStatsResponse::nameGetter):
2013-04-05 Ryosuke Niwa <rniwa@webkit.org>
Remove Chromium code from WebCore/loader
https://bugs.webkit.org/show_bug.cgi?id=114011
Reviewed by Benjamin Poulain.
Removed.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
* loader/DocumentThreadableLoader.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::defaultObjectContentType):
(WebCore):
* loader/FrameLoader.h:
(FrameLoader):
* loader/FrameLoaderClient.h:
(FrameLoaderClient):
* loader/PingLoader.cpp:
(WebCore::PingLoader::loadImage):
(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):
* loader/ResourceLoadScheduler.cpp:
(WebCore):
(WebCore::ResourceLoadScheduler::ResourceLoadScheduler):
(WebCore::ResourceLoadScheduler::scheduleLoad):
* loader/ResourceLoader.h:
* loader/SubresourceLoader.h:
* loader/ThreadableLoaderClient.h:
(ThreadableLoaderClient):
* loader/ThreadableLoaderClientWrapper.h:
(ThreadableLoaderClientWrapper):
* loader/appcache/ApplicationCacheHost.h:
(WebCore):
(ApplicationCacheHost):
* loader/cache/CachedRawResource.h:
(CachedRawResource):
(WebCore::CachedRawResourceClient::redirectReceived):
* loader/cache/CachedResource.cpp:
(WebCore):
(WebCore::CachedResource::load):
* loader/cache/CachedResource.h:
(WebCore::CachedResource::didSendData):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::preload):
* loader/chromium: Removed.
* loader/chromium/CachedRawResourceChromium.cpp: Removed.
* loader/chromium/DocumentThreadableLoaderChromium.cpp: Removed.
* loader/chromium/ResourceLoaderChromium.cpp: Removed.
* loader/chromium/SubresourceLoaderChromium.cpp: Removed.
2013-04-05 Ryosuke Niwa <rniwa@webkit.org>
Remove Chromium code from WebCore/editing
https://bugs.webkit.org/show_bug.cgi?id=114008
Reviewed by Benjamin Poulain.
Removed.
* editing/EditingBehavior.h:
(WebCore::EditingBehavior::shouldAllowSpellingSuggestionsWithoutSelection):
* editing/FrameSelection.h:
(WebCore):
* editing/chromium: Removed.
* editing/chromium/EditorChromium.cpp: Removed.
* editing/chromium/FrameSelectionChromium.cpp: Removed.
2013-04-05 Benjamin Poulain <benjamin@webkit.org>
Remove the chromium code from the filesystem module
https://bugs.webkit.org/show_bug.cgi?id=114002
Reviewed by Ryosuke Niwa.
* Modules/filesystem/DOMFileSystemBase.cpp:
(WebCore::DOMFileSystemBase::createFileSystemURL):
* Modules/filesystem/FileSystemType.h:
* Modules/filesystem/LocalFileSystem.cpp:
* Modules/filesystem/LocalFileSystem.h:
(LocalFileSystem):
2013-04-05 Ryosuke Niwa <rniwa@webkit.org>
Remove Chromium code from Source/WebCore/dom
https://bugs.webkit.org/show_bug.cgi?id=114007
Reviewed by Benjamin Poulain.
Removed.
* dom/Document.cpp:
(WebCore::Document::recalcStyle):
(WebCore::Document::implicitClose):
(WebCore::Document::setFocusedNode):
* dom/MessagePortChannel.h:
(MessagePortChannel):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
* dom/default/chromium: Removed.
* dom/default/chromium/PlatformMessagePortChannelChromium.cpp: Removed.
* dom/default/chromium/PlatformMessagePortChannelChromium.h: Removed.
2013-04-05 Benjamin Poulain <benjamin@webkit.org>
Remove the chromium directories from WebCore/Modules
https://bugs.webkit.org/show_bug.cgi?id=114000
Reviewed by Ryosuke Niwa.
First step in cleaning the code: remove the chromium-specific files.
* Modules/filesystem/chromium/DOMFileSystemChromium.cpp: Removed.
* Modules/filesystem/chromium/DataTransferItemFileSystemChromium.cpp: Removed.
* Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp: Removed.
* Modules/filesystem/chromium/DraggedIsolatedFileSystem.h: Removed.
* Modules/indexeddb/chromium/IDBFactoryBackendInterfaceChromium.cpp: Removed.
* Modules/indexeddb/chromium/IDBFactoryBackendInterfaceChromium.h: Removed.
* Modules/speech/chromium/SpeechSynthesisChromium.cpp: Removed.
* Modules/webdatabase/chromium/DatabaseObserver.h: Removed.
* Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp: Removed.
* Modules/webdatabase/chromium/QuotaTracker.cpp: Removed.
* Modules/webdatabase/chromium/QuotaTracker.h: Removed.
* Modules/webdatabase/chromium/SQLTransactionClientChromium.cpp: Removed.
2013-04-04 Ryosuke Niwa <rniwa@webkit.org>
Remove Chromium code from WebCore/accessibility
https://bugs.webkit.org/show_bug.cgi?id=114001
Reviewed by Benjamin Poulain.
Removed.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::AccessibilityObject):
(WebCore::AccessibilityObject::detach):
(WebCore::AccessibilityObject::isDetached):
* accessibility/AccessibilityObject.h:
(AccessibilityObject):
* accessibility/chromium: Removed.
* accessibility/chromium/AXObjectCacheChromium.cpp: Removed.
* accessibility/chromium/AccessibilityObjectChromium.cpp: Removed.
2013-04-05 Benjamin Poulain <bpoulain@apple.com>
Remove WTFURL from WebKit
https://bugs.webkit.org/show_bug.cgi?id=113994
Reviewed by Ryosuke Niwa.
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* platform/KURL.cpp:
(WebCore):
(WebCore::KURL::reportMemoryUsage):
(WebCore::KURL::isSafeToSendToAnotherThread):
* platform/KURL.h:
(KURL):
(WebCore):
* platform/KURLWTFURL.cpp: Removed.
* platform/KURLWTFURLImpl.h: Removed.
* platform/cf/KURLCFNet.cpp:
(WebCore::KURL::KURL):
(WebCore::KURL::createCFURL):
(WebCore):
* platform/mac/KURLMac.mm:
(WebCore::KURL::KURL):
(WebCore::KURL::createCFURL):
2013-04-04 peavo@outlook.com <peavo@outlook.com>
WinCairo build fails to link.
https://bugs.webkit.org/show_bug.cgi?id=113873
Reviewed by Brent Fulgham.
Removed double guards for USE(ACCELERATED_COMPOSITING),
and moved methods out of USE(ACCELERATED_COMPOSITING) guard to fix linker errors.
* page/FrameView.cpp:
(WebCore::FrameView::setWantsLayerForTopOverHangArea):
(WebCore::FrameView::setWantsLayerForBottomOverHangArea):
(WebCore::FrameView::setWantsLayerForHeader):
(WebCore::FrameView::setWantsLayerForFooter):
(WebCore::FrameView::setHeaderHeight):
(WebCore::FrameView::setFooterHeight):
2013-04-04 Ryosuke Niwa <rniwa@webkit.org>
Remove code for 10.5 and earlier from Source/WebCore
https://bugs.webkit.org/show_bug.cgi?id=113754
Reviewed by Benjamin Poulain.
Removed the code for 10.5 and removed if-def for 10.6.
* WebCore.xcodeproj/project.pbxproj:
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::populate):
* platform/LocalizedStrings.cpp:
(WebCore::imageTitle):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setAllowsFontSmoothing):
* platform/graphics/cg/ImageCG.cpp:
(WebCore::Image::drawPattern):
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::clear):
* platform/graphics/cg/PathCG.cpp:
(WebCore::Path::boundingRect):
* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore):
(WebCore::FontPlatformData::ctFont):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::supportsFullscreen):
* platform/graphics/mac/ComplexTextControllerCoreText.mm:
* platform/graphics/mac/FontCacheMac.mm:
(WebCore):
(WebCore::fontCacheRegisteredFontsChangedNotificationCallback):
(WebCore::FontCache::platformInit):
* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::~FontCustomPlatformData):
(WebCore::createFontCustomPlatformData):
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::createQTMovie):
(WebCore::MediaPlayerPrivateQTKit::supportsFullscreen):
(WebCore::MediaPlayerPrivateQTKit::setClosedCaptionsVisible):
(WebCore::MediaPlayerPrivateQTKit::cacheMovieScale):
* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore::SimpleFontData::platformInit):
* platform/graphics/mac/WebLayer.h:
* platform/mac/CursorMac.mm:
(WebCore::Cursor::ensurePlatformCursor):
* platform/mac/DisplaySleepDisabler.cpp:
(WebCore::DisplaySleepDisabler::DisplaySleepDisabler):
(WebCore):
* platform/mac/DisplaySleepDisabler.h:
(DisplaySleepDisabler):
* platform/mac/EmptyProtocolDefinitions.h:
* platform/mac/HTMLConverter.h:
* platform/mac/HTMLConverter.mm:
* platform/mac/PopupMenuMac.mm:
(WebCore::PopupMenuMac::populate):
* platform/mac/ScrollElasticityController.mm:
(systemUptime):
* platform/mac/SharedTimerMac.mm:
(PowerObserver):
(WebCore::PowerObserver::PowerObserver):
(WebCore::PowerObserver::~PowerObserver):
(WebCore::PowerObserver::didReceiveSystemPowerNotification):
* platform/mac/SuddenTermination.mm:
* platform/mac/WebCoreFullScreenWindow.mm:
(-[WebCoreFullScreenWindow initWithContentRect:styleMask:backing:defer:]):
* platform/mac/WebFontCache.mm:
(+[WebFontCache getTraits:inFamily:]):
(+[WebFontCache internalFontWithFamily:traits:weight:size:]):
* platform/mac/WebVideoFullscreenController.mm:
(SOFT_LINK_POINTER):
(-[WebVideoFullscreenController updateMenuAndDockForFullscreen]):
* platform/mac/WebVideoFullscreenHUDWindowController.mm:
(createControlWithMediaUIControlType):
(-[WebVideoFullscreenHUDWindowController windowDidLoad]):
* platform/network/Credential.h:
* platform/network/cf/DNSCFNet.cpp:
(WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
* platform/network/cf/ProxyServerCFNet.cpp:
(WebCore):
(WebCore::proxyServersForURL):
* platform/network/cf/SocketStreamHandleCFNet.cpp:
(WebCore::SocketStreamHandle::chooseProxy):
* platform/network/mac/AuthenticationMac.mm:
(WebCore):
* platform/network/mac/WebCoreURLResponse.mm:
(WebCore::adjustMIMETypeIfNecessary):
* platform/text/TextChecking.h:
(WebCore):
2013-04-04 Ryosuke Niwa <rniwa@webkit.org>
Qt build fix attempt after r147684.
* html/canvas/CanvasRenderingContext.cpp:
2013-04-04 Benjamin Poulain <bpoulain@apple.com>
alternateFamilyName should return a null, not an empty value
https://bugs.webkit.org/show_bug.cgi?id=113987
Reviewed by Anders Carlsson.
The string object corresponding semantically to "no-value" is
a null string, not an empty string.
Fix alternateFamilyName() accordingly.
* platform/graphics/FontCache.cpp:
(WebCore::alternateFamilyName):
(WebCore::FontCache::getCachedFontPlatformData):
2013-04-04 Anders Carlsson <andersca@apple.com>
Work around a bug in the bindings generation script.
* WebCore.xcodeproj/project.pbxproj:
2013-04-04 Dean Jackson <dino@apple.com>
Don't dispatch delayed click if snapshotted plugin was triggered by a click on the label
https://bugs.webkit.org/show_bug.cgi?id=113982
Reviewed by Tim Horton.
We regressed the way clicks were sent on to restarted plugins when we moved to a
Shadow Root - we were always sending the click. We should only send the click
on if the user clicked on the main plugin content, and not send it when you
click directly on the label.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Keep a reference to the container and label.
(WebCore::HTMLPlugInImageElement::partOfSnapshotLabel): New method that detects if a Node was part
of the snapshot label.
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Only record the event if you should forward it on.
* html/HTMLPlugInImageElement.h:
(HTMLPlugInImageElement): New parameter to userDidClickSnapshot and member variables for shadow content.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::handleEvent): Ask the plugin if the clicked target was the snapshot label.
2013-04-04 Christophe Dumez <ch.dumez@sisa.samsung.com>
Unreviewed EFL build fix.
Add missing include for FloatRect.h.
* platform/efl/PlatformScreenEfl.cpp:
2013-04-04 Tim Horton <timothy_horton@apple.com>
Unreviewed build fix.
* platform/graphics/GlyphPageTreeNode.cpp:
2013-04-04 Anders Carlsson <andersca@apple.com>
Another build fix.
* platform/graphics/FontCache.cpp:
* platform/graphics/SimpleFontData.cpp:
2013-04-04 Anders Carlsson <andersca@apple.com>
Fix build.
* WebCore.xcodeproj/project.pbxproj:
2013-04-04 Geoffrey Garen <ggaren@apple.com>
Removed empty files from the build
https://bugs.webkit.org/show_bug.cgi?id=113978
Reviewed by Anders Carlsson.
Anders made a list of all the empty files that are slowing down the Mac
build, and I grepped them away.
* WebCore.xcodeproj/project.pbxproj:
2013-04-04 Anders Carlsson <andersca@apple.com>
Prune unneeded header #includes
https://bugs.webkit.org/show_bug.cgi?id=113973
Reviewed by Geoffrey Garen.
Reduce the amount of headers included by other headers by:
- Moving implicit and explicit constructors and destructors into .cpp files so member variable constructors/destructors
don't have to be declared.
- Move CachedResourceClient subclasses out into separate headers so that their respective CachedResource subclasses don't
have to be included by the classes that derive from those subclasses.
- Remove headers that were never needed in the first place.
* Modules/webaudio/AudioContext.h:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMWindowCustom.cpp:
* css/CSSFontFaceSource.h:
* html/canvas/CanvasPattern.cpp:
(WebCore::CanvasPattern::create):
(WebCore::CanvasPattern::CanvasPattern):
(WebCore::CanvasPattern::~CanvasPattern):
* html/canvas/CanvasPattern.h:
(WebCore::CanvasPattern::pattern):
(WebCore::CanvasPattern::originClean):
* html/parser/HTMLScriptRunner.h:
* loader/ImageLoader.h:
* loader/LinkLoader.h:
* loader/TextTrackLoader.h:
* loader/cache/CachedFont.cpp:
* loader/cache/CachedFont.h:
* loader/cache/CachedFontClient.h: Added.
(WebCore::CachedFontClient::~CachedFontClient):
(WebCore::CachedFontClient::expectedType):
(WebCore::CachedFontClient::resourceClientType):
(WebCore::CachedFontClient::fontLoaded):
* loader/cache/CachedResourceHandle.cpp:
(WebCore::CachedResourceHandleBase::CachedResourceHandleBase):
(WebCore::CachedResourceHandleBase::~CachedResourceHandleBase):
(WebCore::CachedResourceHandleBase::setResource):
* loader/cache/CachedResourceHandle.h:
(WebCore::CachedResourceHandleBase::get):
(WebCore::CachedResourceHandleBase::operator!):
(WebCore::CachedResourceHandleBase::operator UnspecifiedBoolType):
(WebCore::CachedResourceHandleBase::operator=):
(WebCore::CachedResourceHandle::CachedResourceHandle):
(WebCore::CachedResourceHandle::get):
(WebCore::CachedResourceHandle::operator->):
(WebCore::CachedResourceHandle::operator=):
(WebCore::CachedResourceHandle::operator==):
(WebCore::CachedResourceHandle::operator!=):
(WebCore::operator==):
(WebCore::operator!=):
* loader/cache/CachedSVGDocument.h:
* loader/cache/CachedSVGDocumentReference.h:
* loader/cache/CachedSVGDocumentClient.h: Added.
(WebCore::CachedSVGDocumentClient::~CachedSVGDocumentClient):
(WebCore::CachedSVGDocumentClient::expectedType):
(WebCore::CachedSVGDocumentClient::resourceClientType):
* loader/cache/CachedStyleSheetClient.h:
* platform/PlatformScreen.h:
* platform/audio/HRTFElevation.cpp:
* platform/audio/HRTFKernel.cpp:
(WebCore::HRTFKernel::fftSize):
* platform/audio/HRTFKernel.h:
* platform/audio/ReverbConvolverStage.cpp:
(WebCore::ReverbConvolverStage::~ReverbConvolverStage):
* platform/audio/ReverbConvolverStage.h:
* platform/graphics/FontPlatformData.h:
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/Path.cpp:
* platform/graphics/Path.h:
* platform/graphics/Pattern.cpp:
* platform/graphics/Pattern.h:
* platform/graphics/filters/FilterOperation.cpp:
(WebCore::ReferenceFilterOperation::ReferenceFilterOperation):
(WebCore::ReferenceFilterOperation::~ReferenceFilterOperation):
(WebCore::ReferenceFilterOperation::setCachedSVGDocumentReference):
* platform/graphics/filters/FilterOperation.h:
* platform/graphics/transforms/AffineTransform.h:
* plugins/DOMMimeType.h:
* rendering/RenderLayerFilterInfo.h:
* rendering/style/StyleCachedShader.h:
* svg/SVGFEImageElement.h:
* svg/SVGFontFaceUriElement.h:
* svg/SVGUseElement.h:
* xml/parser/XMLDocumentParser.h:
2013-04-04 Christophe Dumez <ch.dumez@sisa.samsung.com>
[Cairo] Stop passing raw pointers to BitmapImage::create()
https://bugs.webkit.org/show_bug.cgi?id=113945
Reviewed by Martin Robinson.
BitmapImage::create() was updated in r147643 to take a PassRefPtr<cairo_surface_t>
in argument instead of a cairo_surface_t*. This patch updates several call sites
so that they now pass in a smart pointer instead of a raw one to avoid silent
converting from cairo_surface_t* to PassRefPtr<cairo_surface_t>.
No new tests, no behavior change.
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBufferData::ImageBufferData): Use RefPtr to m_surface to avoid manual
memory handling.
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::~ImageBuffer):
(WebCore::ImageBuffer::copyImage):
(WebCore::ImageBuffer::clip):
(WebCore::ImageBuffer::platformTransformColorSpace):
(WebCore::getImageData):
(WebCore::ImageBuffer::putByteArray):
* platform/graphics/cairo/ImageBufferDataCairo.h:
(ImageBufferData):
* platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
(ImageGStreamer::ImageGStreamer):
* platform/graphics/gtk/ImageBufferGtk.cpp:
(WebCore::ImageBuffer::toDataURL):
2013-04-04 Simon Fraser <simon.fraser@apple.com>
Page content missing when flipping from an empty layer to a tiled layer
https://bugs.webkit.org/show_bug.cgi?id=113977
<rdar://problem/13444219>
Reviewed by Tim Horton.
Some articles on USA Today were missing content on load, when a large GraphicsLayer
which did not draw content needed to draw content (and become tiled in the process).
The bug was an ordering dependency in GraphicsLayerCA::commitLayerChangesBeforeSublayers().
swapFromOrToTiledLayer() sets some dirty flags, but for some properties which have
already been committed in the current flush cycle.
Fix by moving the swapFromOrToTiledLayer() to the top of the commit, which is
safe since it only consults GraphicsLayer properties, not CALayer properties.
Test: compositing/tiling/empty-to-tiled.html
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateGeometry):
(WebCore::GraphicsLayerCA::updateLayerDrawsContent):
(WebCore::GraphicsLayerCA::updateContentsScale):
* platform/graphics/ca/GraphicsLayerCA.h:
(GraphicsLayerCA):
2013-04-04 Christophe Dumez <ch.dumez@sisa.samsung.com>
Regression(r147639) Causes assertion hit in HashTable
https://bugs.webkit.org/show_bug.cgi?id=113954
Reviewed by Benjamin Poulain.
Lookup the key in the hash table again after the recursive call to
getCachedFontPlatformData() as it may have altered the hash map and
invalidated the previous iterator we had.
No new tests, covered by existing tests.
* platform/graphics/FontCache.cpp:
(WebCore::FontCache::getCachedFontPlatformData):
2013-04-04 Eric Carlson <eric.carlson@apple.com>
[Mac] add "automatic" text track menu item
https://bugs.webkit.org/show_bug.cgi?id=113822
Reviewed by Jer Noble.
No new tests, existing tests updated.
* English.lproj/Localizable.strings: Add new track menu item.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_captionDisplayMode.
(WebCore::HTMLMediaElement::finishParsingChildren): LoadTextTrackResource -> ConfigureTextTracks.
(WebCore::HTMLMediaElement::scheduleDelayedAction): Ditto.
(WebCore::HTMLMediaElement::loadTimerFired): Ditto.
(WebCore::HTMLMediaElement::loadInternal): Ditto. Flag the caption menu as invalid so it will
be rebuilt again.
(WebCore::HTMLMediaElement::mediaPlayerDidAddTrack): LoadTextTrackResource -> ConfigureTextTracks.
(WebCore::HTMLMediaElement::didAddTrack): Ditto.
(WebCore::HTMLMediaElement::configureTextTrackGroup): Deal with new track display modes.
(WebCore::HTMLMediaElement::HTMLMediaElement::hasClosedCaptions): Minor cleanup.
(WebCore::HTMLMediaElement::configureTextTrackGroup): Add some logging.
(WebCore::HTMLMediaElement::configureTextTracks): Call updateActiveTextTrackCues so cue display
is updated.
(WebCore::HTMLMediaElement::captionPreferencesChanged): Deal with new track display modes.
(WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Add some logging.
* html/HTMLMediaElement.h: Ditto.
* html/shadow/MediaControlElementTypes.cpp: Remove trackIndexAttributeName and trackListIndexForElement.
* html/shadow/MediaControlElementTypes.h: Ditto.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler): Don't use track index,
everything we need is in the track<->element map now.
(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Ditto. Always rebuild the
track list because clear the map each time the menu goes away because it refs every track.
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): Don't set the track
index attribute on the menu items, just use the map.
* html/shadow/MediaControlElements.h:
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::changedClosedCaptionsVisibility): resetTrackListMenu is gone.
(WebCore::MediaControlsApple::reset): Ditto.
(WebCore::MediaControlsApple::closedCaptionTracksChanged): Ditto.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::captionMenuOffItem): New, static TextTrack used for the menu "Off" item.
(WebCore::TextTrack::captionMenuAutomaticItem): New, static TextTrack used for the menu "Automatic" item.
* html/track/TextTrack.h:
* page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::shouldShowCaptions): Removed, we use captionDisplayMode instead.
(WebCore::CaptionUserPreferences::captionDisplayMode): New.
(WebCore::CaptionUserPreferences::setCaptionDisplayMode): New.
(WebCore::CaptionUserPreferences::setPreferredLanguage): Make the parameter a const reference.
(WebCore::CaptionUserPreferences::textTrackSelectionScore): Return 0 if the user doesn't want
captions or subtitles.
(WebCore::CaptionUserPreferences::textTrackLanguageSelectionScore): Take language as a parameter
instead of assuming that it is always the entire language list.
* page/CaptionUserPreferences.h:
* page/CaptionUserPreferencesMac.h:
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::shouldShowCaptions): Removed, we use captionDisplayMode instead.
(WebCore::CaptionUserPreferencesMac::captionDisplayMode): New.
(WebCore::CaptionUserPreferencesMac::setCaptionDisplayMode): New.
(WebCore::CaptionUserPreferencesMac::setPreferredLanguage): Make the parameter a const reference.
(WebCore::CaptionUserPreferencesMac::textTrackSelectionScore): Deal with "Automatic" mode.
captions or subtitles.
(WebCore::CaptionUserPreferences::textTrackLanguageSelectionScore): Take language as a parameter
instead of assuming that it is always the entire language list.
(WebCore::CaptionUserPreferencesMac::sortedTrackListForMenu): Insert "Off" and "Automatic" items.
* platform/LocalizedStrings.cpp:
(WebCore::textTrackAutomaticMenuItemText): New.
* platform/LocalizedStrings.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::languageOfPrimaryAudioTrack): New.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack): Return the language
of the main audio track.
2013-04-04 Alexey Proskuryakov <ap@apple.com>
REGRESSION (r146580): Assertion using SecurityOrigin::create, URL string is not valid
https://bugs.webkit.org/show_bug.cgi?id=113961
Reviewed by Geoff Garen.
* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::createFromDatabaseIdentifier):
(WebCore::SecurityOrigin::create):
Don't use ParsedURLString, because http://host:80/ is normalized to http://host/,
so it's not a parsed URL string.
2013-04-04 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r147662.
http://trac.webkit.org/changeset/147662
https://bugs.webkit.org/show_bug.cgi?id=113955
The change r147662 breaks fast/regions/fixed-pos-elem-in-
region.html (Requested by benjaminp on #webkit).
* rendering/RenderBlockLineLayout.cpp:
(WebCore::inlineLogicalWidth):
2013-04-04 Tim Horton <timothy_horton@apple.com>
REGRESSION (r147373): Auto-sizing doesn't always respect minimum width changes
https://bugs.webkit.org/show_bug.cgi?id=113947
<rdar://problem/13579024>
Reviewed by Anders Carlsson.
Reset the FrameView size to the minimum auto-sizing size
before performing auto-sizing. We were already resetting the height,
but not the width, instead using the FrameView's current width.
This means that changing the minimum width without also manually
resizing the FrameView will never see the width change.
Auto-sizing tests are not working on Mac yet.
* page/FrameView.cpp:
(WebCore::FrameView::autoSizeIfEnabled):
2013-04-04 Martin Robinson <mrobinson@igalia.com>
[GTK] Remove the gyp build
https://bugs.webkit.org/show_bug.cgi?id=113942
Reviewed by Gustavo Noronha Silva.
* WebCore.gyp/WebCoreGTK.gyp: Removed.
2013-04-04 Robert Hogan <robert@webkit.org>
REGRESSION(r142152): Text wraps in menu
https://bugs.webkit.org/show_bug.cgi?id=113706
Reviewed by David Hyatt.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::inlineLogicalWidth): Empty inline elements add their inline border/padding/margin to the width of the
line when we iterate through them in nextLineBreak(), so no need to add them again here when climbing back up
from their first child looking for border/padding/margin to add. (An empty inline element can have floating children.)
2013-04-04 Ryosuke Niwa <rniwa@webkit.org>
Changing typing style with font size delta overrides the previous font size delta
https://bugs.webkit.org/show_bug.cgi?id=113923
Reviewed by Andreas Kling.
The bug was caused by a new font size delta value overriding the old one as
opposed to being added to the old value. Fixed that in overrideWithStyle.
Also made overrideWithStyle share code with mergeStyle since there is already
code to merge text-decorations there.
Unfortunately, adding a test for this fix proved to be hard because we don't
expose any API to directly set typing style.
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::overrideWithStyle): Use mergeStyle.
(WebCore::EditingStyle::mergeStyle): Add font size deltas as opposed to simply
using the new value.
2013-04-04 Chris Fleizach <cfleizach@apple.com>
AX:File upload button has wrong label
https://bugs.webkit.org/show_bug.cgi?id=113924
Reviewed by David Kilzer.
Allow the label and value to be returned for file upload controls on iOS.
Due to the different AX APIs, we can expose a bit more information on iOS.
Test: platform/iphone-simulator/accessibility/file-upload-button.html
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
(-[WebAccessibilityObjectWrapper fileUploadButtonReturnsValueInTitle]):
* accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(-[WebAccessibilityObjectWrapperBase fileUploadButtonReturnsValueInTitle]):
(-[WebAccessibilityObjectWrapperBase accessibilityTitle]):
2013-04-03 Dean Jackson <dino@apple.com>
Expose settings to disable plugin snapshotting autostart and primary detection
https://bugs.webkit.org/show_bug.cgi?id=113918
Reviewed by Tim Horton.
Three new settings:
- snapshotAllPlugIns: Do not apply any heuristics - immediately snapshot a plugin.
- primaryPlugInSnapshotDetectionEnabled: Toggle snapshotting the "main" plugin in the page.
- autostartOriginPlugInSnapshottingEnabled: Toggle snapshotting based on URL origins.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Don't tell the host that we've started
if the autostartOriginPlugInSnapshottingEnabled is false.
(WebCore::HTMLPlugInImageElement::setIsPrimarySnapshottedPlugIn): Don't restart a primary
plugin if primaryPlugInSnapshotDetectionEnabled is false.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Snapshot immediately if
snapshotAllPlugIns is true. Also, don't test for autostart if
autostartOriginPlugInSnapshottingEnabled is false.
* page/Settings.in: Three new settings values.
2013-04-04 Carlos Garcia Campos <cgarcia@igalia.com>
[BlackBerry] Remove skia code from PluginViewBlackBerry
https://bugs.webkit.org/show_bug.cgi?id=113936
Reviewed by Rob Buis.
Skia is not used anymore by the BlackBerry port.
* plugins/blackberry/PluginViewBlackBerry.cpp:
(WebCore::PluginView::paint):
2013-04-04 Emil A Eklund <eae@chromium.org>
Change RenderFrameSet::computeEdgeInfo to use m-rows/m_cols directly
https://bugs.webkit.org/show_bug.cgi?id=113825
Reviewed by Eric Seidel.
Tests: fast/frames/invalid-frameset-compute-edge.html
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::computeEdgeInfo):
2013-04-04 ChangSeok Oh <changseok.oh@collabora.com>
[GTK][AC] Invalid clear ClutterContent of ClutterActor
https://bugs.webkit.org/show_bug.cgi?id=113758
Reviewed by Gustavo Noronha Silva.
Using clutter_actor_set_content(actor, 0) is better to clear ClutterContent of ClutterActor.
Actually the ClutterContent referece is cleared in the API if we set 0.
No new tests since no functionality changed.
* platform/graphics/clutter/GraphicsLayerActor.cpp:
(graphicsLayerActorUpdateTexture):
2013-04-04 Christophe Dumez <ch.dumez@sisa.samsung.com>
[Cairo] Fix canvas drawing of SVG-based patterns and remove NativeImageCairo
https://bugs.webkit.org/show_bug.cgi?id=113929
Reviewed by Martin Robinson.
Make (Pass)NativeImagePtr typedefs to (Pass)RefPtr<cairo_surface_t> instead
of NativeImageCairo*. Now that we switch to using smart pointers,
NativeImageCairo is removed as it made no sense to make it ref counted when
it merely held a single ref counted member.
Now that Cairo is using smart pointers for (Pass)NativeImagePtr, this patch
also enables the implementation of SVGImage::nativeImageForCurrentFrame()
for USE(CAIRO) as well. This effectively fixes canvas drawing of SVG-based
patterns for Cairo-based ports.
No new tests, covered by svg/canvas/canvas-pattern-svg.html.
* GNUmakefile.list.am: Remove NativeImageCairo.* for GTK.
* PlatformEfl.cmake: Remove NativeImageCairo.* for EFL.
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
Remove NativeImageCairo.* for Win.
* platform/graphics/BitmapImage.cpp:
(WebCore::FrameData::reportMemoryUsage):
Update MemoryClassInfo::addRawBuffer() call now that m_frame is a RefPtr
for USE(CAIRO).
* platform/graphics/BitmapImage.h:
(BitmapImage):
Remove factory method taking a cairo_surface_t* in argument. This is useless
now that PassNativeImagePtr is a typedef to PassRefPtr<cairo_surface_t> and
there is already a factory method taking a PassNativeImagePtr in argument.
* platform/graphics/NativeImagePtr.h:
(WebCore):
Make PassNativeImagePtr a typedef to PassRefPtr<cairo_surface_t> and
NativeImagePtr a typedef to RefPtr<cairo_surface_t>, instead of
NativeImageCairo*. Moving to smart pointers is needed to enable implementation
of SVGImage::nativeImageForCurrentFrame() for Cairo.
* platform/graphics/cairo/BitmapImageCairo.cpp:
(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::checkForSolidColor):
(WebCore::FrameData::clear):
* platform/graphics/cairo/GraphicsContext3DCairo.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
* platform/graphics/cairo/ImageCairo.cpp:
(WebCore::Image::drawPattern):
Update Cairo graphics code to reflect the (Pass)NativeImagePtr type changes.
* platform/graphics/cairo/NativeImageCairo.cpp: Removed.
* platform/graphics/cairo/NativeImageCairo.h: Removed.
* platform/graphics/cairo/PatternCairo.cpp:
(WebCore::Pattern::createPlatformPattern):
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
* platform/graphics/efl/ImageEfl.cpp:
(WebCore::BitmapImage::getEvasObject):
* platform/graphics/gtk/ImageGtk.cpp:
(WebCore::BitmapImage::getGdkPixbuf):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::BitmapTextureGL::updateContents):
* platform/graphics/win/ImageCairoWin.cpp:
(WebCore::BitmapImage::create):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
* platform/gtk/DragImageGtk.cpp:
(WebCore::createDragImageFromImage):
* platform/image-decoders/cairo/ImageDecoderCairo.cpp:
(WebCore::ImageFrame::asNewNativeImage):
* platform/win/DragImageCairoWin.cpp:
(WebCore::createDragImageFromImage):
Update code to reflect the (Pass)NativeImagePtr type changes.
* svg/graphics/SVGImage.cpp:
(WebCore):
* svg/graphics/SVGImage.h:
Enable SVGImage::nativeImageForCurrentFrame() for USE(CAIRO).
2013-04-04 Ed Bartosh <bartosh@gmail.com>
[EFL] --minimal build fails with 'error: unused variable'
https://bugs.webkit.org/show_bug.cgi?id=113903
Reviewed by Gustavo Noronha Silva.
Moved variable definition under #if where it's used
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::restartedCallback):
2013-04-04 Andreas Kling <akling@apple.com>
Global FontPlatformData cache should use OwnPtr.
<http://webkit.org/b/111939>
Reviewed by Anders Carlsson.
Let the global FontPlatformData use OwnPtr instead of raw pointers + deleteAllValues().
* platform/graphics/FontCache.cpp:
(WebCore::FontCache::getCachedFontPlatformData):
(WebCore::FontCache::purgeInactiveFontData):
(WebCore::FontCache::invalidate):
Tweaked code for OwnPtr. Also made getCachedFontPlatformData() do one hash lookup
instead of two.
* platform/graphics/FontCache.h:
* platform/graphics/blackberry/FontCacheBlackBerry.cpp:
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/chromium/FontCacheAndroid.cpp:
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/mac/FontCacheMac.mm:
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/qt/FontCacheQt.cpp:
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/skia/FontCacheSkia.cpp:
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/wince/FontCacheWinCE.cpp:
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/wx/FontCacheWx.cpp:
(WebCore::FontCache::createFontPlatformData):
FontCache::createFontPlatformData() now returns a PassOwnPtr.
2013-04-04 Andreas Kling <akling@apple.com>
Render images with low-quality scaling while FrameView is being resized.
<http://webkit.org/b/113764>
<rdar://problem/13555154>
Reviewed by Antti Koivisto.
Have ImageQualityController ask the renderer's containing FrameView if it's currently in live
resize, and if so, paint all images with low-quality scaling. A high-quality repaint will happen
~0.5 sec after live resizing ends, piggybacking on the same mechanism we use to do JS-animated
resizing with low-quality scaling.
This reduces CPU time spent generating new tiles during live window resize, especially on Retina
systems where a lot of upscaling happens on legacy web content.
* rendering/RenderBoxModelObject.cpp:
(ImageQualityController):
Added an m_liveResizeOptimizationIsActive flag that tracks whether the ImageQualityController
is painting everything in low quality due to live window resize. It gets unset when the HQ
repaint timer fires and everything has been repainted properly.
(WebCore::ImageQualityController::highQualityRepaintTimerFired):
When the HQ repaint timer fires, check if the renderer's containing FrameView is still in
live resize, and if so, abort HQ repaint for now and reschedule the timer.
(WebCore::ImageQualityController::ImageQualityController):
(WebCore::ImageQualityController::objectDestroyed):
(WebCore::ImageQualityController::shouldPaintAtLowQuality):
2013-04-04 Seokju Kwon <seokju.kwon@gmail.com>
Web Inspector: fix closure compiler warnings in IndexedDBModel.js
https://bugs.webkit.org/show_bug.cgi?id=113926
Reviewed by Alexander Pavlov.
No new tests: no change in behaviour.
* inspector/front-end/IndexedDBModel.js:
2013-04-04 Xidorn Quan <quanxunzhen@gmail.com>
REGRESSION (r145870): Can't get insertion point to appear in some input and textareas on wordpress
https://bugs.webkit.org/show_bug.cgi?id=113591
Reviewed by Simon Fraser.
Since a child node could overflow its ancestor, it is not wise to check
one's radii boundary before checking whether the given point intersects
its children. This patch moves the related code down to fix the bug.
Test: fast/borders/border-radius-child.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::nodeAtPoint):
2013-04-04 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GStreamer] Virtual modifier for MediaPlayer::simulateAudioInterruption must go
https://bugs.webkit.org/show_bug.cgi?id=113851
Reviewed by Eric Carlson.
* platform/graphics/MediaPlayer.h:
(MediaPlayer): Removed virtual modifier to
simulateAudioInterruption.
2013-04-04 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Support -webkit-font-smoothing
https://bugs.webkit.org/show_bug.cgi?id=106009
Reviewed by Jocelyn Turcotte.
Remove false dependency on Qt 5.1 for the -webkit-font-smoothing property.
For now we are still keeping the dependency on Font::shouldUseSmoothing().
* platform/graphics/qt/FontPlatformDataQt.cpp:
(WebCore::FontPlatformData::FontPlatformData):
2013-04-04 Christophe Dumez <ch.dumez@sisa.samsung.com>
Regression(r142765) Broke Custom SVG cursors and SVG canvas drawing for Chromium
https://bugs.webkit.org/show_bug.cgi?id=113420
Reviewed by Stephen White.
Introduce a PassNativeImagePtr typedef that is used in place of NativeImagePtr
for method arguments and return values. This is needed as Skia now maps
NativeImagePtr to RefPtr<NativeImageSkia> and PassNativeImagePtr to
PassRefPtr<NativeImageSkia>. We move towards ref counted smart pointers so that
SVGImage::nativeImageForCurrentFrame() can transfer ownership of the native
image to the caller if needed (e.g. for SVGImage).
Provide nativeImageForCurrentFrame() implementation for SVGImage. SVGImage no
longer holds the native image internally, to save memory. It is therefore created
when nativeImageForCurrentFrame() is called and ownership is passed to the
caller. For now, this implementation is only enabled for Skia as others are using
raw pointers for PassNativeImagePtr.
Test: svg/canvas/canvas-pattern-svg.html
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::synchronousNativeIconForPageURL):
Return a PassNativeImagePtr instead of NativeImagePtr.
* loader/icon/IconDatabase.h:
(IconDatabase):
* loader/icon/IconDatabaseBase.h:
(WebCore::IconDatabaseBase::synchronousNativeIconForPageURL):
Return a PassNativeImagePtr instead of NativeImagePtr.
* platform/chromium/DragImageChromiumSkia.cpp:
(WebCore::createDragImageFromImage):
Store return value of nativeImageForCurrentFrame() in a RefPtr instead of a raw
one.
* platform/chromium/PasteboardChromium.cpp:
(WebCore::Pasteboard::writeImage):
Store return value of nativeImageForCurrentFrame() in a RefPtr<NativeImageSkia>
instead of a NativeImagePtr. While these are equivalent, the former is more
readable in Skia-specific code.
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::frameAtIndex):
Return a PassNativeImagePtr instead of a NativeImagePtr.
(WebCore::BitmapImage::nativeImageForCurrentFrame):
Return a PassNativeImagePtr instead of a NativeImagePtr.
* platform/graphics/BitmapImage.h:
(WebCore::BitmapImage::create):
Take a PassNativeImagePtr in argument instead of a NativeImagePtr.
(BitmapImage): Ditto.
* platform/graphics/GraphicsContext.h:
(GraphicsContext): Ditto.
* platform/graphics/GraphicsContext3D.h:
(ImageExtractor):
Keep NativeImageSkia in a RefPtr instead of OwnPtr, now that it is refcounted.
* platform/graphics/Image.h:
(WebCore::Image::nativeImageForCurrentFrame):
Return a PassNativeImagePtr instead of a NativeImagePtr.
* platform/graphics/ImageBuffer.h:
(ImageBuffer):
Have copyNativeImage() return a PassNativeImagePtr instead of a NativeImagePtr.
* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::createFrameAtIndex):
Return a PassNativeImagePtr instead of a NativeImagePtr.
* platform/graphics/ImageSource.h:
Have createFrameAtIndex() return a PassNativeImagePtr instead of a NativeImagePtr.
* platform/graphics/NativeImagePtr.h:
Map NativeImagePtr to a RefPtr<NativeImageSkia> instead of NativeImageSkia* for Skia.
Introduce new PassNativeImagePtr that maps to PassRefPtr<NativeImageSkia> for Skia
and is equivalent to NativeImagePtr for other ports. We now use smart pointers for
the native image so that SVGImage::nativeImageForCurrentFrame() can pass ownership
of the native image to the caller, unlike BitmapImage::nativeImageForCurrentFrame().
* platform/graphics/blackberry/ImageBlackBerry.cpp:
(WebCore::ImageFrame::asNewNativeImage):
Return a PassNativeImagePtr instead of a NativeImagePtr.
(WebCore::BitmapImage::BitmapImage):
Take a PassNativeImagePtr instead of a NativeImagePtr in argument.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawNativeImage): Ditto.
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::copyNativeImage):
Take a PassNativeImagePtr instead of a NativeImagePtr in argument.
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::setContentsToImage):
Store return value of nativeImageForCurrentFrame() in a RefPtr instead of a raw one.
* platform/graphics/filters/skia/FEBlendSkia.cpp:
(WebCore::FEBlend::platformApplySkia): Ditto.
* platform/graphics/filters/skia/FEColorMatrixSkia.cpp:
(WebCore::FEColorMatrix::platformApplySkia): Ditto.
* platform/graphics/filters/skia/FEComponentTransferSkia.cpp:
(WebCore::FEComponentTransfer::platformApplySkia): Ditto.
* platform/graphics/filters/skia/FEDisplacementMapSkia.cpp:
(WebCore::FEDisplacementMap::platformApplySkia): Ditto.
* platform/graphics/filters/skia/FELightingSkia.cpp:
(WebCore::FELighting::platformApplySkia): Ditto.
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageFrame::asNewNativeImage):
Return a PassNativeImagePtr instead of a NativeImagePtr.
* platform/graphics/qt/StillImageQt.cpp:
(WebCore::StillImage::nativeImageForCurrentFrame):
Return a PassNativeImagePtr instead of a NativeImagePtr.
* platform/graphics/qt/StillImageQt.h:
(StillImage): Ditto.
* platform/graphics/skia/GraphicsContext3DSkia.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
No longer need to adopt the return value of asNewNativeImage() now
that it returns a PassRefPtr instead of a raw one.
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::ImageBuffer::copyImage):
(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):
Call NativeImageSkia::create() factory method now that the constructor
is private.
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::FrameData::clear):
Just call clear() on m_frame instead of explicitely deleting it now
that it is a RefPtr.
(WebCore::Image::drawPattern):
Store return value of nativeImageForCurrentFrame() in a RefPtr instead
of a raw one.
(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::checkForSolidColor):
Store return value of frameAtIndex() in a RefPtr instead of a raw one.
(WebCore::BitmapImage::draw):
Store return value of nativeImageForCurrentFrame() in a RefPtr instead
of a raw one.
* platform/graphics/skia/NativeImageSkia.cpp:
Add new constructor taking all members in argument. This is used for
cloning a NativeImageSkia object.
(WebCore::NativeImageSkia::NativeImageSkia):
(WebCore::NativeImageSkia::deepSkBitmapCopy):
Add convenience function to make a deep copy of a SkBitmap.
* platform/graphics/skia/NativeImageSkia.h:
(WebCore):
(WebCore::NativeImageSkia::create):
(NativeImageSkia):
Make NativeImageSkia subclass RefCounted. Make the constructor private
and add a factory method instead that returns a PassRefPtr.
(WebCore::NativeImageSkia::clone):
Add a clone() method now that NativeImageSkia is refcounted and is no
longer copyable.
* platform/graphics/skia/PatternSkia.cpp:
(WebCore::Pattern::platformPattern):
Store return value of nativeImageForCurrentFrame() in a RefPtr instead
of a raw one.
* platform/graphics/wince/ImageWinCE.cpp:
(WebCore::ImageFrame::asNewNativeImage):
Return a PassNativeImagePtr instead of a NativeImagePtr.
* platform/image-decoders/ImageDecoder.h:
(ImageFrame):
Have asNewNativeImage() return a PassNativeImagePtr instead of a
NativeImagePtr.
(WebCore::ImageFrame::getAddr):
(WebCore::ImageFrame::setSkBitmap):
(WebCore::ImageFrame::getSkBitmap):
(WebCore::ImageFrame::width):
(WebCore::ImageFrame::height):
Update use of m_bitmap now that it is a pointer type and call
NativeImageSkia::create() to construct a NativeImageSkia object now
that the constructor is private.
* platform/image-decoders/cairo/ImageDecoderCairo.cpp:
(WebCore::ImageFrame::asNewNativeImage):
Return a PassNativeImagePtr instead of a NativeImagePtr.
* platform/image-decoders/openvg/ImageDecoderOpenVG.cpp:
(WebCore::ImageFrame::asNewNativeImage): Ditto.
* platform/image-decoders/skia/ImageDecoderSkia.cpp:
(WebCore::ImageFrame::ImageFrame):
Initialize m_bitmap in the constructor now that it is a pointer
type and we need NativeImageSkia's default constructor to be
called.
(WebCore::ImageFrame::operator=):
Call NativeImageSkia's new clone() method to copy m_bitmap as
NativeImageSkia is now RefCounted and no longer copyable.
(WebCore::ImageFrame::clearPixelData):
(WebCore::ImageFrame::zeroFillPixelData):
(WebCore::ImageFrame::copyBitmapData):
(WebCore::ImageFrame::setSize):
Update use of m_bitmap now that it is a pointer type.
(WebCore::ImageFrame::asNewNativeImage):
Return a PassNativeImagePtr instead of a NativeImagePtr.
Call NativeImageSkia's clone method now that it is no longer
copyable.
(WebCore::ImageFrame::setHasAlpha):
(WebCore::ImageFrame::setStatus):
Update use of m_bitmap now that it is a pointer type.
* platform/image-decoders/wx/ImageDecoderWx.cpp:
(WebCore::ImageFrame::asNewNativeImage):
Return a PassNativeImagePtr instead of a NativeImagePtr.
* svg/graphics/SVGImage.cpp:
(WebCore):
(WebCore::SVGImage::nativeImageForCurrentFrame):
Add implementation of nativeImageForCurrentFrame() for SVGImage as
it is needed for SVG custom cursor support and Canvas drawing of
patterns containing SVG images. As SVGImage no longer keep the
native image internally to save memory, the implementation creates
the native image when nativeImageForCurrentFrame() and passes
its ownership to the caller.
* svg/graphics/SVGImage.h:
Override Image::nativeImageForCurrentFrame() and remove dummy
implementation of frameAtIndex() as it is not needed / used.
* svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::nativeImageForCurrentFrame):
Add implementation of nativeImageForCurrentFrame() which merely
forwards the call to the Image being contained.
* svg/graphics/SVGImageForContainer.h:
Override Image::nativeImageForCurrentFrame().
2013-04-04 Andrei Bucur <abucur@adobe.com>
[CSSRegions] RenderFlowThread::renderRegionForLine should use a faster search method
https://bugs.webkit.org/show_bug.cgi?id=66921
Reviewed by David Hyatt.
The RenderFlowThread::regionAtBlockOffset() function is a hot path for the code using
flow threads because it translates from block coordinates to regions.
Currently the method is O(n), using a linear search through the regions chain to find the
region where a block offset lands.
The patch improves this search by using an interval tree (PODIntervalTree). Before a flow
thread is laid out, each region is updated to hold the size of the portion of the flow it
will receive. This information is gathered inside the interval tree and used to speedup the
search in RenderFlowThread::regionAtBlockOffset(). The algorithm uses a custom adapter
simplified for looking up offsets inside the interval tree.
For now, the interval tree is cleared every time the flow thread portions list is updated.
The implementation can be improved but induces some cmplexity as we'd have to manually manage
the life cycle of the tree's nodes. The performance gains are good enough as is to make this
only optional.
Another important change is now the flow thread portion rectangles will not overflow when
using auto-height regions (or very large regions). The maximum size of the flow is set to
LayoutUnit::max()/2. Any region forcing a greater size will be capped so the thread
won't overflow.
Performance test results:
/Layout/RegionsAuto:Time ms 699.95 181.20 74.11% Better
/Layout/RegionsAutoMaxHeight:Time ms 2083.00 308.55 85.19% Better
/Layout/RegionsFixed:Time ms 726.10 223.65 69.20% Better
/Layout/RegionsFixedShort:Time ms 869.60 288.25 66.85% Better
Tests: See PerformanceTests/Layout/Regions*
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::regionAtBlockOffset):
(WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
(WebCore::RenderFlowThread::RegionSearchAdapter::collectIfNeeded):
(WebCore):
* rendering/RenderFlowThread.h:
(WebCore):
2013-04-04 Seokju Kwon <seokju.kwon@gmail.com>
[Qt] WebSocket errors should be logged to console
https://bugs.webkit.org/show_bug.cgi?id=113842
Reviewed by Jocelyn Turcotte.
Pass the reason of a failure to SocketStreamError instance
and notify it via SocketStreamHandleClient::didFailSocketStream().
Test : http/tests/inspector/console-websocket-error.html
* platform/network/qt/SocketStreamError.h:
(WebCore::SocketStreamError::SocketStreamError):
* platform/network/qt/SocketStreamHandleQt.cpp:
(WebCore::SocketStreamHandlePrivate::SocketStreamHandlePrivate):
(WebCore::SocketStreamHandlePrivate::socketErrorCallback):
2013-04-04 Ed Bartosh <bartosh@gmail.com>
[ATK] build fails when accessibility is turned off
https://bugs.webkit.org/show_bug.cgi?id=113699
Reviewed by Gyuyoung Kim.
* editing/atk/FrameSelectionAtk.cpp: Wrapped accessibility code in #if HAVE(ACCESSIBILITY)
2013-04-04 Seokju Kwon <seokju.kwon@gmail.com>
Web Inspector: fix closure compiler warnings in the profiler code HeapSnapshotDataGrids.js
https://bugs.webkit.org/show_bug.cgi?id=113922
Reviewed by Yury Semikhatsky.
No new tests: no change in behaviour.
* inspector/front-end/HeapSnapshotDataGrids.js:
2013-04-03 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL] Add a decoration image to search input field
https://bugs.webkit.org/show_bug.cgi?id=113552
Reviewed by Laszlo Gombos.
Though EFL port has a decoration image for search input field, we didn't use it.
Start to show it.
Tests: fast/forms/search-cancel-button-style-sharing.html
fast/forms/search-rtl.html
fast/css/input-search-padding.html
fast/css/text-input-with-webkit-border-radius.html
fast/css/text-overflow-input.html
fast/forms/box-shadow-override.html
fast/forms/control-restrict-line-height.html
fast/forms/input-appearance-height.html
fast/forms/placeholder-position.html
fast/forms/placeholder-pseudo-style.html
fast/forms/search-styled.html
fast/forms/search-vertical-alignment.html
fast/forms/searchfield-heights.html
fast/repaint/search-field-cancel.html
fast/replaced/width100percent-searchfield.html
* platform/efl/RenderThemeEfl.cpp:
(WebCore):
(WebCore::RenderThemeEfl::supportsDataListUI):
(WebCore::RenderThemeEfl::adjustSearchFieldDecorationStyle):
2013-04-03 Kent Tamura <tkent@chromium.org>
Input value/placeholder is not redrawn when the input height grows
https://bugs.webkit.org/show_bug.cgi?id=113845
Reviewed by Ojan Vafai.
Test: fast/forms/text/text-height-grow.html
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::styleDidChange):
We need relayout of the inner text element.
2013-04-03 Shawn Singh <shawnsingh@chromium.org>
Add comment to clarify isStackingContext() in RenderLayer.h
https://bugs.webkit.org/show_bug.cgi?id=113909
Reviewed by Simon Fraser.
It was not obvious how the implementation of isStackingContext()
was correct, a comment is appropriate here for anyone who reads
this code in the future.
Just a change in comment, no test needed.
* rendering/RenderLayer.h:
2013-04-03 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Removed ExclusionShape dead code
https://bugs.webkit.org/show_bug.cgi?id=113904
Reviewed by Dirk Schulze.
No new tests, just removing dead code.
* rendering/ExclusionShape.cpp:
(WebCore::ExclusionShape::createExclusionShape):
* rendering/ExclusionShape.h:
(ExclusionShape):
2013-04-03 Otto Derek Cheung <otcheung@rim.com>
[BlackBerry] Switch MediaPlayerPrivateBlackBerry.cpp's timer to use CLOCK_MONOTONIC
https://bugs.webkit.org/show_bug.cgi?id=113900
Reviewed by Rob Buis.
Internally Reviewed by Jeff Rogers.
Timers should use CLOCK_MONOTONIC to avoid undesirable effects when
the user switches the system time.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::drawBufferingAnimation):
2013-04-03 Dave Michael <dmichael@chromium.org>
Unable to focus on embedded plugins such as Flash via javascript focus()
https://bugs.webkit.org/show_bug.cgi?id=32292
Reviewed by Ryosuke Niwa.
Make embed, object, and applet elements support focus() when
appropriate. Prior to this patch, javascript focus() had no effect on
embed, object, or applet elements unless tabindex or contenteditable is
set. With this patch, focus() will focus the element unless the plugin
content has failed to load (i.e., we are showing either fallback content
or an unavailable plugin indicator).
Test: plugins/focus.html
java/focus.html
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::supportsFocus):
Overridden to return true except when the plugin content has failed to load.
* html/HTMLPlugInElement.h:
(WebCore::HTMLPlugInElement::useFallbackContent):
Moved up from HTMLPlugInImageElement.
(WebCore::HTMLPlugInElement::supportsFocus):
* html/HTMLPlugInElement.h:
(WebCore::HTMLPlugInImageElement::useFallbackContent):
Removed. Now the implementation is inherited from HTMLPlugInElement.
2013-04-03 Glenn Adams <glenn@skynav.com>
Element boundaries prevent Japanese line break opportunities
https://bugs.webkit.org/show_bug.cgi?id=105692
Reviewed by Darin Adler.
Introduce use of prior context when using text break iterators
in non-ASCII path through nextBreakablePosition(). This enables
the use of line break context across an element boundary for
the non-ASCII path. Use of this context with the ASCII path was
enabled by https://bugs.webkit.org/show_bug.cgi?id=17427.
Performance tests of line layout and html5 parsing show that this
patch provides an approximately 4% improvement with Japanese and
no statistically significant regression with ASCII path. Parsing
(html5-full-render) performance is not significantly affected.
Tests: fast/text/line-break-between-text-nodes-cjk.html
fast/text/line-break-between-text-nodes-latin1.html
Expect rebaselines will be needed due to different line breaks:
fast/text/international/003.html
fast/text/international/text-combine-image-test-expected.html
fast/text/writing-mode/Kusa-Makura-background-canvas.html
* platform/text/TextBreakIterator.cpp:
(WebCore::acquireLineBreakIterator): Pass prior context to non-ICU path.
* platform/text/TextBreakIterator.h:
(WebCore::LazyLineBreakIterator::priorContextLength): Added.
(WebCore::LazyLineBreakIterator::get): Pass prior context to ICU path.
(WebCore::LazyLineBreakIterator::resetStringAndReleaseIterator): Editorial.
* platform/text/TextBreakIteratorICU.cpp:
Use prior context from line break iterators. Requires
adding new UTF16 (UChar*) text provider and reimplementing
Latin1 (LChar*) text provider. Implementation is optimized
by using generic functionality that applies to both string
sources.
(WebCore::textPinIndex): Added.
(WebCore::textNativeLength): Added.
(WebCore::textFixPointer): Added.
(WebCore::textClone): Added.
(WebCore::textExtract): Added.
(WebCore::textClose): Added.
(WebCore::textGetContext): Added.
(WebCore::textLatin1GetCurrentContext): Added.
(WebCore::textLatin1MoveInPrimaryContext): Added.
(WebCore::textLatin1SwitchToPrimaryContext): Added.
(WebCore::textLatin1MoveInPriorContext): Added.
(WebCore::textLatin1SwitchToPriorContext): Added.
(WebCore::textInChunkOrOutOfRange): Added.
(WebCore::textLatin1Access): Added.
(WebCore::textInit): Added.
(WebCore::textOpenLatin1): Added.
(WebCore::textUTF16GetCurrentContext): Added.
(WebCore::textUTF16MoveInPrimaryContext): Added.
(WebCore::textUTF16SwitchToPrimaryContext): Added.
(WebCore::textUTF16MoveInPriorContext): Added.
(WebCore::textUTF16SwitchToPriorContext): Added.
(WebCore::textUTF16Access): Added.
(WebCore::textOpenUTF16): Added.
(WebCore::acquireLineBreakIterator): Use new text providers with prior context.
* platform/text/wchar/TextBreakIteratorWchar.cpp:
(WebCore::acquireLineBreakIterator): Pass prior context to non-ICU path.
* rendering/break_lines.cpp:
(WebCore::nextBreakablePosition): Use prior context in ICU path.
2013-04-03 Christophe Dumez <ch.dumez@sisa.samsung.com>
[Chromium] Bad cast from BitmapImageSingleFrameSkia to BitmapImage
https://bugs.webkit.org/show_bug.cgi?id=113492
Reviewed by Stephen White.
Remove BitmapImageSingleFrameSkia and have ImageBufferSkia construct
BitmapImage objects instead via an intermediate NativeImageSkia.
No new tests, covered by existing tests.
* WebCore.gypi:
* platform/graphics/filters/skia/FEGaussianBlurSkia.cpp: Remove
include for BitmapImageSingleFrameSkia.h header.
* platform/graphics/skia/BitmapImageSingleFrameSkia.cpp: Removed.
* platform/graphics/skia/BitmapImageSingleFrameSkia.h: Removed.
* platform/graphics/skia/ImageBufferSkia.cpp: Construct BitmapImage
objects instead of BitmapImageSingleFrameSkia ones.
(WebCore::ImageBuffer::copyImage):
(WebCore::drawNeedsCopy):
(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::BitmapImage::BitmapImage): Implement BitmapImage constructor
that takes an NativeImageSkia* in argument.
(WebCore):
(WebCore::BitmapImage::draw): Remove m_source.initialized() check as
this will return false for BitmapImage objects constructed from a
NativeImageSkia, due to the lack of decoder.
* platform/graphics/skia/NativeImageSkia.cpp:
(WebCore::NativeImageSkia::NativeImageSkia): Add parameter to the
NativeImageSkia constructor so that the caller can request a deep copy
instead of a shallow one. This is needed by the ImageBuffer.
* platform/graphics/skia/NativeImageSkia.h:
* platform/image-decoders/ImageDecoder.h:
(WebCore::ImageFrame::setSkBitmap):
2013-04-03 David Vest <davve@opera.com>
ASSERTION FAILED: resultAnimationElement->m_animatedType
https://bugs.webkit.org/show_bug.cgi?id=93528
Reviewed by Philip Rogers.
When the order of animation elements change within an animation
group, we can't assume that the resultElement is the same as it
was when the animation was frozen. Make sure to reset the
animation type for the resultElement before updating the
animation.
Test: svg/animations/animation-dependency-crash.html
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::progress):
2013-04-03 Timothy Hatcher <timothy@apple.com>
Stop unconditionally enabling JavaScript execution when closing the Web Inspector.
https://webkit.org/b/113889
rdar://problem/12281794
Reviewed by Joseph Pecoraro.
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::InspectorPageAgent): Initialize m_originalScriptExecutionDisabled.
(WebCore::InspectorPageAgent::enable): Populate m_originalScriptExecutionDisabled based on current setting.
(WebCore::InspectorPageAgent::disable): Restore previous setting.
* inspector/InspectorPageAgent.h:
(InspectorPageAgent): Added m_originalScriptExecutionDisabled.
2013-04-03 Dean Jackson <dino@apple.com>
Cross fade into restarted plugin
https://bugs.webkit.org/show_bug.cgi?id=113868
Reviewed by Tim Horton.
Allow a restarted plugin to fade in over its snapshot, avoiding the abrupt
flash of empty content. The WebCore part of this patch marks the plugin
element as restarted, and draws the snapshot for a short amount of time
as the plugin is restarting. After the plugin has reappeared, we stop drawing
the snapshot.
There is a little bit of drive-by whitespace removal in HTMLPlugInImageElement.
* html/HTMLPlugInElement.h:
(WebCore::HTMLPlugInElement::restartedPlugin): New method indicating if the plugin has been restarted.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Initialise new timer and member variable.
(WebCore::HTMLPlugInImageElement::setDisplayState): If we are moving into a restarting state, make sure
to remember this and also start a timer so that we show the snapshot for while.
(WebCore::HTMLPlugInImageElement::removeSnapshotTimerFired): No need to draw the snapshot from here on.
* html/HTMLPlugInImageElement.h:
(HTMLPlugInImageElement): Member variable to remember if we've restarted.
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::paintContents): Only exit early from the paint if we're not a restarting
plugin, otherwise we do want to draw the snapshot if there is one.
* rendering/RenderLayerBacking.cpp:
(WebCore::isRestartedPlugin): Detects a restarted plugin.
(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Don't become a simple container
compositing layer if you're a restarted plugin.
2013-04-03 John Griggs <jgriggs@blackberry.com>
[BlackBerry] Adjustments to media controls appearance.
https://bugs.webkit.org/show_bug.cgi?id=113816
https://przilla.ott.qnx.com/bugzilla/show_bug.cgi?id=316398
https://przilla.ott.qnx.com/bugzilla/show_bug.cgi?id=316438
Updates to the BlackBerry media controls:
- extend the timeline slider.
- move the volume slider for audio elements up so it does not overlap the main panel.
- upstream some other cosmetic changes to media controls that were not previously upstreamed.
Reviewed by Rob Buis.
BlackBerry-specific, cosmetic change; No new tests required.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
(WebCore::RenderThemeBlackBerry::paintMediaPlayButton):
(WebCore::RenderThemeBlackBerry::paintMediaMuteButton):
(WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
(WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
(WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderThumb):
2013-04-03 Christophe Dumez <ch.dumez@sisa.samsung.com>
[Gstreamer] Use gst_buffer_extract() in copyGstreamerBuffersToAudioChannel()
https://bugs.webkit.org/show_bug.cgi?id=113880
Reviewed by Philippe Normand.
copyGstreamerBuffersToAudioChannel() was mapping the GstBuffer content to memcpy
it to the AudioChannel buffer. This patch leverages gst_buffer_extract() to
simplify the code as it does exactly what we need: gst_buffer_map, memcpy,
gst_buffer_unmap and error handling.
Also replace GstBuffer NULL check by an assertion as we already make sure they
are not NULL before adding them to the list. Additionally, we now call
audioChannel->mutableData() only once instead of once per iteration. It is
a bit better as the getter does some work internally.
No new tests, no behavior change.
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::copyGstreamerBuffersToAudioChannel):
2013-04-03 Antoine Quint <graouts@apple.com>
Web Inspector: DOM.highlightRect() and DOM.highlightQuad() should allow for page coordinates
https://bugs.webkit.org/show_bug.cgi?id=113869
Add a new "usePageCoordinates" parameter to DOM.highlightRect() and DOM.highlightQuad()
allowing to specify that the rect or quad to highlight should be converted to page
coordinates instead of using the default viewport coordinates.
Reviewed by Timothy Hatcher.
* inspector/Inspector.json:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::highlightRect):
(WebCore::InspectorDOMAgent::highlightQuad):
(WebCore::InspectorDOMAgent::innerHighlightQuad):
Store the "usePageCoordinates" parameter obtained from the protocol calls onto the
highlight configuration object so that it may be used within the InspectorOverlay.
* inspector/InspectorDOMAgent.h:
(InspectorDOMAgent):
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::highlightQuad):
Check the highlight configuration for the "usePageCoordinates" parameter and
apply the inverse of the page's scroll offset to the quad if it's true.
* inspector/InspectorOverlay.h:
(HighlightConfig):
(WebCore::Highlight::setDataFromConfig):
(Highlight):
2013-04-03 Kangil Han <kangil.han@samsung.com>
Add omitted reference operator of VisiblePosition in AccessibilityObject
https://bugs.webkit.org/show_bug.cgi?id=113879
Reviewed by Darin Adler.
Seems reference operator has been omitted in startOfStyleRange function, so add it.
* accessibility/AccessibilityObject.cpp:
(WebCore::startOfStyleRange):
2013-04-03 Jessie Berlin <jberlin@apple.com>
Update the localizable strings file.
Rubber-stamped by Michael Saboff.
* English.lproj/Localizable.strings:
2013-04-03 David Kilzer <ddkilzer@apple.com>
BUILD FIX (r147493): Fix number of arguments to AudioDestinationIOS constructor
Fixes the following build failures:
Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp:84:25: error: no matching constructor for initialization of 'WebCore::AudioDestinationIOS'
return adoptPtr(new AudioDestinationIOS(callback, sampleRate));
^ ~~~~~~~~~~~~~~~~~~~~
In file included from Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp:36:
Source/WebCore/platform/audio/ios/AudioDestinationIOS.h:44:5: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
AudioDestinationIOS(AudioIOCallback&, unsigned numberOfOutputChannels, double sampleRate);
^
Source/WebCore/platform/audio/ios/AudioDestinationIOS.h:42:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class AudioDestinationIOS : public AudioDestination, public AudioSessionListener {
^
Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp:101:22: error: out-of-line definition of 'AudioDestinationIOS' does not match any declaration in 'WebCore::AudioDestinationIOS'
AudioDestinationIOS::AudioDestinationIOS(AudioIOCallback& callback, double sampleRate)
^~~~~~~~~~~~~~~~~~~
2 errors generated.
* platform/audio/ios/AudioDestinationIOS.h:
(AudioDestinationIOS): Remove numberOfOutputChannels argument.
2013-04-03 David Kilzer <ddkilzer@apple.com>
BUILD FIX (r147494): -[AVAudioSession setCategory:error:] takes NSError**
Fixes the following build failure:
Source/WebCore/platform/audio/ios/AudioSessionIOS.mm:151:71: error: cannot initialize a parameter of type 'NSError **' with an lvalue of type 'NSError *'
[[AVAudioSession sharedInstance] setCategory:categoryString error:error];
^~~~~
* platform/audio/ios/AudioSessionIOS.mm:
(WebCore::AudioSession::setCategory): Add '&' operator.
2013-04-03 Felipe Zimmerle <felipe@zimmerle.org>
CSP blocks inline style when cloning a node
https://bugs.webkit.org/show_bug.cgi?id=112270
Reviewed by Adam Barth.
Checks if the Element is being cloned, if so, the application of the
style is allowed otherwise it relies on default permission mechanism.
Test: http/tests/security/contentSecurityPolicy/inline-style-allowed-while-cloning-objects.html
* dom/Element.cpp:
(WebCore::Element::attributeChanged): Added parameter
AttributeModificationReason to the method signature.
(WebCore::Element::cloneAttributesFromElement): It is now calling
attributeChanged with AttributeModificationReason parameter. In this scope
it is always set to ModifiedByCloning.
(WebCode::Element::attributeChangedFromParserOrByCloning):
Added parameter AttributeModificationReason.
* dom/Element.h: Added AttributeModificationReason enum. Used to specify
whenever an attribute was set by a cloned oject or directly.
AttributeModificationReason added to attributeChanged with the default
value set to ModifiedDirectly.
* dom/StyledElement.cpp:
(WebCore::StyledElement::attributeChanged): Added
AttributeModificationReason to the method signature.
(WebCore::StyledElement::styleAttributeChanged): Now it is checking the
reason of the update, if the reason is ModifiedDirectly check CSP
before set. If ModifiedByCloning set the attribute ignoring the CSP
policy.
* dom/StyledElement.h:
(StyledElement): Added AttributeModificationReason parameter to the methods:
attributeChanged and styleAttributeChanged, attributeChanged has
ModifiedDirectly as default value.
* svg/SVGElement.cpp:
(WebCore::SVGElement::attributeChanged): Added AttributeModificationReason
parameter to the method signature.
* svg/SVGElement.h:
(SVGElement): Added AttributeModificationReason parameter to the
attributeChanged signature with the default value set to:
ModifiedDirectly.
2013-04-03 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed 32bit buildfix after r147542.
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::didReceiveBinaryData):
2013-04-03 Christophe Dumez <ch.dumez@sisa.samsung.com>
[Gstreamer] Avoid calls to g_slist_nth_data in webKitWebAudioSrcLoop()
https://bugs.webkit.org/show_bug.cgi?id=113875
Reviewed by Philippe Normand.
webKitWebAudioSrcLoop() was iterating over 2 GSLists by using a counter and then
calling g_slist_nth_data() to get the element of each GSList. This is inefficient
because calling g_slist_nth_data() will iterate the GSList up until index 'n'.
This patch improves this by keeping pointers to the current element of each list
while iterating, so that we can simply use g_slist_next() to iterate instead
of g_slist_nth_data().
No new tests, no behavior change.
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcLoop):
2013-04-03 Keishi Hattori <keishi@webkit.org>
Actions that require user gesture don't work in window.showModalDialog in Chromium
https://bugs.webkit.org/show_bug.cgi?id=113777
Reviewed by Jochen Eisinger.
In Chromium the window for showModalDialog is not modal which causes the
UserGestureIndicator to block actions in the sub window. We introduce a
RAII that saves the UserGestureIndicator and state, then resets it before
runModalDialog, and restore it when it's done.
No new tests. Can't cause user gesture inside modal dialog.
* dom/UserGestureIndicator.cpp:
(WebCore::UserGestureIndicatorDisabler::UserGestureIndicatorDisabler): Saves and resets the topmost indicator and state.
(WebCore):
(WebCore::UserGestureIndicatorDisabler::~UserGestureIndicatorDisabler): Restores topmost indicator and state.
* dom/UserGestureIndicator.h:
(WebCore):
(UserGestureIndicatorDisabler): RAII to temporarily disable UserGestureIndicator.
(UserGestureIndicator): Allow access to UserGestureIndicatorDisabler.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::showModalDialog): Disable UserGestureIndicator while runModalDialog.
2013-04-03 Zeno Albisser <zeno@webkit.org>
[Qt] Fail gracefully if an OpenGL context could not be created.
https://bugs.webkit.org/show_bug.cgi?id=113784
In case we fail to create or adopt a valid platform OpenGL context
we do not want to provide a GraphicsContext3D instance.
Otherwise we would crash as soon as the instance is being used.
Reviewed by Jocelyn Turcotte.
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
(WebCore::GraphicsContext3D::GraphicsContext3D):
2013-04-03 ChangSeok Oh <changseok.oh@collabora.com>
[GTK][AC] Implement matrix keyframe animations with clutter ac backend
https://bugs.webkit.org/show_bug.cgi?id=110314
Reviewed by Gustavo Noronha Silva.
Clutter 1.12 doesn't support additive transform animations yet, So clutter ac backend
uses matrix animations for the case. This patch follows changeset 143369, 143343
to support matrix keyframe animations. I believe this change is easy if you understand
above two changesets.
Covered by existing animation tests.
* platform/graphics/clutter/PlatformClutterAnimation.cpp:
(WebCore::PlatformClutterAnimation::setValues):
(WebCore::PlatformClutterAnimation::addClutterKeyframeTransitionForProperty):
(WebCore):
(WebCore::PlatformClutterAnimation::addTransformTransition):
* platform/graphics/clutter/PlatformClutterAnimation.h:
(PlatformClutterAnimation):
2013-04-03 Gustavo Noronha Silva <gustavo.noronha@collabora.com>
Should close select popup when the element loses focus
https://bugs.webkit.org/show_bug.cgi?id=113220
Reviewed by Kent Tamura.
Test: fast/forms/select-popup-closes-on-blur.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::menuListDefaultEventHandler): handle the blur event, closing
the popup menu if any.
* testing/Internals.cpp:
(WebCore::Internals::isSelectPopupVisible): utility to query the select node renderer to
find out whether the popup is open or closed.
(WebCore):
* testing/Internals.h: add the new method definition.
* testing/Internals.idl: ditto.
2013-03-28 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
[Qt] Switch ContextMenu implementation to CROSS_PLATFORM_CONTEXT_MENU
https://bugs.webkit.org/show_bug.cgi?id=113535
Reviewed by Simon Hausmann.
Now Qt uses the CROSS_PLATFORM_CONTEXT_MENUS
USE flag. This flag provides a full cross-platform
representation of a ContextMenu and a ContextMenuItem.
The embedder can then decide how to show this, so neither
WebCore nor WebCore/platform need to know any platform
specifics about menus.
No new tests, no behavior changes.
* Target.pri:
* platform/ContextMenu.h:
(ContextMenu):
* platform/ContextMenuItem.h:
* platform/qt/ContextMenuItemQt.cpp:
(WebCore::ContextMenuItem::platformContextMenuItem):
* platform/qt/ContextMenuQt.cpp:
(WebCore::ContextMenu::ContextMenu):
(WebCore::ContextMenu::getContextMenuItems):
(WebCore::ContextMenu::createPlatformContextMenuFromItems):
(WebCore::ContextMenu::platformContextMenu):
2013-04-03 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Monospace font does not render in proper sizes
https://bugs.webkit.org/show_bug.cgi?id=93263
Reviewed by Jocelyn Turcotte.
Remove this patch's artificial dependency on Qt 5.1.
* platform/graphics/qt/FontPlatformDataQt.cpp:
(WebCore::FontPlatformData::FontPlatformData):
2013-04-03 Takeshi Yoshino <tyoshino@chromium.org>
Refine LOG messages in WebSocket related components
https://bugs.webkit.org/show_bug.cgi?id=113852
Reviewed by Kent Tamura.
Refine LOG messages by
- Make them contain method names to ease identifying where the event occurred.
- For consistency, make all messages print the pointer of the origin instance.
- Quote UTF8 data in LOG messages.
- For overloaded methods, add the type to clarify which one is run
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
(WebCore::WebSocket::send):
(WebCore::WebSocket::close):
(WebCore::WebSocket::contextDestroyed):
(WebCore::WebSocket::didConnect):
(WebCore::WebSocket::didReceiveMessage):
(WebCore::WebSocket::didReceiveBinaryData):
(WebCore::WebSocket::didReceiveMessageError):
(WebCore::WebSocket::didUpdateBufferedAmount):
(WebCore::WebSocket::didStartClosingHandshake):
(WebCore::WebSocket::didClose):
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::connect):
(WebCore::WebSocketChannel::subprotocol):
(WebCore::WebSocketChannel::extensions):
(WebCore::WebSocketChannel::send):
(WebCore::WebSocketChannel::bufferedAmount):
(WebCore::WebSocketChannel::close):
(WebCore::WebSocketChannel::fail):
(WebCore::WebSocketChannel::disconnect):
(WebCore::WebSocketChannel::willOpenSocketStream):
(WebCore::WebSocketChannel::didOpenSocketStream):
(WebCore::WebSocketChannel::didCloseSocketStream):
(WebCore::WebSocketChannel::didReceiveSocketStreamData):
(WebCore::WebSocketChannel::didFailSocketStream):
(WebCore::WebSocketChannel::didStartLoading):
(WebCore::WebSocketChannel::didReceiveData):
(WebCore::WebSocketChannel::didFinishLoading):
(WebCore::WebSocketChannel::didFail):
(WebCore::WebSocketChannel::appendToBuffer):
(WebCore::WebSocketChannel::processBuffer):
(WebCore::WebSocketChannel::startClosingHandshake):
(WebCore::WebSocketChannel::closingTimerFired):
* Modules/websockets/WebSocketDeflater.cpp:
(WebCore::WebSocketDeflater::~WebSocketDeflater):
(WebCore::WebSocketInflater::~WebSocketInflater):
* Modules/websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::readServerHandshake):
* platform/network/chromium/SocketStreamHandle.cpp:
(WebCore::SocketStreamHandleInternal::connect):
(WebCore::SocketStreamHandleInternal::send):
(WebCore::SocketStreamHandleInternal::close):
(WebCore::SocketStreamHandleInternal::didOpenStream):
(WebCore::SocketStreamHandleInternal::didSendData):
(WebCore::SocketStreamHandleInternal::didReceiveData):
(WebCore::SocketStreamHandleInternal::didClose):
(WebCore::SocketStreamHandleInternal::didFail):
2013-04-03 Tor Arne Vestbø <tor.arne.vestbo@digia.com>
[Qt] Update QMAKE_MAC_SDK check for Qt 5.1
Relies on QMAKE_MAC_SDK_VERSION set in features.prf
Reviewed by Simon Hausmann.
* WebCore.pri:
2013-04-03 Kristof Provost <kristof@codepro.be>
[Qt] assignToHTMLImageElement no longer exists in Qt5
https://bugs.webkit.org/show_bug.cgi?id=113639
Reviewed by Simon Hausmann.
No new tests: covered by ./Source/WebKit/qt/tests/hybridPixmap/test.html
* bridge/qt/qt_pixmapruntime.cpp:
(JSC::Bindings::QtPixmapRuntime::getClassRef):
2013-04-03 Antoine Quint <graouts@apple.com>
Web Inspector: crash in WebCore::InspectorLayerTreeAgent::buildObjectForLayer if a layer is created for an anonymous RenderObject (:first-letter)
https://bugs.webkit.org/show_bug.cgi?id=113768
The InspectorLayerTreeAgent now knows how to deal with anonymous RenderObjects
for the :first-letter and :first-line pseudo-elements.
Reviewed by Timothy Hatcher.
Test: inspector-protocol/layers/layers-anonymous.html
* inspector/Inspector.json:
Change the Layer type in the LayerTree domain to have more accurate terminology
(pseudo-element vs. pseudo-class) and a new optional isAnonymous flag for layers
associated to anonymous RenderObjects.
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
Check for anonymous RenderObjects and set the parent renderer's node as the node
for this layer since anonymous renderers have the Document as their node and this
would not be satisfactory to show in a front-end. We also check for anonymous
RenderObjects for the :first-letter and :first-line pseudo-elements and set them
in the pseudoElement property of the Layer object created such that a front-end
could correctly identify what type of pseudo-element for the associated node
yielded this layer.
(WebCore::InspectorLayerTreeAgent::idForNode):
Here we fix the actual crash by first checking if the node provided is null and
returning 0 if there's no such node. This ensures that any scenario where there
is no node associated with the RenderObject simply informs of the front-end that
no such node exists and we do not crash.
2013-04-03 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [REGRESSION(r147117)][Elements] Copy/paste keyboard shortcuts broken in "Edit as HTML"
https://bugs.webkit.org/show_bug.cgi?id=113798
Reviewed by Yury Semikhatsky.
Stop propagation of "copy" event from the multiline editor's
CodeMirror host element so that it is not handled by
WebInspector.documentCopy().
* inspector/front-end/UIUtils.js:
(.consumeCopy):
(.cleanUpAfterEditing):
* inspector/front-end/inspector.js:
(WebInspector.addMainEventListeners):
2013-04-03 Takashi Sakamoto <tasak@google.com>
With borders of differing alpha, the corners become squared off
https://bugs.webkit.org/show_bug.cgi?id=113744
Reviewed by Simon Fraser.
paintTranslucentBorderSides should pick up borders with common color
in order: top, bottom, left and right (not top, right, bottom and
left), because willBeOverdrawn depends on the assumption, borders are
drawn in order: top, bottom, left and right.
Test: fast/borders/border-left-right-same-bottom-different-color.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
2013-04-03 Mihnea Ovidenie <mihnea@adobe.com>
[New Multicolumn]Remove assert in RenderMultiColumnFlowThread::createAnonymous
https://bugs.webkit.org/show_bug.cgi?id=113855
Reviewed by Antti Koivisto.
Remove CSSRegions specific assert from new multicolumn implementation.
No change in functionality, no new tests.
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::createAnonymous):
2013-04-03 Mike West <mkwst@chromium.org>
X-Frame-Options: Blocked frames should not inherit their parent's SecurityOrigin.
https://bugs.webkit.org/show_bug.cgi?id=112903
Reviewed by Adam Barth.
This change brings WebKit in line with IE and Gecko's behavior, both of
which treat the blocked frame as being cross-origin for the purposes of
access checks ('[frame].contentWindow.location.href' is inaccessible,
for example).
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
Rather than redirecting to 'about:blank', redirect to a URL which
does not inherit the SecurityOrigin of the parent.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
Before calling cancelMainResourceLoad, ensure that the frame's
document is sandboxed into a unique origin so that it doesn't inherit
the parent's SecurityOrigin.
2013-04-03 Mikhail Naganov <mnaganov@chromium.org>
[Chromium] Implement target-densityDpi viewport property emulation
https://bugs.webkit.org/show_bug.cgi?id=110835
The value is only used in the Chromium port, when the corresponding
setting is enabled.
This is needed for supporting existing WebView-based applications
that rely on this property.
Reviewed by Adam Barth.
* dom/ViewportArguments.cpp:
(WebCore::findTargetDensityDPIValue):
(WebCore):
(WebCore::setViewportFeature):
* dom/ViewportArguments.h:
(WebCore::ViewportArguments::ViewportArguments):
(ViewportArguments):
(WebCore::ViewportArguments::operator==):
2013-04-03 Mike West <mkwst@chromium.org>
Extract URL that doesn't inherit a parent's SecurityOrigin out into a constant.
https://bugs.webkit.org/show_bug.cgi?id=113780
Reviewed by Jochen Eisinger.
We're scheduling navigations to 'data:text/html,' in XSSAuditor in
order to end up on a page that doesn't inherit its parent's
SecurityOrigin. We'll be reusing this mechainsm to solve
http://wkbug.com/112903
This patch makes us more explicit about what we're doing and why.
It doesn't change any behavior: XSSAuditor tests should still pass.
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::XSSAuditorDelegate::didBlockScript):
Use SecurityOrigin::urlWithUniqueSecurityOrigin rather than a
literal string to make our intentions clear.
* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::urlWithUniqueSecurityOrigin):
* page/SecurityOrigin.h:
Add the new static method.
2013-04-02 Chris Fleizach <cfleizach@apple.com>
clean up static casts in WebAccessibilityObjectWrapperMac.mm to methods like toAccessibilityList()
https://bugs.webkit.org/show_bug.cgi?id=113828
Reviewed by Tim Horton.
static_cast changed to toAccessibilityList().
* accessibility/AccessibilityList.h:
(WebCore::toAccessibilityList):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper roleDescription]):
2013-04-02 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r147370.
http://trac.webkit.org/changeset/147370
https://bugs.webkit.org/show_bug.cgi?id=113850
This patch is causing crashes in video tests on all Mac bots.
(Requested by jernoble_ on #webkit).
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement):
2013-04-02 James Craig <james@cookiecrook.com>
AXRoleDescripton for DL is "list"; should be "description list"
https://bugs.webkit.org/show_bug.cgi?id=111665
Reviewed by Chris Fleizach.
Defining the role and description strings, and accessors for DL.
This previously relied on getting the role and description from the platform API.
Updated existing test coverage.
* English.lproj/Localizable.strings:
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper roleDescription]):
* platform/LocalizedStrings.cpp:
(WebCore::AXDescriptionListText):
(WebCore):
* platform/LocalizedStrings.h:
(WebCore):
* platform/blackberry/LocalizedStringsBlackBerry.cpp:
(WebCore::AXDescriptionListText):
(WebCore):
* platform/chromium/LocalizedStringsChromium.cpp:
(WebCore::AXDescriptionListText):
(WebCore):
* platform/efl/LocalizedStringsEfl.cpp:
(WebCore::AXDescriptionListText):
(WebCore):
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::AXDescriptionListText):
(WebCore):
* platform/qt/LocalizedStringsQt.cpp:
(WebCore::AXDescriptionListText):
(WebCore):
2013-04-02 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] Split business logic and presentation for initiator column.
https://bugs.webkit.org/show_bug.cgi?id=113486
Reviewed by Pavel Feldman.
Currently business logic and presentation are mixed.
This prevents making cell renderer static and applying
viewport rendering, because initiator sorting function
depends on data written when cell is rendered.
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
Removed business logic. Use "initiatorInfo".
(WebInspector.NetworkDataGridNode.InitiatorComparator):
Use "initiatorInfo".
* inspector/front-end/NetworkRequest.js:
(WebInspector.NetworkRequest.prototype.initiatorInfo):
Extracted business logic from "refreshInitiatorCell".
2013-04-02 Ryosuke Niwa <rniwa@webkit.org>
needsLeopardMailQuirks should be removed
https://bugs.webkit.org/show_bug.cgi?id=113749
Reviewed by Benjamin Poulain.
Removed needsLeopardMailQuirks from settings.in after r147447.
* page/Settings.in:
2013-04-02 Jaehun Lim <ljaehun.lim@samsung.com>
[css3-text] Rendering -webkit-each-line value for text-indent from css3-text
https://bugs.webkit.org/show_bug.cgi?id=113259
Reviewed by Levi Weintraub.
CSS3 TEXT introduces new value, "each-line" for text-indent.
Indentation affects the first line of the block container as well as each line
after a forced line break, but does not affect lines after a soft wrap break.
This patch is the rendering part to support each-line value for text-indent.
It's prefixed and guarded by CSS3_TEXT flag.
Test: fast/css3-text/css3-text-indent/text-indent-each-line.html
* rendering/RenderBlock.h:
(WebCore::RenderBlock::availableLogicalWidthForLine):
(WebCore::RenderBlock::logicalRightOffsetForLine):
(WebCore::RenderBlock::logicalLeftOffsetForLine):
(WebCore::RenderBlock::startOffsetForLine):
(WebCore::RenderBlock::endOffsetForLine):
(WebCore::RenderBlock::pixelSnappedLogicalLeftOffsetForLine):
(WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine):
Rename a parameter from firstLine to shouldIndentText.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::LineWidth::LineWidth):
(WebCore::LineWidth::shouldIndentText): Return boolean according to m_shouldIndentText.
(WebCore::LineWidth::updateAvailableWidth):
(WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
(WebCore::LineWidth::fitBelowFloats):
Add enum IndentTextOrNot and m_shouldIndentText.
Use m_shouldIndentText instead of m_isFirstLine.
(WebCore::requiresIndent): Decide whether text indentation is required.
(WebCore::updateLogicalInlinePositions):
(WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
2013-04-02 Glenn Adams <glenn@skynav.com>
Generalize prior line break context state and names.
https://bugs.webkit.org/show_bug.cgi?id=113823
Reviewed by Darin Adler.
No new tests required due to no behavioral change.
* platform/text/TextBreakIterator.h:
(WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
(WebCore::LazyLineBreakIterator::lastCharacter):
(WebCore::LazyLineBreakIterator::secondToLastCharacter):
(WebCore::LazyLineBreakIterator::setPriorContext):
(WebCore::LazyLineBreakIterator::updatePriorContext):
(WebCore::LazyLineBreakIterator::resetPriorContext):
(WebCore::LazyLineBreakIterator::resetStringAndReleaseIterator):
Store previous characters as prior context buffer used directly
by line break iterator implementation. Rename members to reflect
somewhat more general usage. Also fix bad indentations.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange):
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
Use renamed line break iterator methods.
2013-04-02 Emil A Eklund <eae@chromium.org>
Padding applied twice for empty generated RenderInlines
https://bugs.webkit.org/show_bug.cgi?id=113800
Reviewed by Levi Weintraub.
The padding for empty generated content render objects is
incorrectly applied twice. Regression from r140693.
Test: fast/css-generated-content/margin-empty-content.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::inlineLogicalWidth):
2013-04-02 Levi Weintraub <leviw@chromium.org>
InlineIterator needs to be updated when RenderCombineText shrinks at a line break
https://bugs.webkit.org/show_bug.cgi?id=113733
Reviewed by Emil A Eklund.
Update stale InlineIterators that point beyond the end of a RenderCombineText that's
shrunk when RenderCombineText::combineText() is called.
Test: fast/text/international/combine-at-line-break-crash.html
* rendering/BidiRun.h:
(WebCore::BidiRun::BidiRun): Adding an assertion that runs are created within
the bounds of their associated RenderText.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::iteratorIsBeyondEndOfRenderCombineText): Added.
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Update stale iterators.
2013-04-02 Max Vujovic <mvujovic@adobe.com>
[CSS Filters] Filter outsets clipped on composited layers when filter is applied after first layout
https://bugs.webkit.org/show_bug.cgi?id=109098
Reviewed by Dean Jackson.
This patch addresses the following issues:
(1) Compositors who can compute their own filter outsets don't need WebKit to inflate the
composited layer bounds. Eventually, all platforms' compositors should be able to
compute their own filter outsets.
(2) When filter outsets change, we need to update composited layer bounds if the filters are
painted in software.
(3) When filter outsets change, we need to recompute the overlap map to promote the correct
layers to composited layers on all platforms.
Tests: css3/filters/composited-layer-bounds-after-sw-blur-animation.html
css3/filters/composited-layer-bounds-with-composited-blur.html
css3/filters/composited-layer-child-bounds-after-composited-to-sw-shadow-change.html
css3/filters/composited-layer-promotion-after-outset-overlap-change-using-composited-shadow.html
css3/filters/composited-layer-promotion-after-outset-overlap-change-using-sw-shadow.html
* platform/graphics/IntRectExtent.h:
(WebCore::IntRectExtent::isZero):
(IntRectExtent):
Make isZero public on IntRectExtent.
* rendering/RenderLayer.cpp:
(WebCore::hasOrHadFilters):
Helper function used to exit early from filters related code.
(WebCore::RenderLayer::updateFilters):
Move filter updating code from RenderLayer::styleChanged into this new method.
This method calls RenderLayerBacking::updateFilters instead of
RenderLayerBacking::updateGraphicsLayerGeometry. RenderLayerBacking::updateFilters lets
us know whether there was a filter paint mode change (i.e. the filters were painted in
software and are now painted in the compositor, or vice-versa). We need to know this
earlier, in RenderLayer::styleChanged, because we may need to rebuild the compositing
layers due to a filter paint mode change.
(WebCore::RenderLayer::styleChanged):
Add a condition for filters for setCompositingLayersNeedRebuild. If the filter outsets
on a layer changed, we need to rebuild the compositing layers because there could be new
overlap. Likewise, if there are or were filter outsets and the filter paint mode changed
the layer bounds (and child positions) may have changed. In either case, we don't
rebuild the compositing layers if there is an accelerated filter animation running.
Remove old code to detect a filter paint mode change from the end of
RenderLayer::styleChanged because it could never be executed. The old code counted on
RenderLayerBacking::canCompositeFilters to change on its own, but it doesn't change
unless updateFilters gets called. Thus, we could never enter the if statement that
calls setBackingNeedsRepaint.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateFilters):
Now return true if there was a filter paint mode change, so RenderLayer::styleChanged
can decide if it should rebuild the compositing layers.
Call updateOrRemoveFilterEffectRenderer and setContentsNeedDisplay if there was a
render mode change. We need to either destroy or create the software renderer and we
need to repaint the layer contents if there was a render mode change.
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
Don't call updateFilters here. Call it earlier in RenderLayer::styleChanged, for reasons
explained above.
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
Make updateFilters public so RenderLayer::styleChanged can call it.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::calculateCompositedBounds):
If the platform's compositor computes filter outsets for its layers internally, do not
inflate WebKit's composited bounds for filter outsets. This results in smaller layers
on Safari. Note that we still need to include filter outsets in layer bounds for other
situations like overlap testing in WebKit and when we're painting filters in software.
2013-04-02 Martin Robinson <mrobinson@igalia.com>
[GTK] Make libsecret optional
https://bugs.webkit.org/show_bug.cgi?id=113821
Reviewed by Gustavo Noronha Silva.
Don't try to use libsecret if credential storage is disabled.
* platform/gtk/GRefPtrGtk.cpp: Protect libsecret sections.
* platform/gtk/GRefPtrGtk.h: Ditto.
* platform/network/gtk/CredentialBackingStore.cpp: Ditto.
2013-04-02 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Exclusions] refactor shape-outside code to use isFloatingWithShapeOutside() helper method
https://bugs.webkit.org/show_bug.cgi?id=113799
Reviewed by Dirk Schulze.
When reviewing my patch for bug 110349, Julien mentioned that the
common test for floating with shape outside should be factored out.
This patch does that.
No new functionality, so no new tests.
* rendering/ExclusionShapeOutsideInfo.cpp:
(WebCore::ExclusionShapeOutsideInfo::isEnabledFor): Use helper method.
* rendering/RenderBox.h:
(WebCore::RenderBox::exclusionShapeOutsideInfo): Ditto.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::shouldBeNormalFlowOnly): Ditto.
* rendering/RenderObject.h:
(WebCore::RenderObject::hasPaintOffset): Ditto.
(WebCore::RenderObject::isFloatingWithShapeOutside): Add method to
encapsulate the common test.
2013-04-02 Jer Noble <jer.noble@apple.com>
Add platform AudioSession and iOS platform-specific code.
https://bugs.webkit.org/show_bug.cgi?id=113813
<rdar://problem/11701792>
Reviewed by Eric Carlson.
Replace the deprecated AudioToolbox AudioSession APIs with the new AVAudioSession API.
To protect against exposing platform specific intrinsics to cross-platform code, add a
platform generic class AudioSession, with port-specific implementations. A default
implementation is provided.
Add a new listener interface to receive interruption notifications:
* platform/audio/AudioSessionListener.h: Added.
(WebCore::AudioSessionListener::AudioSessionListener):
(WebCore::AudioSessionListener::~AudioSessionListener):
Add a platform generic AudioSession class:
* platform/audio/AudioSession.cpp: Added.
(AudioSession::sharedSession): AudioSession is a singleton object, and this is its accessor.
(AudioSession::addListener): Add the parameter to the listeners set.
(AudioSession::removeListener): Remove the parameter from the listers set.
(AudioSession::beganAudioInterruption): Iterate over the parameters.
(AudioSession::endedAudioInterruption): Ditto.
(AudioSession::AudioSession): Empty stub.
(AudioSession::~AudioSession): Ditto.
(AudioSession::setCategory): Ditto.
(AudioSession::category): Ditto.
(AudioSession::sampleRate): Ditto.
(AudioSession::numberOfOutputChannels): Ditto.
(AudioSession::setActive): Ditto.
(AudioSession::preferredBufferDuration): Ditto.
(AudioSession::setPreferredBufferDuration): Ditto.
* platform/audio/AudioSession.h: Added.
Add IOS-specific AudioSession implementation:
* platform/audio/ios/AudioSessionIOS.mm: Added.
(-[WebAudioSessionHelper initWithCallback:WebCore::]): Register for interruption notifications.
(-[WebAudioSessionHelper dealloc]): Unregister for interruption notifications.
(-[WebAudioSessionHelper interruption:]): Pass to AudioSession.
(WebCore::AudioSessionPrivate::AudioSessionPrivate): Private storage for AudioSessionIOS.
(WebCore::AudioSession::AudioSession): Create AudioSessionPrivate and WebAudioSessionHelper.
(WebCore::AudioSession::~AudioSession): Simple destructor.
(WebCore::AudioSession::setCategory): Check the current categoryOverride, and refuse to overwrite
"MediaPlayback" with "AmbientSound".
(WebCore::AudioSession::setCategoryOverride): Simple setter.
(WebCore::AudioSession::categoryOverride): Simple getter.
(WebCore::AudioSession::category): Pass to AVAudioSession.
(WebCore::AudioSession::sampleRate): Ditto.
(WebCore::AudioSession::numberOfOutputChannels): Ditto.
(WebCore::AudioSession::setActive): Ditto.
(WebCore::AudioSession::preferredBufferDuration): Ditto.
(WebCore::AudioSession::setPreferredBufferDuration): Ditto.
Use the new AudioSession class in place of explicit AudioToolbox or AVAudioSession calls:
* platform/audio/ios/AudioDestinationIOS.cpp:
(WebCore::AudioDestination::hardwareSampleRate): Pass to AudioSession.
(WebCore::AudioDestination::maxChannelCount): Ditto.
(WebCore::AudioDestinationIOS::AudioDestinationIOS): Register for listeners and activate.
(WebCore::AudioDestinationIOS::~AudioDestinationIOS): Unregister and deactivate.
(WebCore::AudioDestinationIOS::configure): Use AudioSession to set the buffer length.
* platform/audio/ios/AudioDestinationIOS.h:
Add the new files to the project:
* WebCore.xcodeproj/project.pbxproj:
2013-04-02 Jer Noble <jer.noble@apple.com>
Upstream AudioDestinationIOS.
https://bugs.webkit.org/show_bug.cgi?id=113806
Reviewed by Eric Carlson.
Upstream AudioDestinationIOS from the iOS repository.
* WebCore.xcodeproj/project.pbxproj:
* platform/audio/ios/AudioDestinationIOS.cpp: Added.
(WebCore::audioDestinations):
(WebCore::AudioDestination::create):
(WebCore::AudioDestination::hardwareSampleRate):
(WebCore::AudioDestination::maxChannelCount):
(WebCore::AudioDestinationIOS::AudioDestinationIOS):
(WebCore::AudioDestinationIOS::~AudioDestinationIOS):
(WebCore::AudioDestinationIOS::configure):
(WebCore::AudioDestinationIOS::audioDestinationInterruptionListener):
(WebCore::AudioDestinationIOS::initializeAudioSession):
(WebCore::AudioDestinationIOS::start):
(WebCore::AudioDestinationIOS::stop):
(WebCore::AudioDestinationIOS::beganAudioInterruption):
(WebCore::AudioDestinationIOS::endedAudioInterruption):
(WebCore::AudioDestinationIOS::render):
(WebCore::AudioDestinationIOS::inputProc):
(WebCore::AudioDestinationIOS::frameSizeChangedProc):
* platform/audio/ios/AudioDestinationIOS.h: Added.
(AudioDestinationIOS):
(WebCore::AudioDestinationIOS::isPlaying):
(WebCore::AudioDestinationIOS::sampleRate):
2013-04-02 Christophe Dumez <ch.dumez@sisa.samsung.com>
fast/dom/HTMLImageElement/image-alt-text.html and fast/dom/HTMLInputElement/input-image-alt-text.html are failing
https://bugs.webkit.org/show_bug.cgi?id=94198
Reviewed by Darin Adler.
Fix alt text not being displayed for img elements or input of type
"image" due to insufficient size. imageSizeForError() was adding
padding for the alt text but setImageSizeForAltText() was not. The
issue was occurring in paintReplaced() because the contentWidth() /
contentHeight() would be exactly the same size as the alt text.
However, paintReplaced() first draws an outline rect where the
image should be and then reduces the usable width / height for the
alt text by 2 so that the text does not get printed over the rect
borders. However, after decreasing the usable width / height, there
is no longer enough space to draw the text.
No new tests, already covered by existing tests.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::setImageSizeForAltText): Add padding to the text size
so that the alt text can still be drawn, despite the outline rect
borders. Such padding was already used in imageSizeForError(). Also use
ceilf() for the value returned by Font::width() instead of truncating it.
This is needed because we need to fit the whole text in the image and this
may not be the case if we truncate.
(WebCore::RenderImage::paintReplaced):
2013-04-02 Raymond Toy <rtoy@google.com>
Add support for using ARM FFT in WebAudio
https://bugs.webkit.org/show_bug.cgi?id=109755
Reviewed by Chris Rogers.
No new tests.
* WebCore.gyp/WebCore.gyp: Add dependency on openmax_dl when use_openmax_dl_fft is enabled.
* WebCore.gypi: Add source FFTFrameOpenMAXDLAndroid.cpp
* platform/audio/AudioArray.h:
(WebCore::AudioArray::allocate): Need 32-byte aligntment with the
OpenMAX DL FFT.
* platform/audio/FFTFrame.h:
(FFTFrame): Support OpenMAX DL FFT
* platform/audio/FFTFrameStub.cpp: Support OpenMAX DL FFT
* platform/audio/chromium/FFTFrameOpenMAXDLAndroid.cpp: Added. Implements the
necessary interface using the OpenMAX DL FFT routines.
(WebCore):
(WebCore::FFTFrame::FFTFrame):
(WebCore::FFTFrame::initialize):
(WebCore::FFTFrame::cleanup):
(WebCore::FFTFrame::~FFTFrame):
(WebCore::FFTFrame::multiply):
(WebCore::FFTFrame::doFFT):
(WebCore::FFTFrame::doInverseFFT):
(WebCore::FFTFrame::realData):
(WebCore::FFTFrame::imagData):
(WebCore::FFTFrame::contextForSize):
2013-04-02 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
[GStreamer] Memory leaks in MediaPlayerPrivateGStreamer
https://bugs.webkit.org/show_bug.cgi?id=113762
Reviewed by Philippe Normand.
Don't leak strings returned by gst_element_get_name() and
gst_missing_plugin_message_get_installer_detail().
No new tests. No change in behavior.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
2013-04-02 Min Qin <qinmin@chromium.org>
Fix css style for CC button on android
https://bugs.webkit.org/show_bug.cgi?id=113815
Reviewed by Adam Barth.
The default CC button size is 16px as defined in mediaControls.css. Android should use 35px.
This change fixed that problem.
Also fixed a problem that r142947 does not change the display of fullscreen button to -webkit-flex
Android does not run media layout tests currently. Will fix the test expectations when layout tests are run in content shell.
* css/mediaControlsChromiumAndroid.css:
(video::-webkit-media-controls-fullscreen-button):
(audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
2013-04-02 Alexey Proskuryakov <ap@apple.com>
[Mac] Remove WKCreateNSURLConnectionDelegateProxy
https://bugs.webkit.org/show_bug.cgi?id=113810
Reviewed by Anders Carlsson.
This WKSI function is not used any more.
* WebCore.exp.in:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2013-04-02 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r147464.
http://trac.webkit.org/changeset/147464
https://bugs.webkit.org/show_bug.cgi?id=113812
JSSQLResultSet.cpp:131:24: error: implicit conversion loses
integer precision: 'int64_t' (aka 'long long') to 'int'
[-Werror,-Wshorten-64-to-32] (Requested by xenon on #webkit).
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjAttrWithGetterException):
(WebCore::jsTestObjStringAttrWithGetterException):
(WebCore::jsTestObjWithScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::jsTestObjNullableDoubleAttribute):
(WebCore::jsTestObjNullableLongAttribute):
(WebCore::jsTestObjNullableBooleanAttribute):
(WebCore::jsTestObjNullableStringAttribute):
(WebCore::jsTestObjNullableLongSettableAttribute):
(WebCore::jsTestObjNullableStringValue):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsAttrWithGetterException):
(WebCore::jsTestTypedefsStringAttrWithGetterException):
2013-04-02 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: Make Source Frame & status bar a layout boundary
https://bugs.webkit.org/show_bug.cgi?id=112353
Reviewed by Pavel Feldman.
No new tests: no change in behaviour.
- Add View.markAsLayoutBoundary method to mark a view as a layout
boundary. This will force this view to autoupdate its height to actual
pixel value.
- Mark both CodeMirrorTextEditor and DefaultTextEditor as a layout
boundary.
- Mark main-status-bar element with a layout-boundary class.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor):
* inspector/front-end/DefaultTextEditor.js:
* inspector/front-end/View.js:
(WebInspector.View.prototype.markAsLayoutBoundary):
(WebInspector.View.prototype._processWillShow):
(WebInspector.View.prototype._processWasShown):
(WebInspector.View.prototype._processOnResize):
* inspector/front-end/inspector.css:
(.layout-boundary):
* inspector/front-end/inspector.html:
2013-04-02 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13551119> [WK2] Crashes in NetworkProcess when canceling loads
https://bugs.webkit.org/show_bug.cgi?id=113803
Reviewed by Darin Adler.
Stop using a delegate proxy. It hasn't been needed in years, and the extra layer
just adds bugs.
This specific issue gets fixed because connection retains its delegate is retained,
but a proxy does not.
* WebCore.exp.in:
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleInternal.h:
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::releaseDelegate):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
Removed code that was dealing with delegate proxy.
2013-04-02 John J. Barton <johnjbarton@chromium.org>
Web Inspector: Encapsulate SetEmbedderData/GetEmbedderData
https://bugs.webkit.org/show_bug.cgi?id=113331
Reviewed by Pavel Feldman.
Refactor to encapsulate uses of V8 Set/GetEmbedderData together
with uses of V8 Set/GetAlignedPointerInEmbedderData since these
functions operate on the same underyling array in V8.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::setContextDebugId):
(WebCore::ScriptController::contextDebugId):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::setInjectedScriptContextDebugId):
* bindings/v8/V8PerContextData.cpp:
(WebCore::V8PerContextDebugData::setContextDebugData):
(WebCore):
(WebCore::V8PerContextDebugData::contextDebugId):
(WebCore::V8PerContextDebugData::createDebugData):
(WebCore::V8PerContextDebugData::getDebugData):
(WebCore::V8PerContextDebugData::setDebugData):
* bindings/v8/V8PerContextData.h:
(V8PerContextDebugData):
(WebCore):
2013-04-02 Alexei Filippov <alph@chromium.org>
Web Inspector: Adjust toolbar labels position
https://bugs.webkit.org/show_bug.cgi?id=113805
Reviewed by Pavel Feldman.
Move the labels 1px up to make them centered.
Also fix font centering in native memory distribution snapshot.
* inspector/front-end/inspector.css:
(.toolbar-label):
* inspector/front-end/nativeMemoryProfiler.css:
(.native-snapshot-view .data-grid td):
2013-04-02 Beth Dakin <bdakin@apple.com>
Viewport constrained elements should work properly with headers and footers
https://bugs.webkit.org/show_bug.cgi?id=113743
Reviewed by Simon Fraser.
ScrollableArea::constrainScrollPositionForOverhang() needs to take headerHeight
and footerHeight into account. It also needs to use totalContentsSize() instead of
contentsSize().
Send totalContentsSize() instead of contentsSize() and also send headerHeight()
and footerHeight().
* page/FrameView.cpp:
(WebCore::FrameView::scrollOffsetForFixedPosition):
* page/FrameView.h:
(FrameView):
The scrolling tree will also need to know about header and footer heights since it
will need these values to call
ScrollableArea::constrainScrollPositionForOverhang().
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setHeaderHeight):
(WebCore::ScrollingStateScrollingNode::setFooterHeight):
* page/scrolling/ScrollingStateScrollingNode.h:
(WebCore::ScrollingStateScrollingNode::headerHeight):
(ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::footerHeight):
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
* page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::headerHeight):
(WebCore::ScrollingTreeScrollingNode::footerHeight):
(ScrollingTreeScrollingNode):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
(ScrollParameters):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
(WebCore::ScrollingCoordinatorMac::setScrollParametersForNode):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
Use footerHeight when calculating the maxValue and use headerHeight in determining
what the minimum value is.
* platform/ScrollableArea.cpp:
(WebCore::constrainedScrollPosition):
(WebCore::ScrollableArea::constrainScrollPositionForOverhang):
* platform/ScrollableArea.h:
(ScrollableArea):
2013-04-02 Stephen White <senorblanco@chromium.org>
[Skia] Enable GPU-accelerated Skia path for FEComposite filter.
https://bugs.webkit.org/show_bug.cgi?id=113797
Reviewed by Adrienne Walker.
Tests: css3/filters/effect-reference-composite-hw.html
css3/filters/effect-reference-composite.html
* WebCore.gypi:
* platform/graphics/filters/FEComposite.h:
Enable Skia DAG hook for FEComposite.
* platform/graphics/filters/skia/FECompositeSkia.cpp: Added.
(WebCore::FEComposite::createImageFilter):
Implement skia DAG builder for FEComposite, and implement generic
skia version of composite filter.
2013-04-02 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: Avoid using style.display="inline-block"
https://bugs.webkit.org/show_bug.cgi?id=113802
Reviewed by Pavel Feldman.
No new tests.
- Create class "inline-block" which will set "display: inline-block"
style.
- Use this class with DIV elements to get "inline-block" element.
* inspector/front-end/ObjectPopoverHelper.js:
(WebInspector.ObjectPopoverHelper.prototype.):
(WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
* inspector/front-end/inspector.css:
(.inline-block):
2013-04-02 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: [Timeline] warning markers are not propagated to coalesced records
https://bugs.webkit.org/show_bug.cgi?id=113789
Reviewed by Pavel Feldman.
Test: inspector/timeline/timeline-coalescing.html
* inspector/front-end/TimelinePresentationModel.js: set childHasWarning on coalescing record if the record it replaces had warnings.
(WebInspector.TimelinePresentationModel.prototype._replaceWithCoalescedRecord):
2013-04-02 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: memory instrumentation for external strings is broken
https://bugs.webkit.org/show_bug.cgi?id=113788
Reviewed by Pavel Feldman.
Native memory snapshot now provides information about JS external strings.
Test: inspector/profiler/memory-instrumentation-external-string.html
* inspector/InspectorMemoryAgent.cpp:
2013-04-02 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: memory instrumentation for external arrays is broken
https://bugs.webkit.org/show_bug.cgi?id=113790
Report pointers to external arrays as retaining ones to make sure their
size is counted correctly.
Reviewed by Pavel Feldman.
Test: inspector/profiler/memory-instrumentation-external-array.html
* inspector/InspectorMemoryAgent.cpp:
2013-04-02 Peter Beverloo <peter@chromium.org>
[JSC] Don't create a JSValue if it's not going to be used for nullable attributes
https://bugs.webkit.org/show_bug.cgi?id=112711
Reviewed by Sam Weinig.
When nullable attributes are used, it's possible that we disregard the JSValue
when null should be returned instead. This is a waste, and we should cast the
native type to a JSValue as late as possible.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(NativeValueToLocal):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjAttrWithGetterException):
(WebCore::jsTestObjStringAttrWithGetterException):
(WebCore::jsTestObjWithScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::jsTestObjNullableDoubleAttribute):
(WebCore::jsTestObjNullableLongAttribute):
(WebCore::jsTestObjNullableBooleanAttribute):
(WebCore::jsTestObjNullableStringAttribute):
(WebCore::jsTestObjNullableLongSettableAttribute):
(WebCore::jsTestObjNullableStringValue):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsAttrWithGetterException):
(WebCore::jsTestTypedefsStringAttrWithGetterException):
2013-04-02 Bem Jones-Bey <bjonesbe@adobe.com>
[css exclusions] overflow:hidden undoes shape-outside offsets
https://bugs.webkit.org/show_bug.cgi?id=110349
Reviewed by Julien Chaffraix.
When overflow: hidden was set on a float with shape-outside, the
offset from the shape-outside was being ignored. This was because the
float was being placed in the normal flow, causing the offsets to be
calculated differently. Since floats with shape outside behave like
positioned objects in many places, I have caused them to take the same
behavior as positioned objects in this case as well: the floats with
shape-outside do not get placed in the normal flow when overflow:
hidden is set.
Test: fast/exclusions/shape-outside-floats/shape-outside-floats-overflow-hidden.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::shouldBeNormalFlowOnly): Floats that have
shape-outside should not be in the normal flow.
2013-04-02 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: resource preview of html/js/css types should be on a grey background
https://bugs.webkit.org/show_bug.cgi?id=113791
Reviewed by Pavel Feldman.
No new tests.
- Add a css rule to set grey background for SourceFrame in resource view.
- Add "fill" style to SourceFrame element to setup its height.
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame):
* inspector/front-end/resourceView.css:
(.resource-view .script-view):
2013-04-02 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] Editor doesn't have yellow background in DivergedFromVM state
https://bugs.webkit.org/show_bug.cgi?id=113783
Reviewed by Pavel Feldman.
No new tests.
Force CodeMirrorTextEditor to have transparent background to inherit
background color from source frame.
* inspector/front-end/cm/cmdevtools.css:
(.CodeMirror):
2013-04-02 Jochen Eisinger <jochen@chromium.org>
Check whether popups are allowed before creating a new window
https://bugs.webkit.org/show_bug.cgi?id=113782
Reviewed by Adam Barth.
Otherwise, firing a generated mouse event at an anchor is enough to
work around the popup blocker.
Test: fast/loader/url-selected-user-gesture.html
* loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNewWindowPolicy):
2013-04-02 Jochen Eisinger <jochen@chromium.org>
When computing the percentage of the logical height, use the logical top and bottom
https://bugs.webkit.org/show_bug.cgi?id=113761
Reviewed by Ojan Vafai.
Test: fast/writing-mode/percentage-height-orthogonal-writing-modes.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePercentageLogicalHeight):
2013-04-02 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] do not show cursor in read-only mode
https://bugs.webkit.org/show_bug.cgi?id=113793
Reviewed by Alexander Pavlov.
No new tests.
Pass "nocursor" option to CodeMirror's "readonly" setting.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor.prototype.setReadOnly):
2013-04-02 Nate Chapin <japhet@chromium.org>
Unreviewed, rolling out r147402.
http://trac.webkit.org/changeset/147402
https://bugs.webkit.org/show_bug.cgi?id=112903
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
2013-04-02 ChangSeok Oh <changseok.oh@collabora.com>
[GTK][AC] Support preserves3D css property for clutter ac backend.
https://bugs.webkit.org/show_bug.cgi?id=113318
Reviewed by Gustavo Noronha Silva.
This patch brings preserve-3D css property support to WebKitGtk+ with clutter ac backed.
Most of the code is based on Mac port's implementation. The core concept is that
if a layer has preserve-3d property false, we mark itself and its immediate children
to make them flatten. And then we remove 3D factor in a modelView matrix
when applying it to each actor.
No new tests as this is covered with existing AC tests.
* platform/graphics/clutter/GraphicsLayerActor.cpp:
(_GraphicsLayerActorPrivate):
(graphics_layer_actor_init):
(graphicsLayerActorApplyTransform):
(graphicsLayerActorNew):
(graphicsLayerActorRemoveFromSuperLayer):
(graphicsLayerActorSetDrawsContent):
(graphicsLayerActorSetFlatten):
* platform/graphics/clutter/GraphicsLayerActor.h:
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
(WebCore::GraphicsLayerClutter::platformLayer):
(WebCore::GraphicsLayerClutter::moveOrCopyAnimations):
(WebCore):
(WebCore::GraphicsLayerClutter::setPreserves3D):
(WebCore::GraphicsLayerClutter::flushCompositingState):
(WebCore::GraphicsLayerClutter::recursiveCommitChanges):
(WebCore::GraphicsLayerClutter::commitLayerChangesAfterSublayers):
(WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerClutter::updateGeometry):
(WebCore::GraphicsLayerClutter::updateSublayerList):
(WebCore::GraphicsLayerClutter::updateStructuralLayer):
(WebCore::GraphicsLayerClutter::ensureStructuralLayer):
(WebCore::GraphicsLayerClutter::structuralLayerPurpose):
(WebCore::GraphicsLayerClutter::layerForSuperlayer):
* platform/graphics/clutter/GraphicsLayerClutter.h:
(CommitState):
(WebCore::GraphicsLayerClutter::CommitState::CommitState):
(GraphicsLayerClutter):
(WebCore::GraphicsLayerClutter::primaryLayer):
2013-04-02 Adam Klein <adamk@chromium.org>
HTML parser should consistently inspect the namespace of elements on the stack of open elements
https://bugs.webkit.org/show_bug.cgi?id=113723
Reviewed by Adam Barth.
Added HTMLStackItem::matchesHTMLTag method and use that nearly
everywhere instead of HTMLStackItem::hasLocalName. The most important
of these changes is in HTMLElementStack's inScopeCommon() function,
where the use of matchesHTMLTag means that any of the inXXXScope()
calls now only match HTML tags.
Tests: html5lib/generated/run-namespace-sensitivity-data.html
html5lib/generated/run-namespace-sensitivity-write.html
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::generateImpliedEndTagsWithExclusion):
* html/parser/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::popUntil):
(WebCore::HTMLElementStack::topmost):
(WebCore::inScopeCommon):
(WebCore::HTMLElementStack::inScope):
(WebCore::HTMLElementStack::inListItemScope):
(WebCore::HTMLElementStack::inTableScope):
(WebCore::HTMLElementStack::inButtonScope):
(WebCore::HTMLElementStack::inSelectScope):
* html/parser/HTMLElementStack.h:
(WebCore::HTMLElementStack::popUntilPopped):
* html/parser/HTMLFormattingElementList.cpp:
(WebCore::HTMLFormattingElementList::closestElementInScopeWithName):
* html/parser/HTMLStackItem.h:
(WebCore::HTMLStackItem::matchesHTMLTag):
(HTMLStackItem):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTagForInCell):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
2013-04-02 Hayato Ito <hayato@chromium.org>
Report memory usage for ShadowDistributedRules.
https://bugs.webkit.org/show_bug.cgi?id=109882
Reviewed by Dimitri Glazkov.
This is a follow-up patch for r142855.
No new tests, no behavior change for layout tests.
* css/DocumentRuleSets.cpp:
(WebCore):
(WebCore::ShadowDistributedRules::reportMemoryUsage):
(WebCore::DocumentRuleSets::reportMemoryUsage):
* css/DocumentRuleSets.h:
(ShadowDistributedRules):
2013-04-02 Chris Fleizach <cfleizach@apple.com>
AX: Need to get line thickness from fraction on web
https://bugs.webkit.org/show_bug.cgi?id=113720
Reviewed by David Kilzer.
Expose the line thickness property for fractions, which is needed to
help determine the type of equation.
Test: platform/mac/accessibility/mathml-line-fraction.html
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::mathLineThickness):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::mathLineThickness):
(WebCore):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityMathLineThickness]):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2013-04-02 Alexandre Elias <aelias@chromium.org>
Unreviewed, rolling out r147389.
http://trac.webkit.org/changeset/147389
https://bugs.webkit.org/show_bug.cgi?id=113738
r147389 was temporary patch for Chromium branch management, needs
revert.
* platform/ScrollView.cpp:
(WebCore::positionScrollbarLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::positionOverflowControlsLayers):
2013-04-02 David Vest <davve@opera.com>
Hang when calling setCurrentTime on SVG with cyclic animation dependency chain
https://bugs.webkit.org/show_bug.cgi?id=113485
Reviewed by Stephen Chenney.
If no exact match can be found, approximateBinarySearch may return
either adjacent value to the key. Selecting the lesser value when
there is a greater one may cause interval creation to fail in a
way that causes infinite loops during seeking. Detect and amend
this condition by selecting the greater value when possible.
Test: svg/animations/animation-dependency-hang.html
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::findInstanceTime):
2013-04-02 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: source location gets frozen after inspector reload
https://bugs.webkit.org/show_bug.cgi?id=113776
Reviewed by Pavel Feldman.
Put statusBarText item in its own container and update its contents in
ScriptsPanel._updateScriptViewStatusBarItems in similar way it's done
for statusBarItems.
No new tests.
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype.statusBarText):
(WebInspector.ScriptsPanel.prototype._updateScriptViewStatusBarItems):
2013-04-02 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
Remove unneeded cpp file from CMake build. Rubber-stamp by Alexis Menard.
* CMakeLists.txt: Remove FFTFrameStub.cpp, since adding this file or not
to your build is a platform decision.
2013-04-01 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: [Timeline] unify logic for 3 overview modes in Timeline
https://bugs.webkit.org/show_bug.cgi?id=113708
Reviewed by Yury Semikhatsky.
- make TimelineOverviewPane logic independent on overview mode;
- show only one of 3 controls at one time;
- attach overview controls to the same parent.
* inspector/front-end/OverviewGrid.js: remove gridElement() and itemsGraphsElement(), no longer needed.
(WebInspector.OverviewGrid):
* inspector/front-end/TimelineOverviewPane.js:
(WebInspector.TimelineOverviewPane):
(WebInspector.TimelineOverviewPane.prototype.setMode):
(WebInspector.TimelineOverviewPane.prototype._innerSetMode):
(WebInspector.TimelineOverviewPane.prototype._createOverviewControl):
(WebInspector.TimelineOverviewPane.prototype._onCategoryVisibilityChanged):
(WebInspector.TimelineOverviewPane.prototype._update):
(WebInspector.TimelineOverviewPane.prototype.addFrame):
(WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
(WebInspector.TimelineOverviewPane.prototype._reset):
(WebInspector.TimelineOverviewPane.prototype._onWindowChanged):
(WebInspector.TimelineOverviewBase.prototype.update):
(WebInspector.TimelineOverviewBase.prototype.reset):
(WebInspector.TimelineOverviewBase.prototype.categoryVisibilityChanged):
(WebInspector.TimelineOverviewBase.prototype.addFrame):
(WebInspector.TimelineOverviewBase.prototype.getWindowTimes):
(WebInspector.TimelineEventOverview):
(WebInspector.TimelineEventOverview.prototype.categoryVisibilityChanged):
* inspector/front-end/timelinePanel.css:
2013-04-02 Julien Chaffraix <jchaffraix@webkit.org>
webkit fails IETC grid-column-002
https://bugs.webkit.org/show_bug.cgi?id=83907
Reviewed by Ojan Vafai.
Tests: fast/css-grid-layout/grid-item-column-row-get-set.html
ietestcenter/css3/grid/grid-column-002.htm
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
Don't accept 0 as a valid <integer> position.
2013-04-02 Dmitry Gozman <dgozman@chromium.org>
Web Inspector: allow referencing of nodes that have not been pushed to the front-end
https://bugs.webkit.org/show_bug.cgi?id=110921
Reviewed by Pavel Feldman.
Nodes not yet pushed to front-end are referenced by BackendNodeId and retained.
One can group nodes when generating BackendNodeIds to release them all together later.
To resolve node references by BackendNodeId, frontend should use new pushNodeByBackendIdToFrontend method.
This will invalidate the generated BackendNodeId.
* inspector/Inspector.json:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::discardBindings):
(WebCore::InspectorDOMAgent::backendNodeIdForNode):
(WebCore::InspectorDOMAgent::releaseBackendNodeIds):
(WebCore::InspectorDOMAgent::pushNodeByBackendIdToFrontend):
* inspector/InspectorDOMAgent.h:
(WebCore):
(InspectorDOMAgent):
2013-04-02 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Nested auto-height regions don't layout correctly
https://bugs.webkit.org/show_bug.cgi?id=111969
Reviewed by David Hyatt.
The patch fixes the auto-height regions processing model to work with nested named flows. Currently
this use case doesn't work correctly because the order in which the computed height value is propagated
to the regions is incorrect. For example, in the case of two flows (f1 and f2) and two auto-height
regions (r1 and r2) with r2 a member of f1:
1. the normal layout phase starts
2. r1 is laid out with height = 0
3. f1 is laid out including r2 with height = 0; overrideLogicalHeight for r1 is computed
4. f2 is laid out; overrideLogicalHeight for r2 is computed
5. the constrained layout phase starts
6. r1 is laid out using the overrideLogicalHeight computed in the normal phase
7. f1 is laid out including r2 with its overrideLogicalHeight
8. f2 is laid out
The problem appears at step 6 because the overrideLogicalheight computed during step 3 assumes r2
has a height of 0. The patch changes the algorithm to update the auto-height regions in the reverse
order of their flow threads dependecies. Here is a high level overview of the new algorithm,
considering the named flows are sorted in the order of their dependencies:
1. The flows are laid out from the outer flow to the inner flow. This successfully computes the outer
non-auto-height regions size so the inner flows have the necessary information to correctly fragment
the content.
2. The flows are laid out from the inner flow to the outer flow. After an inner flow is laid out it
goes into the constrained layout phase and marks the auto-height regions they need layout. This
means the outer flows will relayout if they depend on regions with auto-height regions belonging to
inner flows. This step will correctly compute the overrideLogicalHeights for the auto-height regions.
It's possible for non-auto-height regions to relayout if they depend on auto-height regions. This
will invalidate the inner flow threads and mark them as needing layout.
3. The last step is to do one last layout if there are pahtological dependencies between non-auto-height
regions and auto-height regions as detected in the previous step.
The patch also removes the layout phase flag from RenderView and moves it to the flow threads. This
happens because a flow needs to update its auto-height regions overrideLogicalHeight while updating
the logical height of the regions belonging to the inner flows that are laid out by the flow (i.e. the
outer flow is in the normal phase while the inner flows are in the constrained layout phase).
There's also a new flag on the RenderFlowThread that is set when the flow needs the constrained layout
phase. This could have been placed on the flow thread controller but I think it will be useful when doing
content balancing for the new multi-column implementation.
Another change is the moment we clear the overrideLogicalHeight value on empty auto-height regions because
we don't have to relayout a flow thread once it's in the constrained phase. We need to have the correct
flow thread portions correctly computed after the artificial forced break is applied at the end of the content.
Tests: fast/regions/autoheight-mixed-nested-complex-regions.html
fast/regions/autoheight-mixed-nested-regions.html
fast/regions/autoheight-mixed-parallel-regions.html
fast/regions/autoheight-nested-regions.html
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::FlowThreadController):
(WebCore::FlowThreadController::layoutRenderNamedFlowThreads):
(WebCore):
(WebCore::FlowThreadController::registerNamedFlowContentNode):
(WebCore::FlowThreadController::unregisterNamedFlowContentNode):
(WebCore::FlowThreadController::updateFlowThreadsChainIfNecessary):
(WebCore::FlowThreadController::updateFlowThreadsNeedingLayout):
(WebCore::FlowThreadController::updateFlowThreadsNeedingTwoStepLayout):
(WebCore::FlowThreadController::resetFlowThreadsWithAutoHeightRegions):
(WebCore::FlowThreadController::updateFlowThreadsIntoConstrainedPhase):
* rendering/FlowThreadController.h:
(FlowThreadController):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::RenderFlowThread):
(WebCore::RenderFlowThread::validateRegions):
(WebCore::RenderFlowThread::layout):
(WebCore::RenderFlowThread::regionAtBlockOffset):
(WebCore::RenderFlowThread::applyBreakAfterContent): Apply an artificial break at the end of the content.
This way we can detect when the content ends and clear the overrideLogicalHeight on the empty auto-height regions.
(WebCore::RenderFlowThread::computeOverflowStateForRegions):
(WebCore):
(WebCore::RenderFlowThread::initializeRegionsOverrideLogicalContentHeight):
(WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
(WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
(WebCore::RenderFlowThread::addForcedRegionBreak):
* rendering/RenderFlowThread.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::pageLogicalWidth):
(WebCore::RenderRegion::pageLogicalHeight):
(WebCore::RenderRegion::maxPageLogicalHeight):
(WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent):
(WebCore::RenderRegion::layoutBlock):
(WebCore::RenderRegion::updateLogicalHeight):
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore):
(WebCore::RenderView::layoutContentInAutoLogicalHeightRegions):
(WebCore::RenderView::layout):
* rendering/RenderView.h:
(WebCore):
(RenderView):
2013-04-02 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: ignore minimum record duration filter in Timeline overview
https://bugs.webkit.org/show_bug.cgi?id=113705
Reviewed by Pavel Feldman.
* inspector/front-end/TimelineOverviewPane.js:
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._durationFilterChanged):
2013-03-29 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: display the number of dirty render objects in Layout timeline event
https://bugs.webkit.org/show_bug.cgi?id=95331
Reviewed by Pavel Feldman.
Count the render objects that need layout in InspectorTimelineAgent::willLayout()
and display the number in popover over Layout record in Timeline panel.
* English.lproj/localizedStrings.js:
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::willLayout):
(WebCore::InspectorTimelineAgent::didLayout):
* inspector/TimelineRecordFactory.cpp:
(WebCore):
(WebCore::TimelineRecordFactory::createLayoutData):
(WebCore::TimelineRecordFactory::appendLayoutRoot):
* inspector/TimelineRecordFactory.h:
(TimelineRecordFactory):
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
2013-04-02 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] Popover for codemirror
https://bugs.webkit.org/show_bug.cgi?id=113771
Reviewed by Pavel Feldman.
Implement methods TextEditor.cursorPositionToCoordinates, TextEditor.coordinatesToCursorPosition and
TextEditor.tokenAtTextPosition in CodeMirrorTextEditor to support popover
functionality. Add css classes to highlight popover anchoring text.
No new tests.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor.prototype.cursorPositionToCoordinates):
(WebInspector.CodeMirrorTextEditor.prototype.coordinatesToCursorPosition):
(WebInspector.CodeMirrorTextEditor.prototype.tokenAtTextPosition):
* inspector/front-end/cm/cmdevtools.css:
(.CodeMirror .source-frame-eval-expression):
(.CodeMirror .source-frame-eval-expression-end):
(.CodeMirror .source-frame-eval-expression-start):
2013-04-02 Carlos Garcia Campos <cgarcia@igalia.com>
[BlackBerry] Implement ScrollingCoordinator::frameViewLayoutUpdated()
https://bugs.webkit.org/show_bug.cgi?id=113763
Reviewed by Rob Buis.
PR 318945
Internally reviewed by Jakob Petsovits.
And remove the BlackBerry specific methods
frameViewFrameRectDidChange and frameViewContentsSizeDidChange.
* page/scrolling/blackberry/ScrollingCoordinatorBlackBerry.cpp:
(WebCore::ScrollingCoordinatorBlackBerry::frameViewLayoutUpdated):
Called when the frame view has been laid out. Update the contents
rectangle and visible area of the scroll layer for the given frame
view.
* page/scrolling/blackberry/ScrollingCoordinatorBlackBerry.h:
(ScrollingCoordinatorBlackBerry):
* platform/graphics/blackberry/LayerWebKitThread.h:
(WebCore::LayerWebKitThread::setFrameVisibleRect): Return early if
value hasn't changed.
(WebCore::LayerWebKitThread::setFrameContentsSize): Ditto.
2013-04-02 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: Separate JavaScriptSourceFrame popover from knowledge of editor's DOM
https://bugs.webkit.org/show_bug.cgi?id=113412
Reviewed by Pavel Feldman.
- Use TextEditor.coordinatesToCursorPosition,
TextEditor.cursorPositionToCoordinates and TextEditor.tokenAtTextPosition to figure out
hovering area and create popover anchor.
- Use TextEditor.highlightRange/TextEditor.removeHighlight methods to
highlight hovering text in editor.
No new tests: no change in behaviour.
* inspector/front-end/DefaultTextEditor.js:
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame):
(WebInspector.JavaScriptSourceFrame.prototype.willHide):
(WebInspector.JavaScriptSourceFrame.prototype._getPopoverAnchor):
(WebInspector.JavaScriptSourceFrame.prototype.):
(WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
(WebInspector.JavaScriptSourceFrame.prototype._onHidePopover):
* inspector/front-end/inspector.css:
(.popover-anchor):
(.source-frame-eval-expression):
2013-04-02 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] RenderFlowThread should not be created as a Document renderer
https://bugs.webkit.org/show_bug.cgi?id=113658
Reviewed by Julien Chaffraix.
After https://bugs.webkit.org/show_bug.cgi?id=107138, RenderFlowThread should not be constructed as a renderer for Document.
Since it does not have an element associated, it will be constructed using the pattern for anonymous blocks.
However, since I do not want the flow thread to be collapsed as anonymous blocks are, i changed RenderObject::isAnonymousBlock
to return false for a RenderFlowThread (the alternative would have been to patch more call sites to prevent RenderFlowThread
collapsing as anonymous block).
Covered by existing tests.
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::ensureRenderFlowThreadWithName):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::RenderFlowThread):
* rendering/RenderFlowThread.h:
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::RenderMultiColumnBlock::addChild):
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
(WebCore::RenderMultiColumnFlowThread::createAnonymous):
* rendering/RenderMultiColumnFlowThread.h:
(RenderMultiColumnFlowThread):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::createAnonymous):
(WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
* rendering/RenderNamedFlowThread.h:
(RenderNamedFlowThread):
* rendering/RenderObject.h:
(WebCore::RenderObject::isAnonymousBlock):
2013-04-02 Shinya Kawanaka <shinyak@chromium.org>
Unreviewed, rolling out r147383.
http://trac.webkit.org/changeset/147383
https://bugs.webkit.org/show_bug.cgi?id=112369
Speculative rollout because of lots of layout test failure
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::~HTMLDocumentParser):
(WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::pumpPendingSpeculations):
(WebCore::HTMLDocumentParser::insert):
* html/parser/HTMLParserScheduler.cpp:
(WebCore::PumpSession::PumpSession):
* html/parser/HTMLParserScheduler.h:
2013-04-02 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [HeapProfiler] Table rows do not appear when resizing.
https://bugs.webkit.org/show_bug.cgi?id=113760
Reviewed by Yury Semikhatsky.
Analysis: custom-made split-view doesn't notify content panes about
resizing.
* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapSnapshotView.prototype._updateRetainmentViewHeight):
Notify content pane about resize.
2013-04-02 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Clean-up RenderFlowThread::updateRegionsFlowThreadPortionRect
https://bugs.webkit.org/show_bug.cgi?id=113659
Reviewed by Julien Chaffraix.
RenderRegion::logicalHeightOfAllFlowThreadContent already contains the
override logical content height for auto-height regions in normal layout phase.
Therefore, there is no need to explicitly override region's rect height with
the region's overrideLogicalContentHeight as the region rect already contains
the right value.
No change in functionality, covered by existing tests.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::pageLogicalHeight):
(WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent):
2013-04-02 Mike West <mkwst@chromium.org>
X-Frame-Options: Blocked frames should not inherit their parent's SecurityOrigin.
https://bugs.webkit.org/show_bug.cgi?id=112903
Reviewed by Adam Barth.
This change brings WebKit in line with IE and Gecko's behavior, both of
which treat the blocked frame as being cross-origin for the purposes of
access checks ('[frame].contentWindow.location.href' is inaccessible,
for example).
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
Rather than redirecting to 'about:blank', redirect to
'data:text/html,<p></p>' which does not inherit the SecurityOrigin
of the parent.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
Before calling cancelMainResourceLoad, ensure that the frame's
document is sandboxed into a unique origin so that it doesn't
inherit the parent's SecurityOrigin.
2013-04-01 Elliott Sprehn <esprehn@chromium.org>
RenderObject::offsetParent should return Element*
https://bugs.webkit.org/show_bug.cgi?id=113739
Reviewed by Abhishek Arya.
The offsetParent of a node should always be an Element, ensure this
by fixing RenderObject::offsetParent to return an Element* and clean up
the method to match the algorithm in the spec which lets us remove the
comments that were trying to explain what was going on.
This also hardens against badness where RenderObject::offsetParent
could have returned a renderer with a non-Element node which would result
in a bad cast in Element::offsetParent. We fixed all cases of this, but
this patch makes sure such things never happen again.
No new tests, no change in behavior.
* dom/Element.cpp:
(WebCore::Element::offsetParent):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::offsetParent): Now returns Element*.
* rendering/RenderObject.h:
(RenderObject):
2013-04-01 Alpha Lam <hclam@chromium.org>
Simply GIFImageReader error handling
https://bugs.webkit.org/show_bug.cgi?id=113718
Reviewed by Adam Barth.
When GIFImageReader encounters a parsing error it should just return
without doing any more work. Current code saves a boolean before return,
this is not necessary.
Tested with existing unit tests.
Tested locally with ASAN build with 60k GIF images.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::repetitionCount):
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::decode):
* platform/image-decoders/gif/GIFImageReader.h:
(GIFImageReader::GIFImageReader):
(GIFImageReader):
2013-04-01 Elliott Sprehn <esprehn@chromium.org>
Make all v8 weak callbacks type safe
https://bugs.webkit.org/show_bug.cgi?id=111802
Reviewed by Adam Barth.
Make all v8 handle weak callbacks typesafe by adding a new class WeakHandleListner
that uses templates to generate the callback proxies that have the correct type
arguments. Now getting the arguments wrong will fail compilation.
No new tests, no change in behavior.
* bindings/v8/DOMDataStore.h:
(WebCore::::callback):
* bindings/v8/DOMWrapperMap.h:
(WebCore::DOMWrapperMap::DOMWrapperMap):
(WebCore::DOMWrapperMap::set):
(WebCore::DOMWrapperMap::reportMemoryUsage):
(DOMWrapperMap):
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore::::callback):
(WebCore::DOMWrapperWorld::makeContextWeak):
* bindings/v8/ScriptState.cpp:
(WebCore::::callback):
(WebCore::ScriptState::ScriptState):
* bindings/v8/ScriptState.h:
(ScriptState):
* bindings/v8/ScriptWrappable.h:
(ScriptWrappable):
(WebCore::ScriptWrappable::setWrapper):
(WebCore::::callback):
* bindings/v8/V8AbstractEventListener.cpp:
(WebCore::::callback):
(WebCore::V8AbstractEventListener::setListenerObject):
* bindings/v8/V8AbstractEventListener.h:
(V8AbstractEventListener):
* bindings/v8/V8MutationCallback.cpp:
(WebCore::::callback):
(WebCore::V8MutationCallback::V8MutationCallback):
* bindings/v8/V8MutationCallback.h:
(V8MutationCallback):
* bindings/v8/V8NPObject.cpp:
(V8NPTemplateMap):
(WebCore::V8NPTemplateMap::set):
(WebCore::::callback):
(WebCore::staticNPObjectMap):
* bindings/v8/V8Utilities.h:
(WeakHandleListener):
(WebCore::WeakHandleListener::makeWeak):
(WebCore::WeakHandleListener::WeakHandleListener):
(WebCore::WeakHandleListener::invokeWeakCallback):
* bindings/v8/V8ValueCache.cpp:
(WebCore::::callback):
(WebCore::StringCache::v8ExternalStringSlow):
* bindings/v8/custom/V8InjectedScriptManager.cpp:
(WebCore::::callback):
(WebCore::createInjectedScriptHostV8Wrapper):
2013-04-01 Tien-Ren Chen <trchen@chromium.org>
Hide non-coordinated scrollbars for Android M26
https://bugs.webkit.org/show_bug.cgi?id=113738
Reviewed by Simon Fraser.
This patch will hide any non-coordinated scrollbars on Android.
Coordinated scrollbars won't be affected.
Currently all scrollbars are coordinated on Android. The sole purpose
of this patch is to be cherry-picked to the M26 branch.
No new tests. Please revert immediately after landed.
* platform/ScrollView.cpp:
(WebCore::positionScrollbarLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::positionOverflowControlsLayers):
2013-04-01 Chris Evans <cevans@google.com>
Crash in Node::enclosingBlockFlowElement()
https://bugs.webkit.org/show_bug.cgi?id=113712
Reviewed by Abhishek Arya.
Fix a bad Node assumption if we walk up to the document root.
Test: editing/execCommand/format-block-at-root.html
* dom/Node.cpp:
(WebCore::Node::isBlockFlowElement): Check we found an Element Node and rename from isBlockFlow().
(WebCore::Node::enclosingBlockFlowElement): Use the new toElement().
* editing/FormatBlockCommand.cpp:
(WebCore::FormatBlockCommand::formatRange): Check for NULL.
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApplyForSingleParagraph):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::enclosingInline): Impact from method rename.
2013-04-01 James Simonsen <simonjam@chromium.org>
[Resource Timing] Expose timing information for iframes
https://bugs.webkit.org/show_bug.cgi?id=103927
Reviewed by Nate Chapin.
The only catch with main documents is that we only want to record the load that was initiated by
adding the <iframe> to a document. We don't want any subsequent navigations within the iframe to
be reported.
Test: http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_iframe_self_navigation.html
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::revalidateResource):
(WebCore::CachedResourceLoader::loadResource):
(WebCore::CachedResourceLoader::loadDone): Make sure iframes are reported in the parent.
2013-04-01 Konrad Piascik <kpiascik@blackberry.com>
[BlackBerry] Move Path into it's own header
https://bugs.webkit.org/show_bug.cgi?id=113724
Reviewed by Rob Buis.
No behavioural change.
* platform/graphics/blackberry/PathBlackBerry.cpp:
2013-04-01 Konrad Piascik <kpiascik@blackberry.com>
[BlackBerry] canvas is not rendering correctly for www.html5-benchmark.com
https://bugs.webkit.org/show_bug.cgi?id=113716
Reviewed by Rob Buis.
PR 317205
Internally reivewed by: Mike Lattanzio, Jacky Jiang
This is a site issue where they detect physical pixels by multiplying
availWidth * devicePixelRatio. This gives us an invalid result since
we don't round the CSS pixels that are reported to availWidth and availHeight.
* platform/blackberry/PlatformScreenBlackBerry.cpp:
(WebCore::toUserSpace):
2013-04-01 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] shape-outside on floats fails to respect shape-margin's vertical extent
https://bugs.webkit.org/show_bug.cgi?id=113600
Reviewed by Dirk Schulze.
ExclusionShapeInsideInfo classes need to depend on the ExclusionShape's padded boundary and
ExclusionShapeOutsideInfo classes should depend on the ExclusionShape's margin boundary. Added
a virtual method to the ExclusionShapeInfo that returns the ExclusionShape's logical bounding box -
computedShapeLogicalBoundingBox() - and overrode that method in the subclasses to return the
value of the appropriate ExclusionShape method. Added shapeMarginLogicalBoundingBox() and
shapePaddingLogicalBoundingBox() methods to ExclusionShape and removed the shapeLogicalBoundingBox()
method, which did not take shape-margin or shape-padding into account.
Test: fast/exclusions/shape-outside-floats/shape-outside-floats-ellipse-margin-bottom.html
* rendering/ExclusionPolygon.h: Defined the padding and margin bounding box virtual methods.
* rendering/ExclusionRectangle.h: Defined the padding and margin bounding box virtual methods.
* rendering/ExclusionShape.h: Added the padding and margin bounding box virtual abstract methods. Removed shapeLogicalBoundingBox().
(ExclusionShape):
* rendering/ExclusionShapeInfo.h:
(WebCore::ExclusionShapeInfo::shapeLogicalTop): Now calls computedShapeLogicalBoundingBox().
(WebCore::ExclusionShapeInfo::shapeLogicalBottom): Ditto.
(WebCore::ExclusionShapeInfo::shapeLogicalLeft): Ditto.
(WebCore::ExclusionShapeInfo::shapeLogicalRight): Ditto.
(WebCore::ExclusionShapeInfo::shapeLogicalWidth): Ditto.
(WebCore::ExclusionShapeInfo::shapeLogicalHeight): Ditto.
(ExclusionShapeInfo): Added computedShapeLogicalBoundingBox().
* rendering/ExclusionShapeInsideInfo.h:
(ExclusionShapeInsideInfo):
(WebCore::ExclusionShapeInsideInfo::computedShapeLogicalBoundingBox): Gets the padded shape's bounding box.
* rendering/ExclusionShapeOutsideInfo.h:
(ExclusionShapeOutsideInfo):
(WebCore::ExclusionShapeOutsideInfo::computedShapeLogicalBoundingBox): Gets the margin shape's bounding box.
2013-04-01 Adam Barth <abarth@webkit.org>
Assertion failure !m_lastChunkBeforeScript in HTMLDocumentParser during inspector/debugger/pause-in-inline-script.html
https://bugs.webkit.org/show_bug.cgi?id=112369
Reviewed by Eric Seidel.
The threaded HTML parser wasn't correctly handling the nested event
loops that can arise from the JavaScript debugger and from
showModalDialog. When the parser received a chunk from the background
parser, it was always processing it immediately, which lead to
re-entrancy. Now, we'll queue the chunk in the speculation buffer and
process it once the stack unwinds.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::~HTMLDocumentParser):
(WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::pumpPendingSpeculations):
(WebCore::HTMLDocumentParser::insert):
* html/parser/HTMLParserScheduler.cpp:
(WebCore::PumpSession::PumpSession):
* html/parser/HTMLParserScheduler.h:
2013-04-01 Michael Pruett <michael@68k.org>
[JSC] IndexedDB: Exceptions not thrown for non-cloneable values
https://bugs.webkit.org/show_bug.cgi?id=113689
Reviewed by Kentaro Hara.
ScriptValue::serialize() should not clear exceptions thrown during
serialization. This change is needed to match behavior in V8.
Tests: storage/indexeddb/clone-exception.html
storage/indexeddb/exceptions.html
storage/indexeddb/structured-clone.html
* bindings/js/ScriptValue.cpp:
(WebCore::ScriptValue::serialize):
2013-04-01 Joshua Bell <jsbell@chromium.org>
[Chromium] IndexedDB: Turn "should only be true in unit tests" comments into ASSERTs
https://bugs.webkit.org/show_bug.cgi?id=113597
Reviewed by Adam Barth.
In the vein of wkbug.com/111233 and wkbug.com/110820 don't just comment that
some condition is true only in unit tests - ASSERT that Chromium's unitTestSupport()
is non-null to catch errors during development.
Exercised by Chromium's webkit_unit_tests.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::openConnection):
(WebCore::IDBDatabaseBackendImpl::close):
2013-04-01 Roger Fong <roger_fong@apple.com>
VS2010 WebCoreGenerated build scripts should use new feature-defines script.
https://bugs.webkit.org/show_bug.cgi?id=113737.
Reviewed by Timothy Horton.
* WebCore.vcxproj/build-generated-files.sh:
2013-04-01 Tim Horton <timothy_horton@apple.com>
Autosize should use documentRect height instead of scrollHeight
https://bugs.webkit.org/show_bug.cgi?id=112770
Reviewed by David Levin.
Autosizing fails to compute the correct height if the root element is very
small but the document has significant overflow.
Also, unconditionally start laying out from the minimum height, so that the
documentRect can shrink below its previous height if needed.
No new tests; autosizing is not currently exposed in a testable way on Mac.
* page/FrameView.cpp:
(WebCore::FrameView::autoSizeIfEnabled):
2013-04-01 Hayato Ito <hayato@chromium.org>
[Shadow DOM] Change the order of event dispatching at AT_TARGET phase.
https://bugs.webkit.org/show_bug.cgi?id=113676
Reviewed by Dimitri Glazkov.
Change the order of event dispatching at AT_TARGET phase so that it mimics bubbling events.
The spec side bug is:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=21404
Example:
Given the event path, from Node A (top-most) to Node G (target,
inner-most), where C and D are shadow hosts and G is the target,
the event dispatching order in the current WebKit implementation is:
(T: AT_TARGET, C: CAPTURING, B: BUBBLING)
For bubbling events:
A 1 (C) 11 (B)
B 2 (C) 10 (B)
C (SH) 3 (T)
D 4 (C) 9 (B)
E (SH) 5 (T)
F 6 (C) 8 (B)
G (Target) 7 (T)
For non-bubbling events:
A 1 (C)
B 2 (C)
C (SH) 3 (T)
D 4 (C)
E (SH) 5 (T)
F 6 (C)
G (Target) 7 (T)
This patch has changed the order of event dispatching as follows:
For bubbling events:
A 1 (C) 11 (B)
B 2 (C) 10 (B)
C (SH) 9 (T)
D 3 (C) 8 (B)
E (SH) 7 (T)
F 4 (C) 6 (B)
G (Target) 5 (T)
For non-bubbling events:
A 1 (C)
B 2 (C)
C (SH) 7 (T)
D 3 (C)
E (SH) 6 (T)
F 4 (C)
G (Target) 5 (T)
No new tests, updating existing layouts.
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEventAtCapturing):
(WebCore::EventDispatcher::dispatchEventAtBubbling):
* dom/EventDispatcher.h:
(EventDispatcher):
2013-04-01 Nate Chapin <japhet@chromium.org>
Crash in WebCore::HTMLMediaElement::~HTMLMediaElement.
https://bugs.webkit.org/show_bug.cgi?id=113531
Reviewed by Adam Barth.
No new tests, though this is intermittently reproducible with
http/tests/misc/delete-frame-during-readystatechange.html under ASAN.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement): Clear the media player manually
before the destructor exits. Clearing the media player may cancel a resource load,
which can trigger a readystatechange event. It's possible for the HTMLMediaElement
to attempt to fire an abort event within the readystatechange event, even though it is
now in an inconsistent state. Clearling the media player before finishing the destructor
ensures that the HTMLMediaElement will at least still be alive if this case is triggered.
Set m_completelyLoaded to true to ensure that if userCancelledLoad() is called, it doesn't
attempt to fire events while destructing.
2013-04-01 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r146373.
http://trac.webkit.org/changeset/146373
https://bugs.webkit.org/show_bug.cgi?id=113731
broke autosizing shrinking past previous size (Requested by
thorton on #webkit).
* page/FrameView.cpp:
(WebCore::FrameView::autoSizeIfEnabled):
2013-04-01 Timothy Hatcher <timothy@apple.com>
Allow changing Web Inspector dock sides without undocking first.
https://webkit.org/b/113661
rdar://problem/13543127
Reviewed by Joseph Pecoraro.
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal): Initialize m_dockSide.
(WebCore::InspectorFrontendClientLocal::canAttachWindow): If we are already attached, allow
attaching again to allow switching sides.
(WebCore::InspectorFrontendClientLocal::setAttachedWindow): Set m_dockSide.
* inspector/InspectorFrontendClientLocal.h:
(InspectorFrontendClientLocal): Added m_dockSide.
2013-04-01 Alexey Proskuryakov <ap@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=113721
<rdar://problem/13549181> REGRESSION (r146929): HTTP auth credentials not reused during session
Reviewed by Brady Eidson.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
Added FIXMEs.
2013-04-01 Timothy Hatcher <timothy@apple.com>
Make 'this' evaluate to the correct object when paused in the Debugger.
https://webkit.org/b/113607
rdar://problem/13538351
Reviewed by Joseph Pecoraro.
* inspector/InjectedScriptSource.js:
(InjectedScript.prototype._evaluateOn): Bind 'this' to the expression function.
2013-04-01 Victor Carbune <vcarbune@chromium.org>
TextTrackCue Extension for WebVTT Regions
https://bugs.webkit.org/show_bug.cgi?id=109821
Reviewed by Eric Carlson.
The TextTrackCue gets a new attribute and setting, regionId, which specifies
to which region the cue belongs to. The attribute is guarded by WEBVTT_REGIONS
and is by default disabled in ports.
Test: media/track/regions-webvtt/text-track-cue-region-attribute.html
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::TextTrackCue): Added member variable for the regionId attribute.
(WebCore):
(WebCore::TextTrackCue::setRegionId): Setter for the regionId attribute.
(WebCore::TextTrackCue::settingName): Added RegionId setting name.
(WebCore::TextTrackCue::setCueSettings): Parsed the "region:" cue setting.
* html/track/TextTrackCue.h:
(TextTrackCue):
(WebCore::TextTrackCue::regionId): Getter for the regionId attribute.
* html/track/TextTrackCue.idl: Updated to match the WebVTT Regions Extension.
2013-03-05 Anders Carlsson <andersca@apple.com>
Apply changes from storage events locally
https://bugs.webkit.org/show_bug.cgi?id=111502
Reviewed by Sam Weinig.
Add and export a helper function for setting an item without taking
into account the quota for the map. Also, reindent StorageMap.h
* WebCore.exp.in:
* storage/StorageMap.cpp:
(WebCore::StorageMap::setItemIgnoringQuota):
(WebCore):
* storage/StorageMap.h:
(StorageMap):
(WebCore::StorageMap::quota):
2013-04-01 Benjamin Poulain <benjamin@webkit.org>
Remove a couple of malloc from ExceptionBase construction
https://bugs.webkit.org/show_bug.cgi?id=113681
Reviewed by Darin Adler.
* dom/ExceptionBase.cpp:
(WebCore::ExceptionBase::ExceptionBase):
When the condition is true, we were creating a new String for
description.name. The constructor had already allocated a string for
that: m_name. Use that string instead of creating a new one.
When the condition is false, we were creating a String for typeName
just to use the string operators. This is a waste of time, we can use
makeString() to invoke the string concatenation functions directly.
2013-04-01 Emil A Eklund <eae@chromium.org>
Move remaining marquee applying code to StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=113298
Reviewed by Allan Sandfeld Jensen.
Move applying logic for CSSPropertyWebkitMarqueeIncrement,
CSSPropertyWebkitMarqueeRepetition and CSSPropertyWebkitMarqueeSpeed
from StyleResolver::applyProperty.
No new tests, no change in functionality.
* css/StyleBuilder.cpp:
(ApplyPropertyMarqueeIncrement):
(WebCore::ApplyPropertyMarqueeIncrement::applyValue):
(WebCore::ApplyPropertyMarqueeIncrement::createHandler):
(WebCore):
(ApplyPropertyMarqueeRepetition):
(WebCore::ApplyPropertyMarqueeRepetition::applyValue):
(WebCore::ApplyPropertyMarqueeRepetition::createHandler):
(ApplyPropertyMarqueeSpeed):
(WebCore::ApplyPropertyMarqueeSpeed::applyValue):
(WebCore::ApplyPropertyMarqueeSpeed::createHandler):
(WebCore::StyleBuilder::StyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
Move marquee applying logic from StyleResolver to StyleBuilder.
* rendering/style/RenderStyle.h:
Change setMarqueeIncrement to pass Length by value instead of const
reference. This is consistent with other length setters and works with
the ApplyPropertyLength template.
2013-04-01 Philip Rogers <pdr@google.com>
[SVG2] Add support for the buffered-rendering hint
https://bugs.webkit.org/show_bug.cgi?id=104207
Reviewed by Stephen Chenney.
This patch adds the SVG2 buffered-rendering property and implements it for the image
element. For reference, the spec can be found at:
https://svgwg.org/svg2-draft/single-page.html#painting-BufferedRendering
The buffered-rendering hint causes our implementation to create a temporary image buffer
for caching an element's foreground rendering. This behavior has been designed to support
other graphical and container elements in followup patches (such as the use and g elements).
This patch should not affect rendering, and a test has been added showing the image
results are unchanged.
The performance aspects of this patch can be tested using the following test:
http://philbit.com/bouncingTigers.html
Without the patch, rendering is below 1fps. With the patch, rendering is fluid.
Tests: svg/css/buffered-rendering.html
svg/repaint/buffered-rendering-dynamic-image.html
svg/repaint/buffered-rendering-static-image.html
Other than the changes to RenderSVGImage and SVGRenderingContext, the changes below are to
support the new buffered-rendering property:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore):
(WebCore::CSSPrimitiveValue::operator EBufferedRendering):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
* css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
* css/SVGCSSPropertyNames.in:
* css/SVGCSSStyleSelector.cpp:
(WebCore::StyleResolver::applySVGProperty):
* css/SVGCSSValueKeywords.in:
* rendering/style/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::diff):
* rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::initialBufferedRendering):
(WebCore::SVGRenderStyle::setBufferedRendering):
(WebCore::SVGRenderStyle::bufferedRendering):
(WebCore::SVGRenderStyle::setBitDefaults):
* rendering/style/SVGRenderStyleDefs.h:
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::paint):
The foreground painting has been extracted out into a separate function. This has also
been changed so that if the buffered-rendering hint is present, bufferForeground
is used.
(WebCore::RenderSVGImage::paintForeground):
(WebCore):
(WebCore::RenderSVGImage::invalidateBufferedForeground):
This function could be replaced with "m_bufferedForeground.clear()" but other renderers
(such as container elements) will require more complex invalidation logic. To
maintain consistency with this future code, invalidateBufferedForeground has been used.
(WebCore::RenderSVGImage::imageChanged):
* rendering/svg/RenderSVGImage.h:
(RenderSVGImage):
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::bufferForeground):
(WebCore):
* rendering/svg/SVGRenderingContext.h:
(SVGRenderingContext):
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
(WebCore::cssPropertyToTypeMap):
* svg/svgattrs.in:
2013-04-01 Mike West <mkwst@chromium.org>
CSP 1.1: Remove 'type' parameter from CSPDirectiveList::checkSourceAndReportViolation.
https://bugs.webkit.org/show_bug.cgi?id=113502
Reviewed by Adam Barth.
Now that we're passing in 'effectiveDirective', we don't need the 'type'
parameter to generate the proper error message prefix when reporting
violations.
While I'm here, I'll slightly tweak the grammar for the error messages.
Changes are covered via rebaselines of existing tests.
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPDirectiveList::checkSourceAndReportViolation):
Drop the 'type' parameter. We don't need to pass in a type since
we're now passing in the 'effectiveDirective'; we can use the latter
to generate the correct error message prefix.
(WebCore::CSPDirectiveList::allowScriptFromSource):
(WebCore::CSPDirectiveList::allowObjectFromSource):
(WebCore::CSPDirectiveList::allowChildFrameFromSource):
(WebCore::CSPDirectiveList::allowImageFromSource):
(WebCore::CSPDirectiveList::allowStyleFromSource):
(WebCore::CSPDirectiveList::allowFontFromSource):
(WebCore::CSPDirectiveList::allowMediaFromSource):
(WebCore::CSPDirectiveList::allowConnectToSource):
(WebCore::CSPDirectiveList::allowFormAction):
(WebCore::CSPDirectiveList::allowBaseURI):
Drop the 'type' parameter from the callsites, which has the lovely
property of allowing us to throw away a bunch of statically allocated
strings that we don't need anymore.
2013-04-01 James Craig <james@cookiecrook.com>
AX: "video element controller" is an overly verbose default description for the playback controls; how about just "playback"
https://bugs.webkit.org/show_bug.cgi?id=113549
Reviewed by Chris Fleizach.
Existing test coverage.
Updating the video/audio element's default accessibility labels to be less verbose.
Also cleaned up some erroneous comments related to the sub-level controls on these elements.
* English.lproj/Localizable.strings:
* platform/LocalizedStrings.cpp:
(WebCore::localizedMediaControlElementString):
(WebCore::localizedMediaControlElementHelpText):
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::localizedMediaControlElementString):
2013-04-01 Nate Chapin <japhet@chromium.org>
Make a bunch of DocumentLoader functions private
https://bugs.webkit.org/show_bug.cgi?id=113601
Reviewed by Alexey Proskuryakov.
No new tests, cleanup only.
* loader/DocumentLoader.cpp:
* loader/DocumentLoader.h:
2013-04-01 Kangil Han <kangil.han@samsung.com>
Minor code cleanup by removing duplicated null checks
https://bugs.webkit.org/show_bug.cgi?id=113701
Reviewed by Darin Adler.
Duplicated null check is code redundancy, so delete those.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setFocusedNodeIfNeeded):
* platform/Arena.cpp:
(WebCore::FreeArenaList):
2013-04-01 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: follow up to r147323, popover is empty on network panel.
Not reviewed.
* inspector/front-end/DOMExtension.js:
(Element.prototype.measurePreferredSize):
* inspector/front-end/Popover.js:
(WebInspector.Popover.prototype._innerShow):
2013-04-01 Dmitry Zvorygin <zvorygin@chromium.org>
Web Inspector: Exception in console on attempt to filter javascript messages.
https://bugs.webkit.org/show_bug.cgi?id=113327
Fixed non-css filtration if console message groups are present. Message groups elements are always shown and are
never filtered out.
Reviewed by Pavel Feldman.
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype.updateRepeatCount):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.get this):
(WebInspector.ConsoleView.prototype._consoleMessageAdded):
(WebInspector.ConsoleView.prototype._appendConsoleMessage):
(WebInspector.ConsoleView.prototype._consoleCleared):
(WebInspector.ConsoleView.prototype._shouldBeVisible):
(WebInspector.ConsoleView.prototype._updateMessageList):
(WebInspector.ConsoleView.prototype._printResult):
2013-04-01 Victor Carbune <vcarbune@chromium.org>
Parsing WebVTT Region Header Metadata
https://bugs.webkit.org/show_bug.cgi?id=109818
Reviewed by Eric Carlson.
This patch enables reading regions from the metadata section of
a WebVTT file. The work for defining generic metadata within the
WebVTT file header is still work in progress in the TextTrack CG.
As previous patches, everything is guarded by WEBVTT_REGIONS and
is by default disabled in all ports.
Test: media/track/regions-webvtt/text-track-region-parser.html
* html/track/LoadableTextTrack.cpp:
(WebCore):
(WebCore::LoadableTextTrack::newRegionsAvailable): Added method
to be called as soon as regions have finished parsing.
* html/track/LoadableTextTrack.h:
(LoadableTextTrack):
* html/track/TextTrack.h: Changed the access modifiers.
(TextTrack):
* html/track/TextTrackRegion.cpp:
(WebCore::TextTrackRegion::setRegionSettings): Entry point for
parsing the region settings from a string.
(WebCore):
(WebCore::TextTrackRegion::getSettingFromString): Maps a string
to a RegionSetting value.
(WebCore::TextTrackRegion::parseSettingValue): Parses the value
of a specific setting.
(WebCore::TextTrackRegion::parseSetting): Parses a setting string.
* html/track/TextTrackRegion.h:
* html/track/WebVTTParser.cpp:
(WebCore):
(WebCore::WebVTTParser::parseFloatPercentageValue): Helper method
to parse a float percentage value (e.g. "50.1%")
(WebCore::WebVTTParser::parseFloatPercentageValuePair): Helper method
to parse a float percentage value pair (e.g. "50.1%, 30.5%")
(WebCore::WebVTTParser::getNewRegions): Retrieves the new regions
available for processing.
(WebCore::WebVTTParser::parseBytes):
(WebCore::WebVTTParser::collectHeader): Generic function to collect
header in the metadata region.
(WebCore::WebVTTParser::createNewRegion): Creates new region using
the existing metadata header name and value.
* html/track/WebVTTParser.h:
(WebVTTParserClient):
(WebVTTParser):
* loader/TextTrackLoader.cpp:
(WebCore):
(WebCore::TextTrackLoader::newRegionsParsed): Called when the
regions have been succesfully parsed.
(WebCore::TextTrackLoader::getNewRegions): Gets the new regions.
* loader/TextTrackLoader.h:
(TextTrackLoaderClient): Added methods that need to be implemented.
(TextTrackLoader):
2013-04-01 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: Go to line dialog has 0 height, viewport dialogs have empty gaps.
https://bugs.webkit.org/show_bug.cgi?id=113702
Reviewed by Yury Semikhatsky.
* inspector/front-end/DOMExtension.js:
(Element.prototype.measurePreferredSize):
* inspector/front-end/Popover.js:
(WebInspector.Popover.prototype._innerShow):
* inspector/front-end/ViewportControl.js:
(WebInspector.ViewportControl.prototype.refresh):
* inspector/front-end/dialog.css:
(.dialog-contents):
2013-04-01 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [DTE] Convertion between text and coordinates
https://bugs.webkit.org/show_bug.cgi?id=113389
Reviewed by Pavel Feldman.
Test: inspector/editor/text-editor-char-to-coordinates.html
Implement cursorPositionToCoordinates and coordinatesToCursorPosition
methods pair in DefaultTextEditor.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype.cursorPositionToCoordinates):
(WebInspector.DefaultTextEditor.prototype.coordinatesToCursorPosition):
(WebInspector.TextEditorMainPanel.prototype.cursorPositionToCoordinates):
(WebInspector.TextEditorMainPanel.prototype.coordinatesToCursorPosition):
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor.prototype.cursorPositionToCoordinates):
(WebInspector.TextEditor.prototype.coordinatesToCursorPosition):
2013-04-01 Sergey Ryazanov <serya@chromium.org>
Web Inspector: Rename "Copy to Curl" menu item command to "Copy to cURL"
https://bugs.webkit.org/show_bug.cgi?id=113575
Reviewed by Pavel Feldman.
Fix the name to the offical way of capitalization.
* English.lproj/localizedStrings.js:
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._contextMenu):
2013-04-01 Koji Ishii <kojiishi@gmail.com>
ASSERTION FAILED: m_purgePreventCount when clicking text with emphasis marks
https://bugs.webkit.org/show_bug.cgi?id=85266
Reviewed by Darin Adler.
Font::glyphDataAndPageForCharacter may call FontCache::getFontDataForCharacters
if system fallback occurs, which may return SimpleFontData with DoNotRetain,
so callers must prevent possible font cache purging.
Test: fast/text/emphasis-height-crash.html
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::emphasisMarkAscent): Add FontCachePurgePreventer.
(WebCore::Font::emphasisMarkDescent): ditto.
(WebCore::Font::emphasisMarkHeight): ditto.
(WebCore::Font::drawEmphasisMarks): ditto.
2013-04-01 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Fixed DOM Breakpoint pane styles.
https://bugs.webkit.org/show_bug.cgi?id=113688
Reviewed by Pavel Feldman.
The required stylesheet (breakpointsList.css) was not loaded because of
the peculiar way DOMBreakpointsSidebarPane is included in two panels
(Sources and Elements) via a proxy pane. Since DOMBreakpointsSidebarPane
was never shown directly the registerRequiredCSS call in its base class
NativeBreakpointsSidebarPane constructor had no effect.
Addin a registerRequiredCSS call to the proxy pane constructor fixes the
problem.
* inspector/front-end/DOMBreakpointsSidebarPane.js:
(WebInspector.DOMBreakpointsSidebarPane.Proxy):
2013-04-01 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. Extract item to coordinates conversion into a separate function.
https://bugs.webkit.org/show_bug.cgi?id=113682
Reviewed by Yury Semikhatsky.
The calculation was extracted into entryToAnchorBox.
Drive by fixes: unnecessary members were removed.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart):
(WebInspector.FlameChart.Entry):
(WebInspector.FlameChart.prototype._calculateTimelineData):
(WebInspector.FlameChart.prototype._calculateTimelineDataForSamples):
(WebInspector.FlameChart.prototype._getPopoverAnchor):
(WebInspector.FlameChart.prototype._entryToAnchorBox):
(WebInspector.FlameChart.prototype.draw):
2013-03-31 Zalan Bujtas <zalan@apple.com>
Gradient background does not get repainted when child box is expanded.
https://bugs.webkit.org/show_bug.cgi?id=113644
Reviewed by Antti Koivisto.
The initial value for background-size is SizeNone and remains, unless it is
set explicitly. However, when the background shorthand is used,
the size property defaults to SizeLength. The repaint
logic in mustRepaintFillLayers expects to have this value set correctly.
Test: fast/repaint/background-shorthand-with-gradient-and-height-changes.html
* rendering/RenderObject.cpp:
(WebCore::mustRepaintFillLayers): code cleanup. no functionality change.
* rendering/style/FillLayer.cpp:
(WebCore::FillLayer::FillLayer):
* rendering/style/FillLayer.h: use SizeNone as initial value.
(WebCore::FillLayer::initialFillSizeType):
(WebCore::FillLayer::initialFillSize):
2013-03-31 Hayato Ito <hayato@chromium.org>
Text representation of pseudo elements, '::-webkit-distributed', is wrong in CSSSelector::selectorText().
https://bugs.webkit.org/show_bug.cgi?id=113560
Reviewed by Dimitri Glazkov.
Fix the text representation of distributed functional pseudo elements in CSSSelector::selectorText().
Test: fast/dom/shadow/distributed-pseudo-element-css-text.html
* css/CSSSelector.cpp:
(WebCore::CSSSelector::selectorText):
* css/CSSSelector.h:
(CSSSelector):
2013-03-31 Adam Barth <abarth@webkit.org>
[Chromium] Yarr should build using a separate GYP file from JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=113652
Reviewed by Nico Weber.
* WebCore.gyp/WebCore.gyp:
- Update references to yarr.gyp.
2013-03-31 Kangil Han <kangil.han@samsung.com>
[EFL] Remove unused stdio.h includes
https://bugs.webkit.org/show_bug.cgi?id=113655
Reviewed by Andreas Kling.
We do not have to include unused header file.
* platform/efl/CursorEfl.cpp:
* platform/efl/FileSystemEfl.cpp:
* platform/efl/PlatformKeyboardEventEfl.cpp:
* platform/efl/ScrollbarThemeEfl.cpp:
2013-03-31 Rafael Weinstein <rafaelw@chromium.org>
HTMLLinkElement should resolve resource URLs when resources will be fetched
https://bugs.webkit.org/show_bug.cgi?id=113630
HTMLLinkElement was resolving its URL when the href attribute was processed and caching it without ever
invalidating the cached URL. This patch removes the cached URL and adds getURL() which resolve the
URL dynamically.
Reviewed by Eric Seidel.
Test: fast/dom/HTMLLinkElement/resolve-url-on-insertion.html
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::getURL):
(WebCore):
(WebCore::HTMLLinkElement::parseAttribute):
(WebCore::HTMLLinkElement::shouldLoadLink):
(WebCore::HTMLLinkElement::process):
* html/HTMLLinkElement.h:
(HTMLLinkElement):
2013-03-31 Brady Eidson <beidson@apple.com>
NetworkProcess crashes in WebCoreResourceHandleAsOperationQueueDelegate callbacks.
<rdar://problem/13541868> and https://bugs.webkit.org/show_bug.cgi?id=113664
Reviewed by Dan Bernstein.
In the "two-part" callbacks that involve waiting on a semaphore for the async block to finish,
the delegate might have been destroyed by the time the wait completes.
A RetainPtr<> protector will fix that up nicely.
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connectionShouldUseCredentialStorage:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willCacheResponse:]):
2013-03-30 Adam Barth <abarth@webkit.org>
Remove unused include of RegularExpression.h
https://bugs.webkit.org/show_bug.cgi?id=113649
Reviewed by Dimitri Glazkov.
* Modules/filesystem/DOMFilePath.cpp:
- This include isn't used.
2013-03-30 Tom Sepez <tsepez@chromium.org>
Cross-Origin copy&paste / drag&drop allowing XSS via srcdoc attribute.
https://bugs.webkit.org/show_bug.cgi?id=113443
Reviewed by Adam Barth.
Tested by LayoutTests/editing/pasteboard/paste-noscript.html
* dom/Element.h:
(Element):
(WebCore::Element::isHTMLContentAttribute):
Adds an isHTMLContentAttribute() method to determine whether an attribute can contain
(potentially unsafe) HTML content. Currently, the iframe's srcdoc attribute is the only
such attribute, but clever folks might add more in the future.
Rename stripJavaScriptAttributes() method to stripScriptingAttributes(), to better reflect
the reality that scripting content may appear as above.
Adds missing consts and consolidate isJavaScriptAttribute() method.
* dom/Element.cpp:
(WebCore::Element::isJavaScriptURLAttribute):
(WebCore::Element::stripScriptingAttributes):
Consolidated methods.
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::isHTMLContentAttribute):
(WebCore):
* html/HTMLFrameElementBase.h:
(HTMLFrameElementBase):
Indicate that for frames, the srcdoc attribute contains HTML content.
* html/parser/HTMLConstructionSite.cpp:
(WebCore::setAttributes):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::setAttributes):
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::setAttributes):
Rename stripJavaScriptAttribute calls to match Element.h
2013-03-30 Tom Sepez <tsepez@chromium.org>
View-source iframes are dangerous (and not very useful).
https://bugs.webkit.org/show_bug.cgi?id=113345
Reviewed by Adam Barth.
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::parseAttribute):
Conditionalize viewsource attribute on ENABLE(VIEWSOURCE_ATTRIBUTE).
2013-03-30 Philippe Normand <pnormand@igalia.com>
[GTK] Should use GStreamer codec installation infrastructure
https://bugs.webkit.org/show_bug.cgi?id=34085
Reviewed by Martin Robinson.
Initial support for the GStreamer codec installer. The player will
handle missing-plugins messages and use the pbutils codec
installer facilities to install the missing GStreamer
plugins. Once the plugins are installed reset the pipeline state.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::mediaPlayerPrivatePluginInstallerResultFunction): This
method is used to notify the player that the missing plugins were installed.
(WebCore):
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Ignore
errors while installing plugins and handle the missing-plugin message.
(WebCore::MediaPlayerPrivateGStreamer::handlePluginInstallerResult):
This method is invoked after the installer finished its task.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(MediaPlayerPrivateGStreamer):
2013-03-30 Praveen R Jadhav <praveen.j@samsung.com>
g_slist_reverse() may not be required in webKitWebAudioSrcLoop
https://bugs.webkit.org/show_bug.cgi?id=113568
Reviewed by Philippe Normand.
Decremental 'for' loop logic implemented to avoid using g_slist_reverse().
Original code - 2.025230 micro seconds per loop
Original code + patch - 1.964759 micro seconds per loop
This patch is covered by existing webaudio tests.
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcLoop):
2013-03-30 Alexei Filippov <alph@chromium.org>
Web Inspector: Fonts refactoring
https://bugs.webkit.org/show_bug.cgi?id=113047
Reviewed by Pavel Feldman.
Unify fonts usage across inspector.
Make inspector default font depend on platform.
* inspector/front-end/breakpointsList.css:
* inspector/front-end/dataGrid.css:
(.data-grid):
(.data-grid table):
(.data-grid td):
(.data-grid th.sort-ascending > div::after):
(.data-grid th.sort-descending > div::after):
(.data-grid button):
* inspector/front-end/heapProfiler.css:
(.heap-snapshot-view .class-view-toolbar input.class-name-filter):
(.heap-snapshot-view .retainers-view-header):
* inspector/front-end/inspector.css:
(.toolbar-item):
(.toolbar-label):
(.console-message .bubble):
(.outline-disclosure > ol):
(.source-code):
(.scope-bar li):
(.sidebar-tree, .sidebar-tree .children):
(.sidebar-tree-section):
(li .status .bubble):
(.sidebar-tree-item.selected):
(.sidebar-tree-item .titles):
(.sidebar-tree-item .subtitle):
(.sidebar-tree-item.selected .subtitle):
(.source-frame-breakpoint-message):
(.soft-context-menu):
* inspector/front-end/inspectorCommon.css:
(body):
(.resources-divider-label):
* inspector/front-end/navigatorView.css:
(.navigator li):
(.navigator li.selected .selection):
(.navigator .base-navigator-tree-element-title):
* inspector/front-end/networkLogView.css:
(.network-log-grid.data-grid td):
(.network-log-grid.data-grid.small td):
(.network-log-grid.data-grid th):
(.network-log-grid.data-grid select):
(.network-graph-label):
(.network-timeline-grid .resources-divider-label):
(.network-log-grid.data-grid .network-summary-bar td):
* inspector/front-end/resourcesPanel.css:
(.resources.panel .sidebar li):
(.resources.panel .sidebar li.selected):
(.resources.panel .sidebar li.selected .selection):
* inspector/front-end/sidebarPane.css:
(.sidebar-pane > .body .info):
(.sidebar-pane-title):
(.sidebar-pane-toolbar):
(.sidebar-pane-subtitle):
* inspector/front-end/tabbedPane.css:
(.tabbed-pane-header-tab):
(.tabbed-pane-header-tab-close-button):
(select.tabbed-pane-header-tabs-drop-down-select):
* inspector/front-end/timelinePanel.css:
(.memory-counter-value):
2013-03-29 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r147263.
http://trac.webkit.org/changeset/147263
https://bugs.webkit.org/show_bug.cgi?id=113632
Breaks test fast/loader/display-image-unset-allows-cached-
image-load.html (Requested by mlam on #webkit).
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::freshnessLifetime):
2013-03-29 Roger Fong <roger_fong@apple.com>
Unreviewed. AppleWin VS2010 build fix.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
2013-03-29 Yongjun Zhang <yongjun_zhang@apple.com>
When releasing a CGImage, we should also remove it from the subimage cache.
https://bugs.webkit.org/show_bug.cgi?id=102453
Reviewed by Simon Fraser.
When we release an image(CGImageRef) from BitmapImage's cachedFrames, if the image was already
cached in subimage cache, it's ref count won't drop to 0 and the image won't be deleted. Usually,
the subimage cache will clear the whole cache in a timer with 1 sec delay. However, if WebCore has
to paint another subimage (not necessarily from the same CGImageRef) before this timer fires, we
will restart the timer and images inside the cache will stay longer than they should.
This patch does two things:
- move SubimageCacheWithTimer and related helper struct into a separate file.
- remove the image from subimage cache when we releasing the CGImageRef, this prevent subimage
cache holding the image after we released it.
No new tests, manually verified the CGImageRef is also removed from subimage cache
when we releasing the image from FrameData::clear.
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::FrameData::clear): remove the image from subimage cache before we releasing it.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore):
(WebCore::GraphicsContext::drawNativeImage):
* platform/graphics/cg/SubimageCacheWithTimer.cpp: Added.
(WebCore):
(SubimageRequest):
(WebCore::SubimageRequest::SubimageRequest):
(WebCore::SubimageCacheAdder::hash):
(SubimageCacheAdder):
(WebCore::SubimageCacheAdder::equal):
(WebCore::SubimageCacheAdder::translate):
(WebCore::SubimageCacheWithTimer::SubimageCacheWithTimer):
(WebCore::SubimageCacheWithTimer::invalidateCacheTimerFired):
(WebCore::SubimageCacheWithTimer::getSubimage):
(WebCore::SubimageCacheWithTimer::clearImage):
(WebCore::subimageCache):
* platform/graphics/cg/SubimageCacheWithTimer.h: Added.
(WebCore):
(SubimageCacheWithTimer): Added a data member m_images to record which image and its subimages are cached.
(SubimageCacheEntry):
(SubimageCacheEntryTraits):
(WebCore::SubimageCacheWithTimer::SubimageCacheEntryTraits::isEmptyValue):
(WebCore::SubimageCacheWithTimer::SubimageCacheEntryTraits::constructDeletedValue):
(WebCore::SubimageCacheWithTimer::SubimageCacheEntryTraits::isDeletedValue):
(WebCore::SubimageCacheWithTimer::SubimageCacheHash::hash):
(WebCore::SubimageCacheWithTimer::SubimageCacheHash::equal):
(SubimageCacheHash):
2013-03-29 Andy Estes <aestes@apple.com>
Let cached resources from file: schemes expire immediately
https://bugs.webkit.org/show_bug.cgi?id=113626
Reviewed by Brady Eidson
When a CachedResource was loaded from a file: URL, we would give it an
indefinite freshness lifetime. This means that we would continue to
serve a stale resource from the memory cache even if the file was
changed on disk. With the introduction of main resource caching, this
behavior broke at least one third-party WebKit app (see <rdar://problem/13313769>).
We should instead let file resources expire immediately. Modern
filesystems implement their own caching, so we should get good
performance for multiple reads of unmodified files without doing our
own caching.
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::freshnessLifetime): file: URLs should have a
0 freshness lifetime.
2013-03-29 Ojan Vafai <ojan@chromium.org>
Flexitems no longer default min-width to min-content
https://bugs.webkit.org/show_bug.cgi?id=111790
Reviewed by Tony Chang.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
Disallow auto as a valid min-size value.
* css/html.css:
(input::-webkit-datetime-edit):
(input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container):
(input[type="range"]::-webkit-slider-runnable-track):
Remove now unnecessary min-width: 0's.
* css/mediaControlsChromium.css:
(audio::-webkit-media-controls-enclosure, video::-webkit-media-controls-enclosure):
(video::-webkit-media-controls-enclosure):
Set a flex-shrink: 0 to avoid shrinking these items below the designated height.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::constrainLogicalHeightByMinMax):
(WebCore::RenderBox::constrainContentBoxLogicalHeightByMinMax):
(WebCore::RenderBox::computeLogicalWidthInRegionUsing):
(WebCore::RenderBox::computeLogicalHeight):
(WebCore::RenderBox::computeLogicalHeightUsing):
(WebCore::RenderBox::computeContentLogicalHeight):
(WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing):
(WebCore::RenderBox::computeReplacedLogicalWidth):
(WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth):
(WebCore::RenderBox::computeReplacedLogicalWidthUsing):
(WebCore::RenderBox::computeReplacedLogicalHeight):
(WebCore::RenderBox::computeReplacedLogicalHeightRespectingMinMaxHeight):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
(WebCore::RenderBox::availableLogicalHeightUsing):
(WebCore::RenderBox::computePositionedLogicalWidth):
(WebCore::RenderBox::computePositionedLogicalWidthUsing):
(WebCore::RenderBox::computePositionedLogicalHeight):
(WebCore::RenderBox::computePositionedLogicalHeightUsing):
Remove all the unneeded SizeType arguments now that we don't need to
specially handle MinSize in all these functions.
* rendering/RenderBox.h:
* rendering/RenderButton.cpp:
(WebCore::RenderButton::styleWillChange):
(WebCore::RenderButton::setupInnerStyle):
No longer need to explicitly set min-width:0.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
(WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
Remove the code for specially handling auto.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeUsedBreadthOfSpecifiedLength):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::maxPageLogicalHeight):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeReplacedLogicalWidth):
(WebCore::RenderReplaced::computeReplacedLogicalHeight):
Remove all the now unneeded SizeType arguments.
* rendering/style/RenderStyle.h:
Change the default min-size back to 0.
2013-03-29 Alexey Proskuryakov <ap@apple.com>
Expose FeatureObserver data to WebKit clients
https://bugs.webkit.org/show_bug.cgi?id=113613
Reviewed by Sam Weinig.
FeatureObserver used to depend on chromium-only HistogramSupport, which is not
really usable on Mac at least.
Instead of adding parallel feature reporting machinery, I'm adding a way to
generically relay the data from FeatureObserver to port code.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::reportMemoryUsage):
* loader/FrameLoader.h:
(WebCore::FrameLoader::previousURL):
Exposed m_previousURL, renaming it to follow WebKit style.
* page/FeatureObserver.cpp:
(WebCore::FeatureObserver::~FeatureObserver):
(WebCore::FeatureObserver::updateMeasurements):
* page/FeatureObserver.h:
(WebCore::FeatureObserver::accumulatedFeatureBits):
Exposed the data to clients, and made reporting through HistogramSupport
chromium only for clarity.
2013-03-29 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Exclusions] shape outside segments not properly calculated for ellipses
https://bugs.webkit.org/show_bug.cgi?id=112587
Reviewed by Julien Chaffraix.
When converting the line top coordinates from the parent's coordinate
space to the coordinate space of the float, the offset given by the
shape was not being accounted for. This patch accounts for that
offset.
Test: fast/exclusions/shape-outside-floats/shape-outside-floats-non-zero-y.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::logicalLeftOffsetForLine): Fix the coordinate conversion.
(WebCore::RenderBlock::logicalRightOffsetForLine): Ditto.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Ditto.
2013-03-29 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Incorrect margin corner radii formula
https://bugs.webkit.org/show_bug.cgi?id=111186
Reviewed by Dirk Schulze.
Corrected an error in the forumla for the margin ellipse's radii.
Tests: fast/exclusions/shape-outside-floats/shape-outside-floats-ellipse-margin-left.html
fast/exclusions/shape-outside-floats/shape-outside-floats-ellipse-margin-right.html
* rendering/ExclusionRectangle.cpp:
(WebCore::FloatRoundedRect::marginBounds):
2013-03-19 Ojan Vafai <ojan@chromium.org>
min-width/max-width of min-content/max-content don't work correctly if width is specified
https://bugs.webkit.org/show_bug.cgi?id=106143
Reviewed by Tony Chang.
Test: fast/css-intrinsic-dimensions/intrinsic-sized-blocks.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeIntrinsicLogicalWidths):
Expose this so that we don't use the preferred widths when calculating intrinsic width
values since the preferred width will be the regular width value if it is set.
Also, simplified the logic around table cells and scrollbar widths. The old code was
wrong and unnecessarily complicated.
(WebCore::RenderBlock::computePreferredLogicalWidths):
Use the new computeIntrinsicLogicalWidths method.
(WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
(WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
Pass in the min/max values as out params so they can be called from computeIntrinsicLogicalWidths.
Also, make computeBlockPreferredLogicalWidths const.
* rendering/RenderBlock.h:
2013-03-29 Joshua Bell <jsbell@chromium.org>
IndexedDB: Use WTF::TemporaryChange rather than manually resetting a flag
https://bugs.webkit.org/show_bug.cgi?id=113594
Reviewed by Tony Chang.
Split out from another patch: rather than m_foo = true; ... m_foo = false; use
the handy WTF::TemporaryChange scoped variable change doohickey.
Test: http/tests/inspector/indexeddb/database-structure.html
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::close):
2013-03-29 Joshua Bell <jsbell@chromium.org>
[V8] IndexedDB: Exceptions thrown inconsistently for non-cloneable values
https://bugs.webkit.org/show_bug.cgi?id=113091
Reviewed by Kentaro Hara.
The exception thrown by SerializedScriptValue into the JS engine is not
observable by ScriptState. (We should fix that, but it appears non-trivial.)
Ask the SerializedScriptValue directly if it failed to clone. If so, don't
set an exception - one was already set so let that be processed normally.
Test: storage/indexeddb/clone-exception.html
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::put):
2013-03-29 Dean Jackson <dino@apple.com>
Snapshotted plugins must be able to restart on appropriate mouseup events
https://bugs.webkit.org/show_bug.cgi?id=113577
Reviewed by Tim Horton.
If the page content prevents the default behaviour of a mousedown event, then a snapshotted
plugin would never receive a click event, and thus be unable to restart. We have to also
look for a mouseup that happens with an associated mousedown, and trigger restart. This
won't call any page code - it's just behind the scenes.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Initialize new member variable.
(WebCore::RenderSnapshottedPlugIn::handleEvent): Track the state of mousedown and up pairs, and restart
if you see an appropriate mouseup.
* rendering/RenderSnapshottedPlugIn.h: New member variable to track mouse state.
2013-03-29 Simon Fraser <simon.fraser@apple.com>
removeViewportConstrainedLayer() should remove the layer from m_viewportConstrainedLayersNeedingUpdate too
https://bugs.webkit.org/show_bug.cgi?id=113596
Reviewed by Tim Horton.
It's possible, with some combination of position:fixed and opacity transitions
in iframes, to end up with a RenderLayer in m_viewportConstrainedLayersNeedingUpdate
that has been removed from m_viewportConstrainedLayers, which leads to later assertions
and/or crashes.
Fix by removing a layer from m_viewportConstrainedLayersNeedingUpdate when we
remove it from m_viewportConstrainedLayers.
I was not able to come up with a testcase that reliably reproduces this.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::removeViewportConstrainedLayer):
2013-03-29 Greg Hughes <ghughes@apple.com>
Allow multiple searchKeys to be passed to AXUIElementCopyParameterizedAttributeValue
https://bugs.webkit.org/show_bug.cgi?id=112276
Reviewed by Chris Fleizach.
Added support for accessibility search predicates to accept multiple search keys. The search will return the first item that matches any one of the provided search keys.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
(WebCore::AccessibilityObject::isAccessibilityObjectSearchMatch):
(WebCore):
* accessibility/AccessibilityObject.h:
(AccessibilitySearchCriteria):
(WebCore::AccessibilitySearchCriteria::AccessibilitySearchCriteria):
(AccessibilityObject):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
2013-03-29 Joshua Bell <jsbell@chromium.org>
IndexedDB: Bind lifetime of in-memory backing stores to IDBFactory backend
https://bugs.webkit.org/show_bug.cgi?id=110820
Reviewed by Tony Chang.
Backing stores are dropped as soon as all connections are closed. That makes sense for
disk-backed stores to free up memory (although there's a performance trade-off...). But
for memory-backed stores, the expected lifetime should match the lifetime of the factory
so that an open/write/close/re-open/read yields the written data.
Test: Chromium's webkit_unit_tests, IDBFactoryBackendTest.MemoryBackingStoreLifetime
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::IDBBackingStore): Pass comparator into constructor since it was always
assigned immediately afterwards anyway.
(WebCore::IDBBackingStore::open): Split into three parts - open() which is disk-backed...
(WebCore::IDBBackingStore::openInMemory): ...explit in-memory creation (previously: specified by empty path)
(WebCore::IDBBackingStore::create): ... and the common logic which calls the constructor.
* Modules/indexeddb/IDBBackingStore.h: Headers for the above.
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::openBackingStore): Add in-memory backing stores to dependent set.
* Modules/indexeddb/IDBFactoryBackendImpl.h: Add member to track dependent backing stores.
2013-03-29 Nate Chapin <japhet@chromium.org>
ASSERT d->m_defersLoading != defers on detik.com and drive.google.com
https://bugs.webkit.org/show_bug.cgi?id=111902
Reviewed by Alexey Proskuryakov.
Test: http/tests/navigation/same-url-iframes-defer-crash.html
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::setDefersLoading): If multiple DocumentLoaders are
using loading the same main resource, ensure only one of them can call
ResourceLoader::setDefersLoading.
2013-03-29 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Content should not be lost when uiSourceCode's file was removed externally on file system.
https://bugs.webkit.org/show_bug.cgi?id=113581
Reviewed by Pavel Feldman.
* inspector/front-end/IsolatedFileSystem.js:
(WebInspector.IsolatedFileSystem.prototype.errorHandler):
(WebInspector.IsolatedFileSystem.prototype.requestFileContent):
(WebInspector.IsolatedFileSystem.prototype.fileSystemLoaded):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.checkContentUpdated.contentLoaded):
(WebInspector.UISourceCode.prototype.checkContentUpdated):
(WebInspector.UISourceCode.prototype._commitContent):
2013-03-29 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Prompt before closing dirty tab.
https://bugs.webkit.org/show_bug.cgi?id=113576
Reviewed by Pavel Feldman.
* inspector/front-end/TabbedEditorContainer.js:
(WebInspector.TabbedEditorContainer):
(WebInspector.TabbedEditorContainer.prototype._maybeCloseTab):
(WebInspector.TabbedEditorContainer.prototype._closeTabs):
(WebInspector.EditorContainerTabDelegate):
(WebInspector.EditorContainerTabDelegate.prototype.closeTabs):
* inspector/front-end/TabbedPane.js:
(WebInspector.TabbedPane.prototype.setTabDelegate):
(WebInspector.TabbedPane.prototype.appendTab):
(WebInspector.TabbedPane.prototype.allTabs):
(WebInspector.TabbedPane.prototype.otherTabs):
(WebInspector.TabbedPaneTab.prototype.setDelegate):
(WebInspector.TabbedPaneTab.prototype._tabClicked):
(WebInspector.TabbedPaneTab.prototype._closeTabs):
(WebInspector.TabbedPaneTab.prototype._tabContextMenu):
(WebInspector.TabbedPaneTab.prototype._tabContextMenu.closeOthers):
(WebInspector.TabbedPaneTab.prototype._tabContextMenu.closeAll):
(WebInspector.TabbedPaneTabDelegate):
(WebInspector.TabbedPaneTabDelegate.prototype.closeTabs):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.resetWorkingCopy):
2013-03-29 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. Remove hopping ancorElement and use anchorBox instead.
https://bugs.webkit.org/show_bug.cgi?id=113579
Reviewed by Pavel Feldman.
Initially I made a fake anchor element and moved it according to the highlighted element position.
It was a hack and after http://trac.webkit.org/changeset/147209 I'm able to remove it.
Drive by fix: the code was moved from onMouseMove to getPopoverAnchor.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart):
(WebInspector.FlameChart.prototype._getPopoverAnchor):
-(WebInspector.FlameChart.prototype._onMouseMove)
* inspector/front-end/flameChart.css:
2013-03-29 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][EGL] Add support for creating offscreen surface.
https://bugs.webkit.org/show_bug.cgi?id=113359
Reviewed by Noam Rosenthal.
This is in preparation for enabling EGL and GLES2
support for EFL port. This patch adds support for using
EGLPixmapSurface as an offscreensurface.
* PlatformEfl.cmake:
* platform/graphics/opengl/GLPlatformSurface.cpp:
(WebCore::GLPlatformSurface::createOffScreenSurface):
* platform/graphics/surfaces/efl/GLTransportSurface.cpp:
(WebCore::GLTransportSurface::createTransportSurface):
* platform/graphics/surfaces/egl/EGLConfigSelector.cpp:
(WebCore::EGLConfigSelector::EGLConfigSelector):
(WebCore::EGLConfigSelector::pixmapContextConfig):
(WebCore::EGLConfigSelector::surfaceContextConfig):
(WebCore::EGLConfigSelector::nativeVisualId):
(WebCore::EGLConfigSelector::reset):
(WebCore::EGLConfigSelector::createConfig):
* platform/graphics/surfaces/egl/EGLConfigSelector.h:
(EGLConfigSelector):
Added logic to select EGLConfig supporting alpha and
opaque as needed. Moved Code related to display to
EGLHelper class.
* platform/graphics/surfaces/egl/EGLHelper.cpp: Added.
(WebCore):
(EGLDisplayConnection):
(WebCore::EGLDisplayConnection::EGLDisplayConnection):
(WebCore::EGLDisplayConnection::~EGLDisplayConnection):
(WebCore::EGLDisplayConnection::display):
(WebCore::EGLDisplayConnection::terminate):
(WebCore::EGLHelper::eglDisplay):
* platform/graphics/surfaces/egl/EGLHelper.h: Copied from Source/WebCore/platform/graphics/surfaces/egl/EGLSurface.h.
(WebCore):
(EGLHelper):
* platform/graphics/surfaces/egl/EGLSurface.cpp:
(WebCore::EGLTransportSurface::createTransportSurface):
(WebCore::EGLTransportSurface::EGLTransportSurface):
(WebCore::EGLTransportSurface::attributes):
(WebCore::EGLTransportSurface::~EGLTransportSurface):
(WebCore::EGLTransportSurface::destroy):
(WebCore::EGLTransportSurface::configuration):
(WebCore::EGLOffScreenSurface::createOffScreenSurface):
(WebCore::EGLOffScreenSurface::EGLOffScreenSurface):
(WebCore::EGLOffScreenSurface::~EGLOffScreenSurface):
(WebCore::EGLOffScreenSurface::attributes):
(WebCore::EGLOffScreenSurface::configuration):
(WebCore::EGLOffScreenSurface::destroy):
* platform/graphics/surfaces/egl/EGLSurface.h:
(WebCore):
(EGLTransportSurface):
(EGLOffScreenSurface):
* platform/graphics/surfaces/egl/EGLXSurface.cpp: Copied from Source/WebCore/platform/graphics/surfaces/egl/EGLSurface.cpp.
(WebCore):
(WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
(WebCore::EGLWindowTransportSurface::~EGLWindowTransportSurface):
(WebCore::EGLWindowTransportSurface::swapBuffers):
(WebCore::EGLWindowTransportSurface::destroy):
(WebCore::EGLPixmapSurface::EGLPixmapSurface):
(WebCore::EGLPixmapSurface::~EGLPixmapSurface):
(WebCore::EGLPixmapSurface::destroy):
* platform/graphics/surfaces/egl/EGLXSurface.h: Copied from Source/WebCore/platform/graphics/surfaces/egl/EGLSurface.h.
(WebCore):
(EGLWindowTransportSurface):
(EGLPixmapSurface):
EGLPixmapSurface implementation.
2013-03-29 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r147218.
http://trac.webkit.org/changeset/147218
https://bugs.webkit.org/show_bug.cgi?id=113585
We should rethink UI of this feature. (Requested by vsevik on
#webkit).
* inspector/InjectedScriptSource.js:
(.):
* inspector/front-end/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertyTreeElement.populateWithProperties):
* inspector/front-end/RemoteObject.js:
(WebInspector.RemoteObject.prototype.set else):
(WebInspector.RemoteObjectProperty):
* inspector/front-end/inspector.css:
2013-03-29 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: extract common base for 3 timeline overview controls (Events/Frames/Memory)
https://bugs.webkit.org/show_bug.cgi?id=113572
Reviewed by Yury Semikhatsky.
Refactoring, covered by existing tests.
- introduce TimelineOverviewBase as a common base for 3 overview controls;
- make every overview control a view.
This does not yet take advantage of common base (subject of the next patch).
* inspector/front-end/OverviewGrid.js:
(WebInspector.OverviewGrid.prototype.gridElement):
(WebInspector.OverviewGrid.prototype.itemsGraphsElement):
* inspector/front-end/TimelineOverviewPane.js:
(WebInspector.TimelineOverviewPane):
(WebInspector.TimelineOverviewPane.prototype.setMode):
(WebInspector.TimelineOverviewPane.prototype._update):
(WebInspector.TimelineOverviewBase):
(WebInspector.TimelineOverviewBase.prototype.update):
(WebInspector.TimelineMemoryOverview):
(WebInspector.TimelineEventOverview):
(WebInspector.TimelineEventOverview.prototype._renderBar):
(WebInspector.TimelineFrameOverview):
(WebInspector.TimelineFrameOverview.prototype.update):
(WebInspector.TimelineFrameOverview.prototype._renderBars):
(WebInspector.TimelineFrameOverview.prototype._drawFPSMarks):
(WebInspector.TimelineFrameOverview.prototype._renderBar):
2013-03-29 Peter Rybin <prybin@chromium.org>
Web Inspector: gather accessor property getter and setter under a single tree node
https://bugs.webkit.org/show_bug.cgi?id=113357
Reviewed by Yury Semikhatsky.
A new tree element class AccessorPropertyTreeElemenet is added.
RemoteObjectProperty can now represent accessor property (if value is null).
New tree element is supported in CSS stylesheet.
Testing code is slightly modified for exploring new tree elements.
* inspector/InjectedScriptSource.js:
(.):
* inspector/front-end/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertyTreeElement.populateWithProperties):
(WebInspector.AccessorPropertyTreeElement):
(WebInspector.AccessorPropertyTreeElement.prototype.onattach):
(WebInspector.AccessorPropertyTreeElement.prototype.update):
(WebInspector.AccessorPropertyTreeElement.prototype.onpopulate):
* inspector/front-end/RemoteObject.js:
* inspector/front-end/inspector.css:
(.accessor-property-name):
2013-03-29 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. Developers will have more clue
if two different profiles will have same colors for same functions.
https://bugs.webkit.org/show_bug.cgi?id=113410
Reviewed by Pavel Feldman.
The code related to color generator was extracted into a separate class.
The instance of the class was stored as static private member of the FlameChart class,
so all the profiles will share the same instance and will use same colors.
The colors itself were slightly adjusted.
Drive by fix: coordinatesToNodeIndex was fixed. The error was introduced in the patch about left padding.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart):
(WebInspector.FlameChart.ColorGenerator):
(WebInspector.FlameChart.ColorGenerator.prototype._colorPairForID):
(WebInspector.FlameChart.prototype._calculateTimelineData):
(WebInspector.FlameChart.prototype._calculateTimelineDataForSamples):
(WebInspector.FlameChart.prototype._coordinatesToNodeIndex):
2013-03-29 Charles Wei <charles.wei@torchmobile.com.cn>
[BlackBerry] Cleanup the CONTEXT_MENUS in BlackBerry porting
https://bugs.webkit.org/show_bug.cgi?id=113562
Reviewed by George Staikos.
Internally reviewed by Mike Fenton and Gen Mak.
No new tests, just disable CONTEXT_MENUS for blackberry porting.
* platform/blackberry/ContextMenuBlackBerry.cpp:
* platform/blackberry/ContextMenuItemBlackBerry.cpp:
2013-03-29 KwangYong Choi <ky0.choi@samsung.com>
Fix build warning after r147022
https://bugs.webkit.org/show_bug.cgi?id=113567
Reviewed by Kentaro Hara.
Use UNUSED_PARAM macro to fix -Wunused-parameter build warning.
No new tests, no change on behavior.
* page/EventHandler.cpp:
(WebCore::expandSelectionToRespectUserSelectAll):
2013-03-29 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: ability to use AnchorBox as an anchor for Popover
https://bugs.webkit.org/show_bug.cgi?id=113563
Reviewed by Pavel Feldman.
No new test: no change in behaviour.
- Ability to pass AnchorBox instead of Element for popover anchor.
* inspector/front-end/Popover.js:
(WebInspector.Popover.prototype._positionElement):
(WebInspector.PopoverHelper.prototype._eventInHoverElement):
2013-03-29 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: assign Scroll events to rendering category (was painting)
https://bugs.webkit.org/show_bug.cgi?id=113564
Reviewed by Pavel Feldman.
* inspector/front-end/TimelinePresentationModel.js: /ScrollLayer.*category/s/painting/rendering/
(WebInspector.TimelinePresentationModel._initRecordStyles):
2013-03-28 Philippe Normand <pnormand@igalia.com>
[GStreamer] playback gets bumpy sometimes when on-disk buffering is slow
https://bugs.webkit.org/show_bug.cgi?id=113512
Reviewed by Martin Robinson.
When the HTTP source element is slow downloading data for on-disk
buffering the playback position might reach an unbuffered region
and have bad consequences, pausing the pipeline beforehand
prevents this case to happen.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::processBufferingStats):
2013-03-29 Keishi Hattori <keishi@webkit.org>
Add the event handler content attributes that are defined in the spec to HTMLElement
https://bugs.webkit.org/show_bug.cgi?id=86363
Reviewed by Ryosuke Niwa.
Test: fast/events/event-attribute.html
We are missing some event handler content attributes from HTMLElement that are defined in the spec.
http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#event-handlers-on-elements,-document-objects,-and-window-objects
* html/HTMLElement.cpp:
(WebCore::HTMLElement::eventNameForAttributeName): Returns event name for a given attribute name by looking it up on a HashMap.
(WebCore::HTMLElement::parseAttribute): Sets up event listeners for content attributes.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::parseAttribute): Removed event listener content attributes that was added to HTMLElement.
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::parseAttribute): Ditto.
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseAttribute): Ditto.
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::parseAttribute): Ditto.
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::parseAttribute): Ditto.
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::parseAttribute): Ditto.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseAttribute): Ditto.
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::parseAttribute): Ditto.
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::parseAttribute): Ditto.
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::parseAttribute): Ditto.
2013-03-22 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: timeline paint rectangles are off for transformed layers
https://bugs.webkit.org/show_bug.cgi?id=112919
Reviewed by Pavel Feldman.
- pass RenderObject instead of Frame to InspectorInstrumentation::didPaint;
- take transforms into account and convert paint clip rect into quad;
- emit quads, not rects as Paint and Layout record data;
- adjust client to using quads, compute width/height from quad coords.
* inspector/InspectorInstrumentation.cpp: Pass RenderObject, not frame to {will,did}Paint.
(WebCore):
(WebCore::InspectorInstrumentation::willPaintImpl):
(WebCore::InspectorInstrumentation::didPaintImpl):
(WebCore::InspectorInstrumentation::instrumentingAgentsForRenderer): Added.
* inspector/InspectorInstrumentation.h:
(WebCore):
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::willPaint):
(WebCore::InspectorInstrumentation::didPaint):
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::didLayout):
(WebCore::InspectorTimelineAgent::didPaint):
(WebCore::InspectorTimelineAgent::localToPageQuad): Convert local clip rect to transformed quad.
(WebCore):
* inspector/InspectorTimelineAgent.h:
(WebCore):
(InspectorTimelineAgent):
* inspector/TimelineRecordFactory.cpp: Emit quads as Paint and Layout records data.
(WebCore::createQuad):
(WebCore):
(WebCore::TimelineRecordFactory::createPaintData):
(WebCore::TimelineRecordFactory::createLayoutData):
* inspector/TimelineRecordFactory.h:
(WebCore):
(TimelineRecordFactory):
* inspector/front-end/TimelinePanel.js: Highlight a quad iff formatted record has highlightQuad field.
(WebInspector.TimelinePanel.prototype._mouseOut):
(WebInspector.TimelinePanel.prototype._mouseMove):
(WebInspector.TimelinePanel.prototype._highlightQuad):
(WebInspector.TimelinePanel.prototype._hideQuadHighlight):
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.Record): Set highlightQuad for Paint and Layout
(WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
(WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
(WebInspector.TimelinePresentationModel.quadWidth):
(WebInspector.TimelinePresentationModel.quadHeight):
* page/FrameView.cpp:
(WebCore::FrameView::paintContents):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintContents):
2013-03-21 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: generalize InspectorDOMAgent::highlightRect() to highlightQuad()
https://bugs.webkit.org/show_bug.cgi?id=112911
Reviewed by Pavel Feldman.
- added Quad type and DOMAgent.highlightQuad() to protocol;
- retained DOMAgent.highlightRect(), but implement it via highlightQuad.
* inspector/Inspector.json:
* inspector/InspectorDOMAgent.cpp:
(WebCore::parseQuad):
(WebCore):
(WebCore::InspectorDOMAgent::highlightRect):
(WebCore::InspectorDOMAgent::highlightQuad):
(WebCore::InspectorDOMAgent::innerHighlightQuad):
* inspector/InspectorDOMAgent.h:
(InspectorDOMAgent):
* inspector/InspectorOverlay.cpp: Mostly just renames of rect to quad.
(WebCore::InspectorOverlay::paint):
(WebCore::InspectorOverlay::getHighlight):
(WebCore::InspectorOverlay::hideHighlight):
(WebCore::InspectorOverlay::highlightQuad):
(WebCore::InspectorOverlay::update):
(WebCore::InspectorOverlay::drawQuadHighlight):
(WebCore::InspectorOverlay::reportMemoryUsage):
* inspector/InspectorOverlay.h:
(InspectorOverlay):
* inspector/InspectorOverlayPage.html: Ditto.
2013-03-29 Zalan Bujtas <zalan@apple.com>
REGRESSION(r143102): Ignore table cell's height attribute when checking if containing block has auto height.
https://bugs.webkit.org/show_bug.cgi?id=113526
It matches shipping Safari and Firefox behaviour.
Reviewed by Antti Koivisto.
Test: fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight):
2013-03-28 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Cookies] CookiesTable should integrate with DataGrid context menu.
https://bugs.webkit.org/show_bug.cgi?id=113496
Reviewed by Pavel Feldman.
Integrate CookiesTable with DataGrid context menu
instead of overriding it.
* inspector/front-end/CookiesTable.js:
Pass context menu callback to DataGrid constructor.
* inspector/front-end/DataGrid.js:
Added context menu callback constructor parameter. Fixed JSDoc.
2013-03-28 Philip Rogers <pdr@google.com>
Fix compiler warning in IDBTransaction::modeToString
https://bugs.webkit.org/show_bug.cgi?id=113547
Reviewed by Darin Adler.
Not all compilers are smart enough to handle this switch. This patch refactors
modeToString to not return from the default case.
No new tests as this is just a compiler fix.
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::modeToString):
2013-03-28 Simon Fraser <simon.fraser@apple.com>
GraphicsLayerCA::recomputeVisibleRects() shouldn't actually set the visible rect
https://bugs.webkit.org/show_bug.cgi?id=113544
Reviewed by Tim Horton.
The functions added in r147058 to update the visible rects of GraphicsLayerCAs
should not have actually set the m_visibleRect on the layer, because this
caused a later call to adjustTiledLayerVisibleRect() to think that the visible
rect had not changed, so it did no expansion.
Clarify the logic to ask the GraphicsLayer whether, given a new visible
rect, it would need to make new tiles (which happens later during a flush).
Add a function to RenderLayerCompositor to call this code (but which has
no callers yet).
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::visibleRectChangeRequiresFlush): Make private.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush):
(WebCore::GraphicsLayerCA::visibleRectChangeRequiresFlush):
* platform/graphics/ca/GraphicsLayerCA.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::noteVisibleRectChanged):
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
2013-03-28 Rafael Weinstein <rafaelw@chromium.org>
[HTMLTemplateElement] <template> should be able to be a foster parent
https://bugs.webkit.org/show_bug.cgi?id=113541
Reviewed by Eric Seidel
This adds to the check in findFosterSite to include whether the parent is a DocumentFragment which is a template contents.
Tests added to html5lib suite.
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::findFosterSite):
2013-03-28 Xianzhu Wang <wangxianzhu@chromium.org>
[Chromium] Don't create SolidColorLayer for full transparent background
https://bugs.webkit.org/show_bug.cgi?id=113524
Reviewed by James Robinson.
Test: GraphicsLayerChromiumTest.setContentsToSolidColor
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::setContentsToSolidColor):
2013-03-28 Arnaud Renevier <a.renevier@sisa.samsung.com>
use XMLHttpRequestResponseType enumeration in XMLHttpRequest.idl
https://bugs.webkit.org/show_bug.cgi?id=113518
Reviewed by Kentaro Hara.
Use enum XMLHttpRequestResponseType type instead of DOMString for
XMLHttpRequest responseType.
Argument validation now happens in the bindings.
XMLHttpRequest::setResponseType should then never receive invalid
arguments. So, replace console message with ASSERT_NOT_REACHED();
Test: fast/xmlhttprequest/xmlhttprequest-set-responsetype.html
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::setResponseType):
* xml/XMLHttpRequest.idl:
2013-03-28 Lamarque V. Souza <Lamarque.Souza@basyskom.com>
[css3-text] Add platform support for "wavy" text decoration style
https://bugs.webkit.org/show_bug.cgi?id=92868
Reviewed by Benjamin Poulain.
This patch uses GraphicsContext::strokePath() to implement
wavy decoration for the CSS3 property "text-decoration-style".
No new tests as this is covered with existing tests.
* rendering/InlineTextBox.cpp:
(WebCore::textDecorationStyleToStrokeStyle): Remove obsolete comment.
(WebCore::adjustStepToDecorationLength): Add function to adjust
variables used to calculate the lenght of Bezier curves.
(WebCore::strokeWavyTextDecoration): Add function to stroke wavy
decoration based on cubic Bezier curve.
(WebCore::InlineTextBox::paintDecoration): Call
strokeWavyTextDecoration when necessary.
2013-03-28 Arnaud Renevier <a.renevier@sisa.samsung.com>
REGRESSION(r147149): breaks binding test on Mac. (Requested by mlam_ on #webkit).
https://bugs.webkit.org/show_bug.cgi?id=113538
Reviewed by Simon Fraser.
Run run-bindings-tests --reset-results to fix broken tests after
r147149.
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetter):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::shortAttrAttrSetter):
(WebCore::TestObjV8Internal::unsignedShortAttrAttrSetter):
(WebCore::TestObjV8Internal::longAttrAttrSetter):
(WebCore::TestObjV8Internal::longLongAttrAttrSetter):
(WebCore::TestObjV8Internal::unsignedLongLongAttrAttrSetter):
(WebCore::TestObjV8Internal::testObjAttrAttrSetter):
(WebCore::TestObjV8Internal::XMLObjAttrAttrSetter):
(WebCore::TestObjV8Internal::createAttrSetter):
(WebCore::TestObjV8Internal::reflectedIntegralAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedBooleanAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrSetter):
(WebCore::TestObjV8Internal::typedArrayAttrAttrSetter):
(WebCore::TestObjV8Internal::attrWithGetterExceptionAttrSetter):
(WebCore::TestObjV8Internal::attrWithSetterExceptionAttrSetter):
(WebCore::TestObjV8Internal::withScriptStateAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
(WebCore::TestObjV8Internal::conditionalAttr1AttrSetter):
(WebCore::TestObjV8Internal::conditionalAttr2AttrSetter):
(WebCore::TestObjV8Internal::conditionalAttr3AttrSetter):
(WebCore::TestObjV8Internal::anyAttributeAttrSetter):
(WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrSetter):
(WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrSetter):
(WebCore::TestObjV8Internal::enabledPerContextAttr1AttrSetter):
(WebCore::TestObjV8Internal::enabledPerContextAttr2AttrSetter):
(WebCore::TestObjV8Internal::floatArrayAttrSetter):
(WebCore::TestObjV8Internal::doubleArrayAttrSetter):
(WebCore::TestObjV8Internal::mutablePointAttrSetter):
(WebCore::TestObjV8Internal::immutablePointAttrSetter):
(WebCore::TestObjV8Internal::strawberryAttrSetter):
(WebCore::TestObjV8Internal::strictFloatAttrSetter):
(WebCore::TestObjV8Internal::idAttrSetter):
(WebCore::TestObjV8Internal::nullableLongSettableAttributeAttrSetter):
(WebCore::TestObjV8Internal::nullableStringValueAttrSetter):
(WebCore::TestObjV8Internal::perWorldAttributeAttrSetter):
(WebCore::TestObjV8Internal::perWorldAttributeAttrSetterForMainWorld):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrSetter):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetter):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrSetter):
(WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrSetter):
(WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrSetter):
(WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrSetter):
2013-03-28 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r147130.
http://trac.webkit.org/changeset/147130
https://bugs.webkit.org/show_bug.cgi?id=113539
Not needed now that we do not sleep in preprocessor.pm
(Requested by jamesr on #webkit).
* WebCore.gyp/WebCore.gyp:
* bindings/scripts/CodeGenerator.pm:
(ParseInterface):
* bindings/scripts/IDLParser.pm:
(Parse):
* bindings/scripts/generate-bindings.pl:
* bindings/scripts/generate-preprocessed-idls.pl: Removed.
* bindings/scripts/preprocessor.pm:
(applyPreprocessor):
2013-03-28 Nate Chapin <japhet@chromium.org>
Don't grant local content permissions for appcache loads.
https://bugs.webkit.org/show_bug.cgi?id=112542
Reviewed by Antti Koivisto.
No new tests, fixing http/tests/appcache/local-content.html
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::commitData): Don't grant local load permissions
to all SubstituteData loads, only give them to loads that were SubstituteData
loads at the time of DocumentLoader construction. This constitutes all
SubstituteData loads except those triggered by appcache.
* loader/DocumentLoader.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didBeginDocument): Move granting local load
permissions for SubstituteData loads to DocumentLoader::commitData().
2013-03-28 Mike West <mkwst@chromium.org>
X-Frame-Options: Blocked resources should fire load events.
https://bugs.webkit.org/show_bug.cgi?id=113192
Reviewed by Nate Chapin.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
Fire a load event on the frame's owner element when denying access
due to X-Frame-Options header content. This brings us in-line with
Gecko and IE, which both trigger load events currently.
2013-03-28 Tien-Ren Chen <trchen@chromium.org>
Support bottom-right anchored fixed-position elements during a pinch gesture
https://bugs.webkit.org/show_bug.cgi?id=111670
Reviewed by James Robinson.
This patch adds support to bottom-right fixed-position elements by
introducing WebLayerPositionConstraint to WebLayer.
No new tests. Can't test until chromium patch landed.
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::updateLayerPositionConstraint):
* page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
(WebCore::clearPositionConstraintExceptForLayer):
(WebCore):
(WebCore::computePositionConstraint):
(WebCore::ScrollingCoordinatorChromium::updateLayerPositionConstraint):
* page/scrolling/chromium/ScrollingCoordinatorChromium.h:
(ScrollingCoordinatorChromium):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::registerScrollingLayers):
* rendering/RenderLayerBacking.h:
(WebCore::RenderLayerBacking::contentsContainmentLayer):
(RenderLayerBacking):
* rendering/RenderLayerCompositor.cpp:
* rendering/RenderLayerCompositor.h:
2013-03-28 James Robinson <jamesr@chromium.org>
Remove unnecessary 1 second sleep on windows from preprocessor.pm
https://bugs.webkit.org/show_bug.cgi?id=113536
Unreviewed, partial rollout of r146661.
This rolls out one line of 146661 that slows down the windows build significantly.
* bindings/scripts/preprocessor.pm:
(applyPreprocessor):
2013-03-28 Levi Weintraub <leviw@chromium.org>
Enable font measurement optimization for Chromium-mac when there are no font-feature-settings.
Enable measure-once optimization on Chromium-Mac
https://bugs.webkit.org/show_bug.cgi?id=113243
Reviewed by Eric Seidel.
Bugs in Chromium-mac's -webkit-font-feature-settings support prevented us from enabling the
optimization when it was enabled for all other platforms. This was believed to be related to
kerning, but the bug shows up when there are any font-feature-settings specified. For now,
optimizing the common case and only turning off the optimization when there are font-feature-
settings in play.
Updated test fast/text/shaping/shaping-selection-rect.html to avoid breaking due to
https://bugs.webkit.org/show_bug.cgi?id=113418
* rendering/RenderBlockLineLayout.cpp:
(WebCore::setLogicalWidthForTextRun):
2013-03-28 Zoltan Horvath <zoltan@webkit.org>
[CSS Exclusions][CSS Regions] Block children do not layout inline content correctly in a region with shape-inside set
https://bugs.webkit.org/show_bug.cgi?id=112177
Reviewed by David Hyatt.
When we had two multiple regions and a shape-inside was applied on the second region, but not on the first region and the content contained
paragraphs, the content was pushed down almost to the bottom in the second region. In a flow thread this behavior caused by the lack of the
proper updating of absoluteLogicalTop in RenderBlock::layoutRunsAndFloatsInRange function.
Tests: fast/regions/shape-inside/shape-inside-on-additional-regions.html
fast/regions/shape-inside/shape-inside-on-regions.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange): Update the value of absoluteLogicalTop in every run when we are in a flow thread.
2013-03-28 Arnaud Renevier <a.renevier@sisa.samsung.com>
exceptions are not checked after toInt32 calls in bindings.
https://bugs.webkit.org/show_bug.cgi?id=113218
Reviewed by Kentaro Hara.
In attribute setter, wrap JSValue to native value conversion in a try
catch block.
Define a new macro binding: V8TRYCATCH_VOID
No new tests: covered by fast/dom/exception-in-binding.html
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrSetter):
* bindings/v8/V8BindingMacros.h:
(WebCore):
2013-03-28 ChangSeok Oh <changseok.oh@collabora.com>
[GTK][AC] Use transform property of ClutterActor
https://bugs.webkit.org/show_bug.cgi?id=113317
Reviewed by Gustavo Noronha Silva.
ClutterActor has a transform property to set transformation matrix directly
since version 1.12. So we don't need to keep and use the matrix property of GraphicsLayerActor.
No new tests because of no functionality change.
* platform/graphics/clutter/GraphicsLayerActor.cpp:
(_GraphicsLayerActorPrivate):
(graphicsLayerActorDispose):
(graphicsLayerActorApplyTransform):
* platform/graphics/clutter/GraphicsLayerActor.h:
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::GraphicsLayerClutter::updateTransform):
* platform/graphics/clutter/PlatformClutterAnimation.cpp:
(WebCore::PlatformClutterAnimation::addTransformTransition):
2013-03-28 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143834.
http://trac.webkit.org/changeset/143834
https://bugs.webkit.org/show_bug.cgi?id=113530
Multiple use-after-free regressions on ClusterFuzz (Requested
by inferno-sec on #webkit).
* dom/Attr.cpp:
(WebCore::Attr::Attr):
(WebCore::Attr::setValue):
(WebCore::Attr::childrenChanged):
* dom/Attr.h:
(Attr):
* dom/Element.cpp:
(WebCore::Element::setAttributeInternal):
* dom/Element.h:
(Element):
2013-03-28 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Before / start paddings and borders are not accounted for when placing the grid items
https://bugs.webkit.org/show_bug.cgi?id=113351
Reviewed by Tony Chang.
Tests: fast/css-grid-layout/grid-element-border-grid-item.html
fast/css-grid-layout/grid-element-border-padding-grid-item.html
fast/css-grid-layout/grid-element-padding-grid-item.html
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::borderAndPaddingBefore):
Added this helper function (we do have borderAndPaddingStart but didn't have this
one for some reason).
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::findChildLogicalPosition):
Shifted |offset| by the paddings and borders before / start.
2013-03-28 Zan Dobersek <zdobersek@igalia.com>
[GTK] Build GTK-specific, non-layer-violating source code into WebCore-independent libPlatformGtk.la
https://bugs.webkit.org/show_bug.cgi?id=112546
Reviewed by Martin Robinson.
No new tests - no new functionality.
* GNUmakefile.am: Passing the DATA_DIR value through the cppflags is not required anymore as the affected source is now
built into libPlatformGtk.la.
* GNUmakefile.list.am: Build the GTK-specific source files that are already independent of WebCore into the
libPlatformGtk.la by assigning the build targets listing to the platformgtk_sources variable.
* platform/gtk/GtkVersioning.c: Renamed from Source/Platform/gtk/GtkVersioning.c.
* platform/gtk/GtkVersioning.h: Renamed from Source/Platform/gtk/GtkVersioning.h.
2013-03-28 Matt Falkenhagen <falken@chromium.org>
Refactoring: Replace Element::disabled and isEnabledFormControl with isDisabledFormControl
https://bugs.webkit.org/show_bug.cgi?id=113273
Reviewed by Kent Tamura.
Element::disabled is about form controls and Element::isEnabledFormControl
is redundant with it, so replace them with a single function
Element::isDisabledFormControl.
No new tests, there should be no behavior change.
* accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::canSetSelectedChildrenAttribute):
* accessibility/AccessibilityListBoxOption.cpp:
(WebCore::AccessibilityListBoxOption::canSetSelectedAttribute):
* accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::canSetFocusAttribute):
* accessibility/AccessibilityMenuListOption.cpp:
(WebCore::AccessibilityMenuListOption::isEnabled):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isEnabled):
(WebCore::AccessibilityNodeObject::actionElement):
(WebCore::AccessibilityNodeObject::canSetFocusAttribute):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithControl):
* dom/Element.cpp:
(WebCore::Element::isDisabledFormControl):
* dom/Element.h:
(Element):
(WebCore::isDisabledFormControl): Add helper function for convenience.
(WebCore):
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchSimulatedClick):
* dom/GestureEvent.cpp:
(WebCore::GestureEventDispatchMediator::dispatchEvent):
* dom/MouseEvent.cpp:
(WebCore::MouseEventDispatchMediator::dispatchEvent):
* dom/Node.cpp:
(WebCore::Node::handleLocalEvents):
(WebCore::Node::willRespondToMouseMoveEvents):
(WebCore::Node::willRespondToMouseClickEvents):
(WebCore::Node::willRespondToTouchEvents):
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerDisabled):
* html/DOMFormData.cpp:
(WebCore::DOMFormData::DOMFormData):
* html/FileInputType.cpp:
(WebCore::FileInputType::handleDOMActivateEvent):
(WebCore::FileInputType::disabledAttributeChanged):
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::defaultEventHandler):
(WebCore::HTMLButtonElement::willRespondToMouseClickEvents):
(WebCore::HTMLButtonElement::isSuccessfulSubmitButton):
* html/HTMLCollection.cpp:
(WebCore::isMatchingElement):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::updateAncestorDisabledState):
(WebCore::HTMLFormControlElement::isDisabledFormControl):
(WebCore::HTMLFormControlElement::supportsFocus):
* html/HTMLFormControlElement.h:
(HTMLFormControlElement):
(WebCore::HTMLFormControlElement::isDisabledOrReadOnly):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::isSuccessfulSubmitButton):
(WebCore::HTMLInputElement::willRespondToMouseClickEvents):
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::isDisabledFormControl):
* html/HTMLOptGroupElement.h:
(HTMLOptGroupElement):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::isDisabledFormControl):
* html/HTMLOptionElement.h:
(HTMLOptionElement):
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::willRespondToMouseClickEvents):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::nextValidIndex):
(WebCore::HTMLSelectElement::updateListBoxSelection):
(WebCore::HTMLSelectElement::recalcListItems):
(WebCore::HTMLSelectElement::appendFormData):
(WebCore::HTMLSelectElement::updateSelectedState):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
(WebCore::HTMLSelectElement::defaultEventHandler):
(WebCore::HTMLSelectElement::optionAtIndex):
* html/ImageInputType.cpp:
(WebCore::ImageInputType::handleDOMActivateEvent):
* html/ResetInputType.cpp:
(WebCore::ResetInputType::handleDOMActivateEvent):
* html/SubmitInputType.cpp:
(WebCore::SubmitInputType::handleDOMActivateEvent):
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::isDisabledFormControl):
(WebCore::SliderThumbElement::defaultEventHandler):
(WebCore::SliderThumbElement::willRespondToMouseMoveEvents):
(WebCore::SliderThumbElement::willRespondToMouseClickEvents):
* html/shadow/SliderThumbElement.h:
(SliderThumbElement):
* html/shadow/SpinButtonElement.h:
* html/shadow/TextFieldDecorationElement.cpp:
(WebCore::TextFieldDecorationElement::updateImage):
* loader/FormSubmission.cpp:
(WebCore::FormSubmission::create):
* page/DragController.cpp:
(WebCore::DragController::tryDocumentDrag):
(WebCore::DragController::concludeEditDrag):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::addFocusRingRects):
(WebCore::RenderListBox::paintItemForeground):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::itemIsEnabled):
* rendering/RenderTextControl.cpp:
(WebCore::updateUserModifyProperty):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::isEnabled):
* rendering/RenderThemeMac.mm:
(WebCore::getMediaUIPartStateFlags):
* rendering/RenderThemeMacShared.mm:
(WebCore::RenderThemeMacShared::adjustMenuListStyle):
(WebCore::RenderThemeMacShared::paintSearchFieldCancelButton):
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderThemeSafari::adjustMenuListStyle):
2013-03-28 Brady Eidson <beidson@apple.com>
Remove workaround for <rdar://problem/5321972>.
<rdar://problem/12022862> and https://bugs.webkit.org/show_bug.cgi?id=113516
Reviewed by Sam Weinig.
No new tests (No point in testing the removal of bizarre behavior).
* platform/network/mac/WebCoreURLResponse.mm:
(WebCore::adjustMIMETypeIfNecessary): This workaround isn't needed on Lion+
2013-03-28 Arnaud Renevier <a.renevier@sisa.samsung.com>
use CanvasWindingRule enumeration in CanvasRenderingContext2D.idl
https://bugs.webkit.org/show_bug.cgi?id=113456
Reviewed by Kentaro Hara.
Use enum CanvasWindingRule type instead of DOMString for winding
arguments when needed. Changed methods are: fill, stroke and isPointInPath.
Test: fast/canvas/winding-enumeration.html
* html/canvas/CanvasRenderingContext2D.idl:
2013-03-28 Scott Graham <scottmg@chromium.org>
Move preprocessing of idl to pre-pass for gyp
https://bugs.webkit.org/show_bug.cgi?id=113448
Reviewed by Tony Chang.
Moves the preprocessor invocations when parsing IDL files to a
pre-pass to avoid reinvocations when IDLs are referenced from others.
This reduces the number of invocations of the preprocessor from 20071
to 633, which reduces the runtime from 12m30 to 1m (on a Windows box).
No new tests, this is a build time improvement, and shouldn't have any
visible effect.
* WebCore.gyp/WebCore.gyp:
* bindings/scripts/CodeGenerator.pm:
(ParseInterface):
* bindings/scripts/IDLParser.pm:
(Parse):
* bindings/scripts/generate-bindings.pl:
* bindings/scripts/generate-preprocessed-idls.pl: Added.
* bindings/scripts/preprocessor.pm:
(applyPreprocessor):
2013-03-28 Alok Priyadarshi <alokp@chromium.org>
RenderBox::backgroundIsKnownToBeOpaqueInRect may be wrong for theme-painted elements
https://bugs.webkit.org/show_bug.cgi?id=113419
Reviewed by Simon Fraser.
Do not consider control elements as opaque. They are typically theme painted, and we cannot assume opaqueness on the behalf of theme. It can be improved by asking the theme if it paints opaque.
Test: compositing/contents-opaque/control-layer.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::backgroundIsKnownToBeOpaqueInRect):
2013-03-28 ChangSeok Oh <changseok.oh@collabora.com>
[GTK][AC] Animating layer disappears while running with clutter backend
https://bugs.webkit.org/show_bug.cgi?id=110470
Reviewed by Gustavo Noronha Silva.
The reason of this issue is that clutter_actor_remove_child leads to stopping animations
of child actor. ClutterActor's animation could be defined only when it has a parent actor.
So we should avoid the case calling the api as much as we can. At least we don't
need to reset a actor's parent at all if the current parent is same with new one.
If we can't avoid invoking clutter_actor_remove_child for an animating actor, we may apply
a more complicated way to keep the animation. But I haven't faced such a case yet.
Covered by existing animation tests.
* platform/graphics/clutter/GraphicsLayerActor.cpp:
(graphicsLayerActorSetSublayers):
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::GraphicsLayerClutter::recursiveCommitChanges):
(WebCore::GraphicsLayerClutter::updateSublayerList):
2013-03-28 Xianzhu Wang <wangxianzhu@chromium.org>
Non-painting fixed elements should not cause repaints on scroll
https://bugs.webkit.org/show_bug.cgi?id=110430
Reviewed by Simon Fraser.
Test: compositing/repaint/scroll-fixed-layer-no-content.html
Test: compositing/repaint/scroll-fixed-layer-out-of-view.html
* page/FrameView.cpp:
(WebCore::FrameView::scrollContentsFastPath): Check for no-content and out-of-view flag set by RLC.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition): Moved the check for no-content above out-of-view because it's faster.
2013-03-28 Alexander Pavlov <apavlov@chromium.org>
Unreviewed, revert accidentally added line committed in r147117.
* inspector/front-end/ElementsTreeOutline.js:
2013-03-28 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Elements] Syntax-highlight the "Edit as HTML" editor
https://bugs.webkit.org/show_bug.cgi?id=113306
Reviewed by Vsevolod Vlasov.
Use CodeMirror as the raw HTML editor for the "Edit as HTML" menu item
(and all multiline editors for WebInspector.startEditing()).
Drive-by fix for handling the editing when the editor has been invoked on the closing tag.
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype.commit):
(WebInspector.ElementsTreeElement.prototype._startEditingAsHTML):
* inspector/front-end/UIUtils.js:
(WebInspector.EditingConfig.prototype.setMultiline):
(WebInspector.startEditing):
(WebInspector.CodeMirrorCSSLoadView): A bogus view to load-unload CodeMirror-related CSS on demand.
* inspector/front-end/elementsPanel.css:
(#elements-content .CodeMirror):
(#elements-content .CodeMirror pre):
(#elements-content .CodeMirror-lines):
* inspector/front-end/elementsPanel.css: CodeMirror styles for the "Edit as HTML" editor.
* inspector/front-end/externs.js: Declare CodeMirror type with some members, as it is third-party code.
* inspector/front-end/inspector.html: Fix script order (UIUtils.js requires View.js).
2013-03-28 Hajime Morrita <morrita@google.com>
Custom Elements: should support non-HTML namespaces.
https://bugs.webkit.org/show_bug.cgi?id=111693
Reviewed by Dimitri Glazkov.
Some existing code assumes that the element extends HTMLElements.
This change allow it to extend from Element. Note that the
namespace URI of a custom element is determined by given element
prototype: An element will have XHTML namespace if its prototype
chain includes HTMLElements, SVGElement leads SVG namespace and
null otherwise, respectively.
Test: fast/dom/custom/document-register-namespace.html
* bindings/v8/CustomElementHelpers.cpp:
(WebCore::hasValidPrototypeChainFor): Factored out from isValidPrototypeParameter()
(WebCore::CustomElementHelpers::isValidPrototypeParameter): Extend to support non HTMLElement prototype
(WebCore::CustomElementHelpers::findLocalName): Support non-HTML element names.
* bindings/v8/CustomElementHelpers.h:
(CustomElementHelpers):
* dom/CustomElementConstructor.cpp:
(WebCore::CustomElementConstructor::createElementInternal):
* dom/CustomElementRegistry.cpp:
(WebCore::CustomElementRegistry::registerElement): No longer hard-codes namespace and picks one based on the prototype value.
* dom/CustomElementRegistry.h:
(CustomElementRegistry):
2013-03-28 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Add support for the simple case of padding a polygonal shape-inside
https://bugs.webkit.org/show_bug.cgi?id=112592
Reviewed by Dirk Schulze.
First pass at computing the padded or inset boundary of a polygon. This version does not handle
self-intersecting polygons, or values of shape-padding large enough to change the shape of the
original polygon. The implementation computes an offset edge for each polgon edge, where the offset
edge is parallel to the original edge and separated by shape-padding. The padded polygon's vertices
are the intersections of each pair of adjacent offset edges. When adjacent offset edges do not intersect,
because they share a reflex vertex in the original polygon, an approximation to a circular arc
connects the offset edges.
Tests: fast/exclusions/shape-inside/shape-inside-polygon-padding-001.html
fast/exclusions/shape-inside/shape-inside-polygon-padding-002.html
fast/exclusions/shape-inside/shape-inside-polygon-padding-003.html
* rendering/ExclusionPolygon.cpp:
(WebCore::isReflexVertex): Just moved this function earlier in the file.
(WebCore::inwardEdgeNormal): Unit vector that's perpindicular to the edge and that points inwards.
(WebCore::outwardEdgeNormal): Unit vector that's perpindicular to the edge and that points outwards.
(WebCore::appendArc): Append a linear approximation to a circular arc to a vector of vertices.
(WebCore::computeShapePaddingBounds): Return a polygon whose edges are all inset by shape-padding from m_polygon.
(WebCore::computeShapeMarginBounds): Just a stub, see bug 112917.
(WebCore::ExclusionPolygon::shapePaddingBounds): Lazily use computeShapePaddingBounds() to initialize m_paddingBounds.
(WebCore::ExclusionPolygon::shapeMarginBounds): Lazily use computeShapeMarginBounds() to initialize m_marginBounds.
(WebCore::ExclusionPolygon::getIncludedIntervals): Now based on the value of shapePaddingBounds().
(WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): Now based on the value of shapePaddingBounds().
* rendering/ExclusionPolygon.h:
(WebCore::ExclusionPolygon::ExclusionPolygon):
2013-03-28 Chris Hutten-Czapski <chutten@blackberry.com>
[BlackBerry] Handle EXIF orientation for ImageDocuments
https://bugs.webkit.org/show_bug.cgi?id=113423
Internal Bug: PR 293648
Informally Reviewed by Jeff Rogers
Reviewed by Rob Buis.
Support image orientation in our image draw calls, and advertise
the capability to the calling code. This allows us to respect EXIF
orientation data.
* platform/graphics/BitmapImage.h:
* platform/graphics/blackberry/ImageBlackBerry.cpp:
(WebCore::BitmapImage::draw):
(WebCore):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::shouldRespectImageOrientation):
2013-03-28 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: name timeline overview controls consistently
https://bugs.webkit.org/show_bug.cgi?id=113503
Reviewed by Yury Semikhatsky.
Refactoring, covered by existing tests.
- rename HeapGraph to TimelineMemoryOverview;
- rename TimelineCategoryStrips to TimelineEventOvrview.
* inspector/front-end/TimelineOverviewPane.js:
(WebInspector.TimelineOverviewPane):
(WebInspector.TimelineOverviewPane.prototype.setMode):
(WebInspector.TimelineOverviewPane.prototype._setFrameMode):
(WebInspector.TimelineOverviewPane.prototype._onCategoryVisibilityChanged):
(WebInspector.TimelineOverviewPane.prototype._update):
(WebInspector.TimelineOverviewPane.prototype.setMinimumRecordDuration):
(WebInspector.TimelineMemoryOverview):
(WebInspector.TimelineEventOverview):
(WebInspector.TimelineEventOverview.prototype._renderBar):
2013-03-28 Eli Fidler <efidler@blackberry.com>
[BlackBerry] Correct glyph contour winding direction when fake-bolding
https://bugs.webkit.org/show_bug.cgi?id=113411
Reviewed by Rob Buis.
* platform/graphics/blackberry/FontPlatformDataBlackBerry.cpp:
(WebCore::FontPlatformData::applyState):
2013-03-28 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Make JavaScriptSourceFrame work correctly with breakpoints when uiSourceCode does not have a scriptFile.
https://bugs.webkit.org/show_bug.cgi?id=113500
Reviewed by Pavel Feldman.
JavaScriptSourceFrame now listens for uiSourceCode working copy related events and supports muting breakpoints without script file.
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame):
(WebInspector.JavaScriptSourceFrame.prototype._workingCopyChanged):
(WebInspector.JavaScriptSourceFrame.prototype._workingCopyCommitted):
(WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
(WebInspector.JavaScriptSourceFrame.prototype.dispose):
2013-03-22 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: factor out node search controller from inspector.js
https://bugs.webkit.org/show_bug.cgi?id=112689
Reviewed by Pavel Feldman.
This just extracts the existing logic of toggling node search
from inspector.js into a class of its own, InspectElementModeController.
Drive-by: add CtrlOrMeta+Shift+C to help screen.
* English.lproj/localizedStrings.js:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* inspector/compile-front-end.py:
* inspector/front-end/InspectElementModeController.js: Added.
(WebInspector.InspectElementModeController):
(WebInspector.InspectElementModeController.createShortcut):
(WebInspector.InspectElementModeController.prototype.enabled):
(WebInspector.InspectElementModeController.prototype.disable):
(WebInspector.InspectElementModeController.prototype.toggleSearch.callback):
(WebInspector.InspectElementModeController.prototype.toggleSearch):
(WebInspector.InspectElementModeController.prototype.handleShortcut):
* inspector/front-end/InspectorFrontendAPI.js:
(InspectorFrontendAPI.enterInspectElementMode):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
(WebInspector._createGlobalStatusBarItems):
(WebInspector._registerShortcuts):
(WebInspector.documentKeyDown):
(WebInspector._updateFocusedNode):
2013-03-28 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Settings] "previouslyViewedFiles" exceeds local storage quota.
https://bugs.webkit.org/show_bug.cgi?id=113375
Reviewed by Pavel Feldman.
Serialized "previouslyViewedFiles" may make local storage overflow.
Two fixed applied:
- limit number of history log items
- limit length of URIs that get serialized;
this would affect only data-url URIs.
* inspector/front-end/TabbedEditorContainer.js:
(WebInspector.TabbedEditorContainer.HistoryItem.prototype.serializeToObject):
Added length check.
(WebInspector.TabbedEditorContainer.History.prototype.set _serializeToObject):
Added output array length limit.
2013-03-28 Alexei Filippov <alph@chromium.org>
Web Inspector: Heap snapshots retained size falls out of the grid if column is too narrow
https://bugs.webkit.org/show_bug.cgi?id=113497
Reviewed by Pavel Feldman.
* inspector/front-end/HeapSnapshotGridNodes.js:
(WebInspector.HeapSnapshotGridNode.prototype._createValueCell):
* inspector/front-end/heapProfiler.css:
(.heap-snapshot-view .data-grid div.heap-snapshot-multiple-values):
2013-03-28 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: ResourceScriptFile should check if resource content really matches VM script when determining hasDiverged state.
https://bugs.webkit.org/show_bug.cgi?id=113488
Reviewed by Pavel Feldman.
Enabled support for checking that file content matches VM script in ResourceScriptFile (For script resources only).
This check is never done before content is loaded in corresponding editor to avoid regressing performance.
File - script content matching is done bearing in mind sourceURLs.
Live edit keeps sourceURL in script content now even if it is not present in file's content.
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
(WebInspector.JavaScriptSourceFrame.prototype.onTextEditorContentLoaded):
* inspector/front-end/LiveEditSupport.js:
(WebInspector.LiveEditScriptFile.prototype.checkMapping):
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
(WebInspector.ScriptFile.prototype.checkMapping):
(WebInspector.ResourceScriptFile):
(WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
(WebInspector.ResourceScriptFile.prototype._isDiverged):
(WebInspector.ResourceScriptFile.prototype._sourceMatchesScriptSource):
(WebInspector.ResourceScriptFile.prototype._sourceEndsWithSourceURL):
(WebInspector.ResourceScriptFile.prototype.checkMapping.callback):
(WebInspector.ResourceScriptFile.prototype.checkMapping):
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.SnippetScriptFile.prototype.checkMapping):
2013-03-28 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Simplify ResourceScriptFile so that it stores hasDiverged state in it.
https://bugs.webkit.org/show_bug.cgi?id=113489
Reviewed by Pavel Feldman.
ResourceScriptFile._hasDiverged is the one flag that shows whether we have diverged from VM.
It's values is based both on dirty flag on uiSourceCode and information about live edit failures stored in _lastLiveEditFailed field.
Removed willMerge/Diverge events from ScriptFile.
JavaScriptSourceFrame now uses isMergingToVM/DivergingFromVM methods on ScriptFile.
to determine whether breakpointAdded/Removed events should be ignored.
Introduced muted state on JavaScriptSourceFrame to determine whether it should ignore user attempts to set/remove breakpoints.
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame):
(WebInspector.JavaScriptSourceFrame.prototype._didMergeToVM):
(WebInspector.JavaScriptSourceFrame.prototype._didDivergeFromVM):
(WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
(WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
(WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
(WebInspector.JavaScriptSourceFrame.prototype._removeBreakpointDecoration):
(WebInspector.JavaScriptSourceFrame.prototype._shouldIgnoreExternalBreakpointEvents):
(WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
(WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
(WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
(WebInspector.JavaScriptSourceFrame.prototype.onTextEditorContentLoaded):
* inspector/front-end/LiveEditSupport.js:
(WebInspector.LiveEditScriptFile.prototype.isMergingToVM):
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
(WebInspector.ScriptFile.prototype.isMergingToVM):
(WebInspector.ResourceScriptFile):
(WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
(WebInspector.ResourceScriptFile.prototype._isDiverged):
(WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
(WebInspector.ResourceScriptFile.prototype._update):
(WebInspector.ResourceScriptFile.prototype._divergeFromVM):
(WebInspector.ResourceScriptFile.prototype._mergeToVM):
(WebInspector.ResourceScriptFile.prototype.hasDivergedFromVM):
(WebInspector.ResourceScriptFile.prototype.isMergingToVM):
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.SnippetScriptFile.prototype.isMergingToVM):
2013-03-25 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: DOMContentLoaded event divider is not shown on Timeline's main view
https://bugs.webkit.org/show_bug.cgi?id=113196
Reviewed by Pavel Feldman.
- keep event divider records in TimelinePresentationModel, not in TimelinePanel;
- process event divider records on every level, not just on top.
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._updateEventDividers):
(WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline.checkVisible):
(WebInspector.TimelinePanel.prototype._resetPanel):
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.prototype.reset):
(WebInspector.TimelinePresentationModel.prototype._innerAddRecord):
(WebInspector.TimelinePresentationModel.prototype.eventDividerRecords):
2013-03-28 Vsevolod Vlasov <vsevik@chromium.org>
Unreviewed inspector front-end closure compilation fix.
* inspector/front-end/CookiesTable.js:
2013-03-28 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [DTE] Paint overlay highlight over line background color
https://bugs.webkit.org/show_bug.cgi?id=113346
Reviewed by Pavel Feldman.
No new tests: no change in behaviour.
- Append spans instead of text nodes to lineRows.
- Set positioning of all spans inside of webkit-line-content as
relative
- Set z-index property so that overlay highlight is above line
background but under text.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._measureHighlightDescriptor):
(WebInspector.TextEditorMainPanel.prototype._measureSpans):
(WebInspector.TextEditorMainPanel.prototype._renderRanges):
(WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
* inspector/front-end/textEditor.css:
(.webkit-line-content > .text-editor-overlay-highlight):
(.webkit-line-content > *):
2013-03-28 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [REGRESSION] [Styles] Pasting a property in the "name" field is broken
https://bugs.webkit.org/show_bug.cgi?id=113491
Reviewed by Pavel Feldman.
Update the CSSProperty name and value upon pasting properties into the Styles pane.
Drive-by: start editing the next/new property name after pasting.
Test: inspector/styles/paste-property.html
* inspector/front-end/StylesSidebarPane.js:
(.selectElement):
(.moveDirection.alreadyNew):
2013-03-28 Alexei Filippov <alph@chromium.org>
Web Inspector: Auto expand retaining path until there are more than one retainer.
https://bugs.webkit.org/show_bug.cgi?id=112596
Reviewed by Yury Semikhatsky.
When retainers view gets opened automatically expand retaining path
for objects having just a single retainer.
Test: inspector/profiler/heap-snapshot-summary-retainers.html
* inspector/front-end/HeapSnapshotDataGrids.js:
(WebInspector.HeapSnapshotRetainmentDataGrid.prototype.populateComplete):
(WebInspector.HeapSnapshotRetainmentDataGrid.prototype.setDataSource):
* inspector/front-end/HeapSnapshotGridNodes.js:
(WebInspector.HeapSnapshotGridNode.prototype.childrenRetrieved):
(WebInspector.HeapSnapshotGridNode.prototype._populateChildren):
2013-03-28 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Fixed property text indentation in Styles sidebar.
https://bugs.webkit.org/show_bug.cgi?id=113409
Reviewed by Alexander Pavlov.
When the sidebar is too narrow and the property text wraps around it breaks the indentation.
This was introduced in r143207 which spuriously modified DOM elements order.
* inspector/front-end/StylesSidebarPane.js:
2013-03-28 Arpita Bahuguna <a.bah@samsung.com>
Regression: Crash when selecting Hebrew and numbers in a list
https://bugs.webkit.org/show_bug.cgi?id=111894
Reviewed by Ryosuke Niwa.
There is a crash when trying to click/select an anonymous
renderer.
This is a regression due to r143313 which tries to add border/padding
to the computed caret rect in RenderBox::localCaretRect().
The patch calls on the node() method for the corresponding
renderer. For an anonymous renderer though, node() returns
null. Since no check had been added for this, a crash occurs when
caret rect for an anonymous renderer is being computed.
Test: editing/selection/click-on-anonymous-content-crash.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::localCaretRect):
Added a check for validating the return from the node() call.
2013-03-28 Mike West <mkwst@chromium.org>
X-Frame-Options: Multiple headers are ignored completely.
https://bugs.webkit.org/show_bug.cgi?id=113387
Reviewed by Nate Chapin.
If a server sends multiple 'X-Frame-Options' headers, we end up with a
value like 'SAMEORIGIN, SAMEORIGIN'. Currently, we're treating that as
invalid, and ignoring the header. It would be safer to follow Gecko's
lead[1] by:
- Folding duplicated entries into their common value (that is:
'sameorigin, sameorigin' -> 'sameorigin').
- Failing closed in the case of conflicts (that is:
'sameorigin, allowall' -> 'deny').
[1]: https://bugzilla.mozilla.org/show_bug.cgi?id=761655
Tests: http/tests/security/XFrameOptions/x-frame-options-multiple-headers-conflict.html
http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-allow.html
http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-deny.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
Call out to parseXFrameOptionsHeader to get the header's disposition
and deal with each case in a switch statement for clarity. Add a new
console warning for the conflict case described above.
* platform/network/HTTPParsers.cpp:
(WebCore::parseXFrameOptionsHeader):
* platform/network/HTTPParsers.h:
Move X-Frame-Options parsing out into HTTPParsers, as it's getting
more and more complicated. To do this, the patch defines a new enum
to pass around the header's disposition.
2013-03-28 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Consolidate use of RenderRegion::isValid
https://bugs.webkit.org/show_bug.cgi?id=113154
Reviewed by David Hyatt.
After https://bugs.webkit.org/show_bug.cgi?id=98752, the list of invalid regions is kept separately than the list of valid regions.
A valid region has always a valid flow thread attached. We can use isValid() throughout the RenderRegion code
instead of testing for both isValid() and m_flowThread.
No new tests since there is no change is functionality, just code refactoring.
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::addRegionToNamedFlowThread): Added a new function to keep the code
used in addRegionToThread and checkInvalidRegions.
(WebCore::RenderNamedFlowThread::addRegionToThread):
(WebCore::RenderNamedFlowThread::checkInvalidRegions):
* rendering/RenderNamedFlowThread.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::overflowRectForFlowThreadPortion):
(WebCore::RenderRegion::isFirstRegion):
(WebCore::RenderRegion::isLastRegion):
(WebCore::RenderRegion::paintObject):
(WebCore::RenderRegion::nodeAtPoint):
(WebCore::RenderRegion::incrementAutoLogicalHeightCount):
(WebCore::RenderRegion::decrementAutoLogicalHeightCount):
(WebCore::RenderRegion::layoutBlock):
(WebCore::RenderRegion::repaintFlowThreadContentRectangle):
(WebCore::RenderRegion::attachRegion):
(WebCore::RenderRegion::renderBoxRegionInfo):
(WebCore::RenderRegion::setRenderBoxRegionInfo):
(WebCore::RenderRegion::logicalTopOfFlowThreadContentRect):
(WebCore::RenderRegion::logicalBottomOfFlowThreadContentRect):
(WebCore::RenderRegion::computePreferredLogicalWidths):
2013-03-27 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Timeline. Refresh is slow when user drags the overview window.
https://bugs.webkit.org/show_bug.cgi?id=113371
Reviewed by Pavel Feldman.
The root of problem is the 300ms delay in scheduleRefresh method.
It was introduced for the case when we add a huge number of records per second.
The scheduleRefresh was written such a way that refresh happened immediately
only for the scrolling operations. Actually we would like to see fast
refresh every time when it is forced by an user action.
In this patch additional flag newRecordWasAdded was added to the
_invalidateAndScheduleRefresh. I made it mandatory because the function
is also used as a callback for an event and it is easy to make a mistake and
interpret the event as the flag.
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._onCategoryCheckboxClicked):
(WebInspector.TimelinePanel.prototype._durationFilterChanged):
(WebInspector.TimelinePanel.prototype._repopulateRecords):
(WebInspector.TimelinePanel.prototype._onTimelineEventRecorded):
(WebInspector.TimelinePanel.prototype._onRecordsCleared):
(WebInspector.TimelinePanel.prototype._invalidateAndScheduleRefresh):
(WebInspector.TimelinePanel.prototype._scheduleRefresh):
(WebInspector.TimelinePanel.prototype._revealRecord):
(WebInspector.TimelinePanel.prototype._refreshRecords):
(WebInspector.TimelinePanel.prototype.performFilter):
2013-03-27 Keishi Hattori <keishi@webkit.org>
Dragging to edge should always snap to min/max.
https://bugs.webkit.org/show_bug.cgi?id=113477
Reviewed by Kent Tamura.
Dragging to the edge of a slider should always snap to the min/max.
Test: fast/forms/range/range-slow-drag-to-edge.html
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::setPositionFromPoint):
2013-03-27 Simon Fraser <simon.fraser@apple.com>
Add a way to update GraphicsLayerCA visibleRects without having to do a flush
https://bugs.webkit.org/show_bug.cgi?id=113459
Reviewed by Tim Horton.
Some platforms need to update TiledBacking visible rects from
outside of WebKit, for example if they use delegated scrolling.
They want to avoid forcing layout to be up-to-date when doing this.
Currently, updating the visibleRect happens when the GraphicsLayerCA
layer are being flushed, but that makes some assumptions about
layout being up-to-date.
To fix this, add a light-weight pass over the layer tree that
uses TransformState to compute the visibleRect for each
layer, and only if the visibleRect would cause a change in the
tiles in a TiledBacking trigger a layer flush.
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::recomputeVisibleRects):
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::recursiveComputeVisibleRect):
(WebCore::GraphicsLayerCA::recomputeVisibleRects):
(WebCore::GraphicsLayerCA::computeVisibleRect):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::tilesWouldChangeForVisibleRect):
(WebCore::TileController::computeTileCoverageRect):
(WebCore::TileController::revalidateTiles):
2013-03-27 Philip Rogers <pdr@google.com>
Rename toScriptElement -> toScriptElementIfPossible
https://bugs.webkit.org/show_bug.cgi?id=113473
Reviewed by Ryosuke Niwa.
Rename ScriptElement::toScriptElement to ScriptElement::toScriptElementIfPossible to
differentiate this function from other to*Element functions, and to better describe the
function's behavior. Other to*Element functions do not return null if the cast fails,
whereas toScriptElementIfPossible does.
No new tests as this is just a refactoring.
* dom/ScriptElement.cpp:
(WebCore::toScriptElementIfPossible):
* dom/ScriptElement.h:
(WebCore):
* dom/ScriptRunner.cpp:
(WebCore::ScriptRunner::timerFired):
This is the only unchecked return value but there isn't a security issue here.
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::collectOptionInnerText):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::attachLater):
(WebCore::HTMLConstructionSite::insertForeignElement):
* html/parser/HTMLScriptRunner.cpp:
(WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
(WebCore::HTMLScriptRunner::requestPendingScript):
(WebCore::HTMLScriptRunner::runScript):
* xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::notifyFinished):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):
(WebCore::XMLDocumentParser::endElementNs):
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::parseStartElement):
(WebCore::XMLDocumentParser::parseEndElement):
2013-03-27 Ryosuke Niwa <rniwa@webkit.org>
Debug test fix after r147018.
toElement() asserts. What we want here is isElementNode().
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::attachLater):
2013-03-27 Noel Gordon <noel.gordon@gmail.com>
Add webp image color profile support
https://bugs.webkit.org/show_bug.cgi?id=113184
Reviewed by Eric Seidel.
Requires libwebp version 0.3.0 (decoder ABI version 0x201). For images
with an ICC color profile chunk, poll the incremental decoder for the
current decoded height with the WebPIDecGetRGB() API and color correct
any newly decoded rows in-situ in the frame buffer.
Note: the ICC chunk appears before the encoded image frame in the webp
encoding (RIFF container) format. When the incremental decoder outputs
decoded pixels, enough encoded data has arrived to read the entire ICC
color profile data chunk.
Tests: fast/images/webp-color-profile-lossless.html
fast/images/webp-color-profile-lossy-alpha.html
fast/images/webp-color-profile-lossy.html
* platform/image-decoders/webp/WEBPImageDecoder.cpp:
(WebCore::WEBPImageDecoder::WEBPImageDecoder):
(WebCore::WEBPImageDecoder::~WEBPImageDecoder): Call clear().
(WebCore):
(WebCore::WEBPImageDecoder::clear):
Added. Helper to clean up the webp decoder and color transform members.
(WebCore::WEBPImageDecoder::createColorTransform):
Create m_transform using the supplied profile memory data. Note that
the |deviceProfile| is not owned, but the |inputProfile| temporary is
so release it here with qcms_release_profile().
(WebCore::WEBPImageDecoder::readColorProfile):
Called once only when the decoder begins to output decoded rows of an
image containing an ICC chunk, to read the ICC color profile data from
the encoded data stream, verify it, and use it to create m_transform.
(WebCore::WEBPImageDecoder::applyColorProfile):
Since there is no row callback in libwebp, poll for the decoded height
of the image so far. If new rows are decoded, color correct the pixels
of those new rows and re-write them back into the frame buffer using
buffer.setRGBA() to 1) alpha pre-multiply the pixels if needed, and 2)
shuffle the pixel bytes into the platform's RGBA pixel endian-ness.
(WebCore::WEBPImageDecoder::decode):
If the container format indicates the image has an ICC color profile,
decode the image to RGBA format for subsequent input to the QCMS color
correction library in applyColorProfile().
* platform/image-decoders/webp/WEBPImageDecoder.h:
(WEBPImageDecoder):
(WebCore::WEBPImageDecoder::colorTransform): m_transform getter.
2013-03-27 Jun Jiang <jun.a.jiang@intel.com>
Refactor validation checks for texture uploads
https://bugs.webkit.org/show_bug.cgi?id=111012
Reviewed by Kenneth Russell.
Move the validation checks to the entry level of tex{Sub}Image2D, return early for invalid parameters and avoid duplicated checks.
Moreover, turn all the validation checks at the bottom level - tex{Sub}Image2DBase into assertions.
Already covered by current tests.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::copyTexSubImage2D):
(WebCore::WebGLRenderingContext::texImage2DBase):
(WebCore::WebGLRenderingContext::texImage2DImpl):
(WebCore::WebGLRenderingContext::validateTexFunc): A helper function for tex{Sub}Image2D to check input parameters.
(WebCore::WebGLRenderingContext::texImage2D):
(WebCore::WebGLRenderingContext::texSubImage2DBase):
(WebCore::WebGLRenderingContext::texSubImage2DImpl):
(WebCore::WebGLRenderingContext::texSubImage2D):
(WebCore::WebGLRenderingContext::validateHTMLImageElement):
(WebCore::WebGLRenderingContext::validateHTMLCanvasElement):
(WebCore::WebGLRenderingContext::validateHTMLVideoElement):
* html/canvas/WebGLRenderingContext.h:
2013-03-27 Arnaud Renevier <a.renevier@sisa.samsung.com>
remove parentsOnly variable in codeGenerator.pm
https://bugs.webkit.org/show_bug.cgi?id=113457
Reviewed by Kentaro Hara.
Remove unused variable parentsOnly.
No new tests: no change in behaviour.
* bindings/scripts/CodeGenerator.pm:
(ForAllParents):
(AddMethodsConstantsAndAttributesFromParentInterfaces):
(ParseInterface):
(InheritsInterface):
(InheritsExtendedAttribute):
* bindings/scripts/CodeGeneratorV8.pm:
(BaseInterfaceName):
2013-03-27 Beth Dakin <bdakin@apple.com>
Need WK2 API to give a WebView a header and footer
https://bugs.webkit.org/show_bug.cgi?id=113352
-and corresponding-
<rdar://problem/13383835>
Reviewed by Simon Fraser.
This API will require RenderLayerCompositor to keep layers for the header and
footer when the exist. It also requires the scrolling machinery to know that the
size of the scrollable area will differ from the contentsSize when there is a
header or footer.
setWantsLayerForHeader() and setWantsLayerForFooter() return GraphicsLayers to
WK2. setHeaderHeight() and setFooterHeight() set the header and footer heights
respectively.
* WebCore.exp.in:
* page/FrameView.h:
(FrameView):
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::setWantsLayerForHeader):
(WebCore::FrameView::setWantsLayerForFooter):
(WebCore::FrameView::setHeaderHeight):
(WebCore::FrameView::setFooterHeight):
Should use totalContentsSize() instead of contentsSize().
(WebCore::FrameView::windowClipRect):
(WebCore::FrameView::isScrollable):
* page/SpatialNavigation.cpp:
(WebCore::canScrollInDirection):
This should also use totalContentsSize() instead of contentsSize(), and while
we're at it, re-name the variable and function names in the scrolling tree code
from contentsSize to totalContentsSize.
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setTotalContentsSize):
(WebCore::ScrollingStateScrollingNode::dumpProperties):
* page/scrolling/ScrollingStateScrollingNode.h:
(WebCore::ScrollingStateScrollingNode::totalContentsSize):
(ScrollingStateScrollingNode):
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
* page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::totalContentsSize):
(ScrollingTreeScrollingNode):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
(ScrollParameters):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
(WebCore::ScrollingCoordinatorMac::setScrollParametersForNode):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::updateAfterChildren):
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
(WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
Use totalContentsSize() instead of contentsSize().
* platform/ScrollView.cpp:
(WebCore::ScrollView::maximumScrollPosition):
(WebCore::ScrollView::setScrollOffset):
(WebCore::ScrollView::overhangAmount):
(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::calculateOverhangAreasForPainting):
scrollOffset() represents the offset within the totalContentsSize, but that is
not what we need here. So subtract out the headerHeight() for the appropriate
value.
(WebCore::ScrollView::windowToContents):
(WebCore::ScrollView::contentsToWindow):
Use totalContentsSize() instead of contentsSize().
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::maximumScrollPosition):
(WebCore):
(WebCore::ScrollableArea::totalContentsSize):
* platform/ScrollableArea.h:
(WebCore::ScrollableArea::headerHeight):
(WebCore::ScrollableArea::footerHeight):
(ScrollableArea):
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::adjustScrollPositionIfNecessary):
(WebCore::ScrollAnimatorMac::pinnedInDirection):
* platform/mac/ThemeMac.mm:
(WebCore::ThemeMac::ensuredView):
The rootContentLayer needs to be offset by the headerHeight().
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateRootLayerPosition):
New member variables m_layerForHeader and m_layerForFooter. This code properly
creates and manages them.
(WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForHeader):
(WebCore):
(WebCore::RenderLayerCompositor::updateLayerForFooter):
(WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
(WebCore::RenderLayerCompositor::reportMemoryUsage):
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
Test infrastructure.
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setHeaderHeight):
(WebCore):
(WebCore::Internals::setFooterHeight):
* testing/Internals.h:
* testing/Internals.idl:
2013-03-27 Arnaud Renevier <a.renevier@sisa.samsung.com>
javascriptcore bindings do not check exception after calling valueToStringWithNullCheck
https://bugs.webkit.org/show_bug.cgi?id=113219
Reviewed by Kentaro Hara.
When converting JSValue to native value in attribute setter, store the
native value in a temporary variable. After this variable assignment,
always check if an exception has been raised.
Update binding tests.
Test: fast/dom/exception-in-binding.html
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GetNativeType):
(JSValueToNative):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
(WebCore::setJSTestInterfaceSupplementalStr2):
(WebCore::setJSTestInterfaceSupplementalNode):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjConstructorStaticStringAttr):
(WebCore::setJSTestObjEnumAttr):
(WebCore::setJSTestObjShortAttr):
(WebCore::setJSTestObjUnsignedShortAttr):
(WebCore::setJSTestObjLongAttr):
(WebCore::setJSTestObjLongLongAttr):
(WebCore::setJSTestObjUnsignedLongLongAttr):
(WebCore::setJSTestObjStringAttr):
(WebCore::setJSTestObjTestObjAttr):
(WebCore::setJSTestObjXMLObjAttr):
(WebCore::setJSTestObjCreate):
(WebCore::setJSTestObjReflectedStringAttr):
(WebCore::setJSTestObjReflectedIntegralAttr):
(WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
(WebCore::setJSTestObjReflectedBooleanAttr):
(WebCore::setJSTestObjReflectedURLAttr):
(WebCore::setJSTestObjReflectedCustomIntegralAttr):
(WebCore::setJSTestObjReflectedCustomBooleanAttr):
(WebCore::setJSTestObjReflectedCustomURLAttr):
(WebCore::setJSTestObjTypedArrayAttr):
(WebCore::setJSTestObjAttrWithGetterException):
(WebCore::setJSTestObjAttrWithSetterException):
(WebCore::setJSTestObjStringAttrWithGetterException):
(WebCore::setJSTestObjStringAttrWithSetterException):
(WebCore::setJSTestObjWithScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAttribute):
(WebCore::setJSTestObjWithScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::setJSTestObjConditionalAttr1):
(WebCore::setJSTestObjConditionalAttr2):
(WebCore::setJSTestObjConditionalAttr3):
(WebCore::setJSTestObjAnyAttribute):
(WebCore::setJSTestObjMutablePoint):
(WebCore::setJSTestObjImmutablePoint):
(WebCore::setJSTestObjStrawberry):
(WebCore::setJSTestObjStrictFloat):
(WebCore::setJSTestObjId):
(WebCore::setJSTestObjNullableLongSettableAttribute):
(WebCore::setJSTestObjNullableStringValue):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::setJSTestSerializedScriptValueInterfaceValue):
(WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::setJSTestTypedefsUnsignedLongLongAttr):
(WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
(WebCore::setJSTestTypedefsAttrWithGetterException):
(WebCore::setJSTestTypedefsAttrWithSetterException):
(WebCore::setJSTestTypedefsStringAttrWithGetterException):
(WebCore::setJSTestTypedefsStringAttrWithSetterException):
2013-03-27 Arnaud Renevier <a.renevier@sisa.samsung.com>
cache parsed interfaces in CodeGenerator.pm
https://bugs.webkit.org/show_bug.cgi?id=113446
Reviewed by Kentaro Hara.
When generating binding for an interface, informations about parent
interfaces are sometimes needed several times. This patch caches
those the parsed interface. When generating all WebCore bindings, this
results in a speedup of about 40% for JavaScriptCore and about 80% for
V8.
No new tests: no change in behaviour.
* bindings/scripts/CodeGenerator.pm:
(ParseInterface):
2013-03-27 KyungTae Kim <ktf.kim@samsung.com> and Yongjun Zhang <yongjun_zhang@apple.com>
Add a settings to disallow initializing background-size if background shorthand doesn't include it.
https://bugs.webkit.org/show_bug.cgi?id=113363
Reviewed by David Kilzer.
This is based on KyungTae Kim's patch in https://bugs.webkit.org/show_bug.cgi?id=97761. Many legacy sites set
background-size first and then set background for setting background-image. For backward-compatibility
in some WebKit based clients, if 'background' shorthand have no 'background-size' attribute, we could add
a settings to let the css parser not initialize 'background-size'.
Test: fast/backgrounds/background-shorthand-after-set-backgroundSize.html
* css/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext): initialize useLegacyBackgroundSizeShorthandBehavior.
(WebCore::operator==):
(WebCore::CSSParser::useLegacyBackgroundSizeShorthandBehavior): add a method to return if we want background-size
to be initialized by background shorthand.
(WebCore):
(WebCore::CSSParser::parseFillShorthand): don't initialize background-size in background shorthand if we have
useLegacyBackgroundSizeShorthandBehavior set to true.
* css/CSSParser.h:
(CSSParser):
* css/CSSParserMode.h: add member useLegacyBackgroundSizeShorthandBehavior to CSSParserContext.
(CSSParserContext):
* page/Settings.in: initialize useLegacyBackgroundSizeShorthandBehavior to false.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): add the new settings useLegacyBackgroundSizeShorthandBehavior to Backup.
(WebCore::InternalSettings::Backup::restoreTo): restore useLegacyBackgroundSizeShorthandBehavior from Backup.
(WebCore::InternalSettings::setUseLegacyBackgroundSizeShorthandBehavior):
(WebCore):
* testing/InternalSettings.h:
(Backup):
(InternalSettings):
* testing/InternalSettings.idl: add a JS testing API setUseLegacyBackgroundSizeShorthandBehavior to turn on/off
the new settings.
2013-03-27 Florin Malita <fmalita@chromium.org>
Remove unused RenderLayer::renderBox{X,Y} methods
https://bugs.webkit.org/show_bug.cgi?id=113408
Reviewed by Simon Fraser.
Minor cleanup - renderBoxX() and renderBox() are no longer used.
No new tests: no functional changes.
* rendering/RenderLayer.h:
2013-03-27 PhistucK <phistuck@chromium.org>
Web Inspector: Plumb and expose cookie clearing options throughout the Resources Cookies tree and views
https://bugs.webkit.org/show_bug.cgi?id=87140
Reviewed by Vsevolod Vlasov.
Added cookie clearing buttons and context menu options
throughout the tree and views.
Drive by -
- Made sure the delete button is only visible
when a cookie is selected.
- Fixed a wrong JSDoc comment.
* inspector/front-end/CookieItemsView.js:
(WebInspector.CookieItemsView):
(WebInspector.CookieItemsView.prototype.statusBarItems):
(WebInspector.CookieItemsView.prototype._updateWithCookies):
(WebInspector.CookieItemsView.prototype.clear):
Added. Clears the entire cookie view.
(WebInspector.CookieItemsView.prototype._clearButtonClicked):
Added. Ditto (when clicking on the button).
(WebInspector.CookieItemsView.prototype._showDeleteButton):
Added. Shows the delete button when selecting a cookie row.
* inspector/CookiesTable.js:
(WebInspector.CookiesTable):
(WebInspector.CookiesTable.prototype._clearAndRefresh):
Added. Clears the cookies of the current table and updates it.
(WebInspector.CookiesTable.prototype._handleContextMenuEvent):
Added. Manages the context menu within the table.
(WebInspector.CookiesTable.prototype.clear):
Added. Clears the cookies of the current table.
(WebInspector.CookiesTable.prototype.setCookies):
Fixed a wrong JSDoc comment structure.
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.clearCookies):
Added. Clears the cookies of the given domain view.
(WebInspector.CookieTreeElement.prototype.onattach):
Added. Adds a contextmenu handler.
(WebInspector.CookieTreeElement.prototype._handleContextMenuEvent):
Added. Manages the context menu within cookie tree.
(WebInspector.CookieTreeElement.prototype._clearCookies):
Added. Clears the cookies of the view of the tree item.
* inspector/front-end/treeoutline.js:
(TreeOutline): Fixed a wrong JSDoc comment.
* English.lproj/localizedStrings.js:
Added strings for the context menu options.
2013-03-27 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [DTE] implement "tokenAtTextPosition" method
https://bugs.webkit.org/show_bug.cgi?id=113390
Reviewed by Pavel Feldman.
Test: inspector/editor/text-editor-token-at-position.html
- Add TextEditor.tokenAtTextPosition method
- Implement tokenAtTextPosition method in DefaultTextEditor
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype.tokenAtTextPosition):
(WebInspector.TextEditorMainPanel.prototype.compare):
(WebInspector.TextEditorMainPanel.prototype.tokenAtTextPosition):
(WebInspector.TextEditorMainPanel.prototype._tokenAtUnhighlightedLine):
(WebInspector.TextEditorMainPanel.prototype.set mimeType):
(WebInspector.TextEditorMainPanel.prototype.get mimeType):
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor.prototype.tokenAtTextPosition):
* inspector/front-end/TextEditorHighlighter.js:
(WebInspector.TextEditorHighlighter):
(WebInspector.TextEditorHighlighter.prototype.get mimeType):
(WebInspector.TextEditorHighlighter.prototype.set mimeType):
2013-03-27 Charles Wei <charles.wei@torchmobile.com.cn>
Remove build warning for unused function parameters in indexeddb.
https://bugs.webkit.org/show_bug.cgi?id=113043
Reviewed by Tony Chang.
No new tests, just remove build warning.
* Modules/indexeddb/IDBCallbacks.h:
(WebCore::IDBCallbacks::onBlocked):
(WebCore::IDBCallbacks::onUpgradeNeeded):
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::stringToDirection):
* Modules/indexeddb/IDBCursor.h:
(IDBCursor):
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::prefetchReset):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::setIndexesReady):
* Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::openKeyCursor):
* Modules/indexeddb/IDBLevelDBCoding.cpp:
(IDBLevelDBCoding):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore):
(WebCore::IDBObjectStore::openCursor):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::stringToMode):
* Modules/indexeddb/IDBTransaction.h:
(IDBTransaction):
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore):
2013-03-27 Sergey Ryazanov <serya@chromium.org>
REGRESSION (r146588): Cannot correctly display Chinese SNS Renren
https://bugs.webkit.org/show_bug.cgi?id=113142
Reviewed by Pavel Feldman.
Changed CSS grammar to be equivalent to pre-r146588.
CSS error reporting disabled to prevent message overflow.
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::isLoggingErrors):
2013-03-27 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: enhance Popover.js to rely on hover element coordinates
https://bugs.webkit.org/show_bug.cgi?id=113340
Reviewed by Pavel Feldman.
No new tests: no change in behaviour.
Introduce a coordinates-based method that checks if mouse is inside hover
element and use it in PopoverHelper instead of DOM hierarchy.
* inspector/front-end/Popover.js:
(WebInspector.PopoverHelper.prototype._eventInHoverElement): Added.
(WebInspector.PopoverHelper.prototype._mouseDown):
(WebInspector.PopoverHelper.prototype._mouseMove):
(WebInspector.PopoverHelper.prototype._mouseOut):
2013-03-27 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] fix webinspector-css theme for CodeMirror
https://bugs.webkit.org/show_bug.cgi?id=113399
Reviewed by Alexander Pavlov.
Add style rule to highlight css properties for CodeMirror
webinspector-css theme.
No new tests: no change in behaviour.
* inspector/front-end/cm/cmdevtools.css:
(.cm-s-web-inspector-css span.cm-property):
2013-03-27 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [DTE] paint overlay highlight for unhighlighted lines
https://bugs.webkit.org/show_bug.cgi?id=113344
Reviewed by Pavel Feldman.
No new tests.
Remove fast-return condition from paintLine method that checked for
highlight existence.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._paintLine):
2013-03-27 Ryosuke Niwa <rniwa@webkit.org>
Shift clicking on an element with -webkit-user-select: all doesn't extend selection
https://bugs.webkit.org/show_bug.cgi?id=113270
Reviewed by Enrica Casucci.
The bug was caused by updateSelectionForMouseDownDispatchingSelectStart always replacing selection whenever
the target node was inside an element with -webkit-suer-select even when we were attemping to extend selection
in handleMousePressEventSingleClick.
Fixed the bug by extracting this logic as a separate function (expandSelectionToRespectUserSelectAll) and deploying
it in handleMousePressEventSingleClick to extend selection as needed.
Test: editing/selection/user-select-all-with-shift.html
* page/EventHandler.cpp:
(WebCore::expandSelectionToRespectUserSelectAll): Extracted from updateSelectionForMouseDownDispatchingSelectStart.
(WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart):
(WebCore::EventHandler::selectClosestWordFromHitTestResult):
(WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
(WebCore::EventHandler::handleMousePressEventTripleClick):
(WebCore::EventHandler::handleMousePressEventSingleClick): Adjust "pos" as needed when extending selection.
Also use shouldConsiderSelectionAsDirectional() instead of manually peeking editingBehaviorType while we're at it.
2013-03-27 Zalan Bujtas <zalan@apple.com>
REGRESSION(r143102): iframe with percentage height within table with anonymous cell fails.
https://bugs.webkit.org/show_bug.cgi?id=113077
Reviewed by Antti Koivisto.
http://www.w3.org/TR/CSS21/visuren.html#anonymous-block-level
"Anonymous block boxes are ignored when resolving percentage values that would refer to it:
the closest non-anonymous ancestor box is used instead."
When figuring out whether auto height needs to be applied on the current box, ignore anonymous
ancestors until the first non-anonymous containing block is found. This matches both
Firefox and Opera behaviour.
Test: fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight): Switch from
isAnonymousBlock() to isAnonymous() to make sure all anonymous boxes are ignored.
Remove isTableCell() check which is a noop as table cell isn't an anonymous block.
2013-03-27 Pierre Rossi <pierre.rossi@gmail.com>
[Qt] Add WOFF support when using zlib
https://bugs.webkit.org/show_bug.cgi?id=112805
Reviewed by Allan Sandfeld Jensen.
Covered by existing test:
fast/css/font-face-woff.html
* Target.pri: Conditional inclusion of WOFFFileFormat
* platform/graphics/qt/FontCustomPlatformDataQt.cpp:
(WebCore::createFontCustomPlatformData): Try to unpack WOFF data, otherwise spit out a warning and bail.
(WebCore::FontCustomPlatformData::supportsFormat): accept WOFF webfonts if USE(ZLIB).
2013-03-27 Robert Hogan <robert@webkit.org>
Growing a position:absolute element in a position:relative one in a table does not update scrollHeight
https://bugs.webkit.org/show_bug.cgi?id=111977
Reviewed by David Hyatt.
During simplified layout tables still need to know about overflow from positioned objects in any of
their cells.
Test: fast/table/cell-overflow-simplified-layout.html
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::simplifiedNormalFlowLayout):
(WebCore):
* rendering/RenderTable.h:
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::layoutRows):
(WebCore):
(WebCore::RenderTableSection::computeOverflowFromCells):
* rendering/RenderTableSection.h:
(RenderTableSection):
2013-03-22 Geoffrey Garen <ggaren@apple.com>
Honor the setting for whether JavaScript markup is enabled
https://bugs.webkit.org/show_bug.cgi?id=113122
Reviewed by Ryosuke Niwa.
* dom/ScriptableDocumentParser.cpp:
(WebCore::ScriptableDocumentParser::ScriptableDocumentParser): Applied the
setting here, so all document parsing would be covered. This is similar
to what we do for plug-in stripping.
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertForeignElement): Fixed a bug where
we would insert an SVG script element into the document even in script
markup disabled mode.
(This bug has existed for copy/paste for a long time, but other bugs and
quirks in SVG copy/paste papered over it. It's a serious issue now
that non-paste clients will rely on this mode.)
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processTokenInForeignContent): Fixed the same
bug -- this time in the part of the parser that executes scripts as they
parse.
I adopted the toScriptElement() convention for testing for a script
element to match the XML parser.
2013-03-27 Dean Jackson <dino@apple.com>
Chromium Mac fails to build after r146995 because the new NSFont category
may conflict with the system. Add the WebCoreTheme category to the whitelist.
Unreviewed.
* WebCore.gyp/WebCore.gyp:
2013-03-27 Ryosuke Niwa <rniwa@webkit.org>
Selection code spends a lot of time in InlineTextBox::localSelectionRect
https://bugs.webkit.org/show_bug.cgi?id=113364
Reviewed by Enrica Casucci.
Avoid computing the font width when we're selecting the entire line box.
This appears to be 25-26% improvement on Interactive/SelectAll:Time.
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::localSelectionRect):
2013-03-26 Timothy Hatcher <timothy@apple.com>
Add support for dock-to-right of the Web Inspector in the Mac port.
Unfortunately this requires Safari changes, so it is disabled in the nightly builds.
https://webkit.org/b/113341
rdar://problem/10368152
Reviewed by Joseph Pecoraro.
* WebCore.exp.in:
* inspector/InspectorFrontendClient.h:
(InspectorFrontendClient):
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore):
(WebCore::InspectorFrontendClientLocal::frontendLoaded):
(WebCore::InspectorFrontendClientLocal::requestSetDockSide):
(WebCore::InspectorFrontendClientLocal::canAttachWindow):
(WebCore::InspectorFrontendClientLocal::changeAttachedWindowWidth):
(WebCore::InspectorFrontendClientLocal::setAttachedWindow):
(WebCore::InspectorFrontendClientLocal::constrainedAttachedWindowWidth):
* inspector/InspectorFrontendClientLocal.h:
(InspectorFrontendClientLocal):
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::setAttachedWindowWidth):
(WebCore):
* inspector/InspectorFrontendHost.h:
(InspectorFrontendHost):
* inspector/InspectorFrontendHost.idl:
* inspector/front-end/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub.prototype.setAttachedWindowWidth):
* inspector/front-end/externs.js:
(InspectorFrontendHostAPI.prototype.setAttachedWindowWidth):
* testing/Internals.cpp:
2013-03-27 Eric Carlson <eric.carlson@apple.com>
[Mac] webkitClosedCaptionsVisible doesn't work
https://bugs.webkit.org/show_bug.cgi?id=113417
Reviewed by Jer Noble.
Test: media/track/track-in-band-legacy-api.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Delete m_disableCaptions, it is no longer used.
(WebCore::HTMLMediaElement::configureTextTrackGroup): Pass this to textTrackSelectionScore.
(WebCore::HTMLMediaElement::setClosedCaptionsVisible): Delete m_disableCaptions, it is no longer used.
* html/HTMLMediaElement.h: Ditto.
* page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::textTrackSelectionScore): Add an HTMLMediaElement parameter.
* page/CaptionUserPreferences.h:
* page/CaptionUserPreferencesMac.h:
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::textTrackSelectionScore): Return a score if the media element
is showing captions, even if the preference says captions are disabled.
2013-03-27 Eric Carlson <eric.carlson@apple.com>
[Mac] Text track menu items sometimes labeled incorrectly
https://bugs.webkit.org/show_bug.cgi?id=113406
Reviewed by Jer Noble.
media/video-controls-captions-trackmenu-localized.html was updated to test this.
* page/CaptionUserPreferencesMac.mm:
(WebCore::trackDisplayName): Use the 'label' attribute for the menu text when necessary.
2013-03-27 Sergio Villar Senin <svillar@igalia.com>
Inserting a blank (" ") at the end of a line does not insert anything in Overtype mode
https://bugs.webkit.org/show_bug.cgi?id=113413
Reviewed by Ryosuke Niwa.
Perform a "normal" insert instead of a replace when there is
nothing to replace (like at the end of a line) as this case is not
supported by the replacing code path. This will allow us to
properly rebalance whitespaces in those cases.
Updated the editing/execCommand/overtype.html test to check also
this use case.
* editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::setEndingSelectionWithoutValidation):
(WebCore::InsertTextCommand::performTrivialReplace):
(WebCore::InsertTextCommand::performOverwrite):
(WebCore::InsertTextCommand::doApply): use the recently added
setEndingSelectionWithoutValidation() to avoid code duplication.
* editing/InsertTextCommand.h:
(InsertTextCommand):
2013-03-27 Dean Jackson <dino@apple.com>
[Mac] Use fontName rather than familyName for internal fonts
https://bugs.webkit.org/show_bug.cgi?id=113392
<rdar://problem/13474743>
Reviewed by Enrica Casucci.
Some internal fonts on OS X have a family name that
isn't listed in availableFontFamilies. In this case
we should use the font name rather than the family
name when looking for a match.
* platform/mac/ThemeMac.h: NSFont category to provide a web-friendly family name.
* platform/mac/ThemeMac.mm:
(-[NSFont webCoreFamilyName]): Returns the font name for internal fonts, otherwise the family name.
(WebCore::ThemeMac::controlFont):
* rendering/RenderThemeMacShared.mm: Use the webCoreFamilyName.
(WebCore::RenderThemeMacShared::systemFont): Ditto.
(WebCore::RenderThemeMacShared::setFontFromControlSize): Ditto.
2013-03-26 Jer Noble <jer.noble@apple.com>
Mac: Media Controls always hide time display elements
https://bugs.webkit.org/show_bug.cgi?id=113355
Reviewed by Eric Carlson.
No new tests; rebaselined existing tests against correct behavior.
A prior commit set the "min-width:0" property on the time display elements, which, combined
with the "-webkit-flex-box:0 0" setting, caused the flex-box container to collapse the width
of the elements to zero. To achieve the desired effect of hiding the time display elements,
first set the elements' min-width to the desired width, as the new flex-box spec treats the
default value of "min-width:auto" as the intrinsic width, and will collapse the text display
elements to the intrinsic width of its contained text node.
The above allows the timeline container to collapse beyond the sum of its childrens'
intrinsic width. Create a custom renderer that detects when this happens, and hide the time
display controls.
* css/mediaControls.css:
* css/mediaControlsQuickTime.css:
(audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
Set the "min-width:" property to equal the "width:" property.
(audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
Ditto.
* css/mediaControlsChromium.css:
(audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
Chromium assumes the time display controls are flex-boxes, so make that explicit.
* html/shadow/MediaControlElementTypes.cpp: Removed MediaControlTimeDisplayElement::createRenderer().
* html/shadow/MediaControlElementTypes.h:
(MediaControlTimeDisplayElement): Ditto.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTimelineContainerElement::setTimeDisplaysHidden): Added, walks through the
container's children and shows or hides time display elements.
(WebCore::MediaControlTimelineContainerElement::createRenderer): Added, creates a RenderMediaControlTimelineContainer.
(WebCore::getMediaControlTimeRemainingDisplayElementShadowPseudoId): Added, allow setTimeDisplaysHidden to
query against children's shadowPseudoId().
(WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId): Moved contents to getMediaControlTimeRemainingDisplayElementShadowPseudoId.
(WebCore::getMediaControlCurrentTimeDisplayElementShadowPseudoId): Added, allow setTimeDisplaysHidden to
query against children's shadowPseudoId().
(WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId): Moved contents to getMediaControlCurrentTimeDisplayElementShadowPseudoId.
* html/shadow/MediaControlElements.h:
(MediaControlTimelineContainerElement):
* rendering/RenderMediaControlElements.cpp:
(WebCore::RenderMediaControlTimelineContainer::RenderMediaControlTimelineContainer): Added, simple constructor.
(WebCore::RenderMediaControlTimelineContainer::layout): Detect when the controller's width is greater than
a certain value, and show or hide the time display elements in response.
* rendering/RenderMediaControlElements.h:
(RenderMediaControlTimelineContainer):
2013-03-27 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: CPU profiler. Swap FlameChart with Data Grid.
https://bugs.webkit.org/show_bug.cgi?id=113395
Reviewed by Pavel Feldman.
Looks like FlameChart is more powerful and flexible instrument
than plain old ProfileTree in DataGrid. The same action like
'look for the most expensive function in a frame' could be easily
done with FlameChart and need number of clicks in DataGrid.
So in an offline discussion we decided to place FlameChart on top of DataGrid.
* inspector/front-end/CPUProfileView.js:
2013-03-27 Chris Fleizach <cfleizach@apple.com>
Regression in tests due to https://bugs.webkit.org/show_bug.cgi?id=113339
https://bugs.webkit.org/show_bug.cgi?id=113361
Fix the red bots. No review.
Ensure only pop-up buttons get the AXRequired attribute instead of all buttons.
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
2013-03-27 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Breakpoint manager should restore breakpoints when uiSourceCode is added.
https://bugs.webkit.org/show_bug.cgi?id=113381
Reviewed by Pavel Feldman.
Breakpoint manager now restores breakpoints on UISourceCodeAdded event.
Breakpoint manager now only resets breakpoints in debugger when source mapping is changed to/from non identity one.
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
(WebInspector.BreakpointManager.prototype._resetBreakpoints):
(WebInspector.BreakpointManager.prototype._uiSourceCodeMappingChanged):
* inspector/front-end/CompilerScriptMapping.js:
(WebInspector.CompilerScriptMapping.prototype.get isIdentity):
* inspector/front-end/DefaultScriptMapping.js:
(WebInspector.DefaultScriptMapping.prototype.isIdentity):
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping.prototype.isIdentity):
* inspector/front-end/SASSSourceMapping.js:
(WebInspector.SASSSourceMapping.prototype.isIdentity):
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.SnippetScriptMapping.prototype.isIdentity):
* inspector/front-end/SourceMapping.js:
(WebInspector.SourceMapping.prototype.isIdentity):
* inspector/front-end/StylesSourceMapping.js:
(WebInspector.StylesSourceMapping.prototype.isIdentity):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.setSourceMapping):
2013-03-27 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: update Timeline.TimelineEvent definition to include DOM counters and native memory stats
https://bugs.webkit.org/show_bug.cgi?id=113376
Reviewed by Vsevolod Vlasov.
Fixed assertion failure in debug mode after r146975.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
2013-03-27 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: FlameChart. Provide 15px padding left for the chart so developers will see the first divider with '0' title.
https://bugs.webkit.org/show_bug.cgi?id=113404
Reviewed by Pavel Feldman.
15px paddingLeft was added to the code for the chart.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart):
(WebInspector.FlameChart.Calculator.prototype._updateBoundaries):
(WebInspector.FlameChart.Calculator.prototype.computePosition):
(WebInspector.FlameChart.prototype.draw):
2013-03-27 Kent Tamura <tkent@chromium.org>
Rename HTMLFormControlElement::readOnly to isReadOnly
https://bugs.webkit.org/show_bug.cgi?id=113297
Reviewed by Alexey Proskuryakov.
HTMLFormControlElement::readOnly is not an implementation of
'readOnly' IDL attribute. It's confusing and we don't need to
violate our naming convention.
No new tests. Just a refactoring.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isReadOnly):
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerReadOnly):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::HTMLFormControlElement):
(WebCore::HTMLFormControlElement::parseAttribute):
* html/HTMLFormControlElement.h:
(WebCore::HTMLFormControlElement::isReadOnly):
(WebCore::HTMLFormControlElement::isDisabledOrReadOnly):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::matchesReadOnlyPseudoClass):
(WebCore::HTMLInputElement::matchesReadWritePseudoClass):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::matchesReadOnlyPseudoClass):
(WebCore::HTMLTextAreaElement::matchesReadWritePseudoClass):
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::defaultEventHandler):
(WebCore::SliderThumbElement::willRespondToMouseMoveEvents):
(WebCore::SliderThumbElement::willRespondToMouseClickEvents):
* html/shadow/TextControlInnerElements.cpp:
(WebCore::InputFieldSpeechButtonElement::willRespondToMouseClickEvents):
(WebCore::InputFieldSpeechButtonElement::setRecognitionResult):
* html/shadow/TextFieldDecorationElement.cpp:
(WebCore::TextFieldDecorationElement::updateImage):
* rendering/RenderTextControl.cpp:
(WebCore::updateUserModifyProperty):
* rendering/RenderThemeMacShared.mm:
(WebCore::RenderThemeMacShared::paintSearchFieldCancelButton):
2013-03-27 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: update Timeline.TimelineEvent definition to include DOM counters and native memory stats
https://bugs.webkit.org/show_bug.cgi?id=113376
Reviewed by Vsevolod Vlasov.
Added missing fields to Timeline.TimelineEvent type definition in Inspector.json
* inspector/Inspector.json:
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
(WebCore::InspectorTimelineAgent::setDOMCounters):
Switched InspectorTimelineAgent to the new typed event builders.
(WebCore::InspectorTimelineAgent::setNativeHeapStatistics):
* inspector/InspectorTimelineAgent.h:
(InspectorTimelineAgent):
2013-03-27 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Follow-up to r146898: test that uiSourceCodes are not leaking in breakpoint manager.
https://bugs.webkit.org/show_bug.cgi?id=113368
Reviewed by Pavel Feldman.
Added a missed line and a test.
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype._projectWillReset):
2013-03-27 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] CodeMirrorTextEditor.highlightRange has bugs
https://bugs.webkit.org/show_bug.cgi?id=113348
Reviewed by Vsevolod Vlasov.
No new tests.
- Append additional "<class>-start" class to the first highlighted span
and "<class>-end" class to the last highlighted span to provide a way
to set up a css classes with borders.
- Increment end column of the markup range to simulate inclusive range.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor.prototype.highlightRange):
2013-03-27 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: Add isClean/markClean method pair to textEditor.js
https://bugs.webkit.org/show_bug.cgi?id=112815
Reviewed by Vsevolod Vlasov.
No new tests: no change in behaviour.
- Add TextEditor.isClean and TextEditor.markClean methods
- Implement these methods in DefaultTextEditor
- Implement these methods in CodeMirrorTextEditor
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor.prototype.isClean):
(WebInspector.CodeMirrorTextEditor.prototype.markClean):
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype.isClean):
(WebInspector.DefaultTextEditor.prototype.markClean):
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor.prototype.isClean):
(WebInspector.TextEditor.prototype.markClean):
* inspector/front-end/TextEditorModel.js:
(WebInspector.TextEditorModel.endsWithBracketRegex.):
2013-03-27 Ilya Tikhonovsky <loislo@chromium.org>
Unreviewed. Web Inspector. rename method Timeline.Calculator.grandMinimumBoundary to Timeline.Calculator.zeroTime
No changes in behaviour.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart.Calculator.prototype.zeroTime):
(WebInspector.FlameChart.OverviewCalculator.prototype.zeroTime):
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkBaseCalculator.prototype.zeroTime):
* inspector/front-end/TimelineGrid.js:
(WebInspector.TimelineGrid.prototype.updateDividers):
(WebInspector.TimelineGrid.Calculator.prototype.zeroTime):
* inspector/front-end/TimelineOverviewPane.js:
(WebInspector.TimelineOverviewCalculator.prototype.zeroTime):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelineCalculator.prototype.zeroTime):
2013-03-26 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Timeline. Scroll dividers with the underlying events.
https://bugs.webkit.org/show_bug.cgi?id=113315
Reviewed by Pavel Feldman.
Now when TimelineGrid is able to draw dividers with any offset
we could cut away paddingLeft member of Timeline.Calculator
and clear the code of TimelineGrid.
* inspector/front-end/TimelineGrid.js:
(WebInspector.TimelineGrid.prototype.updateDividers):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._refresh):
(WebInspector.TimelineCalculator.prototype.computePosition):
(WebInspector.TimelineCalculator.prototype.setDisplayWindow):
(WebInspector.TimelineCalculator.prototype.grandMinimumBoundary):
* inspector/front-end/inspectorCommon.css:
(.resources-dividers-label-bar):
2013-03-27 Kondapally Kalyan <kalyan.kondapally@intel.com>
[CoordGfx] Support to share GraphicsSurface flags with client.
https://bugs.webkit.org/show_bug.cgi?id=112982
Reviewed by Noam Rosenthal.
Covered by existing WebGL tests.
This patch adds support to pass GraphicsSurface flags during it's client creation.
This would be helpful to determine cases when blending can be disabled on client
side i.e When AlphaSupport is disabled during Graphics Surface creation.
With GLX, we rely on Window to provide us with necessary information on client side.
This might not be the case on other platforms or when not using Window on X.
This patch doesn't change original behaviour of creating GraphicsSurface client
with default flags GraphicsSurface::SupportsTextureTarget and GraphicsSurface::SupportsSharing.
* platform/graphics/texmap/TextureMapperPlatformLayer.h:
(WebCore::TextureMapperPlatformLayer::graphicsSurfaceFlags):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::createCanvasIfNeeded):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::createCanvasIfNeeded):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
(CoordinatedGraphicsLayerState):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore):
(WebCore::GraphicsContext3DPrivate::graphicsSurfaceFlags):
* platform/graphics/efl/GraphicsContext3DPrivate.h:
(GraphicsContext3DPrivate):
* platform/graphics/surfaces/efl/GraphicsSurfaceCommon.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::initializeClient):
2013-03-26 Takashi Sakamoto <tasak@google.com>
[shadow] styleForText should consider the case where parent node has no style
https://bugs.webkit.org/show_bug.cgi?id=113275
If a text node is distributed, its parent node for rendering and
styling might have no style. In the case, styleForText should return
default style.
Reviewed by Hajime Morrita.
Test: fast/dom/shadow/text-node-distributed-crash.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::styleForText):
Check whether a parent node has any style or not. If not, return
default style. This is the same behavior as styleForElement.
2013-03-26 Takeshi Yoshino <tyoshino@chromium.org>
Make SocketStreamHandle (Chromium port) fully use IPC window in send()
https://bugs.webkit.org/show_bug.cgi?id=113304
Reviewed by Kent Tamura.
socket_stream of Chromium buffers send data up to 32KiB (exact) bytes.
However, SocketStreamHandleInternal::send() method now keeps in-flight
send data not greater than m_maxPendingSendAllowed - 1 that is
32KiB - 1. This means that SocketStreamHandleInternal consumes the
buffered data in SocketStreamHandleBase by 32KiB - 1. It makes memory
copy operations unaligned unnecessarily. It should just use the
allowed size fully.
* platform/network/chromium/SocketStreamHandle.cpp:
(WebCore::SocketStreamHandleInternal::send):
(WebCore):
2013-03-26 Hayato Ito <hayato@chromium.org>
Allow ShadowContents in HitTests by default.
https://bugs.webkit.org/show_bug.cgi?id=113171
Reviewed by Dimitri Glazkov.
HitTestRequest is widely used in WebCore, but AllowShadowContents
flag is not turned on by default. In most places, we can set the
flag on.
This change makes HitTests allow shadow contents by default.
To track all existing HitTests which do not allow shadow contents,
and discourage such a HitTest in the future, I've introduced
disallowShadowContenet flag so that callers must turn on this flag
explicitly if they want to disallow shadow contents in their HitTests.
This change should be refactoring and should not include any
behavior changes. After this change, we'll investigate each place
where disallowShadowContents is used step by step and get rid of
the flag if it is okay to remove.
No new tests, no behavior change.
* dom/Document.h:
(Document):
* dom/TreeScope.cpp:
(WebCore::nodeFromPoint):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::contains):
* page/DragController.cpp:
(WebCore::elementUnderMouse):
(WebCore::DragController::canProcessDrag):
(WebCore::DragController::startDrag):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseDraggedEvent):
(WebCore::EventHandler::eventMayStartDrag):
(WebCore::EventHandler::updateSelectionForMouseDrag):
(WebCore::EventHandler::hitTestResultAtPoint):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::updateDragAndDrop):
(WebCore::EventHandler::isInsideScrollbar):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::handleGestureEvent):
(WebCore::EventHandler::handleGestureLongPress):
(WebCore::EventHandler::handleGestureScrollBegin):
(WebCore::EventHandler::bestClickableNodeForTouchPoint):
(WebCore::EventHandler::bestContextMenuNodeForTouchPoint):
(WebCore::EventHandler::bestZoomableAreaForTouchPoint):
(WebCore::EventHandler::sendContextMenuEvent):
(WebCore::EventHandler::sendContextMenuEventForKey):
(WebCore::EventHandler::hoverTimerFired):
(WebCore::EventHandler::dragSourceEndedAt):
(WebCore::EventHandler::handleDrag):
(WebCore::EventHandler::handleTouchEvent):
(WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
* page/EventHandler.h:
(EventHandler):
* page/FocusController.cpp:
(WebCore::updateFocusCandidateIfNeeded):
* page/Frame.cpp:
(WebCore::Frame::visiblePositionForPoint):
* page/TouchDisambiguation.cpp:
(WebCore::findGoodTouchTargets):
* rendering/HitTestRequest.h:
(WebCore::HitTestRequest::disallowsShadowContent):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::addNodeToRectBasedTestResult):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::hitTestFlowThreadPortionInRegion):
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::hitTestClipContent):
* testing/Internals.cpp:
(WebCore::Internals::nodesFromRect):
2013-03-26 Tim Horton <timothy_horton@apple.com>
[ca] Tell CA to clean up unused resources if a given WebProcess won't be drawing
https://bugs.webkit.org/show_bug.cgi?id=107539
<rdar://problem/13032692>
Reviewed by Simon Fraser.
Update WebCoreSystemInterface.
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2013-03-26 Antti Koivisto <antti@apple.com>
Test if non-immediate descendants obscure background
https://bugs.webkit.org/show_bug.cgi?id=113137
Reviewed by Simon Fraser.
The current obscuration test only covers immediate children. We can find more cases by looking deeper into descendants.
The patch makes the test sufficiently smart to stop a heavy fully obscured gif animation on micrsoft.com.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::animationAdvanced):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
Invalidate parents to max test depth.
(WebCore::RenderBox::backgroundPaintedExtent):
Background painting is pixel snapped.
(WebCore::isCandidateForOpaquenessTest):
(WebCore::RenderBox::foregroundIsKnownToBeOpaqueInRect):
Separate foreground testing and make it recursive.
Add fast bailout for common static positioned case.
Remove maximum child count, the fast bailouts should prevent long tests.
Add maximum depth so we know how deep we need to invalidate in styleDidChange.
(WebCore::RenderBox::computeBackgroundIsKnownToBeObscured):
(WebCore):
* rendering/RenderBox.h:
(RenderBox):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::foregroundIsKnownToBeOpaqueInRect):
(WebCore):
(WebCore::RenderImage::computeBackgroundIsKnownToBeObscured):
* rendering/RenderImage.h:
(RenderImage):
2013-03-26 Benjamin Poulain <bpoulain@apple.com>
Regression (r145601): out-of-bounds read in line breaking / new width cache
https://bugs.webkit.org/show_bug.cgi?id=113347
Reviewed by Geoffrey Garen.
The values zero and 0xffff have special values with the default HashTraits. Those values
are also valid values for UChar.
To avoid any table inconsitency, switch from UChar to uint32_t as the key type for
the WidthCache's single char map. The traits is also changed to allow zero as a normal
value.
This makes no space or time change over the previous code because:
-The struct KeyValuePair was already 64bits due to the ABI alignment restrictions on floats.
-The two hashes take the same number of instructions.
* platform/graphics/WidthCache.h:
(WidthCache):
2013-03-26 Kent Tamura <tkent@chromium.org>
Make HTMLProgressElement::isDeterminate private
https://bugs.webkit.org/show_bug.cgi?id=113299
Reviewed by Kentaro Hara.
The only callsite of isDeterminate outside of HTMLProgressElement
is in StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes,
and we can replace it with Element::shouldAppearIndeterminate.
No new tests. Just a refactoring.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
Use Element::shouldAppearIndeterminate.
* html/HTMLProgressElement.h:
(HTMLProgressElement): Make isDeterminate private.
2013-03-26 David Grogan <dgrogan@chromium.org>
IndexedDB: Histogram cause of LevelDB write errors
https://bugs.webkit.org/show_bug.cgi?id=113350
Reviewed by Tony Chang.
Add histogram for source of LevelDB errors on Write in addition to
Open.
No new tests - no good way to test histogram code.
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::histogramLevelDBError):
(WebCore):
(WebCore::LevelDBDatabase::open):
(WebCore::LevelDBDatabase::write):
2013-03-26 Chris Fleizach <cfleizach@apple.com>
WebKit does not expose @required or @aria-required as AXRequired on select elements
https://bugs.webkit.org/show_bug.cgi?id=113339
Reviewed by Tim Horton.
Make sure button types can return the AXRequired attribute.
Tests: platform/mac/accessibility/aria-required-popup-button.html
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
2013-03-26 Dean Jackson <dino@apple.com>
When a primary plugin is restarted, also start similar plugins
https://bugs.webkit.org/show_bug.cgi?id=113265
Reviewed by Tim Horton.
If we detect a primary plugin that is snapshotted, we immediately restart it.
When this happens, we should also restart any other plugins that
match the same origin and type. This allows sites with a lot of
(geometrically) nearby plugins to behave as if they are a single big plugin.
Tests: plugins/snapshotting/autoplay-similar-to-dominant-after-delay.html
plugins/snapshotting/autoplay-similar-to-dominant.html
* WebCore.exp.in: Export mimeTypeFromURL.
* html/HTMLPlugInImageElement.cpp:
(WebCore::addPlugInsFromNodeListMatchingPlugInOrigin): Use loadedMimeType helper.
(WebCore::HTMLPlugInImageElement::restartSimilarPlugIns): New method, which copied the
existing code from userDidClickSnapshot.
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Move the similar plugin detection
out into another function and call it.
(WebCore::HTMLPlugInImageElement::setIsPrimarySnapshottedPlugIn): Call restartSimilarPlugIns.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Use loadedMimeType helper.
* html/HTMLPlugInImageElement.h: Declaration of restartSimilarPlugIns.
(WebCore::HTMLPlugInImageElement::loadedMimeType): New helper method since this
code was being often duplicated.
2013-03-26 Brent Fulgham <bfulgham@webkit.org>
[Windows, WinCairo] Scroll offset being applied to plugins during print operations.
https://bugs.webkit.org/show_bug.cgi?id=39889
Reviewed by Anders Carlsson.
This must be tested manually. See the issue for details.
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginView::paintWindowedPluginIntoContext):
Revise the Windows implementation of the PluginView class
paintWindowedPluginIntoContext to use the containing window
position when computing the plugin's position for printing.
2013-03-26 Xianzhu Wang <wangxianzhu@chromium.org>
Non-paintsContent fixed position layer should not cause slow scrolling
https://bugs.webkit.org/show_bug.cgi?id=113238
Reviewed by James Robinson.
Added NotCompositedForNoVisibleContent in ViewportConstrainedNotCompositedReason and set it in RLC.
Test: compositing/layer-creation/fixed-position-no-content-scroll-reason.html
* rendering/RenderLayer.h: Add NotCompositedForNoVisibleContent.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition): Set NotCompositedForNoVisibleContent reason when the fixed position layer has no visible content.
2013-03-26 Zoltan Horvath <zoltan@webkit.org>
[CSS Exclusions] The radius of a circle should be computed based on the shorter available dimension
https://bugs.webkit.org/show_bug.cgi?id=113255
Reviewed by Julien Chaffraix.
When we decide what should be the radius of a circle, we should choose the smallest available space. For instance when the
width or height is not resolvable for the circle we should not have a radius for it. This change modifies the behavior to
use the smaller available space, so we won't render unnecessary circle shapes.
Test: fast/exclusions/shape-inside/shape-inside-on-nested-container-with-unresolved-height.html
* rendering/ExclusionShape.cpp:
(WebCore::ExclusionShape::createExclusionShape):
2013-03-26 Timothy Hatcher <timothy@apple.com>
Make the Web Inspector console work in strict mode with JavaScriptCore.
https://webkit.org/b/65829
rdar://problem/11271238
Reviewed by Joseph Pecoraro.
* inspector/InjectedScriptSource.js:
(InjectedScript.prototype._evaluateOn): Don't use 'eval' parameter (it isn't
allowed in strict mode). Swap window.eval with our known eval instead.
2013-03-26 Ryosuke Niwa <rniwa@webkit.org>
Heap-use-after-free regression
https://bugs.webkit.org/show_bug.cgi?id=113337
Reviewed by Abhishek Arya and Alexey Proskuryakov.
Use RefPtr instead of raw pointer in m_associatedFormControls.
* dom/Document.cpp:
(WebCore::Document::didAssociateFormControlsTimerFired):
* dom/Document.h:
(Document):
* loader/EmptyClients.h:
(WebCore::EmptyChromeClient::didAssociateFormControls):
* page/ChromeClient.h:
(WebCore::ChromeClient::didAssociateFormControls):
2013-03-26 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13194263> Crashes in NetworkProcess due to threading issues
https://bugs.webkit.org/show_bug.cgi?id=113256
Reviewed by Brady Eidson.
Added a new code path in ResourceHandle/ResourceHandleClient that doesn't need
blocking calls. Implemented it for NSURLConnection by changing NSOperationQueue
version to forward calls to main thread.
* WebCore.exp.in: Export new methods.
* WebCore.xcodeproj/project.pbxproj: Added WebCoreResourceHandleAsOperationQueueDelegate.
* platform/network/CredentialStorage.cpp: Assert that unprotected global map operations
happen on main thread.
* platform/network/ResourceHandle.cpp: Added default implementations of functions
that handle async responses.
* platform/network/chromium/ResourceHandle.cpp: Ditto.
* platform/network/ResourceHandle.h: Added functions that are called in response
to new async functions in ResourceHandleClient. Changed Mac delegate type to id,
ast can now be either WebCoreResourceHandleAsDelegate or WebCoreResourceHandleAsOperationQueueDelegate.
* platform/network/ResourceHandleClient.cpp:
(WebCore::ResourceHandleClient::willSendRequestAsync):
(WebCore::ResourceHandleClient::shouldUseCredentialStorageAsync):
(WebCore::ResourceHandleClient::canAuthenticateAgainstProtectionSpaceAsync):
(WebCore::ResourceHandleClient::willCacheResponseAsync):
Default implementations of async client functions. These match default behavior of
sync versions.
* platform/network/ResourceHandleClient.h: Added async functions. A ResourceHandle
should use these when the client returns true from usesAsyncCallbacks().
* platform/network/ResourceHandleInternal.h: Changed to use id for delegate type
here, too.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::delegate): Create an appropriate delegate for the client.
(WebCore::ResourceHandle::willSendRequest): Since this function has a lot of common
behavior in sync and async cases, implement the new code path as a branch inside
it, not as a new function.
(WebCore::ResourceHandle::continueWillSendRequest): Unblock the connection when
response is known.
(WebCore::ResourceHandle::shouldUseCredentialStorage): Branched here too, for consistency.
Perhaps we'll want to break this into separate functions though.
(WebCore::ResourceHandle::continueShouldUseCredentialStorage): Unblock the connection.
(WebCore::ResourceHandle::canAuthenticateAgainstProtectionSpace): Same change as above.
(WebCore::ResourceHandle::continueCanAuthenticateAgainstProtectionSpace): Ditto.
(WebCore::ResourceHandle::continueWillCacheResponse): Ditto. Currently, delegate
calls the client directly, so we only have a "continue" function, and no "willCacheResponse".
* platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
(-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Removed some
nonsense code.
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h: Copied from Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.h.
This delegate is responsible for forwarding calls to main thread. Unfortunately,
this adds some code duplication, which I tried to rectify somewhat in previous patches
by moving more logic to ResourceHandle.
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm: Copied from Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm.
(-[WebCoreResourceHandleAsOperationQueueDelegate detachHandle]): Unblock waiting
threads if we don't expect a response any more.
(-[WebCoreResourceHandleAsOperationQueueDelegate dealloc]): Release the semaphore.
(-[WebCoreResourceHandleAsOperationQueueDelegate continueWillSendRequest:]): Unblock
a waiting thread with a response.
(-[WebCoreResourceHandleAsOperationQueueDelegate continueShouldUseCredentialStorage:]): Ditto.
(-[WebCoreResourceHandleAsOperationQueueDelegate continueCanAuthenticateAgainstProtectionSpace:]): Ditto.
(-[WebCoreResourceHandleAsOperationQueueDelegate continueWillCacheResponse:]): Ditto.
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
Run code that uses WebCore objects on main thread.
(-[WebCoreResourceHandleAsOperationQueueDelegate connectionShouldUseCredentialStorage:]): Ditto.
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveAuthenticationChallenge:]): Ditto.
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didCancelAuthenticationChallenge:]): Ditto.
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]): Ditto.
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]): Ditto.
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveDataArray:]): Ditto.
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveData:lengthReceived:]): Ditto.
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willStopBufferingData:]): Ditto.
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:]): Ditto.
(-[WebCoreResourceHandleAsOperationQueueDelegate connectionDidFinishLoading:]): Ditto.
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didFailWithError:]): Ditto.
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willCacheResponse:]): Ditto.
2013-03-26 Tony Chang <tony@chromium.org>
Autogenerate the scrollAnimatorEnabled setting in Settings.in
https://bugs.webkit.org/show_bug.cgi?id=113253
Reviewed by James Robinson.
Convert scrollAnimatorEnabled into an autogenerated setting. This involves renaming
the setter from setEnableScrollAnimator(bool) to setScrollAnimatorEnabled(bool) and
updating the callers. I didn't change any WebKit API methods.
Also remove the code in InternalSettings since it's never used and will now be
autogenerated with proper resetting code.
No new tests, this is a refactor and should compile.
* page/Settings.cpp:
(WebCore::Settings::Settings): Remove code that is now autogenerated.
* page/Settings.h:
(Settings): Remove code that is now autogenerated.
* page/Settings.in: Add entry for scrollAnimatorEnabled.
* testing/InternalSettings.cpp: Remove unused code.
* testing/InternalSettings.h: Remove unused code.
* testing/InternalSettings.idl: Remove unused code.
2013-03-26 Joe Mason <jmason@blackberry.com>
[BlackBerry] In RSSFilterStream, don't swallow headers when there's no body
https://bugs.webkit.org/show_bug.cgi?id=113334
Reviewed by Rob Buis.
RIM PR 316345
When receiving an HTTP response that has a Content-Type header such as text/xml, but no
body, RSSFilterStream::notifyHeadersReceived reads the Content-Type as "potential RSS", and
calls saveHeaders. It expects to sniff the body in notifyDataReceived to see if it's RSS,
and then call sendSavedHeaders to pass on the headers. But since there is no body,
notifyDataReceived is never called. So call sendSavedHeaders in notifyClose too (it will not
send them again if they were already sent.)
* platform/network/blackberry/rss/RSSFilterStream.cpp:
(WebCore::RSSFilterStream::notifyClose):
2013-03-26 Dmitry Zvorygin <zvorygin@chromium.org>
Web Inspector: Faster drawer animation.
https://bugs.webkit.org/show_bug.cgi?id=113330
250ms -> 100ms
Reviewed by Pavel Feldman.
* inspector/front-end/inspector.css:
(.animate #main):
(.animate #floating-status-bar-container):
(.animate #drawer):
(.animate #bottom-status-bar-container > *):
2013-03-26 Brent Fulgham <bfulgham@webkit.org>
[WinCairo] Unreviewed Build fix.
* platform/graphics/win/FontCustomPlatformDataCairo.h:
(FontCustomPlatformData): Correct signature in header to match
required implementation.
2013-03-26 Arvid Nilsson <anilsson@rim.com>
[BlackBerry] Scrolling up and down can cause the screen to flash black
https://bugs.webkit.org/show_bug.cgi?id=113269
Reviewed by Rob Buis.
PR 296106
The LayerRenderer should never clear before drawing the layers, from
now on that's the responsibility of the caller.
Only manually testable.
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::setViewport):
* platform/graphics/blackberry/LayerRendererClient.h:
(LayerRendererClient):
2013-03-26 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] editing/pasteboard/can-read-in-dragstart-event.html and /can-read-in-copy-and-cut-events.html are crashing
https://bugs.webkit.org/show_bug.cgi?id=113126
Reviewed by Jocelyn Turcotte.
Make it possible to read from a writable Clipboard.
Test: editing/pasteboard/can-read-in-copy-and-cut-events.html
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::getData):
(WebCore::ClipboardQt::types):
(WebCore::ClipboardQt::files):
(WebCore::ClipboardQt::readClipboardData):
(WebCore::ClipboardQt::hasData):
(WebCore::ClipboardQt::items):
* platform/qt/ClipboardQt.h:
(ClipboardQt):
2013-03-26 Brent Fulgham <bfulgham@webkit.org>
[WinCairo] Unreviewed build correction.
* platform/graphics/win/FontCustomPlatformDataCairo.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Update
method signature to match CG variant.
2013-03-26 Christophe Dumez <ch.dumez@sisa.samsung.com>
Code duplication between HTTPParsers and HTTPValidation
https://bugs.webkit.org/show_bug.cgi?id=113283
Reviewed by Alexey Proskuryakov.
Merged isValidHTTPToken() from HTTPValidation.h and isRFC2616Token() from
HTTPParsers.h. They were doing exactly the same thing and their
implementation was almost the same.
Removed HTTPValidation.* and moved remaining code to HTTPParsers.* as this
seems like the proper place and it seems odd to keep HTTPValidation for
just one function.
No new tests, no behavior change for layout tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/network/HTTPParsers.cpp:
(WebCore::isValidHTTPHeaderValue):
(WebCore):
(WebCore::isValidHTTPToken): Implementation is slightly simplified based on
isValidHTTPToken() from HTTPValidation.cpp. (c >= 0x80 || c == 0x7F) is
replaced by (c >= 0x7F). (c <= 0x1F || c == ' ' || c == '\t') is replaced
by (c <= 0x20). Those expressions are shorter but equivalent.
(WebCore::contentDispositionType):
* platform/network/HTTPParsers.h:
* platform/network/HTTPValidation.cpp: Removed.
* platform/network/HTTPValidation.h: Removed.
* xml/XMLHttpRequest.cpp: Stop including HTTPValidation.h.
2013-03-26 Sergio Villar Senin <svillar@igalia.com>
Implement overtype mode for editable content
https://bugs.webkit.org/show_bug.cgi?id=112126
Reviewed by Ryosuke Niwa.
Tests: editing/execCommand/overtype-support.html
editing/execCommand/overtype.html
Add a new Overwrite command to the editor. This command will
perform overtype operations when enabled instead of "normal" text
insertions. As IE does, we maintain a single toggle state in the
editor (enabled/disabled) for all the editable content in the
page.
This new command will be only available for richly editable
content via keybindings or the context menu. For testing purposes
it is also accessible via internals.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::replaceTextInNode): Use RefPtr for
local variables.
* editing/Editor.cpp:
(WebCore::Editor::Editor):
* editing/Editor.h:
(WebCore::Editor::isOverwriteModeEnabled):
(WebCore::Editor::toggleOverwriteModeEnabled):
(Editor): Added two new functions and a new attribute.
* editing/EditorCommand.cpp:
(WebCore::executeToggleOverwrite): Enables/disables overwrite mode.
(WebCore):
(WebCore::createCommandMap): New OverWrite command.
* editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::setEndingSelectionWithoutValidation):
Refactored from performTrivialReplace(), shared by
performOverwrite().
(WebCore):
(WebCore::InsertTextCommand::performTrivialReplace):
(WebCore::InsertTextCommand::performOverwrite):
(WebCore::InsertTextCommand::doApply): Perform overwrite if enabled.
* editing/InsertTextCommand.h:
(InsertTextCommand):
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState): Reset OverWrite mode
to false.
(WebCore::Internals::isOverwriteModeEnabled):
(WebCore):
(WebCore::Internals::toggleOverwriteModeEnabled): Provide access
to overwrite functionality in Editor for testing purposes.
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2013-03-26 Arvid Nilsson <anilsson@rim.com>
[BlackBerry] WebOverlay::pixelViewportRect() should return pixel viewport coordinates
https://bugs.webkit.org/show_bug.cgi?id=113263
Reviewed by Rob Buis.
PR 312404
Fix WebOverlay::pixelViewportRect() to return the pixel viewport rect
instead of the window rect. These are different if the web page is
rendered starting at a window coordinate other than 0,0. The clip rect
encodes the position we're rendered at, and can be used to translate
the rect expressed in window coordinates to the pixel viewport
coordinate system.
Also perform some cleanup of related code.
Only manually testable.
* platform/graphics/blackberry/LayerCompositingThread.cpp:
(WebCore::LayerCompositingThread::getTransformedHolePunchRect):
(WebCore::LayerCompositingThread::drawTextures):
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::toPixelCoordinates):
(WebCore):
(WebCore::LayerRenderer::toWindowCoordinates):
(WebCore::LayerRenderer::toPixelViewportCoordinates):
(WebCore::LayerRenderer::toDocumentViewportCoordinates):
(WebCore::LayerRenderer::updateLayersRecursive):
* platform/graphics/blackberry/LayerRenderer.h:
(LayerRenderer):
2013-03-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r146901.
http://trac.webkit.org/changeset/146901
https://bugs.webkit.org/show_bug.cgi?id=113321
Was landed to soon (Requested by pfeldman on #webkit).
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype.):
(WebInspector.ConsoleView.prototype.filter):
(WebInspector.ConsoleView.prototype._scheduleScrollIntoView.scrollIntoView):
(WebInspector.ConsoleView.prototype._scheduleScrollIntoView):
(WebInspector.ConsoleView.prototype._consoleMessageAdded):
(WebInspector.ConsoleView.prototype._appendConsoleMessage):
(WebInspector.ConsoleView.prototype._consoleCleared):
(WebInspector.ConsoleView.prototype._handleContextMenuEvent.monitoringXHRItemAction):
(WebInspector.ConsoleView.prototype._handleContextMenuEvent.get preserveLogItemAction):
(WebInspector.ConsoleView.prototype._shouldBeVisible):
(WebInspector.ConsoleView.prototype._updateMessageList):
(WebInspector.ConsoleView.prototype._promptKeyDown):
(WebInspector.ConsoleView.prototype._printResult):
(WebInspector.ConsoleCommand.prototype.highlightSearchResults):
* inspector/front-end/inspector.css:
(.console-warning-level, .console-error-level, .console-log-level, .console-debug-level):
(.filter-all .console-debug-level, .filter-debug .console-debug-level):
(.filter-all .console-debug-level.repeated-message, .filter-debug .console-debug-level.repeated-message):
2013-03-26 Rafael Weinstein <rafaelw@chromium.org>
HTMLStackItem should include <template> as a special tag
https://bugs.webkit.org/show_bug.cgi?id=113016
Reviewed by Eric Seidel.
New test added to html5lib suite.
* html/parser/HTMLStackItem.h:
(WebCore::HTMLStackItem::isSpecialNode):
2013-03-26 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Distinguish breakpoints and breakpoint locations in BreakpointManager API
https://bugs.webkit.org/show_bug.cgi?id=113311
Reviewed by Pavel Feldman.
Made independent handling of breakpoints and breakpoint location in breakpoint manager consistent.
JavaScriptSourceFrame now removes breakpoints originally set in it based on primary UI location.
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype.breakpointsForUISourceCode):
(WebInspector.BreakpointManager.prototype.allBreakpoints):
(WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
(WebInspector.BreakpointManager.prototype.allBreakpointLocations):
(WebInspector.BreakpointManager.prototype._projectWillReset.get for):
(WebInspector.BreakpointManager.prototype._projectWillReset):
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame.prototype.onUISourceCodeContentChanged):
(WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
(WebInspector.JavaScriptSourceFrame.prototype._removeAllBreakpoints):
2013-03-26 Dmitry Zvorygin <zvorygin@chromium.org>
Web Inspector: Remove remainings of CSS-based console message filtering.
https://bugs.webkit.org/show_bug.cgi?id=112710
Reviewed by Pavel Feldman.
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.get this):
(WebInspector.ConsoleView.prototype.):
(WebInspector.ConsoleView.prototype.filter):
(WebInspector.ConsoleView.prototype._consoleMessageAdded):
(WebInspector.ConsoleView.prototype._appendConsoleMessage):
(WebInspector.ConsoleView.prototype._consoleCleared):
(WebInspector.ConsoleView.prototype._shouldBeVisible):
(WebInspector.ConsoleView.prototype._updateMessageList):
(WebInspector.ConsoleView.prototype._promptKeyDown):
(WebInspector.ConsoleView.prototype._printResult):
(WebInspector.ConsoleCommand.prototype.highlightSearchResults):
* inspector/front-end/inspector.css:
(.console-debug-level.repeated-message):
2013-03-26 Peter Rybin <prybin@chromium.org>
Web Inspector: refactor code duplication: WebInspector.ObjectPropertyTreeElement.wrapPropertyAsElements
https://bugs.webkit.org/show_bug.cgi?id=113211
Reviewed by Yury Semikhatsky.
A new method WebInspector.ObjectPropertyTreeElement.wrapPropertyAsElements is added and used
from 2 sites.
* inspector/front-end/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertiesSection.prototype.update.callback):
(WebInspector.ObjectPropertiesSection.prototype.update):
(WebInspector.ObjectPropertiesSection.prototype.updateProperties):
(.callback):
(WebInspector.ObjectPropertyTreeElement.populate):
(WebInspector.ObjectPropertyTreeElement.wrapPropertyAsElements):
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionsSection.prototype.update.appendResult):
(WebInspector.WatchExpressionsSection.prototype.update):
2013-03-26 Christophe Dumez <ch.dumez@sisa.samsung.com>
HTTPHeaderMap::copyData() could call uncheckedAppend()
https://bugs.webkit.org/show_bug.cgi?id=113279
Reviewed by Alexey Proskuryakov.
HTTPHeaderMap::copyData() calls reserveInitialCapacity() on the Vector
but then appends items using append() function. Since we already know
the capacity is sufficient, it is more efficient to call uncheckedAppend()
instead to bypass capacity checks.
No new tests, no behavior change for layout tests.
* platform/network/HTTPHeaderMap.cpp:
(WebCore::HTTPHeaderMap::copyData):
2013-03-26 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: UISourceCodes are leaking on reload sometimes.
https://bugs.webkit.org/show_bug.cgi?id=113310
Reviewed by Pavel Feldman.
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype._projectWillReset.get for):
(WebInspector.BreakpointManager.prototype._projectWillReset):
* inspector/front-end/ConsoleModel.js:
(WebInspector.ConsoleModel.prototype.clearMessages):
2013-03-26 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Elements] Unable to "Edit as HTML" XHTML/SVG documents.
https://bugs.webkit.org/show_bug.cgi?id=113290
Reviewed by Pavel Feldman.
DOMPatchSupport has been slightly augmented to handle XML (XHTML and SVG) documents.
Test: inspector/elements/set-outer-html-for-xhtml.xhtml
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::patchDocument):
(WebCore::DOMPatchSupport::patchNode):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::setOuterHTML): Let HTML, XHTML, and SVG documents through.
2013-03-26 Hajime Morrita <morrita@google.com>
https://bugs.webkit.org/show_bug.cgi?id=113164
Custom Elements: readyCallback should be called for outerHTML and insertAdjecentHTML
These APIs also create new elements thus should have V8DeliverCustomElementCallbacks attribute.
Reviewed by Dimitri Glazkov.
Test: Updated lifecycle-ready-creation-api.html.
* html/HTMLElement.idl:
2013-03-26 Ilya Tikhonovsky <loislo@chromium.org>
Unreviewed. WebInspector: remove unnecessary method.
* inspector/front-end/OverviewGrid.js:
(WebInspector.OverviewGrid.Window):
2013-03-22 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. Scroll dividers together with underlying chart.
http://bugs.webkit.org/show_bug.cgi?id=113080
Reviewed by Pavel Feldman.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart.Calculator.prototype.grandMinimumBoundary):
(WebInspector.FlameChart.prototype._canvasDragging):
* inspector/front-end/TimelineGrid.js:
(WebInspector.TimelineGrid.prototype.updateDividers):
2013-03-26 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. Scroll dividers together with underlying chart.
http://bugs.webkit.org/show_bug.cgi?id=113080
Reviewed by Pavel Feldman.
The only thing we need to do for this feature is to automatically adjust
the initial offset for the dividers. I measured the speed of scrolling and found
no difference. The speed is about 16ms so we have 60fps on dragging.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart.Calculator.prototype.grandMinimumBoundary):
(WebInspector.FlameChart.OverviewCalculator.prototype.grandMinimumBoundary):
(WebInspector.FlameChart.prototype._canvasDragging):
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkBaseCalculator.prototype.grandMinimumBoundary):
* inspector/front-end/TimelineGrid.js:
(WebInspector.TimelineGrid.prototype.updateDividers):
(WebInspector.TimelineGrid.Calculator.prototype.grandMinimumBoundary):
* inspector/front-end/TimelineOverviewPane.js:
(WebInspector.TimelineOverviewCalculator.prototype.grandMinimumBoundary):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelineCalculator.prototype.grandMinimumBoundary):
2013-03-26 Mike West <mkwst@chromium.org>
CSP 1.1: Experiment with 'base-uri' directive.
https://bugs.webkit.org/show_bug.cgi?id=113307
Reviewed by Jochen Eisinger.
The 'base-uri' directive was introduced[1] as an experimental directive
in CSP 1.1 after a bit of discussion[2][3]. The exact semantics will
likely change, but it would be good for us to get some implementation
experience with the API as currently specified, and to allow folks to
play with the implementation to determine whether it meets the
requirements the way we think it might.
This patch is a first pass at that implementation: it will have no
effect on ports that haven't enabled the CSP_NEXT flag.
[1]: https://dvcs.w3.org/hg/content-security-policy/rev/4b89c246ea16
[2]: http://lists.w3.org/Archives/Public/public-webappsec/2012Oct/0022.html
[3]: http://lists.w3.org/Archives/Public/public-webappsec/2013Feb/0074.html
Tests: http/tests/security/contentSecurityPolicy/1.1/base-uri-allow.html
http/tests/security/contentSecurityPolicy/1.1/base-uri-deny.html
* dom/Document.cpp:
(WebCore::Document::processBaseElement):
Check that the new base URI is allowed by CSP before using it as
the document's base URI.
* page/ContentSecurityPolicy.cpp:
Add a constant for the new directive name (and, as a drive-by, split
the list into CSP 1.0 and CSP 1.1 for clarity).
(CSPDirectiveList):
Add a property to hold the base URI policy directive value.
(WebCore::CSPDirectiveList::checkSourceAndReportViolation):
Customize the error message iff we're dealing with 'base-uri'.
(WebCore::CSPDirectiveList::allowBaseURI):
Check the given URI against the 'base-uri' directive's value,
exactly as we do for every other source-list type of directive.
(WebCore::CSPDirectiveList::addDirective):
Accept 'base-uri' as a valid directive iff CSP_NEXT is set, and
the embedder has opted-in via the runtime flag.
(WebCore::ContentSecurityPolicy::allowBaseURI):
Expose an API method on ContentSecurityPolicy to check URIs against
the 'base-uri' directive's value.
2013-03-26 Arvid Nilsson <anilsson@rim.com>
[BlackBerry] Main frame fixed divs not positioned correctly
https://bugs.webkit.org/show_bug.cgi?id=112889
Reviewed by Carlos Garcia Campos.
PR 283363
This was a regression from bug #112806. It caused main frame fixed
handling to enter the iframe/scrollable div code path in LayerRenderer.
Fixed by not setting the container for fixed flag on the main frame,
the LayerRenderer expects this flag to be set only on non-mainframe
containers.
Only manually testable.
* page/scrolling/blackberry/ScrollingCoordinatorBlackBerry.cpp:
(WebCore::scrollLayerForFrame):
(WebCore):
(WebCore::ScrollingCoordinatorBlackBerry::setLayerIsContainerForFixedPositionLayers):
(WebCore::ScrollingCoordinatorBlackBerry::setLayerIsFixedToContainerLayer):
2013-03-26 Christophe Dumez <ch.dumez@sisa.samsung.com>
FormData::deepCopy() could use Vector::uncheckedAppend()
https://bugs.webkit.org/show_bug.cgi?id=113309
Reviewed by Kenneth Rohde Christiansen.
FormData::deepCopy() calls reserveInitialCapacity() on the Vector but then uses the
regular append() method. This patch switches to using uncheckedAppend() method
instead to bypass capacity checks as we already know it is sufficient.
No new tests, no behavior change.
* platform/network/FormData.cpp:
(WebCore::FormData::deepCopy):
2013-03-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r146879.
http://trac.webkit.org/changeset/146879
https://bugs.webkit.org/show_bug.cgi?id=113312
Multiple layout test crashes in
WebCore::RenderListItem::updateListMarkerNumbers (Requested by
yurys on #webkit).
* dom/Node.cpp:
* dom/Node.h:
(Node):
* dom/NodeTraversal.cpp:
* dom/NodeTraversal.h:
(ElementTraversal):
(NodeTraversal):
* html/HTMLLIElement.cpp:
(WebCore::HTMLLIElement::attach):
* html/HTMLOListElement.cpp:
(WebCore::HTMLOListElement::updateItemValues):
(WebCore::HTMLOListElement::recalculateItemCount):
* rendering/RenderCounter.cpp:
(WebCore::previousInPreOrder):
(WebCore::previousSiblingOrParent):
(WebCore::parentElement):
(WebCore::nextInPreOrder):
* rendering/RenderListItem.cpp:
(WebCore::enclosingList):
(WebCore::RenderListItem::nextListItem):
(WebCore::previousListItem):
(WebCore::RenderListItem::calcValue):
(WebCore::RenderListItem::explicitValueChanged):
(WebCore::previousOrNextItem):
(WebCore::RenderListItem::updateListMarkerNumbers):
* rendering/RenderListItem.h:
(RenderListItem):
2013-03-26 Hajime Morrita <morrita@google.com>
remoeveAllEventListeners() should be called to shadow trees
https://bugs.webkit.org/show_bug.cgi?id=113037
Reviewed by Dimitri Glazkov.
Document::removeAllEventListeners() doesn't traverse shadow tree, but we should.
This change override Element::removeAllEventListeners() so that it cleans its shadow trees up.
Test: fast/dom/shadow/shadow-tree-listener-clearance.html
* dom/Element.cpp:
(WebCore::Element::removeAllEventListeners):
(WebCore):
* dom/Element.h:
(Element):
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::removeAllEventListeners): Added.
(WebCore):
* dom/ElementShadow.h:
(ElementShadow):
2013-03-26 Andrei Bucur <abucur@adobe.com>
Use DOM ordering for list counts
https://bugs.webkit.org/show_bug.cgi?id=110352
Reviewed by Elliott Sprehn.
Currently the list items ordering is made by traversing the render tree. This gives bad results for:
- list items flown inside regions because they are not rendered as descendants of their DOM list ancestors.
- list items matched to insertion points inside a shadow tree. The insertion point may be a child of a
list so the numbering gets broken.
To implement correct DOM ordering I've taken into account the fact that pseudo-elements can have display: list-item
so they should be included when traversing the DOM tree. I've added helper methods on the NodeTraversal
namespace that should allow easily traversing the tree including the pseudo-elements (e.g. firstChildWithPseudo
for an element with pseudo-before will return the before PseudoElement). Using these helper methods I've implemented
pre-order traversal methods aware of the pseudo-elements.
An effect of this change is how the list items inside shadow tree update their counting. With the patch, if there's
no <ol> or <ul> element on the ancestor chain of a <li> element to the shadow root, the list node will be considered the
first parent of the <li> or the shadow root if there is no ancestor.
The RenderListItem class now makes use of this new method of traversal, replacing the one based on the render tree.
To simplify the CSS counters implementation, I've changed the traversal functions inside RenderCounter to also make use
of this method. The CSS counters and the list items now have the same traversal algorithm.
In later patches I'll add tests that should cover the regions and shadow DOM use cases.
Tests bug for shadow DOM: https://bugs.webkit.org/show_bug.cgi?id=113193
Tests bug for regions: https://bugs.webkit.org/show_bug.cgi?id=103975
Tests: no new tests is this patch; added the correct expectations for fast/lists/positioned-count-crash.html
and fast/dom/shadow/shadow-and-list-elements.html
* dom/Node.cpp:
(WebCore::Node::pseudoAwarePreviousSibling):
(WebCore):
(WebCore::Node::pseudoAwareNextSibling):
(WebCore::Node::pseudoAwareFirstChild):
(WebCore::Node::pseudoAwareLastChild):
* dom/Node.h:
(Node):
* dom/NodeTraversal.cpp:
(WebCore):
(WebCore::NodeTraversal::previousIncludingPseudo):
(NodeTraversal):
(WebCore::NodeTraversal::nextIncludingPseudo):
(WebCore::NodeTraversal::nextIncludingPseudoSkippingChildren):
* dom/NodeTraversal.h:
(ElementTraversal):
(NodeTraversal):
(WebCore::ElementTraversal::previousIncludingPseudo):
(WebCore::ElementTraversal::nextIncludingPseudo):
(WebCore::ElementTraversal::nextIncludingPseudoSkippingChildren):
(WebCore::ElementTraversal::pseudoAwarePreviousSibling):
* html/HTMLLIElement.cpp:
(WebCore::HTMLLIElement::attach):
* html/HTMLOListElement.cpp:
(WebCore::HTMLOListElement::updateItemValues):
(WebCore::HTMLOListElement::recalculateItemCount):
* rendering/RenderCounter.cpp:
(WebCore::previousInPreOrder):
(WebCore::previousSiblingOrParent):
(WebCore::parentElement):
(WebCore::nextInPreOrder):
* rendering/RenderListItem.cpp:
(WebCore):
(WebCore::enclosingList):
(WebCore::RenderListItem::nextListItem):
(WebCore::previousListItem):
(WebCore::RenderListItem::calcValue):
(WebCore::RenderListItem::explicitValueChanged):
(WebCore::previousOrNextItem):
(WebCore::RenderListItem::updateListMarkerNumbers):
* rendering/RenderListItem.h:
(RenderListItem):
2013-03-26 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Poor rounding in GraphicsContext::drawLineForText
https://bugs.webkit.org/show_bug.cgi?id=113301
Reviewed by Jocelyn Turcotte.
Round the position of the line decoration, so lines on subpixel
coordinates are not always rounded up.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::drawLineForText):
2013-03-26 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Decorations in several consecutive lines are not moved correctly in DTE.
https://bugs.webkit.org/show_bug.cgi?id=113296
Reviewed by Pavel Feldman.
Separated removing and adding decorations so that moved decorations are not removed when next line is processed.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorGutterPanel.prototype.textChanged):
2013-03-26 Yury Semikhatsky <yurys@chromium.org>
Remove references to non-chromium entries from WebCore.gypi (part 2)
https://bugs.webkit.org/show_bug.cgi?id=103124
Reviewed by Pavel Feldman.
* WebCore.gypi: removed unused references to gtk, cf, win and mac
2013-03-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r146767.
http://trac.webkit.org/changeset/146767
https://bugs.webkit.org/show_bug.cgi?id=113295
Rolling out until nicer fonts / sizes are chosen (Requested by
pfeldman on #webkit).
* inspector/front-end/dataGrid.css:
(.data-grid table):
(.data-grid td):
* inspector/front-end/inspector.css:
(.toolbar-label):
(body.show-toolbar-icons .toolbar-label):
(.console-message .bubble):
(li .status .bubble):
(.source-frame-breakpoint-message):
(.soft-context-menu):
(.drawer-header-close-button):
* inspector/front-end/inspectorCommon.css:
(body):
* inspector/front-end/networkLogView.css:
(.network-log-grid.data-grid td):
(.network-log-grid.data-grid.small td):
* inspector/front-end/tabbedPane.css:
(.tabbed-pane-header-tab):
(.tabbed-pane-header-tab-close-button):
* inspector/front-end/timelinePanel.css:
(.timeline-tree-item .count):
(.timeline-records-stats, .storage-application-cache-status, .storage-application-cache-connectivity):
(.memory-counter-sidebar-info):
(.memory-counter-value):
2013-03-26 Arpita Bahuguna <a.bah@samsung.com>
Unable to insert a paragraph in between some text whose previous sibling is a non-editable block.
https://bugs.webkit.org/show_bug.cgi?id=113007
Reviewed by Ryosuke Niwa.
Unable to insert a line break in between a text that follows a
non-editable block but is itself contained within an editable
block.
While comparing the positions from the start block till the
insertion position, we should ignore the nodes that do not
generate a visiblePosition for the position before the node.
This ultimately results in an assert within comparePositions().
For this case, the firstChild of the start block is a text
node with no renderer which would thus not generate a candidate
position for itself.
There is also no candidate previous to it, and since
the position after it lies within a different editable element (root),
no candidate after it as well.
Such a point will thus return a null visiblePosition.
Test: editing/inserting/insert-paragraph-between-text.html
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
Added a check to verify the generated visiblePosition (for the
position before the node) prior to carrying out a comparison with
the insertion point.
2013-03-26 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: OverviewGrid. Dragged window may change its width due to accumulating rounding error.
https://bugs.webkit.org/show_bug.cgi?id=113138
Reviewed by Pavel Feldman.
The old version had problem with rounding because it recalculates the window size on each event.
The new version just calculates the dragging delta and moves the window
to the new position based on the initial values and the delta.
* inspector/front-end/OverviewGrid.js:
(WebInspector.OverviewGrid.Window.prototype._startWindowDragging):
(WebInspector.OverviewGrid.Window.prototype._windowDragging):
(WebInspector.OverviewGrid.Window.prototype._onMouseWheel):
2013-03-26 Kent Tamura <tkent@chromium.org>
Rename HTMLInputElement::isIndeterminate to Element::shouldAppearIndeterminate
https://bugs.webkit.org/show_bug.cgi?id=113264
Reviewed by Kentaro Hara.
HTMLInputElement had indeterminate() and isIndeterminate(). It's very
confusing.
Because indeterminate is a public DOM function and isIndeterminate is
for CSS and rendering, we rename isIndetermiante to
shouldAppearIndeterminate. Also, HTMLProgressElement, which support
:indeterminate pseudo class, should follow it. We add
shouldAppearIndeterminate to Element.
No new tests. Just a refactoring.
* dom/Element.cpp:
(WebCore::Element::shouldAppearIndeterminate): Added. Returns false.
* dom/Element.h:
(Element): Declare shouldAppearIndeterminate.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::shouldAppearIndeterminate):
Renamed from isIndeterminate.
* html/HTMLInputElement.h:
(HTMLInputElement): Rename isIndeterminate to shouldAppearIndeterminate,
and overrides Element::shouldAppearIndeterminate.
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::shouldAppearIndeterminate): Added.
* html/HTMLProgressElement.h: Add shouldAppearIndeterminate.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isIndeterminate):
Use shouldAppearIndeterminate.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne): Ditto.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithControl): Ditto.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::isIndeterminate): Ditto.
2013-03-26 Pan Deng <pan.deng@intel.com>
Web Inspector: [FlameChart] Make function bar highlighted consistent with cursor.
https://bugs.webkit.org/show_bug.cgi?id=113266.
Reviewed by Vsevolod Vlasov.
In Flamechart, the highlighted function bar is not consistent with cursor sometimes,
reason is that time range that converted from cursor position is truncated by floor.
Actually float value is expected to compare with function startTime and duration.
No new tests.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart.prototype._coordinatesToNodeIndex): Remove floor
2013-03-26 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions]: Crash accessing offsetParent for contentNodes inside a flow thread
https://bugs.webkit.org/show_bug.cgi?id=112730
Reviewed by Levi Weintraub.
When computing the offsetParent for an element inside a flow thread, do not
let the algorithm process past the flow thread boundaries, until we figure out
the proper behavior. When reaching the flow thread, offsetParent will return 0,
thus preventing the assert while calling toElement inside Element::offsetParent.
The attached test sets the ground work and will be changed to match the right behavior.
For now, it makes sure we do not crash or return HTMLDocument as offsetParent for
elements inside the flow thread.
Test: fast/regions/offsetParent-in-flow-thread.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::offsetParent):
2013-03-26 Dominik Röttsches <dominik.rottsches@intel.com>
Remove HarfBuzzShaperBase
https://bugs.webkit.org/show_bug.cgi?id=112087
Reviewed by Martin Robinson.
Folding HarfBuzzShaperBase into HarfBuzzShaper since
there is no harfbuzz-old vs. harfbuzz-ng distinction anymore.
No new tests, no change in behavior.
* GNUmakefile.list.am: Removing HarfBuzzShaperBase.*
* PlatformEfl.cmake: Removing HarfBuzzShaperBase.*
* WebCore.gypi: Removing HarfBuzzShaperBase.*
* platform/graphics/harfbuzz/HarfBuzzShaper.cpp: Folding base class members and methods into HarfBuzzShaper.
(WebCore::HarfBuzzShaper::HarfBuzzShaper):
(WebCore::normalizeSpacesAndMirrorChars):
(WebCore):
(WebCore::HarfBuzzShaper::setNormalizedBuffer):
(WebCore::HarfBuzzShaper::isWordEnd):
(WebCore::HarfBuzzShaper::determineWordBreakSpacing):
(WebCore::HarfBuzzShaper::setPadding):
* platform/graphics/harfbuzz/HarfBuzzShaper.h: Folding base class members and methods into HarfBuzzShaper.
(HarfBuzzShaper):
(WebCore::HarfBuzzShaper::isCodepointSpace):
* platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp: Removed.
* platform/graphics/harfbuzz/HarfBuzzShaperBase.h: Removed.
2013-03-22 Hajime Morrita <morrita@google.com>
Listening touch events on ShadowRoot can crash.
https://bugs.webkit.org/show_bug.cgi?id=113035
Reviewed by Kentaro Hara.
TreeScope destructor clears a document reference on ShadowRoot but
destructors of ContainerNode and Node assumed it being available
and tried to access it for some cleanup purposes.
This change extracts such cleanup to Node::willBeDeletedFrom() and
calls it from ShadowRoot dtor before the document reference gets cleared.
Test: fast/dom/shadow/shadow-root-touch-listener-crash.html
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::~ContainerNode): Adopted willBeDeletedFrom()
* dom/Node.cpp:
(WebCore::Node::~Node): Adopted willBeDeletedFrom()
(WebCore::Node::willBeDeletedFrom): Extracted from Node and ContainerNode
(WebCore):
* dom/Node.h:
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::~ShadowRoot): Adopted willBeDeletedFrom()
2013-03-25 Hajime Morrita <morrita@google.com>
Custom Elements Refactoring: The name V8CustomElement is confusing.
https://bugs.webkit.org/show_bug.cgi?id=113165
Reviewed by Kent Tamura.
This change moves functions from V8CustomElement to CustomElementHelpers and
removes V8CustomElement. V8CustomElement is just a heritage of old design
and no longer makes sense.
No new tests. No behavior change.
* WebCore.gypi:
* bindings/v8/CustomElementHelpers.cpp:
(WebCore::CustomElementHelpers::createWrapper):
(WebCore):
* bindings/v8/CustomElementHelpers.h:
(CustomElementHelpers):
(WebCore::CustomElementHelpers::wrap):
(WebCore):
(WebCore::CustomElementHelpers::constructorOf):
* bindings/v8/V8CustomElement.cpp: Removed.
* bindings/v8/V8CustomElement.h: Removed.
* bindings/v8/custom/V8CustomElementConstructorCustom.cpp:
(WebCore::V8CustomElementConstructor::callAsFunctionCallback):
* dom/make_names.pl:
(printWrapperFactoryCppFile):
2013-03-25 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Timeline] Records sidebar is clipped.
https://bugs.webkit.org/show_bug.cgi?id=113177
Reviewed by Pavel Feldman.
Analysis: depending on CSS injection order sidebar rule that overwrites
"bottom" property may win.
Fix: make timeline-specific rule "important".
* inspector/front-end/timelinePanel.css:
(.timeline .sidebar): Make "bottom" value "important".
2013-03-25 Kent Tamura <tkent@chromium.org>
Rename ENABLE_INPUT_TYPE_DATETIME
https://bugs.webkit.org/show_bug.cgi?id=113254
Reviewed by Kentaro Hara.
Rename ENABLE_INPUT_TYPE_DATETIME to ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE.
Actually I'd like to remove the code, but we shouldn't remove it yet
because we shipped products with it on some platforms.
* Configurations/FeatureDefines.xcconfig:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures):
* css/html.css:
* html/DateTimeInputType.cpp:
* html/DateTimeInputType.h:
* html/InputType.cpp:
(WebCore::createInputTypeFactoryMap):
2013-03-25 Timothy Hatcher <timothy@apple.com>
Make the Web Inspector console work in strict mode with JavaScriptCore.
https://webkit.org/b/65829
rdar://problem/11271238
Reviewed by Oliver Hunt.
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::evaluate):
Return the evalFunction directly.
* inspector/InjectedScriptHost.h:
(WebCore::InjectedScriptHost::evaluateReturnsEvalFunction):
Added. Return true on JSC and false on V8.
* inspector/InjectedScriptHost.idl:
Added evaluateReturnsEvalFunction and change evaluate to an attribute on JSC.
* inspector/InjectedScriptSource.js:
(InjectedScript.prototype._evaluateOn): Change from using 'with' statements to creating
a closure that evaluates the expression. The command line APIs are passed as parameters
to the closure so they are in scope but not injected. This allows the code evaluated in
the console to stay in strict mode (if is was already set), or to get strict mode by
prefixing expressions with 'use strict';.
2013-03-25 Tony Chang <tony@chromium.org>
Image alt text not included in plain-text version when copying
https://bugs.webkit.org/show_bug.cgi?id=11200
Reviewed by Ryosuke Niwa.
Add a setting to enable copying image alt text to the clipboard and drag and drop pasteboard.
This setting is disabled by default, so each port can enable if they want to match IE10 and
Firefox's behavior.
Test: editing/pasteboard/copy-image-with-alt-text.html
* editing/Editor.cpp:
(WebCore::Editor::cut): Explicitly ask that the selection on the pasteboard as being for the clipboard.
(WebCore::Editor::copy): Explicitly ask that the selection on the pasteboard as being for the clipboard.
(WebCore::Editor::selectedText): Add a private version of selectedText() that can choose between having image alt text or not.
(WebCore::Editor::selectedTextForClipboard): Ask for image alt text if the setting is enabled.
* editing/Editor.h:
* editing/TextIterator.cpp:
(WebCore::TextIterator::TextIterator): Add a bool to keep track of whether or not to emit image alt text.
(WebCore::TextIterator::handleReplacedElement): If there's alt text, point the iterator to it.
* editing/TextIterator.h:
(TextIterator):
* editing/mac/EditorMac.mm:
(WebCore::Editor::takeFindStringFromSelection): Use the same text as on the clipboard.
(WebCore::Editor::writeSelectionToPasteboard): Don't include image alt text since this is
used by Services.
(WebCore::Editor::stringSelectionForPasteboard): Don't include image alt text since this is
used by Services.
* page/DragController.cpp:
(WebCore::DragController::startDrag): Use image alt text (matches Firefox).
* page/Settings.in: Add a setting that disables image alt text by default.
* platform/Pasteboard.h:
* platform/blackberry/PasteboardBlackBerry.cpp:
(WebCore::Pasteboard::writeSelection): Add ShouldSerializeSelectedTextForClipboard parameter.
* platform/chromium/ClipboardChromium.cpp:
(WebCore::ClipboardChromium::writeRange): Use clipboard text when writing ranges (used by d&d).
* platform/chromium/PasteboardChromium.cpp:
(WebCore::Pasteboard::writeSelection): Add ShouldSerializeSelectedTextForClipboard parameter.
* platform/efl/PasteboardEfl.cpp:
(WebCore::Pasteboard::writeSelection): Update function param.
* platform/gtk/ClipboardGtk.cpp:
(WebCore::ClipboardGtk::writeRange): Use clipboard text when writing ranges (used by d&d).
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::writeSelection): Add ShouldSerializeSelectedTextForClipboard parameter.
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::writeRange): Use clipboard text when writing ranges (used by d&d).
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::getStringSelection): Use ShouldSerializeSelectedTextForClipboard to determine whether the selected
text is for the clipboard or not.
(WebCore::Pasteboard::writeSelectionForTypes): Pass ShouldSerializeSelectedTextForClipboard through.
(WebCore::Pasteboard::writeSelection): Add ShouldSerializeSelectedTextForClipboard parameter.
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::writeRange): Use clipboard text when writing ranges (used by d&d).
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::writeSelection): Add ShouldSerializeSelectedTextForClipboard parameter.
* platform/win/ClipboardWin.cpp:
(WebCore::ClipboardWin::writeRange): Use clipboard text when writing ranges (used by d&d).
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::writeSelection): Add ShouldSerializeSelectedTextForClipboard parameter.
* platform/wince/PasteboardWinCE.cpp:
(WebCore::Pasteboard::writeSelection): Add ShouldSerializeSelectedTextForClipboard parameter.
* platform/wx/PasteboardWx.cpp:
(WebCore::Pasteboard::writeSelection): Add ShouldSerializeSelectedTextForClipboard parameter.
* rendering/RenderImage.h:
(WebCore::RenderImage::altText): Add a getter for the alt text.
2013-03-25 Dean Jackson <dino@apple.com>
Remove autostart hashing code from WebCore
https://bugs.webkit.org/show_bug.cgi?id=113242
Reviewed by Tim Horton.
Remove PlugInOriginHash and all the related build entries.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLPlugInImageElement.cpp:
* plugins/PlugInOriginHash.cpp: Removed.
* plugins/PlugInOriginHash.h: Removed.
2013-03-25 Roger Fong <roger_fong@apple.com>
Unreviewed. Wrong place to enable RuntimeEnabledFeature for Windows.
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
2013-03-25 James Robinson <jamesr@chromium.org>
[chromium] Support GraphicsLayer::setContentsToSolidColor
https://bugs.webkit.org/show_bug.cgi?id=104396
Reviewed by Adrienne Walker.
This enables and implements the GraphicsLayer::setContentsToSolidColor
path for Chromium.
Tested by reftests in compositing/background-color/ and several other
compositing/ tests.
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::supportsBackgroundColorContent):
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::setContentsToSolidColor):
(WebCore):
* platform/graphics/chromium/GraphicsLayerChromium.h:
(WebKit):
(GraphicsLayerChromium):
2013-03-25 Victor Carbune <vcarbune@chromium.org>
TextTrack Extension for WebVTT Regions
https://bugs.webkit.org/show_bug.cgi?id=109820
Reviewed by Eric Carlson.
Implemented the TextTrackRegionList and extended TextTrack with
methods required for proper interaction with TextTrackRegion objects.
Test: media/track/regions-webvtt/text-track-region-list.html
* WebCore.gypi: Added files for proper building of TextTrackRegionList.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::TextTrack):
(WebCore):
(WebCore::TextTrack::ensureTextTrackRegionList): Method for creating a
TextTrackRegionList associated with the current track, if it does exist
already.
(WebCore::TextTrack::regions): Getter for the regions object.
(WebCore::TextTrack::addRegion): Method for adding a region.
(WebCore::TextTrack::removeRegion): Method for removing a region.
* html/track/TextTrack.h:
(WebCore):
(TextTrack):
* html/track/TextTrack.idl: Added methods specific for region handling.
* html/track/TextTrackRegion.cpp:
(WebCore::TextTrackRegion::TextTrackRegion): Initialized the track member variable.
(WebCore::TextTrackRegion::setTrack): Added internal setter for the track attribute.
(WebCore):
(WebCore::TextTrackRegion::updateParametersFromRegion): Method to copy the parameters
from a different region object.
* html/track/TextTrackRegion.h: Added track member variable and copy method.
(WebCore::TextTrackRegion::track): Getter retrieves now the member variable.
(TextTrackRegion):
* html/track/TextTrackRegionList.cpp: Implemented methods required by the IDL.
(WebCore):
(WebCore::TextTrackRegionList::TextTrackRegionList):
(WebCore::TextTrackRegionList::length):
(WebCore::TextTrackRegionList::item):
(WebCore::TextTrackRegionList::getRegionById):
(WebCore::TextTrackRegionList::add):
(WebCore::TextTrackRegionList::remove):
(WebCore::TextTrackRegionList::clear):
* html/track/TextTrackRegionList.h:
(WebCore):
(TextTrackRegionList):
(WebCore::TextTrackRegionList::create):
(WebCore::TextTrackRegionList::~TextTrackRegionList):
* html/track/TextTrackRegionList.idl: IDL defined by the specification.
2013-03-25 Dean Jackson <dino@apple.com>
Cleanup plugin snapshotting autostart decision making
https://bugs.webkit.org/show_bug.cgi?id=113231
Reviewed by Tim Horton.
Move the code that creates a hash of plugin origin info
out of WebCore. All WebCore needs to do now is simply ask its
host layer whether or not a tuple of (pluginOrigin, pageOrigin, mimeType)
should autostart or not.
As a drive-by, the code in subframeLoaderWillCreatePlugIn was not quite
restarting properly when the displayState was Restarting or
RestartingWithPendingMouseClick. It still worked most of the time, but usually
because the code ran soon after a mouse click. Now it should be explicit and
also allowed us to be more clear about snapshotting at the end of the method.
* html/HTMLPlugInElement.h: No more pluginOriginHash().
* html/HTMLPlugInImageElement.cpp:
(WebCore::addPlugInsFromNodeListMatchingPlugInOrigin): Change signature to accept the tuple
described above, and compare strings rather than hashes.
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Tell host layer the origin
info rather than hash info.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Remember the url that
the plugin was loaded from. Make some of the logging messages more clear. Test for
plugin and page origin rather than hash.
* html/HTMLPlugInImageElement.h:
(WebCore::HTMLPlugInImageElement::loadedUrl): New loadedURL member function.
* page/PlugInClient.h:
(PlugInClient): Change signature of virtual class to accept origin and mimeType info
rather than hash.
2013-03-25 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r146793.
http://trac.webkit.org/changeset/146793
https://bugs.webkit.org/show_bug.cgi?id=113248
Fix did not work (Requested by rfong on #webkit).
* bindings/scripts/preprocessor.pm:
(applyPreprocessor):
2013-03-25 Brandon Jones <bajones@google.com>
WEBGL_compressed_texture_pvrtc needs implementation
https://bugs.webkit.org/show_bug.cgi?id=110497
Reviewed by Kenneth Russell.
Test: webgl/conformance/extensions/webgl-compressed-texture-pvrtc.html
Exposes the WEBGL_compressed_texture_pvrtc extension, but is unverified since no desktop hardware supports
the format that I am aware of. Should enable mobile ports to expose the format, however.
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::toJS):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toV8Object):
* html/canvas/WebGLCompressedTexturePVRTC.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
(WebCore):
(WebCore::WebGLCompressedTexturePVRTC::WebGLCompressedTexturePVRTC):
(WebCore::WebGLCompressedTexturePVRTC::~WebGLCompressedTexturePVRTC):
(WebCore::WebGLCompressedTexturePVRTC::getName):
(WebCore::WebGLCompressedTexturePVRTC::create):
(WebCore::WebGLCompressedTexturePVRTC::supported):
* html/canvas/WebGLCompressedTexturePVRTC.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
(WebCore):
(WebGLCompressedTexturePVRTC):
* html/canvas/WebGLCompressedTexturePVRTC.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
* html/canvas/WebGLExtension.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getSupportedExtensions):
(WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
* html/canvas/WebGLRenderingContext.h:
(WebCore):
(WebGLRenderingContext):
2013-03-25 Roger Fong <roger_fong@apple.com>
Enable CSS_REGIONS and CSS_EXCLUSIONS.
https://bugs.webkit.org/show_bug.cgi?id=87519
Reviewed by Timothy Horton.
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
2013-03-25 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
Remove unused code from Frame class destructor
https://bugs.webkit.org/show_bug.cgi?id=113181
Reviewed by Alexey Proskuryakov.
No new tests. No new functionality.
* page/Frame.cpp:
(WebCore::Frame::~Frame):
Removed the code which could never have been executed
as m_view had been set to '0'.
2013-03-25 Eric Seidel <eric@webkit.org>
Incorrect parsing due to hash collision
https://bugs.webkit.org/show_bug.cgi?id=113235
Reviewed by Adam Barth.
Test: fast/parser/tag-hash-collision.html
* html/parser/HTMLIdentifier.cpp:
(WebCore::HTMLIdentifier::findIndex):
2013-03-25 Adenilson Cavalcanti <cavalcantii@gmail.com>
Compile without SVG will fail
https://bugs.webkit.org/show_bug.cgi?id=113234
Reviewed by Timothy Hatcher.
Only make the cast to SVGStyleElement if we have SVG support built.
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
2013-03-25 Patrick Gansterer <paroga@webkit.org>
Enable STORE_FONT_CUSTOM_PLATFORM_DATA for all platforms
https://bugs.webkit.org/show_bug.cgi?id=108438
Reviewed by Andreas Kling.
Remove the conditional code so it is turned on for all platforms.
* loader/cache/CachedFont.cpp:
(WebCore::CachedFont::~CachedFont):
(WebCore::CachedFont::ensureCustomFontData):
(WebCore::CachedFont::platformDataFromCustomData):
(WebCore::CachedFont::allClientsRemoved):
(WebCore::CachedFont::reportMemoryUsage):
2013-03-25 Eric Carlson <eric.carlson@apple.com>
REGRESSION(r146380): media/track/track-user-preferences.html
https://bugs.webkit.org/show_bug.cgi?id=113083
Reviewed by Jer Noble.
Ignore track change notifications triggered by automatic track selection so the
configuration is not changed.
No new tests, this fixes an existing test.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::configureTextTrackGroup): Clear m_processingPreferenceChange after all
track configuration is finished.
(WebCore::HTMLMediaElement::configureTextTrackDisplay): Do nothing if m_processingPreferenceChange
is true.
2013-03-25 Martin Robinson <mrobinson@igalia.com>
[GTK] [gyp] Build the final piece of WebCore
https://bugs.webkit.org/show_bug.cgi?id=113216
Reviewed by Nico Weber.
* WebCore.gyp/WebCoreGTK.gyp: Add the rest of the WebCore source files to the WebCore build target.
2013-03-25 Martin Robinson <mrobinson@igalia.com>
[GTK] [gyp] Adding support for building WebCore rendering
https://bugs.webkit.org/show_bug.cgi?id=113213
Reviewed by Gustavo Noronha Silva.
* WebCore.gyp/WebCoreGTK.gyp: Build the rendering directory into a shared library.
2013-03-25 Tony Chang <tony@chromium.org>
Remove TextIterator argumentless constructor
https://bugs.webkit.org/show_bug.cgi?id=113226
Reviewed by Ryosuke Niwa.
The TextIterator argumentless constructors are never used and wouldn't be useful
since you can't specify a range.
No new tests, removing dead code. There should be no behavior change.
* editing/TextIterator.cpp: Remove constructors.
* editing/TextIterator.h:
(TextIterator):
(SimplifiedBackwardsTextIterator):
(CharacterIterator):
(BackwardsCharacterIterator):
(WordAwareIterator):
2013-03-25 Brandon Jones <bajones@chromium.org>
Enabled canvas.getContext("webgl") on Desktop Chrome
https://bugs.webkit.org/show_bug.cgi?id=113079
Reviewed by Dean Jackson.
Test: fast/canvas/webgl/webgl-unprefixed-context-id.html
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::V8HTMLCanvasElement::getContextMethodCustom):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
2013-03-25 Roger Fong <roger_fong@apple.com>
Unreviewed. Remove some suspicious looking code in an attempt to fix EWS bots.
* bindings/scripts/preprocessor.pm:
(applyPreprocessor):
2013-03-25 Martin Robinson <mrobinson@igalia.com>
[GTK] [gyp] Add support for building the platform directory
https://bugs.webkit.org/show_bug.cgi?id=113212
Reviewed by Nico Weber.
* WebCore.gyp/WebCoreGTK.gyp: Add support for building the platform directory including
two libraries, one for platform and one for geometry files. This follows the approach
of Chromium.
2013-03-25 Jochen Eisinger <jochen@chromium.org>
Swap both the error and change event queue before processing fullscreen events
https://bugs.webkit.org/show_bug.cgi?id=113194
Reviewed by Jer Noble.
While processing the change events, not only new change events but
also new error events might get generated. However, for the timer, we
should only process preexisting events.
This is covered by fullscreen/full-screen-restrictions.html which times
out depending on the delay between requesting fullscreen and granting
fullscreen.
* dom/Document.cpp:
(WebCore::Document::fullScreenChangeDelayTimerFired):
2013-03-25 Marja Hölttä <marja@chromium.org>
[V8] Generate specialized callbacks for the main world
https://bugs.webkit.org/show_bug.cgi?id=112430
Reviewed by Kentaro Hara.
The new specialized bindings will be faster, because they don't need to
do the "main world, isolated world or a worker" check, but can right
away assume that we're in the main world.
This patch generates main world bindings for getters and setters for a
small amount of frequently used functions / functions used by Dromaeo.
Added tests to TestObj.idl and updated bindings tests.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateOverloadedFunction):
(GenerateFunctionCallback):
(GenerateFunction):
(GenerateParametersCheck):
(GenerateSingleConstructorCallback):
(GenerateNonStandardFunction):
(GenerateImplementation):
(GenerateFunctionCallString):
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::perWorldReadOnlyAttributeAttrGetter):
(TestObjV8Internal):
(WebCore::TestObjV8Internal::perWorldReadOnlyAttributeAttrGetterCallback):
(WebCore::TestObjV8Internal::perWorldReadOnlyAttributeAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::perWorldReadOnlyAttributeAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::perWorldAttributeAttrGetter):
(WebCore::TestObjV8Internal::perWorldAttributeAttrGetterCallback):
(WebCore::TestObjV8Internal::perWorldAttributeAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::perWorldAttributeAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::perWorldAttributeAttrSetter):
(WebCore::TestObjV8Internal::perWorldAttributeAttrSetterCallback):
(WebCore::TestObjV8Internal::perWorldAttributeAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::perWorldAttributeAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::perWorldMethodMethod):
(WebCore::TestObjV8Internal::perWorldMethodMethodForMainWorld):
(WebCore::TestObjV8Internal::perWorldMethodMethodCallback):
(WebCore::TestObjV8Internal::perWorldMethodMethodCallbackForMainWorld):
(WebCore::TestObjV8Internal::overloadedPerWorldMethod1Method):
(WebCore::TestObjV8Internal::overloadedPerWorldMethod1MethodForMainWorld):
(WebCore::TestObjV8Internal::overloadedPerWorldMethod2Method):
(WebCore::TestObjV8Internal::overloadedPerWorldMethod2MethodForMainWorld):
(WebCore::TestObjV8Internal::overloadedPerWorldMethodMethod):
(WebCore::TestObjV8Internal::overloadedPerWorldMethodMethodForMainWorld):
(WebCore::TestObjV8Internal::overloadedPerWorldMethodMethodCallback):
(WebCore::TestObjV8Internal::overloadedPerWorldMethodMethodCallbackForMainWorld):
(WebCore):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore):
* bindings/v8/V8DOMConfiguration.cpp:
(WebCore::V8DOMConfiguration::batchConfigureCallbacks):
(WebCore::V8DOMConfiguration::configureTemplate):
* bindings/v8/V8DOMConfiguration.h:
(BatchedMethod):
(V8DOMConfiguration):
* dom/Document.idl:
* dom/Element.idl:
* dom/Node.idl:
* page/DOMWindow.idl:
2013-03-25 Daniel Cheng <dcheng@chromium.org>
Don't allow drags to start after a mouse press that creates a context menu
https://bugs.webkit.org/show_bug.cgi?id=112079
Reviewed by Tony Chang.
This appears to be the intent of the original code anyway (the comments in the corresponding
context menu handlers indicate that they set m_mousePressed to false in order to suppress
drags from starting). Since exact platform behavior differs quite a bit in this area, this
will also make the behavior more consistent across different WebKit implementations.
Manually testable using context-menu-during-drag-selection.html.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseDraggedEvent):
2013-03-25 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: [Regression] Provisional breakpoints are not shown on reload.
https://bugs.webkit.org/show_bug.cgi?id=113210
Reviewed by Pavel Feldman.
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype._restoreBreakpoints):
(WebInspector.BreakpointManager.prototype._projectWillReset.get for):
(WebInspector.BreakpointManager.prototype._projectWillReset):
(WebInspector.BreakpointManager.prototype._breakpointResolved):
* inspector/front-end/utilities.js:
2013-03-25 Sergey Ryazanov <serya@chromium.org>
Web Inspector: Remove console warnings for *_ prefixed CSS styles
https://bugs.webkit.org/show_bug.cgi?id=113175
Reviewed by Pavel Feldman.
Added separate error message for syntax CSS error in declaration list when no property detected.
Added filter for messages starting with '*'.
* css/CSSGrammar.y.in:
2013-03-25 Alexis Hetu <sugoi@chromium.org>
Integration of the Skia displacement mapping into WebKit
https://bugs.webkit.org/show_bug.cgi?id=112927
Reviewed by Stephen White.
Added displacement mapping to effect-reference.html and
effect-reference-hw.html
* WebCore.gypi:
* platform/graphics/filters/FEDisplacementMap.h:
(FEDisplacementMap):
Adding Skia specific declarations
* platform/graphics/filters/skia/FEDisplacementMapSkia.cpp: Added.
(WebCore):
(WebCore::toSkiaMode):
Provides conversion between the WebKit displacement mapping mode and
the Skia displacement mapping mode
(WebCore::FEDisplacementMap::platformApplySkia):
Displacement through the Skia API. (Accelerated only for now)
(WebCore::FEDisplacementMap::createImageFilter):
Displacement image filter creation through the Skia API.
2013-03-25 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Graduate some new Inspector APIs to public
https://bugs.webkit.org/show_bug.cgi?id=113176
Reviewed by Pavel Feldman.
Summary of changes:
DOM.highlightNode.nodeId: required parameter is now optional
Input: domain has been added
Runtime.enable: command has been added
Runtime.executionContextCreated: event has been added
Page.clearGeolocationOverride: command has been added
Page.setGeolocationOverride: command has been added
Page.captureScreenshot: command has been added
Debugger.setBreakpointByUrl.locations: optional response parameter is now required
* inspector/Inspector.json:
2013-03-25 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: [Timeline] set glue records mode off by default
https://bugs.webkit.org/show_bug.cgi?id=113189
Reviewed by Pavel Feldman.
* inspector/front-end/TimelinePanel.js: /glueRecordsSetting/s/true/false/
2013-03-25 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL] Fix build break when media source is enabled
https://bugs.webkit.org/show_bug.cgi?id=113143
Unreviewed. Build error needs to be fixed in order to start to implement
media source functionality.
* CMakeLists.txt:
* platform/efl/MIMETypeRegistryEfl.cpp:
(WebCore):
(WebCore::MIMETypeRegistry::isSupportedMediaSourceMIMEType):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore):
(WebCore::MediaPlayerPrivateGStreamer::load):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(MediaPlayerPrivateGStreamer):
2013-03-25 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Toggling breakpoint with shortcut should be freezed as well while editing.
https://bugs.webkit.org/show_bug.cgi?id=113188
Reviewed by Pavel Feldman.
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame.prototype.toggleBreakpointOnCurrentLine):
2013-03-25 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Remove unneeded code from JavaScriptSourceFrame.
https://bugs.webkit.org/show_bug.cgi?id=113182
Reviewed by Pavel Feldman.
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame):
2013-03-25 Alexei Filippov <alph@chromium.org>
Web Inspector: Fonts refactoring
https://bugs.webkit.org/show_bug.cgi?id=113047
Reviewed by Pavel Feldman.
Unify fonts usage across inspector.
Make inspector default font depend on platform.
* inspector/front-end/dataGrid.css:
(.data-grid table):
(.data-grid td):
* inspector/front-end/inspector.css:
(.toolbar-label):
(body.show-toolbar-icons .toolbar-label):
(.console-message .bubble):
(li .status .bubble):
(.source-frame-breakpoint-message):
(.soft-context-menu):
* inspector/front-end/inspectorCommon.css:
(body):
* inspector/front-end/networkLogView.css:
(.network-log-grid.data-grid td):
(.network-log-grid.data-grid.small td):
* inspector/front-end/tabbedPane.css:
(.tabbed-pane-header-tab):
(select.tabbed-pane-header-tabs-drop-down-select):
* inspector/front-end/timelinePanel.css:
(.memory-counter-value):
2013-03-25 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Use generate-inspector-protocol-version to list valid public API changes
https://bugs.webkit.org/show_bug.cgi?id=113148
Added --show-changes command line option.
Used existing compare_schemas method to do a reverse compare.
Fixed a number of small problems (missing domain name in the message,
incorrect error messages for command parameters).
Reviewed by Pavel Feldman.
* inspector/generate-inspector-protocol-version:
(named_list_to_map):
(removed):
(required):
(compare_schemas):
(compare_domains):
(compare_commands):
(compare_events):
(compare_params_list):
(compare_types):
(self_test):
(self_test.create_test_schema_1):
(self_test.create_test_schema_2):
(self_test.is_subset):
(self_test.errors_match):
(main):
2013-03-25 Alec Flett <alecflett@chromium.org>
Support Quota API in Workers
https://bugs.webkit.org/show_bug.cgi?id=112972
Reviewed by Adam Barth.
Tests: fast/workers/shared-worker-storagequota-query-usage.html
fast/workers/worker-storagequota-query-usage.html
* Modules/quota/WorkerNavigatorStorageQuota.cpp: Added.
* Modules/quota/WorkerNavigatorStorageQuota.h: Added.
* Modules/quota/WorkerNavigatorStorageQuota.idl: Added.
* WebCore.gypi: Add entries for WorkerNavigatorStorageQuota.
* page/WorkerNavigator.h: Add a Navigator supplement that extends the worker navigator.
2013-03-25 Mike West <mkwst@chromium.org>
CSP 1.1: Rename SecurityPolicyViolationEvent::sourceURL to ::sourceFile.
https://bugs.webkit.org/show_bug.cgi?id=113033
Reviewed by Jochen Eisinger.
Bringing our experimental implementation into line with the spec, which
has landed on the de facto standard name Gecko has been sending out for
years and years.
Spec: https://dvcs.w3.org/hg/content-security-policy/rev/e44f4003e158
Thread: http://lists.w3.org/Archives/Public/public-webappsec/2013Mar/0087.html
* dom/SecurityPolicyViolationEvent.h:
(SecurityPolicyViolationEventInit):
(WebCore::SecurityPolicyViolationEvent::sourceFile):
(WebCore::SecurityPolicyViolationEvent::SecurityPolicyViolationEvent):
(SecurityPolicyViolationEvent):
* dom/SecurityPolicyViolationEvent.idl:
* page/ContentSecurityPolicy.cpp:
(WebCore::gatherSecurityPolicyViolationEventData):
s/sourceURL/sourceFile/
2013-03-25 Michelangelo De Simone <michelangelo@webkit.org>
[CSS Filters] Using negative drop-shadow radius values has slow performance
https://bugs.webkit.org/show_bug.cgi?id=107848
Setting negative blur radius values in drop-shadow() and box-shadow() led to
significant rendering performance loss. The invalid value overflowed and the
embedder became unresponsive for few seconds.
This impacted SVG too (SVGFEDropShadow and SVGFEGaussianBlur).
Reviewed by Dirk Schulze.
Tests: css3/filters/effect-drop-shadow-negative-radius.html
fast/box-shadow/box-shadow-parsing-invalid.html
svg/filters/feDropShadow-negative-deviation-expected.svg
svg/filters/feDropShadow-negative-deviation.svg
svg/filters/feDropShadow-zero-deviation.svg
svg/filters/feGaussianBlur-negative-deviation-expected.svg
svg/filters/feGaussianBlur-negative-deviation.svg
svg/filters/feGaussianBlur-zero-deviation.svg
* css/CSSParser.cpp:
(WebCore::CSSParser::parseShadow): Negative values are skipped during parsing: as per
CSS Background and Borders specs, negative values shall not be allowed.
* platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::calculateUnscaledKernelSize): Added "non-negative" assertion for
negative deviations.
* svg/SVGFEDropShadowElement.cpp:
(WebCore::SVGFEDropShadowElement::build): If a negative standard deviation is encountered, don't
build the filter and returns earlier, this avoids unnecessary calls: FEGaussianBlur is not being
created with wrong and potentially overflowing values.
* svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::build): Ditto.
2013-03-25 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] REGRESSION(r146630): 8 text related test asserts on debug builds
https://bugs.webkit.org/show_bug.cgi?id=113179
Reviewed by Jocelyn Turcotte.
Test if range.start is within the valid range before testing the value at that point.
* platform/graphics/qt/FontQt.cpp:
(WebCore::Font::initFormatForTextLayout):
2013-03-25 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Properly handle the rule addition to an XML or SVG document.
https://bugs.webkit.org/show_bug.cgi?id=113185
Reviewed by Pavel Feldman.
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
2013-03-25 Peter Rybin <prybin@chromium.org>
Web Inspector: support changing local variables in frontend
https://bugs.webkit.org/show_bug.cgi?id=112470
Reviewed by Yury Semikhatsky.
ScopeRef type is added to RemoteObject and setPropertyValue is patched accordingly.
Test: inspector/debugger/debugger-change-variable.html
* inspector/front-end/DebuggerModel.js:
(WebInspector.DebuggerModel.CallFrame.prototype.get id):
* inspector/front-end/ObjectPropertiesSection.js:
(WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate.didGetDetails):
(WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate):
* inspector/front-end/RemoteObject.js:
(WebInspector.RemoteObject):
(WebInspector.RemoteObject.fromScopePayload):
(WebInspector.RemoteObject.prototype.):
(WebInspector.RemoteObject.prototype.setPropertyValue):
(WebInspector.RemoteObject.prototype.setVariableValueCallback):
(WebInspector.RemoteObject.prototype._setDeclarativeVariableValue):
(WebInspector.ScopeRef):
* inspector/front-end/ScopeChainSidebarPane.js:
(WebInspector.ScopeChainSidebarPane.prototype.update):
2013-03-25 Mike West <mkwst@chromium.org>
CSP 1.1: Strip URLs in SecurityPolicyViolationEvents, just as we do for POSTed violation reports.
https://bugs.webkit.org/show_bug.cgi?id=113039
Reviewed by Jochen Eisinger.
I'd originally assumed that we didn't need to be quite so careful when
handing URLs to JavaScript via SecurityPolicyViolationEvents. This was
a mistake. Cross-origin URLs aren't accessible to JavaScript currently
and there's no reason that we should begin exposing them via an event.
This patch extracts the stripping logic from the existing reports into
stripURLForUseInReport(), and uses that new method when populating the
event and report objects.
Relatedly, we were doing the wrong thing with 'file:' URLs, which this
patch made clear. Now they're treated the same as 'data:' et al.
Spec: https://dvcs.w3.org/hg/content-security-policy/rev/45f6ccaba0ef
Tests: http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-cross-origin-image-from-script.html
http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-cross-origin-image.html
http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-image-from-script.html
http/tests/security/contentSecurityPolicy/report-blocked-file-uri.html
* page/ContentSecurityPolicy.cpp:
(WebCore::stripURLForUseInReport):
Extract the logic from blockedURI out into a reusable method:
cross-origin URLs are stripped down to the ASCII serialization of
their origin, and non-heirarchical (and 'file:') URLs are stripped
down to the ASCII serialization of their protocol.
(WebCore::gatherSecurityPolicyViolationEventData):
(WebCore::ContentSecurityPolicy::reportViolation):
Use ::stripURLForUseInReport for blockedURL and sourceFile
attributes in these two methods.
2013-03-25 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Fix JSDocs.
https://bugs.webkit.org/show_bug.cgi?id=113025
Reviewed by Pavel Feldman.
Next version of JS compiler finds more inconsistencies
and ambiguous declarations.
Some of them are resolved in this patch.
* inspector/InjectedScriptSource.js: Fix JSDocs.
* inspector/front-end/ConsoleModel.js: Ditto.
* inspector/front-end/CookieParser.js: Ditto.
* inspector/front-end/FileContentView.js: Ditto.
* inspector/front-end/HeapSnapshotView.js: Ditto.
* inspector/front-end/IndexedDBModel.js: Ditto.
* inspector/front-end/ProfilesPanelDescriptor.js: Ditto.
* inspector/front-end/utilities.js: Ditto.
2013-03-25 Mike West <mkwst@chromium.org>
Cleanup: Tiny nits in ContentSecurityPolicy::reportViolation.
https://bugs.webkit.org/show_bug.cgi?id=112784
Reviewed by Jochen Eisinger.
Just cleanup of three tiny nits I ran across in
ContentSecurityPolicy::reportViolation while doing other work.
- 'directiveText' and 'effectiveDirective' can't be empty; we pass in
values at every callsite. We can safely remove the 'isEmpty()' checks.
Moreover, even if they could possibly somehow be empty, we should
still include those empty strings in the report, rather than
dropping the values entirely.
- We don't need to hold 'document->referrer()' in a temp variable.
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::reportViolation):
2013-03-25 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Overview] Make "drag-to-move" feature more discoverable.
https://bugs.webkit.org/show_bug.cgi?id=113032
Reviewed by Pavel Feldman.
To move overview window user could drag-n-drop over
time "ribbon" on OverviewGrid.
This feature is hard to discover.
Setting "move" cursor will make this feature more discoverable.
* inspector/front-end/inspectorCommon.css:
Set "move" cursor to draggable area.
* inspector/front-end/OverviewGrid.js: Ditto.
2013-03-25 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Profiles] Remove unused private member.
https://bugs.webkit.org/show_bug.cgi?id=113015
Reviewed by Pavel Feldman.
_profileGroupsForLinks is not used anymore.
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel.prototype._reset): Removed unused member.
2013-03-25 PhistucK <phistuck@chromium.org>
Web Inspector: Exception when turning on pretty print without any displayed source in the editor
https://bugs.webkit.org/show_bug.cgi?id=113136
Reviewed by Vsevolod Vlasov.
No new tests.
Added a check for the existence of currently edited document.
* inspector/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._toggleFormatSource):
2013-03-25 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Remove RenderRegion::printRegionObjectsStyles
https://bugs.webkit.org/show_bug.cgi?id=113081
Reviewed by Tony Chang.
No change in functionality, remove unused function..
* rendering/RenderRegion.h:
2013-03-25 Hurnjoo Lee <hurnjoo.lee@samsung.com>
[Texmap] Memory leak when closing a tab
https://bugs.webkit.org/show_bug.cgi?id=112127
Reviewed by Noam Rosenthal.
When closing a tab, if there are any updates pending in CoordinatedGraphicsScene's
render queue, the scene is not freed because reference count of m_scene is not zero.
No new tests.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::detach): When bind updates in CoordinatedGraphicsScene,
the reference count of m_scene is increasing, if m_renderQueue is not empty
before closing tab, then m_scene is never freed.
Hence, when closing tab, need to clear m_renderQueue explicitly in order to
destroy m_scene.
2013-03-25 Keishi Hattori <keishi@webkit.org>
Clear button visibility is not updated when restoring form state
https://bugs.webkit.org/show_bug.cgi?id=113172
Clear button wasn't showing up when restoring form state.
Reviewed by Kent Tamura.
Tests: fast/forms/date-multiple-fields/date-multiple-fields-clearbutton-visibility-after-restore.html
fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-clearbutton-visibility-after-restore.html
fast/forms/month-multiple-fields/month-multiple-fields-clearbutton-visibility-after-restore.html
fast/forms/time-multiple-fields/time-multiple-fields-clearbutton-visibility-after-restore.html
fast/forms/week-multiple-fields/week-multiple-fields-clearbutton-visibility-after-restore.html
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
2013-03-25 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Settings] Use registry to track settings objects.
https://bugs.webkit.org/show_bug.cgi?id=113008
Reviewed by Pavel Feldman.
Currently .createSetting creates new instance any time it is invoked.
When one instance saves value, the other instance do not know about it.
To resolve this issue we can use registry to make .createSetting return
same object for specific key.
* inspector/front-end/Settings.js:
(WebInspector.Settings.prototype.createSetting): Use registry.
2013-03-24 Matt Falkenhagen <falken@chromium.org>
Refactoring: Pull Node::disabled() and Node::isInert() down to Element.
https://bugs.webkit.org/show_bug.cgi?id=112085
Reviewed by Hajime Morrita.
Node is too low a level for these methods. The plan is to rename
Element::disabled to isDisabledFormControl and to remove
Element::isEnabledFormControl.
No new tests, just refactoring.
* dom/Element.cpp:
(WebCore::Element::disabled):
(WebCore):
(WebCore::Element::isInert):
* dom/Element.h:
(Element):
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchSimulatedClick):
* dom/GestureEvent.cpp:
(WebCore::GestureEventDispatchMediator::dispatchEvent):
* dom/MouseEvent.cpp:
(WebCore::MouseEventDispatchMediator::dispatchEvent):
* dom/Node.cpp:
(WebCore::Node::handleLocalEvents):
(WebCore::Node::willRespondToMouseMoveEvents):
(WebCore::Node::willRespondToMouseClickEvents):
(WebCore::Node::willRespondToTouchEvents):
* dom/Node.h:
(Node):
2013-03-24 Alpha Lam <hclam@chromium.org>
GIFImageReader should reports parsing error to client
https://bugs.webkit.org/show_bug.cgi?id=113141
Reviewed by Stephen White.
GIFImageReader nows reports parsing error to client (GIFImageDecoder) such that errors can be handled.
In the case of corrupted GIF images GIFImageReader will be deleted and decoding will fail.
Unit test is updated to reflect change in behavior.
Tested with a local corpus which showed better handling of corrupted GIF images.
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::decode):
2013-03-24 KondapallyKalyan <kalyan.kondapally@intel.com>
[EFL] Add support to check for current Drawable.
https://bugs.webkit.org/show_bug.cgi?id=113103
Reviewed by Kenneth Rohde Christiansen.
Covered by existing WebGL tests.
In MakeCurrent we do an early return if it is
the current GL context but ignore Surface. This
patch fixes the issue, we now check for both
context and surface before doing an early return
in MakeCurrent.
* platform/graphics/opengl/GLPlatformContext.cpp:
(WebCore::GLPlatformContext::makeCurrent):
(WebCore::GLPlatformContext::releaseCurrent):
(WebCore::GLPlatformContext::destroy):
* platform/graphics/opengl/GLPlatformSurface.cpp:
(WebCore):
(WebCore::GLPlatformSurface::isCurrentDrawable):
(WebCore::GLPlatformSurface::onMakeCurrent):
* platform/graphics/opengl/GLPlatformSurface.h:
2013-03-24 David Kilzer <ddkilzer@apple.com>
BUILD FIX (r146704): Settings::setHiddenPageDOMTimerThrottlingEnabled() isn't always built
<http://webkit.org/b/112308>
* WebCore.exp.in: Export
Settings::setHiddenPageDOMTimerThrottlingEnabled()
conditionally based on ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING).
2013-03-24 Christophe Dumez <ch.dumez@sisa.samsung.com>
[EFL] NetworkStateNotifier::updateState() is called too often
https://bugs.webkit.org/show_bug.cgi?id=113152
Reviewed by Kenneth Rohde Christiansen.
Wait until we have read all the data on the Netlink socket before
reporting a possible network interface change. This way, we make
sure we don't call NetworkStateNotifier::updateState() several
times in a row for no reason.
We also call NetworkStateNotifier::updateState() only if we get a
RTM_NEWADDR event and we are currently offline, or if we get a
RTM_DELADDR and we are currently online. This avoids calling
NetworkStateNotifier::updateState() uselessly as there is no way
the online state can change otherwise.
No new tests, no behavior change for layout tests.
* platform/network/efl/NetworkStateNotifierEfl.cpp:
(WebCore::NetworkStateNotifier::readSocketCallback):
2013-03-24 Chris Fleizach <cfleizach@apple.com>
AX: Crash in WebCore::AccessibilitySpinButton::incrementButton()
https://bugs.webkit.org/show_bug.cgi?id=111582
Reviewed by Tim Horton.
There are two ways to create a spin button: from a textfield counter or from ARIA.
If an ARIA spin button is created, it was returning true for isSpinButton, so we were
casting to the other kind of spin button, leading to a crash.
We need to be more specific about our class types.
Test: platform/mac/accessibility/aria-spinbutton-crash.html
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isNativeSpinButton):
* accessibility/AccessibilitySpinButton.h:
(WebCore::AccessibilitySpinButton::isNativeSpinButton):
(WebCore::toAccessibilitySpinButton):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2013-03-24 Chris Fleizach <cfleizach@apple.com>
AXObjectCache gets recreated during document tear-down.
https://bugs.webkit.org/show_bug.cgi?id=112525
Reviewed by Simon Fraser.
In many cases, a document's AXObjectCache was being created after the
document had detached, which is wasteful and could potentially lead to
crashes because the AXObjectCache has a timer and relies on its document
to exist.
This patch provides a way to get the existing AX object cache, instead of
always creating a new one.
It moves the accessibilityEnabled() checks into the axObjectCache retrieval
for easier readability.
It adds a number of ASSERTs to vieryf that only the correct (top) document is used
for cache manipulation.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::stopCachingComputedObjectAttributes):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::~ContainerNode):
* dom/Document.cpp:
(WebCore::Document::~Document):
(WebCore::Document::clearAXObjectCache):
(WebCore::Document::existingAXObjectCache):
(WebCore::Document::axObjectCache):
(WebCore::Document::setFocusedNode):
* dom/Document.h:
(Document):
* dom/Element.cpp:
(WebCore::Element::attributeChanged):
* dom/Node.cpp:
(WebCore::Node::~Node):
(WebCore::Node::isEditableToAccessibility):
(WebCore::Node::attach):
(WebCore::Node::rootEditableElement):
(WebCore::Node::didMoveToNewDocument):
* editing/AppendNodeCommand.cpp:
(WebCore::sendAXTextChangedIgnoringLineBreaks):
* editing/DeleteFromTextNodeCommand.cpp:
(WebCore::DeleteFromTextNodeCommand::doApply):
(WebCore::DeleteFromTextNodeCommand::doUnapply):
* editing/Editor.cpp:
(WebCore::Editor::respondToChangedContents):
(WebCore::Editor::markAndReplaceFor):
* editing/InsertIntoTextNodeCommand.cpp:
(WebCore::InsertIntoTextNodeCommand::doApply):
(WebCore::InsertIntoTextNodeCommand::doUnapply):
* editing/InsertNodeBeforeCommand.cpp:
(WebCore::InsertNodeBeforeCommand::doApply):
(WebCore::InsertNodeBeforeCommand::doUnapply):
* editing/atk/FrameSelectionAtk.cpp:
(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
* editing/chromium/FrameSelectionChromium.cpp:
(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
* editing/mac/FrameSelectionMac.mm:
(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setChecked):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::optionElementChildrenChanged):
(WebCore::HTMLSelectElement::setRecalcListItems):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setInnerTextValue):
* html/InputType.cpp:
(WebCore::InputType::applyStep):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::handleKeydownEvent):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::prepareForLoadStart):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
* page/FocusController.cpp:
(WebCore::FocusController::setInitialFocus):
* page/Frame.cpp:
(WebCore::Frame::disconnectOwnerElement):
* page/FrameView.cpp:
(WebCore::FrameView::removeFromAXObjectCache):
(WebCore::FrameView::layout):
(WebCore::FrameView::scrollToAnchor):
(WebCore::FrameView::axObjectCache):
* platform/ScrollView.cpp:
(WebCore::ScrollView::setHasHorizontalScrollbar):
(WebCore::ScrollView::setHasVerticalScrollbar):
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::~Scrollbar):
(WebCore):
(WebCore::Scrollbar::existingAXObjectCache):
* platform/Scrollbar.h:
(Scrollbar):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::deleteLineBoxTree):
(WebCore::RenderBlock::createRootInlineBox):
(WebCore::RenderBlock::createAndAppendRootInlineBox):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::selectionChanged):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::addChild):
(WebCore::RenderMenuList::didUpdateActiveOption):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
(WebCore::RenderObject::willBeDestroyed):
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::removeChildNode):
(WebCore::RenderObjectChildList::insertChildNode):
* rendering/RenderText.cpp:
(WebCore::RenderText::setText):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::willBeDestroyed):
2013-03-23 Mike West <mkwst@chromium.org>
Drop full URLs from cross-origin access errors caused by sandboxing.
https://bugs.webkit.org/show_bug.cgi?id=113029
Reviewed by Timothy Hatcher.
Following up on http://wkbug.com/112042, this patch brings cross-origin
access error messages into line with the newly origin-only default
message, and changes the error message text to explicitly refer to the
missing 'allow-same-origin' sandbox flag that's the root cause of the
error.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::crossDomainAccessErrorMessage):
Note that we're using the origin of the frames' URLs rather than
their actual origin in these messages. This seems like a reasonable
thing to do, since we know that at least one of the two origins will
be "null" in this scenario.
2013-03-23 Dominic Mazzoni <dmazzoni@google.com>
Implement Web Speech Synthesis for Chromium
https://bugs.webkit.org/show_bug.cgi?id=111695
Reviewed by Adam Barth.
Straightforward implementation of speech synthesis
for Chromium by exposing interfaces for the platform
to implement.
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::boundaryEventOccurred):
(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didPauseSpeaking):
(WebCore::SpeechSynthesis::didResumeSpeaking):
(WebCore::SpeechSynthesis::didFinishSpeaking):
(WebCore::SpeechSynthesis::speakingErrorOccurred):
(WebCore):
* Modules/speech/SpeechSynthesis.h:
(SpeechSynthesis):
* Modules/speech/SpeechSynthesisUtterance.cpp:
(WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
(WebCore):
(WebCore::SpeechSynthesisUtterance::~SpeechSynthesisUtterance):
(WebCore::SpeechSynthesisUtterance::setVoice):
* Modules/speech/SpeechSynthesisUtterance.h:
(SpeechSynthesisUtterance):
(WebCore::SpeechSynthesisUtterance::text):
(WebCore::SpeechSynthesisUtterance::setText):
(WebCore::SpeechSynthesisUtterance::lang):
(WebCore::SpeechSynthesisUtterance::setLang):
(WebCore::SpeechSynthesisUtterance::volume):
(WebCore::SpeechSynthesisUtterance::setVolume):
(WebCore::SpeechSynthesisUtterance::rate):
(WebCore::SpeechSynthesisUtterance::setRate):
(WebCore::SpeechSynthesisUtterance::pitch):
(WebCore::SpeechSynthesisUtterance::setPitch):
(WebCore::SpeechSynthesisUtterance::startTime):
(WebCore::SpeechSynthesisUtterance::setStartTime):
(WebCore::SpeechSynthesisUtterance::platformUtterance):
* Modules/speech/SpeechSynthesisVoice.h:
(WebCore::SpeechSynthesisVoice::~SpeechSynthesisVoice):
* WebCore.exp.in:
* WebCore.gypi:
* platform/PlatformSpeechSynthesis.h:
(PlatformSpeechSynthesis):
* platform/PlatformSpeechSynthesisUtterance.cpp:
(WebCore):
(WebCore::PlatformSpeechSynthesisUtterance::create):
* platform/PlatformSpeechSynthesisUtterance.h:
(PlatformSpeechSynthesisUtterance):
(WebCore::PlatformSpeechSynthesisUtterance::setClient):
* platform/PlatformSpeechSynthesisVoice.cpp:
(WebCore):
(WebCore::PlatformSpeechSynthesisVoice::create):
(WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
* platform/PlatformSpeechSynthesisVoice.h:
(PlatformSpeechSynthesisVoice):
(WebCore::PlatformSpeechSynthesisVoice::setVoiceURI):
(WebCore::PlatformSpeechSynthesisVoice::setName):
(WebCore::PlatformSpeechSynthesisVoice::setLang):
(WebCore::PlatformSpeechSynthesisVoice::setLocalService):
(WebCore::PlatformSpeechSynthesisVoice::setIsDefault):
* platform/PlatformSpeechSynthesizer.cpp:
(WebCore::PlatformSpeechSynthesizer::create):
(WebCore::PlatformSpeechSynthesizer::setVoiceList):
(WebCore):
* platform/PlatformSpeechSynthesizer.h:
(WebKit):
(PlatformSpeechSynthesizerClient):
(PlatformSpeechSynthesizer):
* platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Added.
(WebCore):
(WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
(WebCore::PlatformSpeechSynthesizer::speak):
(WebCore::PlatformSpeechSynthesizer::pause):
(WebCore::PlatformSpeechSynthesizer::resume):
(WebCore::PlatformSpeechSynthesizer::cancel):
* platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Added.
(WebKit):
(WebKit::WebSpeechSynthesisUtterance::WebSpeechSynthesisUtterance):
(WebKit::WebSpeechSynthesisUtterance::operator=):
(WebKit::WebSpeechSynthesisUtterance::assign):
(WebKit::WebSpeechSynthesisUtterance::reset):
(WebKit::WebSpeechSynthesisUtterance::operator PassRefPtr<PlatformSpeechSynthesisUtterance>):
(WebKit::WebSpeechSynthesisUtterance::operator PlatformSpeechSynthesisUtterance*):
(WebKit::WebSpeechSynthesisUtterance::text):
(WebKit::WebSpeechSynthesisUtterance::lang):
(WebKit::WebSpeechSynthesisUtterance::voice):
(WebKit::WebSpeechSynthesisUtterance::volume):
(WebKit::WebSpeechSynthesisUtterance::rate):
(WebKit::WebSpeechSynthesisUtterance::pitch):
(WebKit::WebSpeechSynthesisUtterance::startTime):
* platform/chromium/support/WebSpeechSynthesisVoice.cpp: Added.
(WebKit):
(WebKit::WebSpeechSynthesisVoice::assign):
(WebKit::WebSpeechSynthesisVoice::reset):
(WebKit::WebSpeechSynthesisVoice::setVoiceURI):
(WebKit::WebSpeechSynthesisVoice::setName):
(WebKit::WebSpeechSynthesisVoice::setLanguage):
(WebKit::WebSpeechSynthesisVoice::setIsLocalService):
(WebKit::WebSpeechSynthesisVoice::setIsDefault):
(WebKit::WebSpeechSynthesisVoice::operator PassRefPtr<WebCore::PlatformSpeechSynthesisVoice>):
* platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Added.
(WebCore):
(WebCore::WebSpeechSynthesizerClientImpl::WebSpeechSynthesizerClientImpl):
(WebCore::WebSpeechSynthesizerClientImpl::~WebSpeechSynthesizerClientImpl):
(WebCore::WebSpeechSynthesizerClientImpl::setVoiceList):
(WebCore::WebSpeechSynthesizerClientImpl::didStartSpeaking):
(WebCore::WebSpeechSynthesizerClientImpl::didFinishSpeaking):
(WebCore::WebSpeechSynthesizerClientImpl::didPauseSpeaking):
(WebCore::WebSpeechSynthesizerClientImpl::didResumeSpeaking):
(WebCore::WebSpeechSynthesizerClientImpl::speakingErrorOccurred):
(WebCore::WebSpeechSynthesizerClientImpl::wordBoundaryEventOccurred):
(WebCore::WebSpeechSynthesizerClientImpl::sentenceBoundaryEventOccurred):
* platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Added.
(WebCore):
(WebSpeechSynthesizerClientImpl):
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
(WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
(WebCore):
(WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::speak):
* platform/mock/PlatformSpeechSynthesizerMock.cpp:
(WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
(WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
(WebCore::PlatformSpeechSynthesizerMock::speak):
* platform/mock/PlatformSpeechSynthesizerMock.h:
(PlatformSpeechSynthesizerMock):
2013-03-23 Daniel Cheng <dcheng@chromium.org>
[Qt] editing/pasteboard/can-read-in-dragstart-event.html and /can-read-in-copy-and-cut-events.html are crashing
https://bugs.webkit.org/show_bug.cgi?id=113126
Reviewed by Ryosuke Niwa.
The ClipboardQt implementation only allows reading or writing, not both. Attempting to read
when the clipboard is only writable will lead to a crash since the corresponding member will
be null. To prevent crashes, change the asserts to early returns. In the long term, the
correct fix is to unify the m_readableData and m_writableData members.
No new tests since no functionality in Qt port should change.
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::getData):
(WebCore::ClipboardQt::types):
(WebCore::ClipboardQt::files):
2013-03-23 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][Regression] webkit_dom_html_table_element_insert_row returns value that doesn't pass WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT macro
https://bugs.webkit.org/show_bug.cgi?id=111714
Reviewed by Martin Robinson.
Add custom kit implementation for HTMLElements so that the HTML
wrappers are used in that case instead of wrapHTMLElement.
* bindings/gobject/WebKitDOMBinding.cpp:
(WebKit::kit):
(WebKit):
* bindings/gobject/WebKitDOMBinding.h:
(WebCore):
(WebKit):
* bindings/scripts/CodeGeneratorGObject.pm:
(UsesManualKitImplementation):
2013-03-23 David Kilzer <ddkilzer@apple.com>
Revert "BUILD FIX (r146667): ResourceRequest constructor in SynchronousLoaderClient.cpp is ambiguous on iOS"
This is platform-agnositic code, so the previous solution won't work.
* platform/network/SynchronousLoaderClient.cpp:
(WebCore::SynchronousLoaderClient::willSendRequest):
2013-03-23 David Kilzer <ddkilzer@apple.com>
BUILD FIX (r146667): ResourceRequest constructor in SynchronousLoaderClient.cpp is ambiguous on iOS
Fixes the following build failure:
Source/WebCore/platform/network/SynchronousLoaderClient.cpp:52:15: error: conversion from 'int' to 'const WebCore::ResourceRequest' is ambiguous
request = 0;
^
In file included from Source/WebCore/platform/network/SynchronousLoaderClient.cpp:30:
In file included from Source/WebCore/platform/network/ResourceHandle.h:37:
In file included from Source/WebCore/platform/network/ios/QuickLook.h:13:
Source/WebCore/platform/network/cf/ResourceRequest.h:79:9: note: candidate constructor
ResourceRequest(NSURLRequest *);
^
Source/WebCore/platform/network/cf/ResourceRequest.h:83:9: note: candidate constructor
ResourceRequest(CFURLRequestRef cfRequest)
^
1 error generated.
* platform/network/SynchronousLoaderClient.cpp:
(WebCore::SynchronousLoaderClient::willSendRequest): If
USE(CFNETWORK) is defined, use static_cast<CFURLRequestRef>(0),
otherwise use static_cast<NSURLRequest *>(0).
2013-03-23 David Kilzer <ddkilzer@apple.com>
BUILD FIX (r146687): setDefaultMIMEType() is unused in ResourceHandleCFNet.cpp on iOS
Fixes the following build failure:
Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp:98:13: error: unused function 'setDefaultMIMEType' [-Werror,-Wunused-function]
static void setDefaultMIMEType(CFURLResponseRef response)
^
1 error generated.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::setDefaultMIMEType): Add #if !PLATFORM(MAC)/#endif
guard.
2013-03-21 Kiran Muppala <cmuppala@apple.com>
Add runtime setting for hidden page DOM timer throttling and CSS animation suspension
https://bugs.webkit.org/show_bug.cgi?id=112308
Reviewed by Gavin Barraclough.
No new tests. Only adding settings to enable/disable existing features
and hence existing tests suffice.
* WebCore.exp.in:
* page/Page.cpp:
(WebCore::Page::setVisibilityState): Check if DOM timer throttling
and CSS animation suspension are enabled before turning them on.
(WebCore::Page::hiddenPageDOMTimerThrottlingStateChanged): Start or stop
DOM timer throttling based on page visibility and the new setting state.
(WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged): Ditto
for CSS animation suspension.
* page/Page.h:
* page/Settings.cpp:
(WebCore::Settings::Settings): Initialize the flags for enabling hidden
page DOM timer throttling and CSS animation suspension to false.
(WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled): Update flag
and notify page that the state of the setting has changed.
(WebCore::Settings::setHiddenPageCSSAnimationSuspensionEnabled): Ditto.
* page/Settings.h:
(WebCore::Settings::hiddenPageDOMTimerThrottlingEnabled):
(WebCore::Settings::hiddenPageCSSAnimationSuspensionEnabled):
2013-03-22 Benjamin Poulain <bpoulain@apple.com>
Remove 2 bad branches from StringHash::equal() and CaseFoldingHash::equal()
https://bugs.webkit.org/show_bug.cgi?id=113003
Reviewed by Eric Seidel.
Fix two unfortunate use of StringHash and use the correct StringImpl function.
* html/parser/HTMLParserIdioms.cpp:
(WebCore::threadSafeEqual):
* html/parser/HTMLTreeBuilderSimulator.cpp:
(WebCore::tokenExitsSVG):
2013-03-22 Andy Estes <aestes@apple.com>
Set the cache partition property on CFURLRequests
https://bugs.webkit.org/show_bug.cgi?id=113116
Patch by Jeffrey Pfau
Reviewed by David Kilzer.
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdateResourceRequest):
2013-03-22 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] content-sized row tracks with percentage logical height grid items don't resolve properly
https://bugs.webkit.org/show_bug.cgi?id=113085
Reviewed by Tony Chang.
The core issue is that because overrideContainingBlockLogicalHeight() is unset in
logicalContentHeightForChild, RenderBox::computePercentageLogicalHeight would try to
resolve percentage logical height against the grid element (wrong containing block
as a grid item's containing block is the grid area).
Tests: fast/css-grid-layout/grid-item-multiple-minmax-content-resolution.html
fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-resolution.html
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::logicalContentHeightForChild):
Set our override logical height to -1, so that we don't try to constrain a grid item's logical height
based on resolving (badly) its percentage.
2013-03-19 Zhenyao Mo <zmo@google.com>
Check WEBGL_draw_buffers requirements before exposing the extension
https://bugs.webkit.org/show_bug.cgi?id=112359
Reviewed by Kenneth Russell.
* html/canvas/EXTDrawBuffers.cpp:
(WebCore::EXTDrawBuffers::supported): call satisfies*().
(WebCore::EXTDrawBuffers::drawBuffersEXT):
(WebCore):
(WebCore::EXTDrawBuffers::satisfiesWebGLRequirements): check WebGL requirements.
* html/canvas/EXTDrawBuffers.h:
(EXTDrawBuffers):
* html/canvas/WebGLFramebuffer.cpp:
(WebCore::WebGLFramebuffer::getDrawBuffer):
(WebCore):
* html/canvas/WebGLFramebuffer.h:
(WebGLFramebuffer):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::initializeNewContext):
(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getParameter):
(WebCore::WebGLRenderingContext::getSupportedExtensions):
(WebCore::WebGLRenderingContext::validateFramebufferFuncParameters):
(WebCore::WebGLRenderingContext::getMaxDrawBuffers):
(WebCore::WebGLRenderingContext::getMaxColorAttachments):
(WebCore::WebGLRenderingContext::setBackDrawBuffer):
(WebCore::WebGLRenderingContext::restoreCurrentFramebuffer):
(WebCore::WebGLRenderingContext::restoreCurrentTexture2D):
(WebCore::WebGLRenderingContext::supportsDrawBuffers): a cached version of EXTDrawBuffers::supports()
* html/canvas/WebGLRenderingContext.h:
(WebGLRenderingContext):
2013-03-22 Roger Fong <roger_fong@apple.com>
Unreviewed. Fix AppleWin port following https://bugs.webkit.org/show_bug.cgi?id=113100.
Patch by Alexey Proskuryakov.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
2013-03-22 Tony Chang <tony@chromium.org>
REGRESSION (r146272): layout issues for flex boxes that have -webkit-flex-wrap: wrap
https://bugs.webkit.org/show_bug.cgi?id=113071
Reviewed by Ojan Vafai.
The refactor in r139535 introduced this bug, where a variable name wasn't updated properly.
In combination with r146272, this bug became more visible when nesting multiline flexboxen.
Test: css3/flexbox/multiline-min-preferred-width.html
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths): We want the width of the widest
flexitem, the value in m_minPreferredWidth isn't relevant. Also update the comment for max
preferred width.
2013-03-22 Max Vujovic <mvujovic@adobe.com>
[CSS Shaders] Clamp css_MixColor before the blending and compositing steps
https://bugs.webkit.org/show_bug.cgi?id=113088
Reviewed by Dean Jackson.
The blending and compositing operations from the spec [1] expect that they are operating on
valid color inputs, in the range [0.0, 1.0]. Thus, we should clamp the css_MixColor input to
this range to avoid implementation-dependent behavior for invalid color inputs.
[1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blending
Tests: css3/filters/custom/custom-filter-clamp-css-mix-color-negative.html
css3/filters/custom/custom-filter-clamp-css-mix-color.html
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
Clamp css_MixColor as clampedMixColor before using it in the blending and compositing
steps.
2013-03-19 Martin Robinson <mrobinson@igalia.com>
[GTK] Add WebCoreDOM to the gyp build
https://bugs.webkit.org/show_bug.cgi?id=112737
Reviewed by Nico Weber.
* WebCore.gyp/WebCoreGTK.gyp: Add WebCoreDOM to the gyp build.
2013-03-19 Martin Robinson <mrobinson@igalia.com>
[GTK] Add WebCoreHTML to the gyp build
https://bugs.webkit.org/show_bug.cgi?id=112727
Reviewed by Nico Weber.
* WebCore.gyp/WebCoreGTK.gyp: Add support for building all files under
the HTML directory. This includes splitting off common WebCore dependencies
into an aggregate target and adding a top-level WebCore target.
2013-03-22 Tim Horton <timothy_horton@apple.com>
Plugin Snapshotting: Auto-start dominant plugins
https://bugs.webkit.org/show_bug.cgi?id=113111
<rdar://problem/13475726>
Reviewed by Dean Jackson.
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::defaultEventHandler):
Acknowledge the new "Restarting" DisplayState.
* html/HTMLPlugInElement.h:
Rename PlayingWithPendingMouseClick to RestartingWithPendingMouseClick for accuracy.
Add "Restarting" DisplayState, so we can be aware that the plugin is intentionally restarting and not re-snapshot it.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Remove m_isPrimarySnapshottedPlugIn.
(WebCore::classNameForShadowRoot): Remove m_isPrimarySnapshottedPlugIn.
(WebCore::HTMLPlugInImageElement::setIsPrimarySnapshottedPlugIn): Restart the plugin when it becomes primary.
(WebCore::HTMLPlugInImageElement::updateSnapshotInfo): Remove m_isPrimarySnapshottedPlugIn.
(WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn):
Move the plugin to Restarting unless it's already marked as PendingMouseClick.
(WebCore::HTMLPlugInImageElement::simulatedMouseClickTimerFired): Match the PlayingWithPendingMouseClick rename.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Don't snapshot if we're restarting.
* html/HTMLPlugInImageElement.h: Remove m_isPrimarySnapshottedPlugIn.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::paint): Acknowledge the new "Restarting" DisplayState.
(WebCore::RenderSnapshottedPlugIn::getCursor): Acknowledge the new "Restarting" DisplayState.
(WebCore::RenderSnapshottedPlugIn::handleEvent): Match the PlayingWithPendingMouseClick rename.
2013-03-19 Martin Robinson <mrobinson@igalia.com>
[GTK] Add support for building the WebCore bindings to the gyp build
https://bugs.webkit.org/show_bug.cgi?id=112638
Reviewed by Nico Weber.
Add targets, actions, and rules for building the WebCore bindings. This is
the first part of the WebCoreGTK build.
* WebCore.gyp/ConvertFileToHeaderWithCharacterArray.gypi: Added.
* WebCore.gyp/MakeNames.gypi: Added.
* WebCore.gyp/WebCoreGTK.gyp: Added WebCore bindings build. This has been adapted
from the Chromium build.
* WebCore.gypi: Updated list of derived sources files and added a parameter
for adjusting the location of the built files. We don't want to force the
Mac build to change, but we'd still like to reuse the scripts that the
Chromium build uses.
2013-03-22 Dane Wallinga <dgwallinga@chromium.org>
Add client callbacks to notify of changes of associated from controls
https://bugs.webkit.org/show_bug.cgi?id=110375
Reviewed by Ryosuke Niwa.
Hook FormAssociatedElement, HTMLFormElement to notify EditorClient of form changes after a page has loaded.
Will be used to add autofill support for ajax-y webpages. e.g if while filling out a form, new fields
are dynamically created, autofill can know to re-query the autofill server and keep going.
https://bugs.webkit.org/show_bug.cgi?id=110375
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::didAssociateFormControl):
(WebCore):
(WebCore::Document::didAssociateFormControlsTimerFired):
* dom/Document.h:
(Document):
added method didAssociateFormControl, which batches form changes
and calls out to ChromeClient on a timer.
* html/FormAssociatedElement.cpp:
(WebCore::FormAssociatedElement::resetFormOwner):
(WebCore::FormAssociatedElement::formAttributeChanged):
(WebCore):
* html/FormAssociatedElement.h:
(FormAssociatedElement):
add calls to Document::didAssociateFormControl when form changes
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::insertedInto):
(WebCore):
* html/HTMLFormElement.h:
add call to Document::didAssociateFormControl
* loader/EmptyClients.h:
(EmptyChromeClient):
(WebCore::EmptyChromeClient::didAssociateFormControls):
(WebCore::EmptyChromeClient::shouldNotifyOnFormChanges):
* page/ChromeClient.h:
(ChromeClient):
add new method didAssociateFormControls
2013-03-22 Alexey Proskuryakov <ap@apple.com>
Split ResourceHandleMac into multiple files
https://bugs.webkit.org/show_bug.cgi?id=113100
Reviewed by Geoff Garen.
It's grown too big to navigate, and I'm going to make WebCoreResourceHandleAsDelegate
substantially more complicated yet.
1. Mechanically moved WebCoreResourceHandleAsDelegate into separate files.
2. Refactored WebCoreSynchronousLoaderClient to be cross-platform, and moved it into
separate files.
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/network/SynchronousLoaderClient.cpp: Added.
* platform/network/SynchronousLoaderClient.h: Added.
* platform/network/cf/ResourceHandleCFNet.cpp:
* platform/network/mac/SynchronousLoaderClient.mm: Added.
* platform/network/mac/WebCoreResourceHandleAsDelegate.h: Added.
* platform/network/mac/WebCoreResourceHandleAsDelegate.mm: Added.
2013-03-21 Geoffrey Garen <ggaren@apple.com>
Added a setting for whether JavaScript markup is enabled
https://bugs.webkit.org/show_bug.cgi?id=112999
Reviewed by Maciej Stachowiak.
This setting is useful for clients that want protection from script
injection attacks.
* page/Settings.h:
(Settings): Clarified which clients should call canExecuteScripts().
* page/Settings.in: Added the new setting.
2013-03-22 Roger Fong <roger_fong@apple.com>
Unreviewed build fix.
* bindings/scripts/preprocessor.pm:
(applyPreprocessor):
2013-03-22 Roger Fong <roger_fong@apple.com>
Unreviewed. Force kill gcc-3.exe during bindings generation tests to avoid process hangs.
This problem is occuring on the WinEWS bots where there are somehow multiple gcc-3 processes existing at the same time.
This is a speculative fix. There should only be 1 gcc-3.exe process running at a time ever.
* bindings/scripts/preprocessor.pm:
(applyPreprocessor):
2013-03-22 Eric Carlson <eric.carlson@apple.com>
Cleanup text track selection logic
https://bugs.webkit.org/show_bug.cgi?id=113062
Reviewed by Jer Noble.
No new tests, covered by existing tests.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Remove.
(WebCore::HTMLMediaElement::configureTextTrackGroup): Don't look at track attributes directly,
use captionPreferences->textTrackSelectionScore to calculate track rank.
(WebCore::HTMLMediaElement::setClosedCaptionsVisible): Set m_processingPreferenceChange here
instead of in captionPreferencesChanged.
(WebCore::HTMLMediaElement::captionPreferencesChanged): Don't suppress calls to setClosedCaptionsVisible,
existing code already makes sure we don't do unnecessary work.
* html/HTMLMediaElement.h:
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Drive by cleanup, don't
process inactive cues.
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::changedClosedCaptionsVisibility): Call resetTrackListMenu instead
of updateDisplay so we only mark the menu as needing a recalculation and do the work when
it is displayed.
* page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::shouldShowCaptions): When in testing mode, return true if
the caption or subtitle preference has been set.
(WebCore::CaptionUserPreferences::setShouldShowCaptions): In testing mode, clear the caption
and subtitle preference when passed false.
(WebCore::CaptionUserPreferences::textTrackSelectionScore): Calculate the track score based on
track type preference and preferred language.
(WebCore::CaptionUserPreferences::textTrackLanguageSelectionScore): Score a track according to
the language presence and position in the preferred languages list.
* page/CaptionUserPreferences.h:
* page/CaptionUserPreferencesMac.h:
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::textTrackSelectionScore): Calculate track language score
according to user preferences.
* platform/Language.cpp:
(WebCore::indexOfBestMatchingLanguageInList): Repurposed the static bestMatchingLanguage
function to return the location of a language in a Vector.
(WebCore::preferredLanguageFromList): Removed.
* platform/Language.h:
2013-03-22 ChangSeok Oh <changseok.oh@collabora.com>
Build fix for TransformationMatrix
https://bugs.webkit.org/show_bug.cgi?id=113087
Reviewed by Martin Robinson.
This is a trivial build fix for clutter ac backend. Clutter AC backend doesn't use
TextureMapper so there is nowhere including TransformationMatrix.h.
For the reason, we include it explicitly.
No new tests because of no functionality change.
* platform/graphics/clutter/GraphicsContext3DPrivate.cpp:
* platform/graphics/clutter/GraphicsContext3DPrivate.h:
(WebCore):
2013-03-22 Steve Block <steveblock@chromium.org>
Coordinates.idl lacks Conditional=GEOLOCATION
https://bugs.webkit.org/show_bug.cgi?id=112949
Reviewed by Steve Block.
No new tests, build optimization only.
* page/Coordinates.idl: Added GEOLOCATION conditional guard.
2013-03-22 Daniel Cheng <dcheng@chromium.org>
Data store should be readable in dragstart/copy/cut events
https://bugs.webkit.org/show_bug.cgi?id=23695
Reviewed by Tony Chang.
There were several events where data could be written but not read back due to the fact that
different Clipboard method implementations checked permissions inconsistently. This patch
adds helper methods to check if an operation is permitted on a Clipboard and refactors all
direct comparisons against Clipboard::m_policy to use the new helpers instead. This fixes
several bugs where Clipboard::types and Clipboard::getData are not usable inside the
aforementioned events.
Tests: editing/pasteboard/can-read-in-copy-and-cut-events.html
editing/pasteboard/can-read-in-dragstart-event.html
* dom/Clipboard.cpp:
(WebCore::Clipboard::canReadTypes): Formerly restricted to ClipboardReadable and
ClipboardTypesReadable; now allows ClipboardWritable as
well.
(WebCore::Clipboard::canReadData): Formerly restricted to ClipboardReadable; now allows
ClipboardWritable as well.
(WebCore::Clipboard::canWriteData):
(WebCore::Clipboard::canSetDragImage):
(WebCore::Clipboard::hasFileOfType):
(WebCore::Clipboard::hasStringOfType):
(WebCore::Clipboard::setDropEffect):
(WebCore::Clipboard::setEffectAllowed):
* dom/Clipboard.h:
(Clipboard):
* platform/blackberry/ClipboardBlackBerry.cpp:
(WebCore::ClipboardBlackBerry::clearData):
(WebCore::ClipboardBlackBerry::clearAllData):
(WebCore::ClipboardBlackBerry::getData):
(WebCore::ClipboardBlackBerry::setData):
(WebCore::ClipboardBlackBerry::types):
* platform/chromium/ClipboardChromium.cpp:
(WebCore::DataTransferItemPolicyWrapper::kind):
(WebCore::DataTransferItemPolicyWrapper::type):
(WebCore::DataTransferItemPolicyWrapper::getAsString):
(WebCore::DataTransferItemPolicyWrapper::getAsFile):
(WebCore::ClipboardChromium::clearData):
(WebCore::ClipboardChromium::clearAllData):
(WebCore::ClipboardChromium::getData):
(WebCore::ClipboardChromium::setData):
(WebCore::ClipboardChromium::types):
(WebCore::ClipboardChromium::files):
(WebCore::ClipboardChromium::setDragImage):
* platform/gtk/ClipboardGtk.cpp:
(WebCore::ClipboardGtk::clearData):
(WebCore::ClipboardGtk::clearAllData):
(WebCore::ClipboardGtk::getData):
(WebCore::ClipboardGtk::setData):
(WebCore::ClipboardGtk::types):
(WebCore::ClipboardGtk::files):
(WebCore::ClipboardGtk::setDragImage):
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::clearData):
(WebCore::ClipboardMac::clearAllData):
(WebCore::ClipboardMac::getData):
(WebCore::ClipboardMac::setData):
(WebCore::ClipboardMac::types):
(WebCore::ClipboardMac::files):
(WebCore::ClipboardMac::setDragImage):
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::clearData):
(WebCore::ClipboardQt::clearAllData):
(WebCore::ClipboardQt::getData):
(WebCore::ClipboardQt::setData):
(WebCore::ClipboardQt::types):
(WebCore::ClipboardQt::files):
(WebCore::ClipboardQt::setDragImage):
(WebCore::ClipboardQt::items):
* platform/qt/DataTransferItemListQt.cpp:
(WebCore::DataTransferItemListQt::length):
(WebCore::DataTransferItemListQt::item):
(WebCore::DataTransferItemListQt::deleteItem):
(WebCore::DataTransferItemListQt::clear):
(WebCore::DataTransferItemListQt::add):
* platform/qt/DataTransferItemQt.cpp:
(WebCore::DataTransferItemQt::getAsString):
* platform/win/ClipboardWin.cpp:
(WebCore::ClipboardWin::clearData):
(WebCore::ClipboardWin::clearAllData):
(WebCore::ClipboardWin::getData):
(WebCore::ClipboardWin::setData):
(WebCore::ClipboardWin::types):
(WebCore::ClipboardWin::files):
(WebCore::ClipboardWin::setDragImage):
2013-03-22 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Remove pushLayoutState(RenderFlowThread*) from RenderView
https://bugs.webkit.org/show_bug.cgi?id=113084
Reviewed by Dirk Schulze.
Remove void pushLayoutState(RenderFlowThread*, bool regionsChanged) from RenderView.h because it's not used.
Tests: Code cleanup. No tests needed.
* rendering/RenderView.h:
(RenderView):
2013-03-22 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL] Fix build issues to enable CSS Filter and Shaders support.
https://bugs.webkit.org/show_bug.cgi?id=111274
Reviewed by Noam Rosenthal.
This is in preperation to enable CSS Filter and Shaders support.
This patch fixes related build issues to enable the support.
* platform/graphics/surfaces/efl/GLTransportSurface.cpp:
* platform/graphics/texmap/TextureMapper.cpp:
* platform/graphics/texmap/TextureMapper.h:
(WebCore):
* platform/graphics/texmap/TextureMapperGL.cpp:
* platform/graphics/texmap/TextureMapperGL.h:
(WebCore):
* platform/graphics/texmap/TextureMapperShaderProgram.h:
2013-03-22 Matt Falkenhagen <falken@chromium.org>
Implement isEnabledFormControl() for SliderThumbElement and SpinButtonElement in terms of disabled()
https://bugs.webkit.org/show_bug.cgi?id=112993
Reviewed by Kent Tamura.
This is an intermediate step for refactoring Node::disabled and
Element::isEnabledFormControl. All classes that override
isEnabledFormControl just return !disabled(), except for
SliderThumbElement and SpinButtonElement. This patch changes those two
classes to do so, which shows that the two functions are redundant and
easy to refactor into a single function in a subsequent patch.
No new tests, there should be no behavior change.
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::disabled):
(WebCore):
(WebCore::SliderThumbElement::isEnabledFormControl):
* html/shadow/SliderThumbElement.h:
(SliderThumbElement):
* html/shadow/SpinButtonElement.h: The check of shadowHost() is
necessary because it can be detached by JavaScript that runs during
event handling (see r76566)
2013-03-22 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] New fast/text/word-space-with-kerning-3.html fails on Qt.
https://bugs.webkit.org/show_bug.cgi?id=112668
Reviewed by Jocelyn Turcotte.
Qt adds word-spacing to leading spaces, but WebCore only expects
us to add for trailing spaces. We only corrected for this in width
calculation but do need to also do it for drawing.
Instead of subtracting the extra word-spacing we now configure the
FormatRange not to apply to leading spaces. This means this behavior
will be applied everywhere reliably.
* platform/graphics/Font.h:
(Font):
* platform/graphics/qt/FontQt.cpp:
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
(WebCore::Font::selectionRectForComplexText):
(WebCore::Font::initFormatForTextLayout):
2013-03-22 Joshua Bell <jsbell@chromium.org>
REGRESSION (r146540?): Crashes in storage/indexeddb/factory-basics-workers.html, storage/indexeddb/transaction-error.html
https://bugs.webkit.org/show_bug.cgi?id=113019
Reviewed by Tony Chang.
Also manifesting flakily under Chromium's content_shell. It's an ASSERT being hit in
the IDBTransaction destructor. The cause was r146540 which allows a stopped context
to reclaim script wrappers. This allows the IDBTransaction to be deref'd at times where
it previously would have just leaked. Modulate the destructor assertions to account
for this case.
No new tests; failures already manifest as flaky crashes in some ports.
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::~IDBTransaction): If context is stopped, expected state
transitions/cleanup may not have occurred before destructor runs.
2013-03-22 David Grogan <dgrogan@chromium.org>
IndexedDB: Histogram available disk space on attempt to open database
https://bugs.webkit.org/show_bug.cgi?id=112862
Reviewed by Tony Chang.
ChromeOS suspects they might be hitting disk corruption when the disks
are nearly full. This patch logs the available space to either the
"success" or the "fail" histogram as appropriate so that the
distributions can be compared.
No new tests - I don't know of a good way to test histograms. Local
printf testing didn't turn up any bugs.
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::HistogramFreeSpace):
(WebCore):
(WebCore::LevelDBDatabase::open):
2013-03-22 Nate Chapin <japhet@chromium.org>
REGRESSION (r146239): Reproducible crash in WebCore::DocumentLoader::responseReceived.
https://bugs.webkit.org/show_bug.cgi?id=112811
Reviewed by Brady Eidson.
Test: http/tests/cache/x-frame-options-304.html
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::switchClientsToRevalidatedResource):
* loader/cache/CachedRawResource.h:
2013-03-22 Jer Noble <jer.noble@apple.com>
REGRESSION: -webkit-box-reflect does not show on video elements
https://bugs.webkit.org/show_bug.cgi?id=112397
Reviewed by Eric Carlson.
Work around the ASSERTs generated when setting an AVPlayerLayer's player property
during a CA flush by setting the player property during the next runloop, outside
of a CA flush.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::clone):
2013-03-22 peavo@outlook.com <peavo@outlook.com>
[Curl] Performance fix, avoid loading cookie file on every request.
https://bugs.webkit.org/show_bug.cgi?id=113023
Reviewed by Brent Fulgham.
We currently load the cookie file on every request, and when setting cookies from JavaScript, by using the option CURLOPT_COOKIEFILE.
This is very inefficient as the cookie file can get quite large, and file I/O is slow.
It is sufficient to load the cookie file on startup, as we use a shared cookie database between the requests.
* platform/network/curl/CookieJarCurl.cpp:
(WebCore::setCookiesFromDOM): Avoid loading cookie file when setting cookies from JavaScript.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::initializeHandle): Avoid loading cookie file on every request.
(WebCore::ResourceHandleManager::initCookieSession): Load the cookie file to shared database on startup.
2013-03-22 Tiancheng Jiang <tijiang@rim.com>
[BlackBerry] Update Input field Background Color
https://bugs.webkit.org/show_bug.cgi?id=113063
Reviewed by George Staikos.
RIM PR 307463.
Internally reviewed by Ed Baker.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::RenderThemeBlackBerry::paintTextFieldOrTextAreaOrSearchField):
2013-03-22 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: FlameChart. Draw function names over flame chart bar if they fit into the bar.
https://bugs.webkit.org/show_bug.cgi?id=113052
Reviewed by Vsevolod Vlasov.
The draw function will draw the bar title if the text is less than bar width.
Unfortunately almost all the projects which need to be profiled
use long function names with dots. So if the function name has dots and
doesn't fit into the space then prepareTitle will try to drop the prefix before dot.
If the title has no dots then the function will strip the tail of the title.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart):
(WebInspector.FlameChart.prototype.draw):
(WebInspector.FlameChart.prototype._prepareTitle):
2013-03-22 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Add "hidden" attribute to the recently added APIs in Inspector.json
https://bugs.webkit.org/show_bug.cgi?id=113061
Added "hidden": true to the APIs introduced since version 1.0.
Reviewed by Pavel Feldman.
* inspector/Inspector.json:
2013-03-22 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Correctly implement scrollToLine, revealLine and setSelection on CodeMirror editor.
https://bugs.webkit.org/show_bug.cgi?id=113028
Reviewed by Pavel Feldman.
Added focus event handler to CodeMirror editor view elememnt to support inspector's focus model.
Added selection and scroll listeners to correctly save editor scroll and selection in history.
Implemented revealLine, scrollToLine and setSelection.
Note: CodeMirror's coordsChar method does not work correctly in "local" mode, implemented as binary search
as a temporary workaround.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor):
(WebInspector.CodeMirrorTextEditor.prototype.defaultFocusedElement):
(WebInspector.CodeMirrorTextEditor.prototype._handleElementFocus):
(WebInspector.CodeMirrorTextEditor.prototype.revealLine):
(WebInspector.CodeMirrorTextEditor.prototype._coordsChar):
(WebInspector.CodeMirrorTextEditor.prototype._topScrolledLine):
(WebInspector.CodeMirrorTextEditor.prototype._bottomScrolledLine):
(WebInspector.CodeMirrorTextEditor.prototype._scroll):
(WebInspector.CodeMirrorTextEditor.prototype._selectionChange):
(WebInspector.CodeMirrorTextEditor.prototype.scrollToLine):
(WebInspector.CodeMirrorTextEditor.prototype.setSelection):
(WebInspector.CodeMirrorTextEditor.prototype.copyRange):
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor.prototype.copyRange):
2013-03-22 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: [Regression] Editor scroll is not restored after inspector reload.
https://bugs.webkit.org/show_bug.cgi?id=113027
Reviewed by Pavel Feldman.
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype.wasShown):
(WebInspector.SourceFrame.prototype._isEditorShowing):
(WebInspector.SourceFrame.prototype._innerHighlightLineIfNeeded):
(WebInspector.SourceFrame.prototype._innerRevealLineIfNeeded):
(WebInspector.SourceFrame.prototype._innerScrollToLineIfNeeded):
(WebInspector.SourceFrame.prototype._innerSetSelectionIfNeeded):
2013-03-22 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Fix build with OPENCL 1.2
https://bugs.webkit.org/show_bug.cgi?id=113056
Reviewed by Kenneth Rohde Christiansen.
Switch qmake checks to the modern style which means we can enable OpenCL with
WEBKIT_CONFIG+=opencl.
Upgrade OpenCL 1.1 clCreateImage2D to OpenCL 1.2 clCreateImage calls.
* Target.pri:
* WebCore.pri:
* platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::createOpenCLImageResult):
* platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
(WebCore::FilterContextOpenCL::createOpenCLImage):
2013-03-22 ChangSeok Oh <changseok.oh@collabora.com>
[GTK][AC] Opacity animation doesn't work with clutter backend
https://bugs.webkit.org/show_bug.cgi?id=110347
Reviewed by Gustavo Noronha Silva.
The static casting in ternary operator doesn't change actual inputted argument type.
So I replaced it with if-else statement.
Covered by existing animation tests.
* platform/graphics/clutter/PlatformClutterAnimation.cpp:
(WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
(WebCore::PlatformClutterAnimation::addClutterKeyframeTransitionForProperty):
2013-03-22 ChangSeok Oh <changseok.oh@collabora.com>
[GTK][AC] Add removing animations procedure with clutter ac backend
https://bugs.webkit.org/show_bug.cgi?id=110607
Reviewed by Gustavo Noronha Silva.
This changes is based on mac port implementation. The only different thing is
that updateAnimations is called explicitly in destructor of GraphicsLayerClutter
to remove uncommitted animations. Because even though we call notifyFlushRequired
to remove existing animations in removeAnimation(), removeClutterAnimationFromLayer
has been never reached since the root layer is destroyed before. It means
that we haven't lost a change to remove actual animations from clutterActor.
Covered by existing animation tests.
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
(WebCore::GraphicsLayerClutter::removeAnimation):
(WebCore):
(WebCore::GraphicsLayerClutter::removeClutterAnimationFromLayer):
* platform/graphics/clutter/GraphicsLayerClutter.h:
(WebCore::GraphicsLayerClutter::animationIsRunning):
(GraphicsLayerClutter):
2013-03-22 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][WebGL] Optimize AlphaOp for HTMLVideoElement input.
https://bugs.webkit.org/show_bug.cgi?id=113049
Reviewed by Kenneth Rohde Christiansen.
Covered by existing tests.
Changeset 137397 implemented optimisation to avoid any
unnecessary Unmultiply or Premultiply operation in unpack/pack
provided the Image source is from HTMLVideoElement. This patch
enables the same for EFL port.
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
2013-03-22 Tommy Widenflycht <tommyw@google.com>
Clean up the speech recognintion API
https://bugs.webkit.org/show_bug.cgi?id=112916
Reviewed by Adam Barth.
This patch cleans away deprecated parts, fixes so that stop() can be called more than once and adds
the missing emma attribute on SpeechRecognitionEvent (which is always null).
Patch covered by existing tests.
* Modules/speech/SpeechRecognition.cpp:
(WebCore::SpeechRecognition::stopFunction):
(WebCore::SpeechRecognition::abort):
(WebCore::SpeechRecognition::didEnd):
(WebCore::SpeechRecognition::SpeechRecognition):
* Modules/speech/SpeechRecognition.h:
(SpeechRecognition):
* Modules/speech/SpeechRecognitionEvent.cpp:
(WebCore::SpeechRecognitionEvent::createResult):
(WebCore::SpeechRecognitionEvent::createNoMatch):
(WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
* Modules/speech/SpeechRecognitionEvent.h:
(WebCore):
(SpeechRecognitionEventInit):
(SpeechRecognitionEvent):
(WebCore::SpeechRecognitionEvent::emma):
* Modules/speech/SpeechRecognitionEvent.idl:
2013-03-22 Emil A Eklund <eae@chromium.org>
Floor cell widths in AutoTableLayout::recalcColumn
https://bugs.webkit.org/show_bug.cgi?id=112922
Reviewed by Levi Weintraub.
Table cells widths are floored to ensure even distribution of available
space across columns. The code path that computes the width of the
_table_ failed to take this into account and thus can over report the
total width of the table.
Test: fast/sub-pixel/table-with-subpixel-cell-size.html
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn): Floor width to match column sizing logic.
2013-03-22 David Kilzer <ddkilzer@apple.com>
BUILD FIX (r146208): Export shouldPrintExceptions methods for iOS
Fixes the following build failure:
Undefined symbols for architecture i386:
"__ZN7WebCore11PageConsole24setShouldPrintExceptionsEb", referenced from:
+[WebCoreStatistics setShouldPrintExceptions:] in WebCoreStatistics.o
"__ZN7WebCore11PageConsole21shouldPrintExceptionsEv", referenced from:
+[WebCoreStatistics shouldPrintExceptions] in WebCoreStatistics.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
* WebCore.exp.in: Move symbols so they're exported for iOS as
well.
2013-03-22 Yury Semikhatsky <yurys@chromium.org>
Unreviewed. Fix Chromium Win compilation after r146583.
* bindings/v8/CustomElementHelpers.cpp:
(WebCore::CustomElementHelpers::invokeReadyCallbackIfNeeded):
2013-03-22 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. Chart has to be zoomed around the mouse pointer.
https://bugs.webkit.org/show_bug.cgi?id=113031
Reviewed by Yury Semikhatsky.
Overview grid is able to zoom around the mouse pointer.
So the simplest way is to translate x coordinate of the mouse pointer hovered over the chart
to x coordinate in term of overview window and pass it to the zoom function.
Minor unrelated fix: draw small border at bottom of the overview grid.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart.prototype._onMouseWheel):
* inspector/front-end/OverviewGrid.js:
(WebInspector.OverviewGrid.prototype.zoom):
* inspector/front-end/flameChart.css:
(#flame-chart-overview-container):
2013-03-22 No'am Rosenthal <noam@webkit.org>
[Texmap] TextureMapperImageBuffer should not use rendering code for filters.
https://bugs.webkit.org/show_bug.cgi?id=113040
Reviewed by Kenneth Rohde Christiansen.
Disable TextureMapperImageBuffer filters, until they can be done the right way.
This should only disrupt accelerated filters in fallback mode, which is a very rare
use case.
No new testable functionality.
* platform/graphics/texmap/TextureMapperImageBuffer.cpp:
(WebCore::BitmapTextureImageBuffer::applyFilters):
2013-03-22 Sergey Ryazanov <serya@chromium.org>
Web Inspector: Report more CSS errors
https://bugs.webkit.org/show_bug.cgi?id=113022
Reviewed by Pavel Feldman.
Reporting next few CSS syntax errors in declaration_list.
* css/CSSGrammar.y.in:
2013-03-18 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: use individual samples to construct CPU profile flame chart
https://bugs.webkit.org/show_bug.cgi?id=112569
Reviewed by Pavel Feldman.
Added an optional array of samples to the CPU profile returned over the
protocol. Each sample is id of the profile node corresponding to the top frame
of the sample's stack trace. The array of samples if present is used to draw
the flame chart on the CPU profile panel, otherwise flame chart is drawn based
on the aggregated profile data.
* bindings/js/ScriptProfile.cpp:
(WebCore::ScriptProfile::buildInspectorObjectForSamples):
* bindings/js/ScriptProfile.h:
(ScriptProfile):
* bindings/v8/ScriptProfile.cpp:
(WebCore::buildInspectorObjectFor):
(WebCore):
(WebCore::ScriptProfile::buildInspectorObjectForSamples):
* bindings/v8/ScriptProfile.h:
(ScriptProfile):
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::start):
* inspector/Inspector.json:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::getCPUProfile):
* inspector/front-end/CPUProfileView.js:
(WebInspector.CPUProfileView.prototype._getCPUProfileCallback):
(WebInspector.CPUProfileView.prototype._buildIdToNodeMap):
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart.prototype._calculateTimelineData):
2013-03-22 Steve Block <steveblock@chromium.org>
Use generated bindings for the Coordinates type used by Geolocation
https://bugs.webkit.org/show_bug.cgi?id=112975
Reviewed by Kentaro Hara.
No new tests, refactoring only.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/geolocation/Coordinates.cpp: Renamed from Source/WebCore/bindings/js/JSCoordinatesCustom.cpp.
(WebCore):
(WebCore::Coordinates::altitude):
(WebCore::Coordinates::altitudeAccuracy):
(WebCore::Coordinates::heading):
(WebCore::Coordinates::speed):
* Modules/geolocation/Coordinates.h:
(Coordinates):
* Modules/geolocation/Coordinates.idl:
* Target.pri:
* UseJSC.cmake:
* UseV8.cmake:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/v8/custom/V8CoordinatesCustom.cpp: Removed.
2013-03-22 Kunihiko Sakamoto <ksakamoto@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Incomplete datetime format should fallback to default
https://bugs.webkit.org/show_bug.cgi?id=113005
Reviewed by Kent Tamura.
Use fallback format when datetime format from locale is not complete.
Tests: fast/forms/date-multiple-fields/date-multiple-fields-fallback-format.html
fast/forms/datetime-multiple-fields/datetime-multiple-fields-fallback-format.html
fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-fallback-format.html
fast/forms/month-multiple-fields/month-multiple-fields-fallback-format.html
fast/forms/time-multiple-fields/time-multiple-fields-fallback-format.html
fast/forms/week-multiple-fields/week-multiple-fields-fallback-format.html
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(DateTimeFormatValidator): A helper class that parses datetime format and tests existence of fields.
(WebCore::DateTimeFormatValidator::DateTimeFormatValidator):
(WebCore::DateTimeFormatValidator::visitField):
(WebCore::DateTimeFormatValidator::validateFormat): Parses datetime format and validates by calling BaseMultipleFieldsDateAndTimeInputType::isValidFormat.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Checks if dateTimeFormat is valid, and uses fallback format if not.
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType): Declare isValidFormat.
* html/DateInputType.cpp:
(WebCore::DateInputType::isValidFormat): Added.
* html/DateInputType.h:
(DateInputType):
* html/DateTimeInputType.cpp:
(WebCore::DateTimeInputType::isValidFormat): Added.
* html/DateTimeInputType.h:
(DateTimeInputType):
* html/DateTimeLocalInputType.cpp:
(WebCore::DateTimeLocalInputType::isValidFormat): Added.
* html/DateTimeLocalInputType.h:
(DateTimeLocalInputType):
* html/MonthInputType.cpp:
(WebCore::MonthInputType::isValidFormat): Added.
* html/MonthInputType.h:
(MonthInputType):
* html/TimeInputType.cpp:
(WebCore::TimeInputType::isValidFormat): Added.
* html/TimeInputType.h:
(TimeInputType):
* html/WeekInputType.cpp:
(WebCore::WeekInputType::isValidFormat): Added.
* html/WeekInputType.h:
(WeekInputType):
2013-03-22 Hajime Morrita <morrita@google.com>
Custom Elements: "readyCallback" lifecycle callback should be called.
https://bugs.webkit.org/show_bug.cgi?id=112538
Reviewed by Elliott Sprehn.
This change allows each custom element definition to hook up its instantiation,
namely "readyCallback" lifecycle callback.
The change has two parts:
- 1. Tracking which Element objects to be created.
- 2. Invoking appropriate JavaScript functions, which are readyCallback(),
before the Element object is visible from page script.
For 1, CustomElementRegistry maintains list of "callback
invocaions". Each list item ("invocation") tracks the element
which has a lifecycle callback to be invoked. Each invocation is
registered when - Any custom element C++ object is instantiated.
See changes on CustomElementConstructor.cpp.
This also happens when @is attribute is set by the parser or node
cloning routine, which can turn a non-custom element into a
type-extended custom element. See changes on Element.cpp.
For 2, CustomElementRegistry basically follows what
MutationObserver is doing, and introduces a method called
deliverLifecycleCallbacks(). This function flushes all pending
callback invocations. You can think it as a dual of
MutationObserver::deliverAllMutations().
The delivery function is called places where MutationObserver's
deliverAllMutations() is called. In addition, it is also called
just before returning from a set of DOM APIs. For example, it is
called just before createElement() returns, so that possibly
created custom element becomes ready through its readyCallback().
Such APIs get "V8DeliverCustomElementCallbacks" IDL attribute. In
principle, APIs which can create new custom element instnaces are
marked. See CustomElementRegistry::CallbackDeliveryScope and
changes on CodeGeneratorV8.pm.
We need this extra work because the readyCallback() needs to give
an illusion so that JavaScript programmers feel like the
readyCallback() callback being called just after it is created,
instead of called on arbitrary late timing like MutationObserver
notifications.
Tests: fast/dom/custom/lifecycle-ready-createElement-recursion.html
fast/dom/custom/lifecycle-ready-createElement-reentrancy.html
fast/dom/custom/lifecycle-ready-creation-api.html
fast/dom/custom/lifecycle-ready-innerHTML.html
fast/dom/custom/lifecycle-ready-parser-only.html
fast/dom/custom/lifecycle-ready-parser-script.html
fast/dom/custom/lifecycle-ready-paste.html
* bindings/scripts/CodeGeneratorV8.pm:
- Hooked up CallbackDeliveryScope through V8DeliverCustomElementCallbacks attriute.
(GenerateCustomElementInvocationScopeIfNeeded):
(GenerateNormalAttrSetter):
(GenerateFunction):
* bindings/scripts/IDLAttributes.txt:
* bindings/v8/CustomElementHelpers.cpp:
(WebCore::CustomElementHelpers::invokeReadyCallbackIfNeeded):
(WebCore::CustomElementHelpers::invokeReadyCallbacksIfNeeded):
* bindings/v8/CustomElementHelpers.h:
(CustomElementHelpers):
* bindings/v8/V8RecursionScope.cpp: Added deliverAllLifecycleCallbacks()
(WebCore::V8RecursionScope::didLeaveScriptContext):
* dom/CustomElementConstructor.cpp:
(WebCore::CustomElementConstructor::createElement):
(WebCore::CustomElementConstructor::createElementInternal):
* dom/CustomElementConstructor.h:
(WebCore::CustomElementConstructor::isExtended):
(CustomElementConstructor):
* dom/CustomElementRegistry.cpp: Adding element tracking and invocation execution.
(WebCore::CustomElementInvocation::CustomElementInvocation):
(WebCore::CustomElementInvocation::~CustomElementInvocation):
(WebCore::activeCustomElementRegistries):
(WebCore::CustomElementRegistry::~CustomElementRegistry):
(WebCore::CustomElementRegistry::didGiveTypeExtension):
(WebCore::CustomElementRegistry::didCreateElement):
(WebCore::CustomElementRegistry::activate):
(WebCore::CustomElementRegistry::deactivate):
(WebCore::CustomElementRegistry::deliverLifecycleCallbacks):
(WebCore::CustomElementRegistry::deliverAllLifecycleCallbacks):
* dom/CustomElementRegistry.h:
(CustomElementInvocation):
(WebCore::CustomElementInvocation::element):
(CallbackDeliveryScope):
(WebCore::CustomElementRegistry::CallbackDeliveryScope::CallbackDeliveryScope):
(WebCore::CustomElementRegistry::CallbackDeliveryScope::~CallbackDeliveryScope):
(CustomElementRegistry):
(WebCore::CustomElementRegistry::deliverAllLifecycleCallbacksIfNeeded):
* dom/Document.cpp:
(WebCore::Document::createElement):
(WebCore::Document::didCreateCustomElement):
* dom/Document.h:
(Document):
* dom/Document.idl:
* dom/Element.cpp:
(WebCore::Element::attributeChangedFromParserOrByCloning): Added to catch @is attribute
(WebCore::Element::parserSetAttributes):
(WebCore::Element::cloneAttributesFromElement):
* dom/Element.h:
* dom/Node.idl:
* dom/ShadowRoot.idl:
* html/HTMLElement.idl:
* html/parser/HTMLScriptRunner.cpp: Added deliverAllLifecycleCallbacks()
(WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
(WebCore::HTMLScriptRunner::runScript):
2013-03-22 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Finalize the RTCPeerConnection states
https://bugs.webkit.org/show_bug.cgi?id=112792
Reviewed by Adam Barth.
This patch finalized the RTCPeerConnection state and events. These changes
have not yet pushed out to the editors draft; but they are uncontroversial
and agreed upon.
readyState will be deleted; please use the replacement signalingState which is already available.
onstatechange -> onsignalingstatechange
onicechange -> oniceconnectionstatechange
ongatheringchange will be deleted since oniceconnectionstatechange can be used for the same purpose.
RTCIceConnectionState::"starting" -> RTCIceConnectionState::"new"
Patch covered by modified tests.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::iceConnectionState):
(WebCore::RTCPeerConnection::changeSignalingState):
(WebCore::RTCPeerConnection::changeIceGatheringState):
(WebCore::RTCPeerConnection::changeIceConnectionState):
* Modules/mediastream/RTCPeerConnection.h:
(RTCPeerConnection):
* Modules/mediastream/RTCPeerConnection.idl:
* dom/EventNames.h:
(WebCore):
* platform/mediastream/RTCPeerConnectionHandlerClient.h:
2013-03-22 Mike West <mkwst@chromium.org>
Prefer 'KURL(ParsedURLString, String)' when dealing with known-good data.
https://bugs.webkit.org/show_bug.cgi?id=112965
Reviewed by Alexey Proskuryakov.
In https://bugs.webkit.org/show_bug.cgi?id=112783#c6, Adam noted that
it would be possible to use 'KURL(ParsedURLString, [url])' rather than
'KURL(KURL(), [url])', since we knew that the URL in question is a
value and absolute URL. This patch fixes the obvious instances of this
pattern; there are several more 'KURL(KURL(), String)' calls in
WebCore but these were the only places I was reasonably sure that bad
data couldn't creep in.
* dom/Document.cpp:
(WebCore::Document::updateBaseURL):
'documentURI' is pulled from 'url()->string()'. It's safe.
* page/ContentSecurityPolicy.cpp:
(WebCore::gatherSecurityPolicyViolationEventData):
(WebCore::ContentSecurityPolicy::reportViolation):
'CallFrame::sourceURL()' is a known valid/absolute URL.
* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::createFromDatabaseIdentifier):
(WebCore::SecurityOrigin::create):
The strings constructed here are certainly valid.
2013-03-22 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. move overview window when user scrolls the chart.
https://bugs.webkit.org/show_bug.cgi?id=113014
Reviewed by Yury Semikhatsky.
I found that I could use scaling mechanics in OverviewGrid for scaling the chart.
But the dragging part was not so simple due to the different approaches in
OverviewGrid and FlameChart. OverviewGrid used _windowLeft and _windowRight
when FlameChart used _xOffset and _xScaleFactor and width.
It was not practical and I rewrote the FlameChart mechanics
and now it also uses _windowLeft _windowRight.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart):
(WebInspector.FlameChart.Calculator.prototype._updateBoundaries):
(WebInspector.FlameChart.Calculator.prototype.computePosition):
(WebInspector.FlameChart.prototype._onWindowChanged):
(WebInspector.FlameChart.prototype._startCanvasDragging):
(WebInspector.FlameChart.prototype._canvasDragging):
(WebInspector.FlameChart.prototype._onMouseMove):
(WebInspector.FlameChart.prototype._onMouseWheel):
(WebInspector.FlameChart.prototype._coordinatesToNodeIndex):
(WebInspector.FlameChart.prototype._drawOverviewCanvas):
(WebInspector.FlameChart.prototype.draw):
(WebInspector.FlameChart.prototype._updateBoundaries):
(WebInspector.FlameChart.prototype.update):
* inspector/front-end/OverviewGrid.js:
(WebInspector.OverviewGrid.prototype.setWindowPosition):
(WebInspector.OverviewGrid.prototype.setWindow):
(WebInspector.OverviewGrid.prototype.addEventListener):
(WebInspector.OverviewGrid.prototype.zoom):
(WebInspector.OverviewGrid.Window.prototype._zoom):
* inspector/front-end/inspectorCommon.css:
(.overview-grid-window-rulers):
2013-03-22 Steve Block <steveblock@chromium.org>
Move GeolocationClient.h to Modules/geolocation/
https://bugs.webkit.org/show_bug.cgi?id=112997
Reviewed by Kentaro Hara.
No new tests, no functional change.
* GNUmakefile.list.am:
* Modules/geolocation/GeolocationClient.h: Renamed from Source/WebCore/page/GeolocationClient.h.
(WebCore):
(GeolocationClient):
(WebCore::GeolocationClient::~GeolocationClient):
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
2013-03-22 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r146534 and r146565.
http://trac.webkit.org/changeset/146534
http://trac.webkit.org/changeset/146565
https://bugs.webkit.org/show_bug.cgi?id=113017
"r146534 caused perf regression on Chromium Linux x64"
(Requested by yurys on #webkit).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrSetter):
(GenerateOverloadedFunction):
(GenerateFunctionCallback):
(GenerateFunction):
(GenerateParametersCheck):
(GenerateSingleConstructorCallback):
(GenerateNonStandardFunction):
(GenerateImplementation):
(GenerateFunctionCallString):
* bindings/scripts/IDLAttributes.txt:
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore):
* bindings/v8/CustomElementHelpers.cpp:
* bindings/v8/CustomElementHelpers.h:
(WebCore):
(CustomElementHelpers):
* bindings/v8/V8DOMConfiguration.cpp:
(WebCore::V8DOMConfiguration::batchConfigureCallbacks):
(WebCore::V8DOMConfiguration::configureTemplate):
* bindings/v8/V8DOMConfiguration.h:
(BatchedMethod):
(V8DOMConfiguration):
* bindings/v8/V8RecursionScope.cpp:
(WebCore::V8RecursionScope::didLeaveScriptContext):
* dom/CustomElementConstructor.cpp:
(WebCore::CustomElementConstructor::createElement):
* dom/CustomElementConstructor.h:
(CustomElementConstructor):
* dom/CustomElementRegistry.cpp:
(WebCore::CustomElementRegistry::~CustomElementRegistry):
* dom/CustomElementRegistry.h:
(WebCore):
(CustomElementRegistry):
* dom/Document.cpp:
(WebCore::Document::createElement):
(WebCore::Document::registerElement):
* dom/Document.h:
* dom/Document.idl:
* dom/Element.cpp:
(WebCore::Element::parserSetAttributes):
(WebCore::Element::cloneAttributesFromElement):
* dom/Element.h:
* dom/Element.idl:
* dom/Node.idl:
* dom/ShadowRoot.idl:
* html/HTMLElement.idl:
* html/parser/HTMLScriptRunner.cpp:
(WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
(WebCore::HTMLScriptRunner::runScript):
2013-03-22 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
[GStreamer] Memory leak in AudioFileReader::createBus()
https://bugs.webkit.org/show_bug.cgi?id=112925
Reviewed by Martin Robinson.
Adopt the reference returned by g_timeout_source_new()
to fix a memory leak.
No new tests. No change in behavior.
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::AudioFileReader::createBus):
2013-03-22 Steve Block <steveblock@chromium.org>
Move page/Coordinates.[h|idl] to Modules/geolocation/
https://bugs.webkit.org/show_bug.cgi?id=112945
Reviewed by Kentaro Hara.
No new tests, no functional change.
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Modules/geolocation/Coordinates.h: Renamed from Source/WebCore/page/Coordinates.h.
(WebCore):
(Coordinates):
(WebCore::Coordinates::create):
(WebCore::Coordinates::isolatedCopy):
(WebCore::Coordinates::latitude):
(WebCore::Coordinates::longitude):
(WebCore::Coordinates::altitude):
(WebCore::Coordinates::accuracy):
(WebCore::Coordinates::altitudeAccuracy):
(WebCore::Coordinates::heading):
(WebCore::Coordinates::speed):
(WebCore::Coordinates::canProvideAltitude):
(WebCore::Coordinates::canProvideAltitudeAccuracy):
(WebCore::Coordinates::canProvideHeading):
(WebCore::Coordinates::canProvideSpeed):
(WebCore::Coordinates::Coordinates):
* Modules/geolocation/Coordinates.idl: Renamed from Source/WebCore/page/Coordinates.idl.
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
2013-03-21 Hajime Morrita <morrita@google.com>
Custom Elements: "readyCallback" lifecycle callback should be called.
https://bugs.webkit.org/show_bug.cgi?id=112538
Reviewed by Elliott Sprehn.
This change allows each custom element definition to hook up its instantiation,
namely "readyCallback" lifecycle callback.
The change has two parts:
- 1. Tracking which Element objects to be created.
- 2. Invoking appropriate JavaScript functions, which are readyCallback(),
before the Element object is visible from page script.
For 1, CustomElementRegistry maintains list of "callback
invocaions". Each list item ("invocation") tracks the element
which has a lifecycle callback to be invoked. Each invocation is
registered when - Any custom element C++ object is instantiated.
See changes on CustomElementConstructor.cpp.
This also happens when @is attribute is set by the parser or node
cloning routine, which can turn a non-custom element into a
type-extended custom element. See changes on Element.cpp.
For 2, CustomElementRegistry basically follows what
MutationObserver is doing, and introduces a method called
deliverLifecycleCallbacks(). This function flushes all pending
callback invocations. You can think it as a dual of
MutationObserver::deliverAllMutations().
The delivery function is called places where MutationObserver's
deliverAllMutations() is called. In addition, it is also called
just before returning from a set of DOM APIs. For example, it is
called just before createElement() returns, so that possibly
created custom element becomes ready through its readyCallback().
Such APIs get "V8DeliverCustomElementCallbacks" IDL attribute. In
principle, APIs which can create new custom element instnaces are
marked. See CustomElementRegistry::CallbackDeliveryScope and
changes on CodeGeneratorV8.pm.
We need this extra work because the readyCallback() needs to give
an illusion so that JavaScript programmers feel like the
readyCallback() callback being called just after it is created,
instead of called on arbitrary late timing like MutationObserver
notifications.
Tests: fast/dom/custom/lifecycle-ready-createElement-recursion.html
fast/dom/custom/lifecycle-ready-createElement-reentrancy.html
fast/dom/custom/lifecycle-ready-creation-api.html
fast/dom/custom/lifecycle-ready-innerHTML.html
fast/dom/custom/lifecycle-ready-parser-only.html
fast/dom/custom/lifecycle-ready-parser-script.html
fast/dom/custom/lifecycle-ready-paste.html
* bindings/scripts/CodeGeneratorV8.pm:
- Hooked up CallbackDeliveryScope through V8DeliverCustomElementCallbacks attriute.
(GenerateCustomElementInvocationScopeIfNeeded):
(GenerateNormalAttrSetter):
(GenerateFunction):
* bindings/scripts/IDLAttributes.txt:
* bindings/v8/CustomElementHelpers.cpp:
(WebCore::CustomElementHelpers::invokeReadyCallbackIfNeeded):
(WebCore::CustomElementHelpers::invokeReadyCallbacksIfNeeded):
* bindings/v8/CustomElementHelpers.h:
(CustomElementHelpers):
* bindings/v8/V8RecursionScope.cpp: Added deliverAllLifecycleCallbacks()
(WebCore::V8RecursionScope::didLeaveScriptContext):
* dom/CustomElementConstructor.cpp:
(WebCore::CustomElementConstructor::createElement):
(WebCore::CustomElementConstructor::createElementInternal):
* dom/CustomElementConstructor.h:
(WebCore::CustomElementConstructor::isExtended):
(CustomElementConstructor):
* dom/CustomElementRegistry.cpp: Adding element tracking and invocation execution.
(WebCore::CustomElementInvocation::CustomElementInvocation):
(WebCore::CustomElementInvocation::~CustomElementInvocation):
(WebCore::activeCustomElementRegistries):
(WebCore::CustomElementRegistry::~CustomElementRegistry):
(WebCore::CustomElementRegistry::didGiveTypeExtension):
(WebCore::CustomElementRegistry::didCreateElement):
(WebCore::CustomElementRegistry::activate):
(WebCore::CustomElementRegistry::deactivate):
(WebCore::CustomElementRegistry::deliverLifecycleCallbacks):
(WebCore::CustomElementRegistry::deliverAllLifecycleCallbacks):
* dom/CustomElementRegistry.h:
(CustomElementInvocation):
(WebCore::CustomElementInvocation::element):
(CallbackDeliveryScope):
(WebCore::CustomElementRegistry::CallbackDeliveryScope::CallbackDeliveryScope):
(WebCore::CustomElementRegistry::CallbackDeliveryScope::~CallbackDeliveryScope):
(CustomElementRegistry):
(WebCore::CustomElementRegistry::deliverAllLifecycleCallbacksIfNeeded):
* dom/Document.cpp:
(WebCore::Document::createElement):
(WebCore::Document::didCreateCustomElement):
* dom/Document.h:
(Document):
* dom/Document.idl:
* dom/Element.cpp:
(WebCore::Element::attributeChangedFromParserOrByCloning): Added to catch @is attribute
(WebCore::Element::parserSetAttributes):
(WebCore::Element::cloneAttributesFromElement):
* dom/Element.h:
* dom/Node.idl:
* dom/ShadowRoot.idl:
* html/HTMLElement.idl:
* html/parser/HTMLScriptRunner.cpp: Added deliverAllLifecycleCallbacks()
(WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
(WebCore::HTMLScriptRunner::runScript):
2013-03-21 Jer Noble <jer.noble@apple.com>
Crash in WebCore::MediaPlayer::cachedResourceLoader + 4
https://bugs.webkit.org/show_bug.cgi?id=112977
Reviewed by Geoffrey Garen.
Speculative fix for a NULL-dereference crash. MediaPlayerPrivateAVFoundationObjC is the
sole owner of a WebCoreAVFLoaderDelegate instance. It releases this instance in its destructor,
but it is possible that, on another thread, the AVAssetResourceLoader has already begun
using the delegate and in so doing has retained it. By the time the delegate method is fired
on the main thread, the MediaPlayerPrivateAVFoundationObjC owner of the delegate has already
been deleted, and the delegate's m_callback pointer is now pointing at freed memory.
In addition to calling -[AVAssetResourceLoader setDelegate:queue:] to avoid any not-yet-started
delegate callbacks, MediaPlayerPrivateAVFoundationObjC should clear the WebCoreAVFLoaderDelegate
m_callback ivar, to avoid calling into freed memory for already queued delegate callbacks.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): Clear the m_loaderDelegate's callback pointer.
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]): Check the value of m_callback before continuing.
(-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]): Ditto.
(-[WebCoreAVFLoaderDelegate setCallback:]): Added simple setter.
2013-03-21 Takashi Sakamoto <tasak@google.com>
XMLDocumentParser doesn't parse <template> correctly.
https://bugs.webkit.org/show_bug.cgi?id=112328
Reviewed by Hajime Morrita.
XMLDocumentParser should check whether a parent node is attached or not
when a new element is appended.
Test: fast/dom/HTMLTemplateElement/xhtml-with-titleElement-parsing-crash.xhtml
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):
m_currentNode is a parent node of newElement, but it is updated by
pushCurrentNode. So firstly stored copied m_curretNode's value into
local currentNode and used the currentNode to check whether
newElement's parent is attached or not.
2013-03-21 David Grogan <dgrogan@chromium.org>
Unreviewed, rolling out r146560.
http://trac.webkit.org/changeset/146560
https://bugs.webkit.org/show_bug.cgi?id=112862
invalid parameter to histogram
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::LevelDBDatabase::open):
2013-03-21 David Grogan <dgrogan@chromium.org>
IndexedDB: Histogram available disk space on attempt to open database
https://bugs.webkit.org/show_bug.cgi?id=112862
Reviewed by Adam Barth.
ChromeOS suspects they might be hitting disk corruption when the disks
are nearly full. This patch logs the available space to either the
"success" or the "fail" histogram as appropriate so that the
distributions can be compared.
No new tests - I don't know of a good way to test histograms. Local
printf testing didn't turn up any bugs.
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::HistogramFreeSpace):
(WebCore):
(WebCore::LevelDBDatabase::open):
2013-03-21 Li Yin <li.yin@intel.com>
FileAPI: Remove deprecation warning when ArrayBuffer is in Blob constructor.
https://bugs.webkit.org/show_bug.cgi?id=88389
Reviewed by Kenneth Russell.
Spec: http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob
Both ArrayBuffer and ArrayBufferView should be supported for Blob constructor.
Test: fast/files/blob-constructor.html.
* bindings/js/JSBlobCustom.cpp:
(WebCore::JSBlobConstructor::constructJSBlob):
* bindings/v8/custom/V8BlobCustom.cpp:
(WebCore::V8Blob::constructorCustom):
* fileapi/WebKitBlobBuilder.cpp:
(WebCore::BlobBuilder::append): Remove the deprecated warning.
* fileapi/WebKitBlobBuilder.h:
(WebCore):
(BlobBuilder):
2013-03-21 Takashi Sakamoto <tasak@google.com>
[Shadow]: @host styles are not applied dynamically
https://bugs.webkit.org/show_bug.cgi?id=112869
Reviewed by Elliott Sprehn.
Need to add features of @host @-rules to rule feature set.
Test: fast/dom/shadow/athost-apply-dynamically.html
* css/StyleScopeResolver.cpp:
(WebCore::StyleScopeResolver::collectFeaturesTo):
2013-03-21 Hayato Ito <hayato@chromium.org>
[Shadow] Provide an api of insertionParent().
https://bugs.webkit.org/show_bug.cgi?id=112866
Add insertinParent binding to Element and Text.
It's prefixed (webkitInsertionParent) and guarded by SHADOW_DOM flag.
The bug in the Shadow DOM spec is here:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=21067
Reviewed by Dimitri Glazkov.
Test: fast/dom/shadow/insertion-parent.html
* dom/Element.idl:
* dom/Node.cpp:
(WebCore::Node::insertionParentForBinding):
(WebCore):
* dom/Node.h:
(Node):
* dom/Text.idl:
2013-03-21 Tom Sepez <tsepez@chromium.org>
Bypass XSSAuditor for asp.net servers.
https://bugs.webkit.org/show_bug.cgi?id=112235
Reviewed by Adam Barth.
Similar to https://bugs.webkit.org/show_bug.cgi?id=81283, but the
fix to that bug failed to cover this particular comma-splicing case.
Test: http/tests/security/xssAuditor/img-tag-with-comma.html
* html/parser/XSSAuditor.cpp:
(WebCore::isTerminatingCharacter):
Beware of comma-splicing tricks by stopping at commas.
2013-03-21 Brady Eidson <beidson@apple.com>
If a previously loaded resource is later stored to the disk cache, replace the buffer with MMAP'ed memory.
<rdar://problem/13414154> and https://bugs.webkit.org/show_bug.cgi?id=112943
Reviewed by Geoff Garen.
No new tests (No change in behavior.)
Give SharedBuffer the ability to replace its contents from another SharedBuffer:
* platform/SharedBuffer.h:
* platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer:: tryReplaceContentsWithPlatformBuffer):
Forward along SharedBuffer's new ability to ResourceBuffer:
* loader/mac/ResourceBuffer.mm:
(WebCore::ResourceBuffer:: tryReplaceSharedBufferContents):
* loader/ResourceBuffer.h:
Give CachedResource the ability to replace its encoded data buffer if appropriate:
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource:: tryReplaceEncodedData):
* loader/cache/CachedResource.h:
* WebCore.exp.in:
2013-03-21 Joshua Bell <jsbell@chromium.org>
IndexedDB: Ensure script wrappers can be collected after context is stopped
https://bugs.webkit.org/show_bug.cgi?id=112976
Reviewed by Adam Barth.
ActiveDOMObject::hasPendingActivity is called to see if script wrappers
can be disposed of. Once the script execution context has stopped they
should be free to go - include this in the checks.
No new tests - suggestions welcome.
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::hasPendingActivity): Return false if stopped.
(WebCore::IDBDatabase::stop): Don't bother calling empty super impl.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::hasPendingActivity): Return false if stopped.
(WebCore::IDBRequest::stop): Don't bother calling empty super impl.
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::hasPendingActivity): Return false if stopped.
(WebCore::IDBTransaction::stop): Don't bother calling empty super impl.
2013-03-21 Russell McClellan <russell.mcclellan@gmail.com>
Remove upcastPointer from ActiveDOMObject constructor
https://bugs.webkit.org/show_bug.cgi?id=112858
Reviewed by Alexey Proskuryakov.
Removed pesky argument to ActiveDOMObject constructor that is no longer
used.
No new tests (no change in behavior).
* Modules/battery/BatteryManager.cpp:
(WebCore::BatteryManager::BatteryManager):
* Modules/filesystem/DOMFileSystem.cpp:
(WebCore::DOMFileSystem::DOMFileSystem):
* Modules/filesystem/FileWriter.cpp:
(WebCore::FileWriter::FileWriter):
* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::Geolocation):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::IDBDatabase):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::IDBRequest):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::IDBTransaction):
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::MediaSource):
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::MediaStreamTrack):
* Modules/mediastream/RTCDTMFSender.cpp:
(WebCore::RTCDTMFSender::RTCDTMFSender):
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::RTCPeerConnection):
* Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp:
(WebCore::RTCSessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl):
* Modules/mediastream/RTCStatsRequestImpl.cpp:
(WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
* Modules/mediastream/RTCVoidRequestImpl.cpp:
(WebCore::RTCVoidRequestImpl::RTCVoidRequestImpl):
* Modules/networkinfo/NetworkInfoConnection.cpp:
(WebCore::NetworkInfoConnection::NetworkInfoConnection):
* Modules/notifications/Notification.cpp:
(WebCore::Notification::Notification):
* Modules/notifications/NotificationCenter.cpp:
(WebCore::NotificationCenter::NotificationCenter):
* Modules/speech/SpeechRecognition.cpp:
(WebCore::SpeechRecognition::SpeechRecognition):
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::AudioContext):
* Modules/webdatabase/DatabaseContext.cpp:
(WebCore::DatabaseContext::DatabaseContext):
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::WebSocket):
* css/FontLoader.cpp:
(WebCore::FontLoader::FontLoader):
* dom/ActiveDOMObject.cpp:
(WebCore::ActiveDOMObject::ActiveDOMObject):
* dom/ActiveDOMObject.h:
(ActiveDOMObject):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
(WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
(WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
(WebCore::ScriptExecutionContext::stopActiveDOMObjects):
(WebCore::ScriptExecutionContext::didCreateActiveDOMObject):
* dom/ScriptExecutionContext.h:
(ScriptExecutionContext):
(WebCore::ScriptExecutionContext::activeDOMObjects):
* fileapi/FileReader.cpp:
(WebCore::FileReader::FileReader):
* html/HTMLMarqueeElement.cpp:
(WebCore::HTMLMarqueeElement::HTMLMarqueeElement):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::WebGLRenderingContext):
* loader/Prerenderer.cpp:
(WebCore::Prerenderer::Prerenderer):
* page/EventSource.cpp:
(WebCore::EventSource::EventSource):
* page/SuspendableTimer.cpp:
(WebCore::SuspendableTimer::SuspendableTimer):
* workers/AbstractWorker.cpp:
(WebCore::AbstractWorker::AbstractWorker):
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::hasPendingActivity):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::XMLHttpRequest):
2013-03-21 Alexey Proskuryakov <ap@apple.com>
[Mac] Move NSOperationQueue out of NetworkingContext
https://bugs.webkit.org/show_bug.cgi?id=112970
Reviewed by Brady Eidson.
WebCore clients do not need explicit control over what queue ResourceHandle works on,
they just want to avoid blocking main thread.
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::usesAsyncCallbacks): Added. The name doesn't quite
match what ResourceHandleMac currently does, but it will very soon.
* platform/network/NetworkingContext.h:
(WebCore::NetworkingContext::scheduledRunLoopPairs):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::operationQueueForAsyncClients):
(WebCore::ResourceHandle::start):
2013-03-21 Marja Hölttä <marja@chromium.org>
[V8] Generate specialized callbacks for the main world
https://bugs.webkit.org/show_bug.cgi?id=112430
Reviewed by Jochen Eisinger.
The new specialized bindings will be faster, because they don't need to
do the "main world, isolated world or a worker" check, but can right
away assume that we're in the main world.
This patch generates main world bindings for getters and setters of Node,
Element and Document.
No new tests (updated existing binding tests).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateOverloadedFunction):
(GenerateFunctionCallback):
(GenerateFunction):
(GenerateParametersCheck):
(GenerateSingleConstructorCallback):
(GenerateNonStandardFunction):
(GenerateImplementation):
(GenerateFunctionCallString):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore):
* bindings/v8/V8DOMConfiguration.cpp:
(WebCore::V8DOMConfiguration::batchConfigureCallbacks):
(WebCore::V8DOMConfiguration::configureTemplate):
* bindings/v8/V8DOMConfiguration.h:
(BatchedMethod):
(V8DOMConfiguration):
* dom/Document.idl:
* dom/Element.idl:
* dom/Node.idl:
2013-03-21 Elliott Sprehn <esprehn@chromium.org>
Remove RenderObject::canHaveRegionStyle since nothing uses it
https://bugs.webkit.org/show_bug.cgi?id=112973
Reviewed by Eric Seidel.
Nothing uses canHaveRegionStyle so we can remove it.
* rendering/RenderObject.h:
2013-03-21 Alok Priyadarshi <alokp@chromium.org>
Mark GraphicsLayers as opaque when possible
https://bugs.webkit.org/show_bug.cgi?id=70634
Reviewed by Simon Fraser.
Mark layers as opaque in a very simple case - any child renderer has an opaque background and covers the entire composited bounds. It is important to note that since we only consider the background, the only layer that can be marked opaque is the primary GraphicsLayer of a RenderLayer.
Tests: compositing/contents-opaque/background-clip.html
compositing/contents-opaque/background-color.html
compositing/contents-opaque/body-background-painted.html
compositing/contents-opaque/body-background-skipped.html
compositing/contents-opaque/layer-opacity.html
compositing/contents-opaque/layer-transform.html
* rendering/RenderBox.cpp:
(WebCore::skipBodyBackground):
(WebCore):
(WebCore::RenderBox::paintBackground):
(WebCore::RenderBox::backgroundIsKnownToBeOpaqueInRect):
* rendering/RenderBox.h:
(RenderBox):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::backgroundIsKnownToBeOpaqueInRect):
(WebCore):
(WebCore::RenderLayer::listBackgroundIsKnownToBeOpaqueInRect):
* rendering/RenderLayer.h:
(RenderLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
* rendering/RenderLayerModelObject.h:
(RenderLayerModelObject):
(WebCore::RenderLayerModelObject::backgroundIsKnownToBeOpaqueInRect):
2013-03-21 Alexandru Chiculita <achicu@adobe.com>
[CSS Shaders] Implement a StyleCustomFilterProgram cache
https://bugs.webkit.org/show_bug.cgi?id=112602
Reviewed by Dean Jackson.
When the style is recalculated, the new computed RenderStyle is saved as the m_style of the
RenderObject, even if the style was not different.
In the case of Custom Filters, a new StyleCustomFilterProgram was created at all times, but the
actual equality check was done by comparing the pair of cached shaders from inside the StyleCustomFilterProgram.
Because of that the RenderLayer::styleChanged was not called when the new StyleCustomFilterProgram was created, so it
will end up still knowing only about the previous StyleCustomFilterProgram.
The RenderLayer sets itself as a client of the StyleCustomFilterProgram, so that it can repaint itself
when the program is loaded, but because RenderLayer::styleChanged is not called, it will not add itself as a client of the new
StyleCustomFilterProgram.
StyleCustomFilterProgram waits until the first client to load the programs, so in this case it will just remain unloaded.
There was no crash, but just an assert in debug mode. Also, as a visible side-effect some frames were rendered using blank shaders,
resulting in a pass-through filter.
The fix would be to actually make the RenderStyle::diff detect the change of the StyleCustomFilterProgram
using the pointer value and not the values. However, that will always invalidate the "filter" property because
of the StyleCustomFilterProgram that always gets created during the recalculation time.
I've added StyleCustomFilterProgramCache to cache all the instances of the StyleCustomFilterPrograms that a
StyleResolver allocates. This way, next time it will try to reuse previously allocated StyleCustomFilterPrograms.
The key of the cache is the CustomFilterProgramInfo, that combines the URLs to the shaders and a couple of other program settings.
StyleCustomFilterProgramCache is owned by the StyleResovler and StyleCustomFilterPrograms are responsible with
removing themselves from the cache when the last reference goes away.
This change makes the previous "platform level" program cache obsolete and I will remove that in a future patch.
https://bugs.webkit.org/show_bug.cgi?id=112844
Test: css3/filters/custom/custom-filter-reload.html
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::lookupCustomFilterProgram): Lookup any similar programs in the cache. It will create a new pending
StyleCustomFilterProgram if there is no pre-cached version of the program.
if no program is found. loadPendingShaders is responsible for adding the program in the cache if it is actually going to be used.
(WebCore::StyleResolver::loadPendingShaders): At this point the program is final, so it's safe to add it to the cache.
(WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
* css/StyleResolver.h:
(StyleResolver):
* css/WebKitCSSShaderValue.cpp:
(WebCore::WebKitCSSShaderValue::completeURL): Factored out the function to compute the complete URL of the resource.
(WebCore::WebKitCSSShaderValue::cachedShader):
* css/WebKitCSSShaderValue.h:
(WebCore::toWebKitCSSShaderValue):
(WebKitCSSShaderValue):
* platform/graphics/filters/CustomFilterOperation.cpp:
(WebCore::CustomFilterOperation::blend):
* platform/graphics/filters/CustomFilterOperation.h:
(WebCore::CustomFilterOperation::operator==): Removed. Programs should now compare by pointer. Kept it as
private to catch any potential use of it.
* rendering/style/StyleCustomFilterProgram.cpp: Copied from Source/WebCore/css/WebKitCSSShaderValue.h.
(WebCore::StyleCustomFilterProgram::~StyleCustomFilterProgram): Destructor removes the program from the cache.
* rendering/style/StyleCustomFilterProgram.h:
(WebCore::StyleCustomFilterProgram::setVertexShader): Added an assert to check that the shader is not in the
cache while the mutation happens. Otherwise the cache might have the wrong key.
(WebCore::StyleCustomFilterProgram::setFragmentShader): Ditto.
(WebCore::StyleCustomFilterProgram::isLoaded): Added more asserts to catch cases when the program is used with no clients.
(StyleCustomFilterProgram):
(WebCore::StyleCustomFilterProgram::hasPendingShaders):
(WebCore::StyleCustomFilterProgram::inCache):
(WebCore::StyleCustomFilterProgram::setCache): Function called when a program is added to / removed from the cache.
(WebCore::StyleCustomFilterProgram::vertexShaderURL): Added methods to store the KURL that we used as keys in the cache.
The same KURLs will be used to lookup and remove the filter at the end.
(WebCore::StyleCustomFilterProgram::setVertexShaderURL):
(WebCore::StyleCustomFilterProgram::fragmentShaderURL):
(WebCore::StyleCustomFilterProgram::setFragmentShaderURL):
(WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram):
* rendering/style/StyleCustomFilterProgramCache.cpp: Added.
(WebCore::StyleCustomFilterProgramCache::programCacheKey):
(WebCore::StyleCustomFilterProgramCache::StyleCustomFilterProgramCache):
(WebCore::StyleCustomFilterProgramCache::~StyleCustomFilterProgramCache): Destructor removes itself from all the
referenced StyleCustomFilterPrograms. This is to avoid issues with different destruction orders.
(WebCore::StyleCustomFilterProgramCache::lookup):
(WebCore::StyleCustomFilterProgramCache::add):
(WebCore::StyleCustomFilterProgramCache::remove):
* rendering/style/StyleCustomFilterProgramCache.h:
(StyleCustomFilterProgramCache):
* platform/graphics/texmap/coordinated/CoordinatedCustomFilterProgram.h:
(WebCore::CoordinatedCustomFilterProgram::operator==: Removed. Programs should now compare by pointer.
2013-03-21 Joshua Bell <jsbell@chromium.org>
IndexedDB: Ensure all API methods have IDB_TRACE macros
https://bugs.webkit.org/show_bug.cgi?id=112963
Reviewed by Tony Chang.
Anntotate methods and callbacks that weren't already annotated
with IDB_TRACE macros to assist in debugging, e.g. when using
the chromium port's chrome://tracing visualization.
No new tests - just harmless diagnostic sprinkles.
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::createObjectStore): Added IDB_TRACE macro call here.
(WebCore::IDBDatabase::deleteObjectStore): ...and here.
(WebCore::IDBDatabase::transaction): ...etc.
(WebCore::IDBDatabase::close):
(WebCore::IDBDatabase::onVersionChange):
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::getDatabaseNames):
(WebCore::IDBFactory::open):
(WebCore::IDBFactory::deleteDatabase):
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::getDatabaseNames):
(WebCore::IDBFactoryBackendImpl::deleteDatabase):
(WebCore::IDBFactoryBackendImpl::open):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onBlocked):
2013-03-21 Christian Biesinger <cbiesinger@chromium.org>
http://trac.webkit.org/changeset/146375 causing CrOS crashes
https://bugs.webkit.org/show_bug.cgi?id=112958
Reviewed by Adam Barth.
Test: fast/flexbox/crash-anonymous-box.html
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
Anonymous renderers don't have a node in their constructor, so
don't get document() in there.
2013-03-21 Mike West <mkwst@chromium.org>
CSP 1.1: Fire a SecurityPolicyViolationEvent when violations occur.
https://bugs.webkit.org/show_bug.cgi?id=112783
Reviewed by Adam Barth.
A new event type for Content Security Policy violations landed in
http://wkrev.com/146305; this patch takes that stub, and wires it up to
ContentSecurityPolicy::reportViolation such that violation events fire
when resources are blocked.
This should bring WebKit up to date with the current description of
CSP's event model in sections 3.3[1] and 3.4.1.3[2] of the editor's
draft.
[1]: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#processing-model
[2]: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#firing-events-using-the-securitypolicyviolationevent-interface
Test: http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-image.html
* page/ContentSecurityPolicy.cpp:
(WebCore::gatherSecurityPolicyViolationEventData):
Populate a SecurityPolicyViolationEventInit object with the various
bits of data that should be passed into the event constructor.
This static method is strictly an implementation detail; it's not
part of ContentSecurityPolicy's public API.
(WebCore::ContentSecurityPolicy::reportViolation):
Regardless of whether the policy has set a 'report-uri' directive
or not, gather together all the data we'll need to fire an event,
create the event, and queue it up for dispatching on the Document.
2013-03-21 Terry Anderson <tdanderson@chromium.org>
[chromium] Remove SK_SUPPORT_HINTING_SCALE_FACTOR flag and code
https://bugs.webkit.org/show_bug.cgi?id=112928
Reviewed by Stephen White.
This flag was only for ChromeOS builds with HighDPI. It is no longer needed and can be removed.
See http://crbug.com/17550
No new tests needed since this is just removing unused code.
* platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
(WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
* platform/graphics/skia/PlatformContextSkia.cpp:
(WebCore::PlatformContextSkia::PlatformContextSkia):
(WebCore::PlatformContextSkia::setupPaintCommon):
* platform/graphics/skia/PlatformContextSkia.h:
2013-03-21 Mike West <mkwst@chromium.org>
Drop full URLs from cross-origin access errors caused by protocol mismatches.
https://bugs.webkit.org/show_bug.cgi?id=112894
Reviewed by Timothy Hatcher.
Following up on http://wkbug.com/112813, this patch brings protocol
mismatch errors into line with the new origin-only hotness. The message
is also changed to display the URL's protocol rather than the origin's
protocol: it makes a big difference for 'data:' URLs, for instance.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::crossDomainAccessErrorMessage):
2013-03-21 Stephen Chenney <schenney@chromium.org>
SVG text path referencing parent text infinite loops
https://bugs.webkit.org/show_bug.cgi?id=112078
Reviewed by Philip Rogers.
We do not check the target type when adding a resource reference for
SVG Text Path's URI. This goes horribly wrong when the target is the
text path's parent text element. In this patch we check that the target
element of the text path is indeed a path element, as the spec
requires. No other element type is allowed.
Note that RenderSVGTextPath enforces this check in the renderer code
also, so if we get past this check via pending resources, it doesn't
matter. You can't get into this situation with a pending reference
because, by definition, the parent must be defined before the text
path child.
Test: svg/text/textpath-referencing-text-crash.svg
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::buildPendingResource):
2013-03-21 Joshua Bell <jsbell@chromium.org>
IndexedDB: Remove onVersionChange(string) plumbing
https://bugs.webkit.org/show_bug.cgi?id=112712
Reviewed by Adam Barth.
Delete unused onVersionChange(string) overload.
No new tests - just deleting dead code.
* Modules/indexeddb/IDBDatabase.cpp: Delete onVersionChange(string) overload.
* Modules/indexeddb/IDBDatabase.h: Ditto.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Ditto.
* Modules/indexeddb/IDBDatabaseCallbacks.h: Ditto.
* Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp: Ditto.
* Modules/indexeddb/IDBDatabaseCallbacksImpl.h: Ditto.
2013-03-21 Philip Rogers <pdr@google.com>
Correct bisector angle calculation for markers
https://bugs.webkit.org/show_bug.cgi?id=112054
Reviewed by Stephen Chenney.
The SVG marker spec states that mid markers with orient=auto should be aligned with their
x-axis along the bisector of the incoming (in) and outgoing (out) angles. Previously we
calculated this bisector angle as:
bisector = (in + out) / 2;
Angles cannot be averaged this way! Consider in=90deg and out=-180deg: the bisector should
be 135deg but a naive average gives -45deg. This patch corrects for the discontinuity in
angle values with:
bisector = (in + out + 360) / 2 // if |in - out| > 180
bisector = (in + out) / 2 // otherwise
This patch includes an exhaustive test of angle values.
Test: svg/custom/marker-orient-auto.html
* rendering/svg/SVGMarkerData.h:
(WebCore::SVGMarkerData::currentAngle):
2013-03-21 Harald Alvestrand <hta@google.com>
Expose the Type field of an RTCStatsReport
https://bugs.webkit.org/show_bug.cgi?id=112951
Reviewed by Adam Barth.
Covered by an extension of an existing test.
* Modules/mediastream/RTCStatsReport.h:
(WebCore::RTCStatsReport::type):
* Modules/mediastream/RTCStatsReport.idl:
2013-03-21 Alexey Proskuryakov <ap@apple.com>
Move non-trivial virtual functions out of ResourceHandleClient.h
https://bugs.webkit.org/show_bug.cgi?id=112950
Reviewed by Brady Eidson.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/network/ResourceHandleClient.cpp: Added.
(WebCore::ResourceHandleClient::ResourceHandleClient):
(WebCore::ResourceHandleClient::~ResourceHandleClient):
(WebCore::ResourceHandleClient::didReceiveBuffer):
(WebCore::ResourceHandleClient::getBuffer):
* platform/network/ResourceHandleClient.h:
2013-03-21 Florin Malita <fmalita@chromium.org>
[SVG] Remove explicit LightSource dispatchers
https://bugs.webkit.org/show_bug.cgi?id=112827
Reviewed by Stephen Chenney.
Convert LightSource setters to dynamic dispatch. This allows us to remove LightSource.cpp
altogether.
No new tests: refactoring only.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/filters/DistantLightSource.h:
(DistantLightSource):
* platform/graphics/filters/LightSource.cpp: Removed.
* platform/graphics/filters/LightSource.h:
(WebCore::LightSource::setAzimuth):
(WebCore::LightSource::setElevation):
(WebCore::LightSource::setX):
(WebCore::LightSource::setY):
(WebCore::LightSource::setZ):
(WebCore::LightSource::setPointsAtX):
(WebCore::LightSource::setPointsAtY):
(WebCore::LightSource::setPointsAtZ):
(WebCore::LightSource::setSpecularExponent):
(WebCore::LightSource::setLimitingConeAngle):
* platform/graphics/filters/PointLightSource.h:
(PointLightSource):
* platform/graphics/filters/SpotLightSource.h:
(SpotLightSource):
2013-03-21 Igor Oliveira <igor.o@sisa.samsung.com>
[Texmap] Implement support for OpenGLES EXT_unpack_subimage extension
https://bugs.webkit.org/show_bug.cgi?id=108716
If the extension GL_EXT_unpack_subimage is supported, it adds GL_UNPACK_ROW_LENGTH,
GL_UNPACK_SKIP_ROWS and GL_UNPACK_SKIP_PIXELS as valid enums to PixelStore.
Reviewed by Noam Rosenthal.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::driverSupportsSubImage):
(WebCore::BitmapTextureGL::updateContentsNoSwizzle):
(WebCore::BitmapTextureGL::updateContents):
2013-03-21 Dmitry Zvorygin <zvorygin@chromium.org>
Web Inspector: Regression: drawer resizes slowly with animation.
https://bugs.webkit.org/show_bug.cgi?id=112920
Drawer status bar opacity wasn't set to zero on inialization, so no transition event
was fired on first time drawer appeared,thus animation styles wasn't removed properly.
Reviewed by Vsevolod Vlasov.
* inspector/front-end/Drawer.js:
(WebInspector.Drawer):
2013-03-21 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] GraphicsLayer: fix code that was accidentally reverted
https://bugs.webkit.org/show_bug.cgi?id=112143
Reviewed by Rob Buis.
Several changes were accidentally reverted in r144465 due to the
upstreaming of some new code:
- clearBackgroundColor() and m_contentsLayerHasBackgroundColor had
been removed in r137798.
- showDebugBorders() had been renamed to isShowingDebugBorder() in
r133517.
- A new GraphicsLayer::create() overload had been introduced in
r130185.
This patch fixes them all.
* platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
(WebCore::GraphicsLayer::create):
(WebCore):
(WebCore::GraphicsLayerBlackBerry::GraphicsLayerBlackBerry):
(WebCore::GraphicsLayerBlackBerry::setBackgroundColor):
(WebCore::GraphicsLayerBlackBerry::updateLayerBackgroundColor):
(WebCore::GraphicsLayerBlackBerry::setupContentsLayer):
* platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
(GraphicsLayerBlackBerry):
2013-03-21 Zan Dobersek <zdobersek@igalia.com>
[GTK] Move libLevelDB.la setup into a separate GNUmakefile.am
https://bugs.webkit.org/show_bug.cgi?id=112947
Reviewed by Martin Robinson.
No new tests - no new functionality.
* GNUmakefile.am: Move the libLevelDD.la setup into the new GNUmakefile.am that's placed in
the third-party leveldb source directory.
* GNUmakefile.list.am: Move the LevelDB sources listing there as well.
2013-03-21 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] DrawingBuffer: add clearPlatformLayer() implementation
https://bugs.webkit.org/show_bug.cgi?id=112696
Reviewed by Rob Buis.
DrawingBuffer::clearPlatformLayer() was added in r139142.
This is not needed in the BlackBerry port, so this patch only
contains a dummy implementation.
* platform/graphics/blackberry/DrawingBufferBlackBerry.cpp:
(WebCore):
(WebCore::DrawingBuffer::clearPlatformLayer):
2013-03-21 Florin Malita <fmalita@chromium.org>
[SVG] Suppress painting when an empty viewBox is specified
https://bugs.webkit.org/show_bug.cgi?id=112623
Reviewed by Philip Rogers.
Per spec, elements with an empty viewBox should not be rendered:
http://www.w3.org/TR/SVG/coords.html#ViewBoxAttribute.
This patch adds the missing viewBox checks to RenderSVGRoot, RenderSVGViewPortContainer,
RenderSVGResourceMarker and RenderSVGResourceMarker's paint methods.
In order to detect the case of "viewBox present but invalid", the patch also introduces
SVGAnimatedProperty plumbing for tracking property validity: the baseVal setter now takes
an additional optional 'validValue' boolean parameter, which can later be queried via a
macroed getter (LowerProperty##IsValid()).
Test: svg/custom/viewBox-empty.html
* rendering/svg/RenderSVGResourceMarker.cpp:
(WebCore::RenderSVGResourceMarker::draw):
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::buildPattern):
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::paintReplaced):
* rendering/svg/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::paint):
(WebCore):
* rendering/svg/RenderSVGViewportContainer.h:
(RenderSVGViewportContainer):
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::collectPatternAttributes):
* svg/SVGSVGElement.h:
(WebCore::SVGSVGElement::hasEmptyViewBox):
(SVGSVGElement):
Suppress painting if a valid empty viewBox is found.
* svg/SVGFitToViewBox.h:
(WebCore::SVGFitToViewBox::parseAttribute):
Mark the viewBox property as invalid if not successfully parsed.
* svg/SVGExternalResourcesRequired.h:
(SVGExternalResourcesRequired):
* svg/SVGURIReference.h:
(SVGURIReference):
* svg/properties/SVGAnimatedPropertyMacros.h:
(WebCore::SVGSynchronizableAnimatedProperty::SVGSynchronizableAnimatedProperty):
(SVGSynchronizableAnimatedProperty):
(WebCore):
Plumbing for tracking property value validation.
2013-03-21 Alexei Filippov <alph@chromium.org>
Web Inspector: Hide toolbar customization experimental setting
https://bugs.webkit.org/show_bug.cgi?id=112942
Reviewed by Pavel Feldman.
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/Toolbar.js:
(WebInspector.Toolbar):
(WebInspector.Toolbar.prototype._isToolbarCustomizable):
2013-03-21 Anton Muhin <antonm@chromium.org>
Unreviewed, rolling out r146483.
http://trac.webkit.org/changeset/146483
https://bugs.webkit.org/show_bug.cgi?id=111695
Breaks
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::boundaryEventOccurred):
(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didPauseSpeaking):
(WebCore::SpeechSynthesis::didResumeSpeaking):
(WebCore::SpeechSynthesis::didFinishSpeaking):
(WebCore::SpeechSynthesis::speakingErrorOccurred):
(WebCore):
* Modules/speech/SpeechSynthesis.h:
(SpeechSynthesis):
* Modules/speech/SpeechSynthesisUtterance.cpp:
(WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
(WebCore::SpeechSynthesisUtterance::setVoice):
* Modules/speech/SpeechSynthesisUtterance.h:
(WebCore::SpeechSynthesisUtterance::text):
(WebCore::SpeechSynthesisUtterance::setText):
(WebCore::SpeechSynthesisUtterance::lang):
(WebCore::SpeechSynthesisUtterance::setLang):
(WebCore::SpeechSynthesisUtterance::volume):
(WebCore::SpeechSynthesisUtterance::setVolume):
(WebCore::SpeechSynthesisUtterance::rate):
(WebCore::SpeechSynthesisUtterance::setRate):
(WebCore::SpeechSynthesisUtterance::pitch):
(WebCore::SpeechSynthesisUtterance::setPitch):
(WebCore::SpeechSynthesisUtterance::startTime):
(WebCore::SpeechSynthesisUtterance::setStartTime):
(WebCore::SpeechSynthesisUtterance::platformUtterance):
(SpeechSynthesisUtterance):
* Modules/speech/SpeechSynthesisVoice.h:
(SpeechSynthesisVoice):
* WebCore.exp.in:
* WebCore.gypi:
* platform/PlatformSpeechSynthesis.h:
(PlatformSpeechSynthesis):
* platform/PlatformSpeechSynthesisUtterance.cpp:
* platform/PlatformSpeechSynthesisUtterance.h:
(PlatformSpeechSynthesisUtterance):
(WebCore::PlatformSpeechSynthesisUtterance::client):
* platform/PlatformSpeechSynthesisVoice.cpp:
(WebCore::PlatformSpeechSynthesisVoice::create):
(WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
* platform/PlatformSpeechSynthesisVoice.h:
(PlatformSpeechSynthesisVoice):
(WebCore::PlatformSpeechSynthesisVoice::voiceURI):
(WebCore::PlatformSpeechSynthesisVoice::name):
(WebCore::PlatformSpeechSynthesisVoice::lang):
(WebCore::PlatformSpeechSynthesisVoice::localService):
* platform/PlatformSpeechSynthesizer.cpp:
(WebCore::PlatformSpeechSynthesizer::create):
(WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
(WebCore):
* platform/PlatformSpeechSynthesizer.h:
(PlatformSpeechSynthesizerClient):
(WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
(PlatformSpeechSynthesizer):
* platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Removed.
* platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Removed.
* platform/chromium/support/WebSpeechSynthesisVoice.cpp: Removed.
* platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Removed.
* platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Removed.
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
(WebCore):
(WebCore::PlatformSpeechSynthesizer::speak):
* platform/mock/PlatformSpeechSynthesizerMock.cpp:
(WebCore::PlatformSpeechSynthesizerMock::create):
(WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
(WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
(WebCore::PlatformSpeechSynthesizerMock::speak):
* platform/mock/PlatformSpeechSynthesizerMock.h:
(PlatformSpeechSynthesizerMock):
2013-03-21 Alexey Proskuryakov <ap@apple.com>
[Mac] Consolidate bits of willSendRequest implementation
https://bugs.webkit.org/show_bug.cgi?id=112932
Reviewed by Brady Eidson.
Moved some logic from WebCoreResourceHandleAsDelegate to ResourceHandle for clarity.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::willSendRequest):
(-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
2013-03-21 Praveen R Jadhav <praveen.j@samsung.com>
Remove AudioGain.idl from compilation.
https://bugs.webkit.org/show_bug.cgi?id=112650
Reviewed by Chris Rogers.
Spec: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#GainNode
https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBufferSourceNode
AudioParam serves the same purpose as AudioGain. Infact, AudioGain inherits
AudioParam class and doesn't have its own member functions/parameters. Also,
AudioGain is not part of WebAudio W3C specifications.
Test: webaudio/gain-basic.html
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
* Modules/webaudio/AudioBufferSourceNode.h:
(AudioBufferSourceNode):
(WebCore::AudioBufferSourceNode::gain):
* Modules/webaudio/AudioBufferSourceNode.idl:
* Modules/webaudio/AudioGain.h: Removed.
* Modules/webaudio/AudioGain.idl: Removed.
* Modules/webaudio/GainNode.cpp:
(WebCore::GainNode::GainNode):
* Modules/webaudio/GainNode.h:
(WebCore):
(WebCore::GainNode::create):
(GainNode):
(WebCore::GainNode::gain):
* Modules/webaudio/GainNode.idl:
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::PannerNode):
* Modules/webaudio/PannerNode.h:
(WebCore::PannerNode::distanceGain):
(WebCore::PannerNode::coneGain):
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
2013-03-21 Dominic Mazzoni <dmazzoni@google.com>
Implement Web Speech Synthesis for Chromium
https://bugs.webkit.org/show_bug.cgi?id=111695
Reviewed by Adam Barth.
Straightforward implementation of speech synthesis
for Chromium by exposing interfaces for the platform
to implement.
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::boundaryEventOccurred):
(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didPauseSpeaking):
(WebCore::SpeechSynthesis::didResumeSpeaking):
(WebCore::SpeechSynthesis::didFinishSpeaking):
(WebCore::SpeechSynthesis::speakingErrorOccurred):
(WebCore):
* Modules/speech/SpeechSynthesis.h:
(SpeechSynthesis):
* Modules/speech/SpeechSynthesisUtterance.cpp:
(WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
(WebCore):
(WebCore::SpeechSynthesisUtterance::~SpeechSynthesisUtterance):
(WebCore::SpeechSynthesisUtterance::setVoice):
* Modules/speech/SpeechSynthesisUtterance.h:
(SpeechSynthesisUtterance):
(WebCore::SpeechSynthesisUtterance::text):
(WebCore::SpeechSynthesisUtterance::setText):
(WebCore::SpeechSynthesisUtterance::lang):
(WebCore::SpeechSynthesisUtterance::setLang):
(WebCore::SpeechSynthesisUtterance::volume):
(WebCore::SpeechSynthesisUtterance::setVolume):
(WebCore::SpeechSynthesisUtterance::rate):
(WebCore::SpeechSynthesisUtterance::setRate):
(WebCore::SpeechSynthesisUtterance::pitch):
(WebCore::SpeechSynthesisUtterance::setPitch):
(WebCore::SpeechSynthesisUtterance::startTime):
(WebCore::SpeechSynthesisUtterance::setStartTime):
(WebCore::SpeechSynthesisUtterance::platformUtterance):
* Modules/speech/SpeechSynthesisVoice.h:
(WebCore::SpeechSynthesisVoice::~SpeechSynthesisVoice):
* WebCore.exp.in:
* WebCore.gypi:
* platform/PlatformSpeechSynthesis.h:
(PlatformSpeechSynthesis):
* platform/PlatformSpeechSynthesisUtterance.cpp:
(WebCore):
(WebCore::PlatformSpeechSynthesisUtterance::create):
* platform/PlatformSpeechSynthesisUtterance.h:
(PlatformSpeechSynthesisUtterance):
(WebCore::PlatformSpeechSynthesisUtterance::setClient):
* platform/PlatformSpeechSynthesisVoice.cpp:
(WebCore):
(WebCore::PlatformSpeechSynthesisVoice::create):
(WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
* platform/PlatformSpeechSynthesisVoice.h:
(PlatformSpeechSynthesisVoice):
(WebCore::PlatformSpeechSynthesisVoice::setVoiceURI):
(WebCore::PlatformSpeechSynthesisVoice::setName):
(WebCore::PlatformSpeechSynthesisVoice::setLang):
(WebCore::PlatformSpeechSynthesisVoice::setLocalService):
(WebCore::PlatformSpeechSynthesisVoice::setIsDefault):
* platform/PlatformSpeechSynthesizer.cpp:
(WebCore::PlatformSpeechSynthesizer::create):
(WebCore::PlatformSpeechSynthesizer::setVoiceList):
(WebCore):
* platform/PlatformSpeechSynthesizer.h:
(WebKit):
(PlatformSpeechSynthesizerClient):
(PlatformSpeechSynthesizer):
* platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Added.
(WebCore):
(WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
(WebCore::PlatformSpeechSynthesizer::speak):
(WebCore::PlatformSpeechSynthesizer::pause):
(WebCore::PlatformSpeechSynthesizer::resume):
(WebCore::PlatformSpeechSynthesizer::cancel):
* platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Added.
(WebKit):
(WebKit::WebSpeechSynthesisUtterance::WebSpeechSynthesisUtterance):
(WebKit::WebSpeechSynthesisUtterance::operator=):
(WebKit::WebSpeechSynthesisUtterance::assign):
(WebKit::WebSpeechSynthesisUtterance::reset):
(WebKit::WebSpeechSynthesisUtterance::operator PassRefPtr<PlatformSpeechSynthesisUtterance>):
(WebKit::WebSpeechSynthesisUtterance::operator PlatformSpeechSynthesisUtterance*):
(WebKit::WebSpeechSynthesisUtterance::text):
(WebKit::WebSpeechSynthesisUtterance::lang):
(WebKit::WebSpeechSynthesisUtterance::voice):
(WebKit::WebSpeechSynthesisUtterance::volume):
(WebKit::WebSpeechSynthesisUtterance::rate):
(WebKit::WebSpeechSynthesisUtterance::pitch):
(WebKit::WebSpeechSynthesisUtterance::startTime):
* platform/chromium/support/WebSpeechSynthesisVoice.cpp: Added.
(WebKit):
(WebKit::WebSpeechSynthesisVoice::assign):
(WebKit::WebSpeechSynthesisVoice::reset):
(WebKit::WebSpeechSynthesisVoice::setVoiceURI):
(WebKit::WebSpeechSynthesisVoice::setName):
(WebKit::WebSpeechSynthesisVoice::setLanguage):
(WebKit::WebSpeechSynthesisVoice::setIsLocalService):
(WebKit::WebSpeechSynthesisVoice::setIsDefault):
(WebKit::WebSpeechSynthesisVoice::operator PassRefPtr<WebCore::PlatformSpeechSynthesisVoice>):
* platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Added.
(WebCore):
(WebCore::WebSpeechSynthesizerClientImpl::WebSpeechSynthesizerClientImpl):
(WebCore::WebSpeechSynthesizerClientImpl::~WebSpeechSynthesizerClientImpl):
(WebCore::WebSpeechSynthesizerClientImpl::setVoiceList):
(WebCore::WebSpeechSynthesizerClientImpl::didStartSpeaking):
(WebCore::WebSpeechSynthesizerClientImpl::didFinishSpeaking):
(WebCore::WebSpeechSynthesizerClientImpl::didPauseSpeaking):
(WebCore::WebSpeechSynthesizerClientImpl::didResumeSpeaking):
(WebCore::WebSpeechSynthesizerClientImpl::speakingErrorOccurred):
(WebCore::WebSpeechSynthesizerClientImpl::wordBoundaryEventOccurred):
(WebCore::WebSpeechSynthesizerClientImpl::sentenceBoundaryEventOccurred):
* platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Added.
(WebCore):
(WebSpeechSynthesizerClientImpl):
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
(WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
(WebCore):
(WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::speak):
* platform/mock/PlatformSpeechSynthesizerMock.cpp:
(WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
(WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
(WebCore::PlatformSpeechSynthesizerMock::speak):
* platform/mock/PlatformSpeechSynthesizerMock.h:
(PlatformSpeechSynthesizerMock):
2013-03-21 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Properly layout spanning grid items with minmax grid tracks
https://bugs.webkit.org/show_bug.cgi?id=112389
Reviewed by Tony Chang.
This change updates our core minmax resolution function to be spanning grid
items aware. The new implementation of the algorithm doesn't totally match
the specification but it is fairly close that it's a good first pass. The
extra complexity in the specification needs to be carefully examinated
first (not to mention the probable change in the core layout algorithm).
Tests: fast/css-grid-layout/minmax-spanning-resolution-columns.html
fast/css-grid-layout/minmax-spanning-resolution-rows.html
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
Updated this function to account for spanning grid items by:
- iterating over all spanned grid tracks.
- removing any used breadth from all spanned grid tracks.
2013-03-21 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
[GStreamer] New reference returned by g_main_context_new() must be freed
https://bugs.webkit.org/show_bug.cgi?id=112899
Reviewed by Kenneth Rohde Christiansen.
Fix a memory leak by adopting the new reference returned
by g_main_context_new().
No new tests. No change in behavior.
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::AudioFileReader::createBus):
2013-03-21 Carlos Garcia Campos <cargarcia@rim.com>
[BlackBerry] Add ScrollingCoordinatorBlackBerry implementation
https://bugs.webkit.org/show_bug.cgi?id=112915
Reviewed by Rob Buis.
* PlatformBlackBerry.cmake: Add page/scrolling/blackberry to the
indlude dir list.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::create): Create a
ScrollingCoordinatorBlackBerry for the BlackBerry platform.
* page/scrolling/blackberry/ScrollingCoordinatorBlackBerry.cpp: Added.
(WebCore):
(WebCore::ScrollingCoordinatorBlackBerry::ScrollingCoordinatorBlackBerry):
(WebCore::ScrollingCoordinatorBlackBerry::setLayerIsContainerForFixedPositionLayers):
(WebCore::ScrollingCoordinatorBlackBerry::setLayerIsFixedToContainerLayer):
(WebCore::ScrollingCoordinatorBlackBerry::setLayerFixedToContainerLayerEdge):
(WebCore::ScrollingCoordinatorBlackBerry::frameViewFrameRectDidChange):
(WebCore::ScrollingCoordinatorBlackBerry::frameViewContentsSizeDidChange):
* page/scrolling/blackberry/ScrollingCoordinatorBlackBerry.h: Added.
(WebCore):
(ScrollingCoordinatorBlackBerry):
(WebCore::ScrollingCoordinatorBlackBerry::supportsFixedPositionLayers):
* platform/graphics/PlatformLayer.h:
(WebCore): Add PlatformLayer definition for BlackBerry.
2013-03-18 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: Paint rectangles shown on hover over Timeline's paint records occasionally have wrong offsets
https://bugs.webkit.org/show_bug.cgi?id=112371
Reviewed by Pavel Feldman.
- pass frame to InspectorTimelineAgent::didPaint();
- convert paint coordinates to root view.
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willPaintImpl):
(WebCore::InspectorInstrumentation::didPaintImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::willPaint):
(WebCore::InspectorInstrumentation::didPaint):
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::didPaint):
* inspector/InspectorTimelineAgent.h:
(InspectorTimelineAgent):
2013-03-20 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: do not use inspector cookie in InspectorInstrumentation::{will,did}Paint
https://bugs.webkit.org/show_bug.cgi?id=112787
Reviewed by Pavel Feldman.
- pass frame, not inspector cookie to InspectorInstrumentation::didPaint;
- use frame to determine timeline agent in InspectorInstrumentation::didPaint.
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willPaintImpl):
(WebCore::InspectorInstrumentation::didPaintImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::willPaint):
(WebCore::InspectorInstrumentation::didPaint):
* page/FrameView.cpp:
(WebCore::FrameView::paintContents):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintContents):
2013-03-21 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] OOB access in RenderGrid with a grid item with negative position index
https://bugs.webkit.org/show_bug.cgi?id=112853
Reviewed by Tony Chang.
This issue was caused by us casting a negative int to a size_t by mistake. This
would make us not size the grid properly thus yielding to OOB access during the
rest of the layout.
Test: fast/css-grid-layout/grid-item-negative-indexes.html
* rendering/RenderGrid.cpp:
(WebCore::estimatedGridSizeForPosition):
Added this helper function to do the proper estimation and checks that our
position can be represented by a size_t.
(WebCore::RenderGrid::maximumIndexInDirection):
Updated to use estimatedGridSizeForPosition.
2013-03-21 Stephen White <senorblanco@chromium.org>
[skia] feConvolveMatrix should use accelerated path
https://bugs.webkit.org/show_bug.cgi?id=112828
Reviewed by James Robinson.
Covered by layout tests css3/filters/effect-reference*.html.
* WebCore.gypi:
Add FEConvolveMatrixSkia.cpp to the build.
* platform/graphics/filters/FEConvolveMatrix.h:
Enable the skia accelerated path for feConvolveMatrix.
* platform/graphics/filters/skia/FEConvolveMatrixSkia.cpp:
(WebCore::FEConvolveMatrix::createImageFilter):
Implement building/conversion from FEConvolveMatrix to
SkMatrixConvolutionImageFilter.
2013-03-21 Martin Robinson <mrobinson@igalia.com>
Source/ThirdParty/leveldb/db/builder.cc does not build on systems without <endian.h>
https://bugs.webkit.org/show_bug.cgi?id=111817
Reviewed by Gustavo Noronha Silva.
* GNUmakefile.am: Add the appropriate flags to the LevelDB build if we are on FreeBSD
or OS X.
2013-03-21 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Support default grid items sizing
https://bugs.webkit.org/show_bug.cgi?id=103333
Reviewed by Tony Chang.
Tests: fast/css-grid-layout/grid-auto-columns-rows-auto-flow-resolution.html
fast/css-grid-layout/grid-auto-columns-rows-resolution.html
fast/css-grid-layout/grid-auto-columns-rows-update.html
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::gridTrackSize):
Core of the change: return the grid-auto-{rows|columns} instead of a pre-defined value.
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
Fixed a latent bug: we need to iterate over the internal grid representation instead of the
style's rows / columns as the latter doesn't account for implicit rows / columns.
2013-03-21 Adam Barth <abarth@webkit.org>
HTMLNames should construct strings at compile time
https://bugs.webkit.org/show_bug.cgi?id=112831
Reviewed by Darin Adler.
This patch teaches make_names how to construct strings at compile time,
eliminating a large number of startup mallocs.
* WebCore.gyp/WebCore.gyp:
* WebCore.gyp/scripts/action_makenames.py:
- Teach the Chromium build how to deal with Perl modules.
* bindings/scripts/StaticString.pm: Added.
- A Perl module for constructing static strings.
(GenerateStrings):
(GenerateValidateStrings):
* dom/QualifiedName.cpp:
(WebCore::createQualifiedName):
- createQualifiedName now takes an already-constructed StringImpl
object.
* dom/QualifiedName.h:
* dom/make_names.pl:
(valueForName):
(namesToStrings):
(printNamesCppFile):
(printDefinitions):
- Teach make_names how to use StaticString.pm.
2013-03-21 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][WebGL] Implement a common GraphicsSurface Implementation.
https://bugs.webkit.org/show_bug.cgi?id=111759
Reviewed by Kenneth Rohde Christiansen.
Covered by existing WebGL tests.
This is in preparation to add transport surface support for GLES2.
This patch makes it easy to share the core logic of using
Transport Surface and client on GLX and GLES2 backends without
any code duplication.
* PlatformEfl.cmake:
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::initialize):
(WebCore::GraphicsContext3DPrivate::releaseResources):
(WebCore::GraphicsContext3DPrivate::prepareBuffer):
(WebCore::GraphicsContext3DPrivate::createGraphicsSurface):
(WebCore::GraphicsContext3DPrivate::didResizeCanvas):
(WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
* platform/graphics/efl/GraphicsContext3DPrivate.h:
(GraphicsContext3DPrivate):
TransportSurface related code is moved to GraphicsSurfaceCommon.
As GraphicsSurface is deleted on resize, added logic to ensure that
current buffer is not deleted before having the shared buffer
with correct size. This would avoid any flashing during resize.
* platform/graphics/opengl/GLPlatformSurface.cpp:
(WebCore::GLPlatformSurface::createTransportSurface):
* platform/graphics/opengl/GLPlatformSurface.h:
* platform/graphics/surfaces/efl/GLTransportSurface.cpp: Renamed from Source/WebCore/platform/graphics/surfaces/GLTransportSurface.cpp.
(WebCore):
(WebCore::GLTransportSurface::GLTransportSurface):
(WebCore::GLTransportSurface::~GLTransportSurface):
(WebCore::GLTransportSurface::updateContents):
(WebCore::GLTransportSurface::setGeometry):
(WebCore::GLTransportSurface::destroy):
(WebCore::GLTransportSurface::draw):
(WebCore::GLTransportSurface::bindArrayBuffer):
(WebCore::GLTransportSurface::updateTransformationMatrix):
(WebCore::GLTransportSurface::initializeShaderProgram):
(WebCore::GLTransportSurfaceClient::createTransportSurfaceClient):
(WebCore::GLTransportSurfaceClient::GLTransportSurfaceClient):
(WebCore::GLTransportSurfaceClient::~GLTransportSurfaceClient):
(WebCore::GLTransportSurfaceClient::destroy):
(WebCore::GLTransportSurfaceClient::prepareTexture):
(WebCore::GLTransportSurfaceClient::createTexture):
* platform/graphics/surfaces/efl/GLTransportSurface.h: Renamed from Source/WebCore/platform/graphics/surfaces/GLTransportSurface.h.
(WebCore):
(GLTransportSurface):
(GLTransportSurfaceClient):
(WebCore::GLTransportSurfaceClient::texture):
(WebCore::GLTransportSurfaceClient::hasAlpha):
Moved TransportSurface to EFL folder as this is being used by EFL port only.
Added a base class for TransportSurfaceClient.
* platform/graphics/surfaces/efl/GraphicsSurfaceCommon.cpp: Added.
(WebCore):
(GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::destroy):
(WebCore::GraphicsSurfacePrivate::initializeTransportSurface):
(WebCore::GraphicsSurfacePrivate::makeContextCurrent):
(WebCore::GraphicsSurfacePrivate::copyFromTexture):
(WebCore::GraphicsSurfacePrivate::handle):
(WebCore::GraphicsSurfacePrivate::updateClientBuffer):
(WebCore::GraphicsSurfacePrivate::flags):
(WebCore::GraphicsSurfacePrivate::rect):
(WebCore::GraphicsSurfacePrivate::size):
(WebCore::GraphicsSurfacePrivate::textureId):
(WebCore::GraphicsSurfacePrivate::initializeClient):
(WebCore::GraphicsSurface::platformExport):
(WebCore::GraphicsSurface::platformGetTextureID):
(WebCore::GraphicsSurface::platformCopyToGLTexture):
(WebCore::GraphicsSurface::platformCopyFromTexture):
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
(WebCore::GraphicsSurface::platformFrontBuffer):
(WebCore::GraphicsSurface::platformSwapBuffers):
(WebCore::GraphicsSurface::platformSize):
(WebCore::GraphicsSurface::platformCreate):
(WebCore::GraphicsSurface::platformImport):
(WebCore::GraphicsSurface::platformLock):
(WebCore::GraphicsSurface::platformUnlock):
(WebCore::GraphicsSurface::platformDestroy):
(WebCore::GraphicsSurface::platformBeginPaint):
(WebCore::GraphicsSurface::createReadOnlyImage):
GraphicsSurface implementation to be shared by both GLX and GLES2.
* platform/graphics/surfaces/egl/EGLSurface.cpp:
(WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
* platform/graphics/surfaces/egl/EGLSurface.h:
(EGLWindowTransportSurface):
* platform/graphics/surfaces/glx/GLXSurface.cpp:
(WebCore):
(WebCore::resolveGLMethods):
(WebCore::isMesaGLX):
(WebCore::GLXTransportSurface::GLXTransportSurface):
(WebCore::GLXTransportSurfaceClient::GLXTransportSurfaceClient):
(WebCore::GLXTransportSurfaceClient::~GLXTransportSurfaceClient):
(WebCore::GLXTransportSurfaceClient::destroy):
(WebCore::GLXTransportSurfaceClient::prepareTexture):
* platform/graphics/surfaces/glx/GLXSurface.h:
(GLXTransportSurface):
(GLXTransportSurfaceClient):
(WebCore):
GLXTransportSurfaceClient implementation.
2013-03-21 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r146454.
http://trac.webkit.org/changeset/146454
https://bugs.webkit.org/show_bug.cgi?id=112906
compile failures (Requested by antonm on #webkit).
* WebCore.gypi:
* platform/graphics/filters/FEConvolveMatrix.h:
(FEConvolveMatrix):
* platform/graphics/filters/skia/FEConvolveMatrixSkia.cpp: Removed.
2013-03-21 Mike Reed <reed@google.com>
Remove obsolete conditionals around calling SkTypeface::getUnitsPerEm()
https://bugs.webkit.org/show_bug.cgi?id=112846
Reviewed by Stephen White.
Existing complex-text layouttests exercise this code.
* platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
(WebCore::FontPlatformData::emSizeInFontUnits):
2013-03-21 Stephen White <senorblanco@chromium.org>
[skia] feConvolveMatrix should use accelerated path
https://bugs.webkit.org/show_bug.cgi?id=112828
Reviewed by James Robinson.
Covered by layout tests css3/filters/effect-reference*.html.
* WebCore.gypi:
Add FEConvolveMatrixSkia.cpp to the build.
* platform/graphics/filters/FEConvolveMatrix.h:
Enable the skia accelerated path for feConvolveMatrix.
* platform/graphics/filters/skia/FEConvolveMatrixSkia.cpp:
(WebCore::FEConvolveMatrix::createImageFilter):
Implement building/conversion from FEConvolveMatrix to
SkMatrixConvolutionImageFilter.
2013-03-21 Kunihiko Sakamoto <ksakamoto@chromium.org>
Refactoring: Reorganize datetime field element parameters
https://bugs.webkit.org/show_bug.cgi?id=112877
Reviewed by Kent Tamura.
Before this patch, the field element constructors took minimum/maximum
as a pair of integers, and step/stepbase as a DateTimeNumericFieldElement::Parameters.
This patch makes these constructors to take a Range (for minimum/maximum)
and a Step (for step/stepbase).
No new tests. Just refactoring.
* html/shadow/DateTimeEditElement.cpp:
(DateTimeEditBuilder): Replaced min/max data members by Ranges.
(WebCore::DateTimeEditBuilder::DateTimeEditBuilder):
(WebCore::DateTimeEditBuilder::visitField):
(WebCore::DateTimeEditBuilder::shouldAMPMFieldDisabled):
(WebCore::DateTimeEditBuilder::shouldDayOfMonthFieldDisabled):
(WebCore::DateTimeEditBuilder::shouldHourFieldDisabled):
(WebCore::DateTimeEditBuilder::shouldMillisecondFieldDisabled):
(WebCore::DateTimeEditBuilder::shouldMinuteFieldDisabled):
(WebCore::DateTimeEditBuilder::shouldSecondFieldDisabled):
(WebCore::DateTimeEditBuilder::createStep):
* html/shadow/DateTimeFieldElements.cpp:
(WebCore::DateTimeDayFieldElement::DateTimeDayFieldElement):
(WebCore::DateTimeDayFieldElement::create):
(WebCore::DateTimeHourFieldElementBase::DateTimeHourFieldElementBase):
(WebCore::DateTimeHour11FieldElement::DateTimeHour11FieldElement):
(WebCore::DateTimeHour11FieldElement::create):
(WebCore::DateTimeHour12FieldElement::DateTimeHour12FieldElement):
(WebCore::DateTimeHour12FieldElement::create):
(WebCore::DateTimeHour23FieldElement::DateTimeHour23FieldElement):
(WebCore::DateTimeHour23FieldElement::create):
(WebCore::DateTimeHour24FieldElement::DateTimeHour24FieldElement):
(WebCore::DateTimeHour24FieldElement::create):
(WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement):
(WebCore::DateTimeMillisecondFieldElement::create):
(WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement):
(WebCore::DateTimeMinuteFieldElement::create):
(WebCore::DateTimeMonthFieldElement::DateTimeMonthFieldElement):
(WebCore::DateTimeMonthFieldElement::create):
(WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement):
(WebCore::DateTimeSecondFieldElement::create):
(WebCore::DateTimeWeekFieldElement::DateTimeWeekFieldElement):
(WebCore::DateTimeWeekFieldElement::create):
* html/shadow/DateTimeFieldElements.h:
(DateTimeDayFieldElement):
(DateTimeHourFieldElementBase):
(DateTimeHour11FieldElement):
(DateTimeHour12FieldElement):
(DateTimeHour23FieldElement):
(DateTimeHour24FieldElement):
(DateTimeMillisecondFieldElement):
(DateTimeMinuteFieldElement):
(DateTimeMonthFieldElement):
(DateTimeSecondFieldElement):
(DateTimeWeekFieldElement):
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore):
(WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
(WebCore::DateTimeNumericFieldElement::roundDown):
(WebCore::DateTimeNumericFieldElement::roundUp):
* html/shadow/DateTimeNumericFieldElement.h:
(WebCore::DateTimeNumericFieldElement::Step::Step): Renamed from Parameters.
(WebCore::DateTimeNumericFieldElement::Range::Range):
(WebCore::DateTimeNumericFieldElement::Range::isSingleton): Returns true if the range is a singleton range (i.e. contains exactly one value).
(Range): Now it's parameter type, hence public.
(DateTimeNumericFieldElement): Replaced two int members (m_step and m_stepBase) by a Range.
2013-03-21 Sergey Ryazanov <serya@chromium.org>
Web Inspector: Track CSS error location information.
https://bugs.webkit.org/show_bug.cgi?id=111314
Added CSS syntax error reporting to some (other rules will be covered later) error recovery grammar rules.
Added code to CSSParser to allow track error location information.
Added empty rule to declaration_list. Needed to not report error about declarations like "body {}".
Added helper grammar rule "errors: error | errors error". Handles the same grammar as "error" but simplifies error location tracking.
Reviewed by Pavel Feldman.
Test: inspector/console/console-css-warnings.html
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::CSSParser):
(WebCore::CSSParser::currentLocation):
(WebCore):
(WebCore::CSSParser::realLex):
* css/CSSParser.h:
(CSSParser):
2013-03-21 Sergey Ryazanov <serya@chromium.org>
Changing "#define YYDEBUG 0" to 1 causing compilation error
https://bugs.webkit.org/show_bug.cgi?id=111178
Reviewed by Pavel Feldman.
Code that reference tokens can't be placed into CSSGrammar.yy.include because it's included before tokens defined.
YYDEBUG can't be used in CSSGrammar.yy.in because the #define is only defined in CSSGrammar.yy.include. This
change simplifies CSS debugging letting manipulate only #define YYDEBUG in CSSGrammar.yy.include and/or in CSSParser.cpp.
* css/CSSGrammar.y.in:
* css/CSSGrammar.y.includes:
2013-03-21 Nate Chapin <japhet@chromium.org>
Merge MainResourceLoader into DocumentLoader
https://bugs.webkit.org/show_bug.cgi?id=104969
Reviewed by Adam Barth.
No new tests, refactor only.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::mainResourceLoader):
(WebCore::DocumentLoader::~DocumentLoader): Move main resource clearing from
~MainResourceLoader.
(WebCore::DocumentLoader::mainResourceData):
(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::notifyFinished): Moved from MainResourceLoader::notifyFinished.
(WebCore):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::handleSubstituteDataLoadNow):
(WebCore::DocumentLoader::redirectReceived):
(WebCore::DocumentLoader::continueAfterNavigationPolicy):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::continueAfterContentPolicy):
(WebCore::DocumentLoader::reportMemoryUsage):
(WebCore::DocumentLoader::dataReceived):
(WebCore::DocumentLoader::clearMainResourceLoader):
(WebCore::DocumentLoader::setDefersLoading):
(WebCore::DocumentLoader::setMainResourceDataBufferingPolicy):
(WebCore::DocumentLoader::addSubresourceLoader):
(WebCore::DocumentLoader::maybeLoadEmpty):
(WebCore::DocumentLoader::startLoadingMainResource): Don't keep separate checks
for normal and empty loads, just use a single boolean.
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::isLoadingMainResource):
* loader/MainResourceLoader.cpp: Removed.
* loader/MainResourceLoader.h: Removed.
* loader/mac/DocumentLoaderMac.cpp:
(WebCore::DocumentLoader::schedule):
(WebCore::DocumentLoader::unschedule):
2013-03-20 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. draw background for the FlameChart overview pane with the CPU aggregated data.
https://bugs.webkit.org/show_bug.cgi?id=112823
Reviewed by Yury Semikhatsky.
The idea of the patch is to collect the data about stack depth for the each X
and draw a line with help of this data.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart):
(WebInspector.FlameChart.prototype.onResize):
(WebInspector.FlameChart.prototype._drawOverviewCanvas):
(WebInspector.FlameChart.prototype.update):
2013-03-21 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Settings] Fix JS compiler warnings.
https://bugs.webkit.org/show_bug.cgi?id=112879
Reviewed by Pavel Feldman.
Removed erroneous JSDoc.
* inspector/front-end/Settings.js: Removed erroneous JSDoc.
2013-03-20 Simon Fraser <simon.fraser@apple.com>
Make GraphicsLayerCA::backingStoreMemoryEstimate() give a better estimate for tiled layers
https://bugs.webkit.org/show_bug.cgi?id=112864
Reviewed by Tim Horton.
If a GraphicsLayerCA has TiledBacking, ask the TiledBacking how
much memory it's using for tiles, rather than just using
height * width * 4.
Implement retainedTileBackingStoreMemory() in the TileController,
summing the memory used by parented tiles.
The original code was incorrectly multiplying by contentsScale
only once rather than twice (2x contents scale uses 4x as much memory).
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::backingStoreMemoryEstimate):
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::retainedTileBackingStoreMemory):
2013-03-20 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r146419.
http://trac.webkit.org/changeset/146419
https://bugs.webkit.org/show_bug.cgi?id=112870
Broke many tests on debug builds (Requested by rniwa_ on
#webkit).
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gyp/WebCore.gyp:
* WebCore.gyp/scripts/action_makenames.py:
(main):
* bindings/scripts/StaticString.pm: Removed.
* dom/QualifiedName.cpp:
(WebCore::createQualifiedName):
* dom/QualifiedName.h:
(WebCore):
* dom/make_names.pl:
(printNamesCppFile):
(printDefinitions):
2013-03-20 Michael Pruett <michael@68k.org>
[JSC] Implement EnforceRange IDL attribute for integer conversions
https://bugs.webkit.org/show_bug.cgi?id=112506
Reviewed by Kentaro Hara.
Implement the EnforceRange attribute for JSC bindings.
The EnforceRange attribute requires a type error to be thrown when
converting an ECMAScript number which is beyond the representable
range of the IDL integer type.
Tests: fast/js/webidl-type-mapping.html
storage/indexeddb/cursor-advance-workers.html
storage/indexeddb/cursor-advance.html
storage/indexeddb/intversion-bad-parameters.html
* WebCore.exp.in:
* bindings/js/JSDOMBinding.cpp:
(WebCore):
(WebCore::enforceRange):
(WebCore::toInt32EnforceRange):
(WebCore::toUInt32EnforceRange):
(WebCore::toInt64):
(WebCore::toUInt64):
* bindings/js/JSDOMBinding.h:
(WebCore::toInt32):
(WebCore):
(WebCore::toUInt32):
* bindings/scripts/CodeGeneratorJS.pm:
(JSValueToNative):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetPrototypeFunctionItem):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjShortAttr):
(WebCore::setJSTestObjUnsignedShortAttr):
(WebCore::setJSTestObjLongAttr):
(WebCore::setJSTestObjLongLongAttr):
(WebCore::setJSTestObjUnsignedLongLongAttr):
(WebCore::setJSTestObjReflectedIntegralAttr):
(WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
(WebCore::setJSTestObjReflectedCustomIntegralAttr):
(WebCore::setJSTestObjAttrWithGetterException):
(WebCore::setJSTestObjAttrWithSetterException):
(WebCore::setJSTestObjWithScriptStateAttribute):
(WebCore::setJSTestObjConditionalAttr1):
(WebCore::setJSTestObjConditionalAttr2):
(WebCore::setJSTestObjConditionalAttr3):
(WebCore::setJSTestObjStrawberry):
(WebCore::setJSTestObjId):
(WebCore::setJSTestObjNullableLongSettableAttribute):
(WebCore::setJSTestObjNullableStringValue):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
(WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
(WebCore::jsTestObjPrototypeFunctionStrictFunction):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::setJSTestTypedefsUnsignedLongLongAttr):
(WebCore::setJSTestTypedefsAttrWithGetterException):
(WebCore::setJSTestTypedefsAttrWithSetterException):
2013-03-20 Hayato Ito <hayato@chromium.org>
Gesture events should include AllowShadowContent in hit testing
https://bugs.webkit.org/show_bug.cgi?id=112073
Reviewed by Dimitri Glazkov.
Support gesture events for Shadow DOM.
Now 'gesturetap' events can be correctly dispatched in shadow trees.
Test: fast/dom/shadow/gesture-tap.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureEvent):
2013-03-20 Adam Barth <abarth@webkit.org>
HTMLNames should construct strings at compile time
https://bugs.webkit.org/show_bug.cgi?id=112831
Reviewed by Darin Adler.
This patch teaches make_names how to construct strings at compile time,
eliminating a large number of startup mallocs.
* WebCore.gyp/WebCore.gyp:
* WebCore.gyp/scripts/action_makenames.py:
- Teach the Chromium build how to deal with Perl modules.
* bindings/scripts/StaticString.pm: Added.
- A Perl module for constructing static strings.
(GenerateStrings):
(GenerateValidateStrings):
* dom/QualifiedName.cpp:
(WebCore::createQualifiedName):
- createQualifiedName now takes an already-constructed StringImpl
object.
* dom/QualifiedName.h:
* dom/make_names.pl:
(valueForName):
(namesToStrings):
(printNamesCppFile):
(printDefinitions):
- Teach make_names how to use StaticString.pm.
2013-03-20 Matt Falkenhagen <falken@chromium.org>
Remove unnecessary calls to Node::disabled for <meter>, <progress>, and <output>
https://bugs.webkit.org/show_bug.cgi?id=112767
Reviewed by Kent Tamura.
This is part of a refactoring to move Node::disabled to HTMLFormControlElement::disabled.
The concept of disabled is just a form control element one.
HTMLMeterElement, HTMLOutputElement, and HTMLProgressElement never
have disabled() return true, so we can remove the call. In addition,
HTMLMeterElement and HTMLProgressElement no longer inherit from
HTMLFormControlElement, so we don't need to override supportsFocus.
No new tests because no behavior change.
* html/HTMLMeterElement.cpp:
* html/HTMLMeterElement.h:
* html/HTMLOutputElement.cpp:
(WebCore::HTMLOutputElement::supportsFocus):
* html/HTMLProgressElement.cpp:
* html/HTMLProgressElement.h:
2013-03-20 Jaehun Lim <ljaehun.lim@samsung.com>
[css3-text] Parsing -webkit-each-line value for text-indent from css3-text
https://bugs.webkit.org/show_bug.cgi?id=109021
Reviewed by Julien Chaffraix.
"each-line" is added for text-indent in CSS3.
http://dev.w3.org/csswg/css3-text/#each-line
This patch is the parsing part to support each-line value for text-indent.
"each-line" means "Indentation affects the first line of the block
container as well as each line after a forced line break, but does
not affect lines after a soft wrap break."
It's prefixed and guarded by CSS3_TEXT flag.
Tests: fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-inherited.html
fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
style.getPropertyCSSValue(text-indent) returns CSSPrimitiveValue when text-indent has only <length>
or <percentage> value, but returns CSSValueList when text-indent also has -webkit-each-line.
* css/CSSParser.cpp:
(WebCore::isSimpleLengthPropertyID): Removed CSSPropertyTextIndent case.
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseTextIndent): Added.
* css/CSSParser.h:
Parsed <length> or <percentage> with -webkit-each-line for text-indent.
* css/CSSValueKeywords.in: Added new -webkit-each-line keyword.
* css/StyleBuilder.cpp:
(ApplyPropertyTextIndent): Added.
(WebCore::ApplyPropertyTextIndent::applyInheritValue):
(WebCore::ApplyPropertyTextIndent::applyInitialValue):
(WebCore::ApplyPropertyTextIndent::applyValue):
(WebCore::ApplyPropertyTextIndent::createHandler):
(WebCore::StyleBuilder::StyleBuilder):
Added codes to handle applying text-indent offset and -webkit-each-line option to our style.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h: Added enum TextIndentLine.
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h: Added m_textIndentLine.
(StyleRareInheritedData):
Added the usual getter / setter / initial methods for m_textIndentLine.
2013-03-20 Tien-Ren Chen <trchen@chromium.org>
Correct coordinated scrolling for RTL iframe and overflow:scroll
https://bugs.webkit.org/show_bug.cgi?id=112088
Reviewed by James Robinson.
This patch adds appropriate offset in ScrollingCoordinatorChromium to
adjust impl-side scroll position to the range [0, maxPos - minPos].
This also corrects RenderLayer to return correct scroll position for RTL,
explained below:
There are 2 commonly used scroll offset coordinate systems in WebCore.
1. The scroll offset is the amount that needs to be translated when painting
child elements in a RenderBox. The value can be negative when there is
negative overflow (for RTL). The range will be within
[overflow_top_left_corner, overflow_bottom_right_corner - client_size].
This system is mainly used for painting and layer positioning.
2. The scroll offset will be always non-negative, and the range will be within
[0, content_size - client_size]. This system is mainly used for scrollbars.
scrollOrigin is defined to convert between the two systems. scrollOrigin is always
non-negative, and equivalent to -overflow_top_left_corner.
The first system is used for ScrollableArea::scrollPosition/minimumScrollPosition/
maximumScrollPosition function family. So is it implemented in ScrollView/Frameview.
RenderLayer errorneously implemented scrollPosition in the second system,
and worse, returned minimumScrollPosition/maximumScrollPosition were totally non-sense.
This patch corrects RenderLayer to use the first coordinate system.
Test: compositing/rtl/rtl-overflow-scrolling.html
ScrollingCoordinatorChromiumTest.rtlIframe
* page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
(WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollLayerDidChange):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollPosition):
(WebCore::RenderLayer::minimumScrollPosition):
(WebCore::RenderLayer::maximumScrollPosition):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2013-03-20 Jessie Berlin <jberlin@apple.com>
REGRESSION(r145592): AutodrainedPool.h. RunLoopTimer.h, SchedulePair.h are being copied into
the wrong location
https://bugs.webkit.org/show_bug.cgi?id=112833
Reviewed by Darin Adler.
Fix an incorrect include path.
* loader/DocumentLoader.h:
RunLoopTimer.h lives in wtf as of r145592.
2013-03-20 Kent Tamura <tkent@chromium.org>
Crash in Document::setFocusedNode if the frame of new focused node is detached in 'change' event handler
https://bugs.webkit.org/show_bug.cgi?id=112653
Reviewed by Dimitri Glazkov.
Test: fast/frames/detach-frame-during-focus.html
* page/FocusController.cpp:
(WebCore::FocusController::setFocusedNode):
A oldDocument->setFocusedNode call might dispatch a 'change' event for
an old focused node, and an event handler code might detach the
newFocusedFrame. So we should check it. Without the check, the following
newDocument->setFocusedNode call would crash because of null
Frame::page().
2013-03-20 Ryosuke Niwa <rniwa@webkit.org>
Assertion in LegacyWebArchive::create() in editing tests
https://bugs.webkit.org/show_bug.cgi?id=112642
Reviewed by Simon Fraser.
Address Simon's review comment. Don't convert String to MIMEType just to convert it back to String.
* platform/mac/PasteboardMac.mm:
(WebCore::fragmentFromWebArchive):
2013-03-20 Zan Dobersek <zdobersek@igalia.com>
[GTK] Build ANGLE sources into a separate library from libWebCore.la
https://bugs.webkit.org/show_bug.cgi?id=112778
Reviewed by Martin Robinson.
No new tests - no change in functionality.
* GNUmakefile.list.am: Remove the ANGLE sources listing, it's now placed in the ANGLE-specific GNUmakefile.am.
2011-03-20 Ryosuke Niwa <rniwa@webkit.org>
Assertion in LegacyWebArchive::create() in editing tests
https://bugs.webkit.org/show_bug.cgi?id=112642
Reviewed by Enrica Casucci.
It's possible for clipboard to be overriden between the time we retrieve clipboard types and the time
we actually retrieve the Web archive buffer. Add a null check to take this into account.
Also extracted fragmentFromWebArchive for clarity.
* platform/mac/PasteboardMac.mm:
(WebCore::fragmentFromWebArchive): Extracted.
(WebCore::Pasteboard::documentFragment):
2013-03-20 Chris Fleizach <cfleizach@apple.com>
WebSpeech: Crash in WebCore::PlatformSpeechSynthesisUtterance::client / WebCore::SpeechSynthesis::didResumeSpeaking
https://bugs.webkit.org/show_bug.cgi?id=112728
Reviewed by Tim Horton.
When cancel() is called, there was a delay in the platform returning and saying speech was finished, which caused
the m_currentSpeechUtterance variable to get deallocated but not cleared.
This patch fixes up the management of the utterances in SpeechSynthesis and the Mac platform given that
we can't rely on the platform to return immediately on a stop speaking job.
Test: platform/mac/fast/speechsynthesis/speech-synthesis-cancel-crash.html
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::cancel):
(WebCore::SpeechSynthesis::resume):
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper cancel]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakWord:ofString:]):
2013-03-20 Eric Carlson <eric.carlson@apple.com>
Unreviewed, fix Mac release build.
* page/CaptionUserPreferencesMac.mm:
(WebCore::languageIdentifier):
2013-03-20 Eric Carlson <eric.carlson@apple.com>
Allow ports specific text track menu
https://bugs.webkit.org/show_bug.cgi?id=112800
Reviewed by Dean Jackson.
No new tests, existing tests updated for changes.
* English.lproj/Localizable.strings: Add localizable strings for text track names.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): userPrefersCaptions -> shouldShowCaptions.
(WebCore::HTMLMediaElement::setSelectedTextTrack): toggleTrackAtIndex -> setSelectedTextTrack.
(WebCore::HTMLMediaElement::userPrefersCaptions): userPrefersCaptions -> shouldShowCaptions.
(WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Get preferences from CaptionUserPreferences
instead of from Settings.
(WebCore::HTMLMediaElement::setSelectedTextTrack): Renamed from toggleTrackAtIndex. Now takes
a TextTrack* instead of an int.
(WebCore::HTMLMediaElement::captionPreferencesChanged): Don't force a recalculation unless
captions are enabled/disabled to avoid unnecessary thrash.
* html/HTMLMediaElement.h:
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler): Use the menu to track
map instead of just the track index.
(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Build and configure the
menu from the menu to track map.
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): Start with a list
of tracks already sorted according to platform specific rules. Build a menu to track map
so tracks are retained while the menu is visible.
* html/shadow/MediaControlElements.h:
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::textTrackPreferencesChanged): Call closedCaptionTracksChanged so the
track menu will be rebuilt before it is shown again.
* html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::containsOnlyForcedSubtitles): New, passthrough to the private track.
(WebCore::InbandTextTrack::isMainProgramContent): Ditto.
(WebCore::InbandTextTrack::isEasyToRead): Ditto.
* html/track/InbandTextTrack.h:
* html/track/TextTrack.h:
* html/track/TextTrackList.cpp:
(WebCore::TextTrackList::contains): New.
* html/track/TextTrackList.h:
* page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::CaptionUserPreferences): Pull in from .h ditto.
(WebCore::CaptionUserPreferences::~CaptionUserPreferences): Ditto.
(WebCore::CaptionUserPreferences::shouldShowCaptions): Renamed from userPrefersCaptions.
(WebCore::CaptionUserPreferences::setShouldShowCaptions): New.
(WebCore::CaptionUserPreferences::userPrefersCaptions): Ditto.
(WebCore::CaptionUserPreferences::setUserPrefersCaptions): Ditto.
(WebCore::CaptionUserPreferences::userPrefersSubtitles): Ditto.
(WebCore::CaptionUserPreferences::setUserPrefersSubtitles): Ditto.
(WebCore::CaptionUserPreferences::userPrefersTextDescriptions): Ditto.
(WebCore::CaptionUserPreferences::setUserPrefersTextDescriptions): Ditto.
(WebCore::CaptionUserPreferences::displayNameForTrack): Ditto.
(WebCore::CaptionUserPreferences::sortedTrackListForMenu): Ditto.
* page/CaptionUserPreferences.h:
* page/CaptionUserPreferencesMac.h:
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::shouldShowCaptions): Renamed from userPrefersCaptions.
(WebCore::CaptionUserPreferencesMac::userPrefersCaptions): New.
(WebCore::CaptionUserPreferences::userPrefersSubtitles): Ditto.
(WebCore::trackDisplayName): Update logic used to build track title.
(WebCore::CaptionUserPreferencesMac::displayNameForTrack): Call trackDisplayName.
(WebCore::textTrackCompare): Text track title sort comparison function.
(WebCore::CaptionUserPreferencesMac::sortedTrackListForMenu): New. Sort the list of tracks
according to title, language, and user preferences.
* platform/Language.cpp:
(WebCore::displayNameForLanguageLocale): Don't leak the CFLocale.
* platform/LocalizedStrings.cpp:
(WebCore::textTrackCountryAndLanguageMenuItemText): New.
(WebCore::textTrackLanguageMenuItemText): Ditto.
(WebCore::closedCaptionTrackMenuItemText): Ditto.
(WebCore::sdhTrackMenuItemText): Ditto.
(WebCore::easyReaderTrackMenuItemText): Ditto.
* platform/LocalizedStrings.h:
* platform/graphics/InbandTextTrackPrivate.h:
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
(WebCore::InbandTextTrackPrivateAVFObjC::containsOnlyForcedSubtitles): New, return AVFoundation property.
(WebCore::InbandTextTrackPrivateAVFObjC::isMainProgramContent): Ditto.
(WebCore::InbandTextTrackPrivateAVFObjC::isEasyToRead): Ditto.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::setShouldDisplayTrackKind): Set setting via CaptionUserPreferences
instead of from Settings.
(WebCore::InternalSettings::shouldDisplayTrackKind): Get setting from CaptionUserPreferences
instead of from Settings.
2013-03-20 Zan Dobersek <zdobersek@igalia.com>
[GTK] Clean up TemporaryLinkStubs.cpp
https://bugs.webkit.org/show_bug.cgi?id=112820
Reviewed by Philippe Normand.
Clean up the TemporaryLinkStubs.cpp file, removing unnecessary includes and prettifying the code.
No new tests - no new functionality.
* platform/gtk/TemporaryLinkStubs.cpp:
(WebCore):
(WebCore::getSupportedKeySizes):
(WebCore::signedPublicKeyAndChallengeString):
(WebCore::userIdleTime):
2013-03-20 Yufeng Shen <miletus@chromium.org>
Remove PlatformEvent::GestureDoubleTap
https://bugs.webkit.org/show_bug.cgi?id=93045
Reviewed by Antonio Gomes.
PlatformEvent::GestureDoubleTap is not currently
used in WebCore and replaced by GestureTap with
tap count 2, so remove it.
Test: We are removing something that is not used, so
no new test. All existing tests pass.
* dom/GestureEvent.cpp:
(WebCore::GestureEvent::create):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureEvent):
* platform/PlatformEvent.h:
* platform/chromium/PopupContainer.cpp:
(WebCore::PopupContainer::handleGestureEvent):
2013-03-20 Ojan Vafai <ojan@chromium.org>
Move repaint methods from RenderObject to RenderBox
https://bugs.webkit.org/show_bug.cgi?id=112773
Reviewed by Julien Chaffraix.
repaintOverhangingFloats and repaintDuringLayoutIfMoved are only ever called
on RenderBoxes, so don't need to be on RenderObject. This also lets us
devirtualize repaintDuringLayoutIfMoved.
* rendering/RenderBox.h:
(WebCore::RenderBox::repaintOverhangingFloats):
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
2013-03-20 Christian Biesinger <cbiesinger@chromium.org>
Add a feature observer for RenderDeprecatedFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=112740
Reviewed by Tony Chang.
No new tests - only adding measurements.
* page/FeatureObserver.h:
Add constants for RenderDeprecatedFlexibleBox, and add separate
constants for its use in the UI and in extensions.
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
Call FeatureObserver. Check the document()->url() to see which
constant to use.
2013-03-20 Tim Horton <timothy_horton@apple.com>
Autosize should use documentRect height instead of scrollHeight
https://bugs.webkit.org/show_bug.cgi?id=112770
Reviewed by David Levin.
Autosizing fails to compute the correct height if the root element is very
small but the document has significant overflow.
No new tests; autosizing is not currently exposed in a testable way on Mac.
* page/FrameView.cpp:
(WebCore::FrameView::autoSizeIfEnabled):
2013-03-20 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Improper repainting when grid item change their position
https://bugs.webkit.org/show_bug.cgi?id=112749
Reviewed by Ojan Vafai.
Tests: fast/css-grid-layout/grid-element-change-columns-repaint.html
fast/css-grid-layout/grid-element-change-rows-repaint.html
fast/css-grid-layout/grid-item-change-column-repaint.html
fast/css-grid-layout/grid-item-change-row-repaint.html
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutGridItems):
Added a call to repaintDuringLayoutIfMoved to repaint moving grid items.
2013-03-20 Arvid Nilsson <anilsson@rim.com>
[BlackBerry] compositing/iframes/scroll-fixed-transformed-element.html fails in manual testing
https://bugs.webkit.org/show_bug.cgi?id=112806
Reviewed by Antonio Gomes.
PR 283363
When scrolling the iframe, the position: fixed element is correctly
positioned, that is, as if it was fixed with respect to the iframe's
viewport. When scrolling the main frame however, the fixed pos element
was positioned as if it was fixed with respect to the main frame's
viewport.
Fixed by falling back to using the WebKit-thread scroll position for
fixed positioning in LayerRenderer, if the override doesn't have a
position currently set, i.e. if we are not currently scrolling the
iframe.
The effects of the bug are only visual, i.e. not detectable by DRT.
Manually testable using compositing/iframes/scroll-fixed-transformed-element.html
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::updateLayersRecursive):
2013-03-20 Michael Pruett <michael@68k.org>
[V8] Simplify implementation of EnforceRange conversions
https://bugs.webkit.org/show_bug.cgi?id=112758
Reviewed by Kentaro Hara.
Factor out EnforceRange conversion into a helper function.
Simplify calculation for truncation.
Tests: fast/js/webidl-type-mapping.html
storage/indexeddb/cursor-advance.html
storage/indexeddb/cursor-advance-workers.html
storage/indexeddb/intversion-bad-parameters.html
* bindings/v8/V8Binding.cpp:
(WebCore::enforceRange):
(WebCore):
(WebCore::toInt32):
(WebCore::toUInt32):
(WebCore::toInt64):
(WebCore::toUInt64):
2013-03-20 Harald Alvestrand <hta@google.com>
Remove Local/Remote and RTCStatsElement from WebRTCStats API
https://bugs.webkit.org/show_bug.cgi?id=112678
Reviewed by Adam Barth.
Pure removal, remaining functionality covered by existing test.
* Modules/mediastream/RTCStatsReport.cpp:
* Modules/mediastream/RTCStatsReport.h:
(RTCStatsReport):
* Modules/mediastream/RTCStatsResponse.cpp:
* Modules/mediastream/RTCStatsResponse.h:
(RTCStatsResponse):
* platform/chromium/support/WebRTCStatsResponse.cpp:
* platform/mediastream/RTCStatsResponseBase.h:
(RTCStatsResponseBase):
2013-03-20 Xingnan Wang <xingnan.wang@intel.com>
ASSERTION FAILED: !m_renderingAutomaticPullNodes.size()
https://bugs.webkit.org/show_bug.cgi?id=112777
Reviewed by Chris Rogers.
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::~AudioContext):
2013-03-20 Rouslan Solomakhin <rouslan@chromium.org>
Copy-paste should not spellcheck when continuous spellcheck is turned off
https://bugs.webkit.org/show_bug.cgi?id=112464
Reviewed by Ryosuke Niwa.
Test: editing/spelling/spellcheck-paste-continuous-disabled.html
* WebCore.exp.in: Export WebCore::Editor::isContinuousSpellCheckingEnabled() and WebCore::Editor::toggleContinuousSpellChecking() for use by internals.
* WebCore.order: Export WebCore::Editor::isContinuousSpellCheckingEnabled() and WebCore::Editor::toggleContinuousSpellChecking() for use by internals.
* editing/Editor.cpp:
(WebCore::Editor::replaceSelectionWithFragment): Do not spellcheck if continuous spellcheck is turned off.
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState): Leave continuous spellcheck turned on after a test.
(WebCore::Internals::setContinuousSpellCheckingEnabled): Let tests enable and disable continuous spellcheck.
(WebCore):
* testing/Internals.h: Let tests enable and disable continuous spellcheck.
(Internals):
* testing/Internals.idl: Let tests enable and disable continuous spellcheck.
2013-03-20 Aaron Colwell <acolwell@chromium.org>
Add support for MediaSource::isTypeSupported()
https://bugs.webkit.org/show_bug.cgi?id=112301
Reviewed by Darin Fisher.
Test: http/tests/media/media-source/video-media-source-is-type-supported.html
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::addSourceBuffer): Added isTypeSupported() call to verify parameters
pass into this method.
(WebCore::MediaSource::isTypeSupported):
(WebCore):
* Modules/mediasource/MediaSource.h:
(MediaSource):
* Modules/mediasource/MediaSource.idl: Added isTypeSupported().
* platform/MIMETypeRegistry.h:
(MIMETypeRegistry): Added isSupportedMediaSourceMIMEType().
* platform/chromium/MIMETypeRegistryChromium.cpp:
(WebCore):
(WebCore::MIMETypeRegistry::isSupportedMediaSourceMIMEType): Implemented in terms of WebMimeRegistry::isSupportedMediaSourceMIMEType.
2013-03-20 Brent Fulgham <bfulgham@webkit.org>
[WinCairo] Unreviewed VS2010 build correction.
* WebCore.vcxproj/WebCore.vcxproj: Enable build of NetworkStorageSessionStub.cpp
for WinCairo port.
* WebCore.vcxproj/WebCore.vcxproj.filters: Correct build type of
CookieJarCurl from 'custom' to 'C++ source file'
2013-03-20 Marja Hölttä <marja@chromium.org>
[V8] Rename DOMDataStore::isMainWorldObject
https://bugs.webkit.org/show_bug.cgi?id=112817
Reviewed by Jochen Eisinger.
No new tests (no changes in functionality).
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::getWrapperFast):
(WebCore::DOMDataStore::getWrapper):
(WebCore::DOMDataStore::getWrapperForMainWorld):
(WebCore::DOMDataStore::setWrapper):
(WebCore::DOMDataStore::canExistInWorker):
2013-03-20 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. Provide Overview pane for better user expirience.
https://bugs.webkit.org/show_bug.cgi?id=112496
Reviewed by Yury Semikhatsky.
This patch implements basic part of Overview Pane in FlameChart.
The idea of the patch is to move everything into chart-container element.
And put OverviewGrid into new overview-container element.
Drive by change: fix the layout of the flame chart elements.
Drive by change: fix the drag window & drag resizer mechanics
for the case when the parent element has zero offsetLeft.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart):
(WebInspector.FlameChart.OverviewCalculator):
(WebInspector.FlameChart.OverviewCalculator.prototype._updateBoundaries):
(WebInspector.FlameChart.OverviewCalculator.prototype.computePosition):
(WebInspector.FlameChart.OverviewCalculator.prototype.formatTime):
(WebInspector.FlameChart.OverviewCalculator.prototype.maximumBoundary):
(WebInspector.FlameChart.OverviewCalculator.prototype.minimumBoundary):
(WebInspector.FlameChart.OverviewCalculator.prototype.boundarySpan):
(WebInspector.FlameChart.prototype._onWindowChanged):
(WebInspector.FlameChart.prototype._adjustXScale):
(WebInspector.FlameChart.prototype.update):
* inspector/front-end/OverviewGrid.js:
(WebInspector.OverviewGrid.Window):
(WebInspector.OverviewGrid.Window.prototype._resizerElementStartDragging):
(WebInspector.OverviewGrid.Window.prototype._leftResizeElementDragging):
(WebInspector.OverviewGrid.Window.prototype._rightResizeElementDragging):
(WebInspector.OverviewGrid.Window.prototype._startWindowSelectorDragging):
(WebInspector.OverviewGrid.Window.prototype._windowSelectorDragging):
(WebInspector.OverviewGrid.Window.prototype._endWindowSelectorDragging):
(WebInspector.OverviewGrid.Window.prototype._setWindowPosition):
(WebInspector.OverviewGrid.Window.prototype._onMouseWheel):
(WebInspector.OverviewGrid.WindowSelector):
* inspector/front-end/TimelineOverviewPane.js:
* inspector/front-end/flameChart.css:
(.chart-container .item-anchor):
(.overview-container):
(.chart-container):
(#flame-chart-overview-grid .resources-dividers-label-bar):
* inspector/front-end/inspectorCommon.css:
(.resources-divider-label):
2013-03-20 Sergey Ryazanov <serya@chromium.org>
Web Inspector: Plumbing CSS warnings
https://bugs.webkit.org/show_bug.cgi?id=111334
Reviewed by Pavel Feldman.
Adding a framework for plumbing CSS warnings from CSSParser/grammar to the Inspector console.
* css/CSSParser.cpp:
(WebCore::CSSParser::CSSParser):
(WebCore::CSSParser::parseSheet):
(WebCore::CSSParser::syntaxError):
(WebCore):
(WebCore::CSSParser::isLoggingErrors):
(WebCore::CSSParser::logError):
* css/CSSParser.h:
(CSSParser):
(CSSParser::Location):
(WebCore):
* css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::parseAuthorStyleSheet):
(WebCore::StyleSheetContents::parseString):
(WebCore::StyleSheetContents::parseStringAtLine):
* css/StyleSheetContents.h:
(StyleSheetContents):
* dom/StyleElement.cpp:
(WebCore::StyleElement::createSheet):
* page/PageConsole.cpp:
(WebCore::PageConsole::addMessage):
2013-03-20 Justin Novosad <junov@google.com>
[Chromium] Code cleanup: removing support for non-deferred 2d canvas rendering
https://bugs.webkit.org/show_bug.cgi?id=112605
Reviewed by James Robinson.
Deleting all the code that was used for propagating and supporting
the Chromium setting for disabling deferred 2d canvas rendering.
No new tests: Affected code paths covered by existing tests.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createImageBuffer):
* html/HTMLCanvasElement.h:
* page/Settings.in:
* platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::create):
(ImageBuffer):
* platform/graphics/blackberry/ImageBufferBlackBerry.cpp:
(WebCore::ImageBuffer::ImageBuffer):
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::ImageBuffer):
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::ImageBuffer):
* platform/graphics/chromium/Canvas2DLayerBridge.cpp:
(WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
(WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
(WebCore::Canvas2DLayerBridge::prepareForDraw):
(WebCore::Canvas2DLayerBridge::storageAllocatedForRecordingChanged):
(WebCore::Canvas2DLayerBridge::storageAllocatedForRecording):
(WebCore::Canvas2DLayerBridge::freeMemoryIfPossible):
(WebCore::Canvas2DLayerBridge::flush):
(WebCore::Canvas2DLayerBridge::skCanvas):
(WebCore::Canvas2DLayerBridge::prepareTexture):
(WebCore::Canvas2DLayerBridge::contextAcquired):
* platform/graphics/chromium/Canvas2DLayerBridge.h:
(WebCore::Canvas2DLayerBridge::create):
(Canvas2DLayerBridge):
* platform/graphics/qt/ImageBufferQt.cpp:
(WebCore::ImageBuffer::ImageBuffer):
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::createAcceleratedCanvas):
(WebCore::ImageBuffer::ImageBuffer):
* platform/graphics/wince/ImageBufferWinCE.cpp:
(WebCore::ImageBuffer::ImageBuffer):
* platform/graphics/wx/ImageBufferWx.cpp:
(WebCore::ImageBuffer::ImageBuffer):
2013-03-20 Mike West <mkwst@chromium.org>
Drop full URLs from cross-domain access errors caused by 'document.domain' mismatches.
https://bugs.webkit.org/show_bug.cgi?id=112813
Reviewed by Timothy Hatcher.
Following up on http://wkbug.com/112042, this patch brings 'document.domain'
mismatch error messages into line with the newly origin-only default
message. There will probably be two or three more patches in this series
just to keep the rebaselines down to something managably reviewable.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::crossDomainAccessErrorMessage):
Move the default message redefinition up out of the final 'return' so
that 'document.domain' mismatch errors grab the new text.
2013-03-20 Ken Kania <kkania@chromium.org>
Web Inspector: Add promptText param to Page.handleJavaScriptDialog
https://bugs.webkit.org/show_bug.cgi?id=112706
Reviewed by Pavel Feldman.
* inspector/Inspector.json:
* inspector/InspectorClient.h:
(WebCore::InspectorClient::handleJavaScriptDialog):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::handleJavaScriptDialog):
* inspector/InspectorPageAgent.h:
2013-03-20 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: fix SourceFrame.js compilation warning
https://bugs.webkit.org/show_bug.cgi?id=112804
Reviewed by Yury Semikhatsky.
No new tests: no change in behavior.
- Explicitly parse lineNumber from object property name.
- Add type annotations to ensure addMessageToSource is monomorphic.
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype.clearMessages):
2013-03-20 Dan Carney <dcarney@google.com>
[v8] unsafe persistent access in V8LazyEventListener
https://bugs.webkit.org/show_bug.cgi?id=112807
Reviewed by Kentaro Hara.
No new tests.
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::toObjectWrapper):
2013-03-20 Arvid Nilsson <anilsson@rim.com>
[BlackBerry] Enable appropriate vertex attribute arrays in LayerRenderer::useProgram()
https://bugs.webkit.org/show_bug.cgi?id=112757
Reviewed by Rob Buis.
PR 306465
Make the LayerRenderer and associated code more bullet-proof when it
comes to enabling vertex attribute arrays, by enabling them already
when LayerRenderer::useProgram() is called. This fixes a bug where the
video hole punch rectangle wasn't punched when preceding rendering
caused the vertex attribute array at index 0 to be disabled, such as
when rendering the text selection overlay immediately before video.
A number of places where the position attribute index was hard-coded
to 0 were also fixed. This causes no change in behavior, the position
attribute was really at 0, but nonetheless that shouldn't be hardcoded.
The effects of this patch are only manually testable.
* platform/graphics/blackberry/LayerCompositingThread.cpp:
(WebCore::LayerCompositingThread::drawTextures):
(WebCore::LayerCompositingThread::drawSurface):
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::compositeBuffer):
(WebCore::LayerRenderer::drawColor):
(WebCore::LayerRenderer::drawDebugBorder):
(WebCore::LayerRenderer::drawHolePunchRect):
(WebCore::LayerRenderer::compositeLayersRecursive):
(WebCore::LayerRenderer::useProgram):
2013-03-20 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] implement highlightRange method
https://bugs.webkit.org/show_bug.cgi?id=112802
Reviewed by Vsevolod Vlasov.
- Implement highlightRange/removeHighlight methods in
CodeMirrorTextEditor.
- Update TextEditor interface closure annotations.
No new tests.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor.prototype.removeHighlight):
(WebInspector.CodeMirrorTextEditor.prototype.highlightRange):
* inspector/front-end/DefaultTextEditor.js:
* inspector/front-end/TextEditor.js:
2013-03-20 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] show source location for codemirror text editor
https://bugs.webkit.org/show_bug.cgi?id=112798
Reviewed by Vsevolod Vlasov.
No new tests.
- Implement CodeMirrorTextEditor.copyRange method
- Fire "selectionChange" event for text editor delegate from
CodeMirrorTextEditor.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor):
(WebInspector.CodeMirrorTextEditor.prototype.copyRange):
(WebInspector.CodeMirrorTextEditor.prototype._cursorActivity):
2013-03-20 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r146331.
http://trac.webkit.org/changeset/146331
https://bugs.webkit.org/show_bug.cgi?id=112795
Does not work as expected (Requested by carewolf on #webkit).
* platform/graphics/qt/FontQt.cpp:
(WebCore::Font::initFormatForTextLayout):
2013-03-20 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Resources] Local Storage: "Add item" row height doesn't match underlying grid.
https://bugs.webkit.org/show_bug.cgi?id=112433
Reviewed by Pavel Feldman.
Fixed cell height to correspond grid step.
* inspector/front-end/dataGrid.css:
(.data-grid td): Fixed cell height to correspond grid step.
2013-03-20 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] New fast/text/word-space-with-kerning-3.html fails on Qt
https://bugs.webkit.org/show_bug.cgi?id=112668
Reviewed by Jocelyn Turcotte.
Kerning is on by default in Qt. This means we need to disable it
when WebCore does not request it.
* platform/graphics/qt/FontQt.cpp:
(WebCore::Font::initFormatForTextLayout):
2013-03-20 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: OverviewGrid rename classes according to names of js classes.
https://bugs.webkit.org/show_bug.cgi?id=112786
Reviewed by Yury Semikhatsky.
It is a part of meta bug 'extract OverviewGrid from TimelineOverviewPane'.
As the last step it renames timeline-...... classes to overview-grid-...... classes
and moves them to inspectorCommon.css
* inspector/front-end/OverviewGrid.js:
(WebInspector.OverviewGrid):
(WebInspector.OverviewGrid.Window):
(WebInspector.OverviewGrid.Window.prototype._startWindowSelectorDragging):
(WebInspector.OverviewGrid.WindowSelector):
(WebInspector.OverviewGrid.WindowSelector.prototype._createSelectorElement):
* inspector/front-end/inspectorCommon.css:
(.overview-grid-window-selector):
(.overview-grid-window):
(.overview-grid-dividers-background):
(.overview-grid-window-rulers):
(.overview-grid-window-resizer):
* inspector/front-end/timelinePanel.css:
(.timeline-frame-overview .overview-grid-window):
(.timeline-frame-overview .overview-grid-dividers-background):
2013-03-20 Dmitry Zvorygin <zvorygin@chromium.org>
Web Inspector: Switch Drawer animation from JavaScript to CSS transitions.
https://bugs.webkit.org/show_bug.cgi?id=112586
This is prerequisite to make Drawer work in overlay mode.
Reviewed by Vsevolod Vlasov.
* inspector/front-end/Drawer.js:
(WebInspector.Drawer):
(WebInspector.Drawer.prototype.show):
(WebInspector.Drawer.prototype.hide.this.animationFinished):
(WebInspector.Drawer.prototype.hide):
(WebInspector.Drawer.prototype.immediatelyFinishAnimation):
(WebInspector.Drawer.prototype._getAnimationStyles):
* inspector/front-end/UIUtils.js:
* inspector/front-end/inspector.css:
(.animate-slow *):
(.animate #main):
(.animate #floating-status-bar-container):
(.animate #drawer):
(.animate #bottom-status-bar-container > *):
2013-03-19 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [DataGrid] Refactorings.
https://bugs.webkit.org/show_bug.cgi?id=112690
Reviewed by Pavel Feldman.
1. Avoid using string literals;
2. Remove unused notifications; turn "populate" to method invocation;
3. Replace some getters with regular functions.
* inspector/front-end/DataGrid.js: Applied refactorings.
* inspector/front-end/ApplicationCacheItemsView.js: Adopted changes.
* inspector/front-end/BottomUpProfileDataGridTree.js: Ditto.
* inspector/front-end/CPUProfileView.js: Ditto.
* inspector/front-end/CSSSelectorProfileView.js: Ditto.
* inspector/front-end/CookiesTable.js: Ditto.
* inspector/front-end/DirectoryContentView.js: Ditto.
* inspector/front-end/HeapSnapshotDataGrids.js: Ditto.
* inspector/front-end/HeapSnapshotGridNodes.js: Ditto.
* inspector/front-end/NativeMemorySnapshotView.js: Ditto.
* inspector/front-end/NetworkPanel.js: Ditto.
* inspector/front-end/ProfileDataGridTree.js: Ditto.
* inspector/front-end/ResourceWebSocketFrameView.js: Ditto.
* inspector/front-end/TopDownProfileDataGridTree.js: Ditto.
* inspector/front-end/dataGrid.css: Ditto.
2013-03-19 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Support -webkit-font-smoothing
https://bugs.webkit.org/show_bug.cgi?id=106009
Reviewed by Jocelyn Turcotte.
Set QFont antialiasing settings based on the font smoothing settings in FontDescription.
* platform/graphics/qt/FontPlatformDataQt.cpp:
(WebCore::FontPlatformData::FontPlatformData):
2013-03-20 Alexei Filippov <alph@chromium.org>
Web Inspector: Allow toolbar customization
https://bugs.webkit.org/show_bug.cgi?id=112440
Adds a tools menu item that allows the user to show/hide
inspector panels on the toolbar.
Reviewed by Yury Semikhatsky.
* inspector/front-end/InspectorView.js:
* inspector/front-end/Settings.js:
(WebInspector.Settings):
(WebInspector.ExperimentsSettings):
* inspector/front-end/Toolbar.js:
(WebInspector.Toolbar):
(WebInspector.Toolbar.prototype.addPanel):
(WebInspector.Toolbar.prototype._isPanelVisibleByDefault):
(WebInspector.Toolbar.prototype.set _hidePanel):
(WebInspector.Toolbar.prototype._showPanel):
(WebInspector.Toolbar.prototype._togglePanelsMenu):
* inspector/front-end/inspector.css:
(#toolbar-panels-menu):
(#toolbar-panels-menu:hover):
(#toolbar-panels-menu:active):
* inspector/front-end/inspector.html:
2013-03-20 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Settings] Add "storage" parameter to WebInspector.Setting
https://bugs.webkit.org/show_bug.cgi?id=112667
Reviewed by Pavel Feldman.
New parameter will allow more options on how long setting will persist.
Possible options are: localStorage, sessionStorage and no-storage.
Additional change: use delete instead of .removeItem to make it possible
use any object as storage.
* inspector/front-end/Settings.js:
Added "storage" parameter and used is instead of "window.localStorage".
2013-03-20 Pan Deng <pan.deng@intel.com>
Web Inspector: [Network] Fix the bug of WebSocketFrameView crash.
https://bugs.webkit.org/show_bug.cgi?id=112771.
Reviewed by Pavel Feldman.
WebSocketFrameView crashes when websocket receives an error message, this
patch fixes this problem, and error message will be shown in dataGrid as expected.
No new tests.
* inspector/front-end/ResourceWebSocketFrameView.js:
(WebInspector.ResourceWebSocketFrameView): Handle the errorMessage case.
2013-03-20 Dmitry Zvorygin <zvorygin@chromium.org>
Remove remainings of obsolete LogLevels and MessageSources from inspector JS part.
https://bugs.webkit.org/show_bug.cgi?id=112709
By the way tuned messagesources in ApplicationCacheGroup.
Reviewed by Pavel Feldman.
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype.toMessageElement):
(WebInspector.ConsoleMessageImpl.prototype.toString):
* inspector/front-end/ConsoleModel.js:
* inspector/front-end/ExtensionAPI.js:
(defineCommonExtensionSymbols):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype._onAddConsoleMessage):
(WebInspector.ExtensionServer.prototype._makeConsoleMessage):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::didReceiveResponse):
(WebCore::ApplicationCacheGroup::didFinishLoading):
(WebCore::ApplicationCacheGroup::didFail):
2013-03-20 Krzysztof Czech <k.czech@samsung.com>
[GTK] accessibility/aria-scrollbar-role.html is failing
https://bugs.webkit.org/show_bug.cgi?id=98358
Reviewed by Martin Robinson.
Adds support for checking an orientation attribute of accessibility object.
AccessibilityObject that represents ScrollBar element should be ATK_VALUE type.
ScrollBar element can be considered as a Range Widget that is able to expose some
range values.
Test: accessibility/aria-scrollbar-role.html
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(setAtkStateSetFromCoreObject):
(getInterfaceMaskFromObject):
2013-03-20 Zan Dobersek <zdobersek@igalia.com>
Unreviewed. Fixing a typo in libLevelDB_la_CFLAGS assignment - cxflags -> cflags.
* GNUmakefile.am:
2013-03-20 Robert Hogan <robert@webkit.org>
Absolute position div without width specified does not reflow its text when it is moved (and computed width changes)
https://bugs.webkit.org/show_bug.cgi?id=112052
Reviewed by Emil A Eklund.
If a positioned block has auto width then any movement means the block needs to be resized.
Test: fast/block/positioned-block-auto-width-movement.html
* rendering/style/RenderStyle.cpp:
(WebCore::positionedObjectMoved):
(WebCore::RenderStyle::diff):
2013-03-19 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r146301.
http://trac.webkit.org/changeset/146301
https://bugs.webkit.org/show_bug.cgi?id=112776
Caused hundreds of tests to hit assertions on Windows debug
bots (Requested by rniwa on #webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::mainResourceLoader):
(WebCore::DocumentLoader::~DocumentLoader):
(WebCore::DocumentLoader::mainResourceData):
(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::handleSubstituteDataLoadNow):
(WebCore::DocumentLoader::continueAfterNavigationPolicy):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::continueAfterContentPolicy):
(WebCore::DocumentLoader::reportMemoryUsage):
(WebCore::DocumentLoader::receivedData):
(WebCore::DocumentLoader::clearMainResourceLoader):
(WebCore::DocumentLoader::setDefersLoading):
(WebCore::DocumentLoader::setMainResourceDataBufferingPolicy):
(WebCore::DocumentLoader::addSubresourceLoader):
(WebCore::DocumentLoader::isLoadingMainResource):
(WebCore):
(WebCore::DocumentLoader::maybeLoadEmpty):
(WebCore::DocumentLoader::startLoadingMainResource):
* loader/DocumentLoader.h:
(WebCore):
(DocumentLoader):
* loader/MainResourceLoader.cpp: Added.
(WebCore):
(WebCore::MainResourceLoader::MainResourceLoader):
(WebCore::MainResourceLoader::~MainResourceLoader):
(WebCore::MainResourceLoader::create):
(WebCore::MainResourceLoader::clearResource):
(WebCore::MainResourceLoader::frameLoader):
(WebCore::MainResourceLoader::request):
(WebCore::MainResourceLoader::resourceData):
(WebCore::MainResourceLoader::redirectReceived):
(WebCore::MainResourceLoader::responseReceived):
(WebCore::MainResourceLoader::dataReceived):
(WebCore::MainResourceLoader::notifyFinished):
(WebCore::MainResourceLoader::reportMemoryUsage):
(WebCore::MainResourceLoader::load):
(WebCore::MainResourceLoader::setDefersLoading):
(WebCore::MainResourceLoader::defersLoading):
(WebCore::MainResourceLoader::setDataBufferingPolicy):
(WebCore::MainResourceLoader::loader):
(WebCore::MainResourceLoader::identifier):
* loader/MainResourceLoader.h: Added.
(WebCore):
(MainResourceLoader):
(WebCore::MainResourceLoader::cachedMainResource):
(WebCore::MainResourceLoader::documentLoader):
* loader/mac/DocumentLoaderMac.cpp:
(WebCore::DocumentLoader::schedule):
(WebCore::DocumentLoader::unschedule):
2013-03-19 Mike West <mkwst@chromium.org>
CSP 1.1: Stub out SecurityPolicyViolationEvent interface.
https://bugs.webkit.org/show_bug.cgi?id=112681
Reviewed by Adam Barth.
A first pass at a SecurityPolicyViolationEvent interface is defined in
CSP 1.1's editor's draft[1]. This patch puts the big components into
place so that we can start getting some implementation experience with
the new event interface as it's defined, and feed that back into the
working group.
Here, we're only defining the interface, and creating a listener on the
Document. Events aren't yet being fired when Content Security Policy
violations occur. I'll tackle that in a future patch; adding files is
a big enough annoyance to do it separately.
This patch has only two web-visible impacts:
- Document objects now have an 'onsecuritypolicyviolation' attribute.
- A SecurityPolicyViolationEvent constructor is accessible on the Window object.
Ports that have not enabled the CSP_NEXT flag should experience no change.
[1]: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#securitypolicyviolationevent-events
Test: http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-basics.html
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Wow! A new file! This is so exciting! I'm going to tell ALL my build
systems about this!
* dom/Document.h:
* dom/Document.idl:
Define an 'onsecuritypolicyviolation' event handler on Document objects.
* dom/EventNames.h:
* dom/EventNames.in:
Define a 'securitypolicyviolation' event type.
* dom/SecurityPolicyViolationEvent.h: Added.
(WebCore::SecurityPolicyViolationEventInit::SecurityPolicyViolationEventInit):
(SecurityPolicyViolationEventInit):
(SecurityPolicyViolationEvent):
(WebCore::SecurityPolicyViolationEvent::create):
(WebCore::SecurityPolicyViolationEvent::documentURI):
(WebCore::SecurityPolicyViolationEvent::referrer):
(WebCore::SecurityPolicyViolationEvent::blockedURI):
(WebCore::SecurityPolicyViolationEvent::violatedDirective):
(WebCore::SecurityPolicyViolationEvent::effectiveDirective):
(WebCore::SecurityPolicyViolationEvent::originalPolicy):
(WebCore::SecurityPolicyViolationEvent::sourceURL):
(WebCore::SecurityPolicyViolationEvent::lineNumber):
(WebCore::SecurityPolicyViolationEvent::interfaceName):
(WebCore::SecurityPolicyViolationEvent::SecurityPolicyViolationEvent):
* dom/SecurityPolicyViolationEvent.idl: Added.
Define the SecurityPolicyViolationEvent's IDL, and then create all the
boilerplate necessary to properly initialize a SecurityPolicyViolationEvent
object with the relevant properties.
* page/DOMWindow.idl:
Add the new SecurityPolicyViolationEvent constructor to the Window object
so it's available on a page.
2013-03-19 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Timeline] Tune status bar UI for limited-width window.
https://bugs.webkit.org/show_bug.cgi?id=112702
Reviewed by Pavel Feldman.
Reduce filter titles when there is not enough space.
* inspector/front-end/TimelinePanel.js: Add classnames to elements.
* inspector/front-end/timelinePanel.css: Specify "flex" behaviour.
2013-03-19 Nate Chapin <japhet@chromium.org>
Merge MainResourceLoader into DocumentLoader
https://bugs.webkit.org/show_bug.cgi?id=104969
Reviewed by Adam Barth.
No new tests, refactor only.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::mainResourceLoader):
(WebCore::DocumentLoader::~DocumentLoader): Move main resource clearing from
~MainResourceLoader.
(WebCore::DocumentLoader::mainResourceData):
(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::notifyFinished): Moved from MainResourceLoader::notifyFinished.
(WebCore):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::handleSubstituteDataLoadNow):
(WebCore::DocumentLoader::redirectReceived):
(WebCore::DocumentLoader::continueAfterNavigationPolicy):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::continueAfterContentPolicy):
(WebCore::DocumentLoader::reportMemoryUsage):
(WebCore::DocumentLoader::dataReceived):
(WebCore::DocumentLoader::clearMainResourceLoader):
(WebCore::DocumentLoader::setDefersLoading):
(WebCore::DocumentLoader::setMainResourceDataBufferingPolicy):
(WebCore::DocumentLoader::addSubresourceLoader):
(WebCore::DocumentLoader::maybeLoadEmpty):
(WebCore::DocumentLoader::startLoadingMainResource): Don't keep separate checks
for normal and empty loads, just use a single boolean.
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::isLoadingMainResource):
* loader/MainResourceLoader.cpp: Removed.
* loader/MainResourceLoader.h: Removed.
* loader/mac/DocumentLoaderMac.cpp:
(WebCore::DocumentLoader::schedule):
(WebCore::DocumentLoader::unschedule):
2013-03-19 Ankur Taly <ataly@google.com>
Cache a pointer to V8DOMActivityLogger in PerContextData.
https://bugs.webkit.org/show_bug.cgi?id=112719
Reviewed by Kentaro Hara.
Adds a data member (and getter, setter methods) to V8PerContextData
that holds a pointer to a V8DOMActivityLogger. This member is set while
initializing the context for a V8DOMWindowShell. Ownership of the pointer
is still retained by the HashMap in DOMWrapperWorld.
As a result of this patch, subsequent patches that will implement logging
for DOM API access (See bug 107207) will be able to obtain a reference to
the logger directly from PerContextData. This will benefit performance as it
will be faster than looking up the logger in the DOMActivityLoggerMap in
DOMWrapperWorld.
There are no new tests as there is no change in behavior.
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initializeIfNeeded):
* bindings/v8/V8PerContextData.h:
(WebCore::V8PerContextData::activityLogger):
(V8PerContextData):
(WebCore::V8PerContextData::setActivityLogger):
2013-03-19 Arnaud Renevier <a.renevier@sisa.samsung.com>
do not use string reference for enum support in CodeGeneratorJS.pm
https://bugs.webkit.org/show_bug.cgi?id=112760
Reviewed by Kentaro Hara.
Do use string references in generated JS bindings for enum values.
Test: bindings/scripts/test/TestObj.idl
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateParametersCheck):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjEnumAttr):
(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
2013-03-19 Simon Fraser <simon.fraser@apple.com>
Make RLC::haveNonMainLayersWithTiledBacking() public and fix the name
https://bugs.webkit.org/show_bug.cgi?id=112763
Reviewed by Tim Horton.
Downstream code needs to call hasNonMainLayersWithTiledBacking().
* rendering/RenderLayerCompositor.h:
(WebCore::RenderLayerCompositor::hasNonMainLayersWithTiledBacking):
(RenderLayerCompositor):
2013-03-19 David Levin <levin@chromium.org>
FrameLoader::didChangeIcons isn't called when the favicon is changed.
https://bugs.webkit.org/show_bug.cgi?id=112080
Reviewed by Dmitry Titov.
Test: fast/dom/icon-url-property.html
* dom/Document.cpp:
(WebCore::Document::addIconURL): Made the callback for didChangeIcons
happen whenever there are favicon changes instead of filtering it
and have to be in sync about what hosts care about. As far as I could
tell no hosts rely on this callback except for Chromium, so in general
doing less work here may potentially help a small amount for other
ports.
2013-03-19 Michael Pruett <michael@68k.org>
Don't throw on infinity or NaN index in HTMLOptionsCollection.add()
https://bugs.webkit.org/show_bug.cgi?id=112612
Reviewed by Kentaro Hara.
HTMLOptionsCollection.add() should not throw a type error when
its optional index argument is infinity or NaN. Such values
should instead be converted to 0 with no error.
Tests: fast/dom/non-numeric-values-numeric-parameters.html
fast/js/select-options-add.html
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::JSHTMLOptionsCollection::add):
2013-03-19 Dominic Mazzoni <dmazzoni@google.com>
Security: Heap-use-after-free in WebCore::AXObjectCache::getOrCreate
https://bugs.webkit.org/show_bug.cgi?id=112044
Reviewed by Chris Fleizach.
Always call recalcSectionsIfNeeded before accessing
table sections.
Test: accessibility/table-remove-cell-crash.html
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::addChildren):
2013-03-19 Arnaud Renevier <a.renevier@sisa.samsung.com>
[v8] add IDL 'enum' in DOM methods
https://bugs.webkit.org/show_bug.cgi?id=112644
Reviewed by Kentaro Hara.
This adds V8 support for enumerations in method parameters.
Test: bindings/scripts/test/TestObj.idl
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateParametersCheck):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::methodWithEnumArgMethod):
2013-03-19 Kenneth Russell <kbr@google.com>
Unreviewed, rolling out r146277.
http://trac.webkit.org/changeset/146277
https://bugs.webkit.org/show_bug.cgi?id=111695
Broke Chromium Android build
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::boundaryEventOccurred):
(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didPauseSpeaking):
(WebCore::SpeechSynthesis::didResumeSpeaking):
(WebCore::SpeechSynthesis::didFinishSpeaking):
(WebCore::SpeechSynthesis::speakingErrorOccurred):
(WebCore):
* Modules/speech/SpeechSynthesis.h:
(SpeechSynthesis):
* Modules/speech/SpeechSynthesisUtterance.cpp:
(WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
(WebCore::SpeechSynthesisUtterance::setVoice):
* Modules/speech/SpeechSynthesisUtterance.h:
(WebCore::SpeechSynthesisUtterance::text):
(WebCore::SpeechSynthesisUtterance::setText):
(WebCore::SpeechSynthesisUtterance::lang):
(WebCore::SpeechSynthesisUtterance::setLang):
(WebCore::SpeechSynthesisUtterance::volume):
(WebCore::SpeechSynthesisUtterance::setVolume):
(WebCore::SpeechSynthesisUtterance::rate):
(WebCore::SpeechSynthesisUtterance::setRate):
(WebCore::SpeechSynthesisUtterance::pitch):
(WebCore::SpeechSynthesisUtterance::setPitch):
(WebCore::SpeechSynthesisUtterance::startTime):
(WebCore::SpeechSynthesisUtterance::setStartTime):
(WebCore::SpeechSynthesisUtterance::platformUtterance):
(SpeechSynthesisUtterance):
* Modules/speech/SpeechSynthesisVoice.h:
* WebCore.exp.in:
* WebCore.gypi:
* platform/PlatformSpeechSynthesis.h:
(PlatformSpeechSynthesis):
* platform/PlatformSpeechSynthesisUtterance.cpp:
* platform/PlatformSpeechSynthesisUtterance.h:
(PlatformSpeechSynthesisUtterance):
* platform/PlatformSpeechSynthesisVoice.cpp:
(WebCore::PlatformSpeechSynthesisVoice::create):
* platform/PlatformSpeechSynthesisVoice.h:
(PlatformSpeechSynthesisVoice):
* platform/PlatformSpeechSynthesizer.cpp:
(WebCore::PlatformSpeechSynthesizer::create):
(WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
(WebCore):
* platform/PlatformSpeechSynthesizer.h:
(PlatformSpeechSynthesizerClient):
(WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
(PlatformSpeechSynthesizer):
* platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Removed.
* platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Removed.
* platform/chromium/support/WebSpeechSynthesisVoice.cpp: Removed.
* platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Removed.
* platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Removed.
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
(WebCore::PlatformSpeechSynthesizer::speak):
* platform/mock/PlatformSpeechSynthesizerMock.cpp:
(WebCore::PlatformSpeechSynthesizerMock::create):
(WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
(WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
(WebCore::PlatformSpeechSynthesizerMock::speak):
* platform/mock/PlatformSpeechSynthesizerMock.h:
(PlatformSpeechSynthesizerMock):
2013-03-19 Antti Koivisto <antti@apple.com>
Don't compute background obscuration on every repaint
https://bugs.webkit.org/show_bug.cgi?id=112457
Reviewed by Simon Fraser.
Test: fast/backgrounds/obscured-background-child-style-change.html
It is generally enough to compute background obscuration status once per layout rather than doing it on every repaint.
Since there are fewer layouts than repaints this will allow more expensive checks in the future.
With this patch adds caching and invalidation of the obscuration status.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layout):
Invalidate the obscuration status on layout.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
Invalidate the parent obscuration status if there is repaint-only style change (often background related).
Tested by the new fast/css/obscured-background-child-style-change.html.
(WebCore::RenderBox::layout):
(WebCore::RenderBox::computeBackgroundIsKnownToBeObscured):
* rendering/RenderBox.h:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageChanged):
(WebCore::RenderImage::notifyFinished):
(WebCore::RenderImage::boxShadowShouldBeAppliedToBackground):
(WebCore::RenderImage::computeBackgroundIsKnownToBeObscured):
Use CachedImage::currentFrameKnownToBeOpaque which ensures that the frame is decoded and we get the real status.
Tested by an additional case in fast/css/obscured-background-child-style-change.html.
* rendering/RenderImage.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
* rendering/RenderObject.h:
(WebCore::RenderObject::hasBoxDecorations):
(WebCore::RenderObject::computeBackgroundIsKnownToBeObscured):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
(RenderObjectBitfields):
(WebCore::RenderObject::RenderObjectBitfields::boxDecorationState):
(WebCore::RenderObject::RenderObjectBitfields::setBoxDecorationState):
Combine box decoration bit and the obscuration status so we only need one extra bit.
(WebCore::RenderObject::setNeedsSimplifiedNormalFlowLayout):
(WebCore::RenderObject::setHasBoxDecorations):
(WebCore::RenderObject::invalidateBackgroundObscurationStatus):
(WebCore::RenderObject::backgroundIsKnownToBeObscured):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::layout):
2013-03-19 Dominic Mazzoni <dmazzoni@google.com>
Implement Web Speech Synthesis for Chromium
https://bugs.webkit.org/show_bug.cgi?id=111695
Reviewed by Adam Barth.
Straightforward implementation of speech synthesis
for Chromium by exposing interfaces for the platform
to implement.
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::boundaryEventOccurred):
(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didPauseSpeaking):
(WebCore::SpeechSynthesis::didResumeSpeaking):
(WebCore::SpeechSynthesis::didFinishSpeaking):
(WebCore::SpeechSynthesis::speakingErrorOccurred):
(WebCore):
* Modules/speech/SpeechSynthesis.h:
(SpeechSynthesis):
* Modules/speech/SpeechSynthesisUtterance.cpp:
(WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
(WebCore):
(WebCore::SpeechSynthesisUtterance::~SpeechSynthesisUtterance):
(WebCore::SpeechSynthesisUtterance::setVoice):
* Modules/speech/SpeechSynthesisUtterance.h:
(SpeechSynthesisUtterance):
(WebCore::SpeechSynthesisUtterance::text):
(WebCore::SpeechSynthesisUtterance::setText):
(WebCore::SpeechSynthesisUtterance::lang):
(WebCore::SpeechSynthesisUtterance::setLang):
(WebCore::SpeechSynthesisUtterance::volume):
(WebCore::SpeechSynthesisUtterance::setVolume):
(WebCore::SpeechSynthesisUtterance::rate):
(WebCore::SpeechSynthesisUtterance::setRate):
(WebCore::SpeechSynthesisUtterance::pitch):
(WebCore::SpeechSynthesisUtterance::setPitch):
(WebCore::SpeechSynthesisUtterance::startTime):
(WebCore::SpeechSynthesisUtterance::setStartTime):
(WebCore::SpeechSynthesisUtterance::platformUtterance):
* Modules/speech/SpeechSynthesisVoice.h:
(WebCore::SpeechSynthesisVoice::~SpeechSynthesisVoice):
* WebCore.exp.in:
* WebCore.gypi:
* platform/PlatformSpeechSynthesis.h:
(PlatformSpeechSynthesis):
* platform/PlatformSpeechSynthesisUtterance.cpp:
(WebCore):
(WebCore::PlatformSpeechSynthesisUtterance::create):
* platform/PlatformSpeechSynthesisUtterance.h:
(PlatformSpeechSynthesisUtterance):
(WebCore::PlatformSpeechSynthesisUtterance::setClient):
* platform/PlatformSpeechSynthesisVoice.cpp:
(WebCore):
(WebCore::PlatformSpeechSynthesisVoice::create):
(WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
* platform/PlatformSpeechSynthesisVoice.h:
(PlatformSpeechSynthesisVoice):
(WebCore::PlatformSpeechSynthesisVoice::setVoiceURI):
(WebCore::PlatformSpeechSynthesisVoice::setName):
(WebCore::PlatformSpeechSynthesisVoice::setLang):
(WebCore::PlatformSpeechSynthesisVoice::setLocalService):
(WebCore::PlatformSpeechSynthesisVoice::setIsDefault):
* platform/PlatformSpeechSynthesizer.cpp:
(WebCore::PlatformSpeechSynthesizer::create):
(WebCore::PlatformSpeechSynthesizer::setVoiceList):
(WebCore):
* platform/PlatformSpeechSynthesizer.h:
(WebKit):
(PlatformSpeechSynthesizerClient):
(PlatformSpeechSynthesizer):
* platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Added.
(WebCore):
(WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
(WebCore::PlatformSpeechSynthesizer::speak):
(WebCore::PlatformSpeechSynthesizer::pause):
(WebCore::PlatformSpeechSynthesizer::resume):
(WebCore::PlatformSpeechSynthesizer::cancel):
* platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Added.
(WebKit):
(WebKit::WebSpeechSynthesisUtterance::WebSpeechSynthesisUtterance):
(WebKit::WebSpeechSynthesisUtterance::operator=):
(WebKit::WebSpeechSynthesisUtterance::assign):
(WebKit::WebSpeechSynthesisUtterance::reset):
(WebKit::WebSpeechSynthesisUtterance::operator PassRefPtr<PlatformSpeechSynthesisUtterance>):
(WebKit::WebSpeechSynthesisUtterance::operator PlatformSpeechSynthesisUtterance*):
(WebKit::WebSpeechSynthesisUtterance::text):
(WebKit::WebSpeechSynthesisUtterance::lang):
(WebKit::WebSpeechSynthesisUtterance::voice):
(WebKit::WebSpeechSynthesisUtterance::volume):
(WebKit::WebSpeechSynthesisUtterance::rate):
(WebKit::WebSpeechSynthesisUtterance::pitch):
(WebKit::WebSpeechSynthesisUtterance::startTime):
* platform/chromium/support/WebSpeechSynthesisVoice.cpp: Added.
(WebKit):
(WebKit::WebSpeechSynthesisVoice::assign):
(WebKit::WebSpeechSynthesisVoice::reset):
(WebKit::WebSpeechSynthesisVoice::setVoiceURI):
(WebKit::WebSpeechSynthesisVoice::setName):
(WebKit::WebSpeechSynthesisVoice::setLanguage):
(WebKit::WebSpeechSynthesisVoice::setIsLocalService):
(WebKit::WebSpeechSynthesisVoice::setIsDefault):
(WebKit::WebSpeechSynthesisVoice::operator PassRefPtr<WebCore::PlatformSpeechSynthesisVoice>):
* platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Added.
(WebCore):
(WebCore::WebSpeechSynthesizerClientImpl::WebSpeechSynthesizerClientImpl):
(WebCore::WebSpeechSynthesizerClientImpl::~WebSpeechSynthesizerClientImpl):
(WebCore::WebSpeechSynthesizerClientImpl::setVoiceList):
(WebCore::WebSpeechSynthesizerClientImpl::didStartSpeaking):
(WebCore::WebSpeechSynthesizerClientImpl::didFinishSpeaking):
(WebCore::WebSpeechSynthesizerClientImpl::didPauseSpeaking):
(WebCore::WebSpeechSynthesizerClientImpl::didResumeSpeaking):
(WebCore::WebSpeechSynthesizerClientImpl::speakingErrorOccurred):
(WebCore::WebSpeechSynthesizerClientImpl::wordBoundaryEventOccurred):
(WebCore::WebSpeechSynthesizerClientImpl::sentenceBoundaryEventOccurred):
* platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Added.
(WebCore):
(WebSpeechSynthesizerClientImpl):
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
(WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
(WebCore):
(WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::speak):
* platform/mock/PlatformSpeechSynthesizerMock.cpp:
(WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
(WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
(WebCore::PlatformSpeechSynthesizerMock::speak):
* platform/mock/PlatformSpeechSynthesizerMock.h:
(PlatformSpeechSynthesizerMock):
2013-03-19 Ryosuke Niwa <rniwa@webkit.org>
Another build fix after r146220.
* English.lproj/localizedStrings.js:
2013-03-19 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Add parsing for grid-auto-{row|column}
https://bugs.webkit.org/show_bug.cgi?id=112724
Reviewed by Tony Chang.
This change is a first step towards handling grid-auto-{row|column}.
For now, only the parsing, storing and getComputedStyle bits are implemented.
In order to do so without duplicating code, the functions handling <track-size>
(named <track-minmax> in the code based on a previous version of the grammar)
have been tweaked to be called in a standalone fashion. The code was also
updated to match the grammar more closely:
- <track-minmax> is now <track-size>.
- <track-group> was renmoved, folded into <track-list>.
Test: fast/css-grid-layout/grid-auto-columns-rows-get-set.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackSize):
Renamed from valueForGridTrackMinMax.
(WebCore::valueForGridTrackList):
Folded valueForGridTrackGroup here.
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
Added the parsing for grid-auto-{rows|columns}.
(WebCore::CSSParser::parseGridTrackSize):
Renamed from parseGridTrackMinMax. Changed to return the parsed value (or 0 in case of
error). This enables us to reuse it in parseValue. Note that this function now moves
the parser value list instead of the caller.
(WebCore::CSSParser::parseGridTrackList):
Updated after parseGridTrackSize changes and parseGridTrackGroup removal.
* css/CSSParser.h: Updated the names.
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in:
Added the 2 new non-inherited properties.
* css/StyleResolver.cpp:
(WebCore::createGridTrackSize):
Renamed from createGridTrackMinMax. Also simplified to ensure code reuse (applyProperty hands
down a CSSValue) and consistency (the state wasn't consistently the last argument).
(WebCore::createGridTrackList):
Folded createGridTrackGroup into this function.
(WebCore::StyleResolver::applyProperty):
Added the code for the new properties.
* rendering/style/RenderStyle.h:
* rendering/style/StyleGridData.cpp:
(WebCore::StyleGridData::StyleGridData):
* rendering/style/StyleGridData.h:
(WebCore::StyleGridData::operator==):
Added the storage and boiler-plate code for the new properties.
2013-03-19 Geoffrey Garen <ggaren@apple.com>
Removed a using declaration to avoid name conflicts
https://bugs.webkit.org/show_bug.cgi?id=112752
Reviewed by Ryosuke Niwa.
* html/ClassList.cpp: Put the using declaration here instead.
* html/ClassList.h: Don't put a using declaration in this header because
it can cause name conflicts with SVGNames.
2013-03-18 Ojan Vafai <ojan@chromium.org>
Make intrinsic size keywords on flexboxes work
https://bugs.webkit.org/show_bug.cgi?id=112652
Reviewed by Tony Chang.
Tests: fast/css-intrinsic-dimensions/intrinsic-sized-column-flex-items.html
fast/css-intrinsic-dimensions/intrinsic-sized-flex-items.html
* platform/Length.h:
(WebCore::Length::isSpecifiedOrIntrinsic):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::constrainLogicalWidthInRegionByMinMax):
(WebCore::RenderBox::computeLogicalWidthInRegion):
(WebCore::RenderBox::computeLogicalWidthInRegionUsing):
Pass in the Length so that RenderFlexibleBox can call this method and avoid
doing a bunch of code duplication.
* rendering/RenderBox.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
Instead of just calling valueForLength, call computeLogicalWidthInRegionUsing so that
we properly resolve intrinsic Length types. Incidentally, this should also make viewport
percentage units work.
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
Resolve intrinsic min/max Lengths. Also, instead of calling minPreferredLogicalWidth for the
min-width: auto case, call computeMainAxisExtentForChild to correctly compute the min intrinsic size.
2013-03-19 Geoffrey Garen <ggaren@apple.com>
Try to fix the Windows build.
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::hasValidAttributeType): Qualify the
namespace to avoid conflicts.
2013-03-19 Ryosuke Niwa <rniwa@webkit.org>
Windows build fix after r146264.
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::hasValidAttributeType):
2013-03-19 Nate Chapin <japhet@chromium.org>
REGRESSION(r146223): chromium asserts/crashes in DocumentLoader
https://bugs.webkit.org/show_bug.cgi?id=112745
Reviewed by Kenneth Russell.
Fixes layout tests on chromium debug
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::mainReceivedError): Frame might be detached, get
defersLoading() from mainResourceLoader().
(WebCore::DocumentLoader::responseReceived): RefPtr got dropped, it's really needed.
(WebCore::DocumentLoader::receivedData): Frame might be detached, get
defersLoading() from mainResourceLoader().
(WebCore::DocumentLoader::cancelMainResourceLoad): The ResourceError parameter
can be null if coming from the WebKit layer, we should have a default just in case.
2013-03-19 Geoffrey Garen <ggaren@apple.com>
Refactored script content removal in the fragment parser for clarity and speed
https://bugs.webkit.org/show_bug.cgi?id=112734
Reviewed by Enrica Casucci.
* WebCore.exp.in: Export!
* dom/DocumentFragment.cpp:
(WebCore::DocumentFragment::parseHTML):
(WebCore::DocumentFragment::parseXML):
* dom/DocumentFragment.h:
(DocumentFragment): Updated for rename of FragmentScriptingPermission to
ParserContentPolicy.
* dom/Element.cpp:
(WebCore::isEventHandlerAttribute):
(WebCore::Element::isJavaScriptURLAttribute):
(WebCore::Element::isJavaScriptAttribute): Fixed a FIXME by factoring
out some helper functions that reuse isURLAttribute(). This makes our
attribute removal slightly more precise, as reflected in test changes.
(WebCore::Element::stripJavaScriptAttributes): Factored this function out
of parserSetAttributes to clarify that the parser is responsible for
fully removing scripts before inserting anything into the DOM.
Now that this is a helper function, we can avoid doing any work in the
common case, where script content is allowed. Also, when we do have to
strip attributes, we use "two finger compaction" to avoid copying the
vector, and to avoid O(N) vector removal operations when there is
something to remove.
(WebCore::Element::parserSetAttributes):
* dom/Element.h:
* dom/FragmentScriptingPermission.h:
(WebCore::scriptingContentIsAllowed):
(WebCore::disallowScriptingContent):
(WebCore::pluginContentIsAllowed):
(WebCore::allowPluginContent): Renamed for clarity, and added some helper
functions for reading values out of this enum.
* dom/ScriptableDocumentParser.cpp:
(WebCore::ScriptableDocumentParser::ScriptableDocumentParser): Moved
a settings check into the parser constructor so we're sure that all
clients get the right behavior.
* dom/ScriptableDocumentParser.h:
(WebCore::ScriptableDocumentParser::parserContentPolicy):
(ScriptableDocumentParser):
* editing/markup.cpp:
(WebCore::createFragmentFromMarkup):
(WebCore::createFragmentFromMarkupWithContext):
(WebCore::createFragmentForInnerOuterHTML):
(WebCore::createContextualFragment):
* editing/markup.h: Updated for renames.
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::isURLAttribute): Fixed a bug where
isURLAttribute would ignore href attributes in other namespaces, like
xlink:href.
* html/HTMLBaseElement.cpp:
(WebCore::HTMLBaseElement::isURLAttribute): Same bug.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::isURLAttribute): Fixed a logic error where HTMLElement
wouldn't call through to its base class.
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::isURLAttribute): Same isURLAttribute namespace
bug as above.
* html/parser/HTMLConstructionSite.cpp:
(WebCore::setAttributes): Helper function for optionally stripping
disallowed attributes before setting them on an element. This helps all
clients get the right behavior without sprinkling checks everywhere.
(WebCore::HTMLConstructionSite::HTMLConstructionSite):
(WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
(WebCore::HTMLConstructionSite::insertScriptElement): Don't schedule the
element for insertion into the document if the element is forbidden. This
is slightly clearer than leaving an empty forbidden element in the document.
(WebCore::HTMLConstructionSite::createElement):
(WebCore::HTMLConstructionSite::createHTMLElement):
* html/parser/HTMLConstructionSite.h:
(HTMLConstructionSite):
(WebCore::HTMLConstructionSite::parserContentPolicy):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder):
(WebCore::HTMLDocumentParser::parseDocumentFragment):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
(WebCore::HTMLDocumentParser::create):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext):
Updated for renames and interface changes above.
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTag): Removed isParsingFragment()
checks to make it possible to use ParserContentPolicy in more places.
Removed call to removeChildren() because, if an element is forbidden,
we fully remove the element now. This brings behavior for <script>
elements in line with behavior for plug-in elements. It also brings
behavior of the HTML parser in line with behavior of the XML parser.
* html/parser/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::create):
(FragmentParsingContext):
(WebCore::HTMLTreeBuilder::FragmentParsingContext::contextElement):
* platform/blackberry/PasteboardBlackBerry.cpp:
(WebCore::Pasteboard::documentFragment):
* platform/chromium/DragDataChromium.cpp:
(WebCore::DragData::asFragment):
* platform/chromium/PasteboardChromium.cpp:
(WebCore::Pasteboard::documentFragment):
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::documentFragment):
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::documentFragment):
* platform/qt/DragDataQt.cpp:
(WebCore::DragData::asFragment):
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::documentFragment):
* platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::fragmentFromCFHTML):
(WebCore::fragmentFromHTML):
* platform/wx/PasteboardWx.cpp:
(WebCore::Pasteboard::documentFragment): Updated for renames and interface
changes.
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::isURLAttribute): Fixed a bug where SVG anchor
elements didn't identify their URL attributes.
* svg/SVGAElement.h:
(SVGAElement):
* xml/XMLErrors.cpp:
(WebCore::createXHTMLParserErrorHeader):
(WebCore::XMLErrors::insertErrorMessageBlock): No need to disallow
scripting attributes here because we're creating the attributes
ourselves and we know they're not scripting attributes.
* xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::parseDocumentFragment):
* xml/parser/XMLDocumentParser.h:
(WebCore::XMLDocumentParser::create):
(XMLDocumentParser): Updated for renames and interface changes above.
Removed the 8 inline capacity in the attribute vector so we could share
helper functions with the HTML parser, which didn't have it.
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::setAttributes):
(WebCore):
(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::handleNamespaceAttributes):
(WebCore::handleElementAttributes):
(WebCore::XMLDocumentParser::startElementNs):
(WebCore::XMLDocumentParser::endElementNs):
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::setAttributes):
(WebCore):
(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::handleNamespaceAttributes):
(WebCore::handleElementAttributes):
(WebCore::XMLDocumentParser::parseStartElement):
(WebCore::XMLDocumentParser::parseEndElement): Same changes as for the
HTML parser.
2013-03-19 Philip Rogers <pdr@google.com>
Clean up static_casts for SVG renderers
https://bugs.webkit.org/show_bug.cgi?id=111651
Reviewed by Abhishek Arya.
toRenderSVGPath and toRenderSVGFilter are preferred over static_casts because bad casts can
be caught on our testing infrastructure. This patch replaces all static_casts for
RenderSVGPath and RenderSVGFilter with toRenderSVGPath and toRenderSVGFilter, respectively.
This patch also adds FIXME to the remaining toRenderSVG* instances that are missing.
No new tests as this is covered with existing tests.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents):
This call is currently safe due to the element->hasTagName(SVGNames::clipPathTag) check.
* rendering/svg/RenderSVGPath.h:
(WebCore):
(WebCore::toRenderSVGPath):
* rendering/svg/RenderSVGResourceFilter.h:
(WebCore):
(WebCore::toRenderSVGFilter):
* rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
(WebCore::RenderSVGResourceFilterPrimitive::styleDidChange):
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::addResourceForClientInvalidation):
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::repaintRectForRendererInLocalCoordinatesExcludingSVGShadow):
(WebCore::SVGRenderSupport::rendererHasSVGShadow):
(WebCore::SVGRenderSupport::setRendererHasSVGShadow):
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::~SVGRenderingContext):
This cast was not correct! Thankfully it was not required anyway.
* svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::svgAttributeChanged):
This cast was not correct!
* svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::svgAttributeChanged):
This cast was not correct!
* svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::svgAttributeChanged):
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::svgAttributeChanged):
(WebCore::SVGPathElement::pathSegListChanged):
(WebCore::SVGPathElement::getBBox):
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::svgAttributeChanged):
* svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::svgAttributeChanged):
2013-03-19 Beth Dakin <bdakin@apple.com>
RenderLayer::scrollTo() should call FrameLoaderClient::didChangeScrollOffset()
https://bugs.webkit.org/show_bug.cgi?id=110673
Reviewed by Simon Fraser.
FrameLoaderClient::didChangeScrollOffset() should be called whenever something is
actually being scrolled.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollTo):
2013-03-19 Marja Hölttä <marja@chromium.org>
[V8] Add machinery for generating specialized bindings for the main world
https://bugs.webkit.org/show_bug.cgi?id=111417
Reviewed by Jochen Eisinger.
The new specialized bindings will be faster, because they don't need to
do the "main world, isolated world or a worker" check, but can right
away assume that we're in the main world.
Added an IDL attribute (V8PerWorldBindings) to define which
attribute getters / setters to specialize.
This patch generates main world bindings for getters and setters of Node
and Element. (The possibility to generate bindings for callbacks will be
added later.)
No new tests (updated existing bindings tests).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNormalAttrGetterCallback):
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetterCallback):
(GenerateNormalAttrSetter):
(GenerateNamedConstructor):
(GenerateSingleBatchedAttribute):
(GenerateImplementation):
(GenerateCallbackImplementation):
(GenerateFunctionCallString):
(CreateCustomSignature):
(NativeToJSValue):
* bindings/scripts/IDLAttributes.txt:
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::ConfigureV8Float64ArrayTemplate):
(WebCore::V8Float64Array::GetTemplate):
(WebCore::V8Float64Array::HasInstance):
* bindings/scripts/test/V8/V8Float64Array.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore):
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
(WebCore::V8TestActiveDOMObject::GetTemplate):
(WebCore::V8TestActiveDOMObject::HasInstance):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::ConfigureV8TestCustomNamedGetterTemplate):
(WebCore::V8TestCustomNamedGetter::GetTemplate):
(WebCore::V8TestCustomNamedGetter::HasInstance):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore):
(WebCore::ConfigureV8TestEventConstructorTemplate):
(WebCore::V8TestEventConstructor::GetTemplate):
(WebCore::V8TestEventConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::ConfigureV8TestEventTargetTemplate):
(WebCore::V8TestEventTarget::GetTemplate):
(WebCore::V8TestEventTarget::HasInstance):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore):
(WebCore::ConfigureV8TestExceptionTemplate):
(WebCore::V8TestException::GetTemplate):
(WebCore::V8TestException::HasInstance):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore):
(WebCore::ConfigureV8TestInterfaceTemplate):
(WebCore::V8TestInterface::GetTemplate):
(WebCore::V8TestInterface::HasInstance):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
(WebCore::V8TestMediaQueryListListener::GetTemplate):
(WebCore::V8TestMediaQueryListListener::HasInstance):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructor::GetTemplate):
(WebCore::ConfigureV8TestNamedConstructorTemplate):
(WebCore::V8TestNamedConstructor::GetTemplate):
(WebCore::V8TestNamedConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::ConfigureV8TestNodeTemplate):
(WebCore::V8TestNode::GetTemplate):
(WebCore::V8TestNode::HasInstance):
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore):
(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::GetTemplate):
(WebCore::V8TestObj::HasInstance):
(WebCore::V8TestObj::installPerContextProperties):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
(WebCore::V8TestOverloadedConstructors::GetTemplate):
(WebCore::V8TestOverloadedConstructors::HasInstance):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore):
(WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
(WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
(WebCore::V8TestSerializedScriptValueInterface::HasInstance):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore):
(WebCore::ConfigureV8TestTypedefsTemplate):
(WebCore::V8TestTypedefs::GetTemplate):
(WebCore::V8TestTypedefs::HasInstance):
* bindings/scripts/test/V8/V8TestTypedefs.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::getWrapperForMainWorld):
(DOMDataStore):
* bindings/v8/V8DOMConfiguration.cpp:
(WebCore::V8DOMConfiguration::batchConfigureAttributes):
(WebCore::V8DOMConfiguration::configureTemplate):
* bindings/v8/V8DOMConfiguration.h:
(BatchedAttribute):
(V8DOMConfiguration):
(WebCore::V8DOMConfiguration::configureAttribute):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::toV8ForMainWorld):
(WebCore):
* bindings/v8/custom/V8EventTargetCustom.cpp:
(WebCore::toV8ForMainWorld):
(WebCore):
* bindings/v8/custom/V8IDBAnyCustom.cpp:
(WebCore::toV8ForMainWorld):
(WebCore):
* bindings/v8/custom/V8MicroDataItemValueCustom.cpp:
(WebCore::toV8ForMainWorld):
(WebCore):
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::toV8ForMainWorld):
(WebCore):
* dom/Element.idl:
* dom/Node.idl:
2013-03-19 Mike West <mkwst@chromium.org>
FeatureObserver: Measure X-Frame-Options usage.
https://bugs.webkit.org/show_bug.cgi?id=112670
Reviewed by Adam Barth.
This patch adds three FeatureObserver entries to gather information
about 'X-Frame-Options' usage in general, and in particular usage
and potential misunderstanding of the 'SAMEORIGIN' value.
Three entries are added:
- XFrameOptions measures the raw number of 'X-Frame-Options' headers.
- XFrameOptionsSameOrigin measures the number of those headers that
set the value to 'SAMEORIGIN'.
- XFrameOptionsSameOriginWithBadAncestorChain measures the number of
occasions in which the frame passed the "top-only" origin check we're
currently performing, but would have failed a more strict check
against poisoned ancestor chains (that is, an ancestor chain that
looks like 'example.com' -> 'evil.com' -> 'example.com').
Mozilla is considering changing 'SAMEORIGIN's behavior to block the
latter loophole[1], and the UI Safety spec is considering dropping
'top-only' entirely[2]. This data will inform those decisions.
[1]: https://bugzilla.mozilla.org/show_bug.cgi?id=725490
[2]: http://lists.w3.org/Archives/Public/public-webappsec/2013Mar/0007.html
This doesn't change web-visible behavior; it only adds histograms
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
When processing an 'X-Frame-Options' header's value, call out to
FeatureObserver when relevant to increment the correct histogram
entries.
* page/FeatureObserver.h:
Added three entries to the FeatureObserver enum: XFrameOptions,
XFrameOptionsSameOrigin, and XFrameOptionsSameOriginWithBadAncestorChain.
Each is explained above.
2013-03-19 Adam Barth <abarth@webkit.org>
GenerateHashValue should be usable outside CodeGeneratorJS.pm
https://bugs.webkit.org/show_bug.cgi?id=112736
Reviewed by Benjamin Poulain.
GenerateHashValue is not specific to CodeGeneratorJS.pm. Instead, the
function matches the StringHash used in WTF. This patch moves the
function into a separate Perl module so that it can be used by other
Perl scripts. For example, I plan to use this function to compute the
hash value for HTMLNames at compile time rather than at startup.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHashTable):
* bindings/scripts/Hash.pm: Added.
(leftShift):
(GenerateHashValue):
2013-03-19 Dean Jackson <dino@apple.com>
Allow PlugIn Snapshotting to be tested
https://bugs.webkit.org/show_bug.cgi?id=98696
Reviewed by Tim Horton.
Expose a new setting maximumPlugInSnapshotAttempts that can
be set by testing scripts.
Tests: plugins/snapshotting/restart.html
plugins/snapshotting/simple.html
* page/Settings.in:
2013-03-19 Dean Jackson <dino@apple.com>
Restarting a snapshotted plugin should restart all plugins from the same domain on the page
https://bugs.webkit.org/show_bug.cgi?id=112725
Reviewed by Tim Horton.
If the user restarts a snapshotted plugin, then typically they will
want to restart all similar plugins on the page, where similarity
is defined by the domain of the content. Or in other words, since clients
will typically add a restarted plugin to the list of autostarting
domain hashes, we should start the other plugins that would autostart
on reload.
When a snapshotted plugin gets the user click telling it to restart, it iterates
over every frame in the document looking for domain hashes similar to its own.
It then manually restarts each of the paused plugins.
* html/HTMLPlugInImageElement.cpp:
(WebCore::addPlugInsFromNodeListMatchingOriginHash): Static helper function
that builds a list of plugins to restart.
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot): After restarting itself,
the plugin looks for all other similar snapshotted plugins in the page.
(WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn): Splits out the actual
restart functionality, to make it separate from plugins that were manually
restarted and thus probably want to forward a delayed click event.
* html/HTMLPlugInImageElement.h:
(HTMLPlugInImageElement): New method restartSnapshottedPlugIn.
2013-03-19 Nate Chapin <japhet@chromium.org>
Merge MainResourceLoader's SubstituteData loading + others into DocumentLoader
https://bugs.webkit.org/show_bug.cgi?id=112722
Part of the ongoing effort to merge MainResourceLoader entirely
into DocumentLoader.
Reviewed by Antti Koivisto.
No new tests, refactor only.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::mainReceivedError): Moved from MainResourceLoader::receivedError
and the failure case in MainResourceLoader::notifyFinished.
(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::handleSubstituteDataLoadNow): Moved from MainResourceLoader.
(WebCore::DocumentLoader::startDataLoadTimer): Moved from MainResourceLoader.
(WebCore::DocumentLoader::handleSubstituteDataLoadSoon): Moved from MainResourceLoader.
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::continueAfterNavigationPolicy):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::receivedData):
(WebCore::DocumentLoader::startLoadingMainResource): Most of MainResourceLoader::load
moved here.
(WebCore::DocumentLoader::cancelMainResourceLoad): MainResourceLoader::cancel
moved here.
* loader/DocumentLoader.h:
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::notifyFinished):
(WebCore::MainResourceLoader::reportMemoryUsage):
(WebCore::MainResourceLoader::load):
(WebCore::MainResourceLoader::identifier):
* loader/MainResourceLoader.h:
2013-03-19 Ryosuke Niwa <rniwa@webkit.org>
Unreviewed build fix after r146220. Add the missing ]'s.
* English.lproj/localizedStrings.js:
2013-03-19 Alpha Lam <hclam@chromium.org>
GIFImageReader to count frames and decode in one pass
https://bugs.webkit.org/show_bug.cgi?id=111144
Reviewed by Stephen White.
OBJECTIVE
This change has the objective of improving performance reading GIF
files. This implementation can parse the entire GIF file in one pass
and saves information about each frame, such that decoding in a later
pass does not need to parse the file again.
This change fixes the performance problem of decoding GIF files when
they are received very slowly. Existing implementation creates a new
GIFImageReader for counting frames for every time it is notified that
new data has been received, this has O(n^2) behavior when data is
received very slowly.
ALGORITHM
This implementation divides the decoding process into two separate
steps: parse and LZW decoding.
In the parse step, the state machine is similar to the existing
implementation. However this algorithm does not perform any decoding
while scanning through the file. Intead it creates a new data structure
for caching all frame information and the corresponding LZW blocks.
If a full decode is requested then LZW decoding is performed. This
implementation looks through all frame information saved and decodes
each frame sequentially until the target frame is reached.
Because of the separation of parse and decode, each frame can be
decoded separately. This paves the way to support seeking in GIF files.
TESTING
Added a new unit test to cover progressively decoding a GIF image.
There are already GIF unit tests for functional testing.
Exhaustive testing was done locally with a corpus of 60k images.
I mixed the corpus with some generated bad data and truncated files.
The results was bit-identical when compared to the previous
implementation.
These was also no crashing when decoding the entire corpus.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::GIFImageDecoder):
(WebCore::GIFImageDecoder::setData):
(WebCore::GIFImageDecoder::frameCount):
(WebCore::GIFImageDecoder::repetitionCount):
(WebCore::GIFImageDecoder::decode):
* platform/image-decoders/gif/GIFImageDecoder.h:
(GIFImageDecoder):
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFLZWContext::outputRow):
(GIFLZWContext::doLZW):
(GIFFrameContext::decode):
(GIFImageReader::decode):
(GIFImageReader::parse):
(GIFImageReader::addFrameIfNecessary):
(GIFLZWContext::prepareToDecode):
* platform/image-decoders/gif/GIFImageReader.h:
There is a lot of reshuffling in GIFLZWContext and GIFFrameContext.
These changes has the goal of having GIFLZWContext be a pure decoding
state machine. GIFFrameContext is mostly a read-only container for
frame information. With all these changes we can decode each
GIFFrameContext independently.
The ownership pattern is:
GIFImageReader owns GIFFrameContext owns GIFLZWContext.
(GIFLZWContext::GIFLZWContext):
(GIFLZWContext):
(GIFLZWContext::hasRemainingRows):
GIFLZWContext is moved to the top of file.
(GIFLZWBlock):
(GIFLZWBlock::GIFLZWBlock):
New data structure to save block position and size.
(GIFFrameContext):
(GIFFrameContext::GIFFrameContext):
(GIFFrameContext::~GIFFrameContext):
(GIFFrameContext::addLzwBlock):
(GIFFrameContext::isComplete):
(GIFFrameContext::isHeaderDefined):
(GIFFrameContext::isDataSizeDefined):
(GIFFrameContext::setComplete):
(GIFFrameContext::setHeaderDefined):
(GIFFrameContext::setDataSize):
Now owns GIFLZWContext for decoding.
(GIFImageReader::GIFImageReader):
(GIFImageReader::~GIFImageReader):
(GIFImageReader::imagesCount):
(GIFImageReader::frameContext):
(GIFImageReader):
(GIFImageReader::parseFailed):
(GIFImageReader::isFirstFrame):
Owns a list of GIFFrameContxt.
2013-03-19 Brent Fulgham <bfulgham@webkit.org>
[WinCairo] Unreviewed build correction for WebCore library.
* WebCore.vcxproj/WebCore.vcxproj: Exclude CG-specific frame source
from WinCairo build.
* WebCore.vcxproj/WebCoreGeneratedWinCairo.make: Pass correct
parameter to build-generated-files.sh for WinCairo build.
2013-03-19 Leon Scroggins <scroggo@chromium.org>
Implement onRefEncodedData for lazy pixel refs.
This allows printToSkPicture to write the original
encoded data to the stream.
Add a method to ImageFrameGenerator to copy its
data, which is used by onRefEncodedData.
https://bugs.webkit.org/show_bug.cgi?id=110759
Reviewed by Stephen White.
No new tests. New functionality is for testing purposes
(creating SKP files).
* platform/graphics/chromium/ImageFrameGenerator.cpp:
(WebCore::ImageFrameGenerator::data):
(WebCore):
* platform/graphics/chromium/ImageFrameGenerator.h:
(ImageFrameGenerator):
* platform/graphics/chromium/LazyDecodingPixelRef.cpp:
(WebCore::LazyDecodingPixelRef::isClipped):
(WebCore):
(WebCore::LazyDecodingPixelRef::onRefEncodedData):
* platform/graphics/chromium/LazyDecodingPixelRef.h:
(LazyDecodingPixelRef):
2013-03-19 Philip Rogers <pdr@google.com>
Separate SVG image size and container size
https://bugs.webkit.org/show_bug.cgi?id=112651
Reviewed by Stephen Chenney.
Previously, SVG images could retain their cached size between reloads due to a bug where an
old container size would be re-used if the image's new container size was not available yet.
This patch changes SVGImage::size() to return the intrinsic size of the image before a
container size has been set. SVGImageCache::imageSizeForRenderer will now return the
image's intrinsic size instead of a cached value if the container size cannot be looked up.
In javascript, querying [SVGImage].width will now return either the image's intrinsic size
or the size of 'imageForContainer'.
Test: svg/as-image/svg-container-size-after-reload.html
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::setContainerSize):
(WebCore::SVGImage::containerSize):
(WebCore::SVGImage::draw):
(WebCore::SVGImage::dataChanged):
* svg/graphics/SVGImage.h:
The member variable 'm_intrinsicSize' has been added to track the image's intrinsic
size. This term can be found in: http://www.w3.org/TR/css3-images/#default-sizing
* svg/graphics/SVGImageCache.cpp:
(WebCore::SVGImageCache::imageSizeForRenderer):
(WebCore::SVGImageCache::imageForRenderer):
In both of these functions, image has been renamed to imageForContainer here to clarify
that the cached container size is being returned, not the image's intrinsic size.
2013-03-19 Joshua Bell <jsbell@chromium.org>
IndexedDB: Use integer plumbing for deleteDatabase onVersionChange calls
https://bugs.webkit.org/show_bug.cgi?id=112715
Reviewed by Tony Chang.
When deleteDatabase on the back-end needs to send the front-end an
onVersionChange notification it does so using the string overload. That's
the only remaining use of that overload and we'd like to delete it. Switch
to using the integer overload, with an already defined special value.
This will unblock http://wkbug.com/112712 to delete the dead code.
No new tests - no functional change.
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::onVersionChange): Map NoIntVersion to null.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::deleteDatabase): Call integer overload.
2013-03-19 Terry Anderson <tdanderson@chromium.org>
Hover effects from a GestureTapDown are dismissed by a GestureTap on the hover element
https://bugs.webkit.org/show_bug.cgi?id=103283
Reviewed by Antonio Gomes.
On a GestureTap event over an element that was made visible as a hover effect, the
GestureTap should be applied to that element and the hover effects should not be dismissed.
A GestureTap or a mouse move to a location outside of the element should still dismiss the
hover effects.
Tests: fast/events/touch/gesture/gesture-tap-hover-clear.html
fast/events/touch/gesture/gesture-tap-on-hover-element.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureEvent):
2013-03-19 Alexei Filippov <alph@chromium.org>
Web Inspector: Fix menu items capitalization.
https://bugs.webkit.org/show_bug.cgi?id=112553
The context menu items should be correctly capitalized.
Reviewed by Pavel Feldman.
* English.lproj/localizedStrings.js:
* inspector/front-end/BreakpointsSidebarPane.js:
(WebInspector.JavaScriptBreakpointsSidebarPane.prototype._emptyElementContextMenu):
(WebInspector.XHRBreakpointsSidebarPane.prototype._emptyElementContextMenu):
(WebInspector.XHRBreakpointsSidebarPane.prototype._contextMenu):
* inspector/front-end/CallStackSidebarPane.js:
(WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype._handleContextMenuEvent.get var):
(WebInspector.ConsoleView.prototype._handleContextMenuEvent.set get contextMenu):
* inspector/front-end/DOMBreakpointsSidebarPane.js:
(WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu):
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid.prototype._contextMenuInDataTable):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
(WebInspector.ElementsPanel.prototype.appendApplicableItems):
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
(WebInspector.ElementsTreeElement.prototype._populateTagContextMenu):
* inspector/front-end/HeapSnapshotDataGrids.js:
(WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu):
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkPanel.prototype.appendApplicableItems):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
(WebInspector.ProfilesPanel.prototype.appendApplicableItems):
(WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._appendUISourceCodeMappingItems):
(WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
(WebInspector.ScriptsPanel.prototype._appendFunctionItems):
* inspector/front-end/TabbedPane.js:
(WebInspector.TabbedPaneTab.prototype._tabContextMenu):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._contextMenu):
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionsSection.prototype._emptyElementContextMenu):
(WebInspector.WatchExpressionTreeElement.prototype.populateContextMenu):
2013-03-19 Alec Flett <alecflett@chromium.org>
Inspector: IndexedDB clear button and menu item
https://bugs.webkit.org/show_bug.cgi?id=112066
Reviewed by Vsevolod Vlasov.
Adds a button that can clear the contents of an objectStore from
the IDBDataView, and a context menu from the ResourcesPanel that
can do the same.
This also disables the Refresh button from the IDBDataView, so there
is at least some visual feedback that the refresh button is working.
Tests: http/tests/inspector/indexeddb/database-data.html
* inspector/Inspector.json: New API clearObjectStore.
* inspector/InspectorIndexedDBAgent.cpp: Implementation of clearObjectStore
(WebCore):
(ClearObjectStoreListener): Calls the original closure after the objectStore is cleared.
(ClearObjectStore): Initiates the clear operation after the DB opens.
* inspector/front-end/IndexedDBModel.js: Exposes clearObjectStore to the Model API.
(WebInspector.IDBDataView): Add clear button and enable/disable clear and refresh buttons appropriately.
* inspector/front-end/ResourcesPanel.js: Add a menu item and refresh the displayed data after the clear.
* inspector/front-end/inspector.css: Add a style to show the right button for clear.
2013-03-19 Nate Chapin <japhet@chromium.org>
Merge MainResourceLoader::responseReceived into DocumentLoader
https://bugs.webkit.org/show_bug.cgi?id=112593
Part of the ongoing effort to merge MainResourceLoader entirely
into DocumentLoader.
Reviewed by Adam Barth.
No new tests, refactor only.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::finishedLoading): The only thing left in
MainResourceLoader related to this function was a RefPtr which indirectly
protected DocumentLoader. Move the RefPtr here and protect DocumentLoader directly.
(WebCore::DocumentLoader::responseReceived): Moved from MainResourceLoader.
(WebCore::DocumentLoader::callContinueAfterContentPolicy): Moved from MainResourceLoader.
(WebCore::DocumentLoader::continueAfterContentPolicy): Moved from MainResourceLoader.
(WebCore::DocumentLoader::interruptedForPolicyChangeError): Moved from MainResourceLoader.
(WebCore::DocumentLoader::stopLoadingForPolicyChange): Moved from MainResourceLoader.
(WebCore::DocumentLoader::receivedData):
(WebCore::DocumentLoader::cancelMainResourceLoad):
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::isLoadingMultipartContent): Store multipart bit here.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::MainResourceLoader):
(WebCore::MainResourceLoader::cancel):
(WebCore::MainResourceLoader::responseReceived):
(WebCore::MainResourceLoader::notifyFinished):
* loader/MainResourceLoader.h:
2013-03-19 Tony Chang <tony@chromium.org>
Cleanup defaultUnifiedTextCheckerEnabled type
https://bugs.webkit.org/show_bug.cgi?id=112640
Reviewed by Adam Barth.
It's a bool setting. I accidentally declared the default value as a double
in r139202.
No new tests, this is a refactor/code cleanup.
* page/Settings.cpp:
(WebCore): Switch from double to a bool.
2013-03-19 Alexei Filippov <alph@chromium.org>
Web Inspector: Increase DataGrid default font size.
https://bugs.webkit.org/show_bug.cgi?id=112692
Reviewed by Pavel Feldman.
The default font of 10px is too small. Most instances of DataGrid set
font to 11px.
* inspector/front-end/dataGrid.css:
(.data-grid table):
2013-03-19 Max Vujovic <mvujovic@adobe.com>
Refactor conditions for setCompositingLayersNeedRebuild in RenderLayer::styleChanged
https://bugs.webkit.org/show_bug.cgi?id=112606
Reviewed by Simon Fraser.
To fix bug 109098 [1], we will need to add more conditions for calling
RenderLayerCompositor::setCompositingLayersNeedRebuild in RenderLayer::styleChanged.
Adding more non-trivial conditions will make this block of code even harder to follow.
This patch refactors the current conditions into functions:
needsCompositingLayersRebuiltForClip
needsCompositingLayersRebuiltForOverflow
In bug 109098 [1], I'm planning to add:
needsCompositingLayersRebuiltForFilters
[1]: https://bugs.webkit.org/show_bug.cgi?id=109098
No new tests. Just refactoring.
* rendering/RenderLayer.cpp:
(WebCore):
(WebCore::RenderLayer::needsCompositingLayersRebuiltForClip):
(WebCore::RenderLayer::needsCompositingLayersRebuiltForOverflow):
This is a method and not a file static function because it needs to look at the
RenderLayer's stackingContainer(), which is a private method.
(WebCore::RenderLayer::styleChanged):
* rendering/RenderLayer.h:
(RenderLayer):
2013-03-19 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Support kerning in fast path font rendering
https://bugs.webkit.org/show_bug.cgi?id=106013
Reviewed by Jocelyn Turcotte.
To support kerning in the fast font path we need to implement SimpleFontData::applyTransforms.
This patch changes the types used by the fast path GlyphBuffer to match those used by Qt,
and implements SimpleFontData::applyTransforms using QRawFont::advancesForGlyphIndexes.
* platform/graphics/GlyphBuffer.h:
(GlyphBufferAdvance):
(WebCore::GlyphBufferAdvance::GlyphBufferAdvance):
(WebCore::GlyphBufferAdvance::setWidth):
(WebCore::GlyphBufferAdvance::width):
(WebCore::GlyphBufferAdvance::height):
(WebCore::GlyphBuffer::add):
* platform/graphics/SimpleFontData.h:
(WebCore::SimpleFontData::applyTransforms):
* platform/graphics/WidthIterator.h:
(WebCore::WidthIterator::supportsTypesettingFeatures):
2013-03-19 Sergey Ryazanov <serya@chromium.org>
Web Inspector: split Console into two entities, a web-facing bound object and page console.
https://bugs.webkit.org/show_bug.cgi?id=111578
Reviewed by Vsevolod Vlasov.
Otherwise, a lot of logging in WebCore needs to go through the DOMWindow which is unnecessary.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.order:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/v8/custom/V8CustomXPathNSResolver.cpp:
(WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
* dom/Document.cpp:
(WebCore::Document::addConsoleMessage):
(WebCore::Document::addMessage):
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::muteConsole):
(WebCore::PageDebuggerAgent::unmuteConsole):
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::muteConsole):
(WebCore::PageRuntimeAgent::unmuteConsole):
* page/Console.cpp:
(WebCore::internalAddMessage):
* page/Console.h:
(WebCore):
(Console):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::pageConsole):
(WebCore):
(WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
(WebCore::DOMWindow::printErrorMessage):
* page/DOMWindow.h:
(WebCore):
(DOMWindow):
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h:
(WebCore):
(WebCore::Page::console):
(Page):
* page/PageConsole.cpp: Added.
(WebCore::PageConsole::PageConsole):
(WebCore):
(WebCore::PageConsole::~PageConsole):
(WebCore::PageConsole::printSourceURLAndLine):
(WebCore::PageConsole::printMessageSourceAndLevelPrefix):
(WebCore::PageConsole::addMessage):
(WebCore::PageConsole::mute):
(WebCore::PageConsole::unmute):
(WebCore::PageConsole::shouldPrintExceptions):
(WebCore::PageConsole::setShouldPrintExceptions):
* page/PageConsole.h: Copied from Source/WebCore/page/Console.h.
(WebCore):
(PageConsole):
(WebCore::PageConsole::create):
(WebCore::PageConsole::page):
* xml/XSLStyleSheetLibxslt.cpp:
(WebCore::XSLStyleSheet::parseString):
* xml/XSLTProcessorLibxslt.cpp:
(WebCore::XSLTProcessor::parseErrorFunc):
(WebCore::docLoaderFunc):
2013-03-19 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: move OverviewGrid and OverviewWindow into separate file.
https://bugs.webkit.org/show_bug.cgi?id=112693
Reviewed by Yury Semikhatsky.
It is the third patch for the meta bug "Web Inspector: meta bug: extract OverviewGrid from TimelineOverviewPane"
It just moves the OverviewGrid and the related classes into its own file.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* inspector/compile-front-end.py:
* inspector/front-end/OverviewGrid.js: Added.
(WebInspector.OverviewGrid):
(WebInspector.OverviewGrid.prototype.itemsGraphsElement):
(WebInspector.OverviewGrid.prototype.insertBeforeItemsGraphsElement):
(WebInspector.OverviewGrid.prototype.clientWidth):
(WebInspector.OverviewGrid.prototype.showItemsGraphsElement):
(WebInspector.OverviewGrid.prototype.hideItemsGraphsElement):
(WebInspector.OverviewGrid.prototype.updateDividers):
(WebInspector.OverviewGrid.prototype.addEventDividers):
(WebInspector.OverviewGrid.prototype.removeEventDividers):
(WebInspector.OverviewGrid.prototype.setWindowPosition):
(WebInspector.OverviewGrid.prototype.reset):
(WebInspector.OverviewGrid.prototype.windowLeft):
(WebInspector.OverviewGrid.prototype.windowRight):
(WebInspector.OverviewGrid.prototype.setWindow):
(WebInspector.OverviewGrid.prototype.addEventListener):
(WebInspector.OverviewGrid.Window):
(WebInspector.OverviewGrid.Window.prototype.reset):
(WebInspector.OverviewGrid.Window.prototype._leftResizeElementDragging):
(WebInspector.OverviewGrid.Window.prototype._rightResizeElementDragging):
(WebInspector.OverviewGrid.Window.prototype._startWindowSelectorDragging):
(WebInspector.OverviewGrid.Window.prototype._windowSelectorDragging):
(WebInspector.OverviewGrid.Window.prototype._endWindowSelectorDragging):
(WebInspector.OverviewGrid.Window.prototype._startWindowDragging):
(WebInspector.OverviewGrid.Window.prototype._windowDragging):
(WebInspector.OverviewGrid.Window.prototype._endWindowDragging):
(WebInspector.OverviewGrid.Window.prototype._moveWindow):
(WebInspector.OverviewGrid.Window.prototype._resizeWindowLeft):
(WebInspector.OverviewGrid.Window.prototype._resizeWindowRight):
(WebInspector.OverviewGrid.Window.prototype._resizeWindowMaximum):
(WebInspector.OverviewGrid.Window.prototype._setWindow):
(WebInspector.OverviewGrid.Window.prototype._setWindowPosition):
(WebInspector.OverviewGrid.Window.prototype._onMouseWheel):
(WebInspector.OverviewGrid.Window.prototype._zoom):
(WebInspector.OverviewGrid.WindowSelector):
(WebInspector.OverviewGrid.WindowSelector.prototype._createSelectorElement):
(WebInspector.OverviewGrid.WindowSelector.prototype._close):
(WebInspector.OverviewGrid.WindowSelector.prototype._updatePosition):
* inspector/front-end/TimelineOverviewPane.js:
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2013-03-19 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Monospace font does not render in proper sizes
https://bugs.webkit.org/show_bug.cgi?id=93263
Reviewed by Jocelyn Turcotte.
Do not force fonts to use integer metrics. This was necessary when the fast font path
only worked in integer but is now hindering accurate metrics. This is also required to
make kerning in the fast-path look acceptable
Only enabled for Qt 5.1+ to avoid changing all the baselines for 5.0.
* platform/graphics/qt/FontPlatformDataQt.cpp:
(WebCore::FontPlatformData::FontPlatformData):
2013-03-19 John J. Barton <johnjbarton@chromium.org>
Web Inspector: Add iframe option to inspectedWindow.eval() extension API
https://bugs.webkit.org/show_bug.cgi?id=106811
Reviewed by Vsevolod Vlasov.
Add a new case to the options processing in inspectedWindow.eval(), look
for option.frameURL <string> and/or option.scriptExecutionContext: <string>, find the
matching JS context in the runtimeModel, and call evaluate() in that
context; or error if the context is not found.
Test: http/tests/inspector/extensions-iframe-eval.html
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
(WebInspector.ExtensionServer.prototype.):
(WebInspector.ExtensionServer.prototype.evaluate):
* inspector/front-end/ResourceTreeModel.js:
(WebInspector.ResourceTreeModel.prototype.frames):
Added read access to _frames
* inspector/front-end/RuntimeModel.js:
(WebInspector.RuntimeModel.prototype.contextListByFrame):
Added access to a frame's contextList, removed contextByFrameAndSecurityOrigin()
(WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
Added access to frame's mainWorldContext, rather than implicit first context.
Now we can go from ResourceTreeModel -> frame -> contextList then either
mainWorldContext() or contextBySecurityOrigin() to access contexts.
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype.):
(WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
(WebInspector.ExtensionServer.prototype.evaluate):
* inspector/front-end/ResourceTreeModel.js:
* inspector/front-end/RuntimeModel.js:
(WebInspector.RuntimeModel.prototype.contextListByFrame):
(WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype._onReload):
(WebInspector.ExtensionServer.prototype.resolveURLToFrame.hasMatchingURL):
(WebInspector.ExtensionServer.prototype.):
(WebInspector.ExtensionServer.prototype.evaluate):
* inspector/front-end/ResourceTreeModel.js:
(WebInspector.ResourceTreeModel.prototype.frames):
* inspector/front-end/RuntimeModel.js:
(WebInspector.RuntimeModel.prototype.contextListByFrame):
(WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype.resolveURLToFrame.hasMatchingURL):
(WebInspector.ExtensionServer.prototype.):
(WebInspector.ExtensionServer.prototype.evaluate):
* inspector/front-end/ResourceTreeModel.js:
(WebInspector.ResourceTreeModel.prototype.frames):
* inspector/front-end/RuntimeModel.js:
(WebInspector.RuntimeModel.prototype.contextListByFrame):
(WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
2013-03-19 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: rename TimelineOverviewWindow to OverviewGrid.Window and fix names for constants.
https://bugs.webkit.org/show_bug.cgi?id=112685
Reviewed by Yury Semikhatsky.
It is the second patch which extracts OverviewGrid from TimelineOverviewPane.
It renames internal components of OverviewGrid.
WebInspector.TimelineOverviewWindow -> WebInspector.OverviewGrid.Window
WebInspector.TimelineOverviewWindow.WindowSelector -> WebInspector.OverviewGrid.WindowSelector
and moves constants from WebInspector.TimelineOverviewWindow namespace to WebInspector.OverviewGrid namespace
* inspector/front-end/TimelineOverviewPane.js:
(WebInspector.TimelineOverviewPane):
(WebInspector.OverviewGrid):
(WebInspector.OverviewGrid.Window):
(WebInspector.OverviewGrid.Window.prototype._startWindowSelectorDragging):
(WebInspector.OverviewGrid.Window.prototype._endWindowSelectorDragging):
(WebInspector.OverviewGrid.Window.prototype._startWindowDragging):
(WebInspector.OverviewGrid.Window.prototype._windowDragging):
(WebInspector.OverviewGrid.Window.prototype._moveWindow):
(WebInspector.OverviewGrid.Window.prototype._resizeWindowRight):
(WebInspector.OverviewGrid.Window.prototype._setWindowPosition):
(WebInspector.OverviewGrid.Window.prototype._onMouseWheel):
(WebInspector.OverviewGrid.Window.prototype._zoom):
(WebInspector.OverviewGrid.WindowSelector):
(WebInspector.OverviewGrid.WindowSelector.prototype._createSelectorElement):
2013-03-19 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: move _timelineGrid && _timelineOverviewWindow from TimelineOverviewPane into a new class OverviewGrid.
https://bugs.webkit.org/show_bug.cgi?id=112584
Reviewed by Pavel Feldman.
It is the first path in the set.
The end goal is to extract OverviewGrid with window selectors
into a separate class in separate file and reuse it in CPU FlameChart.
* inspector/front-end/TimelineOverviewPane.js:
(WebInspector.TimelineOverviewPane):
(WebInspector.OverviewGrid):
(WebInspector.OverviewGrid.prototype.get grid):
(WebInspector.OverviewGrid.prototype.get clientWidth):
(WebInspector.OverviewGrid.prototype.showItemsGraphsElement):
(WebInspector.OverviewGrid.prototype.hideItemsGraphsElement):
(WebInspector.OverviewGrid.prototype.updateDividers):
(WebInspector.OverviewGrid.prototype.addEventDividers):
(WebInspector.OverviewGrid.prototype.removeEventDividers):
(WebInspector.OverviewGrid.prototype.setWindowPosition):
(WebInspector.OverviewGrid.prototype.reset):
(WebInspector.OverviewGrid.prototype.get windowLeft):
(WebInspector.OverviewGrid.prototype.get windowRight):
(WebInspector.OverviewGrid.prototype.setWindow):
(WebInspector.OverviewGrid.prototype.addEventListener):
(WebInspector.TimelineOverviewPane.prototype.setMode):
(WebInspector.TimelineOverviewPane.prototype._setFrameMode):
(WebInspector.TimelineOverviewPane.prototype._update):
(WebInspector.TimelineOverviewPane.prototype.sidebarResized):
(WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
(WebInspector.TimelineOverviewPane.prototype._reset):
(WebInspector.TimelineOverviewPane.prototype.windowLeft):
(WebInspector.TimelineOverviewPane.prototype.windowRight):
(WebInspector.TimelineOverviewPane.prototype._updateWindow):
2013-03-19 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Add Inspector.targetCrashed event to Inspector protocol.
https://bugs.webkit.org/show_bug.cgi?id=112669
Added Inspector.targetCrashed event and handled it on the front end.
Showing a modal dialog similar to the one displayed when the remote
debugging target is disconnected.
Reviewed by Pavel Feldman.
* English.lproj/localizedStrings.js:
* inspector/Inspector.json:
* inspector/front-end/HelpScreen.js:
(WebInspector.HelpScreenUntilReload):
(WebInspector.HelpScreenUntilReload.prototype.willHide):
* inspector/front-end/inspector.js:
(WebInspector.targetCrashed):
2013-03-19 Mario Sanchez Prada <mario.prada@samsung.com>
[GTK] Wrong guard USE(GLX) in RedirectedXCompositeWindow
https://bugs.webkit.org/show_bug.cgi?id=112600
Reviewed by Martin Robinson.
Replace USE(GLX) condition with USE(OPENGL) && PLATFORM(X11).
* platform/gtk/RedirectedXCompositeWindow.cpp: Updated guard.
* platform/gtk/RedirectedXCompositeWindow.h: Ditto.
2013-03-19 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Crash reflowing content in variable width regions
https://bugs.webkit.org/show_bug.cgi?id=112515
Reviewed by David Hyatt.
When removing floats during relayout of a line in a paginated context,
we have to make sure that the floats collection actually has elements before
accessing the last float from the collection.
This situation arises when a block had floats in a previous layout and after
they were removed, m_floatingObjects is not destroyed, only emptied.
Test: fast/regions/crash-reflow-inline-content-in-variable-width-regions.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removeFloatingObjectsBelow):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloats):
(WebCore::RenderBlock::layoutRunsAndFloatsInRange):
2013-03-18 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Debugger scripts should visually differ from network/filesystem files in workspace.
https://bugs.webkit.org/show_bug.cgi?id=112552
Reviewed by Pavel Feldman.
Extracted ContentProviderBasedProjectDelegate from SimpleProjectDelegate.
Implemented DebuggerProjectDelegate for DefaultScriptMapping.
Debugger scripts are now added to workspace with a name starting with [VM] and ending with scriptId.
Added yellow background to debugger scripts editor.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/ContentProviderBasedProjectDelegate.js: Added.
* inspector/front-end/DefaultScriptMapping.js:
(WebInspector.DefaultScriptMapping):
(WebInspector.DefaultScriptMapping.prototype.addScript):
(WebInspector.DefaultScriptMapping.prototype._debuggerReset):
(WebInspector.DebuggerProjectDelegate):
(WebInspector.DebuggerProjectDelegate.prototype.id):
(WebInspector.DebuggerProjectDelegate.prototype.type):
(WebInspector.DebuggerProjectDelegate.prototype.displayName):
(WebInspector.DebuggerProjectDelegate.prototype.addScript):
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame):
* inspector/front-end/ParsedURL.js:
(WebInspector.ParsedURL.splitURL):
* inspector/front-end/SimpleWorkspaceProvider.js:
(WebInspector.SimpleProjectDelegate):
(WebInspector.SimpleProjectDelegate.prototype.addFile):
(WebInspector.SimpleProjectDelegate.prototype._ensureUniquePath):
(WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/Workspace.js:
(WebInspector.Workspace.prototype.uiSourceCodeForURL):
* inspector/front-end/inspector.html:
* inspector/front-end/javaScriptSourceFrame.css: Added.
(.source-frame-debugger-script):
2013-03-19 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] add smart braces functionality
https://bugs.webkit.org/show_bug.cgi?id=112138
Reviewed by Vsevolod Vlasov.
No new tests.
Add closebrackets add-on to codemirror which implements smart braces
functionality and guard this setting with the "Text Editor smart
braces" experiment.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* inspector/front-end/CodeMirrorTextEditor.js:
* inspector/front-end/WebKit.qrc:
* inspector/front-end/cm/closebrackets.js: Added.
(.):
2013-03-19 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: Avoid forcing text editor resize
https://bugs.webkit.org/show_bug.cgi?id=112581
Reviewed by Vsevolod Vlasov.
No new tests.
Avoid unnecessary text editor resizing by removing line decoration
via removeDecoration method instead of DOM remove operation.
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype.clearMessages):
(WebInspector.SourceFrame.prototype._setTextEditorDecorations):
2013-03-19 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] fix cursor movements
https://bugs.webkit.org/show_bug.cgi?id=112555
Reviewed by Vsevolod Vlasov.
No new tests.
- Update CodeMirror to ToT to include its improved cursor movement
- Add a small keymap to force cursor stop on both line endings and line
starts.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor):
(WebInspector.CodeMirrorTextEditor.FixWordMovement):
(WebInspector.CodeMirrorTextEditor.FixWordMovement.moveRight):
* inspector/front-end/cm/codemirror.css:
(.CodeMirror div.CodeMirror-cursor):
(.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor):
(.CodeMirror):
* inspector/front-end/cm/codemirror.js:
(window.CodeMirror):
(window.CodeMirror.):
2013-03-19 Adam Barth <abarth@webkit.org>
[chromium] Regression(143825): select elements don't open when there is a marquee on the page
https://bugs.webkit.org/show_bug.cgi?id=111278
Unreviewed.
This patch is a rollout of http://trac.webkit.org/changeset/143825. The
original patch caused a regression in the Chromium port.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollTo):
2013-03-19 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Styles] Matching @host rule children are not displayed
https://bugs.webkit.org/show_bug.cgi?id=112664
Reviewed by Vsevolod Vlasov.
Process host rules' contents akin to media rules' when handling the CSS model and source data.
Test: platform/chromium/inspector/styles/host-rules.html
* inspector/InspectorStyleSheet.cpp:
(flattenSourceData):
(WebCore::asCSSRuleList):
2013-03-18 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Styles] The "inherit" property value should be suggested for all properties
https://bugs.webkit.org/show_bug.cgi?id=112662
Reviewed by Vsevolod Vlasov.
* inspector/front-end/CSSMetadata.js:
(WebInspector.CSSMetadata.keywordsForProperty):
2013-03-18 David Kilzer <ddkilzer@apple.com>
BUILD FIX (r146088): ResourceRequest::cfURLRequest() is defined twice on iOS
<http://webkit.org/b/112387>
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::cfURLRequest): Move method into
!USE(CFNETWORK) section since it's also defined in
cf/ResourceRequestCFNet.cpp on iOS.
2013-03-18 Alpha Lam <hclam@chromium.org>
[chromium] More tracing in deferred image decoding
https://bugs.webkit.org/show_bug.cgi?id=112648
Reviewed by James Robinson.
Adding more trace events for a couple things in deferred image decoding path:
- Time span for each lock pixels of SkPixelRef.
- Time spent on decoding, scaling and pruning. Also the stack trace for these events.
- Memory usage and number of cached entries.
- Number of decode & scale operations done per image.
No test as this just add tracing information and no behavior change.
* platform/graphics/chromium/ImageDecodingStore.cpp:
(WebCore::ImageDecodingStore::prune):
(WebCore::ImageDecodingStore::insertCacheInternal):
(WebCore::ImageDecodingStore::removeFromCacheInternal):
* platform/graphics/chromium/ImageFrameGenerator.cpp:
(WebCore::ImageFrameGenerator::ImageFrameGenerator):
(WebCore::ImageFrameGenerator::decodeAndScale):
(WebCore::ImageFrameGenerator::tryToScale):
(WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
(WebCore::ImageFrameGenerator::tryToDecodeAndScale):
(WebCore::ImageFrameGenerator::decode):
* platform/graphics/chromium/ImageFrameGenerator.h:
(ImageFrameGenerator):
* platform/graphics/chromium/LazyDecodingPixelRef.cpp:
(WebCore::LazyDecodingPixelRef::onLockPixels):
(WebCore::LazyDecodingPixelRef::onUnlockPixels):
(WebCore::LazyDecodingPixelRef::PrepareToDecode):
2013-03-18 Kentaro Hara <haraken@chromium.org>
Unreviewed. Rebaselined run-bindings-tests after r146161.
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjEnumAttr):
(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::ConfigureV8TestObjTemplate):
2013-03-18 Robert Flack <flackr@chromium.org>
[chromium] Small pixel differences in scroll bars after r145844
https://bugs.webkit.org/show_bug.cgi?id=112384
Reviewed by Kenneth Russell.
Tests: fast/forms/basic-textareas-quirks.html
fast/forms/basic-textareas.html
fast/overflow/overflow-x-y.html
fast/parser/open-comment-in-textarea.html
fast/replaced/width100percent-textarea.html
* platform/chromium/ScrollbarThemeChromium.cpp:
(WebCore::ScrollbarThemeChromium::trackRect):
2013-03-18 Brent Fulgham <bfulgham@webkit.org>
[WinCairo] Unreviewed build correction.
The "ImageDecoder.h" file was improperly tagged as a source file to
build, causing a build failure on initial build attempts. Subsequent
or incremental builds would work.
* WebCore.vcxproj/WebCore.vcxproj: Exclude CG-specific font files.
Switch 'ImageDecoder.h' to proper source file type.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
2013-03-18 James Robinson <jamesr@chromium.org>
[chromium] Remove unused type WebTransformationMatrix
https://bugs.webkit.org/show_bug.cgi?id=112634
Reviewed by Adam Barth.
* WebCore.gypi:
* platform/chromium/support/WebTransformationMatrix.cpp: Removed.
2013-03-18 Arnaud Renevier <a.renevier@sisa.samsung.com>
Add IDL 'enum' support to CodeGeneratorJS.pm
https://bugs.webkit.org/show_bug.cgi?id=112475
Reviewed by Kentaro Hara.
This adds support for enumerations in JS, adding validation checking
to setters.
It also does validation checking to methods, and a new method
methodWithEnumArg in TestObj.idl
Test: bindings/scripts/test/TestObj.idl
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateParametersCheck):
(NativeToJSValue):
* bindings/scripts/test/CPP/WebDOMTestObj.cpp:
(WebDOMTestObj::methodWithEnumArg):
* bindings/scripts/test/CPP/WebDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_method_with_enum_arg):
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore):
(WebCore::jsTestObjEnumAttr):
(WebCore::setJSTestObjEnumAttr):
(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
* bindings/scripts/test/JS/JSTestObj.h:
(WebCore):
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
(-[DOMTestObj methodWithEnumArg:]):
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::methodWithEnumArgMethod):
(TestObjV8Internal):
(WebCore::TestObjV8Internal::methodWithEnumArgMethodCallback):
(WebCore::ConfigureV8TestObjTemplate):
2013-03-18 Sam Weinig <sam@webkit.org>
Need a bundle SPI to generate a snapshot of a specific DOM node (like [DOMNode renderedImage])
<rdar://problem/13148631>
https://bugs.webkit.org/show_bug.cgi?id=110034
Reviewed by Tim Horton.
* WebCore.exp.in:
Add some necessary exports.
2013-03-18 Brent Fulgham <bfulgham@webkit.org>
[WinCairo] Build WebCore under VS2010
https://bugs.webkit.org/show_bug.cgi?id=112637
Reviewed by Tim Horton.
* WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj: Extend project
with WinCairo-specific build targets.
* WebCore.vcxproj/QTMovieWin/QTMovieWinCairoDebug.props: Added.
* WebCore.vcxproj/QTMovieWin/QTMovieWinCairoRelease.props: Added.
* WebCore.vcxproj/WebCore.vcxproj: Update to build WinCairo version
of code.
* WebCore.vcxproj/WebCoreCURL.props: Added.
* WebCore.vcxproj/WebCoreCairo.props: Added.
* WebCore.vcxproj/WebCoreDebugWinCairo.props: Added.
* WebCore.vcxproj/WebCoreGenerated.vcxproj:
* WebCore.vcxproj/WebCoreGeneratedDebugWinCairo.props: Added.
* WebCore.vcxproj/WebCoreGeneratedReleaseWinCairo.props: Added.
* WebCore.vcxproj/WebCoreGeneratedWinCairo.make: Added.
* WebCore.vcxproj/WebCoreGeneratedWinCairoCommon.props: Added.
* WebCore.vcxproj/WebCoreReleaseWinCairo.props: Added.
* WebCore.vcxproj/WebCoreTestSupport.vcxproj:
* WebCorePrefix.h: Update header to not include Apple-specific
headers during WinCairo build.
2013-03-18 Joshua Bell <jsbell@chromium.org>
IDB Cursor continue moves one item at a time
https://bugs.webkit.org/show_bug.cgi?id=109972
Reviewed by Tony Chang.
IndexedDB: Use seek on the underlying levelDB iterator to implement the continue operation
on a cursor, instead of advancing one item at a time. On a simple test in Chrome - open a
key cursor on an index w/ 100 items, then do continue(50), rinse and repeat - this cuts the
time 50% (850c/s to 1700c/s). (Original patch c/o Pankaj Kakkar <pankaj@google.com>)
Covered by existing storage/indexeddb cursor tests; just a performance optimization.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::Cursor::continueFunction): Special case first iteration w/ key
to use leveldb seek (forward cursors only, since reverse seek isn't exposed).
(WebCore::ObjectStoreKeyCursorImpl::encodeKey): Helper for encoding key to seek to.
(WebCore::ObjectStoreCursorImpl::encodeKey): Ditto.
(WebCore::IndexKeyCursorImpl::encodeKey): Ditto.
(WebCore::IndexCursorImpl::encodeKey): Ditto.
(WebCore::objectStoreCursorOptions): Store IDs for encodeKey() to use.
(WebCore::indexCursorOptions): Ditto.
* Modules/indexeddb/IDBBackingStore.h:
(CursorOptions): Storage for IDs.
(Cursor): Add encodeKey() to interface.
2013-03-18 Alexey Proskuryakov <ap@apple.com>
MessagePortChannel::EventData should not be exposed
https://bugs.webkit.org/show_bug.cgi?id=112635
Reviewed by Geoff Garen.
MessagePortChannel::EventData is an implementation detail that's only needed to
store events in MessageQueue. Other existing code already gets away without it,
just passing message and ports separately.
* dom/MessagePort.cpp:
(WebCore::MessagePort::postMessage):
(WebCore::MessagePort::dispatchMessages):
* dom/MessagePortChannel.cpp:
* dom/MessagePortChannel.h:
* dom/default/PlatformMessagePortChannel.cpp:
(WebCore::PlatformMessagePortChannel::EventData::create):
(WebCore::PlatformMessagePortChannel::EventData::EventData):
(WebCore::MessagePortChannel::postMessageToRemote):
(WebCore::MessagePortChannel::tryGetMessageFromRemote):
* dom/default/PlatformMessagePortChannel.h:
(WebCore::PlatformMessagePortChannel::EventData::message):
(WebCore::PlatformMessagePortChannel::EventData::channels):
(PlatformMessagePortChannel):
(WebCore::PlatformMessagePortChannel::MessagePortQueue::tryGetMessage):
(WebCore::PlatformMessagePortChannel::MessagePortQueue::appendAndCheckEmpty):
* dom/default/chromium/PlatformMessagePortChannelChromium.cpp:
(WebCore::MessagePortChannel::postMessageToRemote):
(WebCore::MessagePortChannel::tryGetMessageFromRemote):
(WebCore::PlatformMessagePortChannel::postMessageToRemote):
(WebCore::PlatformMessagePortChannel::tryGetMessageFromRemote):
* dom/default/chromium/PlatformMessagePortChannelChromium.h:
2013-03-18 Tom Sepez <tsepez@chromium.org>
[v8] Suppress binding integrity check of HTMLContentElement.
https://bugs.webkit.org/show_bug.cgi?id=112613
Reviewed by Adam Barth.
Patch is correct so long as fast/dom/shadow/content-element-user-agent-shadow.html
continues to pass.
* html/shadow/HTMLContentElement.idl:
2013-03-18 Dominic Mazzoni <dmazzoni@google.com>
Support Windows HTMLSelectElement keystrokes on Chromium win
https://bugs.webkit.org/show_bug.cgi?id=112460
Reviewed by Kent Tamura.
Compile in the windows-specific variant of
HTMLSelectElement::platformHandleKeydownEvent
on Chromium win, in addition to PLATFORM(WIN).
* WebCore.gypi:
Add html/HTMLSelectElementWin.cpp.
* html/HTMLSelectElement.cpp:
Don't compile generic platformHandleKeydownEvent on
Chromium win.
* html/HTMLSelectElementWin.cpp:
Only compile platformHandleKeydownEvent on Windows.
Fix compile error in assertion.
(WebCore):
2013-03-18 Mike West <mkwst@chromium.org>
CSP 1.1: Schemeless source expressions match HTTPS resources on HTTP sites.
https://bugs.webkit.org/show_bug.cgi?id=112573
Reviewed by Adam Barth.
Currently, the directive 'script-src example.com' would match only
scripts served from 'http://example.com' when served on an HTTP site,
and only scripts served from 'https://example.com' when served on an
HTTPS site. This patch changes the matching behavior for ports that
have enabled CSP_NEXT in order to encourage use of HTTPS resources by
allow schemeless source expressions to match HTTPS origins when on
HTTP sites.
Thread: http://lists.w3.org/Archives/Public/public-webappsec/2013Mar/0013.html
Spec change: https://dvcs.w3.org/hg/content-security-policy/rev/a7dc8820946e
Test: http/tests/security/contentSecurityPolicy/source-list-parsing-10.html
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPSource::CSPSource):
Pass the current policy into CSPSource so that we can check the
protected resource's scheme inside schemeMatches, rather than
overwriting the source expression's scheme before creating the
CSPSource.
(WebCore::CSPSource::schemeMatches):
If CSP_NEXT is enabled, ensure that HTTPS resources match the
HTTP scheme when loaded on HTTP pages with schemaless source
expressions.
(WebCore::CSPSource::portMatches):
Check the port against the URL's scheme: if m_scheme isn't
empty, this will match it. If m_scheme is empty, we can't
do a strict match against it, nor can we do a strict match
against the protected resource's port. Checking the URL's
port against the default port for its scheme solves this
problem elegantly.
(WebCore::CSPSourceList::parse):
(WebCore::CSPSourceList::addSourceSelf):
Pass in the policy when creating a CSPSource object.
2013-03-15 Jer Noble <jer.noble@apple.com>
Text track cues do not update sizes when entering or exiting full screen.
https://bugs.webkit.org/show_bug.cgi?id=112472
Reviewed by Eric Carlson.
The style properties of the TextCueBoxes were not being updated after the size of the video bounds changed.
Because getDisplayTree() will not do it when the cue itself has not changed, explicitly call videoSizeDidChange()
from updateSizes().
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateSizes): call videoSizeDidChange() on every active cue.
* html/track/TextTrackCue.h:
(WebCore::TextTrackCue::hasDisplayTree): returns whether or not the cue has created a display tree without side effects.
(WebCore::TextTrackCue::videoSizeDidChange): Overridable empty method.
* html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGeneric::videoSizeDidChange): Update the CSS height attribute of the cue box using the new video size.
* html/track/TextTrackCueGeneric.h:
2013-03-18 Mike West <mkwst@chromium.org>
CSP 1.1: Add 'effective-directive' to violation reports.
https://bugs.webkit.org/show_bug.cgi?id=112568
Reviewed by Adam Barth.
https://dvcs.w3.org/hg/content-security-policy/rev/bc2bb0e5072a
introduced an 'effective-directive' field on CSP violation reports,
which allows developers to distinguish between resource types when
'default-src' is the violated directive.
This patch implements the new field behind the CSP_NEXT flag.
Test: http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive.html
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPDirectiveList::checkSourceAndReportViolation):
(WebCore::CSPDirectiveList::reportViolation):
These methods now accept an additional parameter to pipe the
effective directive from the initial callsite down into
ContentSecurityPolicy::reportViolation.
(WebCore::CSPDirectiveList::checkEvalAndReportViolation):
(WebCore::CSPDirectiveList::checkNonceAndReportViolation):
(WebCore::CSPDirectiveList::checkMediaTypeAndReportViolation):
(WebCore::CSPDirectiveList::checkInlineAndReportViolation):
(WebCore::CSPDirectiveList::allowScriptFromSource):
(WebCore::CSPDirectiveList::allowObjectFromSource):
(WebCore::CSPDirectiveList::allowChildFrameFromSource):
(WebCore::CSPDirectiveList::allowImageFromSource):
(WebCore::CSPDirectiveList::allowStyleFromSource):
(WebCore::CSPDirectiveList::allowFontFromSource):
(WebCore::CSPDirectiveList::allowMediaFromSource):
(WebCore::CSPDirectiveList::allowConnectToSource):
(WebCore::CSPDirectiveList::allowFormAction):
These methods now pass the effective directive name down
into checkSourceAndReportViolation or reportViolation.
(WebCore::ContentSecurityPolicy::reportViolation):
* page/ContentSecurityPolicy.h:
This method now accepts a new parameter that carries
the effective directive name. If CSP_NEXT is enabled,
the field is added to the violation report before it's
sent out into the world.
2013-03-18 W. James MacLean <wjmaclean@chromium.org>
[chromium] Remove NCCH code that relies on boundsContainsPageScale().
https://bugs.webkit.org/show_bug.cgi?id=112465
Reviewed by James Robinson.
The boundsContainsPageScale() API is going away, remove code that
depends on it. Uses existing tests as no behaviour change.
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::setAppliesPageScale):
(WebCore::GraphicsLayerChromium::appliesPageScale):
2013-03-18 Alec Flett <alecflett@chromium.org>
IndexedDB: Protect against key prefix overflows
https://bugs.webkit.org/show_bug.cgi?id=111138
Reviewed by Tony Chang.
This reworks the boundary checking for all databaseId,
objectStoreId, and indexId, including negative and
zero-based ids. All entrypoints into IDBLevelDBCoding
are protected with explicit checks and all internal
uses of KeyPrefix are protected with ASSERTs in the
various constructors.
Tests: WebKit unit tests IDBBackingStoreTest.cpp in WebKit/chromium
* Modules/indexeddb/IDBBackingStore.h: Make all public methods boolean-based for errors.
* Modules/indexeddb/IDBLevelDBCoding.h: Add methods for checking databaseId, objectStoreId, and indexId.
2013-03-18 Roger Fong <roger_fong@apple.com>
AppleWin VS2010 Debug configuration build fix.
* WebCore.vcxproj/WebCore.vcxproj:
2013-03-18 Alexey Proskuryakov <ap@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=112627
MessagePort::disentangle() takes an ExceptionCode argument without any need
Reviewed by Geoffrey Garen.
MessagePort::disentangle() is called in two places. One has ASSERT_NO_EXCEPTION,
and another fails to check the exception, but clearly cannot get one.
This function is also not exposed to bindings.
* dom/MessagePort.cpp:
(WebCore::MessagePort::disentangle):
(WebCore::MessagePort::disentanglePorts):
* dom/MessagePort.h:
* workers/SharedWorker.cpp:
(WebCore::SharedWorker::create):
Also removed some unhelpful comments.
2013-03-18 Xianzhu Wang <wangxianzhu@chromium.org>
Variant of non-primary fell-back SVGFont causes crash.
https://bugs.webkit.org/show_bug.cgi?id=112367
Reviewed by Stephen Chenney.
Don't go to PlatformFontData path for SimpleFontData::createScaledFontData()
for SVG fonts.
Test: svg/css/font-face-variant-crash.html
* platform/graphics/SimpleFontData.cpp:
(WebCore::SimpleFontData::~SimpleFontData):
(WebCore::SimpleFontData::createScaledFontData): Don't go to PlatformFontData path for SVG fonts.
(WebCore):
* platform/graphics/SimpleFontData.h:
(SimpleFontData): Added createScaledFontData and renamed the original createScaledFontData to platformCreateScaledFontData.
BTW, Removed unreferenced commonInit.
* platform/graphics/blackberry/SimpleFontDataBlackBerry.cpp:
(WebCore::SimpleFontData::platformCreateScaledFontData): Renamed from createScaledFontData.
* platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
(WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
* platform/graphics/freetype/SimpleFontDataFreeType.cpp:
(WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
* platform/graphics/qt/SimpleFontDataQt.cpp:
(WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
* platform/graphics/skia/SimpleFontDataSkia.cpp:
(WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
* platform/graphics/win/SimpleFontDataWin.cpp:
(WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
* platform/graphics/wince/SimpleFontDataWinCE.cpp:
(WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
* platform/graphics/wx/SimpleFontDataWx.cpp:
(WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
2013-03-18 Victor Carbune <vcarbune@chromium.org>
Determine text direction for rendering a TextTrackCue
https://bugs.webkit.org/show_bug.cgi?id=79749
Reviewed by Levi Weintraub.
The rendering rules for WebVTT cues are slightly different
depending on the directionality determined from the characters
of the cue text. This patch implements the preliminary step
to be able to take directionality into account.
It iterates through the cue characters and setting the CSS
directionality to the one of the first strong directional character.
Test: media/track/track-cue-rendering-rtl.html
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCueBox::applyCSSProperties): Applies the determined
direction.
(WebCore::TextTrackCue::TextTrackCue): Sets the default value for the
display direction.
(WebCore::isCueParagraphSeparator): Tests for explicit unicode characters
that are paragraph separators.
(WebCore):
(WebCore::TextTrackCue::determineTextDirection): Determined the direction
by the first strong directional character found.
(WebCore::TextTrackCue::calculateDisplayParameters): Updated.
(WebCore::TextTrackCue::getCSSWritingDirection): Return the determined CSS
writing direction.
* html/track/TextTrackCue.h:
(TextTrackCue):
2013-03-18 Hans Wennborg <hans@chromium.org>
Fix GridTrackSize::operator==
https://bugs.webkit.org/show_bug.cgi?id=112501
Reviewed by Eric Seidel.
There was a missing "other." in the function.
This was found by experimenting with a potential new Clang warning.
Test: fast/css-grid-layout/grid-dynamic-updates-relayout.html
* rendering/style/GridTrackSize.h:
(WebCore::GridTrackSize::operator==):
2013-03-18 Alec Flett <alecflett@chromium.org>
Inspector: [Chromium] http/tests/inspector/indexeddb/database-data.html ASSERT on Win7 following r133855
https://bugs.webkit.org/show_bug.cgi?id=101618
Deactivate transactions created by the inspector, before
they are reactivated by IndexedDB. This puts transactions
in an identical state as when they are created by scripts.
Reviewed by Vsevolod Vlasov.
Test: http/tests/inspector/indexeddb/database-data.html
* inspector/InspectorIndexedDBAgent.cpp: Make transactions inactive upon leaving the inspector code.
2013-03-15 Jeffrey Pfau <jpfau@apple.com>
Allow blocking of application cache in third-party contexts
https://bugs.webkit.org/show_bug.cgi?id=112288
Reviewed by Adam Barth.
Return early if we can't access the application cache due to security
restrictions.
Tests: http/tests/security/cross-origin-appcache-allowed.html
http/tests/security/cross-origin-appcache.html
http/tests/security/same-origin-appcache-blocked.html
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::selectCache):
(WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
* page/SecurityOrigin.h:
(WebCore::SecurityOrigin::canAccessApplicationCache):
2013-03-18 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Script should know nothing about disabled source mappings.
https://bugs.webkit.org/show_bug.cgi?id=112580
Reviewed by Pavel Feldman.
ResourceScriptMapping handles diverged uiSourceCodes internally now.
Tested in inspector/debugger/live-edit-breakpoints.html already.
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
(WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
(WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
* inspector/front-end/Script.js:
(WebInspector.Script.prototype.rawLocationToUILocation):
2013-03-18 Alexey Proskuryakov <ap@apple.com>
Update MessagePort terminology to match HTML5
https://bugs.webkit.org/show_bug.cgi?id=112611
Reviewed by Anders Carlsson.
Transferable objects are "neutered" when transfered. Cloning is a different operation.
* dom/MessagePort.cpp:
(WebCore::MessagePort::disentanglePorts):
* dom/MessagePort.h:
(WebCore::MessagePort::isEntangled):
(WebCore::MessagePort::isNeutered):
2013-03-18 Roger Fong <roger_fong@apple.com>
AppleWin VS2010 build fix.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
2013-03-18 Lamarque V. Souza <Lamarque.Souza@basyskom.com>
[css3-text] Add rendering support for -webkit-text-underline-position
https://bugs.webkit.org/show_bug.cgi?id=102795
Reviewed by Levi Weintraub.
This patch implements rendering support for values [ auto | alphabetic | under ]
of CSS3 property text-underline-position. We don't fully match the specification
as we don't support [ left | right ] and this is left for another implementation
as the rendering will need to be added.
Tests: fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-all.html
fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic.html
fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto.html
fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under-out-of-flow.html
fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under.html
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::computeMaxLogicalTop): Added method to compute maximal logical top among all chidren of
this InlineTextBox.
* rendering/InlineFlowBox.h:
(InlineFlowBox):
* rendering/InlineTextBox.cpp:
(WebCore::computeUnderlineOffset): Added method to compute offset for text-underline-position property.
(WebCore::InlineTextBox::paintDecoration): Paint decoration at position calculated using computeUnderlineOffset().
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::RootInlineBox):
(WebCore::RootInlineBox::alignBoxesInBlockDirection): Call method to compute maximal logical top among all
children of this RootInlineBox.
* rendering/RootInlineBox.h:
(RootInlineBox):
(WebCore::RootInlineBox::maxLogicalTop): Added getter for m_maxLogicalTop class member.
* rendering/style/RenderStyle.h: Added the usual getter / setter / initial methods for text-underline-position
property
2013-03-18 Christian Biesinger <cbiesinger@chromium.org>
Convert old flexbox uses in html.css to new flexbox (non-<select>)
https://bugs.webkit.org/show_bug.cgi?id=110837
Reviewed by Ojan Vafai.
No new tests (No change in behaviour)
* css/html.css:
(input::-webkit-clear-button):
Missed this one in the original patch.
2013-03-18 Wei James <james.wei@intel.com>
AudioBasicProcessorNode need to check for deferred updating of output channels
https://bugs.webkit.org/show_bug.cgi?id=112544
There can in rare cases be a slight delay before the output
bus is updated to the new number of channels because of tryLocks() in the
context's updating system but the processor already updated to the new
number of channels, so need to check the channel number before processing.
Reviewed by Chris Rogers.
* Modules/webaudio/AudioBasicProcessorNode.cpp:
(WebCore::AudioBasicProcessorNode::process):
* Modules/webaudio/WaveShaperProcessor.cpp:
(WebCore::WaveShaperProcessor::process):
* platform/audio/AudioDSPKernelProcessor.cpp:
(WebCore::AudioDSPKernelProcessor::AudioDSPKernelProcessor):
* platform/audio/AudioDSPKernelProcessor.h:
(WebCore::AudioDSPKernelProcessor::numberOfChannels):
(AudioDSPKernelProcessor):
* platform/audio/AudioProcessor.h:
(WebCore::AudioProcessor::AudioProcessor):
(AudioProcessor):
2013-03-18 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Fix StyleGridData::operator==
https://bugs.webkit.org/show_bug.cgi?id=112574
Reviewed by Ojan Vafai.
Test: fast/css-grid-layout/grid-auto-flow-update.html
* rendering/style/StyleGridData.h:
(WebCore::StyleGridData::operator==):
Fixed a bad comparison that would make us ignore grid-auto-flow changes.
2013-03-18 Rafael Weinstein <rafaelw@chromium.org>
[HTMLTemplateElement] parseError check in processTemplateEndTag should use hasTagName, not hasLocalName
https://bugs.webkit.org/show_bug.cgi?id=112591
Reviewed by Adam Barth.
No tests needed, change is unobservable.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processTemplateEndTag):
2013-03-18 Brady Eidson <beidson@apple.com>
NetworkProcess should send vm_copied, mmap'ed memory to WebProcesses when a
resource is already in the disk cache.
<rdar://problem/13414153> and https://bugs.webkit.org/show_bug.cgi?id=112387
Reviewed by Geoff Garen.
No new tests (No change in behavior).
* WebCore.exp.in:
Add a CFURLRequestRef accessor even in the mac NSURL-based loader:
* platform/network/cf/ResourceRequest.h:
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::cfURLRequest):
2013-03-18 Dean Jackson <dino@apple.com>
Only add wordspacing when kerning to actual word ends
https://bugs.webkit.org/show_bug.cgi?id=112507
<rdar://problem/12945869>
Reviewed by Enrica Casucci.
When measuring text, we currently include any word spacing in
the result (it's removed later). When kerning is active, we
were adding the word spacing to every wordMeasurement instance
whether or not it is a separate word. For example, a nested
<span> element would get a wordMeasurement, even though it
should not always get word spacing.
Test: fast/text/word-space-with-kerning-3.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::setLogicalWidthForTextRun): Test if the current character
referenced by the wordMeasurement is a space character, and add word
spacing only then.
2013-03-18 Tony Chang <tony@chromium.org>
[chromium] Default background color of listboxes should be white
https://bugs.webkit.org/show_bug.cgi?id=112480
Reviewed by Ojan Vafai.
I think it was an accident that list boxes got the grey background color as a
side effect of trying to get the button styling. In the default GTK+ theme on
Ubuntu, list boxes get a white background. Win and OS X also use white as the
default color.
No new tests, covered by existing pixel tests.
* css/themeChromiumLinux.css:
Narrow the CSS rule that overrides the background color specified in html.css.
We only want to use the button color when a select is using button styling.
2013-03-18 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r146079.
http://trac.webkit.org/changeset/146079
https://bugs.webkit.org/show_bug.cgi?id=112594
many timeline tests failed. (Requested by loislo on #webkit).
* inspector/front-end/TimelineOverviewPane.js:
(WebInspector.TimelineOverviewPane):
(WebInspector.TimelineOverviewPane.prototype.setMode):
(WebInspector.TimelineOverviewPane.prototype._setFrameMode):
(WebInspector.TimelineOverviewPane.prototype._update):
(WebInspector.TimelineOverviewPane.prototype.sidebarResized):
(WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
(WebInspector.TimelineOverviewPane.prototype._reset):
(WebInspector.TimelineOverviewPane.prototype.windowLeft):
(WebInspector.TimelineOverviewPane.prototype.windowRight):
(WebInspector.TimelineOverviewPane.prototype._updateWindow):
2013-03-18 Peter Beverloo <peter@chromium.org>
[Chromium] The <select> element on Android should also switch to new-flexbox
https://bugs.webkit.org/show_bug.cgi?id=112559
Reviewed by Ojan Vafai.
Following r145959, also update themeChromiumAndroid.css to use the new
flexible box CSS properties. Covered by existing tests.
* css/themeChromiumAndroid.css:
(select[size][multiple]):
2013-03-18 Renata Hodovan <reni@webkit.org>
Assertion faulire in SVGAnimatedPath.
https://bugs.webkit.org/show_bug.cgi?id=106428
Reviewed by Allan Sandfeld Jensen.
The asserts are too restricted. The size must be greater or equal to 1.
Test: svg/animations/animated-path-via-use-debug-crash.svg
* svg/SVGAnimatedPath.cpp:
(WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedPathAnimator::resetAnimValToBaseVal):
2013-03-18 Simon Fraser <simon.fraser@apple.com>
[Mac] Some tests intermittently asserts in SharedBuffer::releasePurgeableBuffer()
https://bugs.webkit.org/show_bug.cgi?id=105986
Reviewed by Brady Eidson.
A ResourceBuffer's SharedBuffer can be vended out to other clients,
for example Images, so there's no guarantee that when the
ResourceBuffer only has one ref its SharedBuffer will also have just one.
When this assumption was broken, SharedBuffer::releasePurgeableBuffer()
would assert.
Ideally SharedBuffer would be entirely encapsulated by ResourceBuffer to
avoid this problem, but ResourceBuffer can't be used by code in platform/.
Fix by having ResourceBuffer::createPurgeableBuffer() refuse to make
a purgeable buffer if the sharedBuffer has more than one ref.
Tested by existing tests.
* loader/ResourceBuffer.cpp:
(WebCore::ResourceBuffer::createPurgeableBuffer):
2013-03-18 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: move _timelineGrid && _timelineOverviewWindow from TimelineOverviewPane into a new class OverviewGrid.
https://bugs.webkit.org/show_bug.cgi?id=112584
Reviewed by Pavel Feldman.
It is the first path in the set.
The end goal is to extract OverviewGrid with window selectors
into a separate class in separate file and reuse it in CPU FlameChart.
* inspector/front-end/TimelineOverviewPane.js:
(WebInspector.TimelineOverviewPane):
(WebInspector.OverviewGrid):
(WebInspector.OverviewGrid.prototype.get grid):
(WebInspector.OverviewGrid.prototype.get clientWidth):
(WebInspector.OverviewGrid.prototype.showItemsGraphsElement):
(WebInspector.OverviewGrid.prototype.hideItemsGraphsElement):
(WebInspector.OverviewGrid.prototype.updateDividers):
(WebInspector.OverviewGrid.prototype.addEventDividers):
(WebInspector.OverviewGrid.prototype.removeEventDividers):
(WebInspector.OverviewGrid.prototype.setWindowPosition):
(WebInspector.OverviewGrid.prototype.reset):
(WebInspector.OverviewGrid.prototype.get windowLeft):
(WebInspector.OverviewGrid.prototype.get windowRight):
(WebInspector.OverviewGrid.prototype.setWindow):
(WebInspector.OverviewGrid.prototype.addEventListener):
(WebInspector.TimelineOverviewPane.prototype.setMode):
(WebInspector.TimelineOverviewPane.prototype._setFrameMode):
(WebInspector.TimelineOverviewPane.prototype._update):
(WebInspector.TimelineOverviewPane.prototype.sidebarResized):
(WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
(WebInspector.TimelineOverviewPane.prototype._reset):
(WebInspector.TimelineOverviewPane.prototype.windowLeft):
(WebInspector.TimelineOverviewPane.prototype.windowRight):
(WebInspector.TimelineOverviewPane.prototype._updateWindow):
2013-03-18 Adam Barth <abarth@webkit.org>
[V8] Crash when accessing onclick attribute of document from XMLHttpRequest
https://bugs.webkit.org/show_bug.cgi?id=112585
Reviewed by Eric Seidel.
This ASSERT was bogus. The frame can be 0 for frameless documents, like
those created by XMLHttpRequest. When there is no frame, we act as if
JavaScript was disabled, which it is.
Test: fast/events/xhr-onclick-crash.html
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::prepareListenerObject):
2013-03-18 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Specifying polygonal -webkit-shape-inside value can crash browser (debug mode)
https://bugs.webkit.org/show_bug.cgi?id=112157
Reviewed by David Hyatt.
Corrected the code which maps exclusion segments to pairs of InlineIterators. We now handle the
cases where the end of the line occurs within an exclusion segment or when it occurs before
the last exclusion segment has been reached. This can occur when a non-convex polygonal shape-inside
breaks a line up into two segments, but the shape-inside element's content only fills (or partially
fills) the first exclusion shape segment.
Tests: fast/exclusions/shape-inside/shape-inside-partial-fill-001.html
fast/exclusions/shape-inside/shape-inside-partial-fill-002.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextLineBreak):
2013-03-18 Emil A Eklund <eae@chromium.org>
Change RenderTableCell to use pixelSnappedSize when painting
https://bugs.webkit.org/show_bug.cgi?id=112562
Reviewed by Eric Seidel.
Change the paining code in RenderTableCell to use the pixel snapped size
to ensure consistent rounding given that the location was rounded during
layout.
It is currently constructing a paint rect by taking the rounded location
and the precise size and then pixel snapping it. This causes the size to
be rounded incorrectly. By instead using the pixel snapped size the
rounding problem can be avoided.
Test: fast/sub-pixel/table-cell-background.html
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paintCollapsedBorders):
(WebCore::RenderTableCell::paintBackgroundsBehindCell):
(WebCore::RenderTableCell::paintBoxDecorations):
(WebCore::RenderTableCell::paintMask):
2013-03-18 Tao Bai <michaelbai@chromium.org>
Need to use const String in HTMLVideoElement::posterImageURL
https://bugs.webkit.org/show_bug.cgi?id=112317
Reviewed by Andreas Kling.
No behavioral changes.
This is the followup of https://bugs.webkit.org/show_bug.cgi?id=110263
Need to use String instead of const AtomicString& which means we will do an extra hash lookup
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::posterImageURL): Change to use String for url
2013-03-18 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Settings] Register "?" shortcut.
https://bugs.webkit.org/show_bug.cgi?id=112545
Reviewed by Vsevolod Vlasov.
F1 and "?" (show shortcuts page) are not mentioned on shortcuts page.
* English.lproj/localizedStrings.js: Added string.
* inspector/front-end/inspector.js: Registered F1 / "?" shortcut.
2013-03-18 Carlos Garcia Campos <cgarcia@igalia.com>
Add USE(PLATFORM_STRATEGIES) ifdefs to StorageNamespace.cpp
https://bugs.webkit.org/show_bug.cgi?id=112004
Reviewed by Rob Buis.
Check if platform strategies is enabled before using it, falling
back to StorageNamespaceImpl if it isn't.
* storage/StorageNamespace.cpp:
(WebCore::StorageNamespace::localStorageNamespace):
(WebCore::StorageNamespace::sessionStorageNamespace):
2013-03-18 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: TabbedEditorContainer does not restore last shown file on reload sometimes.
https://bugs.webkit.org/show_bug.cgi?id=112561
Reviewed by Alexander Pavlov.
* inspector/front-end/TabbedEditorContainer.js:
(WebInspector.TabbedEditorContainer.prototype.addUISourceCode):
2013-03-18 Arvid Nilsson <anilsson@rim.com>
[BlackBerry] Detach overlays from page when compositor is detached
https://bugs.webkit.org/show_bug.cgi?id=112424
Reviewed by Rob Buis.
PR 309160
Expose a method to retrieve a compositing thread layer's client.
No change in behavior, no new tests.
* platform/graphics/blackberry/LayerCompositingThread.h:
(WebCore::LayerCompositingThread::client):
2013-03-18 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Resources] Local Storage: duplicate keys are processed inappropriately.
https://bugs.webkit.org/show_bug.cgi?id=112402
Reviewed by Alexander Pavlov.
When user creates new items or renames existing one some existing item
may be overriden. If value is changed, then frontend will receive
notification and update record appropriately.
If item value hasn't been changed, then no notification comes.
But UI still expect / rely on this notification.
With this patch the "no notification" scenario is fixed:
duplicate items are removed.
Another scenario is when update notification comes when we started
editing value (after entering / renaming key). In this case
selected node should not be changed to leave user in editing mode.
* inspector/front-end/DOMStorageItemsView.js:
Added workarounds for "no notification" and "useless notification".
2013-03-18 Allan Sandfeld Jensen <allan.jensen@digia.com>
Clean up RenderFrameSet::nodeAtPoint
https://bugs.webkit.org/show_bug.cgi?id=112450
Reviewed by Eric Seidel.
Remove handling of resizing framesets from RenderFrameSet::nodeAtPoint.
The code has been incorrect since a mistake in r18333 (December 2006),
but has been dead code since r17770 (November 2006) where the then new
EventHandler started taking care of routing events to resizing FrameSets.
Since this was the only special feature of RenderFrameSet::nodeAtPoint,
the method has been removed.
* rendering/RenderFrameSet.cpp:
* rendering/RenderFrameSet.h:
(RenderFrameSet):
2013-03-18 Kunihiko Sakamoto <ksakamoto@chromium.org>
The 'formnovalidate' attribute doesn't work correctly on button elements with child elements
https://bugs.webkit.org/show_bug.cgi?id=112541
Reviewed by Kent Tamura.
Fix a bug where formnovalidate attribute of <button> is not honored
if the target of the click event is an element nested within the button.
Test: fast/forms/interactive-validation-formnovalidate-child.html
* html/HTMLFormElement.cpp:
(WebCore::submitElementFromEvent): Looks for the nearest FormControlElement ancestor of the event target.
2013-03-18 Keishi Hattori <keishi@webkit.org>
Add touch support to the calendar picker
https://bugs.webkit.org/show_bug.cgi?id=112256
Reviewed by Kent Tamura.
This patch increases the hit target sizes for touch and adds touch event
support to the scroll view, scroll bar and navigation button.
Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-touch-operations.html
platform/chromium/fast/forms/calendar-picker/month-picker-touch-operations.html
platform/chromium/fast/forms/calendar-picker/week-picker-touch-operations.html
* Resources/pagepopups/calendarPicker.js:
(hasInaccuratePointingDevice):
(Animator): Super class for TransitionAnimator and FlingGestureAnimator.
(Animator.prototype.start):
(Animator.prototype.stop):
(Animator.prototype.onAnimationFrame):
(TransitionAnimator): Same as the old Animator. Transition from one value to another.
(TransitionAnimator.prototype.setFrom):
(TransitionAnimator.prototype.start):
(TransitionAnimator.prototype.stop):
(TransitionAnimator.prototype.setTo):
(TransitionAnimator.prototype.onAnimationFrame):
(FlingGestureAnimator):Animates the fling scroll.
(FlingGestureAnimator.prototype._valueAtTime): Returns the value at the given time.
(FlingGestureAnimator.prototype._velocityAtTime): Returns the value change velocity at the given time.
(FlingGestureAnimator.prototype._timeAtVelocity): Returns the time when the value is changing at the given velocity.
(FlingGestureAnimator.prototype.start):
(FlingGestureAnimator.prototype.onAnimationFrame):
(ScrollView): Added support for touch gesture scrolling.
(ScrollView.prototype.onTouchStart):
(ScrollView.prototype.onWindowTouchMove):
(ScrollView.prototype.onWindowTouchEnd):
(ScrollView.prototype.onFlingGestureAnimatorStep):
(ScrollView.prototype.scrollTo):
(ScrubbyScrollBar): Added support for touch.
(ScrubbyScrollBar.prototype.onTouchStart):
(ScrubbyScrollBar.prototype.onWindowTouchMove):
(ScrubbyScrollBar.prototype.onWindowTouchEnd):
(ScrubbyScrollBar.prototype._setThumbPositionFromEventPosition): Accept MouseEvent or Touch.
(ScrubbyScrollBar.prototype.onMouseDown):
(ScrubbyScrollBar.prototype.onWindowMouseMove):
(ScrubbyScrollBar.prototype.onWindowMouseUp):
(YearListCell):
(YearListView):
(YearListView.prototype.onTouchStart):
(YearListView.prototype._animateRow):
(CalendarNavigationButton): Add touch support for long press.
(CalendarNavigationButton.prototype.onTouchStart):
(CalendarNavigationButton.prototype.onWindowTouchEnd):
(CalendarNavigationButton.prototype.onMouseDown):
(CalendarNavigationButton.prototype.onWindowMouseUp):
(CalendarTableView): Disable touch gesture scrolling in the calendar table.
2013-03-18 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL] Cancel mark on search field is not displayed
https://bugs.webkit.org/show_bug.cgi?id=94880
Reviewed by Kenneth Rohde Christiansen.
adjustSearchFieldCancelButtonStyle() doesn't set style width and height for search cancel button.
So, the button isn't showing up in search input field. Besides the button size should be scaled based
on the font size as chromium, qt, and blackberry ports.
Tests: fast/forms/search-cancel-button-style-sharing.html
fast/forms/search-rtl.html
* platform/efl/RenderThemeEfl.cpp:
(WebCore):
(WebCore::RenderThemeEfl::adjustSearchFieldCancelButtonStyle):
2013-03-15 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: Native Memory Timeline affects the performace even if was switched off.
https://bugs.webkit.org/show_bug.cgi?id=112428
Reviewed by Pavel Feldman.
Whether to include DOM counters and native memory statistics is now
configured using Timeline.start parameters instead of sending separate
commands Timeline.setIncludeDomCounters and Timeline.setIncludeNativeMemoryStatistics.
* inspector/Inspector.json:
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::restore):
(WebCore::InspectorTimelineAgent::start):
* inspector/InspectorTimelineAgent.h:
(InspectorTimelineAgent):
* inspector/front-end/DOMCountersGraph.js:
(WebInspector.DOMCountersGraph):
* inspector/front-end/NativeMemoryGraph.js:
(WebInspector.NativeMemoryGraph):
* inspector/front-end/TimelineManager.js:
(WebInspector.TimelineManager.prototype.start):
* inspector/front-end/TimelineModel.js:
(WebInspector.TimelineModel.prototype.startRecord):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype.get _toggleTimelineButtonClicked):
2013-03-18 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: Exception in timeline DOMCounters
https://bugs.webkit.org/show_bug.cgi?id=112427
Reviewed by Pavel Feldman.
Do not update marker on DOM counters graph if the graphs haven't been
drawn yet.
* inspector/front-end/MemoryStatistics.js:
(WebInspector.MemoryStatistics.prototype._refreshCurrentValues):
2013-03-18 Li Yin <li.yin@intel.com>
Mediastream.ended should return true when all tracks were removed.
https://bugs.webkit.org/show_bug.cgi?id=112528
Reviewed by Kentaro Hara.
Spec: http://dev.w3.org/2011/webrtc/editor/getusermedia.html#widl-MediaStream-ended
When all tracks have been removed, it should return true as well as all the tracks
were ended.
Test: fast/mediastream/MediaStream-add-remove-tracks.html
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::removeTrack):
2013-02-22 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: make number of stack frames to capture in Timeline a setting
https://bugs.webkit.org/show_bug.cgi?id=110619
Reviewed by Pavel Feldman.
- factor out creation of input type="text" control for better reuse;
- add timelineLimitStackFramesFlag & timelineStackFramesToCapture settings;
* English.lproj/localizedStrings.js: add "Frames to capture" and "Limit number of captured JS stack frames"
* inspector/front-end/Settings.js: add 2 settings;
(WebInspector.Settings):
* inspector/front-end/SettingsScreen.js: UI for the setting;
(WebInspector.GenericSettingsTab):
(WebInspector.GenericSettingsTab.prototype.get _createCSSAutoReloadControls.validateReloadTimeout):
* inspector/front-end/TimelineModel.js: pass the setting value to back-end.
2013-03-18 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r146035.
http://trac.webkit.org/changeset/146035
https://bugs.webkit.org/show_bug.cgi?id=112540
fails to build on Windows: singned/unsigned mismatch at ln. 53
of html\HTMLSelectElementWin.cpp (Requested by antonm on
#webkit).
* WebCore.gypi:
* html/HTMLSelectElement.cpp:
(WebCore):
* html/HTMLSelectElementWin.cpp:
2013-03-18 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r146033.
http://trac.webkit.org/changeset/146033
https://bugs.webkit.org/show_bug.cgi?id=112521
web audio tests are broken
* Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::AudioNode):
* Modules/webaudio/AudioNode.h:
* Modules/webaudio/AudioScheduledSourceNode.h:
* Modules/webaudio/ScriptProcessorNode.idl:
2013-03-18 Dominic Cooney <dominicc@chromium.org>
A placeholder renderer should not be taken to imply the existence of a text renderer in single line text controls
https://bugs.webkit.org/show_bug.cgi?id=112410
Reviewed by Tony Chang.
The assumption that if a text control had a placeholder renderer
then it also had a text renderer is not valid. If
::-webkit-textfield-decoration-controller is set to display: none;
a single line text control's decoration container renderer and
hence text renderer are not created. This change handles this
corner case where a text control has a placeholder renderer but
not a text renderer.
Tests: fast/forms/search/search-hide-decoration-container-crash.html (Updated)
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::fixPlaceholderRenderer):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout):
2013-03-18 Dominic Cooney <dominicc@chromium.org>
[Shadow] offsetParent should never return nodes in user agent Shadow DOM to script
https://bugs.webkit.org/show_bug.cgi?id=112530
Reviewed by Elliott Sprehn.
Test: fast/dom/shadow/offset-parent-does-not-leak-ua-shadow.html
* dom/Element.cpp:
(WebCore::Element::bindingsOffsetParent): Filter nodes in UA shadows.
* dom/Element.h:
(Element): Add bindingsOffsetParent.
* dom/Element.idl: bindingsOffsetParent is the implementation of offsetParent.
2013-03-17 Dominic Mazzoni <dmazzoni@google.com>
Support Windows HTMLSelectElement keystrokes on Chromium win
https://bugs.webkit.org/show_bug.cgi?id=112460
Reviewed by Kent Tamura.
Compile in the windows-specific variant of
HTMLSelectElement::platformHandleKeydownEvent
on Chromium win, in addition to PLATFORM(WIN).
* WebCore.gypi:
Add html/HTMLSelectElementWin.cpp.
* html/HTMLSelectElement.cpp:
Don't compile generic platformHandleKeydownEvent on
Chromium win.
* html/HTMLSelectElementWin.cpp:
Only compile platformHandleKeydownEvent on Windows.
(WebCore):
2013-03-17 Russell McClellan <russell.mcclellan@gmail.com>
ScriptProcessorNode is garbage collected while still active if unreachable
https://bugs.webkit.org/show_bug.cgi?id=112521
Reviewed by Kentaro Hara.
Fix for issue where ScriptProcessorNodes (and AudioNode js wrappers generally)
would be garbage collected before their time. Made AudioNode an ActiveDOMElement
marked pending if there are any open audio connections.
Test: webaudio/javascriptaudionode.html
* Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::AudioNode):
(WebCore::AudioNode::hasPendingActivity): it's pending (and thus not GCed)
if it has open audio connections.
* Modules/webaudio/AudioNode.h: AudioNode is now an ActiveDOMElement
* Modules/webaudio/AudioScheduledSourceNode.h: added a using declaration
to avoid function name hiding.
* Modules/webaudio/ScriptProcessorNode.idl: AudioNode is an ActiveDOMElement
2013-03-17 Kunihiko Sakamoto <ksakamoto@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Step-up/-down of minute/second/millisecond fields should respect min/max attributes
https://bugs.webkit.org/show_bug.cgi?id=112527
Reviewed by Kent Tamura.
Make step-up/-down of the minute, second, and millisecond field
respect the min/max attributes of the element.
Note that it still accepts any keyboard inputs (the element
becomes 'invalid' state when out-of-range values entered).
Also, disable these fields when there is only single possible value.
Tests: fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
* html/shadow/DateTimeEditElement.cpp:
(DateTimeEditBuilder): Add fields for min/max of minute/second/millisecond.
(WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Set min/max for the fields.
(WebCore::DateTimeEditBuilder::visitField): Pass min/max parameters to the field constructors.
(WebCore::DateTimeEditBuilder::shouldHourFieldDisabled): Does not disable if minute, second, millisecond fields are all disabled, because we need at least one editable field.
(WebCore::DateTimeEditBuilder::shouldMillisecondFieldDisabled): Disables if min, max, and value are equal.
(WebCore::DateTimeEditBuilder::shouldMinuteFieldDisabled): Ditto.
(WebCore::DateTimeEditBuilder::shouldSecondFieldDisabled): Ditto.
* html/shadow/DateTimeFieldElements.cpp:
(WebCore::DateTimeDayFieldElement::DateTimeDayFieldElement):
(WebCore::DateTimeHourFieldElementBase::DateTimeHourFieldElementBase):
(WebCore::DateTimeHour11FieldElement::DateTimeHour11FieldElement):
(WebCore::DateTimeHour12FieldElement::DateTimeHour12FieldElement):
(WebCore::DateTimeHour23FieldElement::DateTimeHour23FieldElement):
(WebCore::DateTimeHour24FieldElement::DateTimeHour24FieldElement):
(WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement):
(WebCore::DateTimeMillisecondFieldElement::create):
(WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement):
(WebCore::DateTimeMinuteFieldElement::create):
(WebCore::DateTimeMonthFieldElement::DateTimeMonthFieldElement):
(WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement):
(WebCore::DateTimeSecondFieldElement::create):
(WebCore::DateTimeWeekFieldElement::DateTimeWeekFieldElement):
(WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement):
* html/shadow/DateTimeFieldElements.h:
(DateTimeDayFieldElement):
(DateTimeHourFieldElementBase):
(DateTimeHour11FieldElement):
(DateTimeHour12FieldElement):
(DateTimeHour23FieldElement):
(DateTimeHour24FieldElement):
(DateTimeMillisecondFieldElement): Add minimum/maximum parameters.
(DateTimeMinuteFieldElement): Add minimum/maximum parameters.
(DateTimeMonthFieldElement):
(DateTimeSecondFieldElement): Add minimum/maximum parameters.
(DateTimeWeekFieldElement):
(DateTimeYearFieldElement):
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
(WebCore::DateTimeNumericFieldElement::formatValue): Use hard-limit value instead of m_range.maximum, because millisecond field with max<100 will be displayed in two digits otherwise.
(WebCore::DateTimeNumericFieldElement::setValueAsInteger):
* html/shadow/DateTimeNumericFieldElement.h:
(DateTimeNumericFieldElement): Changed to have hard limits as a data member.
2013-03-17 Alexey Proskuryakov <ap@apple.com>
Encapsulate PlatformMessagePortChannel a little better yet
https://bugs.webkit.org/show_bug.cgi?id=112479
Reviewed by Sam Weinig.
* dom/MessagePortChannel.h: We no longer expose PlatformMessagePortChannel in
public functions in cross-platform code.
* dom/default/PlatformMessagePortChannel.cpp:
(WebCore::MessagePortChannel::createChannel): Tweaked the factory method to avoid
using the old create() function.
(WebCore::MessagePortChannel::~MessagePortChannel): Removed an unhelpful comment.
2013-03-17 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Don't update shadow tree by updating any attribute
https://bugs.webkit.org/show_bug.cgi?id=111990
Reviewed by Hajime Morrita.
Bug detail:
Typing '1' then '1' into an hour field doesn't set the field to
'11' if an attribute is updated during these two keyboard inputs
because we always re-construct a shadow DOM tree by updating any
attributes and a shadow node records keyboard input state.
How to fix:
We should not re-construct a shadow DOM tree by updating
unaffected attributes. For example, we should re-construct it by
updating 'min' attribute, but we should not by updating 'class'
attribute.
We have InputType::updateInnerTextValue call in parseAttribute for
text field input types. The multiple fields input types
re-construct shadow DOM tree in updateInnerTextValue. The
updateInnerTextValue call is unnecessary for the multiple fields
input types, and we should call it when it is necessary. So, we
add InputType::attributeChange and text field input types call
updateInnerTextValue in it, and other input types don't.
Also, multiple fields input types need to call
updateInnerTextValue by 'value' attribute change. We add
InputType::valueAttributeChanged.
Tests: Update
fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html. The
value attribute change behavior is covered by
time-multiple-fields-change-layout-by-value.html and
time-multiple-fields-spinbutton-change-and-input-events.html.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute):
- Add a valueAttributeChanged call.
- Calls InputType::attributeChanged
* html/InputType.cpp:
(WebCore::InputType::attributeChanged): Added an empty implementation.
(WebCore::InputType::valueAttributeChanged): Ditto.
* html/InputType.h:
(InputType): Declare attributeChanged and valueAttributeChanged.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::attributeChanged):
Added. Always call updateInnerTextValue.
* html/TextFieldInputType.h:
(TextFieldInputType): Declare attributeChanged.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::valueAttributeChanged):
Added. Re-construct shadow DOM tree if the input has no dirty value.
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType): Declare valueAttributeChanged.
2013-03-17 Rafael Weinstein <rafaelw@chromium.org>
[HTMLTemplateElement] prevent </template> from matching "template" in a non-HTML tags on the stack of open elements
https://bugs.webkit.org/show_bug.cgi?id=112487
Reviewed by Adam Barth.
When processing an end template tag, the parser now pops until a "template" tag is parsed, but now ensures that
the "template" it pops is in the HTML namespace.
Tests added to the html5lib test suite.
* html/parser/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::popUntil):
(WebCore):
(WebCore::HTMLElementStack::popUntilPopped):
* html/parser/HTMLElementStack.h:
(HTMLElementStack):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processTemplateEndTag):
2013-03-17 Adam Barth <abarth@webkit.org>
Legacy CSS vendor prefixes should only work for Dashboard
https://bugs.webkit.org/show_bug.cgi?id=111890
Reviewed by Eric Seidel.
Our experience with the Chromium port is that these legacy CSS vendor
prefixes (-apple- and -khtml-) are not needed for web compatibility.
There is reason to believe, however, that they are needed for
compatibility with Mac OS X Dashboard widgets.
This patch makes the code for these legacy CSS vendor prefixes
enabled at runtime and only enables them when running in Dashboard
compatibility mode. This is the first step towards the plan outlined in
https://lists.webkit.org/pipermail/webkit-dev/2013-March/024085.html.
This patch also removes support for ENABLE(LEGACY_CSS_VENDOR_PREFIXES)
from the V8 bindings because V8 is never used with Dashboard.
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures):
(WebCore::RuntimeEnabledFeatures::setLegacyCSSVendorPrefixesEnabled):
(WebCore::RuntimeEnabledFeatures::legacyCSSVendorPrefixesEnabled):
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::getCSSPropertyNamePrefix):
(WebCore::cssPropertyIDForJSCSSPropertyName):
* bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
(WebCore::cssPropertyInfo):
* css/CSSParser.cpp:
(WebCore::CSSParser::rewriteSpecifiers):
2013-03-17 David Kilzer <ddkilzer@apple.com>
BUILD FIX (r145592): AutodrainedPool.h moved to WTF
<http://webkit.org/b/112171>
Fixes the following build failure:
Source/WebCore/platform/audio/mac/AudioBusMac.mm:32:9: fatal error: 'AutodrainedPool.h' file not found
#import "AutodrainedPool.h"
^
1 error generated.
* platform/audio/mac/AudioBusMac.mm: Fix include.
2013-03-17 Gustavo Noronha Silva <gns@gnome.org>
[GTK] Fix and improve dist hooks for translations
https://bugs.webkit.org/show_bug.cgi?id=112519
Reviewed by Carlos Garcia Campos.
* GNUmakefile.am: move translation-related rules and lists to the po directory's
GNUmakefile.am.
2013-03-17 Emil A Eklund <eae@chromium.org>
Move font-family applying code to StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=112441
Reviewed by Allan Sandfeld Jensen.
Many of the font related properties were moved to StyleBuilder in r87362
two years ago. Move font-family as well so that all font properties are
handled the same way.
No new tests, no change in functionality.
* css/StyleBuilder.cpp:
(ApplyPropertyFontFamily):
(WebCore::ApplyPropertyFontFamily::applyInheritValue):
(WebCore::ApplyPropertyFontFamily::applyInitialValue):
(WebCore::ApplyPropertyFontFamily::applyValue):
(WebCore::ApplyPropertyFontFamily::createHandler):
(WebCore::StyleBuilder::StyleBuilder):
Add ApplyPropertyFontFamily for CSSPropertyFontFamily.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
Remove CSSPropertyFontFamily from the giant switch statement.
2013-03-17 Carlos Garcia Campos <cgarcia@igalia.com>
[ENCHANT] Invalid charset encoding used for spelling guess context menu items
https://bugs.webkit.org/show_bug.cgi?id=112516
Reviewed by Gustavo Noronha Silva.
Convert spelling guesses returned by enchant to UTF-16 before
passing them to WebCore.
* platform/text/enchant/TextCheckerEnchant.cpp:
(WebCore::TextCheckerEnchant::getGuessesForWord): Use
String::fromUTF8().
2013-03-17 Jinwoo Song <jinwoo7.song@samsung.com>
[EFL] Provide default cursor groups as cursor.edc
https://bugs.webkit.org/show_bug.cgi?id=112403
Reviewed by Gyuyoung Kim.
This patch provides a cursor.edc to use the CSS cursor images files in the
WebCore/Resources directory. cursor.edc is included in the default.edc
so that views can use it by default.
* platform/efl/DefaultTheme/CMakeLists.txt:
* platform/efl/DefaultTheme/default.edc:
* platform/efl/DefaultTheme/widget/cursor/cursor.edc: Added.
2013-03-16 Pratik Solanki <psolanki@apple.com>
Disable High DPI Canvas on iOS
https://bugs.webkit.org/show_bug.cgi?id=112511
Reviewed by Joseph Pecoraro.
* Configurations/FeatureDefines.xcconfig:
2013-03-16 Simon Fraser <simon.fraser@apple.com>
Reflected video elements hit assertion
https://bugs.webkit.org/show_bug.cgi?id=112490
Disable reflections on video again, since there's some bad behavior
caused by an underlying system framework.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::clone):
2013-03-16 Tom Sepez <tsepez@chromium.org>
[v8] Disable binding integrity check for WebCore::Text
https://bugs.webkit.org/show_bug.cgi?id=112462
Reviewed by Kentaro Hara.
Test: fast/dom/split-cdata.xml
* dom/Text.idl:
2013-03-16 Chris Fleizach <cfleizach@apple.com>
AX: aria-hidden on container does not hide descendant popup buttons
https://bugs.webkit.org/show_bug.cgi?id=112373
Reviewed by Ryosuke Niwa.
There are a number of subclass AX objects that implement accessibilityIsIgnored()
to always return false. This means that even if their parent is aria-hidden=true
they still show up in the tree.
This re-organizes this base case of aria-hidden into AccessibilityObject so that
it can be re-used by these special subclasses where appropriate.
Test: accessibility/aria-hidden-hides-all-elements.html
* accessibility/AccessibilityImageMapLink.h:
(WebCore::AccessibilityImageMapLink::isImageMapLink):
* accessibility/AccessibilityList.cpp:
(WebCore::AccessibilityList::computeAccessibilityIsIgnored):
* accessibility/AccessibilityListBox.cpp:
(WebCore):
* accessibility/AccessibilityListBox.h:
(AccessibilityListBox):
* accessibility/AccessibilityListBoxOption.cpp:
(WebCore::AccessibilityListBoxOption::computeAccessibilityIsIgnored):
* accessibility/AccessibilityMediaControls.cpp:
(WebCore::AccessibilityMediaControl::computeAccessibilityIsIgnored):
(WebCore::AccessibilityMediaControlsContainer::computeAccessibilityIsIgnored):
(WebCore::AccessibilityMediaTimeDisplay::computeAccessibilityIsIgnored):
* accessibility/AccessibilityMediaControls.h:
(AccessibilityMediaControlsContainer):
* accessibility/AccessibilityMenuList.h:
(WebCore::AccessibilityMenuList::roleValue):
* accessibility/AccessibilityMenuListOption.cpp:
(WebCore::AccessibilityMenuListOption::computeAccessibilityIsIgnored):
* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::computeAccessibilityIsIgnored):
* accessibility/AccessibilityMockObject.cpp:
(WebCore::AccessibilityMockObject::computeAccessibilityIsIgnored):
(WebCore):
* accessibility/AccessibilityMockObject.h:
(AccessibilityMockObject):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::accessibilityIsIgnoredDefaultForObject):
(WebCore):
(WebCore::AccessibilityObject::ariaIsHidden):
(WebCore::AccessibilityObject::accessibilityIsIgnoredBase):
* accessibility/AccessibilityObject.h:
(AccessibilityObject):
* accessibility/AccessibilityProgressIndicator.cpp:
(WebCore::AccessibilityProgressIndicator::computeAccessibilityIsIgnored):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore):
(WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
(WebCore::AccessibilityRenderObject::addImageMapChildren):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
* accessibility/AccessibilityScrollbar.h:
(AccessibilityScrollbar):
* accessibility/AccessibilitySlider.cpp:
(WebCore):
(WebCore::AccessibilitySliderThumb::computeAccessibilityIsIgnored):
* accessibility/AccessibilitySlider.h:
(AccessibilitySlider):
* accessibility/AccessibilitySpinButton.h:
(WebCore::AccessibilitySpinButton::roleValue):
(AccessibilitySpinButtonPart):
2013-03-15 Simon Fraser <simon.fraser@apple.com>
Reflected video elements hit assertion on Lion
https://bugs.webkit.org/show_bug.cgi?id=112490
Disable the new reflected video functionality added in r145915
on Lion because of a nasty re-entrancy problem. Tracked by bug 112490.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::clone):
2013-03-15 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Exclusions] shape-outside on floats for circle and ellipse shapes
https://bugs.webkit.org/show_bug.cgi?id=98673
Reviewed by Dirk Schulze.
Enable circles and ellipses for shape-outside on floats. Most of the
code already supports them, just needed to turn them on and add tests.
Tests: fast/exclusions/shape-outside-floats/shape-outside-floats-simple-circle.html
fast/exclusions/shape-outside-floats/shape-outside-floats-simple-ellipse.html
* rendering/ExclusionShapeOutsideInfo.cpp:
(WebCore::ExclusionShapeOutsideInfo::isEnabledFor): Enable circles and
ellipses. Also add a check for if the RenderBox is floating, since
that test should have been there all along, as shape outside is
only supported on floats for now.
2013-03-15 Christian Biesinger <cbiesinger@chromium.org>
Convert old flexbox uses in html.css to new flexbox (non-<select>)
https://bugs.webkit.org/show_bug.cgi?id=110837
Reviewed by Ojan Vafai.
Covered by existing tests.
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout):
After we set our descendants' heights, we need to mark them for
layout.
(WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
Use new-flexbox style setters.
* css/html.css:
(input::-webkit-textfield-decoration-container):
(input[type="search"]::-webkit-search-cancel-button):
(input[type="search"]::-webkit-search-decoration):
(input[type="search"]::-webkit-search-results-decoration):
(input[type="search"]::-webkit-search-results-button):
(input::-webkit-inner-spin-button):
(input::-webkit-input-speech-button):
(textarea):
(input[type="file"]):
(input[type="color"]::-webkit-color-swatch-wrapper):
(input[type="color"]::-webkit-color-swatch):
(::-webkit-validation-bubble-message):
(::-webkit-validation-bubble-text-block):
* css/themeWin.css:
(input[type="search"]::-webkit-search-results-decoration):
(input[type="search"]::-webkit-search-results-button):
Convert -webkit-box to -webkit-flex and adjust related properties.
Notably switch to auto margins for centering the speech button as well
as the search result and cancel buttons to stay compatible with the
previous centering behaviour. This does not produce visible
differences but eliminates the render tree dump changes.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::createShadowSubtree):
* html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerContainer::TextControlInnerContainer):
(WebCore):
(WebCore::TextControlInnerContainer::create):
(WebCore::TextControlInnerContainer::createRenderer):
* html/shadow/TextControlInnerElements.h:
(TextControlInnerContainer):
(WebCore):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControlInnerContainer::RenderTextControlInnerContainer):
(WebCore):
(WebCore::RenderTextControlInnerContainer::~RenderTextControlInnerContainer):
* rendering/RenderTextControl.h:
(WebCore):
(RenderTextControlInnerContainer):
Create a new DOM element & renderer type for the textfield-decoration
div (the direct child of the <input> in the shadow dom if we have a
special input field). This is necessary because new-flexbox uses a
different algorithm for calculating the baseline, which would
otherwise cause an <input> and an <input type=search> to not be
aligned with each other.
The new renderer just calls back to RenderBlock for calculating the
baseline.
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout):
Make sure to mark renderers as needing layout when we change their
style. This didn't use to be necessary because old-flexbox relayouts
children even when they are not marked for needing layout.
(WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
Use new-flexbox CSS properties.
* html/shadow/TextFieldDecorationElement.cpp:
(WebCore::TextFieldDecorationElement::decorate):
Use new-flexbox CSS properties.
2013-03-15 Kenneth Russell <kbr@google.com>
Unreviewed attempted build fix for Chromium Windows after r145929.
Verified this fix builds and works on Linux.
https://bugs.webkit.org/show_bug.cgi?id=96798
* bindings/v8/V8Binding.cpp:
(WebCore):
2013-03-15 Nate Chapin <japhet@chromium.org>
Merge MainResourceLoader::willSendRequest into DocumentLoader
https://bugs.webkit.org/show_bug.cgi?id=109757
This is one of the steps to merging MainResourceLoader entirely into
DocumentLoader, given the lack of clear division of responsibility
between the two.
Reviewed by Antti Koivisto.
No new tests, refactor only.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::mainResourceData):
(WebCore::DocumentLoader::isPostOrRedirectAfterPost):
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::callContinueAfterNavigationPolicy):
(WebCore::DocumentLoader::continueAfterNavigationPolicy):
(WebCore::DocumentLoader::startLoadingMainResource):
* loader/DocumentLoader.h:
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::resourceData):
(WebCore::MainResourceLoader::redirectReceived):
(WebCore::MainResourceLoader::continueAfterContentPolicy):
(WebCore::MainResourceLoader::reportMemoryUsage):
(WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
(WebCore::MainResourceLoader::load):
* loader/MainResourceLoader.h:
(WebCore::MainResourceLoader::takeIdentifierFromResourceLoader): Temporarily
exposed for moving from a normal load to SubstituteData load on redirect.
2013-03-15 Zhenyao Mo <zmo@google.com>
Disable EXT_draw_buffers WebGL extension on Mac
https://bugs.webkit.org/show_bug.cgi?id=112486
Reviewed by Kenneth Russell.
* html/canvas/EXTDrawBuffers.cpp:
(WebCore::EXTDrawBuffers::supported):
2013-03-15 Dana Jansens <danakj@chromium.org>
[chromium] Remove the background filter blur layout tests
https://bugs.webkit.org/show_bug.cgi?id=112372
Reviewed by James Robinson.
Remove the now-unused hacks to regression test the background
filter blur compositor feature.
* testing/Internals.cpp:
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2013-03-15 Alexey Proskuryakov <ap@apple.com>
Reduce amount of platform specific code in MessagePortChannel
https://bugs.webkit.org/show_bug.cgi?id=112469
Reviewed by Sam Weinig.
* dom/MessagePortChannel.h: Ifdefed out an unused channel() function, except for
Chromium, where it is used. We certainly don't want to expose this implementation
detail as a public function.
* dom/default/PlatformMessagePortChannel.h: Removed functions that are no longer
delegated. Made class contents all public, as it's now basically a data storage
for MessagePortChannel.
* dom/default/PlatformMessagePortChannel.cpp:
(WebCore::MessagePortChannel::createChannel):
(WebCore::MessagePortChannel::~MessagePortChannel):
(WebCore::MessagePortChannel::entangleIfOpen):
(WebCore::MessagePortChannel::disentangle):
(WebCore::MessagePortChannel::postMessageToRemote):
(WebCore::MessagePortChannel::tryGetMessageFromRemote):
(WebCore::MessagePortChannel::close):
(WebCore::MessagePortChannel::isConnectedTo):
(WebCore::MessagePortChannel::hasPendingActivity):
(WebCore::MessagePortChannel::locallyEntangledPort):
(WebCore::PlatformMessagePortChannel::PlatformMessagePortChannel):
(WebCore::PlatformMessagePortChannel::entangledChannel):
Moved code from PlatformMessagePortChannel to MessagePortChannel. Added some
FIXMEs.
2013-03-15 Arvid Nilsson <anilsson@rim.com>
[BlackBerry] Expose the compositing thread layer's draw rectangle to aid hit testing
https://bugs.webkit.org/show_bug.cgi?id=112255
Reviewed by Rob Buis.
PR 308284.
Reviewed internally by Yongxin Dai.
Add a getter for the layer renderer of a compositing thread layer.
No change in behavior, no new tests.
* platform/graphics/blackberry/LayerCompositingThread.h:
(WebCore::LayerCompositingThread::layerRenderer):
2013-03-15 Christian Biesinger <cbiesinger@chromium.org>
Convert <select> to new-flexbox
https://bugs.webkit.org/show_bug.cgi?id=112395
Reviewed by Ojan Vafai.
Covered by existing tests.
* css/html.css:
(select):
(select[size][multiple]):
(select[size="1"]):
Use new-style flexbox properties.
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::RenderMenuList):
(WebCore::RenderMenuList::createInnerBlock):
(WebCore::RenderMenuList::adjustInnerStyle):
(WebCore::RenderMenuList::removeChild):
RenderDeprecatedFlexibleBox -> RenderFlexibleBox, and use the
new-style flexbox properties. Use margin:auto for centering to get
the old safe-centering behavior.
* rendering/RenderMenuList.h:
(RenderMenuList):
Inherit from RenderFlexibleBox. Override baseline methods to call the
RenderBlock methods
2013-03-15 Andy Estes <aestes@apple.com>
REGRESSION (r145820): Stop over-retaining CFDataRefs in SharedBuffer::maybeTransferPlatformData()
https://bugs.webkit.org/show_bug.cgi?id=112474
Reviewed by Simon Fraser.
Transfer ownership of m_cfData to the local variable rather than leaking a reference.
* platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::maybeTransferPlatformData):
2013-03-15 Rajeev Sarvaria <rsarvaria@blackberry.com>
New context extensions restored improperly
https://bugs.webkit.org/show_bug.cgi?id=112156
Reviewed by Rob Buis.
Sets up extensions after new context is created for restoration.
Previous extensions set up is lost when context is initially lost.
Cannot create a test as change is not visible from the web. When a context
is lost, WebGLRenderingContext drops m_context. Upon restoration a new context
object is created without available extensions initialized. Calling isEnabled
within setupFlags leads to the eventual initialization of extensions for the
new context.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::maybeRestoreContext):
2013-03-15 Aurimas Liutikas <aurimas@chromium.org>
TextIterator emits LF for a br element inside an empty input element
https://bugs.webkit.org/show_bug.cgi?id=112275
Reviewed by Ryosuke Niwa.
Adding a check to avoid emiting LF for br elements inside a shadow tree
of an input element.
Test: editing/text-iterator/basic-iteration.html
editing/text-iterator/basic-iteration-shadowdom.html
* editing/TextIterator.cpp:
(WebCore::shouldEmitNewlineForNode):
(WebCore::TextIterator::handleNonTextNode):
(WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
(WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode):
(WebCore::SimplifiedBackwardsTextIterator::exitNode):
* editing/TextIterator.h:
(SimplifiedBackwardsTextIterator):
2013-03-15 Arvid Nilsson <anilsson@rim.com>
[BlackBerry] Allow an embedder to position child windows using window coordinates
https://bugs.webkit.org/show_bug.cgi?id=112236
Reviewed by Rob Buis.
PR 232752
The LayerCompositingThread can now position the video window using
either document or window coordinates.
The LayerRenderer class gets a new client interface. This allows us to
avoid state duplication by delegating decisions directly to the client,
which can then be in charge of the (one and only) state.
The context is moved over to the client, as well as delegation of the
decision on whether to clear the surface every frame.
Also, the decision on which coordinate system to use for positioning
child windows is delegated to the client interface.
No new tests, not testable using DRT.
* platform/graphics/blackberry/LayerCompositingThread.cpp:
(WebCore::LayerCompositingThread::drawTextures):
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::create):
(WebCore::LayerRenderer::LayerRenderer):
(WebCore::LayerRenderer::setViewport):
(WebCore::LayerRenderer::compositeLayers):
(WebCore::LayerRenderer::toWebKitWindowCoordinates):
(WebCore::LayerRenderer::makeContextCurrent):
* platform/graphics/blackberry/LayerRenderer.h:
(WebCore):
(LayerRenderer):
(WebCore::LayerRenderer::client):
* platform/graphics/blackberry/LayerRendererClient.h: Added.
(Graphics):
(WebCore):
(LayerRendererClient):
(WebCore::LayerRendererClient::~LayerRendererClient):
2013-03-15 Jochen Eisinger <jochen@chromium.org>
Expose whether a UserGestureToken still has gestures via WebKit API
https://bugs.webkit.org/show_bug.cgi?id=112342
Reviewed by Adam Barth.
* dom/UserGestureIndicator.cpp:
* dom/UserGestureIndicator.h:
(UserGestureToken):
2013-03-15 Christian Biesinger <cbiesinger@chromium.org>
Convert inspector to new-flexbox
https://bugs.webkit.org/show_bug.cgi?id=112399
Reviewed by Ojan Vafai.
No new tests, refactoring.
* inspector/front-end/auditsPanel.css:
(.audit-launcher-view .audit-launcher-view-content):
(.audit-launcher-view div.button-container):
(.audit-launcher-view div.button-container > button):
* inspector/front-end/dialog.css:
(.dialog):
* inspector/front-end/elementsPanel.css:
(.sidebar-pane.composite .metrics):
* inspector/front-end/helpScreen.css:
(.help-window-main):
(.help-content):
* inspector/front-end/inspector.css:
(#toolbar):
(#toolbar-controls):
(#toolbar-dropdown .scrollable-content):
(#toolbar-dropdown .toolbar-item):
(.toolbar-item.close-left, .toolbar-item.close-right):
* inspector/front-end/nativeMemoryProfiler.css:
(.memory-pie-chart-container):
(.memory-pie-chart):
* inspector/front-end/networkPanel.css:
(.network-item-view.visible):
* inspector/front-end/panelEnablerView.css:
(.panel-enabler-view .flexible-space):
* inspector/front-end/profilesPanel.css:
(.profile-launcher-view-content):
(.control-profiling):
* inspector/front-end/splitView.css:
(.sidebar-overlay):
* inspector/front-end/tabbedPane.css:
(.tabbed-pane):
(.tabbed-pane-content):
Replace -webkit-box with -webkit-flex, -webkit-box-orient with
-webkit-flex-direction, etc.
2013-03-15 Rouslan Solomakhin <rouslan@chromium.org>
Remove unused unified textchecker variable
https://bugs.webkit.org/show_bug.cgi?id=112362
Reviewed by Tony Chang.
The variable m_originalUnifiedSpellCheckerEnabled is never used. The generated
code from Settings.in already backs up and restores unified textchecker setting.
* testing/InternalSettings.h: Remove unusued m_originalUnifiedSpellCheckerEnabled variable.
2013-03-14 Ojan Vafai <ojan@chromium.org>
Auto height column flexboxes with border and padding are too short
https://bugs.webkit.org/show_bug.cgi?id=112398
Reviewed by Tony Chang.
Test: css3/flexbox/auto-height-column-with-border-and-padding.html
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::mainAxisContentExtent):
computeLogicalHeight expects that you pass in the border-box logicalHeight, not
the contentLogicalHeight. Since we subtract the border, padding and scrollbar height from
the returned m_extent, if we pass in the contentLogicalHeight and the flexbox is auto-sized
then we end up incorrectly subtracting border, padding and scrollbar height from the
contentLogicalHeight.
2013-03-15 Tim Horton <timothy_horton@apple.com>
RenderSnapshottedPlugIn can't be a RenderBlock (what if it's display: inline?)
https://bugs.webkit.org/show_bug.cgi?id=112432
<rdar://problem/13187211>
Reviewed by Simon Fraser and Dean Jackson.
Re-use code from PLUGIN_PROXY_FOR_VIDEO to allow RenderEmbeddedObject to lay out its children,
and make RenderSnapshottedPlugIn a RenderEmbeddedObject subclass once again. This will ensure that
RenderSnapshottedPlugIn lays itself out in the page the same as the RenderEmbeddedObject it replaces did,
preventing snapshotted plug-ins from breaking the layout when they are display: inline.
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::defaultEventHandler):
RenderSnapshottedPlugIn is a RenderEmbeddedObject subclass again, so we need to check
for it when we have a RenderEmbeddedObject, instead of when we don't.
* page/FrameView.cpp:
(WebCore::FrameView::updateWidget):
Ditto.
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::layout):
(WebCore::RenderEmbeddedObject::canHaveChildren):
Allow RenderEmbeddedObject to have and lay out children if it is a RenderSnapshottedPlugIn.
Also, preserve the code that allows children if it is a media element and PLUGIN_PROXY_FOR_VIDEO is enabled.
Don't call addWidgetToUpdate for instances which will never have a widget, like RenderSnapshottedPlugIn.
* rendering/RenderEmbeddedObject.h:
(RenderEmbeddedObject):
We need canHaveChildren() and children() and m_children now.
Add canHaveWidget(), which returns true. Subclasses can override if need be.
* rendering/RenderSnapshottedPlugIn.h: Add canHaveWidget(), which is false for RenderSnapshottedPlugIn.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
(WebCore::RenderSnapshottedPlugIn::layout):
(WebCore::RenderSnapshottedPlugIn::getCursor):
Make RenderSnapshottedPlugIn a RenderEmbeddedObject.
(WebCore::RenderSnapshottedPlugIn::paint):
Paint our children.
2013-03-15 Hajime Morrita <morrita@google.com>
[Custom Elements] Any HTMLElement subclass should become a superclass of custom element
https://bugs.webkit.org/show_bug.cgi?id=110436
Reviewed by Dimitri Glazkov.
This change introduces "type extension" concept of custom elements.
With the type extension, each custom elements are able to inherit
from not only HTMLElement, but also any HTML element. To make it work,
this change extends the plumbing.
This change does following changes:
= Data structure:
- Let CustomElementConstructor objects being keyed by pair of (element
name, local name) as the standard requries, instead of just using
single name. See CustomElementRegistry::ConstructorMap and CustomElementRegistry::find().
- Creates mapping from WrapperTypeInfo to element name. This map
can be looked-up by generated functions like
findHTMLTagNameOfV8Type(). With this table, WebKit can determine
the custom element local name of given prototype object. See make_names.pl.
Note that V8 prototype object knows associated WrapperTypeInfo. See r144865.
= Hooking up element lifecyle:
- Create appropriate C++ instance for each custom element. Before
this change, the C++ backend of custom elements were always
HTMLUnknownElements or HTMLElement. See
CustomElementConstructor::createElement() and ElementFactories in
make_names.pl.
- Hooks up element construction and element wrapper creation for
custom element "before" non-custom case instead of "after"
that. We do this because custom element needs to
override non-custom case when @is attribute is given for
otherwise-non-custom elements like <div is=x-bar>.
See make_names.pl.
- Gives @is attributes to elements if needed. See setTypeExtension() call sites
like Document::createElement(), Document::createElementtNS() and CustomElementConstructor::createElementt()
Test: fast/dom/custom/document-register-type-extensions.html
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* bindings/scripts/test/V8/V8Float64Array.h:
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
* bindings/scripts/test/V8/V8TestEventConstructor.h:
* bindings/scripts/test/V8/V8TestEventTarget.h:
* bindings/scripts/test/V8/V8TestException.h:
* bindings/scripts/test/V8/V8TestInterface.h:
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
* bindings/scripts/test/V8/V8TestNode.h:
* bindings/scripts/test/V8/V8TestObj.h:
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
* bindings/scripts/test/V8/V8TestTypedefs.h:
* bindings/v8/CustomElementHelpers.cpp:
(WebCore::hasValidPrototypeChain):
(WebCore::CustomElementHelpers::isValidPrototypeParameter):
(WebCore::CustomElementHelpers::findLocalName):
(WebCore):
(WebCore::CustomElementHelpers::findWrapperType):
* bindings/v8/CustomElementHelpers.h:
(CustomElementHelpers):
* bindings/v8/V8CustomElement.cpp:
(WebCore::V8CustomElement::createWrapper):
* bindings/v8/V8CustomElement.h:
(V8CustomElement):
(WebCore::V8CustomElement::wrap):
(WebCore::V8CustomElement::constructorOf):
* bindings/v8/WrapperTypeInfo.h:
(WrapperTypeTraits): Added.
* bindings/v8/custom/V8CustomElementConstructorCustom.cpp:
(WebCore::V8CustomElementConstructor::callAsFunctionCallback):
* dom/CustomElementConstructor.cpp:
(WebCore::CustomElementConstructor::create):
(WebCore::CustomElementConstructor::CustomElementConstructor):
(WebCore::CustomElementConstructor::createElement):
(WebCore::setTypeExtension):
* dom/CustomElementConstructor.h:
(CustomElementConstructor):
(WebCore::CustomElementConstructor::document):
(WebCore::CustomElementConstructor::typeName):
(WebCore::CustomElementConstructor::localName):
* dom/CustomElementRegistry.cpp:
(WebCore::nameIncludesHyphen):
(WebCore::CustomElementRegistry::isValidName):
(WebCore::CustomElementRegistry::registerElement):
(WebCore::CustomElementRegistry::findFor):
(WebCore::CustomElementRegistry::find):
(WebCore::CustomElementRegistry::createElement):
* dom/CustomElementRegistry.h:
(CustomElementRegistry):
* dom/Document.cpp:
(WebCore::Document::createElement):
(WebCore::Document::createElementNS):
(WebCore::Document::registerElement):
* dom/Document.h:
(Document):
(WebCore::Document::registry): Moved from Document.cpp to be inlined.
* dom/Document.idl:
* dom/make_names.pl:
(printFactoryCppFile):
(printWrapperFactoryCppFile):
(printWrapperFactoryHeaderFile):
* html/HTMLAttributeNames.in: Added @is attribute
2013-03-15 Alexey Proskuryakov <ap@apple.com>
Minor cleanup in worker code
https://bugs.webkit.org/show_bug.cgi?id=112455
Reviewed by Anders Carlsson.
- Added OVERRIDE keywords.
- Toned down FIXMEs about single MessagePort versions of functions. It's not a given
that we'll want to get rid of them even when implementing array versions.
- Explicitly marked virtual destructors as virtual.
* dom/MessageEvent.cpp:
* dom/MessageEvent.h:
* workers/Worker.cpp:
* workers/Worker.h:
Removed an unused version of postMessage() that took no MessagePorts. This makes
it less confusing why MessagePortArray is passed by pointer, and not by reference.
* workers/DedicatedWorkerContext.cpp:
(WebCore::DedicatedWorkerContext::~DedicatedWorkerContext):
* workers/DedicatedWorkerContext.h:
Added a destructor instead of an implicit one.
Removed an unused version of postMessage() that took no MessagePorts.
* workers/SharedWorker.h: Removed an unused virtual function (thank you OVERRIDE!)
* dom/MessagePort.cpp:
* dom/MessagePort.h:
* loader/WorkerThreadableLoader.h:
* page/DOMWindow.h:
* workers/AbstractWorker.h:
* workers/DedicatedWorkerThread.h:
* workers/SharedWorkerContext.h:
* workers/SharedWorkerThread.h:
* workers/WorkerContext.h:
* workers/WorkerMessagingProxy.h:
* workers/WorkerObjectProxy.h:
* workers/WorkerScriptLoader.h:
2013-03-15 Joshua Bell <jsbell@chromium.org>
[V8] Binding: Implement EnforceRange IDL Attribute for long long conversions
https://bugs.webkit.org/show_bug.cgi?id=96798
Reviewed by Kentaro Hara.
Implement [EnforceRange] attribute for V8 bindings, which specifies throwing behavior
on conversions outside int/uint 32/64 ranges and edge cases like NaNs and Infinities.
Conversely, conversions without this attribute should *not* throw.
Tests: fast/js/webidl-type-mapping.html:
fast/dom/non-numeric-values-numeric-parameters.html
fast/js/script-tests/select-options-add.html
storage/indexeddb/intversion-bad-parameters.html
* Modules/indexeddb/IDBCursor.cpp: Remove custom range enforcement for advance()
* Modules/indexeddb/IDBCursor.h: Adjust type to match WebIDL.
* Modules/indexeddb/IDBCursor.idl: Specify [EnforceRange] and type matches spec WebIDL.
* Modules/indexeddb/IDBFactory.cpp: Remove custom range enforcement for open()
* Modules/indexeddb/IDBFactory.h: Adjust type to match WebIDL.
* Modules/indexeddb/IDBFactory.idl: Specify [EnforceRange] and type matches spec WebIDL.
* bindings/scripts/CodeGeneratorJS.pm:
(JSValueToNative): Add FIXME to support [EnforceRange]
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrSetter): Handle [EnforceRange] in attribute setters
(GenerateParametersCheck): Handle [EnforceRange] in parameters.
(JSValueToNative): Pass EnforceRange to toInt() functions as appropriate.
* bindings/scripts/IDLAttributes.txt:
* bindings/scripts/test/TestObj.idl: Tests w/ [EnforceRange]
* bindings/scripts/test/V8/V8TestObj.cpp: Updated expectations
* bindings/scripts/test/V8/V8TestTypedefs.cpp: Updated expectations.
* bindings/v8/V8Binding.cpp: Overloads for toInt() variants that handle constraints.
(WebCore::toInt32):
(WebCore::toUInt32):
(WebCore::toInt64):
(WebCore::toUInt64):
* bindings/v8/V8Binding.h: Ditto, plus helpers for callers not expecting errors.
(WebCore::toInt32):
(WebCore::toUInt32):
(WebCore::toInt64):
(WebCore::toUInt64):
* bindings/v8/V8BindingMacros.h: Helper macros for type conversions that may throw.
* testing/TypeConversions.h: Added new members with EnforceRange constraint.
* testing/TypeConversions.idl: Ditto.
2013-03-15 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] Refine JSDocs in NetworkRequest.js
https://bugs.webkit.org/show_bug.cgi?id=112412
Reviewed by Vsevolod Vlasov.
Return types for some members are confusing (Object).
* inspector/front-end/NetworkManager.js: Fixed JSDocs.
* inspector/front-end/NetworkRequest.js: Ditto. Plus minor refactorings.
2013-03-15 Andy Estes <aestes@apple.com>
REGRESSION (r127277): CSS URIs with multi-byte Unicode escape sequences fail to parse
https://bugs.webkit.org/show_bug.cgi?id=112436
Reviewed by Michael Saboff.
r127277 modified the CSS parser to use 8-bit strings when possible.
However, it failed to handle URIs that contain Unicode escape sequences
that expand to multi-byte characters. Not only would the URI fail to
parse, but so would the remainder of the input string.
Fix this by producing a 16-bit result when we detect a URI with a
multi-byte Unicode escape, like we do for identifiers and other strings.
Test: fast/css/url-with-multi-byte-unicode-escape.html
* css/CSSParser.cpp:
(WebCore::checkAndSkipString): Changed to be a free function since it
doesn't access CSSParser's internal state.
(WebCore::CSSParser::findURI): Added a function that consolidates the
logic of finding the start and end pointers of the URI and the quote
character (if encountered), starting at the current character.
(WebCore::CSSParser::parseURIInternal): Removed duplicated logic for
finding the URI bounds (this now lives in findURI()) and logic for
setting the token type and updating the current character (this now
lives in parseURI()).
(WebCore::CSSParser::parseURI): Find the URI and parse it. If a
multi-byte Unicode escape is encountered, rewind to the beginning of
the URI and re-parse with a 16-bit string as the destination.
* css/CSSParser.h:
2013-03-15 Andreas Kling <akling@apple.com>
[JSC] Remove custom WebAudio mark functions that we can generate instead.
<http://webkit.org/b/110976>
Reviewed by Eric Carlson.
Remove custom JSC mark functions for AudioContext and ScriptProcessorNode since they
are trivial to generate.
* Modules/webaudio/AudioContext.idl:
* Modules/webaudio/ScriptProcessorNode.idl:
* GNUmakefile.list.am:
* UseJSC.cmake:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSAudioContextCustom.cpp:
* bindings/js/JSScriptProcessorNodeCustom.cpp: Removed.
2013-03-15 Jer Noble <jer.noble@apple.com>
Unreviewed build fix. Rename local variable which was colliding with class method.
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayer::clone):
2013-03-15 Joshua Bell <jsbell@chromium.org>
IndexedDB: Handle success events arriving after context stopped
https://bugs.webkit.org/show_bug.cgi?id=112451
Reviewed by Tony Chang.
In multiprocess ports, events from the back-end can arrive in the form of
onXXX() calls after the script execution context has stopped. These need to
be ignored. This was already done in most cases, but missing for two overloads
of IDBRequest::onSuccess() - void and int64_t.
Test: webkit_unit_test IDBRequestTest.EventsAfterStopping
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess): Early return if context has stopped.
(WebCore::IDBRequest::onSuccessInternal): ASSERT() that callers have checked context.
2013-03-14 Jer Noble <jer.noble@apple.com>
REGRESSION: -webkit-box-reflect does not show on video elements
https://bugs.webkit.org/show_bug.cgi?id=112397
Reviewed by Simon Fraser.
Test: compositing/video/video-reflection.html
Support cloning specific CALayer subtypes in PlatformCALayer,
which allows reflections to work correctly for those layer types.
Specifically, add support for cloning AVPlayerLayer layers.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::cloneLayer): Moved most of the
implementation to PlatformCALayer::clone().
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::PlatformCALayer): Set the layerType to
LayerTypeAVPlayerLayer if the PlatformLayer parameter is an
AVPlayerLayer.
(PlatformCALayer::clone): Moved from GraphicsLayerCA::cloneLayer().
Copy the player value to the new layer, if the current layer is
a LayerTypeAVPlayerLayer.
(PlatformCALayer::playerLayer):
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayer::clone): Moved from GraphicsLayerCA::cloneLayer().
May want to add support for AVCFPlayerLayers in the future.
2013-03-15 Nate Chapin <japhet@chromium.org>
Hide MainResourceLoader from the outside world
https://bugs.webkit.org/show_bug.cgi?id=109971
Reviewed by Adam Barth.
No new tests, refactor only.
* WebCore.exp.in:
* dom/Document.cpp:
* html/HTMLEmbedElement.cpp:
* html/MediaDocument.cpp:
* html/PluginDocument.cpp:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::mainResourceLoader):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::receivedData):
(WebCore::DocumentLoader::setMainResourceDataBufferingPolicy):
* loader/DocumentLoader.h:
* loader/EmptyClients.h:
* loader/FrameLoader.cpp:
* loader/FrameLoaderClient.h:
* loader/MainResourceLoader.cpp:
* loader/appcache/ApplicationCacheGroup.cpp:
* loader/appcache/ApplicationCacheHost.cpp:
2013-03-15 Abhishek Arya <inferno@chromium.org>
Replace static_casts with to* helper functions.
https://bugs.webkit.org/show_bug.cgi?id=112401
Reviewed by Stephen Chenney.
to* helper functions are preferred over static_cast calls since they
help to catch bad casts easily on the testing infrastructure.
* accessibility/AccessibilityObject.cpp:
(WebCore::appendAccessibilityObject):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::visiblePositionForPoint):
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::webAreaObject):
(WebCore::AccessibilityScrollView::documentFrameView):
(WebCore::AccessibilityScrollView::parentObject):
(WebCore::AccessibilityScrollView::parentObjectIfExists):
* accessibility/chromium/AXObjectCacheChromium.cpp:
(WebCore::AXObjectCache::postPlatformNotification):
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginScriptObjectFromPluginViewBase):
* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::setJavaScriptPaused):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::createScriptInstanceForWidget):
* bindings/js/ScriptControllerQt.cpp:
(WebCore::ScriptController::createScriptInstanceForWidget):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::createScriptInstanceForWidget):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::appendFormData):
* page/EventHandler.cpp:
(WebCore::EventHandler::subframeForTargetNode):
(WebCore::EventHandler::passGestureEventToWidget):
* page/Frame.cpp:
(WebCore::Frame::frameForWidget):
* page/FrameView.cpp:
(WebCore::collectFrameViewChildren):
(WebCore::FrameView::hasCustomScrollbars):
(WebCore::FrameView::convertToContainingView):
(WebCore::FrameView::convertFromContainingView):
(WebCore::FrameView::removeChild):
* page/FrameView.h:
(WebCore::toFrameView):
(WebCore):
* page/Page.cpp:
(WebCore::Page::collectPluginViews):
* page/chromium/EventHandlerChromium.cpp:
(WebCore::EventHandler::passWheelEventToWidget):
* page/efl/EventHandlerEfl.cpp:
(WebCore::EventHandler::passWheelEventToWidget):
* page/gtk/EventHandlerGtk.cpp:
(WebCore::EventHandler::passWheelEventToWidget):
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::passWheelEventToWidget):
* page/qt/EventHandlerQt.cpp:
(WebCore::EventHandler::passWheelEventToWidget):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
* page/win/EventHandlerWin.cpp:
(WebCore::EventHandler::passWheelEventToWidget):
* page/wx/EventHandlerWx.cpp:
(WebCore::EventHandler::passWheelEventToWidget):
* platform/ScrollView.h:
(WebCore::toScrollView):
(WebCore):
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::isScrollViewScrollbar):
(WebCore::Scrollbar::mouseUp):
(WebCore::Scrollbar::axObjectCache):
* platform/Widget.h:
(WebCore::Widget::isScrollView):
* platform/blackberry/PlatformScreenBlackBerry.cpp:
(WebCore::toUserSpace):
* platform/efl/ScrollbarEfl.cpp:
(ScrollbarEfl::setParent):
* platform/qt/PlatformSupportQt.cpp:
(WebCore::PlatformSupport::popupsAllowed):
(WebCore::PlatformSupport::pluginScriptableObject):
* plugins/IFrameShimSupport.cpp:
(WebCore::getPluginOcclusions):
* plugins/PluginView.h:
(WebCore::toPluginView):
(WebCore):
* plugins/PluginViewBase.h:
(WebCore::PluginViewBase::isPluginViewBase):
(PluginViewBase):
(WebCore::toPluginViewBase):
(WebCore):
* plugins/blackberry/PluginViewBlackBerry.cpp:
(WebCore::PluginView::updatePluginWidget):
(WebCore::PluginView::updateBuffer):
(WebCore::PluginView::paint):
(WebCore::PluginView::handleScrollEvent):
(WebCore::PluginView::calculateClipRect):
(WebCore::PluginView::handleFullScreenAllowedEvent):
(WebCore::PluginView::handleFullScreenExitEvent):
(WebCore::PluginView::setParent):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::platformGetValue):
(WebCore::PluginView::platformStart):
(WebCore::PluginView::platformDestroy):
(WebCore::PluginView::setBackgroundPlay):
* plugins/blackberry/PluginViewPrivateBlackBerry.cpp:
(WebCore::PluginViewPrivate::setVisibleRects):
(WebCore::PluginViewPrivate::showKeyboard):
(WebCore::PluginViewPrivate::requestFullScreen):
(WebCore::PluginViewPrivate::requestCenterFitZoom):
(WebCore::PluginViewPrivate::lockOrientation):
(WebCore::PluginViewPrivate::unlockOrientation):
(WebCore::PluginViewPrivate::preventIdle):
* plugins/gtk/PluginViewGtk.cpp:
(WebCore::PluginView::updatePluginWidget):
* plugins/mac/PluginViewMac.mm:
(WebCore::PluginView::platformStart):
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::updatePluginWidget):
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginView::updatePluginWidget):
(WebCore::PluginView::paintIntoTransformedContext):
(WebCore::PluginView::paintWindowedPluginIntoContext):
(WebCore::PluginView::paint):
(WebCore::PluginView::handleMouseEvent):
(WebCore::PluginView::setNPWindowRect):
(WebCore::PluginView::snapshot):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::addLayoutOverflow):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::allowsAcceleratedCompositing):
(WebCore::RenderEmbeddedObject::viewCleared):
(WebCore::RenderEmbeddedObject::nodeAtPoint):
(WebCore::RenderEmbeddedObject::scroll):
* rendering/RenderFlexibleBox.h:
(WebCore::toRenderFlexibleBox):
(WebCore):
* rendering/RenderFrame.cpp:
(WebCore::RenderFrame::viewCleared):
* rendering/RenderFrameBase.cpp:
(WebCore::RenderFrameBase::layoutWithFlattening):
* rendering/RenderIFrame.cpp:
(WebCore::RenderIFrame::contentRootRenderer):
(WebCore::RenderIFrame::layoutSeamlessly):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame):
* rendering/RenderPart.cpp:
(WebCore::RenderPart::requiresAcceleratedCompositing):
(WebCore::RenderPart::embeddedContentBox):
(WebCore::RenderPart::nodeAtPoint):
* rendering/RenderRuby.cpp:
(WebCore::rubyBeforeBlock):
(WebCore::rubyAfterBlock):
(WebCore::lastRubyRun):
(WebCore::findRubyRunParent):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paintContents):
(WebCore::RenderWidget::setOverlapTestResult):
(WebCore::RenderWidget::updateWidgetPosition):
2013-03-15 No'am Rosenthal <noam@webkit.org>
[Texmap] REGRESSION (r144190): Failure at style with preserve-3d and opacity
https://bugs.webkit.org/show_bug.cgi?id=112370
According to spec, we avoid masking and clipping when preserves-3d is enabled.
However, opacity should still work.
Allowing opacity when preserves-3d is on.
Reviewed by Caio Marcelo de Oliveira Filho.
Test: compositing/overlap-blending/preserves3d-opacity.html
* platform/graphics/texmap/TextureMapperGL.cpp:
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintRecursive):
2013-03-15 Konrad Piascik <kpiascik@blackberry.com>
Get rid of useless forward declaration.
https://bugs.webkit.org/show_bug.cgi?id=112449
Reviewed by Stephen Chenney.
No behavioural change
* svg/SVGRectElement.cpp:
2013-03-15 Alexei Filippov <alph@chromium.org>
Web Inspector: make CPU profiler show timings using the same time unit [ms]
https://bugs.webkit.org/show_bug.cgi?id=112356
That makes it much easier to compare values when looking at the data.
Reviewed by Yury Semikhatsky.
* inspector/front-end/ProfileDataGridTree.js:
(WebInspector.ProfileDataGridNode.prototype.get data.formatMilliseconds):
2013-03-15 Peter Beverloo <peter@chromium.org>
Implement support for nullable types in the bindings generator
https://bugs.webkit.org/show_bug.cgi?id=111728
Reviewed by Kentaro Hara.
This patch adds support for nullable types in the bindings
generator, as described in section 3.10.22 of WebIDL:
http://dev.w3.org/2006/webapi/WebIDL/#idl-nullable-type
interface MyInterface {
readonly attribute boolean? value; // true, false or null.
};
The IDL Parser has been modified to record whether attributes are
nullable. Question marks from the type will always be stripped
from the domAttribute->signature->type field. Once support for
this has been completely implemented, we'll be able to remove a
bunch of custom bindings, i.e. those of Device Orientation.
Any getter for an attribute which returns a nullable type will be
called with an additional attribute (passed by reference) named
"isNull". This will be the last argument passed to the method,
unless an exception code (ec) argument will be passed as well.
The CPP, GObject and ObjC bindings will not change behavior following
this patch, although they have been modified to call the WebCore
methods for nullable attributes with the correct signature. The
V8 and JS binding generators do have modified behavior, in that they
will actually return v8Null/jsNull when isNull == true.
Tested by existing binding tests and the new nullable attribute
tests in the bindings/scripts/test/ directory.
* bindings/scripts/CodeGeneratorCPP.pm:
(GenerateImplementation):
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateProperty):
(GenerateFunction):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/CodeGeneratorObjC.pm:
(GenerateImplementation):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrGetter):
* bindings/scripts/IDLParser.pm:
(typeHasNullableSuffix):
(typeRemoveNullableSuffix):
(parseAttributeRest):
(parseOptionalOrRequiredArgument):
(parseAttributeRestOld):
* bindings/scripts/test/CPP/WebDOMTestObj.cpp:
(WebDOMTestObj::nullableDoubleAttribute):
(WebDOMTestObj::nullableLongAttribute):
(WebDOMTestObj::nullableBooleanAttribute):
(WebDOMTestObj::nullableStringAttribute):
(WebDOMTestObj::nullableLongSettableAttribute):
(WebDOMTestObj::setNullableLongSettableAttribute):
(WebDOMTestObj::nullableStringValue):
(WebDOMTestObj::setNullableStringValue):
* bindings/scripts/test/CPP/WebDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_set_property):
(webkit_dom_test_obj_get_property):
(webkit_dom_test_obj_class_init):
(webkit_dom_test_obj_get_nullable_double_attribute):
(webkit_dom_test_obj_get_nullable_long_attribute):
(webkit_dom_test_obj_get_nullable_boolean_attribute):
(webkit_dom_test_obj_get_nullable_string_attribute):
(webkit_dom_test_obj_get_nullable_long_settable_attribute):
(webkit_dom_test_obj_set_nullable_long_settable_attribute):
(webkit_dom_test_obj_get_nullable_string_value):
(webkit_dom_test_obj_set_nullable_string_value):
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore):
(WebCore::jsTestObjNullableDoubleAttribute):
(WebCore::jsTestObjNullableLongAttribute):
(WebCore::jsTestObjNullableBooleanAttribute):
(WebCore::jsTestObjNullableStringAttribute):
(WebCore::jsTestObjNullableLongSettableAttribute):
(WebCore::jsTestObjNullableStringValue):
(WebCore::setJSTestObjNullableLongSettableAttribute):
(WebCore::setJSTestObjNullableStringValue):
* bindings/scripts/test/JS/JSTestObj.h:
(WebCore):
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
(-[DOMTestObj nullableDoubleAttribute]):
(-[DOMTestObj nullableLongAttribute]):
(-[DOMTestObj nullableBooleanAttribute]):
(-[DOMTestObj nullableStringAttribute]):
(-[DOMTestObj nullableLongSettableAttribute]):
(-[DOMTestObj setNullableLongSettableAttribute:]):
(-[DOMTestObj nullableStringValue]):
(-[DOMTestObj setNullableStringValue:]):
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::nullableDoubleAttributeAttrGetter):
(TestObjV8Internal):
(WebCore::TestObjV8Internal::nullableDoubleAttributeAttrGetterCallback):
(WebCore::TestObjV8Internal::nullableLongAttributeAttrGetter):
(WebCore::TestObjV8Internal::nullableLongAttributeAttrGetterCallback):
(WebCore::TestObjV8Internal::nullableBooleanAttributeAttrGetter):
(WebCore::TestObjV8Internal::nullableBooleanAttributeAttrGetterCallback):
(WebCore::TestObjV8Internal::nullableStringAttributeAttrGetter):
(WebCore::TestObjV8Internal::nullableStringAttributeAttrGetterCallback):
(WebCore::TestObjV8Internal::nullableLongSettableAttributeAttrGetter):
(WebCore::TestObjV8Internal::nullableLongSettableAttributeAttrGetterCallback):
(WebCore::TestObjV8Internal::nullableLongSettableAttributeAttrSetter):
(WebCore::TestObjV8Internal::nullableLongSettableAttributeAttrSetterCallback):
(WebCore::TestObjV8Internal::nullableStringValueAttrGetter):
(WebCore::TestObjV8Internal::nullableStringValueAttrGetterCallback):
(WebCore::TestObjV8Internal::nullableStringValueAttrSetter):
(WebCore::TestObjV8Internal::nullableStringValueAttrSetterCallback):
(WebCore):
2013-03-15 Marja Hölttä <marja@chromium.org>
[V8] Store main world and non-main world templates separately.
https://bugs.webkit.org/show_bug.cgi?id=111724
Reviewed by Jochen Eisinger.
This is needed for generating specialized bindings for the main
world (bug 110874).
No new tests (updated existing bindings tests).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateDomainSafeFunctionGetter):
(GenerateNormalAttrSetter):
(GenerateParametersCheckExpression):
(GenerateParametersCheck):
(GenerateImplementation):
(JSValueToNative):
(CreateCustomSignature):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::Float64ArrayV8Internal::fooMethod):
(WebCore::ConfigureV8Float64ArrayTemplate):
(WebCore::V8Float64Array::GetTemplate):
(WebCore::V8Float64Array::HasInstance):
(WebCore):
(WebCore::V8Float64Array::HasInstanceInAnyWorld):
* bindings/scripts/test/V8/V8Float64Array.h:
(V8Float64Array):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::excitingFunctionMethod):
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
(WebCore::V8TestActiveDOMObject::GetTemplate):
(WebCore::V8TestActiveDOMObject::HasInstance):
(WebCore):
(WebCore::V8TestActiveDOMObject::HasInstanceInAnyWorld):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(V8TestActiveDOMObject):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::GetTemplate):
(WebCore::V8TestCustomNamedGetter::HasInstance):
(WebCore):
(WebCore::V8TestCustomNamedGetter::HasInstanceInAnyWorld):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(V8TestCustomNamedGetter):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::GetTemplate):
(WebCore::V8TestEventConstructor::HasInstance):
(WebCore):
(WebCore::V8TestEventConstructor::HasInstanceInAnyWorld):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(V8TestEventConstructor):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::TestEventTargetV8Internal::dispatchEventMethod):
(WebCore::ConfigureV8TestEventTargetTemplate):
(WebCore::V8TestEventTarget::GetTemplate):
(WebCore::V8TestEventTarget::HasInstance):
(WebCore):
(WebCore::V8TestEventTarget::HasInstanceInAnyWorld):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(V8TestEventTarget):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::GetTemplate):
(WebCore::V8TestException::HasInstance):
(WebCore):
(WebCore::V8TestException::HasInstanceInAnyWorld):
* bindings/scripts/test/V8/V8TestException.h:
(V8TestException):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetter):
(WebCore::TestInterfaceV8Internal::supplementalMethod2Method):
(WebCore::ConfigureV8TestInterfaceTemplate):
(WebCore::V8TestInterface::GetTemplate):
(WebCore::V8TestInterface::HasInstance):
(WebCore):
(WebCore::V8TestInterface::HasInstanceInAnyWorld):
* bindings/scripts/test/V8/V8TestInterface.h:
(V8TestInterface):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::GetTemplate):
(WebCore::V8TestMediaQueryListListener::HasInstance):
(WebCore):
(WebCore::V8TestMediaQueryListListener::HasInstanceInAnyWorld):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(V8TestMediaQueryListListener):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructor::GetTemplate):
(WebCore::V8TestNamedConstructor::HasInstance):
(WebCore):
(WebCore::V8TestNamedConstructor::HasInstanceInAnyWorld):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(V8TestNamedConstructor):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::GetTemplate):
(WebCore::V8TestNode::HasInstance):
(WebCore):
(WebCore::V8TestNode::HasInstanceInAnyWorld):
* bindings/scripts/test/V8/V8TestNode.h:
(V8TestNode):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::testObjAttrAttrSetter):
(WebCore::TestObjV8Internal::XMLObjAttrAttrSetter):
(WebCore::TestObjV8Internal::typedArrayAttrAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
(WebCore::TestObjV8Internal::mutablePointAttrSetter):
(WebCore::TestObjV8Internal::immutablePointAttrSetter):
(WebCore::TestObjV8Internal::voidMethodWithArgsMethod):
(WebCore::TestObjV8Internal::longMethodWithArgsMethod):
(WebCore::TestObjV8Internal::objMethodWithArgsMethod):
(WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsMethod):
(WebCore::TestObjV8Internal::overloadedMethod1Method):
(WebCore::TestObjV8Internal::overloadedMethod2Method):
(WebCore::TestObjV8Internal::overloadedMethod8Method):
(WebCore::TestObjV8Internal::overloadedMethodMethod):
(WebCore::TestObjV8Internal::convert1Method):
(WebCore::TestObjV8Internal::convert2Method):
(WebCore::TestObjV8Internal::convert4Method):
(WebCore::TestObjV8Internal::convert5Method):
(WebCore::TestObjV8Internal::variadicNodeMethodMethod):
(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::GetTemplate):
(WebCore::V8TestObj::HasInstance):
(WebCore):
(WebCore::V8TestObj::HasInstanceInAnyWorld):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::TestOverloadedConstructorsV8Internal::constructor1):
(WebCore::TestOverloadedConstructorsV8Internal::constructor2):
(WebCore::TestOverloadedConstructorsV8Internal::constructor3):
(WebCore::TestOverloadedConstructorsV8Internal::constructor):
(WebCore::V8TestOverloadedConstructors::GetTemplate):
(WebCore::V8TestOverloadedConstructors::HasInstance):
(WebCore):
(WebCore::V8TestOverloadedConstructors::HasInstanceInAnyWorld):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(V8TestOverloadedConstructors):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
(WebCore::V8TestSerializedScriptValueInterface::HasInstance):
(WebCore):
(WebCore::V8TestSerializedScriptValueInterface::HasInstanceInAnyWorld):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(V8TestSerializedScriptValueInterface):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::TestTypedefsV8Internal::funcMethod):
(WebCore::ConfigureV8TestTypedefsTemplate):
(WebCore::V8TestTypedefs::GetTemplate):
(WebCore::V8TestTypedefs::HasInstance):
(WebCore):
(WebCore::V8TestTypedefs::HasInstanceInAnyWorld):
* bindings/scripts/test/V8/V8TestTypedefs.h:
(V8TestTypedefs):
* bindings/v8/Dictionary.cpp:
(WebCore::Dictionary::get):
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::visitNodeWrappers):
* bindings/v8/SerializedScriptValue.cpp:
* bindings/v8/V8AdaptorFunction.cpp:
(WebCore::V8AdaptorFunction::getTemplate):
* bindings/v8/V8Binding.cpp:
(WebCore::toDOMStringList):
(WebCore::toXPathNSResolver):
* bindings/v8/V8Binding.h:
(WebCore):
(WebCore::toRefPtrNativeArray):
* bindings/v8/V8Collection.cpp:
(WebCore::toOptionsCollectionSetter):
* bindings/v8/V8GCController.cpp:
* bindings/v8/V8NPObject.cpp:
(WebCore::npObjectInvokeImpl):
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::reportMemoryUsage):
(WebCore::V8PerIsolateData::hasPrivateTemplate):
(WebCore::V8PerIsolateData::privateTemplate):
(WebCore::V8PerIsolateData::rawTemplate):
(WebCore::V8PerIsolateData::hasInstance):
* bindings/v8/V8PerIsolateData.h:
(WebCore::V8PerIsolateData::rawTemplateMap):
(V8PerIsolateData):
(WebCore::V8PerIsolateData::templateMap):
* bindings/v8/V8Utilities.cpp:
(WebCore::extractTransferables):
* bindings/v8/custom/V8ArrayBufferViewCustom.h:
(WebCore::constructWebGLArray):
(WebCore::setWebGLArrayHelper):
* bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
(WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
* bindings/v8/custom/V8BlobCustom.cpp:
(WebCore::V8Blob::constructorCustom):
* bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
(WebCore::toCanvasStyle):
* bindings/v8/custom/V8ClipboardCustom.cpp:
(WebCore::V8Clipboard::setDragImageMethodCustom):
* bindings/v8/custom/V8CryptoCustom.cpp:
(WebCore::V8Crypto::getRandomValuesMethodCustom):
* bindings/v8/custom/V8DOMFormDataCustom.cpp:
(WebCore::V8DOMFormData::constructorCustom):
(WebCore::V8DOMFormData::appendMethodCustom):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::V8DataView::constructorCustom):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::evaluateMethodCustom):
* bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
(WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::addMethodCustom):
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
(WebCore::removeElement):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::V8InjectedScriptHost::isHTMLAllCollectionMethodCustom):
(WebCore::V8InjectedScriptHost::typeMethodCustom):
(WebCore::V8InjectedScriptHost::getEventListenersMethodCustom):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::reloadAttrGetterCustom):
(WebCore::V8Location::replaceAttrGetterCustom):
(WebCore::V8Location::assignAttrGetterCustom):
* bindings/v8/custom/V8NodeCustom.cpp:
(WebCore::V8Node::insertBeforeMethodCustom):
(WebCore::V8Node::replaceChildMethodCustom):
(WebCore::V8Node::removeChildMethodCustom):
(WebCore::V8Node::appendChildMethodCustom):
* bindings/v8/custom/V8NodeListCustom.cpp:
(WebCore::V8NodeList::opaqueRootForGC):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toWebGLUniformLocation):
(WebCore::V8WebGLRenderingContext::getAttachedShadersMethodCustom):
(WebCore::V8WebGLRenderingContext::getProgramParameterMethodCustom):
(WebCore::V8WebGLRenderingContext::getShaderParameterMethodCustom):
(WebCore::V8WebGLRenderingContext::getUniformMethodCustom):
(WebCore::vertexAttribAndUniformHelperf):
(WebCore::uniformHelperi):
(WebCore::uniformMatrixHelper):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::isDocumentType):
(WebCore::V8XMLHttpRequest::sendMethodCustom):
2013-03-15 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145802.
http://trac.webkit.org/changeset/145802
https://bugs.webkit.org/show_bug.cgi?id=112444
This broke Chrome. (Requested by marja____ on #webkit).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateDomainSafeFunctionGetter):
(GenerateNormalAttrSetter):
(GenerateParametersCheckExpression):
(GenerateParametersCheck):
(GenerateImplementation):
(JSValueToNative):
(CreateCustomSignature):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::Float64ArrayV8Internal::fooMethod):
(WebCore::ConfigureV8Float64ArrayTemplate):
(WebCore::V8Float64Array::GetTemplate):
(WebCore::V8Float64Array::HasInstance):
* bindings/scripts/test/V8/V8Float64Array.h:
(V8Float64Array):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::excitingFunctionMethod):
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
(WebCore::V8TestActiveDOMObject::GetTemplate):
(WebCore::V8TestActiveDOMObject::HasInstance):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(V8TestActiveDOMObject):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::GetTemplate):
(WebCore::V8TestCustomNamedGetter::HasInstance):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(V8TestCustomNamedGetter):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::GetTemplate):
(WebCore::V8TestEventConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(V8TestEventConstructor):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::TestEventTargetV8Internal::dispatchEventMethod):
(WebCore::ConfigureV8TestEventTargetTemplate):
(WebCore::V8TestEventTarget::GetTemplate):
(WebCore::V8TestEventTarget::HasInstance):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(V8TestEventTarget):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::GetTemplate):
(WebCore::V8TestException::HasInstance):
* bindings/scripts/test/V8/V8TestException.h:
(V8TestException):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetter):
(WebCore::TestInterfaceV8Internal::supplementalMethod2Method):
(WebCore::ConfigureV8TestInterfaceTemplate):
(WebCore::V8TestInterface::GetTemplate):
(WebCore::V8TestInterface::HasInstance):
* bindings/scripts/test/V8/V8TestInterface.h:
(V8TestInterface):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::GetTemplate):
(WebCore::V8TestMediaQueryListListener::HasInstance):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(V8TestMediaQueryListListener):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructor::GetTemplate):
(WebCore::V8TestNamedConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(V8TestNamedConstructor):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::GetTemplate):
(WebCore::V8TestNode::HasInstance):
* bindings/scripts/test/V8/V8TestNode.h:
(V8TestNode):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::testObjAttrAttrSetter):
(WebCore::TestObjV8Internal::XMLObjAttrAttrSetter):
(WebCore::TestObjV8Internal::typedArrayAttrAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
(WebCore::TestObjV8Internal::mutablePointAttrSetter):
(WebCore::TestObjV8Internal::immutablePointAttrSetter):
(WebCore::TestObjV8Internal::voidMethodWithArgsMethod):
(WebCore::TestObjV8Internal::longMethodWithArgsMethod):
(WebCore::TestObjV8Internal::objMethodWithArgsMethod):
(WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsMethod):
(WebCore::TestObjV8Internal::overloadedMethod1Method):
(WebCore::TestObjV8Internal::overloadedMethod2Method):
(WebCore::TestObjV8Internal::overloadedMethod8Method):
(WebCore::TestObjV8Internal::overloadedMethodMethod):
(WebCore::TestObjV8Internal::convert1Method):
(WebCore::TestObjV8Internal::convert2Method):
(WebCore::TestObjV8Internal::convert4Method):
(WebCore::TestObjV8Internal::convert5Method):
(WebCore::TestObjV8Internal::variadicNodeMethodMethod):
(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::GetTemplate):
(WebCore::V8TestObj::HasInstance):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::TestOverloadedConstructorsV8Internal::constructor1):
(WebCore::TestOverloadedConstructorsV8Internal::constructor2):
(WebCore::TestOverloadedConstructorsV8Internal::constructor3):
(WebCore::TestOverloadedConstructorsV8Internal::constructor):
(WebCore::V8TestOverloadedConstructors::GetTemplate):
(WebCore::V8TestOverloadedConstructors::HasInstance):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(V8TestOverloadedConstructors):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
(WebCore::V8TestSerializedScriptValueInterface::HasInstance):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(V8TestSerializedScriptValueInterface):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::TestTypedefsV8Internal::funcMethod):
(WebCore::ConfigureV8TestTypedefsTemplate):
(WebCore::V8TestTypedefs::GetTemplate):
(WebCore::V8TestTypedefs::HasInstance):
* bindings/scripts/test/V8/V8TestTypedefs.h:
(V8TestTypedefs):
* bindings/v8/Dictionary.cpp:
(WebCore::Dictionary::get):
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::visitNodeWrappers):
* bindings/v8/SerializedScriptValue.cpp:
* bindings/v8/V8AdaptorFunction.cpp:
(WebCore::V8AdaptorFunction::getTemplate):
* bindings/v8/V8Binding.cpp:
(WebCore::toDOMStringList):
(WebCore::toXPathNSResolver):
* bindings/v8/V8Binding.h:
(WebCore::toRefPtrNativeArray):
(WebCore):
* bindings/v8/V8Collection.cpp:
(WebCore::toOptionsCollectionSetter):
* bindings/v8/V8GCController.cpp:
* bindings/v8/V8NPObject.cpp:
(WebCore::npObjectInvokeImpl):
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::reportMemoryUsage):
(WebCore::V8PerIsolateData::hasPrivateTemplate):
(WebCore::V8PerIsolateData::privateTemplate):
(WebCore::V8PerIsolateData::rawTemplate):
(WebCore::V8PerIsolateData::hasInstance):
* bindings/v8/V8PerIsolateData.h:
(WebCore::V8PerIsolateData::rawTemplateMap):
(WebCore::V8PerIsolateData::templateMap):
(V8PerIsolateData):
* bindings/v8/V8Utilities.cpp:
(WebCore::extractTransferables):
* bindings/v8/custom/V8ArrayBufferViewCustom.h:
(WebCore::constructWebGLArray):
(WebCore::setWebGLArrayHelper):
* bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
(WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
* bindings/v8/custom/V8BlobCustom.cpp:
(WebCore::V8Blob::constructorCustom):
* bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
(WebCore::toCanvasStyle):
* bindings/v8/custom/V8ClipboardCustom.cpp:
(WebCore::V8Clipboard::setDragImageMethodCustom):
* bindings/v8/custom/V8CryptoCustom.cpp:
(WebCore::V8Crypto::getRandomValuesMethodCustom):
* bindings/v8/custom/V8DOMFormDataCustom.cpp:
(WebCore::V8DOMFormData::constructorCustom):
(WebCore::V8DOMFormData::appendMethodCustom):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::V8DataView::constructorCustom):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::evaluateMethodCustom):
* bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
(WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::addMethodCustom):
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
(WebCore::removeElement):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::V8InjectedScriptHost::isHTMLAllCollectionMethodCustom):
(WebCore::V8InjectedScriptHost::typeMethodCustom):
(WebCore::V8InjectedScriptHost::getEventListenersMethodCustom):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::reloadAttrGetterCustom):
(WebCore::V8Location::replaceAttrGetterCustom):
(WebCore::V8Location::assignAttrGetterCustom):
* bindings/v8/custom/V8NodeCustom.cpp:
(WebCore::V8Node::insertBeforeMethodCustom):
(WebCore::V8Node::replaceChildMethodCustom):
(WebCore::V8Node::removeChildMethodCustom):
(WebCore::V8Node::appendChildMethodCustom):
* bindings/v8/custom/V8NodeListCustom.cpp:
(WebCore::V8NodeList::opaqueRootForGC):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toWebGLUniformLocation):
(WebCore::V8WebGLRenderingContext::getAttachedShadersMethodCustom):
(WebCore::V8WebGLRenderingContext::getProgramParameterMethodCustom):
(WebCore::V8WebGLRenderingContext::getShaderParameterMethodCustom):
(WebCore::V8WebGLRenderingContext::getUniformMethodCustom):
(WebCore::vertexAttribAndUniformHelperf):
(WebCore::uniformHelperi):
(WebCore::uniformMatrixHelper):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::isDocumentType):
(WebCore::V8XMLHttpRequest::sendMethodCustom):
2013-03-15 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145896.
http://trac.webkit.org/changeset/145896
https://bugs.webkit.org/show_bug.cgi?id=112443
Chrome broken by r145802 and this builds on top of it.
(Requested by marja____ on #webkit).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNormalAttrGetterCallback):
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetterCallback):
(GenerateNormalAttrSetter):
(GenerateNamedConstructor):
(GenerateBatchedAttributeData):
(GenerateSingleBatchedAttribute):
(GenerateImplementation):
(GenerateCallbackImplementation):
(GenerateFunctionCallString):
(CreateCustomSignature):
(NativeToJSValue):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::ConfigureV8Float64ArrayTemplate):
(WebCore::V8Float64Array::GetTemplate):
(WebCore::V8Float64Array::HasInstance):
* bindings/scripts/test/V8/V8Float64Array.h:
(WebCore):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
(WebCore::V8TestActiveDOMObject::GetTemplate):
(WebCore::V8TestActiveDOMObject::HasInstance):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::ConfigureV8TestCustomNamedGetterTemplate):
(WebCore::V8TestCustomNamedGetter::GetTemplate):
(WebCore::V8TestCustomNamedGetter::HasInstance):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore):
(WebCore::ConfigureV8TestEventConstructorTemplate):
(WebCore::V8TestEventConstructor::GetTemplate):
(WebCore::V8TestEventConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::ConfigureV8TestEventTargetTemplate):
(WebCore::V8TestEventTarget::GetTemplate):
(WebCore::V8TestEventTarget::HasInstance):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::ConfigureV8TestExceptionTemplate):
(WebCore::V8TestException::GetTemplate):
(WebCore::V8TestException::HasInstance):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(TestInterfaceV8Internal):
(WebCore):
(WebCore::ConfigureV8TestInterfaceTemplate):
(WebCore::V8TestInterface::GetTemplate):
(WebCore::V8TestInterface::HasInstance):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
(WebCore::V8TestMediaQueryListListener::GetTemplate):
(WebCore::V8TestMediaQueryListListener::HasInstance):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructor::GetTemplate):
(WebCore::ConfigureV8TestNamedConstructorTemplate):
(WebCore::V8TestNamedConstructor::GetTemplate):
(WebCore::V8TestNamedConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::ConfigureV8TestNodeTemplate):
(WebCore::V8TestNode::GetTemplate):
(WebCore::V8TestNode::HasInstance):
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore):
* bindings/scripts/test/V8/V8TestObj.cpp:
(TestObjV8Internal):
(WebCore):
(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::GetTemplate):
(WebCore::V8TestObj::HasInstance):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
(WebCore::V8TestOverloadedConstructors::GetTemplate):
(WebCore::V8TestOverloadedConstructors::HasInstance):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(WebCore):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore):
(WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
(WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
(WebCore::V8TestSerializedScriptValueInterface::HasInstance):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore):
(WebCore::ConfigureV8TestTypedefsTemplate):
(WebCore::V8TestTypedefs::GetTemplate):
(WebCore::V8TestTypedefs::HasInstance):
* bindings/scripts/test/V8/V8TestTypedefs.h:
(WebCore):
* bindings/v8/DOMDataStore.h:
(DOMDataStore):
* bindings/v8/V8DOMConfiguration.cpp:
* bindings/v8/V8DOMConfiguration.h:
(V8DOMConfiguration):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
* bindings/v8/custom/V8EventTargetCustom.cpp:
* bindings/v8/custom/V8IDBAnyCustom.cpp:
* bindings/v8/custom/V8MicroDataItemValueCustom.cpp:
* bindings/v8/custom/V8WorkerContextCustom.cpp:
2013-03-15 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] Remove PlatformSupport
https://bugs.webkit.org/show_bug.cgi?id=112438
Reviewed by Rob Buis.
This class only contains getFontFamilyForCharacters(), which was
moved from PlatformSupport to FontCache in r129257.
This patch does the same for the BlackBerry port.
* platform/graphics/FontCache.h:
(FontCache):
* platform/graphics/blackberry/FontCacheBlackBerry.cpp:
(WebCore::FontCache::getFontFamilyForCharacters):
(WebCore):
(WebCore::FontCache::getFontDataForCharacters):
* platform/graphics/blackberry/PlatformSupport.cpp: Removed.
* platform/graphics/blackberry/PlatformSupport.h: Removed.
2013-03-15 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] FontPlatformData: remove TextOrientation parameter
https://bugs.webkit.org/show_bug.cgi?id=112135
Reviewed by Rob Buis.
I forgot to remove the #include "TextOrientation.h" line as
well. This file no longer exists.
* platform/graphics/blackberry/FontCustomPlatformData.h:
2013-03-15 Sankeerth V S <sankeerth.vs@samsung.com>
DataGrid should reveal and select next/previous DataGridNode upon deletion of selected node
https://bugs.webkit.org/show_bug.cgi?id=112404
Reviewed by Vsevolod Vlasov.
No new tests as this is a UI related change.
While deleting the entries of the data grid by clicking on 'Delete'
status bar button, deletion of selected node should trigger selection of
next possible (backward/forward) DataGridNode.
* inspector/front-end/DOMStorageItemsView.js:
(WebInspector.DOMStorageItemsView.prototype._deleteButtonClicked):
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid.prototype._keyDown):
(WebInspector.DataGrid.prototype.changeNodeAfterDeletion):
2013-03-15 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. Draw timeline grid over flame chart items.
https://bugs.webkit.org/show_bug.cgi?id=112439
Reviewed by Pavel Feldman.
I've used WebInspector.TimelineGrid
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart):
(WebInspector.FlameChart.Calculator):
(WebInspector.FlameChart.Calculator.prototype._updateBoundaries):
(WebInspector.FlameChart.Calculator.prototype.computePosition):
(WebInspector.FlameChart.Calculator.prototype.formatTime):
(WebInspector.FlameChart.Calculator.prototype.maximumBoundary):
(WebInspector.FlameChart.Calculator.prototype.minimumBoundary):
(WebInspector.FlameChart.Calculator.prototype.boundarySpan):
(WebInspector.FlameChart.prototype.update):
2013-03-15 Marja Hölttä <marja@chromium.org>
[V8] Add machinery for generating specialized bindings for the main world
https://bugs.webkit.org/show_bug.cgi?id=111417
Reviewed by Kentaro Hara.
The new specialized bindings will be faster, because they don't need to
do the "main world, isolated world or a worker" check, but can right
away assume that we're in the main world.
This patch generates main world bindings for getters and setters.
No new tests (updated existing bindings tests).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNormalAttrGetterCallback):
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetterCallback):
(GenerateNormalAttrSetter):
(GenerateNamedConstructor):
(GenerateBatchedAttributeData):
(GenerateSingleBatchedAttribute):
(GenerateImplementation):
(GenerateCallbackImplementation):
(GenerateFunctionCallString):
(CreateCustomSignature):
(NativeToJSValue):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::ConfigureV8Float64ArrayTemplate):
(WebCore::V8Float64Array::GetTemplate):
(WebCore::V8Float64Array::HasInstance):
* bindings/scripts/test/V8/V8Float64Array.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::excitingAttrAttrGetterForMainWorld):
(TestActiveDOMObjectV8Internal):
(WebCore::TestActiveDOMObjectV8Internal::excitingAttrAttrGetterCallbackForMainWorld):
(WebCore):
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
(WebCore::V8TestActiveDOMObject::GetTemplate):
(WebCore::V8TestActiveDOMObject::HasInstance):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::ConfigureV8TestCustomNamedGetterTemplate):
(WebCore::V8TestCustomNamedGetter::GetTemplate):
(WebCore::V8TestCustomNamedGetter::HasInstance):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::TestEventConstructorV8Internal::attr1AttrGetterForMainWorld):
(TestEventConstructorV8Internal):
(WebCore::TestEventConstructorV8Internal::attr1AttrGetterCallbackForMainWorld):
(WebCore::TestEventConstructorV8Internal::attr2AttrGetterForMainWorld):
(WebCore::TestEventConstructorV8Internal::attr2AttrGetterCallbackForMainWorld):
(WebCore):
(WebCore::ConfigureV8TestEventConstructorTemplate):
(WebCore::V8TestEventConstructor::GetTemplate):
(WebCore::V8TestEventConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::ConfigureV8TestEventTargetTemplate):
(WebCore::V8TestEventTarget::GetTemplate):
(WebCore::V8TestEventTarget::HasInstance):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::TestExceptionV8Internal::nameAttrGetterForMainWorld):
(TestExceptionV8Internal):
(WebCore::TestExceptionV8Internal::nameAttrGetterCallbackForMainWorld):
(WebCore):
(WebCore::ConfigureV8TestExceptionTemplate):
(WebCore::V8TestException::GetTemplate):
(WebCore::V8TestException::HasInstance):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalStaticReadOnlyAttrAttrGetterForMainWorld):
(TestInterfaceV8Internal):
(WebCore::TestInterfaceV8Internal::supplementalStaticReadOnlyAttrAttrGetterCallbackForMainWorld):
(WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetterForMainWorld):
(WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetterCallbackForMainWorld):
(WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetterForMainWorld):
(WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetterCallbackForMainWorld):
(WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetterForMainWorld):
(WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetterCallbackForMainWorld):
(WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetterForMainWorld):
(WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetterCallbackForMainWorld):
(WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetterForMainWorld):
(WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetterCallbackForMainWorld):
(WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetterCallbackForMainWorld):
(WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetterCallbackForMainWorld):
(WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetterForMainWorld):
(WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetterCallbackForMainWorld):
(WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetterForMainWorld):
(WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetterCallbackForMainWorld):
(WebCore):
(WebCore::ConfigureV8TestInterfaceTemplate):
(WebCore::V8TestInterface::GetTemplate):
(WebCore::V8TestInterface::HasInstance):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
(WebCore::V8TestMediaQueryListListener::GetTemplate):
(WebCore::V8TestMediaQueryListListener::HasInstance):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructor::GetTemplate):
(WebCore::ConfigureV8TestNamedConstructorTemplate):
(WebCore::V8TestNamedConstructor::GetTemplate):
(WebCore::V8TestNamedConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::ConfigureV8TestNodeTemplate):
(WebCore::V8TestNode::GetTemplate):
(WebCore::V8TestNode::HasInstance):
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::readOnlyLongAttrAttrGetterForMainWorld):
(TestObjV8Internal):
(WebCore::TestObjV8Internal::readOnlyLongAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::staticReadOnlyLongAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::staticReadOnlyLongAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::staticStringAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::staticStringAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::staticStringAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::staticStringAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::enumAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::enumAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::enumAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::enumAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::shortAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::shortAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::shortAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::shortAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::unsignedShortAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::unsignedShortAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::unsignedShortAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::unsignedShortAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::longAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::longAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::longAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::longAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::longLongAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::longLongAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::longLongAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::longLongAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::unsignedLongLongAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::unsignedLongLongAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::unsignedLongLongAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::unsignedLongLongAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::stringAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::stringAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::stringAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::stringAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::testObjAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::testObjAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::testObjAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::testObjAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::XMLObjAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::XMLObjAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::XMLObjAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::XMLObjAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::createAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::createAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::createAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::createAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::reflectedStringAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::reflectedStringAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::reflectedStringAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::reflectedStringAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::reflectedIntegralAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::reflectedIntegralAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::reflectedIntegralAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedIntegralAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::reflectedIntegralAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::reflectedBooleanAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::reflectedBooleanAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::reflectedBooleanAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::reflectedBooleanAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::reflectedURLAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::reflectedURLAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::reflectedURLAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::reflectedURLAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::typedArrayAttrAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::typedArrayAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::typedArrayAttrAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::typedArrayAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::attrWithGetterExceptionAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::attrWithGetterExceptionAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::attrWithGetterExceptionAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::attrWithGetterExceptionAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::attrWithSetterExceptionAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::attrWithSetterExceptionAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::attrWithSetterExceptionAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::attrWithSetterExceptionAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::customAttrAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::customAttrAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::withScriptStateAttributeAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::withScriptStateAttributeAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::withScriptStateAttributeAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::withScriptStateAttributeAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::conditionalAttr1AttrGetterForMainWorld):
(WebCore::TestObjV8Internal::conditionalAttr1AttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::conditionalAttr1AttrSetterForMainWorld):
(WebCore::TestObjV8Internal::conditionalAttr1AttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::conditionalAttr2AttrGetterForMainWorld):
(WebCore::TestObjV8Internal::conditionalAttr2AttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::conditionalAttr2AttrSetterForMainWorld):
(WebCore::TestObjV8Internal::conditionalAttr2AttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::conditionalAttr3AttrGetterForMainWorld):
(WebCore::TestObjV8Internal::conditionalAttr3AttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::conditionalAttr3AttrSetterForMainWorld):
(WebCore::TestObjV8Internal::conditionalAttr3AttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::cachedAttribute1AttrGetterForMainWorld):
(WebCore::TestObjV8Internal::cachedAttribute1AttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::cachedAttribute2AttrGetterForMainWorld):
(WebCore::TestObjV8Internal::cachedAttribute2AttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::anyAttributeAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::anyAttributeAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::anyAttributeAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::anyAttributeAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrGetterForMainWorld):
(WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrSetterForMainWorld):
(WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrGetterForMainWorld):
(WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrSetterForMainWorld):
(WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::floatArrayAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::floatArrayAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::floatArrayAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::floatArrayAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::doubleArrayAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::doubleArrayAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::doubleArrayAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::doubleArrayAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::contentDocumentAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::contentDocumentAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::mutablePointAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::mutablePointAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::mutablePointAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::mutablePointAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::immutablePointAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::immutablePointAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::immutablePointAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::immutablePointAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::strawberryAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::strawberryAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::strawberryAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::strawberryAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::strictFloatAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::strictFloatAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::strictFloatAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::strictFloatAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::descriptionAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::descriptionAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::idAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::idAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::idAttrSetterForMainWorld):
(WebCore::TestObjV8Internal::idAttrSetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::hashAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::hashAttrGetterCallbackForMainWorld):
(WebCore::TestObjV8Internal::replaceableAttributeAttrGetterForMainWorld):
(WebCore::TestObjV8Internal::replaceableAttributeAttrGetterCallbackForMainWorld):
(WebCore):
(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::GetTemplate):
(WebCore::V8TestObj::HasInstance):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
(WebCore::V8TestOverloadedConstructors::GetTemplate):
(WebCore::V8TestOverloadedConstructors::HasInstance):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetterForMainWorld):
(TestSerializedScriptValueInterfaceV8Internal):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetterCallbackForMainWorld):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrSetterForMainWorld):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrSetterCallbackForMainWorld):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetterForMainWorld):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetterCallbackForMainWorld):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetterForMainWorld):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetterCallbackForMainWorld):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetterForMainWorld):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetterCallbackForMainWorld):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::portsAttrGetterForMainWorld):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::portsAttrGetterCallbackForMainWorld):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetterForMainWorld):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetterCallbackForMainWorld):
(WebCore):
(WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
(WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
(WebCore::V8TestSerializedScriptValueInterface::HasInstance):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrGetterForMainWorld):
(TestTypedefsV8Internal):
(WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrGetterCallbackForMainWorld):
(WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrSetterForMainWorld):
(WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrSetterCallbackForMainWorld):
(WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrGetterForMainWorld):
(WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrGetterCallbackForMainWorld):
(WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrSetterForMainWorld):
(WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrSetterCallbackForMainWorld):
(WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrGetterForMainWorld):
(WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrGetterCallbackForMainWorld):
(WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrSetterForMainWorld):
(WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrSetterCallbackForMainWorld):
(WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrGetterForMainWorld):
(WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrGetterCallbackForMainWorld):
(WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrSetterForMainWorld):
(WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrSetterCallbackForMainWorld):
(WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrGetterForMainWorld):
(WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrGetterCallbackForMainWorld):
(WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrSetterForMainWorld):
(WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrSetterCallbackForMainWorld):
(WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrGetterForMainWorld):
(WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrGetterCallbackForMainWorld):
(WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrSetterForMainWorld):
(WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrSetterCallbackForMainWorld):
(WebCore):
(WebCore::ConfigureV8TestTypedefsTemplate):
(WebCore::V8TestTypedefs::GetTemplate):
(WebCore::V8TestTypedefs::HasInstance):
* bindings/scripts/test/V8/V8TestTypedefs.h:
(WebCore::toV8ForMainWorld):
(WebCore):
(WebCore::toV8FastForMainWorld):
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::getWrapperForMainWorld):
(DOMDataStore):
* bindings/v8/V8DOMConfiguration.cpp:
(WebCore::V8DOMConfiguration::addToTemplate):
(WebCore):
* bindings/v8/V8DOMConfiguration.h:
(V8DOMConfiguration):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::toV8ForMainWorld):
(WebCore):
* bindings/v8/custom/V8EventTargetCustom.cpp:
(WebCore::toV8ForMainWorld):
(WebCore):
* bindings/v8/custom/V8IDBAnyCustom.cpp:
(WebCore::toV8ForMainWorld):
(WebCore):
* bindings/v8/custom/V8MicroDataItemValueCustom.cpp:
(WebCore::toV8ForMainWorld):
(WebCore):
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::toV8ForMainWorld):
(WebCore):
2013-03-15 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. xOffset calculates incorrectly when chart width less that canvas.width.
https://bugs.webkit.org/show_bug.cgi?id=112423
Reviewed by Yury Semikhatsky.
I extracted xOffset assigment procedure into a separate function.
Drive by fix: size and posion of anchor element was adjusted.
Drive by fix: we will not paint item if it is not visible.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart.prototype._maxXOffset):
(WebInspector.FlameChart.prototype._setXOffset):
(WebInspector.FlameChart.prototype._canvasDragging):
(WebInspector.FlameChart.prototype._onMouseMove):
(WebInspector.FlameChart.prototype._adjustXOffset):
(WebInspector.FlameChart.prototype._adjustXScale):
(WebInspector.FlameChart.prototype.draw):
2013-03-15 Noam Rosenthal <noam@webkit.org>
[Texmap] Change brightness filter to match new spec
https://bugs.webkit.org/show_bug.cgi?id=112422
New filters spec specifies an intercept of 0 instead of 1.
This is already done for the software version in http://trac.webkit.org/changeset/139770.
This patch adjusts the value for the accelerated version.
Reviewed by Allan Sandfeld Jensen.
Filter tests are currently disabled on Qt/GTK/EFL, but they would need to be rebaselined once enabled.
* platform/graphics/texmap/TextureMapperShaderProgram.cpp:
2013-03-15 Jaehun Lim <ljaehun.lim@samsung.com>
Call release() when a RefPtr is returned.
https://bugs.webkit.org/show_bug.cgi?id=112420
Reviewed by Eric Seidel.
release() should be called on a RefPtr to convert it to a PassRefPtr.
No new tests needed, no behavior changes.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseImageResolution):
(WebCore::CSSParser::parseImageSet):
2013-03-15 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] InitiatorComparator is not reflexive/antisymmetric.
https://bugs.webkit.org/show_bug.cgi?id=112341
Reviewed by Vsevolod Vlasov.
When both objects do not have initiator: f(a, b) = f(b, a) = -1
Furthermore: redirected responses are mixed with "other".
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
Remember "displayed" initiator type.
(WebInspector.NetworkDataGridNode.InitiatorComparator):
Recall "diaplayed" initiator type for more precise comparison.
2013-03-15 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: show image decode performed off main thread on timeline
https://bugs.webkit.org/show_bug.cgi?id=111159
Reviewed by Pavel Feldman.
- add handling of Decode Image event to TimelineTraceEventProcessorr;
- only log platform events for the main thread;
- extract constants for trace events produced by platform instrumentation.
* inspector/InspectorTimelineAgent.cpp:
(TimelineRecordType):
* inspector/InspectorTimelineAgent.h:
(TimelineRecordType):
* inspector/TimelineTraceEventProcessor.cpp:
(WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
(WebCore::TimelineTraceEventProcessor::onImageDecodeBegin):
(WebCore):
(WebCore::TimelineTraceEventProcessor::onImageDecodeEnd):
* inspector/TimelineTraceEventProcessor.h:
(TimelineTraceEventProcessor):
* platform/PlatformInstrumentation.cpp:
(WebCore):
* platform/PlatformInstrumentation.h:
(PlatformInstrumentation):
(WebCore):
(WebCore::PlatformInstrumentation::willDecodeImage):
(WebCore::PlatformInstrumentation::didDecodeImage):
(WebCore::PlatformInstrumentation::willResizeImage):
(WebCore::PlatformInstrumentation::didResizeImage):
2013-03-15 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. When user zooms the chart, the point under cursor has to be the zooming center.
https://bugs.webkit.org/show_bug.cgi?id=112417
Reviewed by Yury Semikhatsky.
It converts the cursor position into time,
changes the scale factor and calculates the new offset for the canvas.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart.prototype._adjustXScale):
(WebInspector.FlameChart.prototype._onMouseWheel):
2013-03-13 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] Sort columns context menu items alphabetically.
https://bugs.webkit.org/show_bug.cgi?id=112321
Reviewed by Pavel Feldman.
Problem: columns are presented in "natural" order,
so it is hard to find specific item.
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._getConfigurableColumnIDs):
Generate list of column IDs sorted alphabetically.
(WebInspector.NetworkLogView.prototype._contextMenu):
Use alphabetically sorted list of column IDs.
2013-03-15 Takashi Sakamoto <tasak@google.com>
Crash at RenderStyle::inheritFrom reported by fuzzer
https://bugs.webkit.org/show_bug.cgi?id=112322
Reviewed by Hajime Morrita.
pseudoStyleForElement should check whether a parent style of a given
element is available or not. If a given element's parent is
an insertion point whose reset-style-inheritance is true, the parent
style is not available. Need to use defaultStyleForElement.
Test: fast/dom/shadow/insertion-point-resetStyleInheritance-with-pseudo-element-crash.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::styleForElement):
Removed cloneForParent. Instead, made m_state own parentStyle, i.e.
changed m_parentStyle in class State from RenderStyle* to
RefPtr<RenderStyle>.
(WebCore::StyleResolver::pseudoStyleForElement):
If an actual parent style of a given element is not available, use
defaultStyleForElement. This is the same logic as styleForElement.
* css/StyleResolver.h:
(WebCore::StyleResolver::State::setParentStyle):
Modified the parameter to use PassRefPtr<RenderStyle>.
(WebCore::StyleResolver::State::parentStyle):
(State):
2013-03-15 Mihnea Ovidenie <mihnea@adobe.com>
[CSS Regions] Selecting text inside an empty region causes selection outside the region area
https://bugs.webkit.org/show_bug.cgi?id=107752
Reviewed by David Hyatt.
When performing hit testing inside a flow thread, we need to make sure that
we actually hit some node from the flow thread content and not the flow thread
itself (which would set the hit test result node to the document node, allowing
wrong selection of content outside the empty region).
Test: fast/regions/selecting-text-in-empty-region.html
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::hitTestFlowThreadPortionInRegion):
2013-03-15 Luiz Agostini <luiz.agostini@nokia.com>
[Texmap] layerRect should be used instead of contents rect for scrollable layer hit tests.
https://bugs.webkit.org/show_bug.cgi?id=112413
Reviewed by Noam Rosenthal.
Using layerRect() instead of m_state.contentsRect for scrollable layer hit test.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::scrollableLayerHitTestCondition):
2013-03-14 Dominic Cooney <dominicc@chromium.org>
Redundant if statement in RenderTextControlSingleLine::layout should be removed
https://bugs.webkit.org/show_bug.cgi?id=112406
Reviewed by Andreas Kling.
Covered by existing tests added in r145239.
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout):
2013-03-14 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145864.
http://trac.webkit.org/changeset/145864
https://bugs.webkit.org/show_bug.cgi?id=112408
should fix XMLDocumentParser instead of CSSDefaultStyleSheet
(Requested by tasak on #webkit).
* css/CSSDefaultStyleSheets.cpp:
(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
2013-03-14 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [DataGrid] Specify columns with array of descriptors.
https://bugs.webkit.org/show_bug.cgi?id=112338
Reviewed by Pavel Feldman.
Currently columns are specified by Object that maps
column identifiers to column descriptors. Iteration order over
Object keys is not guaranteed.
Array should be used to specify column order.
* inspector/front-end/DataGrid.js: Change consrtructor parameter type.
* inspector/front-end/ApplicationCacheItemsView.js: Adopt changes.
* inspector/front-end/CPUProfileView.js: Ditto.
* inspector/front-end/CSSSelectorProfileView.js: Ditto.
* inspector/front-end/CanvasProfileView.js: Ditto.
* inspector/front-end/CookieItemsView.js: Ditto.
* inspector/front-end/CookiesTable.js: Ditto.
* inspector/front-end/DOMStorageItemsView.js: Ditto.
* inspector/front-end/DirectoryContentView.js: Ditto.
* inspector/front-end/HeapSnapshot.js: Ditto.
* inspector/front-end/HeapSnapshotDataGrids.js: Ditto.
* inspector/front-end/IndexedDBViews.js: Ditto.
* inspector/front-end/NativeMemorySnapshotView.js: Ditto.
* inspector/front-end/NetworkPanel.js: Ditto.
* inspector/front-end/ResourceWebSocketFrameView.js: Ditto.
2013-03-14 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. Support scrolling by dragging.
https://bugs.webkit.org/show_bug.cgi?id=112346
Reviewed by Yury Semikhatsky.
Drag hander was added. It seems that simple repaint works well.
When the user starts dragging we hide the popover, change offset
and do update for the new canvas image.
Drive by change: Due to new way of scrolling the canvas I changed
the behaiviour of the wheel events. Now wheel scrolls if Shift key pressed
and zooms if not.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart):
(WebInspector.FlameChart.prototype._startCanvasDragging):
(WebInspector.FlameChart.prototype._canvasDragging):
(WebInspector.FlameChart.prototype._endCanvasDragging):
(WebInspector.FlameChart.prototype._onMouseWheel):
2013-03-14 Hayato Ito <hayato@chromium.org>
[Shadow Dom]: Non Bubbling events in ShadowDOM dispatch in an incorrect order
https://bugs.webkit.org/show_bug.cgi?id=112214
Reviewed by Dimitri Glazkov.
Fix the order of event dispatching for Shadow DOM.
So far, an event whose event phase should be set to AT_TARGET,
e.g. event at shadow hosts, is dispatched in bubbling phase in the
whole event path. This patch fixed the order of event dispatching
so that an event whose event phase must be set to AT_TARGET phase
is dispatched in capturing phase rather than bubbling phase.
The spec is here:
https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#event-dispatch
5.5 Event Dispatch says:
- When capturing, which entails processing step 3 of the event
dispatch algorithm, the Event eventPhase attribute must return
AT_TARGET if the relative target is same as the node on which
event listeners are invoked
- When bubbling, which entails
processing step 6 of the event dispatch algorithm, the event
listeners must not be invoked on a node if it is the same as its
relative target
No new tests. Update existing layout tests.
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEventAtCapturing):
(WebCore::EventDispatcher::dispatchEventAtBubbling):
2013-03-14 Shezan Baig <sbaig1@bloomberg.net>
Backspace/delete at start of table cell shouldn't step out of cell
https://bugs.webkit.org/show_bug.cgi?id=35372
Reviewed by Ryosuke Niwa.
Make Delete and ForwardDelete commands be no-ops if we are at the first
position or last position of a table cell respectively.
Tests: editing/deleting/backspace-at-table-cell-beginning.html
editing/deleting/forward-delete-at-table-cell-ending.html
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::deleteKeyPressed):
(WebCore::TypingCommand::forwardDeleteKeyPressed):
2013-03-14 Xidorn Quan <quanxunzhen@gmail.com>
Clickable area is incorrect for elements with border-radius
https://bugs.webkit.org/show_bug.cgi?id=95373
Reviewed by Simon Fraser.
As RenderBlock doesn't see rounded rect which comes from border-radius
in nodeAtPoint, the rounded corner seems to have an 'invisible' square
box which catches hits. So we added check on whether hitTestPoint also
intersects the rounded rect when hasBorderRadius is set.
This patch is based on Takashi Sakamoto's work in
https://bugs.webkit.org/show_bug.cgi?id=95373
Test: fast/borders/border-radius-position.html
* platform/graphics/FloatQuad.cpp:
(WebCore):
(WebCore::lineIntersectsCircle):
(WebCore::FloatQuad::intersectsCircle):
(WebCore::FloatQuad::intersectsEllipse):
* platform/graphics/FloatQuad.h:
(FloatQuad):
* platform/graphics/RoundedRect.cpp:
(WebCore::RoundedRect::intersectsQuad):
(WebCore):
* platform/graphics/RoundedRect.h:
(RoundedRect):
* rendering/HitTestLocation.cpp:
(WebCore::HitTestLocation::intersects):
(WebCore):
* rendering/HitTestLocation.h:
(HitTestLocation):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::nodeAtPoint):
2013-03-14 Chris Fleizach <cfleizach@apple.com>
AX: Crash when removing aria-menu item from DOM
https://bugs.webkit.org/show_bug.cgi?id=112396
Reviewed by Tim Horton.
Prevent nil access to items in the ARIA menu flow when deleting
objects from the DOM.
Test: accessibility/menu-item-crash.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::siblingWithAriaRole):
(WebCore::AccessibilityNodeObject::menuButtonForMenu):
2013-03-14 Hayato Ito <hayato@chromium.org>
[Shadow]: left side of ::-webkit-distributed selector not working as expected
https://bugs.webkit.org/show_bug.cgi?id=110825
Reviewed by Dimitri Glazkov.
Make functional pseudo distributed elements work even when a left side element has specifiers.
Test: fast/dom/shadow/distributed-pseudo-element-specifiers-in-left-side.html
* css/CSSParser.cpp:
(WebCore::CSSParser::rewriteSpecifiersWithNamespaceIfNeeded):
Make it call rewriteSpecifiersForShadowDistributed() if required.
(WebCore::CSSParser::rewriteSpecifiersWithElementName):
Updated so that it can generate a correct chain of
CSSParserSelectors even when '::distributed()' is used with an
element, which might be empty, with specifiers.
e.g. When parsing a selector of 'content.content-class::-webkit-distributed(div)', the following happens:
1. rewriteSpecifiersWithElementName(...) is called with:
elementName is: "content"
specifiers is: [.content-class] -> [::-webkit-distributed]
2. Looking for a distributed pseudo element in the specifiers and
found it at the end of tagHistory chain of the specifiers.
3. The result of calling specifiers->prependTagSelector(tag) is:
specifiers is: [content] -> [.content-class] -> [::-webkit-distributed]
4. rewriteSpecifiersForShadowDistributed() is called with:
specifiers is: [content] -> [.content-class] -> [::-webkit-distributed]
distributedPseudoElementSelector is: [::-webkit-distributed]
5. An argumentSelector of the distributedPseudoElementSelector is:
argumentSelector is: [div]
6. Remove the distributed pseudo element selector from the specifiers.
specifiers is: [content] -> [.content-class]
Note that one pseudo-element may appear per complex selector
and the pseudo-element may appear only if the subject of the
selector is the last compound selector in the selector.
7. Append specifiers to the end of the argument selector with a relation of ShadowDistributed:
argumentSelector is: [div] -(ShadowDistributed)-> [content] -> [.content-class]
8. Returns the argument selector as a return value.
(WebCore::CSSParser::rewriteSpecifiersForShadowDistributed): As explained.
* css/CSSParserValues.cpp:
(WebCore):
(WebCore::CSSParserSelector::findDistributedPseudoElementSelector):
* css/CSSParserValues.h:
(CSSParserSelector):
(WebCore::CSSParserSelector::clearTagHistory):
2013-03-14 Takashi Sakamoto <tasak@google.com>
Crash at CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement reported by fuzzer
https://bugs.webkit.org/show_bug.cgi?id=112328
Reviewed by Dimitri Glazkov.
ensureDefaultStyleSheets should check whether page() is null or not.
Test: fast/css/ensure-default-style-sheets-crash.xhtml
* css/CSSDefaultStyleSheets.cpp:
(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
2013-03-14 Brandon Jones <bajones@google.com>
Check to ensure MultisampleRenderbuffer creation succeeds
https://bugs.webkit.org/show_bug.cgi?id=111780
Reviewed by Kenneth Russell.
On OSX systems using AMD graphics chips the allocation of large
Multisample Renderbuffers in Chromium would fail without any indication
of failure. Attempting to draw to the buffer resulted in garbage being
rendered onscreen. This could be reproduced by opening a full-page
WebGL app and pressing (Command + "-") several times. This patch adds an
additional check during DrawingBuffer resize to verify that the resized
buffer is valid.
* platform/graphics/gpu/DrawingBuffer.cpp:
(WebCore):
(WebCore::DrawingBuffer::checkBufferIntegrity):
(WebCore::DrawingBuffer::reset):
* platform/graphics/gpu/DrawingBuffer.h:
(DrawingBuffer):
2013-03-14 Enrica Casucci <enrica@apple.com>
Character orientation should follow UTR50 specs for vertical layout.
https://bugs.webkit.org/show_bug.cgi?id=112213
<rdar://problem/12880943>
Reviewed by Ryosuke Niwa.
platform/mac/fast/text/vertical-no-sideways.html: Modified to cover samples
of the additional character ranges that should not be rotated in vertical layout.
Added pixel results.
This patch modifies shouldIgnoreRotation to include all the characters that
should not be rotated sideways in vertical layout according to the UTR50 draft 6
specifications. It also fixes rotation for Emojii.
* platform/graphics/FontFastPath.cpp:
(WebCore::shouldIgnoreRotation):
(WebCore::isInRange): Added.
* platform/graphics/mac/FontMac.mm:
(WebCore::showGlyphsWithAdvances): Adds the proper transforms to ensure
Emojii also are drawn correctly upright.
2013-03-14 Manuel Rego Casasnovas <rego@igalia.com>
Add selectTrailingWhitespaceEnabled setting to WebCore::Page
https://bugs.webkit.org/show_bug.cgi?id=109404
Reviewed by Tony Chang.
Covered by
editing/selection/doubleclick-inline-first-last-contenteditable.html.
* page/Settings.cpp:
(WebCore): Configure default value for smartInsertDeleteEnabled and
selectTrailingWhitespaceEnabled seetings as they are different in
Chromium port depending on the OS.
* page/Settings.in: Add new setting.
2013-03-14 Robert Flack <flackr@chromium.org>
[chromium] Short scrollbar has empty track rect even when buttons have no size.
https://bugs.webkit.org/show_bug.cgi?id=102580
Reviewed by James Robinson.
When computing the scrollbar track rect, don't assume the button's height is the track width.
Test: platform/chromium/scrollbars/short-scrollbar.html
Note however that this doesn't expose the bug on any tested platforms and mock scrollbars
don't use ScrollbarThemeChromium.cpp. Manually running this test on linux chromiumos will
show the now present scrollbar track and thumb.
* platform/chromium/ScrollbarThemeChromium.cpp:
(WebCore::ScrollbarThemeChromium::trackRect):
2013-03-14 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: Show syntax highlight for application/javascript in Resource Preview tab
https://bugs.webkit.org/show_bug.cgi?id=112355
Reviewed by Pavel Feldman.
No new tests.
Return canonical mimeType in requestContent method of
NetworkRequest.js
* inspector/front-end/NetworkRequest.js:
(WebInspector.NetworkRequest.prototype.requestContent):
2013-03-14 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
[EFL] Use CROSS_PLATFORM_CONTEXT_MENU
https://bugs.webkit.org/show_bug.cgi?id=111877
Reviewed by Caio Marcelo de Oliveira Filho.
Now EFL uses the CROSS_PLATFORM_CONTEXT_MENUS
USE flag. This flag provides a full cross-platform
representation of a ContextMenu and a ContextMenuItem.
The embedder can then decide how to show this and neither
WebCore nor WebCore/platform need to know any platform
specific code about the menus, even though they could.
No new tests needed, no behavior changes.
* platform/ContextMenu.h:
(ContextMenu):
* platform/ContextMenuItem.h:
(WebCore):
* platform/PlatformMenuDescription.h:
(WebCore):
* platform/efl/ContextMenuEfl.cpp:
(WebCore::ContextMenu::ContextMenu):
(WebCore::ContextMenu::getContextMenuItems):
(WebCore::ContextMenu::createPlatformContextMenuFromItems):
(WebCore::ContextMenu::platformContextMenu):
* platform/efl/ContextMenuItemEfl.cpp:
(WebCore::ContextMenuItem::platformContextMenuItem):
2013-03-14 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] resolveContentBasedTrackSizingFunctions should iterate over the grid items not the grid tracks
https://bugs.webkit.org/show_bug.cgi?id=112299
Reviewed by Tony Chang.
Our initial implementation would iterate over the grid tracks. This was equivalent as no items were spanning but
once grid items spans, they start to contribute to several grid tracks differently. This change aligns our code
with what the specification does.
One upside of doing a grid items' iteration is that the complexity should be better in all cases as we don't do
a full grid walking (which is potentially quadratic), only some extra grid tracks' iteration (which are linear).
Refactoring, there should be no change in behavior.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
Moved the |availableLogicalSpace| update into resolveContentBasedTrackSizingFunctions. This simplifies and consolidate our handling.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
Updated the core loop to iterator over grid items and not grid tracks. This idea is that now resolveContentBasedTrackSizingFunctionsForItems
uses a filtering function to only process the appropriate grid tracks.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
Updated to filter the grid tracks here (this matches the |TracksForGrowth| spec logic that is merely a filtering function).
* rendering/RenderGrid.h:
Added a new typedef and updated resolveContentBasedTrackSizingFunctionsForItems to use it.
* rendering/style/GridTrackSize.h:
(WebCore::GridTrackSize::hasMinOrMaxContentMinTrackBreadth):
(WebCore::GridTrackSize::hasMaxContentMinTrackBreadth):
(WebCore::GridTrackSize::hasMinOrMaxContentMaxTrackBreadth):
(WebCore::GridTrackSize::hasMaxContentMaxTrackBreadth):
Added the following filtering function, which matches the values from |TracksForGrowth| in the specification.
2013-03-14 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] Gradient: don't use the default setPlatformGradientSpaceTransform()
https://bugs.webkit.org/show_bug.cgi?id=112246
Reviewed by Xan Lopez.
BlackBerry has its own implementation.
* platform/graphics/Gradient.cpp:
(WebCore):
2013-03-14 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GStreamer] simulateAudioInterruption needs to be guarded by ENABLE(VIDEO)"
https://bugs.webkit.org/show_bug.cgi?id=112358
Guarded with ENABLE(VIDEO) to prevent problems when it is not
enabled.
Reviewed by Philippe Normand.
2013-03-12 Florin Malita <fmalita@chromium.org>
Tighten up the type bounds for SVGPropertyInfo callback parameters
https://bugs.webkit.org/show_bug.cgi?id=111786
Reviewed by Philip Rogers.
Update SVGPropertyInfo's callbacks to pass SVGElement* parameters instead of void*. This
allows us to perform some ASSERT-based type checking before downcasting in implementors.
To avoid adding virtual methods unused in release builds to the base class (and overrides
in descendants), for subtypes lacking polymorphic type markers (isXXX()) the check is
performed using hasTagName() instead.
The patch is also removing the lookupOrCreateWrapperForAnimatedProperty() SVGPropertyInfo
callback for SVGViewSpec properties, because
a) it doesn't appear to be reachable (SVGViewSpec doesn't have a backing element and
thus cannot have an associated animator)
b) it interferes with the parameter specialization described above (SVGViewSpec does not
inherit from SVGElement)
No new tests, refactoring only.
* svg/SVGElement.cpp:
(WebCore::SVGElement::synchronizeRequiredFeatures):
(WebCore::SVGElement::synchronizeRequiredExtensions):
(WebCore::SVGElement::synchronizeSystemLanguage):
* svg/SVGElement.h:
(SVGElement):
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::synchronizeOrientType):
(WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper):
* svg/SVGMarkerElement.h:
(SVGMarkerElement):
(WebCore::toSVGMarkerElement):
(WebCore):
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::lookupOrCreateDWrapper):
(WebCore::SVGPathElement::synchronizeD):
* svg/SVGPathElement.h:
(SVGPathElement):
(WebCore::toSVGPathElement):
(WebCore):
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::synchronizePoints):
(WebCore::SVGPolyElement::lookupOrCreatePointsWrapper):
* svg/SVGPolyElement.h:
(SVGPolyElement):
(WebCore::toSVGPolyElement):
(WebCore):
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::synchronizeTextLength):
(WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper):
* svg/SVGTextContentElement.h:
(SVGTextContentElement):
(WebCore::toSVGTextContentElement):
(WebCore):
Change SVGPropertyInfo callback params to SVGElement* and replace static casts with
conversion wrappers. Implement conversion wrappers where needed.
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::viewBoxPropertyInfo):
(WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo):
(WebCore::SVGViewSpec::transformPropertyInfo):
(WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper):
(WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper):
(WebCore::SVGViewSpec::lookupOrCreateTransformWrapper):
* svg/SVGViewSpec.h:
(SVGViewSpec):
Remove SVGPropertyInfo-based lookupOrCreate* callbacks and updated the methods' parameters
to SVGViewSpec*. Remove now-unneeded casts.
* svg/properties/SVGAnimatedPropertyMacros.h:
(WebCore):
* svg/properties/SVGPropertyInfo.h:
(WebCore):
(SVGPropertyInfo):
Update callback declarations.
2013-03-14 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
Move platform-specific typedefs to PlatformMenuDescription.h
https://bugs.webkit.org/show_bug.cgi?id=111876
Reviewed by Caio Marcelo de Oliveira Filho.
Cross platform Context Menu platform-specific typedefs fit better
in PlatformMenuDescription.h and should not be part of the classes
ContextMenu and ContextMenuItem. We have also renamed them to
PlatformContextMenu and PlatformContextMenuItem instead of NativeMenu
and NativeMenuItem respectively.
No new tests needed since no behavior has changed.
* platform/ContextMenu.h:
(ContextMenu):
* platform/ContextMenuItem.h:
(ContextMenuItem):
* platform/PlatformMenuDescription.h:
(WebCore):
* platform/efl/ContextMenuEfl.cpp:
(WebCore::ContextMenu::createPlatformContextMenuFromItems):
(WebCore::ContextMenu::platformContextMenu):
* platform/efl/ContextMenuItemEfl.cpp:
(WebCore::ContextMenuItem::platformContextMenuItem):
* platform/win/ContextMenuItemWin.cpp:
(WebCore):
(WebCore::ContextMenuItem::platformContextMenuItem):
* platform/win/ContextMenuWin.cpp:
(WebCore::ContextMenu::createPlatformContextMenuFromItems):
(WebCore::ContextMenu::platformContextMenu):
2013-03-11 Jer Noble <jer.noble@apple.com>
Crash in DumpRenderTree at com.apple.WebCore: WebCore::CaptionUserPreferences::captionPreferencesChanged + 185
https://bugs.webkit.org/show_bug.cgi?id=112051
Reviewed by Eric Carlson.
No new tests; fixes a crash during media/video-controls-captions-trackmenu.html.
Instead of relying on a registration system which can fail when an element's document does not have a page,
Elements will register for captionPreferencesChanged() notifications directly with their owning Document.
CaptionUserPreferences, in turn, will notify all Documents in its PageGroup, rather than only directly
registered listeners.
* dom/Document.cpp:
(WebCore::Document::registerForCaptionPreferencesChangedCallbacks): Added. Notify the CaptionUserPreferences that someone
is interested in captionPreferencesChanged notfications.
(WebCore::Document::unregisterForCaptionPreferencesChangedCallbacks): Added.
(WebCore::Document::captionPreferencesChanged): Added. Pass to all registered elements.
* dom/Document.h:
* dom/Element.h:
(WebCore::Element::captionPreferencesChanged): Added. Empty; intended
to be overridden by subclasses.
* history/CachedPage.cpp:
(WebCore::CachedPage::CachedPage): Initialize m_needsCaptionPreferenceChanged member.
(WebCore::CachedPage::restore): Call captionPreferencesChanged() if necessary.
* history/CachedPage.h:
(WebCore::CachedPage::markForCaptionPreferencesChanged): Set the m_needsCaptionPreferenceChanged member.
* history/PageCache.cpp:
(WebCore::PageCache::markPagesForCaptionPreferencesChanged): Pass to every CachedPage.
* history/PageCache.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Register with the Document.
(WebCore::HTMLMediaElement::~HTMLMediaElement): Unregister with same.
(WebCore::HTMLMediaElement::attach): Remove previous registration call.
* html/HTMLMediaElement.h:
* page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::captionPreferencesChanged): Pass to the
PageGroup.
* page/CaptionUserPreferences.h:
(WebCore::CaptionUserPreferences::setInterestedInCaptionPreferenceChanges):
Empty; intended to be overridden by subclasses.
* page/CaptionUserPreferencesMac.h:
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::setInterestedInCaptionPreferenceChanges):
Renamed from registerForPreferencesChangedCallbacks().
(WebCore::CaptionUserPreferencesMac::captionPreferencesChanged):
Replace call to havePreferenceChangeListeners() with m_listeningForPreferenceChanges.
* page/Page.cpp:
(WebCore::Page::captionPreferencesChanged):
Pass to every contained Document.
* page/Page.h:
* page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::captionPreferencesChanged): Pass to the PageGroup.
* page/CaptionUserPreferences.h:
* page/PageGroup.cpp:
(WebCore::PageGroup::captionPreferencesChanged): Pass to every page, as well as pages in the PageCache.
* page/PageGroup.h:
2013-03-14 David Grogan <dgrogan@chromium.org>
IndexedDB: Histogram leveldb open errors.
https://bugs.webkit.org/show_bug.cgi?id=112307
Reviewed by Tony Chang.
No new tests, I don't know if there's a good way to test histograms.
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::LevelDBDatabase::open):
2013-03-14 Robert Hogan <robert@webkit.org>
REGRESSION(r145305) Performance: 1.3% mac-release-10.6-webkit-latest/intl2/times/t change after rev 145300
https://bugs.webkit.org/show_bug.cgi?id=112125
Reviewed by Julien Chaffraix.
When detecting cases where a loaded image may need to move up into the padding created by the row's baseline
we don't need to do anything if the row doesn't have a baseline yet.
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::layout):
2013-03-14 Brady Eidson <beidson@apple.com>
Add a mode to ResourceLoader that takes SharedBuffers instead of raw pointers and lengths.
<rdar://problem/13416953> and https://bugs.webkit.org/show_bug.cgi?id=112310
Reviewed by Andy Estes.
No new tests (No independently testable change in behavior).
Many of the tested platforms deliver data buffers to their ResourceHandles from objects
that encapsulate a data buffer such as NSData (Mac), CFDataRef (CF), or QByteArray (qt).
If those platforms also augmented SharedBuffer to wrap their native object (which Mac/CF do)
and there existed ResourceLoader callbacks to take that SharedBuffer instead of char* + length,
then many resource loads could avoid a useless copy.
At least on Mac, there are some extremely important behind-the-scenes optimizations for NS/CFData
that will be a more important win than simply avoiding a copy.
This patch adds that SharedBuffer-based callback with the hope that all platforms could find a
way to use a buffer-encapsulating object going forward, and we could therefore deprecate the
char* + length version of didReceiveData.
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::didReceiveBuffer): Add a didReceiveBuffer callback that takes
a SharedBuffer object. The default implementation passes raw bytes + length to didReceiveData.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::addDataOrBuffer): Replacing addData(), optionally adding the data from
either a data+length or SharedBuffer
(WebCore::ResourceLoader::didReceiveData): Pipe to didReceiveDataOrBuffer.
(WebCore::ResourceLoader::didReceiveBuffer): Pipe to didReceiveDataOrBuffer.
(WebCore::ResourceLoader::didReceiveDataOrBuffer): Single chokepoint for receiving data.
* loader/ResourceLoader.h: Add OVERRIDE to all of the ResourceHandleClient methods to help
catch future mistakes. Remove "virtual" from methods that didn't need it. Make "addData" into
"addDataOrBuffer" and make it private.
* loader/NetscapePlugInStreamLoader.cpp:
(WebCore::NetscapePlugInStreamLoader::didReceiveData): Pipe to didReceiveDataOrBuffer.
(WebCore::NetscapePlugInStreamLoader::didReceiveBuffer): Pipe to didReceiveDataOrBuffer.
(WebCore::NetscapePlugInStreamLoader::didReceiveDataOrBuffer): Single chokepoint for receiving data.
* loader/NetscapePlugInStreamLoader.h:
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveData): Pipe to didReceiveDataOrBuffer.
(WebCore::SubresourceLoader::didReceiveBuffer): Pipe to didReceiveDataOrBuffer.
(WebCore::SubresourceLoader::didReceiveDataOrBuffer): Single chokepoint for receiving data. Also,
rely on ResourceLoader's base implementation for notifying the ResourceLoadNotifier.
* loader/SubresourceLoader.h:
* loader/ResourceBuffer.cpp:
(WebCore::ResourceBuffer::append): Add a mode that appends a SharedBuffer.
* loader/ResourceBuffer.h:
* platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::maybeTransferPlatformData): Fix a bug where appending data to a CFData-backed
SharedBuffer would re-enter maybeTransferPlatformData and blow out the stack.
* platform/network/mac/ResourceHandleMac.mm:
(-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]): Send a wrapped NSData
to didReceiveBuffer() instead of sending its char* and length to didReceiveData()
2013-03-14 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: nuke bottom up CPU profile calculation on backend
https://bugs.webkit.org/show_bug.cgi?id=112351
Reviewed by Pavel Feldman.
Removed code that builds bottom-up CPU profile on the inspector
backend. Bottom-up view is already built on the front-end from
the top-down profile data.
* bindings/js/ScriptProfile.cpp:
* bindings/js/ScriptProfile.h:
(ScriptProfile):
* bindings/v8/ScriptProfile.cpp:
(WebCore::ScriptProfile::buildInspectorObjectForHead):
* bindings/v8/ScriptProfile.h:
(ScriptProfile):
* inspector/Inspector.json:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::getCPUProfile):
2013-03-14 Abhishek Arya <inferno@chromium.org>
Replace static_casts with to* helper functions.
https://bugs.webkit.org/show_bug.cgi?id=112296
Reviewed by Kentaro Hara.
to* helper functions are preferred over static_cast calls since they
help to catch bad casts easily on the testing infrastructure.
* accessibility/AXObjectCache.cpp:
(WebCore::nodeHasRole):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::hasAttribute):
(WebCore::AccessibilityObject::getAttribute):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::anchorElement):
(WebCore::AccessibilityRenderObject::helpText):
(WebCore::AccessibilityRenderObject::checkboxOrRadioRect):
(WebCore::AccessibilityRenderObject::titleUIElement):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::accessKey):
(WebCore::AccessibilityRenderObject::setElementAttributeValue):
(WebCore::AccessibilityRenderObject::setValue):
(WebCore::AccessibilityRenderObject::activeDescendant):
(WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
(WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
(WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
(WebCore::AccessibilityRenderObject::setAccessibleName):
(WebCore::AccessibilityRenderObject::stringRoleForMSAA):
* bindings/gobject/WebKitDOMBinding.cpp:
(WebKit::createWrapper):
* bindings/js/JSClipboardCustom.cpp:
(WebCore::JSClipboard::setDragImage):
* bindings/js/JSElementCustom.cpp:
(WebCore::toJSNewlyCreated):
* bindings/js/JSNodeCustom.cpp:
(WebCore::createWrapperInline):
* bindings/v8/custom/V8ClipboardCustom.cpp:
(WebCore::V8Clipboard::setDragImageMethodCustom):
* bindings/v8/custom/V8ElementCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8NodeCustom.cpp:
(WebCore::wrap):
* dom/Document.cpp:
(WebCore::Document::importNode):
(WebCore::Document::recalcStyle):
(WebCore::Document::setFocusedNode):
(WebCore::Document::updateFocusAppearanceTimerFired):
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
* dom/Element.cpp:
(WebCore::Element::offsetParent):
(WebCore::Element::boundsInRootViewSpace):
(WebCore::Element::getBoundingClientRect):
(WebCore::Element::recalcStyle):
(WebCore::Element::computeInheritedLanguage):
(WebCore::Element::lastElementChild):
* dom/LiveNodeList.cpp:
(WebCore::LiveNodeList::namedItem):
* dom/Node.cpp:
(WebCore::Node::dumpStatistics):
(WebCore::Node::normalize):
(WebCore::Node::rootEditableElement):
(WebCore::Node::isDefaultNamespace):
(WebCore::Node::ancestorElement):
(WebCore::appendAttributeDesc):
* dom/Position.cpp:
(WebCore::Position::element):
* dom/Range.cpp:
(WebCore::Range::getBorderAndTextQuads):
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::queryFirst):
(WebCore::SelectorDataList::execute):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::recalcStyle):
* dom/StaticHashSetNodeList.cpp:
(WebCore::StaticHashSetNodeList::namedItem):
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
(WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
(WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):
* editing/Editor.cpp:
(WebCore::Editor::applyEditingStyleToBodyElement):
* editing/FrameSelection.cpp:
(WebCore::removingNodeRemovesPosition):
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::outdentParagraph):
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::entityMaskForText):
(WebCore::MarkupAccumulator::appendStartMarkup):
(WebCore::MarkupAccumulator::appendEndMarkup):
* editing/ModifySelectionListLevel.cpp:
(WebCore::IncreaseSelectionListLevelCommand::doApply):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::haveSameTagName):
(WebCore::handleStyleSpansBeforeInsertion):
(WebCore::ReplaceSelectionCommand::doApply):
* editing/SplitTextNodeContainingElementCommand.cpp:
(WebCore::SplitTextNodeContainingElementCommand::doApply):
* editing/TextIterator.cpp:
(WebCore::TextIterator::advance):
* editing/htmlediting.cpp:
(WebCore::unsplittableElementForPosition):
(WebCore::enclosingTableCell):
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::wrapWithNode):
(WebCore::createMarkupInternal):
(WebCore::createFragmentFromMarkupWithContext):
(WebCore::isPlainTextMarkup):
(WebCore::createFragmentFromText):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::insertAdjacentElement):
(WebCore::contextElementForInsertion):
* html/HTMLFormControlElement.cpp:
(WebCore::focusPostAttach):
(WebCore::updateFromElementCallback):
* html/HTMLFormElement.cpp:
(WebCore::submitElementFromEvent):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::updateDocNamedItem):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::updateSnapshotInfo):
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::addRange):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::closestFormAncestor):
* html/shadow/MediaControlElementTypes.cpp:
(WebCore::toParentMediaElement):
* html/shadow/TextFieldDecorationElement.h:
(WebCore::toTextFieldDecorationElement):
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::createDigest):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForNode):
(WebCore::InspectorDOMAgent::didInvalidateStyleAttr):
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::inlineStyleSheetText):
* mathml/MathMLElement.h:
(WebCore::toMathMLElement):
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::populate):
* page/DragController.cpp:
(WebCore::elementUnderMouse):
(WebCore::DragController::startDrag):
* page/FocusController.cpp:
(WebCore::FocusController::advanceFocusInDocumentOrder):
* page/Frame.cpp:
(WebCore::Frame::searchForLabelsBeforeElement):
* page/FrameView.cpp:
(WebCore::FrameView::updateWidget):
* page/SpatialNavigation.cpp:
(WebCore::rectToAbsoluteCoordinates):
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::sendTransitionEvent):
* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::KeyframeAnimation):
(WebCore::KeyframeAnimation::sendAnimationEvent):
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::paintMediaFullscreenButton):
(WebCore::RenderThemeEfl::paintMediaMuteButton):
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::buildReferenceFilter):
* rendering/svg/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::calcViewport):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::getElementById):
* svg/SVGUseElement.cpp:
(WebCore::isDisallowedElement):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::buildPendingResource):
* xml/XPathStep.cpp:
(WebCore::XPath::nodeMatchesBasicTest):
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::XMLDocumentParser::parseEndElement):
2013-03-14 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: keep deprecated function stubs in InspectorFrontendHost.
https://bugs.webkit.org/show_bug.cgi?id=112347
Reviewed by Vsevolod Vlasov.
In order to open older front-ends in newer hosts, we need to keep stubs
for deprecated functions. Longer term, we need to wrap all calls to InspectorFrontendHost in the front-end.
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::canInspectWorkers):
(WebCore):
(WebCore::InspectorFrontendHost::hiddenPanels):
* inspector/InspectorFrontendHost.h:
(InspectorFrontendHost):
* inspector/InspectorFrontendHost.idl:
2013-03-14 Vladislav Kaznacheev <kaznacheev@chromium.org>
Fixed styles pane visibility when docked to right.
https://bugs.webkit.org/show_bug.cgi?id=112348
Reviewed by Pavel Feldman.
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype._splitVertically):
* inspector/front-end/SidebarPane.js:
(WebInspector.SidebarPane.prototype.setExpandCallback):
(WebInspector.SidebarPaneTitle):
(WebInspector.SidebarTabbedPane.prototype.addPane):
2013-03-14 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] GraphicsContext3D: implement ImageExtractor::extractImage()
https://bugs.webkit.org/show_bug.cgi?id=112242
Reviewed by Rob Buis.
In r136282 GraphicsContext3D::getImageData() was refactored in a
new class called ImageExtractor.
This patch implements the necessary changes for the BlackBerry
port, which is still using the old API.
* platform/graphics/GraphicsContext3D.h:
(ImageExtractor):
* platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
(WebCore):
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
2013-03-14 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GStreamer] Stopping playback of html5 media when receiving a higher priority audio event needs implementation
https://bugs.webkit.org/show_bug.cgi?id=91611
React to REQUEST_STATE GStreamer message to stop the pipeline when
a higher priority stream is played. When this happens, states are
updated accordingly.
A method was added in the MediaPlayer class and internals to allow
the the test runner to simulate an audio interruption.
Reviewed by Philippe Normand.
Test: media/media-higher-prio-audio-stream.html
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore):
(MediaPlayer):
(WebCore::MediaPlayer::simulateAudioInterruption): New method
delegating an audio interruption to the private backend to
simulate the use-case where an external application needs
exclusive access to the audio device.
* platform/graphics/MediaPlayerPrivate.h:
(MediaPlayerPrivateInterface):
(WebCore::MediaPlayerPrivateInterface::simulateAudioInterruption):
Added default empty method in the common private header.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore):
(WebCore::MediaPlayerPrivateGStreamer::createAudioSink):
(WebCore::setAudioStreamPropertiesCallback): Hooked to child-added
signal on the audio sink, delegates on setAudioStreamProperties.
(WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties):
Sets the audio stream properties.
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
Initializes the new attribute.
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
Disconnects autoaudiosink signal.
(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
Changed logging.
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Reacting to
the REQUEST_STATE message.
(WebCore::MediaPlayerPrivateGStreamer::simulateAudioInterruption):
Added. Injects the REQUEST_STATE message to the pipeline.
(WebCore::MediaPlayerPrivateGStreamer::updateStates): Updating the
playback state if REQUEST_STATE.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(MediaPlayerPrivateGStreamer): Added new method and attribute.
* testing/Internals.h:
* testing/Internals.idl:
* testing/Internals.cpp:
(WebCore):
(WebCore::Internals::simulateAudioInterruption): Added to call the
method to stop the element because of a higher prio stream at the
tests.
2013-03-14 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Add support for tiled shadow blur
https://bugs.webkit.org/show_bug.cgi?id=90082
Reviewed by Noam Rosenthal.
Use the optimized ShadowBlur::drawRectShadow as long as we do not
have a rotating transform. Such a transform would go through the
slow path in ShadowBlur anyway, and would end up using a transformed
TransparencyLayer with an alphaMap which causes scaling artifacts
for us.
Tested by fast/canvas/canvas-scale-fillRect-shadow.html
and fast/canvas/canvas-transforms-fillRect-shadow.html
* platform/graphics/ShadowBlur.cpp:
(WebCore::ShadowBlur::drawInsetShadowWithTiling):
Handle scaling transforms when shadows ignore transforms.
(WebCore::ShadowBlur::drawRectShadowWithTiling):
Ditto.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::fillRect):
2013-03-12 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: do not aggregate non-main thread timeline events, handle them in a generic fashion
https://bugs.webkit.org/show_bug.cgi?id=112172
Reviewed by Vsevolod Vlasov.
- build nested event trees for non-main thread events similar to how it's done on the main thread;
- drop aggregation logic for Rasterize events;
- extract time conversion logic so that it may be reused in TimelineTraceEventProcessor.
* English.lproj/localizedStrings.js: drive-by: drop duplicate line.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::TimelineTimeConverter::reset):
(WebCore):
(WebCore::InspectorTimelineAgent::pushGCEventRecords):
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::appendRecord):
(WebCore::InspectorTimelineAgent::sendEvent):
(WebCore::InspectorTimelineAgent::timestamp):
* inspector/InspectorTimelineAgent.h:
(TimelineTimeConverter):
(WebCore::TimelineTimeConverter::TimelineTimeConverter):
(WebCore::TimelineTimeConverter::fromMonotonicallyIncreasingTime):
(WebCore):
(InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::timeConverter):
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createBackgroundRecord):
(WebCore):
* inspector/TimelineRecordFactory.h:
(TimelineRecordFactory):
* inspector/TimelineTraceEventProcessor.cpp:
(WebCore::TimelineRecordStack::TimelineRecordStack):
(WebCore):
(WebCore::TimelineRecordStack::addScopedRecord):
(WebCore::TimelineRecordStack::closeScopedRecord):
(WebCore::TimelineRecordStack::addInstantRecord):
(WebCore::TimelineRecordStack::isOpenRecordOfType):
(WebCore::TimelineRecordStack::send):
(WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
(WebCore::TimelineTraceEventProcessor::onBeginFrame):
(WebCore::TimelineTraceEventProcessor::onRasterTaskBegin):
(WebCore::TimelineTraceEventProcessor::onRasterTaskEnd):
(WebCore::TimelineTraceEventProcessor::createRecord):
* inspector/TimelineTraceEventProcessor.h:
(TimelineRecordStack):
(WebCore::TimelineRecordStack::Entry::Entry):
(Entry):
(WebCore::TimelineRecordStack::TimelineRecordStack):
(WebCore):
(WebCore::TimelineTraceEventProcessor::TimelineThreadState::TimelineThreadState):
(TimelineThreadState):
(TimelineTraceEventProcessor):
(WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
(WebCore::TimelineTraceEventProcessor::TraceEvent::isNull):
(WebCore::TimelineTraceEventProcessor::threadState):
2013-03-14 Xan Lopez <xlopez@igalia.com>
[GTK] Wrong ASSERT in AudioDestinationGstreamer::stop
https://bugs.webkit.org/show_bug.cgi?id=112344
Reviewed by Philippe Normand.
Correct erroneous ASSERT, we want both member variables to exist.
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestinationGStreamer::stop):
2013-03-14 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. Support scroll and zoom with help of mouse wheel.
https://bugs.webkit.org/show_bug.cgi?id=112337
Reviewed by Yury Semikhatsky.
New member variable _xOffset were introduced.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart):
(WebInspector.FlameChart.prototype._onMouseMove):
(WebInspector.FlameChart.prototype._adjustXOffset):
(WebInspector.FlameChart.prototype._adjustXScale):
(WebInspector.FlameChart.prototype._onMouseWheel):
(WebInspector.FlameChart.prototype._coordinatesToNodeIndex):
(WebInspector.FlameChart.prototype.onResize):
(WebInspector.FlameChart.prototype.draw):
(WebInspector.FlameChart.prototype._scheduleUpdate):
(WebInspector.FlameChart.prototype.update):
2013-03-14 No'am Rosenthal <noam@webkit.org>
[Texmap] Synchronize layers only if the layer has been changed.
https://bugs.webkit.org/show_bug.cgi?id=112095
Reviewed by Allan Sandfeld Jensen.
A regression was introduced in r144787, causing an infinite IPC commitState/renderNextFrame
loop.
This patch fixes this by making sure we only commit layer states that have actual pending
changes.
No new tests, this is an optimization.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
(CoordinatedGraphicsLayerState):
(WebCore::CoordinatedGraphicsLayerState::hasPendingChanges):
2013-03-14 Simon Hausmann <simon.hausmann@digia.com>
[Qt] Improve the handling of mock geolocation, device orientation and motion clients
Reviewed by Tor Arne Vestbø.
The mock versions of these web facing features should be instantiated when
running in DumpRenderTree only. In order for them to work, no extra Qt modules
such as QtLocation are actually needed.
This patch decouples enabling device orientation/motion and geolocation from
the underlying Qt modules and makes them available in developer builds
(!production_build) and backed by mock backends when running in drt.
So if the Qt 5 modules are available, they'll be used (unless drtRun). For
developers the web facing features are always enabled (although requests will
time out) and the mock backends are enabled inside DRT, allowing for the layout
tests to run with less dependencies.
In addition this also enables the mock device motion client, which was
previously never instantiated.
* Target.pri:
* WebCore.pri:
2013-03-14 Allan Sandfeld Jensen <allan.jensen@digia.com>
[TexMap] Painting into area of composited tile not cleared
https://bugs.webkit.org/show_bug.cgi?id=112268
Reviewed by Kenneth Rohde Christiansen.
Clip painting to the area that has been cleared, so we
do not accidentally overpaint other areas.
Can be observed in ManualTests/scrollbars/scrollbars-in-composited-layers.html.
* platform/graphics/texmap/TextureMapperImageBuffer.cpp:
(WebCore::BitmapTextureImageBuffer::updateContents):
2013-03-14 Marja Hölttä <marja@chromium.org>
[V8] Store main world and non-main world templates separately.
https://bugs.webkit.org/show_bug.cgi?id=111724
Reviewed by Jochen Eisinger.
This is needed for generating specialized bindings for the main
world (bug 110874).
No new tests (updated existing bindings tests).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateDomainSafeFunctionGetter):
(GenerateNormalAttrSetter):
(GenerateParametersCheckExpression):
(GenerateParametersCheck):
(GenerateImplementation):
(JSValueToNative):
(CreateCustomSignature):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::Float64ArrayV8Internal::fooMethod):
(WebCore::ConfigureV8Float64ArrayTemplate):
(WebCore::V8Float64Array::GetTemplate):
(WebCore::V8Float64Array::HasInstance):
* bindings/scripts/test/V8/V8Float64Array.h:
(V8Float64Array):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::excitingFunctionMethod):
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
(WebCore::V8TestActiveDOMObject::GetTemplate):
(WebCore::V8TestActiveDOMObject::HasInstance):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(V8TestActiveDOMObject):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::GetTemplate):
(WebCore::V8TestCustomNamedGetter::HasInstance):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(V8TestCustomNamedGetter):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::GetTemplate):
(WebCore::V8TestEventConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(V8TestEventConstructor):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::TestEventTargetV8Internal::dispatchEventMethod):
(WebCore::ConfigureV8TestEventTargetTemplate):
(WebCore::V8TestEventTarget::GetTemplate):
(WebCore::V8TestEventTarget::HasInstance):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(V8TestEventTarget):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::GetTemplate):
(WebCore::V8TestException::HasInstance):
* bindings/scripts/test/V8/V8TestException.h:
(V8TestException):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetter):
(WebCore::TestInterfaceV8Internal::supplementalMethod2Method):
(WebCore::ConfigureV8TestInterfaceTemplate):
(WebCore::V8TestInterface::GetTemplate):
(WebCore::V8TestInterface::HasInstance):
* bindings/scripts/test/V8/V8TestInterface.h:
(V8TestInterface):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::GetTemplate):
(WebCore::V8TestMediaQueryListListener::HasInstance):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(V8TestMediaQueryListListener):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructor::GetTemplate):
(WebCore::V8TestNamedConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(V8TestNamedConstructor):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::GetTemplate):
(WebCore::V8TestNode::HasInstance):
* bindings/scripts/test/V8/V8TestNode.h:
(V8TestNode):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::testObjAttrAttrSetter):
(WebCore::TestObjV8Internal::XMLObjAttrAttrSetter):
(WebCore::TestObjV8Internal::typedArrayAttrAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
(WebCore::TestObjV8Internal::mutablePointAttrSetter):
(WebCore::TestObjV8Internal::immutablePointAttrSetter):
(WebCore::TestObjV8Internal::voidMethodWithArgsMethod):
(WebCore::TestObjV8Internal::longMethodWithArgsMethod):
(WebCore::TestObjV8Internal::objMethodWithArgsMethod):
(WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsMethod):
(WebCore::TestObjV8Internal::overloadedMethod1Method):
(WebCore::TestObjV8Internal::overloadedMethod2Method):
(WebCore::TestObjV8Internal::overloadedMethod8Method):
(WebCore::TestObjV8Internal::overloadedMethodMethod):
(WebCore::TestObjV8Internal::convert1Method):
(WebCore::TestObjV8Internal::convert2Method):
(WebCore::TestObjV8Internal::convert4Method):
(WebCore::TestObjV8Internal::convert5Method):
(WebCore::TestObjV8Internal::variadicNodeMethodMethod):
(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::GetTemplate):
(WebCore::V8TestObj::HasInstance):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::TestOverloadedConstructorsV8Internal::constructor1):
(WebCore::TestOverloadedConstructorsV8Internal::constructor2):
(WebCore::TestOverloadedConstructorsV8Internal::constructor3):
(WebCore::TestOverloadedConstructorsV8Internal::constructor):
(WebCore::V8TestOverloadedConstructors::GetTemplate):
(WebCore::V8TestOverloadedConstructors::HasInstance):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(V8TestOverloadedConstructors):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
(WebCore::V8TestSerializedScriptValueInterface::HasInstance):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(V8TestSerializedScriptValueInterface):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::TestTypedefsV8Internal::funcMethod):
(WebCore::ConfigureV8TestTypedefsTemplate):
(WebCore::V8TestTypedefs::GetTemplate):
(WebCore::V8TestTypedefs::HasInstance):
* bindings/scripts/test/V8/V8TestTypedefs.h:
(V8TestTypedefs):
* bindings/v8/Dictionary.cpp:
(WebCore::Dictionary::get):
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::visitNodeWrappers):
* bindings/v8/SerializedScriptValue.cpp:
* bindings/v8/V8AdaptorFunction.cpp:
(WebCore::V8AdaptorFunction::getTemplate):
* bindings/v8/V8Binding.cpp:
(WebCore::toDOMStringList):
(WebCore::toXPathNSResolver):
* bindings/v8/V8Binding.h:
(WebCore):
(WebCore::toRefPtrNativeArray):
* bindings/v8/V8Collection.cpp:
(WebCore::toOptionsCollectionSetter):
* bindings/v8/V8GCController.cpp:
* bindings/v8/V8NPObject.cpp:
(WebCore::npObjectInvokeImpl):
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::reportMemoryUsage):
(WebCore::V8PerIsolateData::hasPrivateTemplate):
(WebCore::V8PerIsolateData::privateTemplate):
(WebCore::V8PerIsolateData::rawTemplate):
(WebCore::V8PerIsolateData::hasInstance):
* bindings/v8/V8PerIsolateData.h:
(WebCore::V8PerIsolateData::rawTemplateMap):
(V8PerIsolateData):
(WebCore::V8PerIsolateData::templateMap):
* bindings/v8/V8Utilities.cpp:
(WebCore::extractTransferables):
* bindings/v8/custom/V8ArrayBufferViewCustom.h:
(WebCore::constructWebGLArray):
(WebCore::setWebGLArrayHelper):
* bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
(WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
* bindings/v8/custom/V8BlobCustom.cpp:
(WebCore::V8Blob::constructorCustom):
* bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
(WebCore::toCanvasStyle):
* bindings/v8/custom/V8ClipboardCustom.cpp:
(WebCore::V8Clipboard::setDragImageMethodCustom):
* bindings/v8/custom/V8CryptoCustom.cpp:
(WebCore::V8Crypto::getRandomValuesMethodCustom):
* bindings/v8/custom/V8DOMFormDataCustom.cpp:
(WebCore::V8DOMFormData::constructorCustom):
(WebCore::V8DOMFormData::appendMethodCustom):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::V8DataView::constructorCustom):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::evaluateMethodCustom):
* bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
(WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::addMethodCustom):
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
(WebCore::removeElement):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::V8InjectedScriptHost::isHTMLAllCollectionMethodCustom):
(WebCore::V8InjectedScriptHost::typeMethodCustom):
(WebCore::V8InjectedScriptHost::getEventListenersMethodCustom):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::reloadAttrGetterCustom):
(WebCore::V8Location::replaceAttrGetterCustom):
(WebCore::V8Location::assignAttrGetterCustom):
* bindings/v8/custom/V8NodeCustom.cpp:
(WebCore::V8Node::insertBeforeMethodCustom):
(WebCore::V8Node::replaceChildMethodCustom):
(WebCore::V8Node::removeChildMethodCustom):
(WebCore::V8Node::appendChildMethodCustom):
* bindings/v8/custom/V8NodeListCustom.cpp:
(WebCore::V8NodeList::opaqueRootForGC):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toWebGLUniformLocation):
(WebCore::V8WebGLRenderingContext::getAttachedShadersMethodCustom):
(WebCore::V8WebGLRenderingContext::getProgramParameterMethodCustom):
(WebCore::V8WebGLRenderingContext::getShaderParameterMethodCustom):
(WebCore::V8WebGLRenderingContext::getUniformMethodCustom):
(WebCore::vertexAttribAndUniformHelperf):
(WebCore::uniformHelperi):
(WebCore::uniformMatrixHelper):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::isDocumentType):
(WebCore::V8XMLHttpRequest::sendMethodCustom):
2013-03-14 Mike West <mkwst@chromium.org>
Explicitly send only one report via XSSAuditorDelegate.
https://bugs.webkit.org/show_bug.cgi?id=111964
Reviewed by Adam Barth.
This patch pulls the XSSAuditor report generation out into a separate
function in XSSAuditorDelegate::generateViolationReport, and moves the
call to that function into the "have we already notified folks about
violations on this page?" block. This both clarifies the flow in
XSSAuditorDelegate::didBlockScript, and ensures that only one violation
report will be sent per page, which regressed in r145695.
Existing tests verify that reports are generated and sent correctly.
We have no tests for the latter condition: the XSSAuditor tests
currently verify that a report showed up, but they can't verify that
no report appeared without sitting around for a few more than a few
seconds on every run.
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::XSSAuditorDelegate::generateViolationReport):
Pull the report generation logic out to this new function.
(WebCore::XSSAuditorDelegate::didBlockScript):
Move the report generation call into the block that ensures it only
executes for the first violation.
2013-03-14 Sergio Villar Senin <svillar@igalia.com>
Empty list items after drag&drop in contentEditable divs
https://bugs.webkit.org/show_bug.cgi?id=110610
Reviewed by Ryosuke Niwa.
Perform a cleanup after moving operations. This will mainly prune
extra placeholders left by the editing algorithms. Also do not
leave empty <li> when moving them around inside a list element.
Tests: editing/pasteboard/cleanup-on-move.html
editing/pasteboard/drag-list-item.html
* editing/MoveSelectionCommand.cpp:
(WebCore::MoveSelectionCommand::doApply): perform
cleanupAfterDeletion().
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::insertAsListItems): do not
insert an empty list item.
* editing/MoveSelectionCommand.cpp:
(WebCore::MoveSelectionCommand::doApply):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::insertAsListItems):
2013-03-14 Eric Seidel <eric@webkit.org>
Threaded HTML Parser should limit speculation to avoid using too much memory
https://bugs.webkit.org/show_bug.cgi?id=112069
Reviewed by Adam Barth.
This is a speculative fix for memory issues seen in:
https://code.google.com/p/chromium/issues/detail?id=180819
This also fixed https://bugs.webkit.org/show_bug.cgi?id=110546
as a side-effect of simplifying the m_currentChunk handling.
We now tell the background html parser every time we start
a chunk on the main thread (instead of end), which greatly
simplified the checkpoint cleanup code from:
https://trac.webkit.org/changeset/145277
The cost for this is now we have more messages going to the
background thread (and postTask acquires a lock to write to the
message queue). Chromium has more advanced (lock-less) primatives
for message posting, which we'll hopefully add to WebKit in
furture patches.
The outstanding chunks limit has not been tuned. But it makes sense that
we should not keeping infinite speculative tokens around for
large documents with slow-to-load scripts.
* html/parser/BackgroundHTMLInputStream.cpp:
(WebCore::BackgroundHTMLInputStream::BackgroundHTMLInputStream):
(WebCore::BackgroundHTMLInputStream::invalidateCheckpointsBefore):
(WebCore):
(WebCore::BackgroundHTMLInputStream::rewindTo):
* html/parser/BackgroundHTMLInputStream.h:
(BackgroundHTMLInputStream):
(WebCore::BackgroundHTMLInputStream::outstandingCheckpointCount):
(Checkpoint):
(WebCore::BackgroundHTMLInputStream::Checkpoint::isNull):
(WebCore::BackgroundHTMLInputStream::Checkpoint::clear):
* html/parser/BackgroundHTMLParser.cpp:
(WebCore):
(WebCore::BackgroundHTMLParser::startedChunkWithCheckpoint):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::validateSpeculations):
(WebCore::HTMLDocumentParser::discardSpeculationsAndResumeFrom):
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::pumpPendingSpeculations):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
2013-03-14 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. Minor changes for the popover.
https://bugs.webkit.org/show_bug.cgi?id=112331
Reviewed by Yury Semikhatsky.
popover timeout needs to be decreased a bit.
hidePopover call in onMouseMove doesn't necessary.
We have to keep anchor element unmodified if the hovered item didn't changed.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart):
(WebInspector.FlameChart.prototype._onMouseMove):
2013-03-14 Jonathan Liu <net147@gmail.com>
Fix detection of Intel Mac OS X platform on Intel Mac 64-bit
https://bugs.webkit.org/show_bug.cgi?id=112312
Reviewed by Simon Hausmann.
* platform/gtk/UserAgentGtk.cpp:
(WebCore::platformVersionForUAString):
2013-03-13 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. Rewrite drawing procedure for better performance.
https://bugs.webkit.org/show_bug.cgi?id=112264
Reviewed by Yury Semikhatsky.
I traverses the profile tree in calculateTimelineData and calculates all the sizes and colors.
Later in draw code we lineary pass the array and draw items.
Also we could easily swap to another format of the profile.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart):
(WebInspector.FlameChart.prototype._nodeCount):
(WebInspector.FlameChart.prototype._calculateTimelineData.appendReversedArray):
(WebInspector.FlameChart.prototype._calculateTimelineData):
(WebInspector.FlameChart.prototype._getPopoverAnchor):
(WebInspector.FlameChart.prototype._showPopover):
(WebInspector.FlameChart.prototype._hidePopover):
(WebInspector.FlameChart.prototype._onClick):
(WebInspector.FlameChart.prototype._onMouseMove):
(WebInspector.FlameChart.prototype._coordinatesToNodeIndex):
(WebInspector.FlameChart.prototype.onResize):
(WebInspector.FlameChart.prototype.draw):
2013-03-14 Alice Liu <alice.liu@apple.com>
Add to HistoryItem a way to know if its underlying CachedPage has expired.
https://bugs.webkit.org/show_bug.cgi?id=110652
Reviewed by Brady Eidson.
* WebCore.exp.in: Added WebCore::HistoryItem::isInPageCache and hasCachedPageExpired.
* history/CachedPage.cpp: Add a data member, m_expirationTime, and a function, hasExpired().
* history/CachedPage.h:
* history/HistoryItem.cpp:
(WebCore::HistoryItem::hasCachedPageExpired): Added. returns m_cachedPage's expiration state.
* history/HistoryItem.h:
* history/PageCache.cpp:
(WebCore::PageCache::get): Address the fixme about not using WebKitBackForwardCacheExpirationIntervalKey.
* page/Settings.in: Add backForwardCacheExpirationInterval to the automatically generated setters for Settings.
2013-03-13 Ryosuke Niwa <rniwa@webkit.org>
Cannot select a canvas element at the beginning or the end of a document
https://bugs.webkit.org/show_bug.cgi?id=112319
Reviewed by Eric Seidel.
The bug was caused by the editing code treating canvas element as if an empty inline element.
Treat it as an "atomic" element for the purpose of determining whether selection can have
an end point in it or not.
Test: editing/pasteboard/copy-paste-content-starting-and-ending-canvas.html
* html/HTMLCanvasElement.h:
(WebCore::HTMLCanvasElement::canContainRangeEndPoint): Added.
2013-03-13 Kunihiko Sakamoto <ksakamoto@chromium.org>
Implement FontLoader interface
https://bugs.webkit.org/show_bug.cgi?id=98395
Reviewed by Eric Seidel.
This patch implements the FontLoader interface defined in CSS Font
Load Events Module Level 3.[1] It adds fontloader attribute to
Document, and adds two interfaces, FontLoader and
CSSFontFaceLoadEvent to WebCore.
[1]: http://dev.w3.org/csswg/css-font-load-events-3/
This feature is guarded by FONT_LOAD_EVENTS compiler flag and
RuntimeEnabledFeatures::fontLoadEventsEnabled() runtime flag.
Tests: fast/css/fontloader-download-error.html
fast/css/fontloader-events.html
fast/css/fontloader-loadingdone.html
fast/css/fontloader-multiple-faces-download-error.html
fast/css/fontloader-multiple-faces.html
fast/css/fontloader-multiple-families.html
http/tests/webfont/fontloader-loading-attribute.html
* CMakeLists.txt: Adding FontLoader/CSSFontFaceLoadEvent files.
* DerivedSources.cpp: Ditto.
* DerivedSources.make: Ditto.
* DerivedSources.pri: Ditto.
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue): Add convertValue() for CSSFontFaceRule, DOMError, and VoidCallback.
* bindings/js/JSDictionary.h: Ditto.
* bindings/v8/Dictionary.cpp: Add get() for CSSFontFaceRule, DOMError, and VoidCallback.
(WebCore::Dictionary::get):
* bindings/v8/Dictionary.h: Ditto.
(Dictionary):
* css/CSSFontFace.cpp: Notifies FontLoader as load progresses.
(WebCore::CSSFontFace::fontLoaded):
(WebCore::CSSFontFace::getFontData):
(WebCore::CSSFontFace::notifyFontLoader):
(WebCore::CSSFontFace::notifyLoadingDone):
* css/CSSFontFace.h: Add two member variables. m_rule stores CSSFontFaceRule for the fontface. m_loadState holds current state of the fontface in terms of FontLoader.
(WebCore::CSSFontFace::create): Takes additional parameter of type CSSFontFaceRule.
(WebCore::CSSFontFace::loadState):
(WebCore::CSSFontFace::CSSFontFace):
* css/CSSFontFaceLoadEvent.cpp: Added.
(WebCore::CSSFontFaceLoadEvent::CSSFontFaceLoadEvent):
(WebCore::CSSFontFaceLoadEvent::~CSSFontFaceLoadEvent):
(WebCore::CSSFontFaceLoadEvent::interfaceName):
* css/CSSFontFaceLoadEvent.h: Added.
(CSSFontFaceLoadEventInit):
(CSSFontFaceLoadEvent):
(WebCore::CSSFontFaceLoadEvent::create):
(WebCore::CSSFontFaceLoadEvent::createForFontFaceRule):
(WebCore::CSSFontFaceLoadEvent::createForError):
(WebCore::CSSFontFaceLoadEvent::fontface):
(WebCore::CSSFontFaceLoadEvent::error):
* css/CSSFontFaceLoadEvent.idl: Added.
* css/CSSFontFaceRule.idl: Add JSGenerateToJSObject and JSGenerateToNativeObject as JSC binding needs them.
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::isDecodeError): Added.
(WebCore::CSSFontFaceSource::ensureFontData): Added.
* css/CSSFontFaceSource.h:
(CSSFontFaceSource):
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule): Pass a CSSFontFaceRule to CSSFontFace::create().
(WebCore::CSSFontSelector::getFontData): Moved logic for creating a CSSSegmentedFontFace to a helper function getFontFace().
(WebCore::CSSFontSelector::getFontFace): Added.
* css/CSSFontSelector.h:
* css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::fontLoaded): Fires callbacks when load is completed.
(WebCore::CSSSegmentedFontFace::isLoading): Returns true if any fonts are still loading.
(WebCore::CSSSegmentedFontFace::checkFont): Returns true if all fonts are loaded.
(WebCore::CSSSegmentedFontFace::loadFont): Starts load by calling getFontData().
* css/CSSSegmentedFontFace.h:
(CSSSegmentedFontFace): Declares new functions and a vector to store callbacks.
(LoadFontCallback):
(WebCore::CSSSegmentedFontFace::LoadFontCallback::~LoadFontCallback):
* css/FontLoader.cpp: Added.
(LoadFontCallback): Holds callback functions of FontLoader.loadFont().
(WebCore::LoadFontCallback::create):
(WebCore::LoadFontCallback::createFromParams):
(WebCore::LoadFontCallback::LoadFontCallback):
(WebCore::LoadFontCallback::notifyLoaded):
(WebCore::LoadFontCallback::notifyError):
(WebCore::FontLoader::FontLoader):
(WebCore::FontLoader::~FontLoader):
(WebCore::FontLoader::eventTargetData):
(WebCore::FontLoader::ensureEventTargetData):
(WebCore::FontLoader::interfaceName):
(WebCore::FontLoader::scriptExecutionContext):
(WebCore::FontLoader::didLayout): Fires pending events and callbacks. This is called when layout have completed.
(WebCore::FontLoader::scheduleEvent): Defers event dispatching until layout completes.
(WebCore::FontLoader::firePendingEvents): Dispatches pending events.
(WebCore::FontLoader::beginFontLoading): Schedules loading/loadstart events. This is called from CSSFontFace.
(WebCore::FontLoader::fontLoaded): Schedules load/loadingdone events. This is called from CSSFontFace.
(WebCore::FontLoader::loadError): Schedules error/loadingdone events. This is called from CSSFontFace.
(WebCore::FontLoader::notifyWhenFontsReady): Implements fontloader.notifyWhenFontsReady().
(WebCore::FontLoader::loadingDone): Fires callbacks of notifyWhenFontsReady.
(WebCore::FontLoader::loadFont): Implements fontloader.loadFont().
(WebCore::FontLoader::checkFont): Implements fontloader.checkFont().
(WebCore::FontLoader::resolveFontStyle): Parses the given font parameter using the syntax of CSS 'font' property and creates Font object. The logic is taken from CanvasRenderingContext2D::setFont().
* css/FontLoader.h: Added.
(FontLoader):
(WebCore::FontLoader::create):
(WebCore::FontLoader::loading):
(WebCore::FontLoader::document):
(WebCore::FontLoader::refEventTarget):
(WebCore::FontLoader::derefEventTarget):
* css/FontLoader.idl: Added.
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::fontloader): Added.
* dom/Document.h:
(Document): Add m_fontloader and fontloader().
* dom/Document.idl: Add fontloader attribute.
* dom/EventNames.h: Add loading and loadingdone events.
* dom/EventNames.in: Add CSSFontFaceLoadEvent.
* dom/EventTargetFactory.in: Add FontLoader.
* page/FrameView.cpp:
(WebCore::FrameView::performPostLayoutTasks): Calls FontLoader::didLayout().
2013-03-13 Antti Koivisto <antti@apple.com>
Compute image background size when testing for background visibility
https://bugs.webkit.org/show_bug.cgi?id=112313
Reviewed by Simon Fraser.
We can catch more cases where background is fully obscured.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintBackground):
Use early returns.
(WebCore::RenderBox::backgroundPaintedExtent):
Compute the bounds for image backgrounds.
(WebCore::RenderBox::backgroundIsKnownToBeOpaqueInRect):
(WebCore::RenderBox::backgroundIsKnownToBeObscured):
Rename to make clear that the answers are certain to one direction only.
* rendering/RenderBox.h:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::boxShadowShouldBeAppliedToBackground):
(WebCore::RenderImage::backgroundIsKnownToBeObscured):
* rendering/RenderImage.h:
2013-03-13 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
[css3-text] Add support for text-decoration-color
https://bugs.webkit.org/show_bug.cgi?id=91638
Reviewed by Julien Chaffraix.
This patch implements the CSS3's 'text-decoration-color' property, with
'-webkit' vendor prefix.
More info about "text-decoration-color" property can be found here:
http://dev.w3.org/csswg/css-text-decor-3/#text-decoration-color-property
Mozilla implementation (using -moz prefix) is described here:
https://developer.mozilla.org/en/CSS/text-decoration-color
Tests: fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color.html
fast/css3-text/css3-text-decoration/repaint/repaint-text-decoration-color.html
fast/css3-text/css3-text-decoration/text-decoration-color.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::isColorPropertyID):
(WebCore::CSSParser::parseValue):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
Added parsing checks for '-webkit-text-decoration-color' property.
* css/CSSPropertyNames.in:
Added '-webkit-text-decoration-color' property name.
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
Set property handler for '-webkit-text-decoration-color'.
* css/StyleResolver.cpp:
(WebCore::isValidVisitedLinkProperty):
(WebCore::StyleResolver::applyProperty):
Added switch case checks for text-decoration-color property on visited
link checks and property appliance.
* rendering/RenderObject.cpp:
(WebCore::decorationColor):
The newly added property needs to checked here when selecting the text
decoration color.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff):
(WebCore::RenderStyle::colorIncludingFallback):
(WebCore::RenderStyle::visitedDependentColor):
There is no proper way to check if a property has been set or not, so if
text decoration color fallbacks to default color, it would override the
check for 'text-fill-color' and 'text-stroke-color' properties on
WebCore::decorationColor() static function, changing current behavior,
which can be verified by new failing layout tests (ie.
fast/text/stroking-decorations.html).
* rendering/style/RenderStyle.h:
Added {non-}visited text decoration color getters and setters.
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
Added {non-}visited text decoration color variables initialization to
copy constructor and operator assignment functions.
* rendering/style/StyleRareNonInheritedData.h:
(StyleRareNonInheritedData):
Added here as this property is not used regularly.
2013-03-13 Rik Cabanier <cabanier@adobe.com>
create runtime flags for CSS Compositing
https://bugs.webkit.org/show_bug.cgi?id=111818
Reviewed by Ryosuke Niwa.
No new tests, no change in functionality.
Added a runtime flags that enables CSS compositing
* WebCore.exp.in:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures):
(WebCore::RuntimeEnabledFeatures::setCSSCompositingEnabled):
(WebCore::RuntimeEnabledFeatures::cssCompositingEnabled):
* css/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFillProperty):
(WebCore::CSSParser::cssCompositingEnabled):
(WebCore):
* css/CSSParser.h:
* css/CSSParserMode.h:
(CSSParserContext):
* dom/Document.cpp:
(WebCore::Document::cssCompositingEnabled):
(WebCore):
* dom/Document.h:
(Document):
2013-03-11 Kinuko Yasuda <kinuko@chromium.org>
Quota API: Update IDL to make it match the latest WD
https://bugs.webkit.org/show_bug.cgi?id=88396
Reviewed by Adam Barth.
Add a new interface object (navigator.StorageQuota) and deprecate the old one (window.StorageInfo)
to make the code match with the latest Quota API WD:
http://www.w3.org/TR/quota-api/
Tests: storage/storagequota-query-usage.html
storage/storagequota-request-quota.html
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Modules/quota/DOMWindowQuota.cpp:
(WebCore::DOMWindowQuota::webkitStorageInfo): Added a deprecate warning message for the old interface.
* Modules/quota/NavigatorStorageQuota.cpp: Added for the new interface.
* Modules/quota/NavigatorStorageQuota.h: Added for the new interface.
* Modules/quota/NavigatorStorageQuota.idl: Added for the new interface.
* Modules/quota/StorageErrorCallback.cpp:
(WebCore::StorageErrorCallback::CallbackTask::CallbackTask):
(WebCore::StorageErrorCallback::CallbackTask::performTask):
* Modules/quota/StorageErrorCallback.h: Renamed from Source/WebCore/Modules/quota/StorageInfoErrorCallback.h.
(WebCore):
(StorageErrorCallback):
(WebCore::StorageErrorCallback::~StorageErrorCallback):
(WebCore::StorageErrorCallback::CallbackTask::create):
* Modules/quota/StorageErrorCallback.idl: Renamed from Source/WebCore/Modules/quota/StorageInfoErrorCallback.idl.
* Modules/quota/StorageInfo.cpp: Added code to relay requests to the new StorageQuota implementation.
* Modules/quota/StorageInfo.h:
* Modules/quota/StorageInfo.idl:
* Modules/quota/StorageQuota.cpp: Added for the new interface.
* Modules/quota/StorageQuota.h:
(WebCore::StorageQuota::create):
* Modules/quota/StorageQuota.idl: Copied from Source/WebCore/Modules/quota/StorageInfo.idl.
* Modules/quota/StorageQuotaCallback.h: Renamed from Source/WebCore/Modules/quota/StorageInfoQuotaCallback.h.
* Modules/quota/StorageQuotaCallback.idl: Renamed from Source/WebCore/Modules/quota/StorageInfoQuotaCallback.idl.
* Modules/quota/StorageUsageCallback.h: Renamed from Source/WebCore/Modules/quota/StorageInfoUsageCallback.h.
* Modules/quota/StorageUsageCallback.idl: Renamed from Source/WebCore/Modules/quota/StorageInfoUsageCallback.idl.
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* page/FeatureObserver.h:
2013-03-13 Ryosuke Niwa <rniwa@webkit.org>
Unreviewed. Sort the Xcode project file.
* WebCore.xcodeproj/project.pbxproj:
2013-03-13 Rafael Weinstein <rafaelw@chromium.org>
[HTMLTemplateElement] EOF should unwind the stack of template insertion modes iteratively
https://bugs.webkit.org/show_bug.cgi?id=111907
Reviewed by Adam Barth.
No behavioral changes. This patch only aligns our parser implementation with the present spec.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processTemplateEndTag):
(WebCore::HTMLTreeBuilder::processEndOfFileForInTemplateContents):
(WebCore::HTMLTreeBuilder::processEndOfFile):
* html/parser/HTMLTreeBuilder.h:
(HTMLTreeBuilder):
2013-03-13 Michael Nordman <michaeln@google.com>
FileSystem mods: Changes to snapshot file creation to reduce dependencies on blob URLs.
Adding a new minimal BlobDataHandle class which will be reimplemented/built upon in later CLs. In this
patch, it's just enough to refactor the FileSystem code to not function in terms of blobURLs.
https://bugs.webkit.org/show_bug.cgi?id=108851
Reviewed by Adam Barth.
No new tests. This is strictly a refactoring of the existing code.
* Modules/filesystem/DOMFileSystem.cpp:
(WebCore):
(WebCore::DOMFileSystem::createFile):
* Modules/filesystem/DOMFileSystemSync.cpp:
(WebCore):
* platform/AsyncFileSystemCallbacks.h:
(AsyncFileSystemCallbacks):
(WebCore::AsyncFileSystemCallbacks::didCreateSnapshotFile):
* platform/gtk/AsyncFileSystemGtk.cpp:
(WebCore::AsyncFileSystemGtk::createSnapshotFileAndReadMetadata):
(WebCore):
* platform/network/BlobData.cpp:
(WebCore):
(WebCore::BlobDataHandle::BlobDataHandle):
(WebCore::BlobDataHandle::~BlobDataHandle):
* platform/network/BlobData.h:
(WebCore):
(BlobDataHandle):
(WebCore::BlobDataHandle::create):
2013-03-13 Ryosuke Niwa <rniwa@webkit.org>
Threaded HTML Parser is missing feature define flags in all but Chromium port's build files
https://bugs.webkit.org/show_bug.cgi?id=112277
Reviewed by Adam Barth.
* Configurations/FeatureDefines.xcconfig:
2013-03-13 Marja Hölttä <marja@chromium.org>
[V8] Get rid of more function-level static FunctionTemplates and ObjectTemplates in bindings
https://bugs.webkit.org/show_bug.cgi?id=112262
Reviewed by Jochen Eisinger.
In the future we'll create and store function templates for main world
and non-main worlds separately (see bug 111724), having function
templates and object templates as static variables inside functions will
break the functionality.
No new tests (no changes in functionality yet; existing bindings
tests still pass).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateImplementation):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::createContext):
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::hasPrivateTemplate):
(WebCore):
* bindings/v8/V8PerIsolateData.h:
(V8PerIsolateData):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::wrapInShadowObject):
2013-03-13 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Refactor GridCoordinate to hold GridSpans
https://bugs.webkit.org/show_bug.cgi?id=112211
Reviewed by Tony Chang.
In order to bring more spanning knowledge to RenderGrid without having
duplicated GridSpan resolution, it became needed to store them into
GridCoordinate. Note that this change is needed as we can only resolve
all the positions with enough context in one place: when we place the
item in the grid.
Refactoring, no change in behavior expected.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::GridIterator::nextEmptyGridArea):
Updated to create 2 GridSpans. Also fixed a style violation (PassOwnPtr
as local member, not sure why it wasn't caught earlier).
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
(WebCore::RenderGrid::gridAreaBreadthForChild):
(WebCore::RenderGrid::findChildLogicalPosition):
Updated the original function after GridCoordinate internal representation change.
(WebCore::RenderGrid::insertItemIntoGrid):
Ditto. Also added a new overloaded function that does resolution after auto-placement.
(WebCore::RenderGrid::resolveGridPositionsFromAutoPlacementPosition):
Removed the extra GridSpan computation, which was wrong.
* rendering/RenderGrid.h:
(WebCore::RenderGrid::GridCoordinate::GridCoordinate):
Updated GridCoordinate to hold 2 GridSpan. Also removed the 2 position
constructor (it would have been a hazard), replaced by a 2 GridSpan constructor.
2013-03-13 Jochen Eisinger <jochen@chromium.org>
Also don't log error messages from the GraphicsContext3D if webGLErrorsToConsoleEnabled is false
https://bugs.webkit.org/show_bug.cgi?id=112284
Reviewed by Adam Barth.
When running layout tests in content_shell, we end up logging more information.
Since webGLErrorsToConsoleEnabled is false during layout tests, this change makes
sure we match the baselines.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContextErrorMessageCallback::onErrorMessage):
2013-03-13 David Grogan <dgrogan@chromium.org>
IndexedDB: Record attemps to open a path with non-ascii characters
https://bugs.webkit.org/show_bug.cgi?id=112224
Reviewed by Tony Chang.
We want to see if that's correlated with errors on open.
No new tests, there's no way to test histogramming that I know of. I
ran chrome locally with a non ascii path though.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::open):
2013-03-13 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Handle min-width / max-width on the grid element
https://bugs.webkit.org/show_bug.cgi?id=112269
Reviewed by Ojan Vafai.
Test: fast/css-grid-layout/grid-element-min-max-width.html
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::GridIterator::GridIterator):
Added some sanity checks that the starting indexes are in the grid.
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
Updated the code to use m_grid to iterate: this is the correct way to
go as it will handle implicit rows / columns properly. Added a comment
about the current way being inefficient and incorrect with spanning grid
items.
(WebCore::RenderGrid::computePreferredLogicalWidths):
Updated the comments.
(WebCore::RenderGrid::gridTrackSize):
* rendering/RenderGrid.h:
Constified gridTrackSize.
2013-03-13 Simon Hausmann <simon.hausmann@digia.com>
[Qt] Prospective trivial build fix after r145744
Add missing closing parentheses.
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::parseDtd):
2013-03-13 Brady Eidson <beidson@apple.com>
Account for review feedback in https://bugs.webkit.org/show_bug.cgi?id=112279
that I'd mistakenly left out of my commit.
* loader/ResourceLoaderTypes.h:
2013-03-13 Abhishek Arya <inferno@chromium.org>
Crash in CompositeEditCommand::insertNodeAt.
https://bugs.webkit.org/show_bug.cgi?id=112280
Reviewed by Ryosuke Niwa.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::insertNodeAt): Fix incorrect cast use of toElement.
Subsitute with toContainerNode.
2013-03-13 Brady Eidson <beidson@apple.com>
Small ResourceLoader cleanups.
https://bugs.webkit.org/show_bug.cgi?id=112279
Reviewed by Geoff Garen.
No new tests (Refactor with no behavior change).
1 - Add "OVERRIDE" to virtual methods in subclasses of ResourceLoader to catch future mistakes.
2 - Replace the "bool allAtOnce" flag with a descriptive enum to make reading code easier.
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
* loader/NetscapePlugInStreamLoader.cpp:
(WebCore::NetscapePlugInStreamLoader::didReceiveData):
* loader/NetscapePlugInStreamLoader.h:
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::addData):
(WebCore::ResourceLoader::didReceiveData):
* loader/ResourceLoader.h:
* loader/ResourceLoaderTypes.h: Added.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveData):
* loader/SubresourceLoader.h:
2013-03-13 Nate Chapin <japhet@chromium.org>
chromium's WebFrameTest.ReplaceNavigationAfterHistoryNavigation failing after r145734
https://bugs.webkit.org/show_bug.cgi?id=112281
Reviewed by Adam Barth.
Fixes the aforementioned chromiun webkit_unit_test
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::maybeFinishLoadingMultipartContent): FrameLoader::isReplacing() is not quite
synonymous with loading multipart content. Check that it's actually loading multipart before doing
multipart-specific things.
2013-03-13 Tao Bai <michaelbai@chromium.org>
Add the default video poster if it doesn't exist in video tag
https://bugs.webkit.org/show_bug.cgi?id=110263
Reviewed by Eric Carlson.
Tests: media/video-default-poster.html
media/video-no-default-poster.html
The Android web view application could provide the default poster
for a video that doesn't have the poster attribute.
To provide the default poster, the application must set defaultVideoPosterURL
setting and return the image in the response of that URL.
The way to do this would be:
A) Replace the Element::imageSourceAttributeName function with an
Element::imageSourceURL function that returns the imageSourceURL as a
const AtomicString&. The body will be the same as before, it will just also
include a call to getAttribute. Also will need to revise the four classes
that override that function.
B) Add a new HTMLVideoElement::posterImageURL function that implements the
default poster URL logic.
C) Update the four functions that get the poster attribute to handle poster
loading and display to call posterImageURL.
1) HTMLVideoElement::imageSourceURL.
2) HTMLVideoElement::setDisplayMode.
3) HTMLVideoElement::updateDisplayState.
4) HTMLMediaElement::getPluginProxyParams. Will need to cast to
HTMLVideoElement after checking isVideo.
* dom/Element.cpp:
(WebCore::Element::imageSourceURL): Replace imageSourceAttributeName() with imageSourceURL()
* dom/Element.h: Replace imageSourceAttributeName() with imageSourceURL()
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::imageSourceURL): Replace imageSourceAttributeName() with imageSourceURL()
* html/HTMLEmbedElement.h: Replace imageSourceAttributeName() with imageSourceURL()
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::getPluginProxyParams): Change to use posterImageURL
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::imageSourceURL): Replace imageSourceAttributeName() with imageSourceURL()
* html/HTMLObjectElement.h: Replace imageSourceAttributeName with imageSourceURL
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::HTMLVideoElement): set m_defaultPosterURL if there is such settings
(WebCore::HTMLVideoElement::imageSourceURL): Replace imageSourceAttributeName() with imageSourceURL()
(WebCore::HTMLVideoElement::setDisplayMode): Use imageSourceURL()
(WebCore::HTMLVideoElement::updateDisplayState): Use imageSourceURL()
(WebCore::HTMLVideoElement::posterImageURL): Return image source's KURL
* html/HTMLVideoElement.h: Replace imageSourceAttributeName() with imageSourceURL() and add m_defaultPosterURL
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement): Use imageSourceURL()
* page/Settings.in: Add defaultVideoPosterURL setting.
* platform/chromium/PasteboardChromium.cpp:
(WebCore::Pasteboard::writeImage): use imageSourceURL()
* platform/gtk/PasteboardGtk.cpp:
(WebCore::getURLForImageNode): use imageSourceURL()
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::absoluteImageURL): use imageSourceURL()
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::imageSourceURL): Replace imageSourceAttributeName() with imageSourceURL()
* svg/SVGImageElement.h: Replace imageSourceAttributeName() with imageSourceURL()
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): support backup defaultVideoPosterURL.
(WebCore::InternalSettings::Backup::restoreTo): support restore defaultVideoPosterURL.
(WebCore::InternalSettings::setDefaultVideoPosterURL): set defaultVideoPosterURL.
* testing/InternalSettings.h:
(Backup): support backup defaultVideoPosterURL.
(InternalSettings): Add setDefaultVidoePosterURL method.
* testing/InternalSettings.idl: Add setDefaultVideoPosterURL for test purpose.
* testing/Internals.cpp:
(WebCore::Internals::getImageSourceURL): Add getImageSourceURL method.
* testing/Internals.h: Add getImageSourceURL method.
* testing/Internals.idl: Add getImageSourceURL method.
2013-03-13 Abhishek Arya <inferno@chromium.org>
Replace static_casts with to* functions for document types.
https://bugs.webkit.org/show_bug.cgi?id=112225
Reviewed by Ryosuke Niwa.
to* helper functions are preferred over static_cast calls since they
help to catch bad casts easily on the testing infrastructure.
* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::document):
....lot of files.
2013-03-13 Liam Quinn <lquinn@blackberry.com>
Handle XHTML entities in XHTML Mobile Profile 1.1 and 1.2. We previously only handled them in XHTML Mobile Profile 1.0.
https://bugs.webkit.org/show_bug.cgi?id=112174
RIM PR 309038
Reviewed by Rob Buis.
Internally reviewed by Leo Yang.
Check for the 1.1 and 1.2 doctypes alongside the 1.0 doctype.
Tests: fast/doctypes/xhtml-with-xhtmlmp11-doctype.xhtml
fast/doctypes/xhtml-with-xhtmlmp12-doctype.xhtml
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::externalSubsetHandler):
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::parseDtd):
2013-03-13 Christophe Dumez <ch.dumez@sisa.samsung.com>
[EFL] Better error handling in NetworkStateNotifierEfl
https://bugs.webkit.org/show_bug.cgi?id=112184
Reviewed by Kenneth Rohde Christiansen.
Improve error handling in for system calls in NetworkStateNotifierEfl.
- EINTR errors are now properly handled for close() and recv() syscalls
- recv() errors are now correctly detected, for e.g. if the socket was
closed unexpectedly.
- Make sure m_fdHandler is reset when the callback returns
ECORE_CALLBACK_CANCEL to avoid double free in destructor. m_fdHandler
gets destroyed when the callback returns ECORE_CALLBACK_CANCEL.
- Keep netlink socket file descriptor as a class member so that we can
close() it in the class destructor, even if m_fdHandler has already
been destroyed.
No new tests, no behavior change for layout tests.
* platform/network/NetworkStateNotifier.h:
(NetworkStateNotifier):
* platform/network/efl/NetworkStateNotifierEfl.cpp:
(WebCore::NetworkStateNotifier::readSocketCallback):
(WebCore::NetworkStateNotifier::~NetworkStateNotifier):
(WebCore::NetworkStateNotifier::NetworkStateNotifier):
2013-03-13 Tony Chang <tony@chromium.org>
Regression(r143542): -webkit-align-items: center with overflow: auto/scroll has extra bottom padding
https://bugs.webkit.org/show_bug.cgi?id=112047
Reviewed by Ojan Vafai.
Add a new pass for computing the client bottom edge that runs after we've repositioned children
due to wrap-reverse, flex-end or vertical centering.
Test: css3/flexbox/negative-overflow.html
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock): Remove the code to use clientLogicalBottom() that was computed before
repositioning. The repositioning can change the edge.
(WebCore::RenderFlexibleBox::clientLogicalBottomAfterRepositioning): Compute the new bottom based on the final position
of flex items.
* rendering/RenderFlexibleBox.h:
(RenderFlexibleBox):
2013-03-13 Nate Chapin <japhet@chromium.org>
REGRESSION(r137607): Redirecting a post to a get then reloading triggers resubmit warning
https://bugs.webkit.org/show_bug.cgi?id=112194
Reviewed by Alexey Proskuryakov.
Test: http/tests/navigation/post-redirect-get-reload.php
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequest): Matching urls aren't a reliable way of checking whether
we are in a redirect. Check redirectResponse.isNull() instead.
* testing/Internals.cpp:
(WebCore::Internals::forceReload): Expose a means of forcing a reload like one a user generates for testing.
Note that testRunner.queueReload() does this, but is not supported after the initial load completes,
which makes it unsuitable for this case.
* testing/Internals.h:
* testing/Internals.idl:
2013-03-13 Nate Chapin <japhet@chromium.org>
Merge MainResourceLoader's didFinishLoading and dataReceived into DocumentLoader
https://bugs.webkit.org/show_bug.cgi?id=109952
Reviewed by Antti Koivisto.
No new tests, refactor only.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::receivedData):
(WebCore::DocumentLoader::maybeLoadEmpty):
* loader/DocumentLoader.h:
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::responseReceived): Move content filtering to
DocumentLoader.
(WebCore::MainResourceLoader::dataReceived): Mostly moved to DocumentLoader.
(WebCore::MainResourceLoader::didFinishLoading): Mostly moved to DocumentLoader.
* loader/MainResourceLoader.h: Expose some variables that haven't been moved
to DocumentLoader yet.
2013-03-13 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Break after doesn't work correctly with auto-height regions
https://bugs.webkit.org/show_bug.cgi?id=112241
Reviewed by David Hyatt.
The change correctly returns the break position during the normal layout phase for
auto-height regions. The problem doesn't exist during the constrained layout phase
so it only affects the size of the auto-height regions by incorrectly positioning
the content inside the flow.
Test: fast/regions/autoheight-break-after.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::applyAfterBreak): Include the margin offset in the returned break position.
2013-03-12 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: coalesce repeating timeline records
https://bugs.webkit.org/show_bug.cgi?id=112168
Reviewed by Vsevolod Vlasov.
- coalesce repeating top-level timeline events;
- drive-by: only show categories that actually took time in aggregated stats;
* English.lproj/localizedStrings.js:
* inspector/front-end/TimelineFrameController.js:
(WebInspector.TimelineFrameController.prototype._innerAddRecord):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._highlightRect):
(WebInspector.TimelineCalculator.prototype.computeBarGraphPercentages):
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.prototype.reset):
(WebInspector.TimelinePresentationModel.prototype._innerAddRecord):
(WebInspector.TimelinePresentationModel.prototype._updateAncestorStats):
(WebInspector.TimelinePresentationModel.prototype._findCoalescedParent):
(WebInspector.TimelinePresentationModel.prototype._replaceWithCoalescedRecord):
(WebInspector.TimelinePresentationModel.Record):
(WebInspector.TimelinePresentationModel.adoptRecord):
(WebInspector.TimelinePresentationModel.insertRetrospectiveRecord):
(WebInspector.TimelinePresentationModel.Record.prototype.get selfTime):
(WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
(WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
(WebInspector.TimelinePresentationModel.Record.prototype.calculateAggregatedStats):
2013-03-13 Philip Rogers <pdr@google.com>
Fix body background image geometry calculation
https://bugs.webkit.org/show_bug.cgi?id=112226
Reviewed by Stephen Chenney.
Images that depend on a container size require a call to set the container size before
rendering, and a call to look up the correct image during painting.
The body's renderer is special in that it may not be the renderer that actually paints its
background. This patch fixes a bug where the correct RenderObject was used for looking up
the image, but not for setting the container size. This fixes SVG background images on body.
Test: svg/as-background-image/svg-as-background-body.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
This change introduces clientForBackgroundImage in the background geometry calculation.
This is very similar to how the client is looked up in paintFillLayerExtended.
* rendering/RenderBoxModelObject.h:
The new signature for calculateBackgroundImageGeometry now mirrors
paintFillLayerExtended, containing a parameter for the correct background renderer.
(RenderBoxModelObject):
2013-03-13 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] Handle "enter" key in {|} situation
https://bugs.webkit.org/show_bug.cgi?id=112153
Reviewed by Vsevolod Vlasov.
Add a keymap to handle "Enter" key and override it in case of {|}
situation.
No new tests.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor):
(WebInspector.CodeMirrorTextEditor.BlockIndentController):
(WebInspector.CodeMirrorTextEditor.BlockIndentController.prototype.Enter):
2013-03-13 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] bug with LineWidgets
https://bugs.webkit.org/show_bug.cgi?id=111978
Reviewed by Vsevolod Vlasov.
Implement CodeMirrorTextEditor.beginUpdates and
CodeMirrorTextEditor.endUpdates and surround decoration creation
with the beginUpdates/endUpdates calls.
No new tests.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor):
(WebInspector.CodeMirrorTextEditor.prototype.beginUpdates):
(WebInspector.CodeMirrorTextEditor.prototype.endUpdates):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype.addMessageToSource):
2013-03-13 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: get rid of hiddenPanels filter
https://bugs.webkit.org/show_bug.cgi?id=112252
Reviewed by Vsevolod Vlasov.
* WebCore.order:
* inspector/InspectorFrontendClient.h:
(InspectorFrontendClient):
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorFrontendHost.h:
(InspectorFrontendHost):
* inspector/InspectorFrontendHost.idl:
* inspector/front-end/InspectorFrontendHostStub.js:
* inspector/front-end/externs.js:
* inspector/front-end/inspector.js:
(WebInspector._panelDescriptors):
* testing/Internals.cpp:
2013-03-13 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: convert workers inspection into capability
https://bugs.webkit.org/show_bug.cgi?id=112251
Reviewed by Vsevolod Vlasov.
It should be up to backend
* inspector/Inspector.json:
* inspector/InspectorFrontendClient.h:
(InspectorFrontendClient):
* inspector/InspectorFrontendClientLocal.h:
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorFrontendHost.h:
(InspectorFrontendHost):
* inspector/InspectorFrontendHost.idl:
* inspector/InspectorWorkerAgent.cpp:
(WebCore::InspectorWorkerAgent::canInspectWorkers):
(WebCore):
* inspector/InspectorWorkerAgent.h:
(InspectorWorkerAgent):
* inspector/front-end/InspectorFrontendHostStub.js:
* inspector/front-end/Settings.js:
* inspector/front-end/externs.js:
* inspector/front-end/inspector.js:
(WebInspector.doLoadedDone):
2013-03-13 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[EFL] Start using evas object directly in Widget class
https://bugs.webkit.org/show_bug.cgi?id=111858
Reviewed by Antonio Gomes.
Based on a patch by Kenneth Rohde Christiansen.
EFL Widget class should use evas object pointer directly rather
than WidgetPrivate* m_data as platformWidget() is a Mac specific
implementation detail that they are moving away from with WebKit2.
This patch brings: firstly better compliance with other ports,
secondly it makes code cleaner.
Besides, the evasObject is only directly used in the ScrollbarEfl
subclass of Widget and not in Widget or ScrollView or any other subclass,
thus the evas_object code has now been concentrated in ScrollbarEfl.
No new tests as there are no behavioral changes.
* page/efl/EventHandlerEfl.cpp:
* platform/Widget.h:
(Widget):
(WebCore::Widget::evasObject):
* platform/efl/ScrollbarEfl.cpp:
(ScrollbarEfl::~ScrollbarEfl):
(scrollbarEflEdjeMessage):
(ScrollbarEfl::show):
(ScrollbarEfl::hide):
(ScrollbarEfl::setParent):
(ScrollbarEfl::updateThumbPositionAndProportion):
(ScrollbarEfl::frameRectsChanged):
* platform/efl/ScrollbarEfl.h:
(ScrollbarEfl):
* platform/efl/WidgetEfl.cpp:
(WebCore::Widget::Widget):
(WebCore::Widget::~Widget):
(WebCore::Widget::frameRectsChanged):
(WebCore::Widget::show):
(WebCore::Widget::hide):
(WebCore::Widget::setEvasObject):
* plugins/efl/PluginViewEfl.cpp:
(WebCore::PluginView::platformGetValue):
2013-03-13 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] token highlight still has some problems
https://bugs.webkit.org/show_bug.cgi?id=112173
Reviewed by Vsevolod Vlasov.
Use pseudo elements with borders to draw token highlight.
No new tests.
* inspector/front-end/cm/cmdevtools.css:
(.cm-token-highlight):
(.cm-token-highlight:before):
(.cm-line-with-selection .cm-column-with-selection:before):
2013-03-13 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] SimpleFontData: remove duplicate code
https://bugs.webkit.org/show_bug.cgi?id=112149
Reviewed by Carlos Garcia Campos.
smallCapsFontData() and emphasisMarkFontData() were moved from
platform specific files into platform/graphics/SimpleFontData.cpp
in r133362, so the BlackBerry port no longer needs its own
implementation.
* platform/graphics/blackberry/SimpleFontDataBlackBerry.cpp:
2013-03-13 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: throw an exception if the requested lazy loaded script does not exist.
https://bugs.webkit.org/show_bug.cgi?id=112237
Reviewed by Pavel Feldman.
* inspector/front-end/utilities.js:
2013-03-13 Mike West <mkwst@chromium.org>
Pass the XSSAuditor's report URL to the XSSAuditorDelegate on the main thread.
https://bugs.webkit.org/show_bug.cgi?id=112179
Reviewed by Adam Barth.
Rather than relying on XSSInfo objects to move the XSSAuditor's report
URL into the XSSAuditorDelegate for reporting, we should be able to grab
the URL directly from XSSAuditor before it moves off the main thread,
and store it on the delegate.
This will enable us to drop the report URL properties from both
XSSAuditor and XSSInfo. Oh, happy day!
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
We no longer need to check whether XSSInfo objects are thread safe,
as we've dropped the only problematic bit.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::pumpTokenizer):
(WebCore::HTMLDocumentParser::startBackgroundParser):
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::init):
When initializing the XSSAuditor, pass in an XSSAuditorDelegate*
and assign the report URL directly onto that object.
(WebCore::XSSAuditor::filterToken):
Drop the report URL parameter from XSSInfo objects we create in the
Auditor, as they're now handled directly from the delegate.
(WebCore::XSSAuditor::isSafeToSendToAnotherThread):
Drop the report URL property from XSSAuditor's threadsafeness check,
as properties that do not exist are automatically thread-safe.
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::XSSAuditorDelegate::didBlockScript):
Use the delegate's own report URL rather than the XSSInfo objects'.
* html/parser/XSSAuditorDelegate.h:
(WebCore::XSSInfo::create):
(WebCore::XSSInfo::XSSInfo):
Drop the report URL property from XSSInfo.
(WebCore::XSSAuditorDelegate::setReportURL):
(XSSAuditorDelegate):
Provide a public API for setting a delegate's report URL.
2013-03-13 Mike West <mkwst@chromium.org>
Unsafe JavaScript attempt errors are ludicrously verbose and annoying
https://bugs.webkit.org/show_bug.cgi?id=112042
Reviewed by Timothy Hatcher.
This patch attempts to make the most common case of error message less
ludicrous by adjusting it to include only an origin as opposed to full
URLs for the active and target frames. It now reads: "Blocked a frame
with origin 'http://127.0.0.1:8000' from accessing a frame with origin
'http://localhost:8000'. Protocols, domains, and ports must match."
In the interest of keeping the patch size down, I'll follow up on the
other cases (sandboxed access, 'document.domain' mismatches, etc) in
future patches.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::crossDomainAccessErrorMessage):
2013-03-13 Takashi Sakamoto <tasak@google.com>
Implement :scope for element.querySelector[All]()
https://bugs.webkit.org/show_bug.cgi?id=81069
Reviewed by Dimitri Glazkov.
Implemented :scope for element.querySelector[All]().
Reuse scope in SelectorCheckingContext and added a new value to
enum BehaviorAtBoundary.
:scope spec is http://dev.w3.org/csswg/selectors4/#scope-pseudo.
Test: fast/selectors/querySelector-scope.html
* css/CSSSelector.cpp:
(WebCore::CSSSelector::pseudoId):
(WebCore::nameToPseudoTypeMap):
(WebCore::CSSSelector::extractPseudoType):
Added :scope pseudo type.
* css/CSSSelector.h:
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::match):
(WebCore::SelectorChecker::checkOne):
Added PseudoScope case and modified "scope" meaning when
behaviorAtBoundary is equal to StaysWithinTreeScope.
If so, "scope" is just a contextual reference node.
* css/SelectorChecker.h:
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::selectorMatches):
(WebCore::SelectorDataList::matches):
(WebCore::SelectorDataList::execute):
Use rootNode as a contextual reference node.
* dom/SelectorQuery.h:
(SelectorDataList):
2013-03-13 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] FontPlatformData: remove TextOrientation parameter
https://bugs.webkit.org/show_bug.cgi?id=112135
Reviewed by Rob Buis.
This doesn't exist since r136520.
* platform/graphics/blackberry/FontCacheBlackBerry.cpp:
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/blackberry/FontCustomPlatformData.h:
(FontCustomPlatformData):
* platform/graphics/blackberry/FontCustomPlatformDataBlackBerry.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData):
* platform/graphics/blackberry/FontPlatformDataBlackBerry.cpp:
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::applyState):
* platform/graphics/blackberry/SimpleFontDataBlackBerry.cpp:
(WebCore::SimpleFontData::createScaledFontData):
2013-03-12 Antti Koivisto <antti@apple.com>
Basic child obscuration test for backgrounds
https://bugs.webkit.org/show_bug.cgi?id=111701
Reviewed by Simon Fraser.
Test: fast/repaint/obscured-background-no-repaint.html
We can easily detect some simple cases where a background image is fully obscured by an opaque child.
This avoids unncessary painting and image decoding. It is especially helpful for cases like about.com home
page where a fully obscured 'loading' spinner keeps triggering frequent complex repaints (gif animations
progress by getting painted and stop if they are not).
This could be made way more sophisticated. The checking could also be done per-layout rather per-paint.
Even this simple approach gets hit surprisingly often in real world sites.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::backgroundIsObscured):
Before painting background test if any single child renderer fully obscures it.
(WebCore::RenderBox::backgroundIsOpaqueInRect):
* rendering/RenderBox.h:
2013-03-12 Hayato Ito <hayato@chromium.org>
[Crash] Touch Events retargeting causes crashes on chrome on android.
https://bugs.webkit.org/show_bug.cgi?id=112210
Reviewed by Dimitri Glazkov.
Added null-check for TouchEvent's touches(), targetTouches() and changedTouches().
No new tests - no new functionality.
* dom/EventRetargeter.cpp:
(WebCore::EventRetargeter::adjustForTouchEvent):
(WebCore::EventRetargeter::adjustTouchList):
* dom/EventRetargeter.h:
2013-03-12 Geoffrey Garen <ggaren@apple.com>
Unreviewed attempted Windows build fix after http://trac.webkit.org/changeset/145592.
* platform/RunLoopTimer.h: Removed.
2013-03-12 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: Remove CoordinatedGraphicsLayer::setRootLayer().
https://bugs.webkit.org/show_bug.cgi?id=111835
Reviewed by Luiz Agostini.
This patch removes CoordinatedGraphicsLayer::setRootLayer() because
CoordinatedGraphicsScene already knows which layer is root.
No new tests, no behavior change.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
(CoordinatedGraphicsLayer):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::setLayerState):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
(WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
2013-03-12 Jun Jiang <jun.a.jiang@intel.com>
Enable GPU-GPU texture copy in texImage2D() for HTMLVideoElement if hardware accelerated video decode is in use
https://bugs.webkit.org/show_bug.cgi?id=111126
Reviewed by Kenneth Russell.
In texImage2D() for HTMLVideoElement in WebGL, it is possible to do a GPU-GPU texture copy instead of CPU readback
and upload when videoFrame is in the form of textures. Each platform port needs to implement the interface
copyVideoTextureToPlatformTexture() defined in MediaPlayer.h to make it work.
Already covered by current tests.
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::copyVideoTextureToPlatformTexture):
* html/HTMLVideoElement.h:
(HTMLVideoElement):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::videoFrameToImage): Move some security check to upper level.
(WebCore::WebGLRenderingContext::texImage2D): Add the fast GPU-GPU textures copy path for HTMLVideoElement and some security check.
(WebCore::WebGLRenderingContext::texSubImage2D): Add some security check.
* html/canvas/WebGLTexture.cpp:
(WebCore::WebGLTexture::isValid): Added to check if the texture is defined at the given level.
* html/canvas/WebGLTexture.h:
(WebGLTexture):
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::copyVideoTextureToPlatformTexture): Added to do the GPU-GPU textures copy.
* platform/graphics/MediaPlayer.h:
(MediaPlayer):
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::copyVideoTextureToPlatformTexture):
2013-03-12 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145280.
http://trac.webkit.org/changeset/145280
https://bugs.webkit.org/show_bug.cgi?id=112217
This patch broke chromium WebGL conformance tests (Requested
by shawnsingh on #webkit).
* platform/graphics/gpu/DrawingBuffer.cpp:
(WebCore::DrawingBuffer::reset):
* platform/graphics/gpu/DrawingBuffer.h:
(DrawingBuffer):
2013-03-12 Dean Jackson <dino@apple.com>
Don't send events to plugins that are being snapshotted
https://bugs.webkit.org/show_bug.cgi?id=112215
<rdar://problem/13386224>
Reviewed by Tim Horton.
If a plugin is in the process of being snapshotted, do not forward it
any events. This avoids the case where we can accidentally capture some
custom mouse pointers, as well as trigger a plugin menu.
The next step will be to detect if the event should stop the snapshotting
(restart the plugin).
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::defaultEventHandler): Return early if the plugin is snapshotting.
2013-03-12 Tim Horton <timothy_horton@apple.com>
Unreviewed attempted Windows build fix after http://trac.webkit.org/changeset/145592.
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
2013-03-12 James Robinson <jamesr@chromium.org>
Fix Gamepad::axes and Gamepad::buttons to avoid calling std::copy(..., ..., 0)
https://bugs.webkit.org/show_bug.cgi?id=89510
Reviewed by Kenneth Russell.
WTF::Vector::begin() returns 0 when the vector has length zero. On windows, the debug implementation of
std::copy() is unhappy with 0 as a third parameter even when the first and second parameters are equal.
Covered by gamepad/gamepad-polling-access.html
* Modules/gamepad/Gamepad.cpp:
(WebCore::Gamepad::axes):
(WebCore::Gamepad::buttons):
2013-03-12 Elliott Sprehn <esprehn@chromium.org>
Remove TextIterator.cpp's isAllCollapsibleWhitespace
https://bugs.webkit.org/show_bug.cgi?id=112200
Reviewed by Ryosuke Niwa.
Remove isAllCollapsibleWhitespace since nothing uses it.
* editing/TextIterator.cpp: Remove isAllCollapsibleWhitespace.
2013-03-12 Bear Travis <betravis@adobe.com>
[css exclusions] Move ExclusionShapeInsideInfo into RenderBlockRareData
https://bugs.webkit.org/show_bug.cgi?id=110995
Reviewed by Julien Chaffraix.
This patch moves ExclusionShapeInsideInfo into the RenderBlockRareData struct,
which enables us to move away from the global ExclusionShapeInsideInfo map.
Some additional refactoring was done to remove ExclusionShapeInsideInfo's
dependency on InlineIterator, which depended on RenderBlock. This work required
adding a new LineSegmentIterator struct.
Refactoring, no new tests.
* rendering/ExclusionShapeInsideInfo.cpp:
(WebCore):
(WebCore::LineSegmentRange::LineSegmentRange): Moving the InlineIterator
constructor to the .cpp file, as InlineIterator is now forward declared in
the .h file.
(WebCore::ExclusionShapeInsideInfo::isEnabledFor): Moving isEnabledFor to
the .cpp file, as RenderBlock is now forward declared in the .h file.
* rendering/ExclusionShapeInsideInfo.h:
(WebCore):
(LineSegmentIterator): A simple struct for containing segment positions for
layout.
(WebCore::LineSegmentIterator::LineSegmentIterator): Constructor.
(LineSegmentRange): Transitioning to store LineSegmentIterator.
(WebCore::LineSegmentRange::LineSegmentRange): Ditto.
(ExclusionShapeInsideInfo):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::willBeDestroyed): Destroying a block will now destroy
its ExclusionShapeInsideInfo, so there is no need to remove it from the map.
(WebCore):
(WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange): Use
the RenderBlockRareData struct rather than the global map.
* rendering/RenderBlock.h:
(WebCore):
(WebCore::RenderBlock::ensureExclusionShapeInsideInfo): Ensure an info struct
is present if the shape-inside style is set.
(WebCore::RenderBlock::exclusionShapeInsideInfo): Look up the info struct for
the current block.
(WebCore::RenderBlock::setExclusionShapeInsideInfo): Update the info struct
for the current block.
(RenderBlockRareData): Add the ExclusionShapeInsideInfo member. Move the struct
declaration to be public, so that the OwnPtr reference can properly delete it.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::constructBidiRunsForLine): Construct the appropriate offsets during
layout based on the stored LineSegmentIterators.
2013-03-12 James Robinson <jamesr@chromium.org>
Build fix for r145592 - update gyp files to refer to new file locations.
* WebCore.gypi:
2013-03-12 Benjamin Poulain <bpoulain@apple.com>
Add a single character cache to WidthCache
https://bugs.webkit.org/show_bug.cgi?id=112084
Reviewed by Geoffrey Garen.
More than half of the values stored in WidthCache are values
for a single character.
Previously, we were creating a new SmallStringKey for each one of
them, causing a lot of extra memory operations even for the simple
cases.
This patch adds a second map, m_singleCharMap, to simplify the
computation for the common case of a single char TextRun.
* platform/graphics/WidthCache.h:
(WebCore::WidthCache::clear):
(WidthCache):
(WebCore::WidthCache::addSlowCase):
2013-03-12 Philip Rogers <pdr@google.com>
Replace static_casts for SVG transformable and locatable elements
https://bugs.webkit.org/show_bug.cgi?id=111651
Reviewed by Abhishek Arya.
toSVGStyledTransformableElement and toSVGStyledLocatableElement are preferred over
static_casts because bad casts can be caught on our testing infrastructure. This patch
replaces all static_casts for SVGStyledTransformableElement and SVGStyledLocatableElement
with toSVGStyledTransformableElement and toSVGStyledLocatableElement, respectively.
No new tests as this is covered with existing tests.
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::pathOnlyClipping):
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke):
* rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::updateShapeFromElement):
(WebCore::RenderSVGShape::layout):
(WebCore::RenderSVGShape::nonScalingStrokeTransform):
(WebCore::RenderSVGShape::shouldGenerateMarkerPositions):
* rendering/svg/RenderSVGTransformableContainer.cpp:
(WebCore::RenderSVGTransformableContainer::calculateLocalTransform):
* svg/SVGAnimatedLength.cpp:
(WebCore::SVGAnimatedLengthAnimator::calculateDistance):
This was an unnecessary cast and has been removed.
* svg/SVGElement.cpp:
(WebCore::SVGElement::getBoundingBox):
* svg/SVGLocatable.cpp:
(WebCore::SVGLocatable::getTransformToElement):
* svg/SVGStyledLocatableElement.h:
(WebCore):
(WebCore::toSVGStyledLocatableElement):
* svg/SVGStyledTransformableElement.h:
(WebCore):
(WebCore::toSVGStyledTransformableElement):
It makes the code cleaner to pass Node* in here, rather than converting the Node*
to an SVGElement* before calling this function. The same was not necessary for
SVGStyledLocatable.
* svg/SVGSVGElement.h:
(WebCore):
(WebCore::toSVGSVGElement):
This code has been cleaned up. During the review of this patch, a similar cleanup
was done in toSVGStyledTransformableElement.
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::toClipPath):
2013-03-12 Abhishek Arya <inferno@chromium.org>
Replace static_casts with to* helper functions.
https://bugs.webkit.org/show_bug.cgi?id=112164
Reviewed by Philip Rogers.
to* helper functions are preferred over static_cast calls since they
help to catch bad casts easily on the testing infrastructure.
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectMatchingRulesForRegion):
* platform/gtk/PasteboardGtk.cpp:
(WebCore::getURLForImageNode):
(WebCore::Pasteboard::writeImage):
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::getMediaElementFromRenderObject):
* platform/qt/RenderThemeQtMobile.cpp:
(WebCore::RenderThemeQtMobile::checkMultiple):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::title):
(WebCore::HitTestResult::absoluteImageURL):
(WebCore::HitTestResult::absolutePDFURL):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::resize):
(WebCore::RenderLayer::hitTest):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::valueChanged):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::addPDFURLRect):
* rendering/RenderPart.cpp:
(WebCore::RenderPart::requiresAcceleratedCompositing):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::checkRegionStyle):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::computePreferredLogicalWidths):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::isEnabled):
(WebCore::RenderTheme::isSpinUpButtonPartPressed):
(WebCore::RenderTheme::isHovered):
(WebCore::RenderTheme::isSpinUpButtonPartHovered):
(WebCore::RenderTheme::paintSliderTicks):
* rendering/RenderThemeWinCE.cpp:
(WebCore::mediaElementParent):
* rendering/RenderTreeAsText.cpp:
(WebCore::isEmptyOrUnstyledAppleStyleSpan):
(WebCore::RenderTreeAsText::writeRenderObject):
(WebCore::writeRenderRegionList):
* rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGResourceContainer):
2013-03-12 Geoffrey Garen <ggaren@apple.com>
Moved RunLoopTimer and SchedulePair to WTF
https://bugs.webkit.org/show_bug.cgi?id=112171
Reviewed by Oliver Hunt.
This will allow us to use timers in lower level primitives without
duplicating all the code.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* loader/DocumentLoader.h:
(WTF):
(WebCore):
(DocumentLoader):
* loader/MainResourceLoader.h:
* page/Page.h:
* platform/AutodrainedPool.h: Removed.
* platform/cf/RunLoopTimerCF.cpp: Removed.
* platform/cf/SchedulePair.cpp: Removed.
* platform/cf/SchedulePair.h: Removed.
* platform/mac/AutodrainedPool.mm: Removed.
* platform/mac/SchedulePairMac.mm: Removed.
* platform/network/NetworkingContext.h:
* platform/network/ResourceHandle.h:
(WTF):
(WebCore):
(ResourceHandle):
* platform/network/cf/FormDataStreamCFNet.cpp:
* platform/network/mac/ResourceHandleMac.mm:
2013-03-12 Christian Biesinger <cbiesinger@chromium.org>
Mac: Incorrect rendering of <audio> controls
https://bugs.webkit.org/show_bug.cgi?id=110913
Reviewed by Tony Chang.
Covered by existing tests under media/.
* css/mediaControls.css:
(audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
(audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
The timeline container and the timeline need min-width: 0 so that they can shrink if needed.
* css/mediaControlsQuickTime.css:
(audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
(audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
(audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
The timeline container also needs flex-start to ensure that it never overlaps
the play/rewind buttons. The current-time and remaining-time displays need min-width: 0 so that the hack
in RenderMediaControls.cpp works correctly - otherwise, RenderFlexibleBox tries to use the preferred width
of the time displays, which is wrong when they try to hide themselves.
2013-03-12 Alexey Proskuryakov <ap@apple.com>
Improve logging in ResourceHandleMac.mm
https://bugs.webkit.org/show_bug.cgi?id=112185
Reviewed by Brady Eidson.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Removed an obsolete #if.
(WebCore::ResourceHandle::receivedCredential):
(WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
(WebCore::ResourceHandle::receivedCancellation):
(-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]): Added a FIXME.
(-[WebCoreResourceHandleAsDelegate connection:canAuthenticateAgainstProtectionSpace:]):
* platform/network/mac/ResourceResponseMac.mm: Removed an unneeded include.
2013-03-12 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145554.
http://trac.webkit.org/changeset/145554
https://bugs.webkit.org/show_bug.cgi?id=112182
Breaks several extension browser tests (see bug for details)
(Requested by jamesr on #webkit).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateDomainSafeFunctionGetter):
(GenerateImplementation):
(CreateCustomSignature):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::ConfigureV8Float64ArrayTemplate):
(WebCore::V8Float64Array::GetTemplate):
(WebCore::V8Float64Array::HasInstance):
* bindings/scripts/test/V8/V8Float64Array.h:
(V8Float64Array):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
(WebCore::V8TestActiveDOMObject::GetTemplate):
(WebCore::V8TestActiveDOMObject::HasInstance):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(V8TestActiveDOMObject):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::GetTemplate):
(WebCore::V8TestCustomNamedGetter::HasInstance):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(V8TestCustomNamedGetter):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::GetTemplate):
(WebCore::V8TestEventConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(V8TestEventConstructor):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::ConfigureV8TestEventTargetTemplate):
(WebCore::V8TestEventTarget::GetTemplate):
(WebCore::V8TestEventTarget::HasInstance):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(V8TestEventTarget):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::GetTemplate):
(WebCore::V8TestException::HasInstance):
* bindings/scripts/test/V8/V8TestException.h:
(V8TestException):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::ConfigureV8TestInterfaceTemplate):
(WebCore::V8TestInterface::GetTemplate):
(WebCore::V8TestInterface::HasInstance):
* bindings/scripts/test/V8/V8TestInterface.h:
(V8TestInterface):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::GetTemplate):
(WebCore::V8TestMediaQueryListListener::HasInstance):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(V8TestMediaQueryListListener):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructor::GetTemplate):
(WebCore::V8TestNamedConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(V8TestNamedConstructor):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::GetTemplate):
(WebCore::V8TestNode::HasInstance):
* bindings/scripts/test/V8/V8TestNode.h:
(V8TestNode):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::GetTemplate):
(WebCore::V8TestObj::HasInstance):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::GetTemplate):
(WebCore::V8TestOverloadedConstructors::HasInstance):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(V8TestOverloadedConstructors):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
(WebCore::V8TestSerializedScriptValueInterface::HasInstance):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(V8TestSerializedScriptValueInterface):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::ConfigureV8TestTypedefsTemplate):
(WebCore::V8TestTypedefs::GetTemplate):
(WebCore::V8TestTypedefs::HasInstance):
* bindings/scripts/test/V8/V8TestTypedefs.h:
(V8TestTypedefs):
* bindings/v8/V8AdaptorFunction.cpp:
(WebCore::V8AdaptorFunction::getTemplate):
* bindings/v8/V8GCController.cpp:
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::reportMemoryUsage):
(WebCore::V8PerIsolateData::privateTemplate):
(WebCore::V8PerIsolateData::rawTemplate):
(WebCore::V8PerIsolateData::hasInstance):
* bindings/v8/V8PerIsolateData.h:
(WebCore::V8PerIsolateData::rawTemplateMap):
(WebCore::V8PerIsolateData::templateMap):
(V8PerIsolateData):
* bindings/v8/WrapperTypeInfo.h:
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::reloadAttrGetterCustom):
(WebCore::V8Location::replaceAttrGetterCustom):
(WebCore::V8Location::assignAttrGetterCustom):
* bindings/v8/custom/V8NodeListCustom.cpp:
(WebCore::V8NodeList::opaqueRootForGC):
2013-03-12 Gavin Peters <gavinp@chromium.org>
[chromium] Use lipo(1) rather than file(1) to list library architectures.
https://bugs.webkit.org/show_bug.cgi?id=111147
Parsing file(1) output can be fragile; this patch replaces a use of file(1) to get
the architecture list of a library with an invocation of lipo(1), which should be more
stable.
Reviewed by Nico Weber.
No new tests, since adjust_visibility.sh doesn't have a test.
* WebCore.gyp/mac/adjust_visibility.sh:
2013-03-12 Viatcheslav Ostapenko <sl.ostapenko@samsung.com>
Webkit unable to show gifs with applcation extension string shorter than 11 bytes
https://bugs.webkit.org/show_bug.cgi?id=110620
Reviewed by Laszlo Gombos.
Use actual block size for gifs application extension string even if it is below 11 bytes
to be able to decode this kind of gifs.
Test: fast/images/gif-short-app-extension-string.html
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::decodeInternal):
2013-03-12 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145277.
http://trac.webkit.org/changeset/145277
https://bugs.webkit.org/show_bug.cgi?id=112170
chromium-gpu and android testers are seeing failures/crashes
relating to this code (Requested by eseidel on #webkit).
* html/parser/BackgroundHTMLInputStream.cpp:
(WebCore::BackgroundHTMLInputStream::rewindTo):
* html/parser/BackgroundHTMLInputStream.h:
(BackgroundHTMLInputStream):
(Checkpoint):
* html/parser/BackgroundHTMLParser.cpp:
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::pumpPendingSpeculations):
2013-03-12 Simon Fraser <simon.fraser@apple.com>
Keep track of the number of GraphicsLayers with tiled backing in RenderLayerCompositor
https://bugs.webkit.org/show_bug.cgi?id=112083
Reviewed by Dean Jackson.
Have RenderLayerCompositor keep track of how many of its GraphicsLayers use TiledBacking.
This is useful for platforms to decide whether it's necessary to force GraphicsLayer flushes
to update the visibleRect of those TiledBackings.
GraphicsLayers are always created without TiledBacking. There are two
ways the count can change:
1. A GraphicsLayerCA toggles into or out of tiled mode. It notifies its
client via a new tiledBackingUsageChanged() callback on GraphicsLayerClient.
2. A tiled GraphicsLayerCA is destroyed. Added a new bottleneck function to
RenderLayerBacking::willDestroyLayer() that is called everywhere we destroy layers.
The main page TiledBacking is not counted as part of this.
Also renamed uses of "tiledLayer" to "tiledBacking" in GraphicsLayer[CA].
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer):
(WebCore::GraphicsLayer::getDebugBorderInfo):
(WebCore::GraphicsLayer::dumpProperties):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::usingTiledBacking):
* platform/graphics/GraphicsLayerClient.h:
(WebCore::GraphicsLayerClient::tiledBackingUsageChanged):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::updateGeometry):
(WebCore::GraphicsLayerCA::updateLayerDrawsContent):
(WebCore::GraphicsLayerCA::updateContentsScale):
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::willDestroyLayer):
(WebCore::RenderLayerBacking::tiledBackingUsageChanged):
(WebCore::RenderLayerBacking::destroyGraphicsLayers):
(WebCore::RenderLayerBacking::updateClippingLayers):
(WebCore::RenderLayerBacking::updateOverflowControlsLayers):
(WebCore::RenderLayerBacking::updateForegroundLayer):
(WebCore::RenderLayerBacking::updateBackgroundLayer):
(WebCore::RenderLayerBacking::updateMaskLayer):
(WebCore::RenderLayerBacking::updateScrollingLayers):
(WebCore::RenderLayerBacking::compositingLayerType):
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::layerTiledBackingUsageChanged):
* rendering/RenderLayerCompositor.h:
(WebCore::RenderLayerCompositor::haveNonMainLayersWithTiledBacking):
2013-03-12 Abhishek Arya <inferno@chromium.org>
Replace static_casts with to* functions.
https://bugs.webkit.org/show_bug.cgi?id=112072
Reviewed by Philip Rogers.
to* functions are preferred over static_cast calls since they
help to catch bad casts easily on the testing infrastructure.
* accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::canSetFocusAttribute):
* bindings/objc/DOM.mm:
(kitClass):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::prepareListenerObject):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* editing/ApplyStyleCommand.cpp:
(WebCore::isLegacyAppleStyleSpan):
(WebCore::isEmptyFontTag):
(WebCore::ApplyStyleCommand::applyBlockStyle):
* editing/FormatBlockCommand.cpp:
(WebCore::isElementForFormatBlock):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::isMailPasteAsQuotationNode):
(WebCore::haveSameTagName):
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
(WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
* history/CachedPage.cpp:
(WebCore::CachedPage::restore):
* html/ColorInputType.cpp:
(WebCore::ColorInputType::suggestions):
* html/HTMLTableRowsCollection.cpp:
(WebCore::isInHead):
(WebCore::isInBody):
(WebCore::isInFoot):
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::innerPatchNode):
* page/PageSerializer.cpp:
(WebCore::SerializerMarkupAccumulator::appendCustomAttributes):
* plugins/PluginView.cpp:
(WebCore::PluginView::getValue):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::paintContents):
(WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::name):
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::mediaElement):
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::autosaveName):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::textFormControlElement):
(WebCore::updateUserModifyProperty):
* rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::updateFromElement):
* rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::updateFromElement):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::XMLDocumentParser::endElementNs):
2013-03-12 Zan Dobersek <zdobersek@igalia.com>
[GTK] Remove HILDON_CPPFLAGS and HILDON_CFLAGS references from GNUmakefiles
https://bugs.webkit.org/show_bug.cgi?id=112163
Reviewed by Martin Robinson.
No new tests - no new functionality, merely a cleanup.
* GNUmakefile.am: The Hildon dependency doesn't exist anymore so there's no need for
references to HILDON_CPPFLAGS and HILDON_CFLAGS.
2013-03-12 Pavel Feldman <pfeldman@chromium.org>
Not reviewed: removing GtkVersioning from chromium targets.
* WebCore.gypi:
2013-03-12 Marja Hölttä <marja@chromium.org>
[V8] Store main world and non-main world templates separately.
https://bugs.webkit.org/show_bug.cgi?id=111724
Reviewed by Jochen Eisinger.
This is needed for generating specialized bindings for the main
world (bug 110874).
No new tests (updated existing bindings tests).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateDomainSafeFunctionGetter):
(GenerateImplementation):
(CreateCustomSignature):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::ConfigureV8Float64ArrayTemplate):
(WebCore::V8Float64Array::GetTemplate):
(WebCore::V8Float64Array::HasInstance):
* bindings/scripts/test/V8/V8Float64Array.h:
(V8Float64Array):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
(WebCore::V8TestActiveDOMObject::GetTemplate):
(WebCore::V8TestActiveDOMObject::HasInstance):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(V8TestActiveDOMObject):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::GetTemplate):
(WebCore::V8TestCustomNamedGetter::HasInstance):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(V8TestCustomNamedGetter):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::GetTemplate):
(WebCore::V8TestEventConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(V8TestEventConstructor):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::ConfigureV8TestEventTargetTemplate):
(WebCore::V8TestEventTarget::GetTemplate):
(WebCore::V8TestEventTarget::HasInstance):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(V8TestEventTarget):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::GetTemplate):
(WebCore::V8TestException::HasInstance):
* bindings/scripts/test/V8/V8TestException.h:
(V8TestException):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::ConfigureV8TestInterfaceTemplate):
(WebCore::V8TestInterface::GetTemplate):
(WebCore::V8TestInterface::HasInstance):
* bindings/scripts/test/V8/V8TestInterface.h:
(V8TestInterface):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::GetTemplate):
(WebCore::V8TestMediaQueryListListener::HasInstance):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(V8TestMediaQueryListListener):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructor::GetTemplate):
(WebCore::V8TestNamedConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(V8TestNamedConstructor):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::GetTemplate):
(WebCore::V8TestNode::HasInstance):
* bindings/scripts/test/V8/V8TestNode.h:
(V8TestNode):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::GetTemplate):
(WebCore::V8TestObj::HasInstance):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::GetTemplate):
(WebCore::V8TestOverloadedConstructors::HasInstance):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(V8TestOverloadedConstructors):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
(WebCore::V8TestSerializedScriptValueInterface::HasInstance):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(V8TestSerializedScriptValueInterface):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::ConfigureV8TestTypedefsTemplate):
(WebCore::V8TestTypedefs::GetTemplate):
(WebCore::V8TestTypedefs::HasInstance):
* bindings/scripts/test/V8/V8TestTypedefs.h:
(V8TestTypedefs):
* bindings/v8/V8AdaptorFunction.cpp:
(WebCore::V8AdaptorFunction::getTemplate):
* bindings/v8/V8GCController.cpp:
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::reportMemoryUsage):
(WebCore::V8PerIsolateData::privateTemplate):
(WebCore::V8PerIsolateData::rawTemplate):
(WebCore::V8PerIsolateData::hasInstance):
* bindings/v8/V8PerIsolateData.h:
(WebCore::V8PerIsolateData::rawTemplateMap):
(V8PerIsolateData):
(WebCore::V8PerIsolateData::templateMap):
* bindings/v8/WrapperTypeInfo.h:
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::reloadAttrGetterCustom):
(WebCore::V8Location::replaceAttrGetterCustom):
(WebCore::V8Location::assignAttrGetterCustom):
2013-03-12 Zan Dobersek <zdobersek@igalia.com>
[GTK] Set up the libPlatformGtk.la library
https://bugs.webkit.org/show_bug.cgi?id=111738
Reviewed by Martin Robinson.
No new tests - no new functionality.
* GNUmakefile.am: Reference platformgtk_cppflags, platformgtk_sources variables along with webcoregtk_cppflags, webcoregtk_sources variables.
* GNUmakefile.list.am: Removing GtkVersioning.c and GtkVersioning.h from the sources list, these files have been moved under Source/Platform.
* bindings/gobject/GNUmakefile.am: Ditto on the platformgtk_* variables.
2013-03-12 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] Image,ImageBuffer: add missing parameters to methods
https://bugs.webkit.org/show_bug.cgi?id=112148
Reviewed by Rob Buis.
BitmapImage::draw(), Image::drawPattern() and ImageBuffer::draw()
have a BlendMode parameter since r137011.
ImageBuffer::copyImage() has a ScaleBehavior parameter since r134100.
* platform/graphics/blackberry/ImageBlackBerry.cpp:
(WebCore::BitmapImage::draw):
(WebCore::Image::drawPattern):
* platform/graphics/blackberry/ImageBufferBlackBerry.cpp:
(WebCore::ImageBuffer::copyImage):
(WebCore::ImageBuffer::draw):
2013-03-12 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] MediaPlayerPrivate: fix call to MediaStreamDescriptor::label()
https://bugs.webkit.org/show_bug.cgi?id=112140
Reviewed by Rob Buis.
MediaStreamDescriptor::id() was renamed to MediaStreamDescriptor::label() in r139352.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::toWebMediaStreamDescriptor):
2013-03-12 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [REGRESSION] StepInto (F11) and StepOut (Shift-F11) shortcuts toggle Inspector window full-screen state
https://bugs.webkit.org/show_bug.cgi?id=112113
Reviewed by Alexander Pavlov.
Updated handlers missed in first patch. Added JSDocs to all handlers.
* inspector/front-end/Panel.js: Fixed JSDocs.
* inspector/front-end/CallStackSidebarPane.js:
Added return values. Added JSDocs.
* inspector/front-end/ScriptsPanel.js: Ditto.
* inspector/front-end/GoToLineDialog.js: Added JSDocs.
* inspector/front-end/TimelinePanel.js: Ditto.
2013-03-12 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] DisplayRefreshMonitor: rename m_timestamp back to m_monotonicAnimationStartTime
https://bugs.webkit.org/show_bug.cgi?id=112139
Reviewed by Rob Buis.
This changed in r131131, but it was accidentally renamed back in r144465.
* platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
(WebCore::DisplayRefreshMonitor::displayLinkFired):
2013-03-12 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] FontPlatformData: HarfBuzz renaming
https://bugs.webkit.org/show_bug.cgi?id=112142
Reviewed by Rob Buis.
When the old HarfBuzz code was removed in r141291,
HarfBuzzNGFace.h was renamed to HarfBuzzFace.h and m_harfbuzzFace
was renamed to m_harfBuzzFace.
These changes need to be reflected in the BlackBerry port.
* platform/graphics/blackberry/FontPlatformDataBlackBerry.cpp:
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::platformDataInit):
(WebCore::FontPlatformData::platformDataAssign):
(WebCore::FontPlatformData::harfBuzzFace):
2013-03-12 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] FontCacheBlackBerry: return PassRefPtr<SimpleFontData>
https://bugs.webkit.org/show_bug.cgi?id=112022
Reviewed by Rob Buis.
FontData functions return PassRefPtr since r130160.
* platform/graphics/blackberry/FontCacheBlackBerry.cpp:
(WebCore::FontCache::getFontDataForCharacters):
(WebCore::FontCache::getSimilarFontPlatformData):
(WebCore::FontCache::getLastResortFallbackFont):
* platform/graphics/blackberry/SimpleFontDataBlackBerry.cpp:
(WebCore::SimpleFontData::createScaledFontData):
2013-03-12 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Fix checkContentUpdated behavior in UISourceCode.
https://bugs.webkit.org/show_bug.cgi?id=112037
Reviewed by Alexander Pavlov.
UISourceCode.checkContentUpdated now saves last updated content that was loaded and rejected
by user on the per-file basis (only the last one was saved currently).
* inspector/front-end/FileSystemProjectDelegate.js:
(WebInspector.FileSystemProjectDelegate.prototype.innerCallback):
(WebInspector.FileSystemProjectDelegate.prototype.requestFileContent):
(WebInspector.FileSystemProjectDelegate.prototype.canSetFileContent):
(WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemAdded):
* inspector/front-end/SimpleWorkspaceProvider.js:
(WebInspector.SimpleProjectDelegate.prototype.canSetFileContent):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.checkContentUpdated.contentLoaded):
(WebInspector.UISourceCode.prototype.checkContentUpdated):
(WebInspector.UISourceCode.prototype._commitContent):
(WebInspector.UISourceCode.prototype.addRevision):
(WebInspector.UISourceCode.prototype.commitWorkingCopy):
* inspector/front-end/Workspace.js:
(WebInspector.ProjectDelegate.prototype.canSetFileContent):
(WebInspector.Project.prototype.canSetFileContent):
2013-03-12 Tomas Popela <tpopela@redhat.com>
[Gtk] NBSP are not replaced when using X clipboard
https://bugs.webkit.org/show_bug.cgi?id=112118
Reviewed by Martin Robinson.
We're not replacing nbsp with spaces when using X clipboard
(Shift+Insert or middle mouse button).
* platform/gtk/DataObjectGtk.cpp:
(WebCore::DataObjectGtk::text):
2013-03-12 Florin Malita <fmalita@chromium.org>
SVG Pattern pixelated on inline SVG with CSS transforms
https://bugs.webkit.org/show_bug.cgi?id=111587
Reviewed by Dirk Schulze.
When calculating the resolution for resource image buffers, we need to also consider CSS
transforms. This patch updates calculateTransformationToOutermostSVGCoordinateSystem()
(renamed to calculateTransformationToOutermostCoordinateSystem) to include the affine
component from CSS transforms by walking the parent layer tree.
Test: svg/custom/resources-css-scaled.html
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
* rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::createMaskAndSwapContextForTextGradient):
(WebCore::clipToTextMask):
* rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::applyResource):
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::buildPattern):
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::calculateScreenFontSizeScalingFactor):
(WebCore::SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem):
* rendering/svg/SVGRenderingContext.h:
(SVGRenderingContext):
2013-03-12 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: add html canvas memory details to the native memory overview
https://bugs.webkit.org/show_bug.cgi?id=112123
Reviewed by Alexander Pavlov.
Show memory occupied vby HTMLCanvasElements under Image category
in the native memory overview.
* inspector/front-end/NativeHeapSnapshot.js:
(WebInspector.NativeHeapSnapshot.prototype.images.getImageName):
(WebInspector.NativeHeapSnapshot.prototype.images.getCanvasName):
(WebInspector.NativeHeapSnapshot.prototype.images):
(WebInspector.NativeHeapSnapshot.prototype._addNodes):
2013-03-12 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: ResourceScriptFile diverged state should be correctly reset after debugger reset.
https://bugs.webkit.org/show_bug.cgi?id=112036
Reviewed by Alexander Pavlov.
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptFile):
(WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
(WebInspector.ResourceScriptFile.prototype._maybeDirtyChanged):
2013-03-12 Marja Hölttä <marja@chromium.org>
[V8] Move the GetRawTemplate and HasInstance logic from generated bindings to V8PerIsolateData
https://bugs.webkit.org/show_bug.cgi?id=112136
Reviewed by Kentaro Hara.
When templates for main world and non-main worlds will be separated (bug
111724), HasInstance logic will be a bit ugly: We cannot determine the
world type on the fly, because during GC there is no entered context,
and HasInstance is called during GC. So we need to check against
templates from all the worlds. It's cleaner if that logic is in
V8PerIsolateData.
No new tests (Updated existing bindings tests).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateDomainSafeFunctionGetter):
(GenerateImplementation):
(CreateCustomSignature):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::ConfigureV8Float64ArrayTemplate):
(WebCore::V8Float64Array::GetTemplate):
(WebCore::V8Float64Array::HasInstance):
* bindings/scripts/test/V8/V8Float64Array.h:
(V8Float64Array):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
(WebCore::V8TestActiveDOMObject::GetTemplate):
(WebCore::V8TestActiveDOMObject::HasInstance):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(V8TestActiveDOMObject):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::GetTemplate):
(WebCore::V8TestCustomNamedGetter::HasInstance):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(V8TestCustomNamedGetter):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::GetTemplate):
(WebCore::V8TestEventConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(V8TestEventConstructor):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::ConfigureV8TestEventTargetTemplate):
(WebCore::V8TestEventTarget::GetTemplate):
(WebCore::V8TestEventTarget::HasInstance):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(V8TestEventTarget):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::GetTemplate):
(WebCore::V8TestException::HasInstance):
* bindings/scripts/test/V8/V8TestException.h:
(V8TestException):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::ConfigureV8TestInterfaceTemplate):
(WebCore::V8TestInterface::GetTemplate):
(WebCore::V8TestInterface::HasInstance):
* bindings/scripts/test/V8/V8TestInterface.h:
(V8TestInterface):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::GetTemplate):
(WebCore::V8TestMediaQueryListListener::HasInstance):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(V8TestMediaQueryListListener):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructor::GetTemplate):
(WebCore::V8TestNamedConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(V8TestNamedConstructor):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::GetTemplate):
(WebCore::V8TestNode::HasInstance):
* bindings/scripts/test/V8/V8TestNode.h:
(V8TestNode):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::GetTemplate):
(WebCore::V8TestObj::HasInstance):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::GetTemplate):
(WebCore::V8TestOverloadedConstructors::HasInstance):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(V8TestOverloadedConstructors):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
(WebCore::V8TestSerializedScriptValueInterface::HasInstance):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(V8TestSerializedScriptValueInterface):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::ConfigureV8TestTypedefsTemplate):
(WebCore::V8TestTypedefs::GetTemplate):
(WebCore::V8TestTypedefs::HasInstance):
* bindings/scripts/test/V8/V8TestTypedefs.h:
(V8TestTypedefs):
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::rawTemplate):
(WebCore):
(WebCore::V8PerIsolateData::hasInstance):
* bindings/v8/V8PerIsolateData.h:
(V8PerIsolateData):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::reloadAttrGetterCustom):
(WebCore::V8Location::replaceAttrGetterCustom):
(WebCore::V8Location::assignAttrGetterCustom):
2013-03-12 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Fix JSDocs in TimelinePanel.js
https://bugs.webkit.org/show_bug.cgi?id=112137
Reviewed by Vsevolod Vlasov.
Fix parameter type annotation of _loadFromFile.
* inspector/front-end/TimelinePanel.js: Fixed JSDoc.
2013-03-12 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Add a test for Workspace add/removeMapping methods.
https://bugs.webkit.org/show_bug.cgi?id=112035
Reviewed by Alexander Pavlov.
Test: inspector/debugger/file-system-project-mapping.html
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._mapFileSystemToNetwork.mapFileSystemToNetwork):
(WebInspector.ScriptsPanel.prototype._mapFileSystemToNetwork):
(WebInspector.ScriptsPanel.prototype._mapNetworkToFileSystem.mapNetworkToFileSystem):
(WebInspector.ScriptsPanel.prototype._mapNetworkToFileSystem):
* inspector/front-end/Workspace.js:
(WebInspector.Project.prototype._fileAdded):
(WebInspector.Workspace.prototype.addMapping):
2013-03-12 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: SourceFrames are leaking on reload.
https://bugs.webkit.org/show_bug.cgi?id=111961
Reviewed by Alexander Pavlov.
Added dispose method on UISourceCodeFrame.
Scripts panel now calls dispose when SourceFrame is removed and JavaScriptSourceFrame
could remove breakpoint manager listeners in it.
TabbedEditorContainer does not call viewForFile other than in appendFileTab methods to
avoid recreating SourceFrame for uiSourceCode when it was already removed.
Test: inspector/debugger/breakpoint-manager-listeners-count.html
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame.prototype.dispose):
* inspector/front-end/ScriptsPanel.js:
* inspector/front-end/TabbedEditorContainer.js:
(WebInspector.TabbedEditorContainer.prototype._addScrollAndSelectionListeners):
(WebInspector.TabbedEditorContainer.prototype._removeScrollAndSelectionListeners):
(WebInspector.TabbedEditorContainer.prototype._tabClosed):
* inspector/front-end/UISourceCodeFrame.js:
(WebInspector.UISourceCodeFrame.prototype.dispose):
2013-03-12 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Elements] Unable to undo "Edit as HTML" changes in the editor
https://bugs.webkit.org/show_bug.cgi?id=112119
Reviewed by Vsevolod Vlasov.
No new tests, a UI change.
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.handleShortcut): Do not undo/redo DOM/CSS changes if editing DOM text.
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline.prototype.editing): Added.
2013-03-12 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] there are bugs in TokenHighlight feature
https://bugs.webkit.org/show_bug.cgi?id=112039
Reviewed by Vsevolod Vlasov.
Fix token highlight in codeMirror experiment
- rewrite token highlight overlay mode to highlight words, not
substrings
- add workaround to avoid selection of already selected word
No new tests.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype._cursorChange):
(WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype._removeHighlight):
(WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype.nextToken):
(WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype._addHighlight):
* inspector/front-end/cm/cmdevtools.css:
(.line-with-selection .cm-column-with-selection):
2013-03-12 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145514.
http://trac.webkit.org/changeset/145514
https://bugs.webkit.org/show_bug.cgi?id=112134
breaks Mac build (Requested by falken on #webkit).
* dom/Element.cpp:
* dom/Element.h:
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchSimulatedClick):
* dom/GestureEvent.cpp:
(WebCore::GestureEventDispatchMediator::dispatchEvent):
* dom/MouseEvent.cpp:
(WebCore::MouseEventDispatchMediator::dispatchEvent):
* dom/Node.cpp:
(WebCore):
(WebCore::Node::isInert):
(WebCore::Node::handleLocalEvents):
(WebCore::Node::disabled):
(WebCore::Node::willRespondToMouseMoveEvents):
(WebCore::Node::willRespondToMouseClickEvents):
(WebCore::Node::willRespondToTouchEvents):
* dom/Node.h:
(Node):
2013-03-12 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] highlight matching braces
https://bugs.webkit.org/show_bug.cgi?id=112041
Reviewed by Vsevolod Vlasov.
Add "matchbrackets" add-on to CodeMirror text editor add override
default styles for matched and unmatched braces.
No new tests.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/cm/cmdevtools.css:
(.CodeMirror-matchingbracket):
(.CodeMirror-nonmatchingbracket):
* inspector/front-end/cm/matchbrackets.js: Added.
(.):
2013-03-12 Matt Falkenhagen <falken@chromium.org>
Refactoring: Pull Node::disabled() and Node::isInert() down to Element.
https://bugs.webkit.org/show_bug.cgi?id=112085
Reviewed by Hajime Morrita.
Node is too low a level for these methods.
No new tests, just refactoring.
* dom/Element.cpp:
(WebCore::Element::disabled):
(WebCore):
(WebCore::Element::isInert):
* dom/Element.h:
(Element):
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchSimulatedClick):
* dom/GestureEvent.cpp:
(WebCore::GestureEventDispatchMediator::dispatchEvent):
* dom/MouseEvent.cpp:
(WebCore::MouseEventDispatchMediator::dispatchEvent):
* dom/Node.cpp:
(WebCore::Node::handleLocalEvents):
(WebCore::Node::willRespondToMouseMoveEvents):
(WebCore::Node::willRespondToMouseClickEvents):
(WebCore::Node::willRespondToTouchEvents):
* dom/Node.h:
(Node):
2013-03-12 Marja Hölttä <marja@chromium.org>
[V8] Get rid of function-level static FunctionTemplates in generated bindings code
https://bugs.webkit.org/show_bug.cgi?id=111971
Reviewed by Jochen Eisinger.
In the future we'll create and store function templates for main world
and non-main worlds separately (see bug 111724), having function
templates as static variables inside functions will break the
functionality.
No new tests (updated the bindings test expectations).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateDomainSafeFunctionGetter):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::V8PerIsolateData):
(WebCore::V8PerIsolateData::privateTemplate):
(WebCore):
* bindings/v8/V8PerIsolateData.h:
(V8PerIsolateData):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::reloadAttrGetterCustom):
(WebCore::V8Location::replaceAttrGetterCustom):
(WebCore::V8Location::assignAttrGetterCustom):
2013-03-12 Takashi Sakamoto <tasak@google.com>
[Refactoring] Implement RuleCollector
https://bugs.webkit.org/show_bug.cgi?id=109916
Reviewed by Antti Koivisto.
Implemented rule collector for an element and collector for a page.
Not all members in class State are required entire while resolving
a style.
No new tests, because just refactoring.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSAllInOne.cpp:
Added ElementRuleCollector and PageRuleCollector.
* css/DocumentRuleSets.cpp:
(WebCore::ShadowDistributedRules::collectMatchRequests):
Since behaviorAtBoundary is a state owned by ElementRuleCollector,
removed from here.
* css/DocumentRuleSets.h:
(WebCore::ShadowDistributedRules::isEmpty):
Added to quickly check whether there exist any ShadowDistributedRules
or not.
* css/ElementRuleCollector.cpp: Copied from Source/WebCore/css/StyleResolver.cpp.
(WebCore):
(WebCore::ElementRuleCollector::matchedResult):
(WebCore::ElementRuleCollector::matchedRuleList):
(WebCore::ElementRuleCollector::addMatchedRule):
(WebCore::ElementRuleCollector::clearMatchedRules):
(WebCore::ElementRuleCollector::ensureRuleList):
(WebCore::ElementRuleCollector::addElementStyleProperties):
(WebCore::ElementRuleCollector::collectMatchingRules):
(WebCore::ElementRuleCollector::collectMatchingRulesForRegion):
(WebCore::ElementRuleCollector::sortAndTransferMatchedRules):
(WebCore::ElementRuleCollector::matchScopedAuthorRules):
(WebCore::ElementRuleCollector::matchHostRules):
(WebCore::ElementRuleCollector::matchShadowDistributedRules):
(WebCore::ElementRuleCollector::matchAuthorRules):
(WebCore::ElementRuleCollector::matchUserRules):
(WebCore::ElementRuleCollector::matchUARules):
(WebCore::ElementRuleCollector::ruleMatches):
(WebCore::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::ElementRuleCollector::sortMatchedRules):
(WebCore::ElementRuleCollector::matchAllRules):
Moved these methods from StyleResolver to this class.
(WebCore::ElementRuleCollector::hasAnyMatchingRules):
This method is used for checking whether a given element can share
a cache.
* css/ElementRuleCollector.h: Copied from Source/WebCore/css/StyleResolver.h.
(WebCore):
(WebCore::ElementRuleCollector::ElementRuleCollector):
Use styleResolver instance to initialize its member variables, i.e.
SelectorFilter, RuleSets, InspectorCSSOMWrappers, and
StyleScopedResolver.
(ElementRuleCollector):
(WebCore::ElementRuleCollector::setMode):
(WebCore::ElementRuleCollector::setPseudoStyleRequest):
(WebCore::ElementRuleCollector::setSameOriginOnly):
(WebCore::ElementRuleCollector::setRegionForStyling):
Mode, SameOriginOnly, RegionForStyling are only used while collecting
matched rules.
(WebCore::ElementRuleCollector::setMedium):
Need to know which default stylesheet should be looked up.
(WebCore::ElementRuleCollector::document):
* css/PageRuleCollector.cpp: Copied from Source/WebCore/css/StyleResolver.cpp.
(WebCore::comparePageRules):
(WebCore::PageRuleCollector::isLeftPage):
(WebCore::PageRuleCollector::isFirstPage):
(WebCore::PageRuleCollector::pageName):
(WebCore::PageRuleCollector::matchAllPageRules):
(WebCore::PageRuleCollector::matchPageRules):
(WebCore::checkPageSelectorComponents):
(WebCore::PageRuleCollector::matchPageRulesForList):
Moved from StyleResolver.
* css/PageRuleCollector.h: Copied from Source/WebCore/css/StyleResolver.h.
(WebCore):
(WebCore::PageRuleCollector::PageRuleCollector):
(PageRuleCollector):
(WebCore::PageRuleCollector::matchedResult):
* css/StyleResolver.cpp:
(WebCore):
(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::MatchResult::addMatchedProperties):
(WebCore::StyleResolver::State::initForStyleResolve):
(WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::applyMatchedProperties):
* css/StyleResolver.h:
(WebCore::MatchRequest::MatchRequest):
Removed behaviorAtBoundary. Instead, ElementRuleCollector have the
state.
(MatchRequest):
(WebCore::StyleResolver::selectorFilter):
Added to obtain SelectorFilter in ElementRuleCollector's constructor.
(StyleResolver):
(MatchResult):
(WebCore::StyleResolver::State::State):
To pass ASSERT in StyleResolver::applyProperties, need to keep
m_regionForStyling.
(State):
(WebCore::StyleResolver::State::regionForStyling):
(WebCore::StyleResolver::State::useSVGZoomRules):
(WebCore::StyleResolver::hasSelectorForId):
(WebCore):
(WebCore::checkRegionSelector):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::willMatchRule):
Removed StyleResolver from its parameter list. Instead, added
InspectorCSSOMWrappers and DocumentStyleSheetCollection.
* inspector/InspectorCSSAgent.h:
(WebCore):
(InspectorCSSAgent):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willMatchRuleImpl):
* inspector/InspectorInstrumentation.h:
(WebCore):
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::willMatchRule):
2013-03-12 Floris Bos <bos@je-eigen-domein.nl>
[Qt] WebKit fails to compile if EGL headers are not in default INCLUDEPATH
https://bugs.webkit.org/show_bug.cgi?id=111859
Reviewed by Jocelyn Turcotte.
The 3D graphics code wants to include EGL header files.
But on some platforms such as the Raspberry Pi those are not in /usr/include
but in another folder.
Fix adds "egl" to CONFIG when OpenGL ES2 is used, so the right include
paths are added.
* WebCore.pri:
2013-03-12 Mike West <mkwst@chromium.org>
XSSAuditor should send only one console error when blocking a page.
https://bugs.webkit.org/show_bug.cgi?id=110733
Reviewed by Daniel Bates.
Currently, we send two console errors when XSSAuditor blocks a page:
"Refused to execute a JavaScript script. Source code of script found
within request.\n", and "Entire page will be blocked.".
We should only send one message, tuning it properly for the context, and
including the URL of the page effected by the XSSAuditor's work.
Covered by rebaselines of all the XSSAuditor and 'reflected-xss' tests.
* html/parser/XSSAuditor.cpp:
* html/parser/XSSAuditor.h:
(WebCore::XSSAuditor::XSSAuditor):
Add two booleans to track the headers used to set the XSSAuditor state.
(WebCore::XSSAuditor::init):
(WebCore::XSSAuditor::filterToken):
Add detail about the header status to the constructed XSSInfo object.
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::buildConsoleError):
Move message construction out into a separate inlined function, as
it's becoming complex.
(WebCore::XSSAuditorDelegate::didBlockScript):
Fold the "Entire page will be blocked" message into the main console
error.
* html/parser/XSSAuditorDelegate.h:
(WebCore::XSSInfo::create):
(WebCore::XSSInfo::XSSInfo):
Add detail about header status to XSSInfo in order to correctly
construct the console error.
2013-03-12 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145494.
http://trac.webkit.org/changeset/145494
https://bugs.webkit.org/show_bug.cgi?id=112117
Breaks Chromium Mac (Requested by pfeldman on #webkit).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateDomainSafeFunctionGetter):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::V8PerIsolateData):
* bindings/v8/V8PerIsolateData.h:
(V8PerIsolateData):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::reloadAttrGetterCustom):
(WebCore::V8Location::replaceAttrGetterCustom):
(WebCore::V8Location::assignAttrGetterCustom):
2013-03-12 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: add memory instrumentation for ImageLoader
https://bugs.webkit.org/show_bug.cgi?id=112115
Reviewed by Alexander Pavlov.
Added memory instrumentation to ImageLoader. CachedImage referenced
by the loader is reported as having retaining reference. This allows
to see in the native memory graph CachedImages that are not reachable
from MemoryCache but referenced by HTMLImageElement.
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::reportMemoryUsage):
(WebCore):
* loader/ImageLoader.h:
(ImageLoader):
2013-03-12 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Broken shortcuts in Snippets SourceFrame
https://bugs.webkit.org/show_bug.cgi?id=112038
Reviewed by Pavel Feldman.
* inspector/front-end/SnippetJavaScriptSourceFrame.js:
(WebInspector.SnippetJavaScriptSourceFrame):
(WebInspector.SnippetJavaScriptSourceFrame.prototype._onKeyDown):
2013-03-12 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Timeline] File selector control becomes visible on "tab" navigation.
https://bugs.webkit.org/show_bug.cgi?id=111710
Reviewed by Pavel Feldman.
Solution: Exclude file selector control from tab-navigation flow.
* inspector/front-end/FileUtils.js: Set tab-index to control.
* inspector/front-end/TimelinePanel.js: Remove duplicating code.
* inspector/front-end/inspector.css:
(.status-bar-item): Make scroll height equal to offset height.
2013-03-12 Marja Hölttä <marja@chromium.org>
[V8] Get rid of function-level static FunctionTemplates in generated bindings code
https://bugs.webkit.org/show_bug.cgi?id=111971
Reviewed by Kentaro Hara.
In the future we'll create and store function templates for main world
and non-main worlds separately (see bug 111724), having function
templates as static variables inside functions will break the
functionality.
No new tests (updated the bindings test expectations).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateDomainSafeFunctionGetter):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::V8PerIsolateData):
(WebCore::V8PerIsolateData::privateTemplate):
(WebCore):
* bindings/v8/V8PerIsolateData.h:
(V8PerIsolateData):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::reloadAttrGetterCustom):
(WebCore::V8Location::replaceAttrGetterCustom):
(WebCore::V8Location::assignAttrGetterCustom):
2013-03-12 Tien-Ren Chen <trchen@chromium.org>
Need to notify ScrollingCoordinator when frame scrollbars are destroyed
https://bugs.webkit.org/show_bug.cgi?id=112104
Reviewed by James Robinson.
Need to notify ScrollingCoordinatorChromium whenever m_layerForHorizontalScrollbar /
m_layerForVerticalScrollbar changes, for correct lifetime management.
No new tests. Difficult to test lifetime management internal to ScrollingCoordinatorChromium.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::destroyRootLayer):
2013-03-11 Simon Fraser <simon.fraser@apple.com>
We'll get there eventually.
* platform/graphics/ca/win/PlatformCAFiltersWin.cpp:
2013-03-11 Simon Fraser <simon.fraser@apple.com>
Fumbled adding new files to the vcproj. Fixing.
* WebCore.vcproj/WebCore.vcproj:
2013-03-11 Simon Fraser <simon.fraser@apple.com>
Fix the Windows build by providing implementations of PlatformCAFilters::setFiltersOnLayer(),
PlatformCAFilters::numAnimatedFilterProperties() and PlatformCAFilters::animatedFilterPropertyName(),
adding PlatformCAFiltersWin.cpp to the vcproj.
* WebCore.vcproj/WebCore.vcproj:
* platform/graphics/ca/PlatformCAFilters.h:
(PlatformCAFilters):
* platform/graphics/ca/win/PlatformCAFiltersWin.cpp: Copied from Source/WebCore/platform/graphics/ca/PlatformCAFilters.h.
(PlatformCAFilters::setFiltersOnLayer):
(PlatformCAFilters::numAnimatedFilterProperties):
(PlatformCAFilters::animatedFilterPropertyName):
2013-03-11 Jochen Eisinger <jochen@chromium.org>
Don't create multiple user gesture indicators when forwarding events to sub frames
https://bugs.webkit.org/show_bug.cgi?id=111923
Reviewed by Adam Barth.
Ports that implement consumable user gestures depend on a single user
gesture indicator being created in response to a single user gesture.
Test: platform/chromium/fast/events/popup-allowed-from-gesture-only-once-iframes.html
* dom/UserGestureIndicator.cpp:
(WebCore::isDefinite):
(WebCore::UserGestureIndicator::UserGestureIndicator):
(WebCore::UserGestureIndicator::processingUserGesture):
* dom/UserGestureIndicator.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::keyEvent):
(WebCore::EventHandler::handleTouchEvent):
2013-03-11 Simon Fraser <simon.fraser@apple.com>
Fix Windows build.
* platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
2013-03-11 Tim Horton <timothy_horton@apple.com>
Unreviewed build fix after http://trac.webkit.org/changeset/145472.
* platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
(PlatformCAFilters::colorMatrixValueForFilter):
2013-03-11 Takashi Sakamoto <tasak@google.com>
[CSS] shadow from radius has wrong render in webkit
https://bugs.webkit.org/show_bug.cgi?id=99928
Reviewed by Simon Fraser.
No rounded cornder should be expanded in the mixed case, i.e. some
corners are rounded, but others are not rounded.
Need to look at each corner independently,
i.e. top-left, top-right, bottom-left and bottom-right, and
to expand corners whose width and height are larger than 0.
Test: fast/box-shadow/box-shadow-with-zero-radius.html
* platform/graphics/RoundedRect.cpp:
(WebCore::RoundedRect::Radii::expand):
2013-03-11 Simon Fraser <simon.fraser@apple.com>
[CA] Animations of CSS filters don't work correctly
https://bugs.webkit.org/show_bug.cgi?id=111905
Reviewed by Dean Jackson.
Fix various issues with transitions of composited filters on Mac,
most of which stemmed from the conversion to use CAFilter.
Put the Mac CA filter-related code into a new file, PlatformCAFilters,
to group code that creates filter properties into a single place.
Animations of CIFilters using multiple values never worked correctly,
because we would clobber all but the last property for each filter,
so fix that.
Changes in the moved filter code:
- Made use of sepiaFullConstants in the CIFilter and CAFilter code.
- For CI, return CIVectors instead of NSArrays of NSNumbers.
- Fudge the inputColor for the CI grayscale filter to better match software filters.
- fix some cases where the behavior was wrong in the isDefault() case.
* WebCore.xcodeproj/project.pbxproj: Add PlatformCAFilters.h, PlatformCAFiltersMac.mm.
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::animationNameForTransition): This function was creating a string
containing non-ASCII characters.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::animationIdentifier): To handle CIFilter animations, we need to tack another
index onto the animation identifier, since some animations require animating multiple
properties of the same CIFilter. Add "subIndex" for this.
(WebCore::GraphicsLayerCA::moveOrCopyAnimations): Ditto.
(WebCore::GraphicsLayerCA::updateAnimations): Ditto.
(WebCore::GraphicsLayerCA::setAnimationOnLayer): Ditto.
(WebCore::GraphicsLayerCA::removeCAAnimationFromLayer): Ditto.
(WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer): Ditto.
(WebCore::GraphicsLayerCA::createAnimationFromKeyframes): Ditto.
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations): Ditto.
* platform/graphics/ca/GraphicsLayerCA.h: Ditto.
(WebCore::GraphicsLayerCA::LayerPropertyAnimation::LayerPropertyAnimation):
(LayerPropertyAnimation):
* platform/graphics/ca/PlatformCAAnimation.h:
(PlatformCAAnimation): Functions moved.
* platform/graphics/ca/PlatformCAFilters.h: Added.
(PlatformCAFilters):
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
(PlatformCAAnimation::setFromValue):
(PlatformCAAnimation::setToValue):
(PlatformCAAnimation::setValues):
* platform/graphics/ca/mac/PlatformCAFiltersMac.mm: Added.
(PlatformCAFilters::filterValueForOperation):
(PlatformCAFilters::colorMatrixValueForFilter):
(PlatformCAFilters::numAnimatedFilterProperties):
(PlatformCAFilters::animatedFilterPropertyName):
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::PlatformCALayer):
(PlatformCALayer::addAnimationForKey):
(PlatformCALayer::setFilters):
(PlatformCALayer::filtersCanBeComposited):
2013-03-11 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145462.
http://trac.webkit.org/changeset/145462
https://bugs.webkit.org/show_bug.cgi?id=112097
Compilation failure in PluginView.cpp (Requested by jamesr_ on
#webkit).
* accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::canSetFocusAttribute):
* bindings/objc/DOM.mm:
(kitClass):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::prepareListenerObject):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* editing/ApplyStyleCommand.cpp:
(WebCore::isLegacyAppleStyleSpan):
(WebCore::isEmptyFontTag):
(WebCore::ApplyStyleCommand::applyBlockStyle):
* editing/FormatBlockCommand.cpp:
(WebCore::isElementForFormatBlock):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::isMailPasteAsQuotationNode):
(WebCore::haveSameTagName):
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
(WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
* history/CachedPage.cpp:
(WebCore::CachedPage::restore):
* html/ColorInputType.cpp:
(WebCore::ColorInputType::suggestions):
* html/HTMLTableRowsCollection.cpp:
(WebCore::isInHead):
(WebCore::isInBody):
(WebCore::isInFoot):
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::innerPatchNode):
* page/PageSerializer.cpp:
(WebCore::SerializerMarkupAccumulator::appendCustomAttributes):
* plugins/PluginView.cpp:
(WebCore::PluginView::getValue):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::paintContents):
(WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::name):
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::mediaElement):
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::autosaveName):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::textFormControlElement):
(WebCore::updateUserModifyProperty):
* rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::updateFromElement):
* rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::updateFromElement):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::XMLDocumentParser::endElementNs):
2013-03-11 Alexey Proskuryakov <ap@apple.com>
Move SharedWorkerRepository functions out of DefaultSharedWorkerRepository
https://bugs.webkit.org/show_bug.cgi?id=100418
Reviewed by Sam Weinig.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Added SharedWorkerRepository.cpp.
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
Chromium uses WebKit/chromium/src/SharedWorkerRepository.cpp instead of
WebCore/workers/DefaultSharedWorkerRepository.cpp. Not sure why it's added and
then excluded, but did the same with the new SharedWorkerRepository.cpp, which
just contains some code moved from that file.
* workers/DefaultSharedWorkerRepository.cpp:
(WebCore::SharedWorkerScriptLoader::load): Removed a PLATFORM(CHROMIUM) clause,
chromium doesn't compile this file.
(WebCore::DefaultSharedWorkerRepository::connectToWorker): Added a FIXME about
seemingly wrong code.
* workers/SharedWorkerRepository.cpp: Added.
(WebCore::SharedWorkerRepository::isAvailable):
(WebCore::SharedWorkerRepository::connect):
(WebCore::SharedWorkerRepository::documentDetached):
(WebCore::SharedWorkerRepository::hasSharedWorkers):
Moved from DefaultSharedWorkerRepository.cpp, because this is part of SharedWorkerRepository.
2013-03-11 Adam Barth <abarth@webkit.org>
Make BackgroundHTMLParser work with doc.writes that enter or leave foreign content
https://bugs.webkit.org/show_bug.cgi?id=109764
Reviewed by Eric Seidel.
Previously, we were not reseting the state of the
HTMLTreeBuilderSimulator when we failed speculative parsing. This had a
number of observable consequences, including not parsing CDATA sections
correctly when document.write caused us to enter foreign content.
Test: fast/parser/document-write-svg-cdata.html
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::resumeFrom):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
* html/parser/BackgroundHTMLParser.h:
(Checkpoint):
(BackgroundHTMLParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::validateSpeculations):
(WebCore::HTMLDocumentParser::didFailSpeculation):
* html/parser/HTMLDocumentParser.h:
(ParsedChunk):
* html/parser/HTMLElementStack.h:
(WebCore::HTMLElementStack::ElementRecord::namespaceURI):
* html/parser/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::options):
(WebCore::HTMLTreeBuilder::openElements):
(HTMLTreeBuilder):
* html/parser/HTMLTreeBuilderSimulator.cpp:
(WebCore::HTMLTreeBuilderSimulator::stateFor):
(WebCore):
* html/parser/HTMLTreeBuilderSimulator.h:
(WebCore):
(WebCore::HTMLTreeBuilderSimulator::state):
(WebCore::HTMLTreeBuilderSimulator::setState):
(HTMLTreeBuilderSimulator):
2013-03-11 Abhishek Arya <inferno@chromium.org>
Replace static_casts with to* functions.
https://bugs.webkit.org/show_bug.cgi?id=112072
Reviewed by Philip Rogers.
to* functions are preferred over static_cast calls since they
help to catch bad casts easily on the testing infrastructure.
* accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::canSetFocusAttribute):
* bindings/objc/DOM.mm:
(kitClass):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::prepareListenerObject):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* editing/ApplyStyleCommand.cpp:
(WebCore::isLegacyAppleStyleSpan):
(WebCore::isEmptyFontTag):
(WebCore::ApplyStyleCommand::applyBlockStyle):
* editing/FormatBlockCommand.cpp:
(WebCore::isElementForFormatBlock):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::isMailPasteAsQuotationNode):
(WebCore::haveSameTagName):
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
(WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
* history/CachedPage.cpp:
(WebCore::CachedPage::restore):
* html/ColorInputType.cpp:
(WebCore::ColorInputType::suggestions):
* html/HTMLTableRowsCollection.cpp:
(WebCore::isInHead):
(WebCore::isInBody):
(WebCore::isInFoot):
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::innerPatchNode):
* page/PageSerializer.cpp:
(WebCore::SerializerMarkupAccumulator::appendCustomAttributes):
* plugins/PluginView.cpp:
(WebCore::PluginView::getValue):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::paintContents):
(WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::name):
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::mediaElement):
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::autosaveName):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::textFormControlElement):
(WebCore::updateUserModifyProperty):
* rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::updateFromElement):
* rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::updateFromElement):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::XMLDocumentParser::endElementNs):
2013-03-11 Philip Rogers <pdr@google.com>
Replace static_casts for SVGSVGElement and SVGStopElement
https://bugs.webkit.org/show_bug.cgi?id=111651
Reviewed by Stephen Chenney.
toSVGSVGElement and toSVGStopElement are preferred over static_casts because bad casts
can be caught on our testing infrastructure. This patches replaces all static_casts for
SVGSVGElement and SVGStopElement with toSVGSVGElement and toSVGStopElement, respectively.
Additionaly, this patch renames SVGElement::isSVG to SVGElement::isSVGSVGElement to
remove ambiguity for callers who may confuse this with isSVGElement.
No new tests as this is covered with existing tests.
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::computeIntrinsicRatioInformation):
(WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
(WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
(WebCore::RenderSVGRoot::layout):
(WebCore::RenderSVGRoot::buildLocalToBorderBoxTransform):
(WebCore::RenderSVGRoot::hasRelativeDimensions):
(WebCore::RenderSVGRoot::hasRelativeIntrinsicLogicalWidth):
(WebCore::RenderSVGRoot::hasRelativeLogicalHeight):
* rendering/svg/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::determineIfLayoutSizeChanged):
(WebCore::RenderSVGViewportContainer::calcViewport):
(WebCore::RenderSVGViewportContainer::viewportTransform):
* svg/SVGDocument.cpp:
(WebCore::SVGDocument::rootElement):
(WebCore::SVGDocument::childShouldCreateRenderer):
* svg/SVGElement.cpp:
(WebCore::SVGElement::ownerSVGElement):
* svg/SVGElement.h:
(WebCore::SVGElement::isSVGSVGElement):
* svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::buildStops):
* svg/SVGLengthContext.cpp:
(WebCore::SVGLengthContext::determineViewport):
* svg/SVGSVGElement.h:
(WebCore):
(WebCore::toSVGSVGElement):
* svg/SVGStopElement.h:
(WebCore::toSVGStopElement):
(WebCore):
2013-03-11 Tony Chang <tony@chromium.org>
Small code cleanup in RenderFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=112076
Reviewed by Ojan Vafai.
No new tests, this is a refactor and existing tests in css3/flexbox should pass.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock): Remove unused param from repositionLogicalHeightDependentFlexItems.
(WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems): Remove unused param from repositionLogicalHeightDependentFlexItems.
The clientLogicalBottom can't have changed in this time (the only thing we've done is align children).
(WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Just call layout() if we marked the flexitem as needing layout.
(WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Just call layout() if we marked the flexitem as needing layout.
* rendering/RenderFlexibleBox.h:
(RenderFlexibleBox): Remove unused param from repositionLogicalHeightDependentFlexItems.
2013-03-11 Jochen Eisinger <jochen@chromium.org>
Rename DefinitelyProcessingUserGesture to DefinitelyProcessingNewUserGesture
https://bugs.webkit.org/show_bug.cgi?id=111959
Reviewed by Alexey Proskuryakov.
The rationale is that the UserGestureIndicator will increase the number
of consumable user gestures when it's invoked with what is now
DefinitelyProcessingNewUserGesture.
In a follow-up change I will reintroduce DefinitelyProcessingUserGesture
which will only increase the consumable user gesture count if we are
not already processing a user gesture.
No new tests, no change in functionality.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::increment):
(WebCore::AccessibilityNodeObject::decrement):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::press):
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::executeScript):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::executeScriptInWorld):
* bindings/v8/NPV8Object.cpp:
(_NPN_EvaluateHelper):
* dom/UserGestureIndicator.cpp:
(WebCore::isDefinite):
(WebCore::UserGestureIndicator::UserGestureIndicator):
(WebCore::UserGestureIndicator::processingUserGesture):
* dom/UserGestureIndicator.h:
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::openInNewTab):
* inspector/InspectorFrontendHost.cpp:
(WebCore::FrontendMenuProvider::contextMenuItemSelected):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::navigate):
* loader/NavigationScheduler.cpp:
(WebCore::ScheduledURLNavigation::fire):
(WebCore::ScheduledURLNavigation::didStartTimer):
(WebCore::ScheduledRedirect::fire):
(WebCore::ScheduledRefresh::fire):
(WebCore::ScheduledHistoryNavigation::fire):
(WebCore::ScheduledFormSubmission::fire):
(WebCore::ScheduledFormSubmission::didStartTimer):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::keyEvent):
(WebCore::EventHandler::handleTouchEvent):
* platform/chromium/PopupContainer.cpp:
(WebCore::PopupContainer::handleMouseDownEvent):
(WebCore::PopupContainer::handleMouseMoveEvent):
(WebCore::PopupContainer::handleMouseReleaseEvent):
(WebCore::PopupContainer::handleWheelEvent):
(WebCore::PopupContainer::handleKeyEvent):
2013-03-11 Yuki Sekiguchi <yuki.sekiguchi@access-company.com>
Ruby text is incorrectly positioned when its writing-mode is changed to vertical after layout is done
https://bugs.webkit.org/show_bug.cgi?id=96592
Reviewed by Hajime Morrita.
Fixed logical left of RenderRubyText is not cleared.
This causes trouble when RenderRubyTest is laid out vertically after horizontally.
Horizontal layout set logical top(== y).
Vertical layout don't set logical left(== y).
RenderRubyText::y remain old one.
We clear old RenderRubyText::y at the first part of layout().
Test: fast/writing-mode/ruby-text-logical-left.html
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::layout): Reset logicalLeft not to reuse old one.
2013-03-11 Lamarque V. Souza <Lamarque.Souza@basyskom.com>
[css3-text] Add partial parsing support for text-underline-position property from CSS3 Text
https://bugs.webkit.org/show_bug.cgi?id=102491
Reviewed by Julien Chaffraix.
This patch extends the existing parsing to support 'auto', 'alphabetic' and 'under'. We don't fully match
the specification as we don't support [ left | right ] and this is left for another implementation
as the rendering will need to be added.
Test: fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseTextUnderlinePosition):
* css/CSSParser.h:
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TextUnderlinePosition):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
Added parsing-related checks for text-underline-position property.
* css/CSSPropertyNames.in: Added '-webkit-underline-position' property.
* css/CSSValueKeywords.in:
* css/SVGCSSValueKeywords.in:
* css/StyleBuilder.cpp:
(ApplyPropertyTextUnderlinePosition):
(WebCore::ApplyPropertyTextUnderlinePosition::applyValue):
(WebCore::ApplyPropertyTextUnderlinePosition::createHandler):
(WebCore::StyleBuilder::StyleBuilder):
Set property handler for text-underline-position.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
Added support for m_textUnderlinePosition on copy constructor and operator
assignment functions.
* rendering/style/StyleRareInheritedData.h:
(StyleRareInheritedData): Added m_textUnderlinePosition here as it won't be used regularly.
2013-03-11 Christian Biesinger <cbiesinger@chromium.org>
Hit testing should use ancestorInThisScope to get the non-shadow ancestor
https://bugs.webkit.org/show_bug.cgi?id=112068
Reviewed by Dimitri Glazkov.
Tests: media/nodesFromRect-shadowContent.html
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::setToNonShadowAncestor):
(WebCore::HitTestResult::addNodeToRectBasedTestResult):
Use ancestorInThisScope which is not deprecated and which produces
correct results for nested shadow trees (e.g. in case of <video>,
which contains <input> elements for the controls, which themselves
have shadow trees)
2013-03-11 Abhishek Arya <inferno@chromium.org>
Replace static_cast with to* helper functions.
https://bugs.webkit.org/show_bug.cgi?id=112045
Reviewed by Eric Seidel.
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::removeMethodCustom):
(WebCore::V8HTMLOptionsCollection::indexedPropertySetter):
* bindings/v8/custom/V8NamedNodesCollection.cpp:
(WebCore::V8NamedNodesCollection::namedItem):
* bindings/v8/custom/V8NodeCustom.cpp:
(WebCore::wrap):
* editing/BreakBlockquoteCommand.cpp:
(WebCore::BreakBlockquoteCommand::doApply):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::insertNodeAt):
(WebCore::CompositeEditCommand::pushAnchorElementDown):
(WebCore::CompositeEditCommand::breakOutOfEmptyListItem):
(WebCore::CompositeEditCommand::splitTreeToNode):
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create):
* platform/chromium/PasteboardChromium.cpp:
(WebCore::Pasteboard::writeImage):
* platform/mac/HTMLConverter.mm:
(+[WebHTMLConverter editingAttributedStringFromRange:]):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::frameContentsCompositor):
(WebCore::RenderLayerCompositor::requiresCompositingForVideo):
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::plugInImageElement):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::updateFromElement):
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::idChanged):
2013-03-11 James Robinson <jamesr@chromium.org>
[chromium] Use SkMatrix44 instead of WebTransformationMatrix in animation APIs
https://bugs.webkit.org/show_bug.cgi?id=111791
Reviewed by Adrienne Walker.
Adds a new utility function to convert a TransformationMatrix to an SkMatrix44 and
uses it in AnimationTranslationUtil and GraphicsLayerChromium.
* WebCore.gypi:
* platform/chromium/support/WebTransformationMatrix.cpp:
(WebKit::WebTransformationMatrix::WebTransformationMatrix):
* platform/graphics/chromium/AnimationTranslationUtil.cpp:
(WebCore::toWebTransformOperations):
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::updateTransform):
(WebCore::GraphicsLayerChromium::updateChildrenTransform):
* platform/graphics/chromium/TransformSkMatrix44Conversions.cpp:
(WebCore::TransformSkMatrix44Conversions::convert):
* platform/graphics/chromium/TransformSkMatrix44Conversions.h:
(TransformSkMatrix44Conversions):
2013-03-11 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145435.
http://trac.webkit.org/changeset/145435
https://bugs.webkit.org/show_bug.cgi?id=112082
Still does not compile (Requested by jamesr on #webkit).
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::getObjectStores):
(WebCore::IDBBackingStore::createObjectStore):
(WebCore::IDBBackingStore::deleteObjectStore):
(WebCore::IDBBackingStore::getRecord):
(WebCore::IDBBackingStore::putRecord):
(WebCore::IDBBackingStore::clearObjectStore):
(WebCore::IDBBackingStore::deleteRecord):
(WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBBackingStore::getIndexes):
(WebCore::IDBBackingStore::createIndex):
(WebCore::IDBBackingStore::deleteIndex):
(WebCore::IDBBackingStore::putIndexDataForRecord):
(WebCore::IDBBackingStore::findKeyInIndex):
(WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
(WebCore::IDBBackingStore::keyExistsInIndex):
(WebCore::indexCursorOptions):
* Modules/indexeddb/IDBBackingStore.h:
(IDBBackingStore):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::DeleteIndexOperation::create):
(WebCore::DeleteIndexOperation::DeleteIndexOperation):
(DeleteIndexOperation):
(WebCore::IDBDatabaseBackendImpl::openInternal):
(WebCore::IDBDatabaseBackendImpl::deleteIndex):
(WebCore::DeleteIndexOperation::perform):
(WebCore::DeleteRangeOperation::perform):
(WebCore::ClearOperation::perform):
* Modules/indexeddb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::KeyPrefix::KeyPrefix):
(WebCore::IDBLevelDBCoding::KeyPrefix::encode):
(WebCore::IDBLevelDBCoding::SchemaVersionKey::encode):
(WebCore::IDBLevelDBCoding::MaxDatabaseIdKey::encode):
(WebCore::IDBLevelDBCoding::DataVersionKey::encode):
(WebCore::IDBLevelDBCoding::DatabaseFreeListKey::encode):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::encode):
(WebCore::IDBLevelDBCoding::DatabaseMetaDataKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::encode):
(WebCore::IDBLevelDBCoding::IndexMetaDataKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::encode):
(WebCore::IDBLevelDBCoding::IndexFreeListKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::encode):
(WebCore::IDBLevelDBCoding::IndexNamesKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreDataKey::encode):
(WebCore::IDBLevelDBCoding::ExistsEntryKey::encode):
* Modules/indexeddb/IDBLevelDBCoding.h:
(IDBLevelDBCoding):
(KeyPrefix):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::IndexWriter::writeIndexKeys):
2013-03-11 Alec Flett <alecflett@chromium.org>
IndexedDB: Protect against key prefix overflows
https://bugs.webkit.org/show_bug.cgi?id=111138
Reviewed by Tony Chang.
This reworks the boundary checking for all databaseId,
objectStoreId, and indexId, including negative and
zero-based ids. All entrypoints into IDBLevelDBCoding
are protected with explicit checks and all internal
uses of KeyPrefix are protected with ASSERTs in the
various constructors.
Tests: WebKit unit tests IDBBackingStoreTest.cpp in WebKit/chromium
* Modules/indexeddb/IDBBackingStore.h: Make all public methods boolean-based for errors.
* Modules/indexeddb/IDBLevelDBCoding.h: Add methods for checking databaseId, objectStoreId, and indexId.
2013-03-11 Philip Rogers <pdr@google.com>
Replace static_cast<SVGStyledElement> with toSVGStyledElement()
https://bugs.webkit.org/show_bug.cgi?id=111651
Reviewed by Abhishek Arya.
toSVGStyledElement is preferred over static_cast<SVGStyledElement*> because bad casts
can be caught on our testing infrastructure. This patch replaces all
static_cast<SVGStyledElement> instances with toSVGStyledElement.
Additionally, this patch renames SVGElement::isStyled to SVGElement::isSVGStyledElement to
remove a confusing overlap with html styled elements. This name differs slighly from the
other is*() functions in SVGElement but this will be resolved up with webkit.org/b/107386.
No new tests as this is covered with existing tests.
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::getElementCTM):
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceClipper::calculateClipContentRepaintRect):
(WebCore::RenderSVGResourceClipper::hitTestClipContent):
* rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceMasker::calculateMaskContentRepaintRect):
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::createTileImage):
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::layoutChildren):
* rendering/svg/SVGResources.cpp:
(WebCore::registerPendingResource):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::isTargetAttributeCSSProperty):
(WebCore::SVGAnimationElement::computeCSSPropertyValue):
(WebCore::SVGAnimationElement::adjustForInheritance):
(WebCore::inheritsFromProperty):
* svg/SVGElement.cpp:
(WebCore::collectInstancesForSVGElement):
(WebCore::SVGElement::isAnimatableAttribute):
* svg/SVGElement.h:
(WebCore::SVGElement::isSVGStyledElement):
* svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
(WebCore::SVGElementInstance::InstanceUpdateBlocker::InstanceUpdateBlocker):
* svg/SVGLocatable.cpp:
(WebCore::SVGLocatable::computeCTM):
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::updateRelativeLengthsInformation):
* svg/SVGStyledElement.h:
(WebCore::SVGStyledElement::isSVGStyledElement):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::selfHasRelativeLengths):
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::platformApplySoftware):
2013-03-11 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Make scrolling between pages in non-continuous modes work
https://bugs.webkit.org/show_bug.cgi?id=111415
<rdar://problem/12555320>
Reviewed by Alexey Proskuryakov.
* WebCore.exp.in: Export ScrollableArea::scrollToOffsetWithoutAnimation.
2013-03-11 Mark Lam <mark.lam@apple.com>
Remove the use of the quotaMap cache in DatabaseTracker.
https://bugs.webkit.org/show_bug.cgi?id=111805.
Reviewed by Geoffrey Garen.
This change is needed because using the quotaMap cache can result in
an inaccurate read (in a multi-process system) on what database files
are actually present on the filesystem. Instead of using the quotaMap
cache, we rely on the tracker database and query it every time we need
the origin/quota information.
No new tests.
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::hasAdequateQuotaForOrigin):
(WebCore::DatabaseTracker::hasEntryForOriginNoLock):
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::quotaForOriginNoLock):
(WebCore::DatabaseTracker::setQuota):
(WebCore::DatabaseTracker::addDatabase):
(WebCore::DatabaseTracker::deleteOrigin):
* Modules/webdatabase/DatabaseTracker.h:
2013-03-11 Morten Stenshorne <mstensho@opera.com>
Don't rely on the fact that StaticPosition happens to be defined as 0
https://bugs.webkit.org/show_bug.cgi?id=110123
Also made the expression slightly less convoluted.
Reviewed by Alexey Proskuryakov.
No new tests. This is just code cleanup.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock):
2013-03-11 Adam Barth <abarth@webkit.org>
Unreviewed attempt to fix build after http://trac.webkit.org/changeset/145421.
* html/HTMLPlugInImageElement.cpp:
2013-03-05 Ojan Vafai <ojan@chromium.org>
Intrinsic width keyword values don't work for tables
https://bugs.webkit.org/show_bug.cgi?id=111515
Reviewed by Julien Chaffraix.
Tests: fast/css-intrinsic-dimensions/css-tables.html
fast/css-intrinsic-dimensions/tables.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeIntrinsicLogicalWidthUsing):
(WebCore::RenderBox::computeLogicalWidthInRegionUsing):
(WebCore::RenderBox::computeReplacedLogicalWidthUsing):
(WebCore::RenderBox::computePositionedLogicalWidthUsing):
* rendering/RenderBox.h:
Pass in the border and padding as an argument since RenderTable needs
to pass in a different value. Unfortunately, the math doesn't work out right
in the positioned/replaced cases if we just pass 0. We need to pass in the correct
border and padding and then subtract it from the result.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::updateLogicalWidth):
Compute intrinsic widths as well as specified ones. Down the road
we may want to consider having intrinsic width values return true for
isSpecified.
(WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
Compute intrinsic widths as well.
(WebCore::RenderTable::computeIntrinsicLogicalWidths):
Implement this method so that the RenderBox::computeIntrinsicLogicalWidthUsing
gets the right intrinsic values instead of the preferred values.
(WebCore::RenderTable::computePreferredLogicalWidths):
* rendering/RenderTable.h:
2013-03-11 Stephen Chenney <schenney@chromium.org>
HTMLInputElement can delete an ImageLoader while it's still needed
https://bugs.webkit.org/show_bug.cgi?id=110621
Reviewed by Darin Adler.
ImageLoader objects may fire events for HTMLInputElements that are of
type ImageInputType that own the loader. These events may cause script
to run that changes the type of the input element and hence causes the
ImageLoader to be deleted, while the image loader is still processing
the event dispatch. Bad things ensue.
This change moves ownership of the ImageLoader from the ImageInputType
onto the HTMLImageElement which is already protected from deletion during
event processing.
Test: fast/forms/image/image-error-event-modifies-type-crash.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::imageLoader): Method to return the
ImageLoader, creating it if not already created.
* html/HTMLInputElement.h:
(WebCore::HTMLInputElement::hasImageLoader): Return true if the
ImageLoader has been created.
(HTMLInputElement): Define ImageLoader access methods and the OwnPtr
for the HTMLImageLoader.
* html/ImageInputType.cpp:
(WebCore::ImageInputType::srcAttributeChanged): Use the element's ImageLoader.
(WebCore::ImageInputType::attach): Use the element's ImageLoader.
(WebCore::ImageInputType::willMoveToNewOwnerDocument): Use the element's ImageLoader.
(WebCore::ImageInputType::height): Use the element's ImageLoader.
(WebCore::ImageInputType::width): Use the element's ImageLoader.
* html/ImageInputType.h:
(ImageInputType): Remove the declaration of the ImageLoader.
2013-03-11 Alok Priyadarshi <alokp@chromium.org>
Revert "Mark GraphicsLayers as opaque when possible"
This reverts commit 0a4d3c2d8a0373aa9e5bd9209885137a13a7f0e0.
REGRESSION (r143626): http://chainlove.com shows garbage tiles on Mac
https://bugs.webkit.org/show_bug.cgi?id=112043
Unreviewed, rolling out r143626.
* rendering/RenderBox.cpp:
* rendering/RenderBox.h:
(RenderBox):
* rendering/RenderBoxModelObject.h:
(RenderBoxModelObject):
* rendering/RenderLayer.cpp:
* rendering/RenderLayer.h:
(RenderLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
* rendering/RenderLayerModelObject.h:
(RenderLayerModelObject):
2013-03-11 Dean Jackson <dino@apple.com>
Plugins created during user gestures (or soon after) should not be snapshotted
https://bugs.webkit.org/show_bug.cgi?id=111975
Reviewed by Tim Horton.
There are sites which create plugins in response to user actions, such as clicking
on an image that is acting like a poster frame. In those cases we should never snapshot.
There are some other sites which also create plugins in response to user actions,
but don't necessarily create the content themselves. Instead they run some script
that injects an iframe, and the frame loads a plugin. In order to make sure we don't
snapshot in those cases, we're adding the concept of a blessed plugin. Anything that
is created soon after a *handled* user gesture is not snapshotted. To do this we
mark a timestamp in the document when we've called an event listener for a user
gesture. The plugin element then compares its creation time with the most recent
user action time.
* dom/Document.cpp:
(WebCore::Document::Document): Initialise new timestamp.
(WebCore::Document::resetLastHandledUserGestureTimestamp): Sets the member variable
to the current time.
* dom/Document.h:
(WebCore::Document::lastHandledUserGestureTimestamp): Getter.
* dom/EventTarget.cpp:
(WebCore::EventTarget::fireEventListeners): If there were some event listeners and
we were processing a user gesture, then reset the timestamp in the document.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Remember if we were created
during a user gesture.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Start the plugin
if we were created during a user gesture, or if we are close enough in time
to a listener that fired in relation to a user gesture.
* html/HTMLPlugInImageElement.h: New private member flag indicating if we were
in a user gesture when constructed.
2013-03-11 Jeffrey Pfau <jpfau@apple.com>
List cache partitions as units instead of as their contents
https://bugs.webkit.org/show_bug.cgi?id=111909
Reviewed by Maciej Stachowiak.
Not possible to test with current automated test tools, must be tested manually.
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::getOriginsWithCache): List a cache item as a member of a partition, if possible
2013-03-11 Alexey Proskuryakov <ap@apple.com>
Chromium build fix. Forked files strike again.
* platform/network/chromium/ResourceHandle.cpp:
(WebCore::ResourceHandle::firstRequest):
2013-03-11 James Robinson <jamesr@chromium.org>
Fix typo from r145399. Rubber stamped by Abhishek Arya.
* rendering/svg/RenderSVGViewportContainer.h:
(WebCore::toRenderSVGViewportContainer):
2013-03-11 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Refactor the ExclusionPolygon class to enable storing multiple boundaries
https://bugs.webkit.org/show_bug.cgi?id=111766
Reviewed by Dirk Schulze.
Refactored the ExclusionPolygon class to enable adding support for shape-margin and shape-padding.
Extracted a new FloatPolygon class which is now used by ExclusionPolygon to represent the shape's
boundary. It will be used to add m_paddedPolygon and m_marginPolygon members to ExclusionPolygon
in a subsequent patch.
No new tests. This is strictly a refactoring of the existing code.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/FloatPolygon.cpp: Factored out of Source/WebCore/rendering/ExclusionPolygon.cpp.
(WebCore::determinant):
(WebCore::areCollinearPoints):
(WebCore::areCoincidentPoints):
(WebCore::isPointOnLineSegment):
(WebCore::nextVertexIndex):
(WebCore::FloatPolygon::FloatPolygon):
(WebCore::FloatPolygon::findNextEdgeVertexIndex):
(WebCore::FloatPolygon::overlappingEdges):
(WebCore::leftSide):
(WebCore::FloatPolygon::contains):
(WebCore::VertexPair::overlapsRect):
(WebCore::VertexPair::intersection):
* platform/graphics/FloatPolygon.h: Factored out of Source/WebCore/rendering/ExclusionPolygon.h.
(FloatPolygon):
(WebCore::FloatPolygon::vertexAt):
(WebCore::FloatPolygon::numberOfVertices):
(WebCore::FloatPolygon::fillRule):
(WebCore::FloatPolygon::edgeAt):
(WebCore::FloatPolygon::numberOfEdges):
(WebCore::FloatPolygon::boundingBox):
(WebCore::FloatPolygon::isEmpty):
(VertexPair):
(WebCore::VertexPair::~VertexPair):
(WebCore::VertexPair::minX):
(WebCore::VertexPair::minY):
(WebCore::VertexPair::maxX):
(WebCore::VertexPair::maxY):
(FloatPolygonEdge):
(WebCore::FloatPolygonEdge::previousEdge):
(WebCore::FloatPolygonEdge::nextEdge):
(WebCore::FloatPolygonEdge::polygon):
(WebCore::FloatPolygonEdge::vertexIndex1):
(WebCore::FloatPolygonEdge::vertexIndex2):
(WebCore::FloatPolygonEdge::edgeIndex):
* rendering/ExclusionPolygon.cpp: Now depends on FloatPolygon.
(EdgeIntersection):
(WebCore::leftSide):
(WebCore::computeXIntersection):
(WebCore::getVertexIntersectionVertices):
(WebCore::computeXIntersections):
(WebCore::computeOverlappingEdgeXProjections):
(WebCore::ExclusionPolygon::getExcludedIntervals):
(WebCore::ExclusionPolygon::getIncludedIntervals):
(WebCore::firstFitRectInPolygon):
(WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop):
* rendering/ExclusionPolygon.h: Now depends on FloatPolygon.
(WebCore::OffsetPolygonEdge::OffsetPolygonEdge):
(ExclusionPolygon):
(WebCore::ExclusionPolygon::ExclusionPolygon):
2013-03-11 Alexey Proskuryakov <ap@apple.com>
Roll out part of r144671.
ResourceHandle::firstRequest() should not be const(), because it returns a
non-const reference.
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::firstRequest):
* platform/network/ResourceHandle.h:
2013-01-30 Jer Noble <jer.noble@apple.com>
Mac: Cmd-w should close full screen window.
https://bugs.webkit.org/show_bug.cgi?id=108406
Reviewed by Darin Adler.
Pass performClose: requests on to the owning window controller.
* platform/mac/WebCoreFullScreenWindow.mm:
(-[WebCoreFullScreenWindow performClose:]):
2013-03-11 Xiyuan Xia <xiyuan@chromium.org>
[Chromium] chromium/linux breaks expectation of select popup background due to bad UA css rules
https://bugs.webkit.org/show_bug.cgi?id=111873
Reviewed by Tony Chang.
On linux the default <select> background color is too dark to use as the
popup background color. Last fixes:
https://bugs.webkit.org/show_bug.cgi?id=54115 and
https://bugs.webkit.org/show_bug.cgi?id=56023
attempt to fix the problem by applying a lighter background using
special <option> selector. This breaks expectations of some websites.
This CL reverts the bad UA css rules above and provides the lighter
background color if <select> and <option> elements are using the default
background.
No new tests, this tests <select> popups and can be verified by ManualTests/select-scroll.html.
* css/themeChromiumLinux.css:
(select):
* platform/PopupMenuStyle.h:
(WebCore::PopupMenuStyle::PopupMenuStyle):
(WebCore::PopupMenuStyle::backgroundColorType):
(PopupMenuStyle):
* platform/chromium/PopupListBox.cpp:
(WebCore::PopupListBox::paintRow):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::itemStyle):
(WebCore::RenderMenuList::getItemBackgroundColor):
* rendering/RenderMenuList.h:
(RenderMenuList):
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::menuStyle):
* rendering/RenderThemeChromiumDefault.cpp:
(WebCore::RenderThemeChromiumDefault::systemColor):
2013-03-11 James Robinson <jamesr@chromium.org>
Compile fix. Rubber-stamp by Eric Seidel.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
2013-03-11 Dima Gorbik <dgorbik@apple.com>
Fix build for r145397 (part 2)
Unreviewed.
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::getDisplayTree):
2013-03-11 Dima Gorbik <dgorbik@apple.com>
Fix build for r145397
Unreviewed.
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::createTextTrackDisplay):
* html/shadow/MediaControlsChromium.cpp:
(WebCore::MediaControlsChromium::createTextTrackDisplay):
* html/shadow/MediaControlsGtk.cpp:
(WebCore::MediaControlsGtk::createTextTrackDisplay):
2013-03-11 Abhishek Arya <inferno@chromium.org>
Add ASSERT_WITH_SECURITY_IMPLICATION to catch bad casts.
https://bugs.webkit.org/show_bug.cgi?id=112060
Reviewed by Eric Seidel.
* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::document):
* accessibility/AccessibilityMenuList.h:
(WebCore::toAccessibilityMenuList):
* accessibility/AccessibilityNodeObject.h:
(WebCore::toAccessibilityNodeObject):
* accessibility/AccessibilityRenderObject.h:
(WebCore::toAccessibilityRenderObject):
* accessibility/AccessibilitySVGRoot.h:
(WebCore::toAccessibilitySVGRoot):
* accessibility/AccessibilitySpinButton.h:
(WebCore::toAccessibilitySpinButton):
(WebCore::toAccessibilitySpinButtonPart):
* accessibility/AccessibilityTable.h:
(WebCore::toAccessibilityTable):
* css/StyleRule.h:
(WebCore::toStyleRuleMedia):
(WebCore::toStyleRuleSupports):
(WebCore::toStyleRuleRegion):
* dom/EventContext.h:
(WebCore::toTouchEventContext):
* fileapi/File.h:
(WebCore::toFile):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::insertAdjacentElement):
(WebCore::contextElementForInsertion):
* html/HTMLMediaElement.h:
(WebCore::toMediaElement):
* html/HTMLMeterElement.h:
(WebCore::toHTMLMeterElement):
* html/HTMLOptionElement.cpp:
(WebCore::toHTMLOptionElement):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::renderProgress):
* html/HTMLProgressElement.h:
(WebCore::toHTMLProgressElement):
* html/HTMLSelectElement.h:
(WebCore::toHTMLSelectElement):
* html/HTMLTableCellElement.cpp:
(WebCore::toHTMLTableCellElement):
* html/HTMLTextFormControlElement.h:
(WebCore::toHTMLTextFormControlElement):
* html/PluginDocument.h:
(WebCore::toPluginDocument):
* html/shadow/DetailsMarkerControl.cpp:
(WebCore::DetailsMarkerControl::summaryElement):
* html/shadow/HTMLContentElement.h:
(WebCore::toHTMLContentElement):
* html/shadow/HTMLShadowElement.h:
(WebCore::toHTMLShadowElement):
* html/shadow/TextFieldDecorationElement.cpp:
(WebCore::TextFieldDecorationElement::hostInput):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::document):
* rendering/InlineTextBox.h:
(WebCore::toInlineTextBox):
* rendering/RenderHTMLCanvas.h:
(WebCore::toRenderHTMLCanvas):
* rendering/RenderScrollbar.h:
(WebCore::toRenderScrollbar):
* rendering/RenderTextFragment.h:
(WebCore::toRenderTextFragment):
* rendering/mathml/RenderMathMLOperator.h:
(WebCore::toRenderMathMLOperator):
* rendering/svg/RenderSVGTextPath.h:
(WebCore::toRenderSVGTextPath):
* rendering/svg/RenderSVGViewportContainer.h:
(WebCore::toRenderSVGViewportContainer):
* svg/graphics/SVGImageChromeClient.h:
(WebCore::toSVGImageChromeClient):
2013-03-11 Adam Barth <abarth@webkit.org>
Factor HTMLTreeBuilderSimulator out of BackgroundHTMLParser
https://bugs.webkit.org/show_bug.cgi?id=112057
Reviewed by Eric Seidel.
Simulating the HTML tree builder is a separate concern from parsing on
the background thread. We plan to re-use the tree builder simulator for
the view-source parser, for example. Also, having the simulator as a
separate object will make it easier to fix
https://bugs.webkit.org/show_bug.cgi?id=109764.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* html/parser/BackgroundHTMLParser.cpp:
(WebCore):
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):
2013-02-26 Dima Gorbik <dgorbik@apple.com>
Not all properties apply to the '::cue' pseudo-element
https://bugs.webkit.org/show_bug.cgi?id=110705
Reviewed by Eric Carlson.
Background properties are not inherited and they were not applied to right elements.
Now we apply all ::cue properties to WebVTT cue background box, which -webkit-media-text-track-all-nodes
container was corresponding to. Now it has 'cue' pseudoId instead of '-webkit-media-text-track-all-nodes'.
Property filtering is turned off for user agent rules so that we are still able to apply filtered rules
to this container internally. m_cueContainer is removed because it is no longer needed.
m_allDocumentNodes container was renamed to m_cueBackgroundBox.
Existing tests modified to cover this case.
* css/RuleSet.h:
(WebCore::RuleData::propertyWhitelistType): disable filtering for UA rules.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::sortAndTransferMatchedRules): pass the UA scope to propertyWhitelistType().
* css/mediaControls.css: rename -webkit-media-text-track-all-nodes to 'cue'
(video::cue):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
* html/shadow/MediaControlElements.h:
(MediaControlTextTrackContainerElement):
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::createTextTrackDisplay):
* html/shadow/MediaControlsChromium.cpp:
(WebCore::MediaControlsChromium::createTextTrackDisplay):
* html/shadow/MediaControlsGtk.cpp:
(WebCore::MediaControlsGtk::createTextTrackDisplay):
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::TextTrackCue):
(WebCore::TextTrackCue::updateDisplayTree):
(WebCore::TextTrackCue::getDisplayTree):
* html/track/TextTrackCue.h:
(WebCore::TextTrackCue::element):
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride):
2013-03-11 Tim Horton <timothy_horton@apple.com>
ChromeClient.h doesn’t need to include RenderSnapshottedPlugIn
https://bugs.webkit.org/show_bug.cgi?id=111981
Reviewed by Kentaro Hara.
* page/ChromeClient.h: Remove the extraneous #include.
2013-03-11 David Hyatt <hyatt@apple.com>
Vertical writing doesn't work with form controls.
https://bugs.webkit.org/show_bug.cgi?id=70211
Reviewed by Simon Fraser.
This is just some basic plumbing work to make textfields and
textareas work with vertical writing modes. This patch leaves the
html.css override alone, so authors can't enable vertical
writing yet.
The changes consist of converting uses of x/y/width/height to
logicalLeft/Top/Width/Height.
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::paddingLogicalLeft):
(WebCore::RenderBoxModelObject::paddingLogicalRight):
(RenderBoxModelObject):
(WebCore::RenderBoxModelObject::marginLogicalHeight):
(WebCore::RenderBoxModelObject::marginLogicalWidth):
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::computeControlLogicalHeight):
(WebCore::RenderSearchField::computeLogicalHeightLimit):
(WebCore::RenderSearchField::centerContainerIfNeeded):
* rendering/RenderSearchField.h:
(RenderSearchField):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::textBlockLogicalHeight):
(WebCore::RenderTextControl::textBlockLogicalWidth):
(WebCore::RenderTextControl::computeLogicalHeight):
(WebCore::RenderTextControl::computeIntrinsicLogicalWidths):
(WebCore::RenderTextControl::computePreferredLogicalWidths):
* rendering/RenderTextControl.h:
(RenderTextControl):
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::preferredContentLogicalWidth):
(WebCore::RenderTextControlMultiLine::computeControlLogicalHeight):
(WebCore::RenderTextControlMultiLine::layoutSpecialExcludedChild):
* rendering/RenderTextControlMultiLine.h:
(RenderTextControlMultiLine):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
(WebCore::RenderTextControlSingleLine::paint):
(WebCore::RenderTextControlSingleLine::computeLogicalHeightLimit):
(WebCore::RenderTextControlSingleLine::layout):
(WebCore::RenderTextControlSingleLine::styleDidChange):
(WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth):
(WebCore::RenderTextControlSingleLine::computeControlLogicalHeight):
(WebCore::RenderTextControlSingleLine::createInnerTextStyle):
* rendering/RenderTextControlSingleLine.h:
(RenderTextControlSingleLine):
* rendering/style/RenderStyle.h:
2013-03-11 Tim Horton <timothy_horton@apple.com>
TiledBacking scrolling coverage can be unfairly limited for clients who do scrolling outside the web view
https://bugs.webkit.org/show_bug.cgi?id=111958
<rdar://problem/13356896>
Reviewed by Darin Adler.
Don't limit TiledBacking coverage if the client has opted into using
its exposed rect to allow scrolling above the web view.
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileController.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::adjustTiledBackingCoverage):
2013-03-11 Rajeev Sarvaria <rsarvaria@blackberry.com>
GetnUniform*vEXT (Robustness extension) passed incorrect parameter in WebGLRenderingContext
https://bugs.webkit.org/show_bug.cgi?id=111450
Reviewed by Rob Buis.
Bufsize argument corrected to size in bytes instead of number of integers or floats.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::getUniform):
2013-03-11 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145375.
http://trac.webkit.org/changeset/145375
https://bugs.webkit.org/show_bug.cgi?id=112050
Does not compile (Requested by jamesr on #webkit).
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::getObjectStores):
(WebCore::IDBBackingStore::createObjectStore):
(WebCore::IDBBackingStore::deleteObjectStore):
(WebCore::IDBBackingStore::getRecord):
(WebCore::IDBBackingStore::putRecord):
(WebCore::IDBBackingStore::clearObjectStore):
(WebCore::IDBBackingStore::deleteRecord):
(WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBBackingStore::getIndexes):
(WebCore::IDBBackingStore::createIndex):
(WebCore::IDBBackingStore::deleteIndex):
(WebCore::IDBBackingStore::putIndexDataForRecord):
(WebCore::IDBBackingStore::findKeyInIndex):
(WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
(WebCore::IDBBackingStore::keyExistsInIndex):
(WebCore::indexCursorOptions):
* Modules/indexeddb/IDBBackingStore.h:
(IDBBackingStore):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::DeleteIndexOperation::create):
(WebCore::DeleteIndexOperation::DeleteIndexOperation):
(DeleteIndexOperation):
(WebCore::IDBDatabaseBackendImpl::openInternal):
(WebCore::IDBDatabaseBackendImpl::deleteIndex):
(WebCore::DeleteIndexOperation::perform):
(WebCore::DeleteRangeOperation::perform):
(WebCore::ClearOperation::perform):
* Modules/indexeddb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::KeyPrefix::KeyPrefix):
(WebCore::IDBLevelDBCoding::KeyPrefix::encode):
(WebCore::IDBLevelDBCoding::SchemaVersionKey::encode):
(WebCore::IDBLevelDBCoding::MaxDatabaseIdKey::encode):
(WebCore::IDBLevelDBCoding::DataVersionKey::encode):
(WebCore::IDBLevelDBCoding::DatabaseFreeListKey::encode):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::encode):
(WebCore::IDBLevelDBCoding::DatabaseMetaDataKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::encode):
(WebCore::IDBLevelDBCoding::IndexMetaDataKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::encode):
(WebCore::IDBLevelDBCoding::IndexFreeListKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::encode):
(WebCore::IDBLevelDBCoding::IndexNamesKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreDataKey::encode):
(WebCore::IDBLevelDBCoding::ExistsEntryKey::encode):
* Modules/indexeddb/IDBLevelDBCoding.h:
(IDBLevelDBCoding):
(KeyPrefix):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::IndexWriter::writeIndexKeys):
2013-03-11 Adam Klein <adamk@chromium.org>
MutationCallback should be a WebIDL 'callback', not a [Callback] interface
https://bugs.webkit.org/show_bug.cgi?id=91406
Reviewed by Adam Barth.
Spec: http://dom.spec.whatwg.org/#mutationcallback
Besides no longer calling handleEvent methods on passed-in objects,
throw a TypeError if a non-function is passed to the MutationObserver constructor.
This is per WebIDL: http://www.w3.org/TR/WebIDL/#es-callback-function
Updated MutationObserver constructor tests to exercise TypeError-throwing behavior.
* bindings/js/JSMutationCallback.cpp:
(WebCore::JSMutationCallback::call): Call the callback directly instead of handing off to JSCallbackData; make return value void.
Use jsArray() to convert from WTF::Vector -> JSArray.
* bindings/js/JSMutationCallback.h:
(JSMutationCallback): Rename handleEvent() to call(), make it void.
* bindings/js/JSMutationObserverCustom.cpp:
(WebCore::JSMutationObserverConstructor::constructJSMutationObserver): Throw if passed a non-function.
* bindings/v8/V8MutationCallback.cpp:
(WebCore::V8MutationCallback::V8MutationCallback): Take a v8::Function instead of a v8::Object.
(WebCore::V8MutationCallback::call): Call the callback directly instead of handing off to invokeCallback(); make return value void.
Use v8Array() to convert form WTF::Vector -> JSArray.
* bindings/v8/V8MutationCallback.h:
(WebCore::V8MutationCallback::create): Take a v8::Function instead of a v8::Object.
(V8MutationCallback): ditto
* bindings/v8/custom/V8MutationObserverCustom.cpp:
(WebCore::V8MutationObserver::constructorCustom): Throw if passed a non-function, cast to a v8::Function when constructing callback.
* dom/MutationCallback.h:
(WebCore): Remove unnecessary typedef.
(MutationCallback): Rename handleEvent() to call(), make it void.
* dom/MutationObserver.cpp:
(WebCore::MutationObserver::deliver): Update MutationCallback method name.
2013-03-11 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Handle spanning grid items over specified grid tracks
https://bugs.webkit.org/show_bug.cgi?id=111918
Reviewed by Tony Chang.
This change updates the containing block override logic to handle multiple
spanned tracks. This makes the multiple specified grid tracks case work and
will enable us to handle the minmax case once the computation logic has been
updated.
Test: fast/css-grid-layout/grid-item-spanning-resolution.html
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::logicalContentHeightForChild):
(WebCore::RenderGrid::layoutGridItems):
Updated these functions to use gridAreaBreadthForChild.
(WebCore::RenderGrid::gridAreaBreadthForChild):
Added this helper function to handle multiple spanned grid tracks.
* rendering/RenderGrid.h: Added the previous function.
2013-03-11 Philip Rogers <pdr@google.com>
Replace SVG's static_cast<SVGElement> with toSVGElement()
https://bugs.webkit.org/show_bug.cgi?id=111651
Reviewed by Abhishek Arya.
toSVGElement is preferred over static_cast because bad casts can be caught on
our testing infrastructure. This patch replaces all static_cast<SVGElement>
instances with toSVGElement.
No new tests as this is just a refactoring.
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::matchAllRules):
(WebCore::StyleResolver::locateCousinList):
(WebCore::StyleResolver::canShareStyleWithElement):
(WebCore::StyleResolver::locateSharedStyle):
* dom/Element.cpp:
(WebCore::Element::synchronizeAllAttributes):
(WebCore::Element::synchronizeAttribute):
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::getElementCTM):
(WebCore::RenderSVGModelObject::checkIntersection):
(WebCore::RenderSVGModelObject::checkEnclosure):
* rendering/svg/RenderSVGResource.cpp:
(WebCore::removeFromCacheAndInvalidateDependencies):
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::pathOnlyClipping):
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceClipper::calculateClipContentRepaintRect):
(WebCore::RenderSVGResourceClipper::hitTestClipContent):
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::buildPrimitives):
* rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceMasker::calculateMaskContentRepaintRect):
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::createTileImage):
* rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::strokeWidth):
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::strokeBoundingBox):
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::layoutChildren):
(WebCore::SVGRenderSupport::applyStrokeStyleToContext):
* rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGPaintingResource):
(WebCore::writeStyle):
(WebCore::operator<<):
* rendering/svg/SVGResources.cpp:
(WebCore::SVGResources::buildCachedResources):
* rendering/svg/SVGTextLayoutEngine.cpp:
(WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::createRenderer):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::adjustForInheritance):
* svg/SVGElement.cpp:
(WebCore::SVGElement::viewportElement):
(WebCore::SVGElement::haveLoadedRequiredResources):
(WebCore::SVGElement::sendSVGLoadEventIfPossible):
(WebCore::SVGElement::childShouldCreateRenderer):
* svg/SVGElement.h:
(WebCore::toSVGElement):
(WebCore):
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::buildPendingResource):
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::childShouldCreateRenderer):
* svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::buildStops):
* svg/SVGLocatable.cpp:
(WebCore::SVGLocatable::nearestViewportElement):
(WebCore::SVGLocatable::farthestViewportElement):
(WebCore::SVGLocatable::computeCTM):
* svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::buildPendingResource):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::collectIntersectionOrEnclosureList):
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::updateRelativeLengthsInformation):
* svg/SVGSwitchElement.cpp:
(WebCore::SVGSwitchElement::childShouldCreateRenderer):
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::buildPendingResource):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::buildPendingResource):
(WebCore::SVGUseElement::toClipPath):
(WebCore::SVGUseElement::rendererClipChild):
(WebCore::SVGUseElement::buildInstanceTree):
(WebCore::SVGUseElement::hasCycleUseReferencing):
(WebCore::SVGUseElement::expandUseElementsInShadowTree):
(WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::viewTarget):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::buildPendingResource):
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::platformApplySoftware):
2013-03-11 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] ResourceRequest::updateSoupMessage doesn't update the URI of the soup message
https://bugs.webkit.org/show_bug.cgi?id=112040
Reviewed by Gustavo Noronha Silva.
* platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::updateSoupMessage): Update the soup
message URI with the ResourceRequest URL.
2013-03-11 Alec Flett <alecflett@chromium.org>
IndexedDB: Protect against key prefix overflows
https://bugs.webkit.org/show_bug.cgi?id=111138
Reviewed by Tony Chang.
This reworks the boundary checking for all databaseId,
objectStoreId, and indexId, including negative and
zero-based ids. All entrypoints into IDBLevelDBCoding
are protected with explicit checks and all internal
uses of KeyPrefix are protected with ASSERTs in the
various constructors.
Tests: WebKit unit tests IDBBackingStoreTest.cpp in WebKit/chromium
* Modules/indexeddb/IDBBackingStore.h: Make all public methods boolean-based for errors.
* Modules/indexeddb/IDBLevelDBCoding.h: Add methods for checking databaseId, objectStoreId, and indexId.
2013-03-11 Xan Lopez <xlopez@igalia.com>
[BlackBerry] PlatformBlackBerry.cmake: create thin AR archives
https://bugs.webkit.org/show_bug.cgi?id=110580
Reviewed by Rob Buis.
Otherwise libwebcore.a goes beyond the 4Gb file size limit and the
link phase fails.
* PlatformBlackBerry.cmake:
2013-03-11 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: fix styles toolbar in the vertical mode.
Not reviewed: swapped two lines.
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype._splitVertically):
2013-03-11 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] add token highlight feature
https://bugs.webkit.org/show_bug.cgi?id=112009
Reviewed by Pavel Feldman.
Handle CodeMirror's "cursorActivity" event, check selection for being
a word and highlight all its occurrences via CodeMirror.addOverlay method.
No new tests.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor):
(WebInspector.CodeMirrorTextEditor.TokenHighlighter):
(WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype._cursorChange):
(WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype._isWord):
(WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype._removeHighlight):
(WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype._addHighlight.nextToken):
(WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype._addHighlight):
* inspector/front-end/cm/cmdevtools.css:
(.cm-token-highlight):
2013-03-11 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] set indentation size according to devtools settings
https://bugs.webkit.org/show_bug.cgi?id=111717
Reviewed by Pavel Feldman.
Set up codemirror indent size according to devtools settings.
No new tests.
* inspector/front-end/CodeMirrorTextEditor.js:
(.get if):
(WebInspector.CodeMirrorTextEditor):
2013-03-11 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: add per image statistics to the native memory snapshot
https://bugs.webkit.org/show_bug.cgi?id=112011
Reviewed by Pavel Feldman.
Added per-image statistics to the native memory distribution table.
* inspector/front-end/HeapSnapshotProxy.js:
(WebInspector.HeapSnapshotWorker):
(WebInspector.HeapSnapshotWorker.prototype.createLoader):
(WebInspector.HeapSnapshotWorker.prototype.wrapCallback):
(WebInspector.HeapSnapshotWorker.prototype.callFactoryMethod):
(WebInspector.HeapSnapshotProxyObject.prototype.callFactoryMethod): the method now accepts
proxy constructor function instead of its name. This eliminates unnecessary function lookup.
(WebInspector.HeapSnapshotLoaderProxy):
(WebInspector.HeapSnapshotLoaderProxy.prototype.close):
(WebInspector.HeapSnapshotProxy.prototype.createEdgesProvider):
(WebInspector.HeapSnapshotProxy.prototype.createRetainingEdgesProvider):
(WebInspector.HeapSnapshotProxy.prototype.createAddedNodesProvider):
(WebInspector.HeapSnapshotProxy.prototype.createDeletedNodesProvider):
(WebInspector.HeapSnapshotProxy.prototype.createNodesProvider):
(WebInspector.HeapSnapshotProxy.prototype.createNodesProviderForClass):
(WebInspector.HeapSnapshotProxy.prototype.createNodesProviderForDominator):
(WebInspector.NativeHeapSnapshotProxy):
(WebInspector.NativeHeapSnapshotProxy.prototype.images):
* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapProfileHeader.prototype.snapshotProxyConstructor):
(WebInspector.HeapProfileHeader.prototype._setupWorker):
* inspector/front-end/NativeHeapSnapshot.js:
(WebInspector.NativeHeapSnapshot.prototype.images):
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeSnapshotNode):
(WebInspector.NativeSnapshotNode.prototype._createSizeCell):
(WebInspector.NativeSnapshotNode.prototype._populate):
(WebInspector.NativeSnapshotNode.prototype._addChildrenFromGraph):
(WebInspector.NativeSnapshotNode.prototype._addImageDetails.didLoad.didReceiveImages):
(WebInspector.NativeSnapshotNode.prototype._addImageDetails):
(WebInspector.NativeSnapshotProfileHeader.prototype.snapshotProxyConstructor):
2013-03-11 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Enable tiled shadow blur for inset box shadows
https://bugs.webkit.org/show_bug.cgi?id=111736
Reviewed by Noam Rosenthal.
Paint inset box-shadows using the optimized tiled shadow blur, instead of
applying shadow blur to the entire painted rect.
This optimizes the default CSS on common pastebin sites.
Tested by existing tests.
* platform/graphics/GraphicsContext.cpp:
* platform/graphics/ShadowBlur.cpp:
(WebCore::ShadowBlur::drawInsetShadowWithTiling):
Must set fill color before calling clearShadow, as that might clear m_color.
(WebCore::ShadowBlur::drawLayerPieces):
Ditto.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
2013-03-11 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] GraphicsLayer: rename notifySyncRequired to notifyFlushRequired
https://bugs.webkit.org/show_bug.cgi?id=111997
Reviewed by Rob Buis.
This changed in r130439 but the old name was introduced again by
mistake in r144465.
* platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
(WebCore::GraphicsLayerBlackBerry::notifyFlushRequired):
* platform/graphics/blackberry/LayerWebKitThread.cpp:
(WebCore::LayerWebKitThread::setNeedsCommit):
2013-03-11 Kent Tamura <tkent@chromium.org>
Inappropriate validation message for required number/date input elements
https://bugs.webkit.org/show_bug.cgi?id=111982
Reviewed by Kentaro Hara.
For validation message, badInput messages should take precedence
over valueMissing messages because users already filled out the
field with a bad value.
Tests: Update fast/forms/validationMessage.html
* html/InputType.cpp:
(WebCore::InputType::validationMessage):
Check badInput first.
2013-03-11 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: extract common parts of native profiles
https://bugs.webkit.org/show_bug.cgi?id=111965
Reviewed by Alexander Pavlov.
Extracted common parts of native profiles into NativeProfileTypeBase. Memory
domain dispatcher is now a separate class as it is shared by two native memory
profile types.
Both native memory profile types now capture native heap graph.
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.MemoryAgentDispatcher.instance):
(WebInspector.NativeProfileTypeBase.prototype.buttonClicked.didReceiveMemorySnapshot):
(WebInspector.NativeProfileTypeBase.prototype.buttonClicked):
(WebInspector.NativeSnapshotProfileType):
(WebInspector.NativeSnapshotProfileHeader.prototype._didReceiveMemorySnapshot):
(WebInspector.NativeMemoryProfileType):
(WebInspector.NativeMemoryProfileHeader.prototype._updateSnapshotStatus):
(WebInspector.NativeMemoryProfileHeader.prototype._didReceiveMemorySnapshot):
2013-03-11 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145349.
http://trac.webkit.org/changeset/145349
https://bugs.webkit.org/show_bug.cgi?id=111966
Missing code history of Element,PageRuleCollector. (Requested
by tasak on #webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSAllInOne.cpp:
* css/DocumentRuleSets.cpp:
(WebCore::ShadowDistributedRules::collectMatchRequests):
* css/DocumentRuleSets.h:
* css/ElementRuleCollector.cpp: Removed.
* css/ElementRuleCollector.h: Removed.
* css/PageRuleCollector.cpp: Removed.
* css/PageRuleCollector.h: Removed.
* css/StyleResolver.cpp:
(WebCore::leftToRightDeclaration):
(WebCore):
(WebCore::rightToLeftDeclaration):
(WebCore::StyleResolver::State::ensureRuleList):
(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::addMatchedProperties):
(WebCore::StyleResolver::addElementStyleProperties):
(MatchingUARulesScope):
(WebCore::MatchingUARulesScope::MatchingUARulesScope):
(WebCore::MatchingUARulesScope::~MatchingUARulesScope):
(WebCore::MatchingUARulesScope::isMatchingUARules):
(WebCore::StyleResolver::collectMatchingRules):
(WebCore::StyleResolver::collectMatchingRulesForRegion):
(WebCore::StyleResolver::sortAndTransferMatchedRules):
(WebCore::StyleResolver::matchScopedAuthorRules):
(WebCore::StyleResolver::matchHostRules):
(WebCore::StyleResolver::matchAuthorRules):
(WebCore::StyleResolver::matchUserRules):
(WebCore::StyleResolver::matchUARules):
(WebCore::StyleResolver::collectMatchingRulesForList):
(WebCore::compareRules):
(WebCore::StyleResolver::sortMatchedRules):
(WebCore::StyleResolver::matchAllRules):
(WebCore::StyleResolver::State::initForStyleResolve):
(WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::ruleMatches):
(WebCore::StyleResolver::checkRegionSelector):
(WebCore::comparePageRules):
(WebCore::StyleResolver::matchPageRules):
(WebCore::checkPageSelectorComponents):
(WebCore::StyleResolver::matchPageRulesForList):
(WebCore::StyleResolver::isLeftPage):
(WebCore::StyleResolver::isFirstPage):
(WebCore::StyleResolver::pageName):
* css/StyleResolver.h:
(WebCore::MatchRequest::MatchRequest):
(MatchRequest):
(StyleResolver):
(MatchResult):
(WebCore::StyleResolver::State::State):
(State):
(WebCore::StyleResolver::State::takeRuleList):
(WebCore::StyleResolver::State::setSameOriginOnly):
(WebCore::StyleResolver::State::isSameOriginOnly):
(WebCore::StyleResolver::State::pseudoStyleRequest):
(WebCore::StyleResolver::State::setMode):
(WebCore::StyleResolver::State::mode):
(WebCore::StyleResolver::State::matchedRules):
(WebCore::StyleResolver::State::addMatchedRule):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::willMatchRule):
* inspector/InspectorCSSAgent.h:
(WebCore):
(InspectorCSSAgent):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willMatchRuleImpl):
* inspector/InspectorInstrumentation.h:
(WebCore):
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::willMatchRule):
2013-03-11 Marja Hölttä <marja@chromium.org>
[V8] Fix V8InjectedScriptManager
https://bugs.webkit.org/show_bug.cgi?id=111968
Reviewed by Kentaro Hara.
This is needed to make the inspector work after templates for main world
and non-main worlds are separated (bug 111724).
No new tests (no changes in functionality).
* bindings/v8/custom/V8InjectedScriptManager.cpp:
(WebCore::InjectedScriptManager::canAccessInspectedWindow):
2013-03-11 Hayato Ito <hayato@chromium.org>
Make sure that CSSSelector::setValue() is never called after parsing its pseudoType.
https://bugs.webkit.org/show_bug.cgi?id=111957
Reviewed by Hajime Morrita.
It'd be nice to have an assertion here since
CSSSelector::pseudoType() will never parse a new value after it
parses a value and m_pseudoType is set to non-PseudoNotParsed.
No new tests (no change in behaviour).
* css/CSSSelector.h:
(WebCore::CSSSelector::setValue):
2013-03-11 Takashi Sakamoto <tasak@google.com>
[Refactoring] Implement RuleCollector
https://bugs.webkit.org/show_bug.cgi?id=109916
Reviewed by Antti Koivisto.
Implemented rule collector for an element and collector for a page.
Not all members in class State are required entire while resolving
a style.
No new tests, because just refactoring.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSAllInOne.cpp:
Added ElementRuleCollector and PageRuleCollector.
* css/DocumentRuleSets.cpp:
(WebCore::ShadowDistributedRules::collectMatchRequests):
Since behaviorAtBoundary is a state owned by ElementRuleCollector,
removed from here.
* css/DocumentRuleSets.h:
(WebCore::ShadowDistributedRules::isEmpty):
Added to quickly check whether there exist any ShadowDistributedRules
or not.
* css/ElementRuleCollector.cpp: Copied from Source/WebCore/css/StyleResolver.cpp.
(WebCore):
(WebCore::ElementRuleCollector::matchedResult):
(WebCore::ElementRuleCollector::matchedRuleList):
(WebCore::ElementRuleCollector::addMatchedRule):
(WebCore::ElementRuleCollector::clearMatchedRules):
(WebCore::ElementRuleCollector::ensureRuleList):
(WebCore::ElementRuleCollector::addElementStyleProperties):
(WebCore::ElementRuleCollector::collectMatchingRules):
(WebCore::ElementRuleCollector::collectMatchingRulesForRegion):
(WebCore::ElementRuleCollector::sortAndTransferMatchedRules):
(WebCore::ElementRuleCollector::matchScopedAuthorRules):
(WebCore::ElementRuleCollector::matchHostRules):
(WebCore::ElementRuleCollector::matchShadowDistributedRules):
(WebCore::ElementRuleCollector::matchAuthorRules):
(WebCore::ElementRuleCollector::matchUserRules):
(WebCore::ElementRuleCollector::matchUARules):
(WebCore::ElementRuleCollector::ruleMatches):
(WebCore::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::ElementRuleCollector::sortMatchedRules):
(WebCore::ElementRuleCollector::matchAllRules):
Moved these methods from StyleResolver to this class.
(WebCore::ElementRuleCollector::hasAnyMatchingRules):
This method is used for checking whether a given element can share
a cache.
* css/ElementRuleCollector.h: Copied from Source/WebCore/css/StyleResolver.h.
(WebCore):
(WebCore::ElementRuleCollector::ElementRuleCollector):
Use styleResolver instance to initialize its member variables, i.e.
SelectorFilter, RuleSets, InspectorCSSOMWrappers, and
StyleScopedResolver.
(ElementRuleCollector):
(WebCore::ElementRuleCollector::setMode):
(WebCore::ElementRuleCollector::setPseudoStyleRequest):
(WebCore::ElementRuleCollector::setSameOriginOnly):
(WebCore::ElementRuleCollector::setRegionForStyling):
Mode, SameOriginOnly, RegionForStyling are only used while collecting
matched rules.
(WebCore::ElementRuleCollector::setMedium):
Need to know which default stylesheet should be looked up.
(WebCore::ElementRuleCollector::document):
* css/PageRuleCollector.cpp: Copied from Source/WebCore/css/StyleResolver.cpp.
(WebCore::comparePageRules):
(WebCore::PageRuleCollector::isLeftPage):
(WebCore::PageRuleCollector::isFirstPage):
(WebCore::PageRuleCollector::pageName):
(WebCore::PageRuleCollector::matchAllPageRules):
(WebCore::PageRuleCollector::matchPageRules):
(WebCore::checkPageSelectorComponents):
(WebCore::PageRuleCollector::matchPageRulesForList):
Moved from StyleResolver.
* css/PageRuleCollector.h: Copied from Source/WebCore/css/StyleResolver.h.
(WebCore):
(WebCore::PageRuleCollector::PageRuleCollector):
(PageRuleCollector):
(WebCore::PageRuleCollector::matchedResult):
* css/StyleResolver.cpp:
(WebCore):
(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::MatchResult::addMatchedProperties):
(WebCore::StyleResolver::State::initForStyleResolve):
(WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::applyMatchedProperties):
* css/StyleResolver.h:
(WebCore::MatchRequest::MatchRequest):
Removed behaviorAtBoundary. Instead, ElementRuleCollector have the
state.
(MatchRequest):
(WebCore::StyleResolver::selectorFilter):
Added to obtain SelectorFilter in ElementRuleCollector's constructor.
(StyleResolver):
(MatchResult):
(WebCore::StyleResolver::State::State):
To pass ASSERT in StyleResolver::applyProperties, need to keep
m_regionForStyling.
(State):
(WebCore::StyleResolver::State::regionForStyling):
(WebCore::StyleResolver::State::useSVGZoomRules):
(WebCore::StyleResolver::hasSelectorForId):
(WebCore):
(WebCore::checkRegionSelector):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::willMatchRule):
Removed StyleResolver from its parameter list. Instead, added
InspectorCSSOMWrappers and DocumentStyleSheetCollection.
* inspector/InspectorCSSAgent.h:
(WebCore):
(InspectorCSSAgent):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willMatchRuleImpl):
* inspector/InspectorInstrumentation.h:
(WebCore):
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::willMatchRule):
2013-03-11 Mike West <mkwst@chromium.org>
XSSAuditor doesn't need a copy of the original document's body.
https://bugs.webkit.org/show_bug.cgi?id=111946
Reviewed by Darin Adler.
The XSSAuditor currently copies the original HTTP body of the document
that's being audited in order to include it into a violation report if
reflected XSS is detected. We don't actually need to do this, as we
have access to the original request information from inside the
XSSAuditorDelegate where the report is generated.
XSSAuditorDelegate::didBlockScript ASSERTs that it's running on the
main thread, so it should be safe to reach through the document's
loader to get that information directly, rather than passing it from
thread to thread via XSSInfo object properties.
* html/parser/XSSAuditor.h:
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::init):
(WebCore::XSSAuditor::filterToken):
(WebCore::XSSAuditor::isSafeToSendToAnotherThread):
* html/parser/XSSAuditorDelegate.h:
(WebCore::XSSInfo::create):
(WebCore::XSSInfo::XSSInfo):
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::XSSInfo::isSafeToSendToAnotherThread):
Drop the XSSInfo and XSSAuditor properties that held an
isolatedCopy of the the original HTTP body. Depending on the
document's size, this could be a significant savings.
(WebCore::XSSAuditorDelegate::didBlockScript):
Reach into the document's loader's original request in order to
grab the body as a String, and feed that into the violation report
object.
As a drive-by, this patch creates a FrameLoader* temporary
variable to minimize repetition in this area of the code. We use
the loader a few times, but should only have to grab it once.
2013-03-11 Silvia Pfeiffer <silviapf@chromium.org>
[Chromium] REGRESSION: Closed Captions button not showing properly
https://bugs.webkit.org/show_bug.cgi?id=109871
Reviewed by Jer Noble.
No new tests - covered by existing tests.
Most of the patch was in the meantime covered by a patch to
https://bugs.webkit.org/show_bug.cgi?id=111109 .
This changes a static Chromium-only function name to be consistent with
parent class function names.
* rendering/RenderMediaControlsChromium.cpp:
(WebCore::paintMediaToggleClosedCaptionsButton):
(WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
Rename paintMediaClosedCaptionsButton to paintMediaToggleClosedCaptionsButton.
2013-03-11 Tim Horton <timothy_horton@apple.com>
RenderSnapshottedPlugIn paints in PaintPhaseBlockBackground instead of PaintPhaseForeground
https://bugs.webkit.org/show_bug.cgi?id=111962
<rdar://problem/13289335>
Reviewed by Dean Jackson.
RenderSnapshottedPlugIn should paint its snapshot during the foreground
painting phase, instead of BlockBackground, to match normal plugin painting.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::paint):
2013-03-07 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Elements] XSLT transformation result from the xml-stylesheet PI not rendered
https://bugs.webkit.org/show_bug.cgi?id=111313
Reviewed by Vsevolod Vlasov.
Frame document update upon XSL transformation was never instrumented.
This change instruments the Document::applyXSLTransform() method to that end.
Test: http/tests/inspector/styles/xsl-transformed.xml
* dom/Document.cpp:
(WebCore::Document::applyXSLTransform): Instrumented.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::frameDocumentUpdated): Invoked upon applyXSLTransform().
* inspector/InspectorDOMAgent.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::frameDocumentUpdatedImpl): Added.
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didCommitLoad): Drive-by: simplified.
(WebCore::InspectorInstrumentation::frameDocumentUpdated): Added.
2013-03-10 Matt Falkenhagen <falken@chromium.org>
Implement inert subtrees needed for modal <dialog>
https://bugs.webkit.org/show_bug.cgi?id=110952
Reviewed by Hajime Morrita.
This changes Node::disabled() to return true when a modal dialog is
open and the node is not in the dialog.
Reusing disabled for inertness is useful because then event
targeting and focus control automatically have the desired behavior:
inert nodes are skipped over.
Tests: fast/dom/HTMLDialogElement/closed-dialog-does-not-block-mouse-events.html
fast/dom/HTMLDialogElement/modal-dialog-blocks-mouse-events.html
fast/dom/HTMLDialogElement/non-modal-dialog-does-not-block-mouse-events.html
* dom/Document.h:
(WebCore::Document::activeModalDialog): Returns the topmost element in the top layer.
Since now the only elements in the top layer are modal dialogs, it is the active modal dialog.
* dom/Node.cpp:
(WebCore):
(WebCore::Node::isInert): As per the spec, a node that is not an ancestor or descendant of the modal dialog is inert.
(WebCore::Node::disabled): Return false when inert.
* dom/Node.h:
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::disabled): Fall back to the superclass so inert is taken into account.
2013-03-10 Glenn Adams <glenn@skynav.com>
Line breaking opportunities at the end of a text node are missed
https://bugs.webkit.org/show_bug.cgi?id=17427
Reviewed by Darin Adler.
When initializing context for determining next break position,
reuse last two characters from previous text node(s) within block.
This additional state is stored in the current LazyLineBreakIterator
as an optimization to prevent having to add two new parameters to
isBreakable().
At present, this fixes only the ASCII shortcut code path, but
does not yet handle the non-ASCII path. Since the ASCII path is
the most performant critical, the handling of this latter path
will be addressed by webkit.org/b/105692.
Additionally test for case where last two characters context
is derived from distinct nodes, possibly with intervening empty
inline node(s).
Test: fast/text/line-break-between-text-nodes.html
* platform/text/TextBreakIterator.h:
(WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
(WebCore::LazyLineBreakIterator::lastCharacter):
(WebCore::LazyLineBreakIterator::secondToLastCharacter):
(WebCore::LazyLineBreakIterator::setLastTwoCharacters):
(WebCore::LazyLineBreakIterator::resetLastTwoCharacters):
(WebCore::LazyLineBreakIterator::updateLastTwoCharacters):
(LazyLineBreakIterator):
Add state variables to retain last two characters of previous text node(s)
for reuse when initializing nextBreakPosition<>() context.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange):
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
Record and reset retained last two characters of previous text node(s) as
appropriate.
* rendering/break_lines.cpp:
(WebCore::nextBreakablePosition):
Use state variables holding retained last two characters of previous text node(s)
for when initializing nextBreakPosition<>() context.
2013-03-10 Darin Adler <darin@apple.com>
NetworkStorageSession leaks its CFURLStorageSessionRef
https://bugs.webkit.org/show_bug.cgi?id=111950
<rdar://problem/13384134>
Reviewed by Sam Weinig.
* platform/network/NetworkStorageSession.h:
Change the argument type of the constructor to a RetainPtr.
* platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::NetworkStorageSession): Changed
the argument type to a RetainPtr.
(WebCore::NetworkStorageSession::switchToNewTestingSession): Added
calls to adoptCF to adopt the value returned by wkCreatePrivateStorageSession.
(WebCore::NetworkStorageSession::createPrivateBrowsingSession): Ditto.
(WebCore::NetworkStorageSession::cookieStorage): Changed to use adoptCF
instead of the RetainPtr constructor with AdoptCF since the former is
far easier to read.
2013-03-10 Jason Anderssen <janderssen@gmail.com>
Conformance Test 1.0.3 (Beta) function: bufferData undefined value failed.
https://bugs.webkit.org/show_bug.cgi?id=111641
Reviewed by Dean Jackson.
The WebGL specification requires that a size of 0 is not valid. In javascript, passing in undefined
as a parameter to a long long is the same as passing in 0, so we must check for this incorrect
value and fail.
The test suite in Kronos 1.0.3 failed, test to verify conformance is as follows:
https://www.khronos.org/registry/webgl/sdk/tests/conformance/more/functions/bufferDataBadArgs.html.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::bufferData):
Synthesize error and returned if size is 0.
2013-03-10 Andreas Kling <akling@apple.com>
SVGDocumentExtensions should use OwnPtr for pending resource maps.
<http://webkit.org/b/111943>
Reviewed by Anders Carlsson.
* svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::~SVGDocumentExtensions):
(WebCore::SVGDocumentExtensions::addPendingResource):
(WebCore::SVGDocumentExtensions::isElementPendingResources):
(WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
(WebCore::SVGDocumentExtensions::removePendingResource):
(WebCore::SVGDocumentExtensions::removePendingResourceForRemoval):
(WebCore::SVGDocumentExtensions::markPendingResourcesForRemoval):
* svg/SVGDocumentExtensions.h:
(SVGDocumentExtensions):
2013-03-10 Tim Horton <timothy_horton@apple.com>
Add a heuristic to determine the “primary” snapshotted plugin
https://bugs.webkit.org/show_bug.cgi?id=111932
<rdar://problem/13270208>
Reviewed by Dean Jackson.
* WebCore.exp.in: Export a few things.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
(WebCore::classNameForShadowRoot): If we've been informed that we are the primary snapshotted plugin, add the 'primary' class.
(WebCore::HTMLPlugInImageElement::setIsPrimarySnapshottedPlugIn): Added
(WebCore::HTMLPlugInImageElement::updateSnapshotInfo): Hand classNameForShadowRoot our primary-ness.
* html/HTMLPlugInImageElement.h:
(HTMLPlugInImageElement): Add storage for m_isPrimarySnapshottedPlugIn.
2013-03-10 Mike West <mkwst@chromium.org>
XSSAuditor doesn't need a copy of the original document URL.
https://bugs.webkit.org/show_bug.cgi?id=111944
Reviewed by Adam Barth.
When creating an XSSInfo object in response to detecting reflected XSS
on a page, the Auditor was passing in a copy of the document's
original URL for reporting. It doesn't look like we need this, as
XSSInfo's only consumer, XSSAuditorDelegate, runs on the main thread
with access to the document. We can obtain access to the same
information by reading the URL directly from the delegate's Document
object if and when we need it.
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::XSSAuditorDelegate::didBlockScript):
Read the document's URL directly in order to create a violation
report.
(WebCore::XSSInfo::isSafeToSendToAnotherThread):
* html/parser/XSSAuditorDelegate.h:
(WebCore::XSSInfo::create):
(WebCore::XSSInfo::XSSInfo):
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::init):
(WebCore::XSSAuditor::filterToken):
(WebCore::XSSAuditor::isSafeToSendToAnotherThread):
* html/parser/XSSAuditor.h:
Remove the copied original URL from both XSSInfo objects and the
XSSAuditor.
2013-03-10 Andreas Kling <akling@apple.com>
GlyphMetricsMap should use OwnPtr.
<http://webkit.org/b/111937>
Reviewed by Anders Carlsson.
Use OwnPtr instead of raw pointer + deleteAllValues().
* platform/graphics/GlyphMetricsMap.h:
(GlyphMetricsMap):
(WebCore::::locatePageSlowCase):
2013-03-10 Eric Carlson <eric.carlson@apple.com>
Allow iOS port to use InbandTextTrackPrivateAVF
https://bugs.webkit.org/show_bug.cgi?id=111933
Reviewed by Dean Jackson.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processCue): Drive-by cleanup.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
2013-03-09 Eric Carlson <eric.carlson@apple.com>
Enable platform code to implement text track menu
https://bugs.webkit.org/show_bug.cgi?id=111924
Reviewed by Dean Jackson.
No new tests, the new code isn't enabled in any ports yet.
* WebCore.xcodeproj/project.pbxproj: Add PlatformTextTrack.h and PlatformTextTrackMenu.h.
* html/HTMLAudioElement.cpp:
(WebCore::HTMLAudioElement::createForJSConstructor): scheduleLoad -> scheduleDelayedAction.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Deal with scheduleLoad to scheduleDelayedAction rename.
(WebCore::HTMLMediaElement::parseAttribute): Ditto.
(WebCore::HTMLMediaElement::finishParsingChildren): Ditto.
(WebCore::HTMLMediaElement::insertedInto): Ditto.
(WebCore::HTMLMediaElement::scheduleDelayedAction): Ditto.
(WebCore::HTMLMediaElement::scheduleNextSourceChild): Ditto.
(WebCore::HTMLMediaElement::loadTimerFired): Ditto.
(WebCore::HTMLMediaElement::textTrackModeChanged): Notify platform menu of track change.
(WebCore::HTMLMediaElement::playInternal): Deal with scheduleLoad to scheduleDelayedAction rename.
(WebCore::HTMLMediaElement::pauseInternal): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerDidAddTrack): Ditto. Call addTrack() instead of appending
the track directly.
(WebCore::HTMLMediaElement::setSelectedTextTrack): Deal with platform menu changing the
selected track.
(WebCore::HTMLMediaElement::platformTextTracks): Return an array of PlatformTracks representing
the current text tracks.
(WebCore::HTMLMediaElement::notifyMediaPlayerOfTextTrackChanges): Notify the platform menu
that the list of text tracks has changed.
(WebCore::HTMLMediaElement::platformTextTrackMenu): Return the platform track menu, if any.
(WebCore::HTMLMediaElement::closeCaptionTracksChanged):
(WebCore::HTMLMediaElement::addTrack): Call addTrack() instead of appending the track directly.
(WebCore::HTMLMediaElement::removeTrack): Call closeCaptionTracksChanged.
(WebCore::HTMLMediaElement::addTextTrack): Call addTrack() instead of appending the track directly.
(WebCore::HTMLMediaElement::didAddTrack): Ditto.
(WebCore::HTMLMediaElement::didRemoveTrack): Deal with scheduleLoad to scheduleDelayedAction rename.
(WebCore::HTMLMediaElement::sourceWasAdded): Ditto.
(WebCore::HTMLMediaElement::clearMediaPlayer): Forget the platform track menu.
(WebCore::HTMLMediaElement::resume): Deal with scheduleLoad to scheduleDelayedAction rename.
* html/HTMLMediaElement.h:
* html/track/InbandTextTrack.h: scheduleLoad -> scheduleDelayedAction.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::platformTextTrack): Create a PlatformTextTrack.
* html/track/TextTrack.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::implementsTextTrackControls): New, player private passthrough.
(WebCore::MediaPlayer::textTrackMenu): Ditto.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
* platform/graphics/PlatformTextTrack.h: Added.
* platform/graphics/PlatformTextTrackMenu.h: Added.
2013-03-09 Eric Carlson <eric.carlson@apple.com>
Video size calculated incorrectly when PLUGIN_PROXY_FOR_VIDEO
https://bugs.webkit.org/show_bug.cgi?id=111912
Reviewed by Dean Jackson.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateSizes): We use RenderPart when
PLUGIN_PROXY_FOR_VIDEO is defined, not RenderVideo.
2013-03-09 Sebastian Dröge <sebastian.droege@collabora.co.uk>
Fix offset handling in GStreamer WebKitWebSource.
https://bugs.webkit.org/show_bug.cgi?id=111888
Reviewed by Philippe Normand.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcSeekDataCb):
(StreamingClient::didReceiveData):
The offset handling in WebKitWebSource was completely wrong
before and caused wrong offsets to be set on the GStreamer buffers
after a seek.
Apart from that there was also a race condition that happens
when a downstream element causes seeks in very short succession
and is switching between two different parts of the stream.
2013-03-09 Keishi Hattori <keishi@webkit.org>
Month transition animation is missing in some places
https://bugs.webkit.org/show_bug.cgi?id=111908
Reviewed by Kent Tamura.
Month transition animation was missing when navigating using keyboard
shortcuts and when navigation was trigger by selecting.
Added tests to calendar-picker/*-picker-key-operations.html.
* Resources/pagepopups/calendarPicker.js:
(Animator): Added annotations.
(Animator.prototype.isRunning): Returns true of the animation is running. Used by test.
(ScrollView.prototype.scrollAnimator): Returns the scroll animator. Used by test.
(CalendarPicker):
(CalendarPicker.prototype.onYearListViewDidSelectMonth): Use CalendarPicker.NavigationBehavior enum instead of bool.
(CalendarPicker.prototype.setSelection): Ditto.
(CalendarPicker.prototype._moveHighlight): Ditto.
(CalendarPicker.prototype.onCalendarTableKeyDown): Ditto.
(CalendarPicker.prototype.onBodyKeyDown): Ditto.
2013-03-09 Dean Jackson <dino@apple.com>
Can't build w/o accelerated compositing
https://bugs.webkit.org/show_bug.cgi?id=111891
Patch originally came from Tobias Mueller <tobiasmue@gnome.org>
Unreviewed build fix for platforms without ACCELERATED_COMPOSITING enabled, due
to r145057.
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::~PseudoElement): Wrap the call to pseudoElementDestroyed in
USE(ACCELERATED_COMPOSITING)
2013-03-07 Robert Hogan <robert@webkit.org>
REGRESSION(r140907): Incorrect baseline for cells with media content during load
https://bugs.webkit.org/show_bug.cgi?id=108357
Reviewed by Julien Chaffraix.
If a cell has replaced content, the intrinsic height of its content can change between layouts. If that's the case then the intrinsic padding we used
for layout (the padding required to push the contents of the cell down to the row's baseline) is included in the new height and baseline and makes both
of them wrong. So if a cell's content's intrinsic height has changed push the new content up into the intrinsic padding and relayout so that the rest of
table and row layout can use the correct baseline and height for this cell.
Tests: fast/css/vertical-align-baseline-rowspan-012.html
http/tests/css/vertical-align-baseline-after-image-load-2.html
http/tests/css/vertical-align-baseline-after-image-load-3.html
http/tests/css/vertical-align-baseline-after-image-load.html
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::layout):
* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::isBaselineAligned):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::calcRowLogicalHeight):
(WebCore::RenderTableSection::layoutRows):
2013-03-08 Chris Fleizach <cfleizach@apple.com>
REGRESSION: Intermittent crash in SpeechSynthesis::didFinishSpeaking
https://bugs.webkit.org/show_bug.cgi?id=111613
Reviewed by Ryosuke Niwa.
This crash happens when the mock synthesizer utterance variable gets cleared
before the speakingFinished timer happens. I don't see how that could happen
but I was able to make a similar problem happen when cancel is called twice.
This adds in a few more asserts and common sense checks. I'm hoping it will
illuminate the problem further.
* platform/mock/PlatformSpeechSynthesizerMock.cpp:
(WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
(WebCore::PlatformSpeechSynthesizerMock::speak):
(WebCore::PlatformSpeechSynthesizerMock::cancel):
2013-03-08 David Kilzer <ddkilzer@apple.com>
BUILD FIX: Make WebCore link for iOS
* WebCore.exp.in:
- Add ENABLE(RUBBER_BAND) for FrameView::setWantsLayerForTopOverHangArea(bool)
and FrameView::setWantsLayerForBottomOverHangArea(bool).
- Move FloatPoint::FloatPoint(_NSPoint const&) to !PLATFORM(IOS)
section.
2013-03-08 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Resolve grid-{end|after} integer against the end|after edge
https://bugs.webkit.org/show_bug.cgi?id=111885
Reviewed by Tony Chang.
The current code resolves grid-end (resp. grid-after) <integer>'s format against the start
(resp. before) axis. The specification changed so that they are resolved against their matching
axis.
Test: fast/css-grid-layout/grid-auto-flow-resolution.html
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::maximumIndexInDirection):
Updated the code to do the grid sizing measurement without resolveGridPositionsFromStyle. That's required
as resolveGridPositionsFromStyle requires the grid to be sized.
(WebCore::RenderGrid::placeItemsOnGrid):
Added a comment about not recomputing after grid growth. This issue was raised to www-style
(http://lists.w3.org/Archives/Public/www-style/2013Mar/0182.html).
(WebCore::RenderGrid::resolveGridPositionsFromStyle):
Added an ASSERT now that we don't call it during grid construction. Also added some code to pass
the side of the GridPosition we give to resolveGridPositionFromStyle.
(WebCore::RenderGrid::resolveGridPositionFromStyle):
Updated the code to resolve the grid position against the right side.
* rendering/RenderGrid.h:
Added GridPositionSide and updated resolveGridPositionFromStyle's signature.
2013-03-08 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r142015.
http://trac.webkit.org/changeset/142015
https://bugs.webkit.org/show_bug.cgi?id=111904
The change caused 2 major regressions (bug 111091 and bug
111595) and Pravin doesn't have time to investigate them
(Requested by jchaffraix on #webkit).
* dom/Node.cpp:
(WebCore::Node::diff):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::childBecameNonInline):
(WebCore):
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::childBecameNonInline):
(RenderBoxModelObject):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::childBecameNonInline):
(WebCore):
* rendering/RenderInline.h:
(RenderInline):
* rendering/RenderObject.cpp:
(WebCore):
(WebCore::RenderObject::handleDynamicFloatPositionChange):
(WebCore::RenderObject::styleWillChange):
(WebCore::RenderObject::styleDidChange):
* rendering/RenderObject.h:
(RenderObject):
2013-03-08 Dean Jackson <dino@apple.com>
Don't snapshot Java plugins
https://bugs.webkit.org/show_bug.cgi?id=111899
Reviewed by Tim Horton.
Export MIMETypeRegistry::isJavaAppletMIMEType symbol.
* WebCore.exp.in:
2013-03-08 Rafael Weinstein <rafaelw@chromium.org>
[HTMLTemplateElement] processTemplateEndTag() needs to check for template in html scope
https://bugs.webkit.org/show_bug.cgi?id=111880
Reviewed by Eric Seidel.
Currently, </template> handling exits with an error if there is not a template tag "in scope"
which will be true if there is a table (for instance) below a template. This makes it so that
the search (correctly) examines the entire element stack.
Tests added to html5lib testing library.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processTemplateEndTag):
2013-03-08 Eric Seidel <eric@webkit.org>
BackgroundHTMLParser should be able to atomize well-known strings
https://bugs.webkit.org/show_bug.cgi?id=107337
Reviewed by Adam Barth.
Testing this patch easily requires applying bug 107236 locally
to remove all the rendering noise from Parser/html-threaded-parser.html.
This patch adds a new class HTMLIdentifier which allows us to avoid
allocating strings for known tag/attribute names from HTMLNames.
There is still a lot of meat on this bone, but I think it's important to
land something "smallish" to start and iterate from there.
This took Parser/html-threaded-parser.html from:
median= 443.726500002 ms, stdev= 7.25002679952 ms, min= 430.244000047 ms, max= 455.511000007 ms
to:
median= 427.849500004 ms, stdev= 9.96967058292 ms, min= 417.914000049 ms, max= 461.528000014 ms
on my MBP.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* html/parser/AtomicHTMLToken.h:
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::tokenExitsForeignContent):
(WebCore::tokenExitsSVG):
(WebCore::tokenExitsMath):
(WebCore::BackgroundHTMLParser::simulateTreeBuilder):
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::scan):
* html/parser/CSSPreloadScanner.h:
(WebCore):
(CSSPreloadScanner):
* html/parser/CompactHTMLToken.cpp:
(SameSizeAsCompactHTMLToken):
(WebCore::CompactHTMLToken::CompactHTMLToken):
* html/parser/CompactHTMLToken.h:
(WebCore::CompactHTMLToken::Attribute::Attribute):
(Attribute):
(WebCore::CompactHTMLToken::data):
(WebCore::CompactHTMLToken::publicIdentifier):
(CompactHTMLToken):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::startBackgroundParser):
* html/parser/HTMLIdentifier.cpp: Added.
(WebCore):
(WebCore::identifierTable):
(WebCore::HTMLIdentifier::hasIndex):
(WebCore::HTMLIdentifier::findIndex):
(WebCore::nameForIndex):
(WebCore::HTMLIdentifier::asString):
(WebCore::HTMLIdentifier::asStringImpl):
(WebCore::HTMLIdentifier::addNames):
(WebCore::HTMLIdentifier::init):
* html/parser/HTMLIdentifier.h: Added.
(WebCore):
(HTMLIdentifier):
(WebCore::HTMLIdentifier::HTMLIdentifier):
(WebCore::HTMLIdentifier::isSafeToSendToAnotherThread):
* html/parser/HTMLParserIdioms.cpp:
(WebCore::threadSafeEqual):
(WebCore::threadSafeMatch):
* html/parser/HTMLParserIdioms.h:
(WebCore):
(WebCore::threadSafeHTMLNamesMatch):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::tagIdFor):
(WebCore::TokenPreloadScanner::StartTagScanner::match):
(TokenPreloadScanner::StartTagScanner):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
* html/parser/HTMLPreloadScanner.h:
2013-03-08 Brandon Jones <bajones@google.com>
Check to ensure MultisampleRenderbuffer creation succeeds
https://bugs.webkit.org/show_bug.cgi?id=111780
Reviewed by Dean Jackson.
On OSX systems using AMD graphics chips the allocation of large
Multisample Renderbuffers in Chromium would fail without any indication
of failure. Attempting to draw to the buffer resulted in garbage being
rendered onscreen. This could be reproduced by opening a full-page
WebGL app and pressing (Command + "-") several times. This patch adds an
additional check during DrawingBuffer resize to verify that the resized
buffer is valid.
* platform/graphics/gpu/DrawingBuffer.cpp:
(WebCore):
(WebCore::DrawingBuffer::checkBufferIntegrity):
(WebCore::DrawingBuffer::reset):
* platform/graphics/gpu/DrawingBuffer.h:
(DrawingBuffer):
2013-03-08 Harald Alvestrand <hta@chromium.org>
Implemented new API for RTCStatsReport object.
https://bugs.webkit.org/show_bug.cgi?id=110333
Removed RTCStatsElement object, moved its interface to
RTCStatsReport. Preserved some interfaces for
backwards compatibility; will be removed in a later patch.
Reviewed by Adam Barth.
Tested by extensions to RTCPeerConnection-stats test.
* Modules/mediastream/RTCStatsElement.cpp: Removed.
* Modules/mediastream/RTCStatsElement.h: Removed.
* Modules/mediastream/RTCStatsElement.idl: Removed.
* Modules/mediastream/RTCStatsReport.cpp:
(WebCore::RTCStatsReport::create):
(WebCore::RTCStatsReport::RTCStatsReport):
(WebCore):
(WebCore::RTCStatsReport::names):
(WebCore::RTCStatsReport::local):
(WebCore::RTCStatsReport::remote):
(WebCore::RTCStatsReport::addStatistic):
(WebCore::RTCStatsReport::addElement):
* Modules/mediastream/RTCStatsReport.h:
(RTCStatsReport):
(WebCore::RTCStatsReport::timestamp):
(WebCore::RTCStatsReport::id):
(WebCore::RTCStatsReport::stat):
* Modules/mediastream/RTCStatsReport.idl:
* Modules/mediastream/RTCStatsResponse.cpp:
(WebCore::RTCStatsResponse::namedItem):
(WebCore):
(WebCore::RTCStatsResponse::addReport):
(WebCore::RTCStatsResponse::addStatistic):
* Modules/mediastream/RTCStatsResponse.h:
(RTCStatsResponse):
* Modules/mediastream/RTCStatsResponse.idl:
* WebCore.gypi:
* platform/chromium/support/WebRTCStatsResponse.cpp:
(WebKit::WebRTCStatsResponse::addReport):
(WebKit):
(WebKit::WebRTCStatsResponse::addStatistic):
(WebKit::WebRTCStatsResponse::addElement):
* platform/mediastream/RTCStatsResponseBase.h:
(RTCStatsResponseBase):
2013-03-08 Eric Seidel <eric@webkit.org>
Free up background parser's checkpoints when speculation succeeds
https://bugs.webkit.org/show_bug.cgi?id=110547
Reviewed by Adam Barth.
This should be a memory (and possible perf) win while parsing
pages, as we will no longer hold multiple copies of every
source byte during the whole parse.
Many LayoutTests exercise this code path, and I've manually (debugger and printf)
that we're hitting this code, but we'll have to wait for the memory/perf bots
to tell us if this shows up as a win.
We only bother to message the parser at the end of a speculation chain, so as not
to send too many messages to the background parser.
* html/parser/BackgroundHTMLInputStream.cpp:
(WebCore::BackgroundHTMLInputStream::BackgroundHTMLInputStream):
(WebCore::BackgroundHTMLInputStream::invalidateCheckpointsUpThrough):
(WebCore):
(WebCore::BackgroundHTMLInputStream::rewindTo):
* html/parser/BackgroundHTMLInputStream.h:
(BackgroundHTMLInputStream):
(Checkpoint):
(WebCore::BackgroundHTMLInputStream::Checkpoint::isNull):
(WebCore::BackgroundHTMLInputStream::Checkpoint::clear):
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::passedCheckpoint):
(WebCore):
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::pumpPendingSpeculations):
2013-03-08 Chandra Shekar Vallala <brk376@motorola.com>
[chromium] Keydown event for 'shift+alt' returns win keycode instead of 'alt'
https://bugs.webkit.org/show_bug.cgi?id=111112
Reviewed by Tony Chang.
Return windows keycode of Alt incase of GDK_META_L, GDK_META_R. This matches
the firefox behaviour in linux platform.
Added Manual Test : ManualTests/shift-alt-key-event.html
Try press Shift then alt key. The test passes if the shiftKey, altKey values
of JSKeyEvent are true and keycode/which is 18.
* platform/chromium/KeyCodeConversionGtk.cpp:
(WebCore::windowsKeyCodeForKeyEvent):
2013-03-08 Mike West <mkwst@chromium.org>
CSP: 'eval()' is blocked in report-only mode.
https://bugs.webkit.org/show_bug.cgi?id=111867
Reviewed by Adam Barth.
Setting a 'Content-Security-Policy-Report-Only' header should not have
any effect on what a page actually executes. Currently, however, setting
a 'script-src' directive that doesn't whitelist 'unsafe-eval' actually
blocks 'eval()' on the page. This patch fixes that by checking whether
we're in report-only mode before turning 'eval()' off inside the script
engine.
This leaves us in a weird state, however. We don't currently have any
mechanism of explaining to the VM that we just want to be notified of
'eval()' usage. I've filed http://wkbug.com/111869 to cover this
aspect.
Test: http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode.html
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::didReceiveHeader):
For each policy we parse, check that we're only turning off eval in
the VM when we're in enforce mode. If we're in report-only mode,
skip it.
2013-03-08 Christian Biesinger <cbiesinger@chromium.org>
REGRESSION (r143643): <button> should support ::first-line and ::first-letter
https://bugs.webkit.org/show_bug.cgi?id=111782
Reviewed by Ojan Vafai.
Test: fast/forms/button-first-line-first-letter.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::firstLineBlock):
(WebCore::findFirstLetterBlock):
Add isRenderButton to the first-line and first-letter checks that
don't allow ::first-* styles for flexbox.
2013-03-08 Geoffrey Garen <ggaren@apple.com>
Removed an out-of-date comment from SharedTimer
https://bugs.webkit.org/show_bug.cgi?id=111875
Reviewed by Mark Hahnenberg.
Even if we surround each call to an ObjC interface with an autorelease
pool, it's still nice to have one at top-level entry points like
timers, to avoid turning a single mistake into a long-term leak.
* platform/ios/SharedTimerIOS.mm:
(WebCore::timerFired):
* platform/mac/SharedTimerMac.mm:
(WebCore::timerFired):
2013-03-08 Benjamin Poulain <benjamin@webkit.org>
[Mac] Add a feature flag for 'view-mode' Media Feature, disable it on Mac
https://bugs.webkit.org/show_bug.cgi?id=111297
Reviewed by Kenneth Rohde Christiansen.
The 'view-mode' Media Feature spec is implemented in WebCore but
there is no WebKit support for it on Mac.
Because of this, we always lie and report a windowed view mode.
This patch add a feature flag for the feature and disable it on
Mac so that we stop reporting incorrect default values.
* WebCore.exp.in:
* css/CSSValueKeywords.in:
* css/MediaFeatureNames.h:
(MediaFeatureNames):
* css/MediaQueryEvaluator.cpp:
* css/MediaQueryExp.cpp:
(WebCore::featureWithCSSValueID):
(WebCore::featureWithoutValue):
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h:
(Page):
2013-03-08 Ryosuke Niwa <rniwa@webkit.org>
After sending message, Mail changes formatting
https://bugs.webkit.org/show_bug.cgi?id=111360
Reviewed by Enrica Casucci.
Added makeInsertedContentRoundTrippableWithHTMLTreeBuilder to move prohibited children (e.g. p, h1, etc...)
out of paragraph elements to run immediately after the fragment insertion. This function splits trees and
moves prohibited children out of paragraph elements to keep the tree isomorphic under HTML serialization and
parsing. Unfortunately, there are many other DOM tree constructs we need to fix to make the subtree truly
isomorphic but this is a step forward.
Test: editing/pasteboard/pasting-into-p-should-not-nest-p.html
* editing/ReplaceSelectionCommand.cpp:
(WebCore::isProhibitedParagraphChild): Added. Matches the list at
https://dvcs.w3.org/hg/editing/raw-file/57abe6d3cb60/editing.html#prohibited-paragraph-child
except main element, which is currently missing in the specification.
(WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder): Added.
(WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor): Added.
(WebCore::ReplaceSelectionCommand::doApply): Call moveProhibitedChildrenOutOfParagraphElements.
* editing/ReplaceSelectionCommand.h:
(ReplaceSelectionCommand):
2013-03-08 Eric Seidel <eric@webkit.org>
AtomicHTMLToken should not be heap allocated or RefCounted
https://bugs.webkit.org/show_bug.cgi?id=111250
Reviewed by Adam Barth.
It was clearly an oversight on our part to ever make AtomicHTMLToken ref-counted.
We don't need the actual "token" saved, just enough of it to recreate a fake token.
This removed many more mallocs than I thought it would, for a nice little speed win.
Before:
median= 450.482999993 ms, stdev= 7.2381436538 ms, min= 436.084999994 ms, max= 464.968999964 ms
After:
median= 436.41600004 ms, stdev= 5.71435647554 ms, min= 427.160999971 ms, max= 446.753000026 ms
* html/parser/AtomicHTMLToken.h:
(AtomicHTMLToken):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::createElementFromSavedToken):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::constructTreeFromHTMLToken):
(WebCore::HTMLDocumentParser::constructTreeFromCompactHTMLToken):
* html/parser/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::isHTMLIntegrationPoint):
* html/parser/HTMLFormattingElementList.cpp:
(WebCore):
(WebCore::HTMLFormattingElementList::tryToEnsureNoahsArkConditionQuickly):
(WebCore::HTMLFormattingElementList::ensureNoahsArkCondition):
* html/parser/HTMLStackItem.h:
(WebCore::HTMLStackItem::create):
(WebCore::HTMLStackItem::localName):
(WebCore::HTMLStackItem::attributes):
(WebCore::HTMLStackItem::getAttributeItem):
(HTMLStackItem):
(WebCore::HTMLStackItem::hasLocalName):
(WebCore::HTMLStackItem::hasTagName):
(WebCore::HTMLStackItem::HTMLStackItem):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processFakeStartTag):
(WebCore::HTMLTreeBuilder::processFakeEndTag):
(WebCore::HTMLTreeBuilder::processFakePEndTagIfPInButtonScope):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
(WebCore::HTMLTreeBuilder::defaultForBeforeHead):
(WebCore::HTMLTreeBuilder::defaultForInHead):
(WebCore::HTMLTreeBuilder::defaultForInHeadNoscript):
(WebCore::HTMLTreeBuilder::defaultForAfterHead):
* html/parser/TextDocumentParser.cpp:
(WebCore::TextDocumentParser::insertFakePreElement):
2013-03-08 Roger Fong <roger_fong@apple.com>
Makefile fixes.
* WebCore.vcxproj/WebCore.make:
2013-03-07 Emil A Eklund <eae@chromium.org>
[sub-pixel] Rounding error in table cell height calculation causes unnecessary scrollbar
https://bugs.webkit.org/show_bug.cgi?id=111794
Reviewed by Levi Weintraub.
In RenderTableCell::logicalHeightForRowSizing the
adjustedLogicalHeight is calculated from the logicalHeight and
intrinsic padding and is then returned and floored. This can
cause cause the cell to be slightly smaller (0.5px) than the
element it contains.
Test: fast/sub-pixel/table-cell-height.html
* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::logicalHeightForRowSizing):
Change to use pixelSnapped version of logicalHeight method and
change signature to return int as the only caller immediately
down-casts the result to an int.
2013-03-08 Christian Biesinger <cbiesinger@chromium.org>
RenderFullScreen needs to clear override sizes when exiting full screen
https://bugs.webkit.org/show_bug.cgi?id=111775
Reviewed by Ojan Vafai.
Test: fullscreen/full-screen-with-flex-item.html
* rendering/RenderFullScreen.cpp:
(RenderFullScreen::unwrapRenderer):
RenderFullScreen is a flexbox, so it will potentially set override
sizes on its children while in fullscreen mode. When we exit
fullscreen mode, we need to clear this override size, otherwise the
the leftover override size may affect layout. See the testcase for an
example.
2013-03-08 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Handle 2 positions with one 'auto' properly
https://bugs.webkit.org/show_bug.cgi?id=111653
Reviewed by Tony Chang.
The rendering code was making the assumption that we have one position.
Thus it couldn't fully match what the specification wants as the 2 opposite
positions are required to resolve either position in several cases (e.g.
1 / span 2, auto / 'c').
This change introduces resolveGridPositionsFromStyle to do both opposite
positions resolution in one pass and thus handling more cases.
Test: fast/css-grid-layout/grid-item-spanning-resolution.html
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::maximumIndexInDirection):
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
Updated the above functions to rely on resolveGridPositionsFromStyle.
(WebCore::RenderGrid::resolveGridPositionsFromStyle):
Added this new function that handle the correct resolution.
(WebCore::RenderGrid::resolveGridPositionFromStyle):
Updated the ASSERT to match the new code flow.
* rendering/RenderGrid.h:
(WebCore::RenderGrid::GridSpan::GridSpan):
Introduced this new struct to hold the 2 positions along one axis.
2013-03-08 Dominic Cooney <dominicc@chromium.org>
RenderTextControlSingleLine should not assume that its text element has a renderer
https://bugs.webkit.org/show_bug.cgi?id=111826
Reviewed by Ojan Vafai.
Tests: fast/forms/search/search-autoscroll-hidden-decoration-container-crash.html
fast/forms/search/search-hide-decoration-container-crash.html
fast/forms/search/search-scroll-hidden-decoration-container-crash.html
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout):
(WebCore::RenderTextControlSingleLine::controlClipRect):
(WebCore::RenderTextControlSingleLine::autoscroll):
(WebCore::RenderTextControlSingleLine::scroll):
2013-03-08 Joshua Bell <jsbell@chromium.org>
IndexedDB: Use WeakPtr for Factory-to-BackingStore reference
https://bugs.webkit.org/show_bug.cgi?id=111459
Reviewed by Adam Barth.
IDBFactoryBackendImpl maintains a map of backing stores - if another database in the same
origin is opened, the backing store instance must be re-used). This was a map to raw
pointers so that the backing store can be collected when all database references are
dropped. The map was maintained manually by passing the factory to the IDBBackingStore which
would add/remove itself on creation/destruction.
Replace this with a HashMap<WeakPtr<T>>. This simplifies the plumbing; map entries
"leak" but are purged on subsequent opens.
Added webkit_unit_test (Chromium port) to verify refcounts.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::IDBBackingStore): No need to notify factory of lifetime.
(WebCore::IDBBackingStore::~IDBBackingStore): Ditto.
(WebCore::IDBBackingStore::open): Ditto.
* Modules/indexeddb/IDBBackingStore.h: No reference to the factory, but...
(WebCore::IDBBackingStore::createWeakPtr): Do need to expose weak pointers for the factory to hold.
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::cleanWeakMap): Helper function to scrub a HashMap<WeakPtr<T>> of empty pointers.
May move to WTF when we've learned how general it is, or come up with a dedicated WeakPtrHashMap type.
(WebCore::IDBFactoryBackendImpl::openBackingStore): WeakPtr fu.
* Modules/indexeddb/IDBFactoryBackendImpl.h:
(IDBFactoryBackendImpl): Remove plumbing methods.
2013-03-08 John Mellor <johnme@chromium.org>
@media queries do not take zooming into account
https://bugs.webkit.org/show_bug.cgi?id=53186
Reviewed by Kenneth Rohde Christiansen.
Fixes @media width and height to take into account full page zoom, by
adding code to MediaQueryEvaluator's width/heightMediaFeatureEval,
corresponding to the existing code in Element::clientWidth which makes
document.documentElement.clientWidth take into account page zoom.
Test: fast/media/mq-width-pagezoom.html
* css/MediaQueryEvaluator.cpp:
(WebCore::heightMediaFeatureEval):
(WebCore::widthMediaFeatureEval):
2013-03-08 Carlos Garcia Campos <cgarcia@igalia.com>
[BlackBerry] Add stubs for DNSResolveQueue platform specific methods
https://bugs.webkit.org/show_bug.cgi?id=111841
Reviewed by Rob Buis.
Add empty implementations of
DNSResolveQueue::platformProxyIsEnabledInSystemPreferences() and
DNSResolveQueue::platformResolve() to DNSBlackBerry.cpp to make it
build.
* platform/network/blackberry/DNSBlackBerry.cpp:
(WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
(WebCore::DNSResolveQueue::platformResolve):
2013-03-08 Glenn Hartmann <hartmanng@chromium.org>
Adding a hook to collect data for a Google UMA histogram to track when
m_needsCompositedScrolling is turned on and off.
https://bugs.webkit.org/show_bug.cgi?id=111725
Reviewed by Julien Chaffraix.
We want to keep track of this information to quantify the effects of a
few patches that will cause us to opt in to composited scrolling.
Specifically, we want to measure the effects of
https://bugs.webkit.org/show_bug.cgi?id=109302,
https://bugs.webkit.org/show_bug.cgi?id=109966,
https://bugs.webkit.org/show_bug.cgi?id=109591, and
https://bugs.webkit.org/show_bug.cgi?id=107618.
We do this by measuring a per-layer boolean value, and comparing the
ratio between number of layers opted in and number of layers that remain
uncomposited. We hope the relative number of layers opting in will
increase after the relevant patches land and are enabled.
Unfortunately implementing extra statistics is impractical at the
moment since most of the actionable relevant data is expensive to
compute. For example, it would be useful to know if the layers that opt
out do so because of invisible or non-overlapping layers that cause a
potential stacking container's children to be discontiguous, because we
would potentially be able to mitigate the problem. However, this would
add considerable overhead to perform overlap testing just to gather
data.
No new tests (no change in behaviour).
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateNeedsCompositedScrolling):
2013-03-08 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] GraphicsContext: rename addRoundedRectClip to clipRoundedRect
https://bugs.webkit.org/show_bug.cgi?id=111852
Reviewed by Rob Buis.
This changed in r139353.
* platform/graphics/blackberry/GraphicsContextBlackBerry.cpp:
(WebCore::GraphicsContext::clipRoundedRect):
2013-03-08 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] Add BlendMode parameter to GraphicsContext::setPlatformCompositeOperation
https://bugs.webkit.org/show_bug.cgi?id=111840
Reviewed by Rob Buis.
This parameter was added in r137011.
* platform/graphics/blackberry/GraphicsContextBlackBerry.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
2013-03-08 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] Remove unused GraphicsContext::addInnerRoundedRectClip()
https://bugs.webkit.org/show_bug.cgi?id=111838
Reviewed by Rob Buis.
This was removed in r139138.
* platform/graphics/blackberry/GraphicsContextBlackBerry.cpp:
2013-03-08 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] GraphicsContext: add fillRule parameter to clip() and canvasClip()
https://bugs.webkit.org/show_bug.cgi?id=111836
Reviewed by Rob Buis.
This parameter was added in r139967.
* platform/graphics/blackberry/PathBlackBerry.cpp:
(WebCore):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::canvasClip):
2013-03-08 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Get rid of file system ids and use file pathes as uri for file based uiSourceCodes.
https://bugs.webkit.org/show_bug.cgi?id=111753
Reviewed by Pavel Feldman.
* inspector/front-end/FileSystemMapping.js:
(WebInspector.FileSystemMappingImpl):
(WebInspector.FileSystemMappingImpl.prototype._loadFromSettings.get this):
(WebInspector.FileSystemMappingImpl.prototype._loadFromSettings):
(WebInspector.FileSystemMappingImpl.prototype._saveToSettings):
(WebInspector.FileSystemMappingImpl.prototype.set addFileSystemMapping):
(WebInspector.FileSystemMappingImpl.prototype.removeFileSystemMapping):
(WebInspector.FileSystemMappingImpl.prototype.fileSystemPaths):
(WebInspector.FileSystemMappingImpl.prototype.fileSystemPathForPrefix):
* inspector/front-end/FileSystemProjectDelegate.js:
(WebInspector.FileSystemProjectDelegate.projectId):
(WebInspector.FileSystemProjectDelegate.prototype.id):
(WebInspector.FileSystemProjectDelegate.prototype.fileSystemPath):
(WebInspector.FileSystemWorkspaceProvider):
(WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemAdded):
(WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemRemoved):
(WebInspector.FileSystemWorkspaceProvider.prototype.fileSystemPath):
* inspector/front-end/IsolatedFileSystemManager.js:
(WebInspector.IsolatedFileSystemManager.prototype._innerAddFileSystem):
(WebInspector.IsolatedFileSystemManager.prototype._fileSystemRemoved):
* inspector/front-end/Workspace.js:
(WebInspector.Workspace.prototype.uiSourceCodeForURL):
2013-03-08 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Polish TabbedEditorContaner and ScriptsNavigator behavior.
https://bugs.webkit.org/show_bug.cgi?id=111732
Reviewed by Pavel Feldman.
Resources matching inspectedPageURL are always expanded in NavigatorView now.
Snippets tab in scripts navigator is not automatically opened anymore.
Cleared saved TabbedEditorContainer history because it might have been corrupted due to errors in earlier versions.
Snippets are not revealed in TabbedEditorContainer anymore unless they were actually selected by user or there is no other tabs opened.
* inspector/front-end/NavigatorView.js:
(WebInspector.NavigatorView):
(WebInspector.NavigatorView.prototype.addUISourceCode):
(WebInspector.NavigatorView.prototype._inspectedURLChanged):
(WebInspector.NavigatorView.prototype.revealUISourceCode):
(WebInspector.NavigatorView.prototype.removeUISourceCode):
(WebInspector.NavigatorFolderTreeElement.prototype.onattach):
(WebInspector.NavigatorUISourceCodeTreeNode.prototype.uiSourceCode):
(WebInspector.NavigatorUISourceCodeTreeNode.prototype.reveal):
* inspector/front-end/ScriptsNavigator.js:
(WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._showFile):
* inspector/front-end/Settings.js:
(WebInspector.VersionController.prototype._updateVersionFrom1To2):
* inspector/front-end/TabbedEditorContainer.js:
(WebInspector.TabbedEditorContainer.prototype.addUISourceCode.tabId.this._tabIds.get this):
(WebInspector.TabbedEditorContainer.prototype.addUISourceCode):
(WebInspector.TabbedEditorContainer.History.prototype._rebuildItemIndex):
2013-03-08 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Add shortcut for running a snippet.
https://bugs.webkit.org/show_bug.cgi?id=111680
Reviewed by Pavel Feldman.
Added Ctrl/Cmd+Enter as a shortcut for running a snippet.
* inspector/front-end/SnippetJavaScriptSourceFrame.js:
(WebInspector.SnippetJavaScriptSourceFrame):
(WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
(WebInspector.SnippetJavaScriptSourceFrame.prototype._runSnippet):
(WebInspector.SnippetJavaScriptSourceFrame.prototype._onKeyDown):
2013-03-08 Philip Rogers <pdr@google.com>
Prevent infinite loop in SVG use cycle detection
https://bugs.webkit.org/show_bug.cgi?id=111822
Reviewed by Stephen Chenney.
SVG use cycle detection depended on idForStyleResolution() which differs from
getIdAttribute() in quirks mode. During use tree cycle detection, this difference
resulted in an infinite loop because idForStyleResolution() used lower-cased id
attributes. This patch removes an existing fixme for this and switches to using
getIdAttribute().
Test: svg/custom/use-cycle-detection.html
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::hasCycleUseReferencing):
2013-03-08 Yuki Sekiguchi <yuki.sekiguchi@access-company.com>
When we set word-wrap: break-word and xml:space="preserve" to svg text element, the text is collapsed.
https://bugs.webkit.org/show_bug.cgi?id=111675
Reviewed by Stephen Chenney.
RenderSVGText define its size when it laid out its first line at SVGRootInlineBox::computePerCharacterLayoutInformation().
In the following spec, SVG don't perform automatic line break or word wrapping.
http://www.w3.org/TR/SVG/text.html#Introduction
> SVG performs no automatic line breaking or word wrapping.
However, when we set word-wrap: break-word and xml:space="preserve" to svg text element, RenderBlock::LineBreaker::nextLineBreak() breaks the text.
This make single character lines and make RenderSVGText narrow.
We must ignore word-wrap property to make the text a single line.
We always disable break words and break all in nextLineBreak() when the object is SVGInlineText.
Test: svg/text/preserve-break-word.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Disable break words and break all when we process SVG Text.
2013-03-08 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] HTML5 video - sound volume bar out of widget
https://bugs.webkit.org/show_bug.cgi?id=108213
Reviewed by Jocelyn Turcotte.
Since we use Safari shadow DOM for media controls, follow
the overall layout of Safari media control CSS.
* css/mediaControlsQt.css:
(audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
(audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
(audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
(audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
(audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
(audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
(audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
(audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
(audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
(audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button):
(audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button):
(audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button):
(audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button):
(audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
2013-03-08 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Doesn't build with QtMultimedia
https://bugs.webkit.org/show_bug.cgi?id=111847
Reviewed by Jocelyn Turcotte.
Fix include.
* platform/graphics/qt/MediaPlayerPrivateQt.h:
2013-03-08 Huang Dongsung <luxtella@company100.net>
[EFL][Qt] REGRESSION(r144787): A fixed element lags when scrolling and wheeling.
https://bugs.webkit.org/show_bug.cgi?id=111829
Reviewed by Noam Rosenthal.
Currently, flagsChanged deals with all boolean flags. It introduces this bug
because when another flag (i.e. preserves3D) is changed, fixedToViewport is set
to false. So this patch updates all flags when at least one flag is changed.
In addition, this patch amends isScrollable code to match other flags.
This patch can only be tested manually since there is no automated
testing facilities for in-motion touch.
Test: ManualTests/fixed-position.html
ManualTests/nested-fixed-position.html
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::setScrollableArea):
(WebCore::CoordinatedGraphicsLayer::syncLayerState):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::setLayerState):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
(WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
2013-03-07 Dean Jackson <dino@apple.com>
Remove dead label code in snapshotted plugin
https://bugs.webkit.org/show_bug.cgi?id=111781
Reviewed by Tim Horton.
Since ports can use the shadow tree to do label display,
there is no need for the hardcoded timers in RenderSnapshottedPlugin.
* rendering/RenderSnapshottedPlugIn.cpp: Remove label flags and timers.
(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
(WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn):
(WebCore::RenderSnapshottedPlugIn::updateSnapshot):
(WebCore::RenderSnapshottedPlugIn::handleEvent):
* rendering/RenderSnapshottedPlugIn.h:
(RenderSnapshottedPlugIn):
2013-03-07 Dean Jackson <dino@apple.com>
Implement a custom appearance for the snapshotted plugin background
https://bugs.webkit.org/show_bug.cgi?id=108368
Reviewed by Tim Horton.
After https://bugs.webkit.org/show_bug.cgi?id=108284 (r142507), a
snapshotted plugin was no longer drawing the background of the
label blurred. Since the snapshot content was now a shadow tree,
it wasn't feasible to pre-blur a region of the snapshot: the label
could be any size and in any location, with ports being able to
override the appearance through their UA style sheet.
Instead we now use one of the elements in the tree, the snapshot-overlay,
as a hook where ports can add any effect they want. This could be simply
a border, or a transparent mask, or even a CSS filter. We introduce a custom
CSS appearance "snapshotted-plugin-overlay", which could be added to the
element in the injected UA stylesheet. This calls into RenderTheme in
the same way that custom controls do.
Meanwhile, in RenderThemeMac, we implement the appearance by drawing the
content of the plugin snapshot into the background of the element. That
way we can add effects in CSS.
Test: plugins/snapshot-appearance.html
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Handle SnapshottedPluginOverlayPart.
* css/CSSValueKeywords.in: New appearance value snapshotted-plugin-overlay.
* platform/ThemeTypes.h: New value SnapshottedPluginOverlayPart.
* html/HTMLPlugInElement.h:
(WebCore::toHTMLPlugInElement): Add safer casting helpers.
* html/HTMLPlugInImageElement.h:
(WebCore::toHTMLPlugInImageElement): Ditto.
* rendering/RenderSnapshottedPlugIn.cpp: Remove the code for handling
the blur directly in the renderer.
(WebCore::RenderSnapshottedPlugIn::paint): Simplify the paint logic since we're
no longer trying to blur here.
(WebCore::RenderSnapshottedPlugIn::paintSnapshot): Ditto.
* rendering/RenderSnapshottedPlugIn.h: Remove the methods that were trying
to blur the image directly.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paint): Call paintSnapshottedPluginOverlay.
* rendering/RenderTheme.h:
(WebCore::RenderTheme::paintSnapshottedPluginOverlay): New virtual method with default implementation.
* rendering/RenderThemeMacShared.h:
(RenderThemeMacShared): Override paintSnapshottedPluginOverlay.
* rendering/RenderThemeMacShared.mm:
(WebCore::RenderThemeMacShared::paintSnapshottedPluginOverlay): Implement a custom render path
that takes the snapshot image from the node's parent, and draws it into the background.
Along the way make sure we're actually using the right type of element (an HTMLPlugInImageElement).
2013-03-08 Sergio Villar Senin <svillar@igalia.com>
Improve drag&drop of list items in contentEditable divs
https://bugs.webkit.org/show_bug.cgi?id=111556
Reviewed by Ryosuke Niwa.
A single fully selected <li> should generate the same markup as if
we were selecting some of them, i.e., we should preserve the list
structure and appearance.
Test: editing/selection/drag-list-item.html
* editing/htmlediting.cpp:
(WebCore::isListItem): modified constness.
* editing/htmlediting.h:
(WebCore): ditto.
* editing/markup.cpp:
(WebCore::highestAncestorToWrapMarkup):
2013-03-08 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] LayerTiler: rename currentFrameHasAlpha as currentFrameKnownToBeOpaque
https://bugs.webkit.org/show_bug.cgi?id=111828
Reviewed by Carlos Garcia Campos.
This changed in r141637.
* platform/graphics/blackberry/LayerTiler.cpp:
(WebCore::LayerTiler::updateTextureContentsIfNeeded):
2013-03-08 Antoine Quint <graouts@apple.com>
Fix a couple of typos.
Unreviewed.
* inspector/Inspector.json:
2013-03-08 Carlos Garcia Campos <cgarcia@igalia.com>
[BlackBerry] Use OwnPtr for CredentialBackingStore members
https://bugs.webkit.org/show_bug.cgi?id=111737
Reviewed by Rob Buis.
It simplifies the code a bit.
* platform/network/blackberry/CredentialBackingStore.cpp:
(WebCore::CredentialBackingStore::~CredentialBackingStore):
(WebCore::CredentialBackingStore::open):
(WebCore::CredentialBackingStore::certMgrWrapper):
* platform/network/blackberry/CredentialBackingStore.h:
(CredentialBackingStore):
2013-03-07 Gavin Barraclough <barraclough@apple.com>
MemoryPressureHandler should fully flush the WebCore & NS URL caches
https://bugs.webkit.org/show_bug.cgi?id=111827
Rubber Stamped by Geoff Garen
When the handler is fired we should free as much memory as possible.
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::releaseMemory):
- fully flush the WebCore & NS URL caches
2013-03-07 Keishi Hattori <keishi@webkit.org>
Update calendar picker UI
https://bugs.webkit.org/show_bug.cgi?id=109439
Reviewed by Kent Tamura.
This patch changes the calendar picker UI.
Added tests to existing calendar picker tests.
Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-month-popup.html
* Resources/pagepopups/calendarPicker.css:
(body):
(.rtl):
(.scroll-view):
(.scroll-view-content):
(.list-cell):
(.list-cell.hidden):
(.day-cell):
(.week-number-cell):
(.day-cell.today):
(.day-cell.highlighted):
(.day-cell.highlighted.disabled):
(.day-cell.selected):
(.day-cell.disabled):
(.day-cell.current-month):
(.calendar-table-view):
(.preparing .calendar-table-view:focus):
(.week-day-label):
(.week-number-label):
(.calendar-table-header-view):
(.calendar-picker):
(.calendar-header-view):
(.calendar-title):
(.rtl .calendar-title):
(.month-popup-button:disabled):
(.month-popup-button):
(.month-popup-button .disclosure-triangle):
(.month-popup-button .disclosure-triangle svg):
(.today-button::after):
(.calendar-navigation-button):
(.year-list-view):
(.year-list-cell):
(.year-list-cell .label):
(.year-list-cell .month-chooser):
(.month-buttons-row):
(.month-button):
(.month-button.highlighted):
(.scrubby-scroll-bar):
(.scrubby-scroll-thumb):
(.month-popup-view):
(.year-list-view .scrubby-scroll-bar):
(.rtl .year-list-view .scrubby-scroll-bar):
* Resources/pagepopups/calendarPicker.js:
(setGlobalParams): Sets the global params.
(initialize):
(openCalendarPicker):
(CalendarHeaderView.prototype.onNavigationButtonClick): Fix typo.
(CalendarPicker):
(CalendarPicker.prototype.onWindowResize): We want to have the "preparing" class applied
to cancel css transitions while setting up the calendar picker so we can avoid flaky pixel tests.
(CalendarPicker.prototype.onYearListViewDidHide): The user clicked on a month so hide the month popup.
(CalendarPicker.prototype.onYearListViewDidSelectMonth): Change the current month in response to the month popup.
(CalendarPicker.prototype.attachTo): We want the calendar table focused when the calendar picker first opens.
(CalendarPicker.prototype.cleanup): Clean up any event listeners or elements attached to nodes outside of this.element.
(CalendarPicker.prototype.onMonthPopupButtonClick): Open the month popup in response to the month popup button being clicked.
(CalendarPicker.prototype._setConfig): Configures the calendar picker.
(CalendarPicker.prototype.currentMonth): The currently shown month.
(CalendarPicker.prototype.setCurrentMonth): Scrolls the calendar table to the given month. Use the navigation behavior param to specify if you want a transition animation.
(CalendarPicker.prototype.adjustHeight): Adjusts the height so its just tall enough to fit the current month. If the month picker is open, fit that.
(CalendarPicker.prototype.selection): Currently selected date range.
(CalendarPicker.prototype.highlight): Currently highlighted date range.
(CalendarPicker.prototype.firstVisibleDay): Returns the first visible day ignoring scroll animation (i.e. this is the first visible day when the scroll animation is done).
(CalendarPicker.prototype.lastVisibleDay): Returns the last visible day ignoring scroll animation.
(CalendarPicker.prototype.selectRangeContainingDay): Sets the selection to the date range containing the given day.
(CalendarPicker.prototype.highlightRangeContainingDay): Sets the highlight to the date range containing the given day.
(CalendarPicker.prototype.setSelection): Sets the selection to the given date range.
(CalendarPicker.prototype._setHighlight): Sets the highlight to the given date range.
(CalendarPicker.prototype._stepMismatch): Just moving.
(CalendarPicker.prototype._outOfRange): Ditto.
(CalendarPicker.prototype.isValid): Returns true if the given date range is a valid selection.
(CalendarPicker.prototype.isValidDay): Returns true if the day is part of a valid selection.
(CalendarPicker.prototype._moveHighlight): Moves the highlight to the given date range if possible. Returns true if it succeeds.
(CalendarPicker.prototype.onCalendarTableKeyDown): Handles the arrow keys, etc.
(CalendarPicker.prototype.width):
(CalendarPicker.prototype.height):
(CalendarPicker.prototype.setHeight):
(CalendarPicker.prototype.onBodyKeyDown): Handles esc/m/y/d.
* Resources/pagepopups/chromium/calendarPickerChromium.css:
(.calendar-table-view:focus):
(.preparing .calendar-table-view:focus):
2013-03-07 Seokju Kwon <seokju.kwon@gmail.com>
Web Inspector: Remove unused return value after r122962
https://bugs.webkit.org/show_bug.cgi?id=111821
Reviewed by Pavel Feldman.
No new tests.
* inspector/front-end/ConsolePanel.js:
(WebInspector.ConsolePanel.prototype.jumpToPreviousSearchResult):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.jumpToPreviousSearchResult):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.jumpToPreviousSearchResult):
2013-03-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145166.
http://trac.webkit.org/changeset/145166
https://bugs.webkit.org/show_bug.cgi?id=111819
build break - no symbol
webkit_support::CreateScopedTempDirectory() (Requested by
hayato on #webkit).
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::IDBBackingStore):
(WebCore::IDBBackingStore::~IDBBackingStore):
(WebCore::IDBBackingStore::open):
* Modules/indexeddb/IDBBackingStore.h:
(WebCore):
(IDBBackingStore):
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::addIDBBackingStore):
(WebCore):
(WebCore::IDBFactoryBackendImpl::removeIDBBackingStore):
(WebCore::IDBFactoryBackendImpl::openBackingStore):
* Modules/indexeddb/IDBFactoryBackendImpl.h:
(IDBFactoryBackendImpl):
2013-03-07 Hajime Morrita <morrita@google.com>
Custom Elements: CustomElement constructor shouldn't share function instance
https://bugs.webkit.org/show_bug.cgi?id=111807
Reviewed by Kentaro Hara.
Adaptor functions of custom elements unintentionally share the instance.
This fix gives new one for each.
Test: Updated fast/dom/custom/document-register-basic.html
* bindings/v8/V8AdaptorFunction.cpp:
(WebCore::V8AdaptorFunction::wrap):
2013-03-07 Jared Wyles <wyles@adobe.com>
Reading border radius from style property returns in wrong order.
https://bugs.webkit.org/show_bug.cgi?id=110853
Reviewed by Ryosuke Niwa
Updating the order of border-radius to return in the order specified
in http://www.w3.org/TR/css3-background/#the-border-radius
Tests updated in LayoutTests/fast/borders/border-radius-parsing.html
Changed the expectations in LayoutTests/inspector/elements/elements-panel-styles-expected.txt
Compat information -
jQuery's css function favours using getComputedStyle for elements so that should not be impacted.
Zepto does check for the element on style first so may be a slight concern there.
* css/StylePropertyShorthand.cpp:
(WebCore::borderRadiusShorthand):
2013-03-07 Andreas Kling <akling@apple.com>
Resizing Cappuccino is very laggy on WebKit since Safari 5.1
<http://webkit.org/b/71354>
<rdar://problem/10565998>
Reviewed by Anders Carlsson.
* WebCore.exp.in: Export FloatPoint(const NSPoint&)
2013-03-07 Andreas Kling <akling@apple.com>
Remove desktop version of -webkit-text-size-adjust property.
<http://webkit.org/b/56543>
<rdar://problem/9150203>
Reviewed by Simon Fraser.
This property existed to support a number of Apple-internal clients of WebKit.
We no longer need this property, and since it's clashing with a mobile version of the
same property with different meaning, let's remove it altogether from the desktop build.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::computeLengthDouble):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in:
* css/StyleBuilder.cpp:
(WebCore::ApplyPropertyLineHeight::applyValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::updateFont):
(WebCore::StyleResolver::applyProperties):
(WebCore::StyleResolver::applyProperty):
* css/StyleResolver.h:
(StyleResolver):
* css/svg.css:
* editing/EditingStyle.cpp:
* inspector/front-end/inspector.css:
(#console-messages):
* inspector/front-end/resourcesPanel.css:
(.storage-view.query):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff):
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h:
(StyleRareInheritedData):
2013-03-07 Joshua Bell <jsbell@chromium.org>
IndexedDB: Use WeakPtr for Factory-to-BackingStore reference
https://bugs.webkit.org/show_bug.cgi?id=111459
Reviewed by Adam Barth.
IDBFactoryBackendImpl maintains a map of backing stores - if another database in the same
origin is opened, the backing store instance must be re-used). This was a map to raw
pointers so that the backing store can be collected when all database references are
dropped. The map was maintained manually by passing the factory to the IDBBackingStore which
would add/remove itself on creation/destruction.
Replace this with a HashMap<WeakPtr<>>. This simplifies the plumbing; map entries
"leak" but are purged on subsequent opens.
Added webkit_unit_test (Chromium port) to verify refcounts.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::IDBBackingStore): No need to notify factory of lifetime.
(WebCore::IDBBackingStore::~IDBBackingStore): Ditto.
(WebCore::IDBBackingStore::open): Ditto.
* Modules/indexeddb/IDBBackingStore.h: No reference to the factory, but...
(WebCore::IDBBackingStore::createWeakPtr): Do need to expose weak pointers for the factory to hold.
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::cleanWeakMap): Helper function to scrub a HashMap<WeakPtr<T>> of empty pointers.
May move to WTF when we've learned how general it is, or come up with a dedicated WeakPtrHashMap type.
(WebCore::IDBFactoryBackendImpl::openBackingStore): WeakPtr fu.
* Modules/indexeddb/IDBFactoryBackendImpl.h:
(IDBFactoryBackendImpl): Remove plumbing methods.
2013-03-07 Otto Derek Cheung <otcheung@rim.com>
[BlackBerry] RefCounting ParsedCookie to avoid SegFaults
https://bugs.webkit.org/show_bug.cgi?id=111761
Reviewed by Rob Buis.
Making necessary changes to ref count the ParsedCookie object.
Tested using the opera cookie test suite and the BB Browser cookie test suite.
Tested using the browser, visiting popular sites such as facebook, reddit, google etc
to ensure cookie functionality isn't changed.
* loader/blackberry/CookieJarBlackBerry.cpp:
(WebCore::getRawCookies):
* platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
(WebCore::CookieDatabaseBackingStore::insert):
(WebCore::CookieDatabaseBackingStore::update):
(WebCore::CookieDatabaseBackingStore::remove):
(WebCore::CookieDatabaseBackingStore::getCookiesFromDatabase):
(WebCore::CookieDatabaseBackingStore::invokeGetCookiesWithLimit):
(WebCore::CookieDatabaseBackingStore::invokeSendChangesToDatabase):
(WebCore::CookieDatabaseBackingStore::addToChangeQueue):
* platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
(CookieDatabaseBackingStore):
* platform/blackberry/CookieManager.cpp:
(WebCore::cookieSorter):
(WebCore::CookieManager::setCookies):
(WebCore::CookieManager::getCookie):
(WebCore::CookieManager::generateHtmlFragmentForCookies):
(WebCore::CookieManager::getRawCookies):
(WebCore::CookieManager::checkAndTreatCookie):
(WebCore::CookieManager::addCookieToMap):
(WebCore::CookieManager::getBackingStoreCookies):
(WebCore::CookieManager::findOrCreateCookieMap):
(WebCore::CookieManager::removeCookieWithName):
(WebCore::CookieManager::cookieLimitCleanUp):
* platform/blackberry/CookieManager.h:
* platform/blackberry/CookieMap.cpp:
(WebCore::CookieMap::addOrReplaceCookie):
(WebCore::CookieMap::removeCookieAtIndex):
(WebCore::CookieMap::removeCookie):
(WebCore::CookieMap::getAllCookies):
(WebCore::CookieMap::removeOldestCookie):
(WebCore::CookieMap::deleteAllCookiesAndDomains):
(WebCore::CookieMap::getAllChildCookies):
* platform/blackberry/CookieMap.h:
(CookieMap):
* platform/blackberry/CookieParser.cpp:
(WebCore):
(WebCore::CookieParser::parse):
(WebCore::CookieParser::parseOneCookie):
* platform/blackberry/CookieParser.h:
(CookieParser):
* platform/blackberry/ParsedCookie.cpp:
* platform/blackberry/ParsedCookie.h:
(ParsedCookie):
(WebCore::ParsedCookie::create):
2013-03-07 Aaron Colwell <acolwell@chromium.org>
Heap-use-after-free in WebCore::HTMLMediaElement::~HTMLMediaElement
https://bugs.webkit.org/show_bug.cgi?id=110623
Reviewed by Kentaro Hara.
Test: http/tests/misc/delete-frame-during-readystatechange-with-gc-after-video-removal.html
* bindings/v8/V8GCController.cpp: Fix MinorGCWrapperVisitor so it doesn't collect ActiveDOMObjects
that have pending activity.
* html/HTMLAudioElement.h:
(HTMLAudioElement): Removed hasPendingActivity() now that this is handled by the base class.
* html/HTMLAudioElement.idl: Removed ActiveDOMObject annotation since HTMLMediaElement now has it.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::hasPendingActivity): Update implementation to return true if the media
has audio and is playing. This brings the code into
compliance with the detached element behavior outlined
in the HTML5 spec.
* html/HTMLMediaElement.idl: Added ActiveDOMObject annotation so that all derived classes are
considered ActiveDOMObjects.
2013-03-07 Jeffrey Pfau <jpfau@apple.com>
CFNetwork cache partitioning does not work properly on subdomains
https://bugs.webkit.org/show_bug.cgi?id=111772
Reviewed by David Kilzer.
Ensure that the cache partitioning is done over the top privately-controlled domain for the NSURLRequest.
Not possible to test with current automated test tools, must be tested manually.
* loader/cache/MemoryCache.cpp: Remove extraneous calls to partitionName
(WebCore):
(WebCore::MemoryCache::add):
(WebCore::MemoryCache::revalidationSucceeded):
(WebCore::MemoryCache::resourceForRequest):
(WebCore::MemoryCache::evict):
(WebCore::MemoryCache::removeResourcesWithOrigin):
* platform/network/cf/ResourceRequest.h: Put top privately-controlled domain reduction code into ResourceRequest::partitionName
(ResourceRequest):
(WebCore::ResourceRequest::cachePartition):
(WebCore::ResourceRequest::setCachePartition): Pre-process the partition name
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore):
(WebCore::ResourceRequest::partitionName):
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::doUpdatePlatformRequest): Use a UTF-8 version of the cache partition name
2013-03-07 Kenneth Russell <kbr@google.com>
Compute WebGL context attributes from DrawingBuffer when it is used
https://bugs.webkit.org/show_bug.cgi?id=111666
Reviewed by James Robinson.
Fixed computation of antialias flag when DrawingBuffer is used.
No new tests; covered by existing tests. Ran WebGL conformance
tests on desktop Linux and Android to test.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::getContextAttributes):
Query DrawingBuffer, when used, for antialias flag.
2013-03-07 Beth Dakin <bdakin@apple.com>
Need API to draw custom overhang area
https://bugs.webkit.org/show_bug.cgi?id=111679
-and corresponding-
<rdar://problem/13291415>
Reviewed by Simon Fraser.
This will allow clients to put custom images into the top or bottom overhang area.
New FrameView API takes a bool indicating whether the client wants a top/bottom
overhang layer. If the bool is true, the overhang layer will be returned.
* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::setWantsLayerForTopOverHangArea):
(WebCore::FrameView::setWantsLayerForBottomOverHangArea):
* page/FrameView.h:
(FrameView):
Keep member variables for the top and bottom overhang layers. Create them if
necessary, and update them if the root layer changes.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateRootLayerPosition):
(WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
(WebCore::RenderLayerCompositor::reportMemoryUsage):
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
2013-03-07 Gavin Barraclough <barraclough@apple.com>
Reduce page cache size on Mac
https://bugs.webkit.org/show_bug.cgi?id=111795
Rubber stamped by Geoff Garen
5 entries is unnecessarily large; research show 3 should suffice.
On a low memory warning we should clear this completely.
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::releaseMemory):
- clear the page cache completely
2013-03-07 Simon Fraser <simon.fraser@apple.com>
Rename Mac's TileCache to TileController, and WebTileCacheLayer to WebTiledBackingLayer
https://bugs.webkit.org/show_bug.cgi?id=111779
Reviewed by Tim Horton.
"TileCache" was a name conflict in downstream code, so rename it to TileController.
The layer that has a TileController is now a WebTiledBackingLayer (which fits with
the TiledBacking API that TileController exposes).
Also renamed the flags in PlatformCALayer to match.
Rename only, no behavior change.
* WebCore.xcodeproj/project.pbxproj:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
* platform/graphics/GraphicsLayerClient.h:
(WebCore::GraphicsLayerClient::shouldUseTiledBacking):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter):
(WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
(WebCore::GraphicsLayerCA::updateVisibleRect):
(WebCore::GraphicsLayerCA::getDebugBorderInfo):
(WebCore::GraphicsLayerCA::requiresTiledLayer):
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCALayer.h:
(WebCore::PlatformCALayer::usesTiledBackingLayer):
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::PlatformCALayer):
(PlatformCALayer::~PlatformCALayer):
(PlatformCALayer::tiledBacking):
* platform/graphics/ca/mac/TileController.h: Renamed from Source/WebCore/platform/graphics/ca/mac/TileCache.h.
* platform/graphics/ca/mac/WebTileLayer.h:
(TileController):
* platform/graphics/ca/mac/WebTileLayer.mm:
(-[WebTileLayer drawInContext:]):
(-[WebTileLayer setTileController:WebCore::]):
(-[WebTileLayer logFilledFreshTile]):
* platform/graphics/ca/mac/WebTiledBackingLayer.h: Renamed from Source/WebCore/platform/graphics/ca/mac/WebTileCacheLayer.h.
* platform/graphics/ca/mac/WebTiledBackingLayer.mm: Renamed from Source/WebCore/platform/graphics/ca/mac/WebTileCacheLayer.mm.
* platform/graphics/mac/WebLayer.mm:
(drawLayerContents):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
(WebCore::RenderLayerBacking::shouldUseTiledBacking):
(WebCore::RenderLayerBacking::adjustTiledBackingCoverage):
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
* rendering/RenderLayerBacking.h:
(WebCore::RenderLayerBacking::usingTiledBacking):
(RenderLayerBacking):
(WebCore::RenderLayerBacking::hasTiledBackingFlatteningLayer):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::frameViewDidLayout):
(WebCore::RenderLayerCompositor::rootFixedBackgroundsChanged):
(WebCore::RenderLayerCompositor::supportsFixedRootBackgroundCompositing):
2013-03-07 Alexey Proskuryakov <ap@apple.com>
FormData should allow setting filename to empty
https://bugs.webkit.org/show_bug.cgi?id=111687
Reviewed by Brady Eidson.
Tests: http/tests/local/formdata/send-form-data-with-empty-blob-filename.html
http/tests/local/formdata/send-form-data-with-empty-file-filename.html
* platform/network/FormData.cpp: (WebCore::FormData::appendKeyValuePairItems):
Missing value is a null string. If the string is empty, we should treat is as
authoritative.
2013-03-07 David Hyatt <hyatt@apple.com>
REGRESSION: fast/border/border-fit-2.html needs updating
https://bugs.webkit.org/show_bug.cgi?id=111776
Reviewed by Simon Fraser.
This test is incorrectly shrinking the border image now.
We need to apply some clamping to the border-fit like the
old code did. The pixel results *are* still changing though,
since a layout-time shrinkage will not result in right-aligned
boxes in an LTR block when the left edge gets chopped. We'll
have to see if this behavioral change ends up being a problem,
but for now we'll rebaseline and assume it will be ok.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::fitBorderToLinesIfNeeded):
2013-03-07 Antoine Quint <graouts@apple.com>
Web Inspector: provide reasons why a layer was composited in the LayerTreeAgent
https://bugs.webkit.org/show_bug.cgi?id=111703
Introduce a new LayerTree.reasonsForCompositingLayer(layerId) method which returns
the list of reasons why the provided layer was composited as an object with an
optional property for each possible reason. The RenderLayerCompositor already knows
how to provide this information via its own reasonsForCompositing() method, and we
process the returned bitmask to populate the object sent to the front-end.
Reviewed by Timothy Hatcher.
Test: inspector-protocol/layers/layers-compositing-reasons.html
* inspector/Inspector.json:
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):
(WebCore):
* inspector/InspectorLayerTreeAgent.h:
(InspectorLayerTreeAgent):
2013-03-07 Anders Carlsson <andersca@apple.com>
Add a didFocusTextField callback to the injected bundle form client
https://bugs.webkit.org/show_bug.cgi?id=111771
Reviewed by Andreas Kling.
Export a symbol needed by WebKit2.
* WebCore.exp.in:
2013-03-06 James Robinson <jamesr@chromium.org>
[chromium] Stop using WebTransformationMatrix on WebLayer
https://bugs.webkit.org/show_bug.cgi?id=111635
Reviewed by Adrienne Walker.
Switches over to the SkMatrix44 transform setters.
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::transformToSkMatrix44):
Utility for convering a WebCore::TransformationMatrix to an SkMatrix44.
Will move to a more common location once it gets more callers.
(WebCore::GraphicsLayerChromium::updateTransform):
(WebCore::GraphicsLayerChromium::updateChildrenTransform):
2013-03-07 Eric Carlson <eric.carlson@apple.com>
[Mac] allow iOS to use CaptionUserPreferencesMac
https://bugs.webkit.org/show_bug.cgi?id=111770
Reviewed by Dean Jackson.
No new tests, covered by existing tests.
* page/CaptionUserPreferencesMac.h:
* page/CaptionUserPreferencesMac.mm:
(WebCore::userCaptionPreferencesChangedNotificationCallback): Respond to notifications on
the web thread.
2013-03-07 Mike West <mkwst@chromium.org>
Move side-effects on hover/active state out of hit-testing
https://bugs.webkit.org/show_bug.cgi?id=98168
Reviewed by Julien Chaffraix.
Original patch by Allan Sandfeld Jensen; I'm just tweaking things.
Document::updateHoverActiveState is currently called during hit testing
to update the hover and active states of elements effected by mouse
movements (or their keyboard equivalents). This conflates the hit test
algorithm itself with side-effects associated with specific use-cases.
This conflation makes it very difficult to reuse the hover/active logic
for things other than hit testing. 'mouseenter'/'mouseleave' events[1]
are one example of a feature that would be simple to implement on top of
this existing logic if we split it out from the hit testing path, and
instead call it explicitly when necessary. An explicit split between
hit testing and its side-effects will also enable us to simplify the
logic in future patches with well-named parameters, rather than relying
on stuffing properties into HitTestRequest.
This patch drops the call to Document::updateHoverActiveState from
RenderView::hitTest, and adjusts the three call-sites in EventHandler
to explicitly call out to it rather than Document::updateStyleIfNeeded.
The latter call is still necessary but has been folded into
updateHoverActiveState, as the former is never called without calling
the latter.
[1]: http://wkbug.com/18930
* dom/Document.h:
* dom/Document.cpp:
(WebCore::Document::updateHoverActiveState):
First, this function must now only be called from contexts that were
performing a read/write hit-test: the code asserts this
precondition.
Second, rather than accepting a HitTestResult, the function accepts
an Element* from which to begin the hover/active chain changes.
Third, we have to explicitly update the hover/active states for
documents between the updated element and the top-level document.
The hit-testing logic was taking care of this for us, now we need to
take care of it ourselves.
Fourth, call out to updateStyleIfNeeded rather than making our
caller do so. The calls were always paired; now that's explicit.
(WebCore::Document::prepareMouseEvent):
* page/EventHandler.cpp:
(WebCore::EventHandler::hitTestResultAtPoint):
(WebCore::EventHandler::sendContextMenuEventForKey):
(WebCore::EventHandler::hoverTimerFired):
Call out to updateHoverActiveState rather than updateStyleIfNeeded.
* rendering/RenderView.cpp:
(WebCore::RenderView::hitTest):
Drop the call to updateHoverActiveState.
2013-03-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145097.
http://trac.webkit.org/changeset/145097
https://bugs.webkit.org/show_bug.cgi?id=111765
Triggers an ASSERT in the Chromium port (Requested by abarth
on #webkit).
* html/FileInputType.cpp:
(WebCore::FileInputType::appendFormData):
* platform/network/FormData.cpp:
(WebCore::FormData::appendKeyValuePairItems):
2013-03-07 Chris Fleizach <cfleizach@apple.com>
AX: Can't activate links with VoiceOver in Safari
https://bugs.webkit.org/show_bug.cgi?id=111755
Reviewed by Tim Horton.
VoiceOver is relying on the press action being the first action in the list. We changed
that order inadvertently recently, which confuses VoiceOver.
Test: platform/mac/accessibility/press-action-is-first.html
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityActionNames]):
2013-03-07 Rafael Weinstein <rafaelw@chromium.org>
Unreviewed, rolling out r145083.
http://trac.webkit.org/changeset/145083
https://bugs.webkit.org/show_bug.cgi?id=110733
caused lots crashes in http/tests/security/xssAuditor/* tests
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::XSSAuditor):
(WebCore::XSSAuditor::init):
(WebCore::XSSAuditor::filterToken):
* html/parser/XSSAuditor.h:
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::XSSAuditorDelegate::didBlockScript):
* html/parser/XSSAuditorDelegate.h:
(WebCore::XSSInfo::create):
(XSSInfo):
(WebCore::XSSInfo::XSSInfo):
2013-03-07 Michelangelo De Simone <michelangelo@webkit.org>
[CSS Shaders] Implement hue and saturation non-separable blend modes
https://bugs.webkit.org/show_bug.cgi?id=109464
Added the following GLSL helper functions to the CustomFilterValidatedProgram:
- css_Sat(C): returns the saturation for the color C
- css_SetSat(C, s): sets the saturation s on the color C
- css_SetSatHelper(Cmin, Cmid, Cmax, s): helper function for css_SetSat
The above functions are being used for the "hue" and "saturation" non-separable
blend modes, the relevant spec for such modes is at URL:
https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnonseparable
Reviewed by Dean Jackson.
Tests: css3/filters/custom/custom-filter-nonseparable-blend-mode-hue.html
css3/filters/custom/custom-filter-nonseparable-blend-mode-saturation.html
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore::CustomFilterValidatedProgram::blendFunctionString):
2013-03-07 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [ACE] set correct font
https://bugs.webkit.org/show_bug.cgi?id=111747
Reviewed by Pavel Feldman.
No new tests.
Set class "source-code" for the ace editor element.
* inspector/front-end/AceTextEditor.js:
(WebInspector.AceTextEditor):
2013-03-06 Ojan Vafai <ojan@chromium.org>
Recalculate borders at the beginning of table layout
https://bugs.webkit.org/show_bug.cgi?id=111634
Reviewed by Julien Chaffraix.
Doing it in convertStyleLogicalWidthToComputedWidth missed some dynamic
relayout cases. I confirmed that the new results match the results we
would get if we set the border width initially instead of dynamically.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
(WebCore::RenderTable::layout):
2013-03-07 David Hyatt <hyatt@apple.com>
border-fit-adjust should happen at layout time rather than paint time
https://bugs.webkit.org/show_bug.cgi?id=111606
<rdar://problem/13101714>
Reviewed by Antti Koivisto.
In order for border-fit-adjust to be accurate in more cases, it needs
to be a layout-time adjustment rather than a paint-time adjustment.
Specifically there are cases where an LTR adjusted box was right-aligned
by its container, and without genuinely shrinking the size of the box,
we end up chopping off the right edge but not shifting the box to the
right to compensate.
This patch changes border-fit-adjust to now do the adjustment using
the override width mechanism and a second layout pass instead of just
hacking painting.
Test: fast/block/border-fit-with-right-alignment.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
Calls fitBorderToLinesIfNeeded at the end of layout to do a second
layout pass if the adjustment needs to be made.
(WebCore::RenderBlock::fitBorderToLinesIfNeeded):
Renamed borderFitAdjust to fitBorderToLinesIfNeeded and made it
non-virtual, since it's no longer called from RenderBox code. Changed it
to do a relayout using override widths if an adjustment is needed.
* rendering/RenderBlock.h:
(RenderBlock):
Renamed borderFitAdjust to fitBorderToLinesIfNeeded and made it
non-virtual.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintBoxDecorations):
(WebCore::RenderBox::paintMask):
Removed the paint-time border-fit adjustment.
(WebCore::RenderBox::computeLogicalWidthInRegion):
Use the override width when border-fit is set to lines.
* rendering/RenderBox.h:
(RenderBox):
Remove the virtual borderFitAdjust method.
2013-03-07 Allan Sandfeld Jensen <allan.jensen@digia.com>
REGRESSION(r143727): Clicking / selecting inside an <embed> is broken
https://bugs.webkit.org/show_bug.cgi?id=111217
Reviewed by Julien Chaffraix.
Hit-testing into child frames need to happen in RenderPart, otherwise
we will miss frame views in <embed> and <object> elements.
Test: fast/dom/nodesFromRect/nodesFromRect-embedded-frame-content.html
* rendering/RenderFrameBase.cpp:
* rendering/RenderFrameBase.h:
(RenderFrameBase):
* rendering/RenderPart.cpp:
(WebCore::RenderPart::nodeAtPoint):
* rendering/RenderPart.h:
(RenderPart):
2013-03-07 Alexey Proskuryakov <ap@apple.com>
FormData should allow setting filename to empty
https://bugs.webkit.org/show_bug.cgi?id=111687
Reviewed by Brady Eidson.
Tests: http/tests/local/formdata/send-form-data-with-empty-blob-filename.html
http/tests/local/formdata/send-form-data-with-empty-file-filename.html
* html/FileInputType.cpp: (WebCore::FileInputType::appendFormData):
Use a Blob for empty file input, not a hacky File with empty path.
* platform/network/FormData.cpp: (WebCore::FormData::appendKeyValuePairItems):
Missing value is a null string. If the string is empty, we should treat is as
authoritative.
2013-03-07 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] dublicated horizontal scroll
https://bugs.webkit.org/show_bug.cgi?id=111712
Reviewed by Pavel Feldman.
Set a box-sizing css property on all codemirror elements to
"content-box".
No new tests.
* inspector/front-end/cm/cmdevtools.css:
(.CodeMirror *):
2013-03-07 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Styles sidebar pane toolbar disappears in horizontal split mode.
https://bugs.webkit.org/show_bug.cgi?id=111735
Reviewed by Pavel Feldman.
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype._splitVertically):
* inspector/front-end/elementsPanel.css:
(.sidebar-pane.composite .metrics-and-computed .sidebar-pane-toolbar):
2013-03-07 Zan Dobersek <zdobersek@igalia.com>
[GTK] Limit the supported compilers to GCC >= 4.7 and Clang >= 3.0
https://bugs.webkit.org/show_bug.cgi?id=109932
Reviewed by Martin Robinson.
* GNUmakefile.am: Replace references to SYMBOL_VISIBILITY_INLINES and SYMBOL_VISIBILITY variables with the actual flags.
They are now available by default due to the limited set of supported compilers.
* bindings/gobject/GNUmakefile.am: Ditto.
2013-03-07 Mike West <mkwst@chromium.org>
XSSAuditor should send only one console error when blocking a page.
https://bugs.webkit.org/show_bug.cgi?id=110733
Reviewed by Daniel Bates.
Currently, we send two console errors when XSSAuditor blocks a page:
"Refused to execute a JavaScript script. Source code of script found
within request.\n", and "Entire page will be blocked.".
We should only send one message, tuning it properly for the context, and
including the URL of the page effected by the XSSAuditor's work.
Covered by rebaselines of all the XSSAuditor and 'reflected-xss' tests.
* html/parser/XSSAuditor.cpp:
* html/parser/XSSAuditor.h:
(WebCore::XSSAuditor::XSSAuditor):
Add two booleans to track the headers used to set the XSSAuditor state.
(WebCore::XSSAuditor::init):
Save a copy of the document's URL even if we're not generating a
report upon violation: we'll need it for the console messages. Also
populate the didSendValidXXXHeader booleans for use later.
(WebCore::XSSAuditor::filterToken):
Add detail about the header status to the constructed XSSInfo object.
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::buildConsoleError):
Move message construction out into a separate inlined function, as
it's becoming complex.
(WebCore::XSSAuditorDelegate::didBlockScript):
Fold the "Entire page will be blocked" message into the main console
error.
* html/parser/XSSAuditorDelegate.h:
(WebCore::XSSInfo::create):
(WebCore::XSSInfo::XSSInfo):
Add detail about header status to XSSInfo in order to correctly
construct the console error.
2013-03-07 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Add some more compilation annotations to NavigatorView
https://bugs.webkit.org/show_bug.cgi?id=111730
Reviewed by Alexander Pavlov.
* inspector/front-end/NavigatorView.js:
2013-03-06 Gustavo Noronha Silva <gns@gnome.org>
[GTK] Enable translations for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=111398
Reviewed by Martin Robinson.
Build change only, thus no tests.
* GNUmakefile.am: distribute po files.
* platform/gtk/po/POTFILES.in: adjust paths for translatable files.
2013-03-07 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [CodeMirror] update codemirror to version 3.1
https://bugs.webkit.org/show_bug.cgi?id=111711
Reviewed by Vsevolod Vlasov.
Update code mirror experimental editor to version 3.1
No new tests.
* inspector/front-end/cm/codemirror.css:
(.CodeMirror div.CodeMirror-cursor):
(.CodeMirror div.CodeMirror-secondarycursor):
(.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor):
(.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor:not(#nonsense_id)):
(.CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite):
(.CodeMirror-gutters):
(.CodeMirror-linewidget):
(.CodeMirror-widget):
(.CodeMirror-focused div.CodeMirror-cursor):
(@media print):
* inspector/front-end/cm/codemirror.js:
(window.CodeMirror):
(window.CodeMirror.):
2013-03-07 Sergio Correia <sergio.correia@openbossa.org>
OpenGLShims: fix check for ANGLE GLES2 extensions
https://bugs.webkit.org/show_bug.cgi?id=111656
Reviewed by Simon Hausmann.
The check for ANGLE GLES2 extensions is currently being overriden
with checks for APPLE extensions in lookupOpenGLFunctionAddress().
No new tests. No user visible behavior changed.
* platform/graphics/OpenGLShims.cpp:
(WebCore::lookupOpenGLFunctionAddress):
2013-03-07 David Kilzer <ddkilzer@apple.com>
Rename visible_units.h to VisibleUnits.h in WebCore.vcxproj.filters
<http://webkit.org/b/111426>
* WebCore.vcxproj/WebCore.vcxproj.filters: Rename visible_units.h
to VisibleUnits.h and re-sort.
2013-03-07 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Support a shortcut for reloading front-end in debug mode.
https://bugs.webkit.org/show_bug.cgi?id=111709
Reviewed by Pavel Feldman.
* inspector/front-end/buildSystemOnly.js:
* inspector/front-end/inspector.js:
(WebInspector.documentKeyDown):
2013-03-07 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Support setting up file system mappings from scripts panel context menu.
https://bugs.webkit.org/show_bug.cgi?id=111583
Reviewed by Pavel Feldman.
Added context menu items to set up network - file system mappings from sources panel.
Implemented mapping add/remove methods on Workspace.
Added a dialog suggesting to reload front-end after making such changes.
* English.lproj/localizedStrings.js:
* inspector/front-end/FileSystemMapping.js:
(WebInspector.FileSystemMappingImpl.prototype.fileSystemPath):
* inspector/front-end/FileSystemProjectDelegate.js:
(WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemRemoved):
(WebInspector.FileSystemWorkspaceProvider.prototype.fileSystemPath):
* inspector/front-end/FilteredItemSelectionDialog.js:
(WebInspector.FilteredItemSelectionDialog.prototype.onEnter):
(WebInspector.FilteredItemSelectionDialog.prototype.setQuery):
(WebInspector.SelectUISourceCodeDialog):
(WebInspector.SelectUISourceCodeDialog.prototype.uiSourceCodeSelected):
(WebInspector.SelectUISourceCodeDialog.prototype.filterProject):
(WebInspector.SelectUISourceCodeDialog.prototype.filterUISourceCode):
(WebInspector.SelectUISourceCodeDialog.prototype.selectItem):
(WebInspector.SelectUISourceCodeDialog.prototype._uiSourceCodeAdded):
(WebInspector.OpenResourceDialog):
(WebInspector.OpenResourceDialog.prototype.uiSourceCodeSelected):
(WebInspector.OpenResourceDialog.prototype.filterProject):
(WebInspector.SelectUISourceCodeForProjectTypeDialog):
(WebInspector.SelectUISourceCodeForProjectTypeDialog.prototype.uiSourceCodeSelected):
(WebInspector.SelectUISourceCodeForProjectTypeDialog.prototype.filterProject):
(WebInspector.SelectUISourceCodeForProjectTypeDialog.show):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._mapFileSystemToNetwork.mapFileSystemToNetwork):
(WebInspector.ScriptsPanel.prototype._mapFileSystemToNetwork):
(WebInspector.ScriptsPanel.prototype._removeNetworkMapping):
(WebInspector.ScriptsPanel.prototype._mapNetworkToFileSystem.mapNetworkToFileSystem):
(WebInspector.ScriptsPanel.prototype._mapNetworkToFileSystem):
(WebInspector.ScriptsPanel.prototype.):
(WebInspector.ScriptsPanel.prototype._appendUISourceCodeMappingItems):
(WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
* inspector/front-end/SettingsScreen.js:
(WebInspector.WorkspaceSettingsTab):
(WebInspector.WorkspaceSettingsTab.prototype.wasShown):
(WebInspector.WorkspaceSettingsTab.prototype._reset):
* inspector/front-end/ViewportControl.js:
(WebInspector.ViewportControl.prototype.refresh):
* inspector/front-end/Workspace.js:
(WebInspector.Workspace.prototype.addMapping):
(WebInspector.Workspace.prototype.removeMapping):
* inspector/front-end/externs.js:
(WebInspector.suggestReload):
* inspector/front-end/inspector.js:
(WebInspector.suggestReload):
2013-03-07 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Add support for frontend reloading
https://bugs.webkit.org/show_bug.cgi?id=111727
Reviewed by Pavel Feldman.
This patch adds support for frontend reloading including:
- making sure no messages are sent to backend once frontend started reloading
- updating frontend url with up-to-date dockSide query parameter value.
* inspector/front-end/InspectorBackend.js:
(InspectorBackendClass.prototype.sendMessageObjectToBackend):
(InspectorBackendClass.prototype.disconnect):
* inspector/front-end/externs.js:
(WebInspector.reload):
* inspector/front-end/inspector.js:
(WebInspector.reload):
2013-03-07 Alexei Filippov <alph@chromium.org>
Web Inspector: Change profile start button caption depending on profile type.
https://bugs.webkit.org/show_bug.cgi?id=111698
Change the start profiling button caption to "Snapshot" for
snapshot-like profile types, e.g. JS heap snapshot, native memory snapshot.
Reviewed by Yury Semikhatsky.
* English.lproj/localizedStrings.js:
* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapSnapshotProfileType.prototype.isInstantProfile):
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeSnapshotProfileType.prototype.isInstantProfile):
(WebInspector.NativeMemoryProfileType.prototype.isInstantProfile):
* inspector/front-end/ProfileLauncherView.js:
(WebInspector.ProfileLauncherView):
(WebInspector.ProfileLauncherView.prototype.addProfileType):
(WebInspector.ProfileLauncherView.prototype._updateControls):
(WebInspector.MultiProfileLauncherView.prototype._updateControls):
(WebInspector.MultiProfileLauncherView.prototype._profileTypeChanged):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfileType.prototype.isInstantProfile):
2013-03-07 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
[texmap] Remove direct access to clip state from clip stack
https://bugs.webkit.org/show_bug.cgi?id=111630
Reviewed by Allan Sandfeld Jensen.
As we are now monitoring the clip state from
TextureMapperGL/BitmapTextureGL, have direct access to clip state object
would eventually make it dirty without properly setting the
'clipStateDirty' flag. This bug intends to substitute direct access with
auxiliary functions which would set the clip state dirty when necessary.
No new tests. No user visible behavior changed.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::ClipStack::intersect):
(WebCore::TextureMapperGL::ClipStack::setStencilIndex):
(WebCore::TextureMapperGL::drawBorder):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::beginScissorClip):
(WebCore::TextureMapperGL::beginClip):
Replaced direct access with auxiliary functions.
* platform/graphics/texmap/TextureMapperGL.h:
(ClipStack): Removed ClipStack::current() function.
(WebCore::TextureMapperGL::ClipStack::getStencilIndex): Added.
(WebCore::TextureMapperGL::ClipStack::isCurrentScissorBoxEmpty): Added.
2013-03-07 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
[Texturemapper] transform-style 'flat' value is broken
https://bugs.webkit.org/show_bug.cgi?id=111566
Reviewed by Allan Sandfeld Jensen.
After changes from r144290, the CSS3 'transform-styles' property, when
used with 'flat' value, resulted in non-stenciled rendering inside
clipped area - vide example from Surfin' Safari blog:
https://www.webkit.org/blog-files/3d-transforms/transform-style.html
This patch forces the clip state to be applied when binding the default
surface.
No new tests. No user visible behavior changed.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::ClipStack::apply):
(WebCore::TextureMapperGL::ClipStack::applyIfNeeded): Added.
Moved state cache check from apply() to applyIfNeeded().
(WebCore::BitmapTextureGL::clearIfNeeded):
(WebCore::BitmapTextureGL::bind):
(WebCore::TextureMapperGL::beginScissorClip):
(WebCore::TextureMapperGL::beginClip):
(WebCore::TextureMapperGL::endClip):
* platform/graphics/texmap/TextureMapperGL.h:
(ClipStack):
Use applyIfNeeded() to check for clip state before clipping.
2013-03-07 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: refactoring: move TextEditorModel.Indent enum into TextUtils
https://bugs.webkit.org/show_bug.cgi?id=111715
Reviewed by Pavel Feldman.
Move WebInspector.TextEditorModel.Indent into WebInspector.TextUtils namespace.
No new tests: no change in behaviour.
* inspector/front-end/SettingsScreen.js:
(WebInspector.GenericSettingsTab):
* inspector/front-end/TextEditorModel.js:
(WebInspector.TextEditorModel.endsWithBracketRegex.):
* inspector/front-end/TextUtils.js:
2013-03-07 Ian Vollick <vollick@chromium.org>
Fix painting phases for composited scrolling
https://bugs.webkit.org/show_bug.cgi?id=107618
Reviewed by Simon Fraser.
With composited scrolling, the scrolling contents layer paints the
foreground and the main graphics layer paints the background. This
causes a few problems:
1) If we create a foreground layer, we end up with two layers painting
the foreground phase.
2) Focus rings / outlines paint into the foreground layer, so they end
up moving around with the scrolling contents.
3) Neg z-order descendants paint in the the main graphics layer and
will therefore not scroll.
To deal with 1) we need to stop painting the foreground into both the
foreground and scrolling contents layers. We also need to ensure that
the foreground layer is the right size and has the right offset from
renderer if we're on the composited scrolling path.
To deal with 2) and 3), I have added a new graphics layer painting phase
flag -- GraphicsLayerPaintCompositedScroll -- and applied it to two
layers in the subtree created by RenderLayerBacking. This ultimately
affects the paint phase passed to RenderLayer::paintLayerContents and
allows us to paint the focus rings, outlines and negative z-order
descendants into the proper layers.
Tests: compositing/overflow/composited-scrolling-paint-phases.html
compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html
compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer.html
* page/Frame.h:
Added a flag for including painting phases in the layer tree dump.
(WebCore::GraphicsLayer::dumpProperties):
Can now dump painting phase information, but only if requested.
* platform/graphics/GraphicsLayerClient.h:
Added a new entry to GraphicsLayerPaintingPhaseFlags for comp-scroll.
(WebCore::RenderLayer::paintLayerContents):
Updated the logic to account for the new comp-scroll-related paint
phase flag.
* rendering/RenderLayer.h:
Added the RenderLayer painting phase counterpart to
GraphicsLayerPaintCompositedScroll.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
Ensures that the foreground layer is sized correctly for comp-scroll.
(WebCore::RenderLayerBacking::updateScrollingLayers):
If we have a foreground layer, the scrolling contents layer no
longer gets assigned the foreground painting phase.
(WebCore::RenderLayerBacking::paintingPhaseForPrimaryLayer):
If we're comp-scrolling, then the primary layer gets the new phase.
(WebCore::RenderLayerBacking::paintIntoLayer):
Simply translates the new graphics layer painting phase to its
render layer counterpart.
(WebCore::RenderLayerCompositor::layerTreeAsText):
* testing/Internals.cpp:
(WebCore::Internals::layerTreeAsText):
* testing/Internals.h:
* testing/Internals.idl:
The above changes are solely plumbing to allow layout tests to
request that paint phase information be included in the layer tree
dump.
2013-03-07 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Use Qt5.1 supportedMimeTypes methods.
https://bugs.webkit.org/show_bug.cgi?id=111185
Reviewed by Jocelyn Turcotte.
Uses the supportedMimeTypes() methods from QImageReader and QImageWriter when available.
* platform/MIMETypeRegistry.cpp:
(WebCore::initializeSupportedImageMIMETypes):
(WebCore::initializeSupportedImageMIMETypesForEncoding):
2013-03-07 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. Stick item color to the function.
https://bugs.webkit.org/show_bug.cgi?id=111697
Reviewed by Yury Semikhatsky.
Different nodes associated with a single function have to use the same color.
Minor polish: do not filter out (idle) and (program) items. They were big due to an error on v8 side.
Set minimum width to 0 for more precise picture.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart):
(WebInspector.FlameChart.prototype._rootNodes):
(WebInspector.FlameChart.prototype.draw):
(WebInspector.FlameChart.prototype._drawNode):
(WebInspector.FlameChart.prototype._drawBar):
2013-03-07 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [ACE] gutter size should be fixed.
https://bugs.webkit.org/show_bug.cgi?id=111576
Reviewed by Pavel Feldman.
Add a custom ace editor build that supports setFixedGutterWidth configuration
parameter and switch this setting on.
No new tests.
* inspector/front-end/AceTextEditor.js:
(WebInspector.AceTextEditor): Switch fixedGutterWidth setting on.
* inspector/front-end/ace/ace.js:
(.):
2013-03-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r145059.
http://trac.webkit.org/changeset/145059
https://bugs.webkit.org/show_bug.cgi?id=111707
crash webkit build (Requested by tasak on #webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSAllInOne.cpp:
* css/DocumentRuleSets.cpp:
(WebCore::ShadowDistributedRules::collectMatchRequests):
* css/DocumentRuleSets.h:
* css/ElementRuleCollector.cpp: Removed.
* css/ElementRuleCollector.h: Removed.
* css/PageRuleCollector.cpp: Removed.
* css/PageRuleCollector.h: Removed.
* css/StyleResolver.cpp:
(WebCore::leftToRightDeclaration):
(WebCore):
(WebCore::rightToLeftDeclaration):
(WebCore::StyleResolver::State::ensureRuleList):
(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::addMatchedProperties):
(WebCore::StyleResolver::addElementStyleProperties):
(MatchingUARulesScope):
(WebCore::MatchingUARulesScope::MatchingUARulesScope):
(WebCore::MatchingUARulesScope::~MatchingUARulesScope):
(WebCore::MatchingUARulesScope::isMatchingUARules):
(WebCore::StyleResolver::collectMatchingRules):
(WebCore::StyleResolver::collectMatchingRulesForRegion):
(WebCore::StyleResolver::sortAndTransferMatchedRules):
(WebCore::StyleResolver::matchScopedAuthorRules):
(WebCore::StyleResolver::matchHostRules):
(WebCore::StyleResolver::matchAuthorRules):
(WebCore::StyleResolver::matchUserRules):
(WebCore::StyleResolver::matchUARules):
(WebCore::StyleResolver::collectMatchingRulesForList):
(WebCore::compareRules):
(WebCore::StyleResolver::sortMatchedRules):
(WebCore::StyleResolver::matchAllRules):
(WebCore::StyleResolver::State::initForStyleResolve):
(WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::ruleMatches):
(WebCore::StyleResolver::checkRegionSelector):
(WebCore::comparePageRules):
(WebCore::StyleResolver::matchPageRules):
(WebCore::checkPageSelectorComponents):
(WebCore::StyleResolver::matchPageRulesForList):
(WebCore::StyleResolver::isLeftPage):
(WebCore::StyleResolver::isFirstPage):
(WebCore::StyleResolver::pageName):
* css/StyleResolver.h:
(WebCore::MatchRequest::MatchRequest):
(MatchRequest):
(StyleResolver):
(MatchResult):
(WebCore::StyleResolver::State::State):
(State):
(WebCore::StyleResolver::State::takeRuleList):
(WebCore::StyleResolver::State::setSameOriginOnly):
(WebCore::StyleResolver::State::isSameOriginOnly):
(WebCore::StyleResolver::State::pseudoStyleRequest):
(WebCore::StyleResolver::State::setMode):
(WebCore::StyleResolver::State::mode):
(WebCore::StyleResolver::State::matchedRules):
(WebCore::StyleResolver::State::addMatchedRule):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::willMatchRule):
* inspector/InspectorCSSAgent.h:
(WebCore):
(InspectorCSSAgent):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willMatchRuleImpl):
* inspector/InspectorInstrumentation.h:
(WebCore):
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::willMatchRule):
2013-03-07 Kentaro Hara <haraken@chromium.org>
Unreviewed. Rebaselined run-bindings-tests.
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore):
2013-03-07 Takashi Sakamoto <tasak@google.com>
[Refactoring] Implement RuleCollector
https://bugs.webkit.org/show_bug.cgi?id=109916
Reviewed by Antti Koivisto.
Implemented rule collector for an element and collector for a page.
Not all members in class State are required entire while resolving
a style.
No new tests, because just refactoring.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSAllInOne.cpp:
Added ElementRuleCollector and PageRuleCollector.
* css/DocumentRuleSets.cpp:
(WebCore::ShadowDistributedRules::collectMatchRequests):
Since behaviorAtBoundary is a state owned by ElementRuleCollector,
removed from here.
* css/DocumentRuleSets.h:
(WebCore::ShadowDistributedRules::isEmpty):
Added to quickly check whether there exist any ShadowDistributedRules
or not.
* css/ElementRuleCollector.cpp: Copied from Source/WebCore/css/StyleResolver.cpp.
(WebCore):
(WebCore::ElementRuleCollector::matchedResult):
(WebCore::ElementRuleCollector::matchedRuleList):
(WebCore::ElementRuleCollector::addMatchedRule):
(WebCore::ElementRuleCollector::clearMatchedRules):
(WebCore::ElementRuleCollector::ensureRuleList):
(WebCore::ElementRuleCollector::addElementStyleProperties):
(WebCore::ElementRuleCollector::collectMatchingRules):
(WebCore::ElementRuleCollector::collectMatchingRulesForRegion):
(WebCore::ElementRuleCollector::sortAndTransferMatchedRules):
(WebCore::ElementRuleCollector::matchScopedAuthorRules):
(WebCore::ElementRuleCollector::matchHostRules):
(WebCore::ElementRuleCollector::matchShadowDistributedRules):
(WebCore::ElementRuleCollector::matchAuthorRules):
(WebCore::ElementRuleCollector::matchUserRules):
(WebCore::ElementRuleCollector::matchUARules):
(WebCore::ElementRuleCollector::ruleMatches):
(WebCore::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::ElementRuleCollector::sortMatchedRules):
(WebCore::ElementRuleCollector::matchAllRules):
Moved these methods from StyleResolver to this class.
(WebCore::ElementRuleCollector::hasAnyMatchingRules):
This method is used for checking whether a given element can share
a cache.
* css/ElementRuleCollector.h: Copied from Source/WebCore/css/StyleResolver.h.
(WebCore):
(WebCore::ElementRuleCollector::ElementRuleCollector):
Use styleResolver instance to initialize its member variables, i.e.
SelectorFilter, RuleSets, InspectorCSSOMWrappers, and
StyleScopedResolver.
(ElementRuleCollector):
(WebCore::ElementRuleCollector::setMode):
(WebCore::ElementRuleCollector::setPseudoStyleRequest):
(WebCore::ElementRuleCollector::setSameOriginOnly):
(WebCore::ElementRuleCollector::setRegionForStyling):
Mode, SameOriginOnly, RegionForStyling are only used while collecting
matched rules.
(WebCore::ElementRuleCollector::setMedium):
Need to know which default stylesheet should be looked up.
(WebCore::ElementRuleCollector::document):
* css/PageRuleCollector.cpp: Copied from Source/WebCore/css/StyleResolver.cpp.
(WebCore::comparePageRules):
(WebCore::PageRuleCollector::isLeftPage):
(WebCore::PageRuleCollector::isFirstPage):
(WebCore::PageRuleCollector::pageName):
(WebCore::PageRuleCollector::matchAllPageRules):
(WebCore::PageRuleCollector::matchPageRules):
(WebCore::checkPageSelectorComponents):
(WebCore::PageRuleCollector::matchPageRulesForList):
Moved from StyleResolver.
* css/PageRuleCollector.h: Copied from Source/WebCore/css/StyleResolver.h.
(WebCore):
(WebCore::PageRuleCollector::PageRuleCollector):
(PageRuleCollector):
(WebCore::PageRuleCollector::matchedResult):
* css/StyleResolver.cpp:
(WebCore):
(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::MatchResult::addMatchedProperties):
(WebCore::StyleResolver::State::initForStyleResolve):
(WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::applyMatchedProperties):
* css/StyleResolver.h:
(WebCore::MatchRequest::MatchRequest):
Removed behaviorAtBoundary. Instead, ElementRuleCollector have the
state.
(MatchRequest):
(WebCore::StyleResolver::selectorFilter):
Added to obtain SelectorFilter in ElementRuleCollector's constructor.
(StyleResolver):
(MatchResult):
(WebCore::StyleResolver::State::State):
To pass ASSERT in StyleResolver::applyProperties, need to keep
m_regionForStyling.
(State):
(WebCore::StyleResolver::State::regionForStyling):
(WebCore::StyleResolver::State::useSVGZoomRules):
(WebCore::StyleResolver::hasSelectorForId):
(WebCore):
(WebCore::checkRegionSelector):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::willMatchRule):
Removed StyleResolver from its parameter list. Instead, added
InspectorCSSOMWrappers and DocumentStyleSheetCollection.
* inspector/InspectorCSSAgent.h:
(WebCore):
(InspectorCSSAgent):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willMatchRuleImpl):
* inspector/InspectorInstrumentation.h:
(WebCore):
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::willMatchRule):
2013-03-07 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [ACE] add experimental breakpoint support
https://bugs.webkit.org/show_bug.cgi?id=111573
Reviewed by Pavel Feldman.
No new tests.
- Implement attributes model for ace editor. Update attribute
locations by handling onTextChange event from editor.
- Implement breakpoints atop of attributes model.
* inspector/front-end/AceTextEditor.js:
(WebInspector.AceTextEditor):
(WebInspector.AceTextEditor.prototype._updateBreakpoints):
(WebInspector.AceTextEditor.prototype._updateLineAttributes):
(WebInspector.AceTextEditor.prototype._onTextChange):
(WebInspector.AceTextEditor.prototype.addBreakpoint):
(WebInspector.AceTextEditor.prototype.removeBreakpoint):
(WebInspector.AceTextEditor.prototype.getAttribute):
(WebInspector.AceTextEditor.prototype.setAttribute):
(WebInspector.AceTextEditor.prototype.removeAttribute):
* inspector/front-end/ace/acedevtools.css:
(.ace-editor-container):
(.ace_gutter-cell.webkit-breakpoint):
(.ace_gutter-cell.webkit-breakpoint-conditional):
(.ace_gutter-cell.webkit-breakpoint-disabled):
(.ace_gutter-cell):
2013-03-07 Antoine Quint <graouts@apple.com>
Web Inspector: identify layers for CSS generated content in LayerTreeAgent
https://bugs.webkit.org/show_bug.cgi?id=111551
Layers can be associated with pseudo elements, elements that are generated
when ::before or ::after pseudo-classes are used to style an element and
provide additional rendering using the CSS "content" property. In order to
identify that a layer is associated to a pseudo element, we add a new set of
optional properties on the Layer object: "isGeneratedContent", "pseudoElementId"
and "pseudoClass".
We need to provide the "pseudoElementId" for the same reason we provide a
"nodeId" for the Layer. This is so that the front-end can identify that a
layer whose "layerId" may have changed between two layer tree updates is
used to render content for the same pseudo element.
In the instance that a layer is rendering generated content, we also set
the "nodeId" to be the generating node's id. The generating node is the
node in the DOM that the user styled using ::before or ::after pseudo-classes.
We also add the pseudo-class used as the "pseudoClass" property such that the
front-end may provide useful information to the user about what type of
pseudo-class yielded the generation of this layer. We also deal with the
possibility that the layer is a reflection for a pseudo element.
Since pseudo elements are not part of the user-visible DOM, and thus can't be
pushed to the front-end, we maintain a special ID hash map in the LayerTreeAgent.
In order to be able to unbind a pseudo element id and a pseudo element, we add a
destructor method to PseudoElement and provide a new instrumentation call so that
the LayerTreeAgent may be notified of a PseudoElement being destroyed. This
reflects the principle we use to update the RenderLayer bindings when a
RenderLayer is destroyed, as notified by the RenderLayerCompositor.
Reviewed by Simon Fraser.
Test: inspector-protocol/layers/layers-generated-content.html
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::~PseudoElement): New destructor used to notify
InspectorInstrumentation of a PseudoElement being destroyed, such that
it can eventually be relayed to the InspectorLayerTreeAgent.
(WebCore):
* dom/PseudoElement.h:
(PseudoElement):
* inspector/Inspector.json: Add the new PseudoElementId type used for
the new "pseudoElementId" property on Layer, to which we also add the
"isGeneratedContent" and "pseudoClass" properties.
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::pseudoElementDestroyedImpl):
* inspector/InspectorInstrumentation.h:
(WebCore):
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::pseudoElementDestroyed): New method
called in the PseudoElement destructor used to relay the fact that a
PseudoElement was destroyed to the InspectorLayerTreeAgent.
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::reset): Clear the new PseudoElement
identifier maps.
(WebCore::InspectorLayerTreeAgent::pseudoElementDestroyed): Remove any
identifier binding for the provided PseudoElement being destroyed.
(WebCore):
(WebCore::InspectorLayerTreeAgent::buildObjectForLayer): Set the new
"isGeneratedContent", "pseudoElementId" and "pseudoClass" properties on
the Layer object for layers associated with a pseudo element.
(WebCore::InspectorLayerTreeAgent::bind): Use emptyString() instead of "".
(WebCore::InspectorLayerTreeAgent::unbind): Use an iterator instead of a
get() and remove() combination in order to reduce lookups and mimick the
code written for unbindPseudoElement().
(WebCore::InspectorLayerTreeAgent::bindPseudoElement): Binds the provided
PseudoElement to a unique identifier.
(WebCore::InspectorLayerTreeAgent::unbindPseudoElement): Unbinds the
provided PseudoElement from its unique identifier.
* inspector/InspectorLayerTreeAgent.h:
(InspectorLayerTreeAgent):
2013-03-07 Keishi Hattori <keishi@webkit.org>
Add clear button to date/time input types
https://bugs.webkit.org/show_bug.cgi?id=111319
Reviewed by Kent Tamura.
We want to remove the clear button from the calendar picker (Bug 109439)
so we are adding the clear button to the right side of the input element.
Tests: fast/forms/date-multiple-fields/date-multiple-fields-clearbutton-change-and-input-events.html
fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-clearbutton-change-and-input-events.html
fast/forms/month-multiple-fields/month-multiple-fields-clearbutton-change-and-input-events.html
fast/forms/time-multiple-fields/time-multiple-fields-clearbutton-change-and-input-events.html
fast/forms/week-multiple-fields/week-multiple-fields-clearbutton-change-and-input-events.html
* CMakeLists.txt: Added ClearButtonElement.cpp
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* css/html.css:
(input::-webkit-clear-button): Styles for the clear button.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged):
(WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
(WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
(WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
(WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
(WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged):
(WebCore::BaseMultipleFieldsDateAndTimeInputType::requiredAttributeChanged): Hide clear button if the value is required.
(WebCore):
(WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged):
(WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
(WebCore::BaseMultipleFieldsDateAndTimeInputType::focusAndSelectClearButtonOwner): Called on mouse down on clear button.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldClearButtonRespondToMouseEvents):
(WebCore::BaseMultipleFieldsDateAndTimeInputType::clearValue):
(WebCore::BaseMultipleFieldsDateAndTimeInputType::updateClearButtonVisibility): We want to hide the clear button if the value is required or the value is empty.
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateClearButtonVisibility):
(WebCore):
(WebCore::HTMLInputElement::requiredAttributeChanged):
* html/HTMLInputElement.h:
(HTMLInputElement):
* html/InputType.cpp:
(WebCore::InputType::requiredAttributeChanged): Notifies the InputType that the required attribute has changed.
(WebCore):
(WebCore::InputType::updateClearButtonVisibility):
* html/InputType.h:
(InputType):
* html/shadow/ClearButtonElement.cpp: Added.
(WebCore):
(WebCore::ClearButtonElement::ClearButtonElement):
(WebCore::ClearButtonElement::create):
(WebCore::ClearButtonElement::detach):
(WebCore::ClearButtonElement::releaseCapture): Stop capturing mouse events.
(WebCore::ClearButtonElement::defaultEventHandler):
* html/shadow/ClearButtonElement.h: Added.
(WebCore):
(ClearButtonElement):
(ClearButtonOwner):
(WebCore::ClearButtonElement::ClearButtonOwner::~ClearButtonOwner):
(WebCore::ClearButtonElement::removeClearButtonOwner):
(WebCore::ClearButtonElement::isMouseFocusable):
2013-03-07 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Refactorings: Prepare SuggestBox for reuse.
https://bugs.webkit.org/show_bug.cgi?id=111301
Reviewed by Alexander Pavlov.
1) Remove userEnteredText from delegate interface.
Pass prefix to updateSuggestions instead.
2) Clarify that suggestions array is never null.
* inspector/front-end/SuggestBox.js:
(WebInspector.SuggestBox): Renamed parameter/member.
(WebInspector.SuggestBox.prototype._updateItems):
Minor readability changes.
(WebInspector.SuggestBox.prototype._canShowBox):
Use userEnteredText parameter.
(WebInspector.SuggestBox.prototype.updateSuggestions):
Pass userEnteredText to _canShowBox.
* inspector/front-end/DatabaseQueryView.js: Fix JSDocs.
* inspector/front-end/RuntimeModel.js: Ditto.
* inspector/front-end/TextPrompt.js: Ditto.
(WebInspector.TextPrompt.prototype._completionsReady):
Pass userEnteredText to updateSuggestions.
2013-03-07 Victor Carbune <vcarbune@chromium.org>
TextTrackRegion Constructor
https://bugs.webkit.org/show_bug.cgi?id=110511
Reviewed by Adam Barth.
This is an initial patch for implementing the TextTrackRegion
defined in the "WebVTT Extension: Regions for rendering cue groups":
https://dvcs.w3.org/hg/text-tracks/raw-file/default/608toVTT/region.html
The feature components are hidden behind the WEBVTT_REGIONS flag
and is currently disabled by default in all ports and tests skipped.
Test: media/track/regions-webvtt/text-track-region-constructor.html
* WebCore.gypi: Added files to be included for building Chromium with
feature enabled (it is disabled by default).
* html/track/TextTrackRegion.cpp: Added.
(WebCore):
(WebCore::TextTrackRegion::TextTrackRegion):
(WebCore::TextTrackRegion::~TextTrackRegion):
(WebCore::TextTrackRegion::setId): Setter.
(WebCore::TextTrackRegion::setWidth): Setter.
(WebCore::TextTrackRegion::setHeight): Setter.
(WebCore::TextTrackRegion::setRegionAnchorX): Setter.
(WebCore::TextTrackRegion::setRegionAnchorY): Setter.
(WebCore::TextTrackRegion::setViewportAnchorX): Setter.
(WebCore::TextTrackRegion::setViewportAnchorY): Setter.
(WebCore::TextTrackRegion::scroll): Getter. Internally, the scroll
value is stored as a boolean, but when returned is converted to either
the empty string or "up".
(WebCore::TextTrackRegion::setScroll): Setter.
(WebCore::TextTrackRegion::setRegionSettings): Not used yet (see b/109818)
* html/track/TextTrackRegion.h: Added.
(WebCore):
(TextTrackRegion):
(WebCore::TextTrackRegion::create):
(WebCore::TextTrackRegion::track): Getter.
(WebCore::TextTrackRegion::id): Getter.
(WebCore::TextTrackRegion::width): Getter.
(WebCore::TextTrackRegion::height): Getter.
(WebCore::TextTrackRegion::regionAnchorX): Getter.
(WebCore::TextTrackRegion::regionAnchorY): Getter.
(WebCore::TextTrackRegion::viewportAnchorX): Getter.
(WebCore::TextTrackRegion::viewportAnchorY): Getter.
(WebCore::TextTrackRegion::regionSettings): Getter, used only internally (see b/109818).
* html/track/TextTrackRegion.idl: Added.
* page/DOMWindow.idl: Constructor support.
2013-03-07 Dan Carney <dcarney@google.com>
[v8] remove latin-1 transition flag
https://bugs.webkit.org/show_bug.cgi?id=111692
Reviewed by Jochen Eisinger.
No new tests. No change in functionality.
* bindings/v8/V8ValueCache.cpp:
(WebCore::makeExternalString):
2013-03-07 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: NavigatorView should show (program) for uiSourceCodes with empty name.
https://bugs.webkit.org/show_bug.cgi?id=111691
Reviewed by Alexander Pavlov.
Made String.prototype methods return string literal, not String object.
* inspector/front-end/utilities.js:
(String.prototype.escapeCharacters):
2013-03-07 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Cmd+L (Go-to-Line) masks Go to location bar action
https://bugs.webkit.org/show_bug.cgi?id=111357
Reviewed by Pavel Feldman.
Allow panel shortcut handlers to bubble event.
* inspector/front-end/GoToLineDialog.js:
(WebInspector.GoToLineDialog.install): Minor refactoring, added JSDocs.
(WebInspector.GoToLineDialog._show): Added JSDocs and return value.
* inspector/front-end/Panel.js:
(WebInspector.Panel.prototype.handleShortcut):
Mark event as handled iff handler returned true.
* inspector/front-end/ScriptsPanel.js: Added return values to handlers.
* inspector/front-end/TimelinePanel.js: Ditto.
2013-03-06 Takashi Sakamoto <tasak@google.com>
Box-shadow displayed improperly with border-radius.
https://bugs.webkit.org/show_bug.cgi?id=111256
Reviewed by Simon Fraser.
RoundedRect::adjustRadii doesn't adjust radii correctly, because
the method compares maxRadiusWidth with maxRadiusHeight. However,
we have to compare maxRadiusWidth / rect.width() with
maxRadiusHeight / rect.height().
Test: fast/borders/border-radius-with-box-shadow-01.html
* platform/graphics/RoundedRect.cpp:
(WebCore::RoundedRect::adjustRadii):
Should check which ratio is smaller.
2013-03-06 Mike West <mkwst@chromium.org>
[V8] Preprocess constant values to avoid a "static_cast<signed int>" in CodeGeneratorV8.
https://bugs.webkit.org/show_bug.cgi?id=111625
Reviewed by Kentaro Hara.
When processing constants in IDL files, CodeGeneratorV8 currently runs
the values through 'static_cast<signed int>' in the generated code. We
can avoid this miniscule bit of overhead by preprocessing the hex value
in Perl when generating the code.
The FIXME has been in the code since it originally landed in 2009[1].
Now's as good a time as any to take care of it.
[1]: http://trac.webkit.org/browser/trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm?rev=144976#L2933
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateImplementation):
If we're presented with a string which begins with '0x', run it
through some fairly obtuse Perlisms to first convert from a hex
string to an integer ('hex($value)'), "pack" the integer as an
unsigned integer ('pack("I", ...)'), and then "unpack" it as a
signed integer ('unpack("i", ...)'). Because that's _of course_
how you would do things.
2013-03-06 Paweł Forysiuk <tuxator@o2.pl>
WebKit does not build without accelerated compositing after Changeset 144823
https://bugs.webkit.org/show_bug.cgi?id=111597
Reviewed by Kentaro Hara.
Properly guard functions ifdefed in ScrollingCoordinator.h.
Remove redundant checks and fallback code inside those functions.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::scrollLayerForScrollableArea):
(WebCore::ScrollingCoordinator::horizontalScrollbarLayerForScrollableArea):
(WebCore::ScrollingCoordinator::verticalScrollbarLayerForScrollableArea):
(WebCore):
2013-03-06 Hajime Morrita <morrita@google.com>
Custom Elements Refactoring: CustomElementConstructor API shouldn't bound to HTMLElement
https://bugs.webkit.org/show_bug.cgi?id=111678
Reviewed by Kentaro Hara.
The latest Custom Elements standard supports non-HTML custom elements. Even though current implementation
support only HTML, it'd be better off to make API generic enough to support them.
This change
- eliminates HTMLElement from the API signature by replacing it with Element, and
- rename V8HTMLCustomElement to V8CustomElement.
No new tests, just changing signatures and a class name.
* WebCore.gypi:
* bindings/v8/V8CustomElement.cpp: Renamed from Source/WebCore/bindings/v8/V8HTMLCustomElement.cpp.
(WebCore):
(WebCore::findWrapperTypeOf):
(WebCore::V8CustomElement::createWrapper):
* bindings/v8/V8CustomElement.h: Renamed from Source/WebCore/bindings/v8/V8HTMLCustomElement.h.
(WebCore):
(V8CustomElement):
(WebCore::V8CustomElement::toV8):
(WebCore::V8CustomElement::wrap):
(WebCore::HTMLCustomElement::wrap):
* bindings/v8/custom/V8CustomElementConstructorCustom.cpp:
(WebCore::V8CustomElementConstructor::callAsFunctionCallback):
* dom/CustomElementConstructor.cpp:
(WebCore::CustomElementConstructor::createElement):
* dom/CustomElementConstructor.h:
(WebCore):
(CustomElementConstructor):
* dom/CustomElementRegistry.cpp:
(WebCore::CustomElementRegistry::constructorOf):
(WebCore::CustomElementRegistry::createElement):
* dom/CustomElementRegistry.h:
(WebCore):
(CustomElementRegistry):
* dom/Document.cpp: Ensured that the document is an HTML.
(WebCore::Document::registerElement):
* dom/Document.idl:
* dom/make_names.pl:
(printWrapperFactoryCppFile):
* html/HTMLDocument.idl: Moved an API to Document.idl
2013-03-06 Tim Horton <timothy_horton@apple.com>
TileCache debug minimap should fit inside the intersection of the visible rect and exposed rect
https://bugs.webkit.org/show_bug.cgi?id=111655
<rdar://problem/13355773>
Reviewed by Simon Fraser.
If content clips to the exposed rect, make the TileCache minimap fit in the exposed rect too.
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::commitTreeState):
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::updateTileCoverageMap):
2013-03-06 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r144726.
http://trac.webkit.org/changeset/144726
https://bugs.webkit.org/show_bug.cgi?id=111681
caused performance regression for Dromaeo attribute tests.
(Requested by arpitab on #webkit).
* dom/Element.h:
(WebCore::ElementData::getAttributeItemIndex):
2013-03-04 Kinuko Yasuda <kinuko@chromium.org>
File.lastModifiedDate() should return the current date/time if the file date/time is not available
https://bugs.webkit.org/show_bug.cgi?id=111403
Reviewed by Kent Tamura.
Per the recent File API spec change:
http://www.w3.org/TR/2012/WD-FileAPI-20121025/#dfn-lastModifiedDate
Test: http/tests/local/fileapi/script-tests/file-last-modified-after-delete.js:
* fileapi/File.cpp:
(WebCore::File::lastModifiedDate): Changed to return the current date/time instead null if the valid file date/time is not available.
* fileapi/File.h:
(File):
2013-03-06 Philippe Liard <pliard@chromium.org>
Make RuleData support up to 8191 selectors
https://bugs.webkit.org/show_bug.cgi?id=111663
Reviewed by Andreas Kling.
r125294 made RuleData consume less memory by replacing a pointer with
an index encoded on 12 bits.
This unfortunately breaks Chrome for Android (and others) when a lot of
CSS is used or more precisely when selectorIndex cannot be stored on 12
bits.
Threfore this change decreases the number of bits used to store
m_position by 1 (from 19 to 18) and adds this extra bit to
m_selectorIndex so that values up to 8191 can be stored safely without
overflowing.
* css/RuleSet.h:
(RuleData):
2013-03-06 Seokju Kwon <seokju.kwon@gmail.com>
Web Inspector: Remove unused code from contextmenu of element panel
https://bugs.webkit.org/show_bug.cgi?id=111658
Reviewed by Pavel Feldman.
No new tests (no functional changes).
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline.prototype.populateContextMenu):
2013-03-06 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Extend our grammar to support 2 positions for grid-{row|column}
https://bugs.webkit.org/show_bug.cgi?id=110777
Reviewed by Tony Chang.
Now that we support all the logical grid properties, we can change grid-{row|column}
into shorthands. That's what this change does along with extending our parsing support
to handle 2 positions.
Tests: fast/css-grid-layout/grid-item-column-row.html
fast/css-grid-layout/grid-item-end-after-get-set.html
fast/css-grid-layout/grid-item-start-before-get-set.html
* css/CSSComputedStyleDeclaration.cpp:
Removed grid-{row|column} from computedProperties as they are shorthands (see comments
at computedProperties definition).
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
(WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForGridShorthand):
Switched to using the StylePropertyShorthand and reusing the existing longhand code.
* css/CSSComputedStyleDeclaration.h:
Added getCSSPropertyValuesForGridShorthand.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseGridItemPositionShorthand):
Added custom parsing for the shorthand, that builds on top of the longhand code.
* css/CSSParser.h:
Added parseGridItemPositionShorthand.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
Removed the previous handling as shorthand are expanded at parse time.
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::getPropertyValue):
Added the new shorthands to the list.
* css/StylePropertyShorthand.cpp:
(WebCore::webkitGridColumnShorthand):
(WebCore::webkitGridRowShorthand):
(WebCore::shorthandForProperty):
* css/StylePropertyShorthand.h:
Registered grid-{row|column} as shorthands.
2013-03-06 Kenneth Russell <kbr@google.com>
[Chromium] Fix byte ordering bugs reading back WebGL canvases' content on Android
https://bugs.webkit.org/show_bug.cgi?id=111661
Reviewed by James Robinson.
No new tests; covered by existing tests. Ran WebGL conformance
tests on Android and desktop Linux to verify fix.
* platform/chromium/support/GraphicsContext3DChromium.cpp:
(WebCore::GraphicsContext3D::paintRenderingResultsToImageData):
Avoid incorrect byte swap on Android and other OSs which don't
swizzle R and B channels.
2013-03-06 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL] Improve warning messages when input value is out of range.
https://bugs.webkit.org/show_bug.cgi?id=111534
Reviewed by Laszlo Gombos.
Show input value range when user inputs greater or less value.
* platform/efl/LocalizedStringsEfl.cpp:
(WebCore::validationMessageRangeOverflowText):
(WebCore::validationMessageRangeUnderflowText):
2013-03-06 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL][WK2] Enable interactive form validation for email and url input type validation
https://bugs.webkit.org/show_bug.cgi?id=111026
Reviewed by Laszlo Gombos.
WebKit EFL can check if input value is valid by enabling this feature.
* platform/efl/LocalizedStringsEfl.cpp: Change validation messages of email and url the same with chromium port.
(WebCore::validationMessageTypeMismatchForEmailText):
(WebCore::validationMessageTypeMismatchForMultipleEmailText):
(WebCore::validationMessageTypeMismatchForURLText):
* platform/efl/RenderThemeEfl.cpp: Add type checking conditions for email and url.
(WebCore::RenderThemeEfl::supportsDataListUI):
2013-03-06 Aaron Colwell <acolwell@chromium.org>
Remove WebCore::Node::isActiveNode() since it isn't called anywhere.
https://bugs.webkit.org/show_bug.cgi?id=111646
Reviewed by Kentaro Hara.
No new tests. This removes dead code.
* dom/Node.h:
(Node):
* html/HTMLAudioElement.h:
2013-03-06 Abhishek Arya <inferno@chromium.org>
Crash in SVGViewSpec::viewTarget
https://bugs.webkit.org/show_bug.cgi?id=111648
Reviewed by Philip Rogers.
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::viewTarget):
2013-03-06 Benjamin Poulain <benjamin@webkit.org>
WebKitTestRunner needs layoutTestController.elementDoesAutoCompleteForElementWithId
https://bugs.webkit.org/show_bug.cgi?id=42696
Reviewed by Andreas Kling.
Since the method acts directly on a WebCore element and strictly test
HTMLInputElement::shouldAutoComplete(), the test function is moved to internals.
* testing/Internals.cpp:
(WebCore::Internals::elementShouldAutoComplete):
* testing/Internals.h:
* testing/Internals.idl:
2013-03-06 Alexey Proskuryakov <ap@apple.com>
[Mac] Synthetic ResourceResponses cannot be sent over IPC without losing most information
https://bugs.webkit.org/show_bug.cgi?id=111623
Reviewed by Brady Eidson.
* WebCore.exp.in: Exported functions for building synthetic responses.
* platform/network/ResourceResponseBase.cpp:
* platform/network/ResourceResponseBase.h:
Added a lot of FIXMEs.
* platform/network/cf/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::platformResponseIsUpToDate):
Track m_platformResponseIsUpToDate flag as well as we can. Currently, it will
be incorrect if a real platform response gets mutated.
* platform/network/cf/ResourceResponseCFNet.cpp:
(WebCore::ResourceResponse::cfURLResponse): Added a FIXME about how useless this
function is when it tries to create a new CFURLResponse.
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::initNSURLResponse): Added a FIXME.
(WebCore::ResourceResponse::nsURLResponse): Added a return to make logic more clear.
(WebCore::ResourceResponse::ResourceResponse): Track m_platformResponseIsUpToDate.
* platform/network/blackberry/ResourceResponse.h:
* platform/network/curl/ResourceResponse.h:
* platform/network/qt/ResourceResponse.h:
* platform/network/soup/ResourceResponse.h:
* platform/network/win/ResourceResponse.h:
These platforms do not keep a platform response, so it's never up to date, and
WebCore data needs to be serialized.
2013-03-06 Dana Jansens <danakj@chromium.org>
[chromium] Remove WebSharedGraphicsContext3D class
https://bugs.webkit.org/show_bug.cgi?id=111492
Reviewed by James Robinson.
Removing dead code, no new tests.
* WebCore.gypi:
* platform/chromium/support/WebSharedGraphicsContext3D.cpp: Removed.
2013-03-06 Dana Jansens <danakj@chromium.org>
[chromium] Don't get callbacks or create GrContext from unowned WebGraphicsContext3D
https://bugs.webkit.org/show_bug.cgi?id=111638
Reviewed by James Robinson.
If the context is not owned, it's lifetime is not guaranteed, and by the time
the GraphicsContext3D is destroyed, the WGC3D can already be deleted.
When the context is not owned by the GraphicsContext3D, then don't clean it up
in the destructor or set up callbacks, as these are the owner's responsibility.
* platform/chromium/support/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
(WebCore::GraphicsContext3DPrivate::grContext):
(WebCore::GraphicsContext3DPrivate::setContextLostCallback):
(WebCore::GraphicsContext3DPrivate::setErrorMessageCallback):
2013-02-22 Jer Noble <jer.noble@apple.com>
Default mouse cursor behavior should be auto-hide for full screen video with custom controls
https://bugs.webkit.org/show_bug.cgi?id=107601
Reviewed by Beth Dakin.
Test: fullscreen/video-cursor-auto-hide.html
To facilitate automatically hiding the mouse cursor after a certain amount of idle mouse
time, add a new CSS property '-webkit-cursor-visibility', and handle that value inside of
EventHandler. When that value is present, the EventHandler will start a timer which, when
fired, will set the view's cursor to the None cursor. Subsequent mouse moves will either
cancel the timer, or reset the auto-hide timer.
Add a new CSS property, '-webkit-cursor-visibility':
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ECursorVisibility):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
Add a rule for video descendants of full screen elements to auto-hide the cursor on hover:
* css/fullscreen.css:
(:-webkit-full-screen video:hover):
Add a new timer, m_autoHideCursorTimer, to control resetting the view's cursor to None after
enough mouse idle time has passed.
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::~EventHandler):
(WebCore::EventHandler::clear):
(WebCore::EventHandler::selectCursor):
(WebCore::EventHandler::startAutoHideCursorTimer):
(WebCore::EventHandler::cancelAutoHideCursorTimer):
(WebCore::EventHandler::autoHideCursorTimerFired):
* page/EventHandler.h:
Make FrameView::isActive() a public function (like it is in its superclass).
* page/FrameView.h:
(FrameView):
Move the definition for timeWithoutMouseMovementBeforeHidingControls from page->theme()
to page->settings() and allow that setting to be overridden in InternalSettings for
testing purposes:
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
(WebCore::Settings::setTimeWithoutMouseMovementBeforeHidingControls):
(WebCore::Settings::timeWithoutMouseMovementBeforeHidingControls):
* rendering/RenderTheme.h:
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setTimeWithoutMouseMovementBeforeHidingControls):
* testing/InternalSettings.h:
(InternalSettings):
* testing/InternalSettings.idl:
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::startHideFullscreenControlsTimer):
Add support to FeatureObserver for CURSOR_VISIBILITY:
* page/FeatureObserver.h:
Enable the feature flag:
* Configurations/FeatureDefines.xcconfig:
2013-03-06 Jer Noble <jer.noble@apple.com>
Full screen from an iframe with a z-index style will allow siblings with higher z-index to overlay full screen content.
https://bugs.webkit.org/show_bug.cgi?id=111637
Reviewed by Simon Fraser.
No new tests; updated fullscreen/full-screen-iframe-zIndex.html to expose bug.
Pages with explicit z-index: styles on their iframes will override the default z-index: UA style when
elements within that iframe enter full screen mode. Mark the UA style as !important so as to not allow
iframe siblings with higher z-index styles to overlay the full screen element.
* css/fullscreen.css:
(:-webkit-full-screen):
2013-03-06 Levi Weintraub <leviw@chromium.org>
InsertUnorderedList can lead to lost content and assertions in moveParagraphs
https://bugs.webkit.org/show_bug.cgi?id=111228
Reviewed by Ryosuke Niwa.
When a list is wrapped in a presentational inline like a b tag, we'd create markup that included
everything up to the b tag from moveParagraphs when intending to only move the contents of the
list item. This could make it impossible to remove content from a list and trigger loss of
editable text.
Test: editing/execCommand/insert-remove-block-list-inside-presentational-inline.html
* editing/EditingStyle.cpp:
(WebCore::elementMatchesAndPropertyIsNotInInlineStyleDecl): Ensure there's an inline style
before calling propertyExistsInStyle.
(WebCore::HTMLElementEquivalent::propertyExistsInStyle): Removing null check for style.
All callers ensure this value isn't null.
* editing/markup.cpp:
(WebCore::highestAncestorToWrapMarkup): Avoid going over RenderBlocks when finding the highest
presentational ancestor to avoid leaving the bounds of the original paragraph.
2013-03-06 Adam Klein <adamk@chromium.org>
[V8] Use implicit references instead of object groups to keep registered MutationObservers alive
https://bugs.webkit.org/show_bug.cgi?id=111382
Reviewed by Adam Barth.
Two-phase approach to implicit references: after grouping objects
together, add an implicit reference between each registered node's
group and the MutationObserver's group (which includes wrappers from
all worlds).
Also changed many uses of v8::Value to v8::Object where we know we're
dealing with Object and the V8 API expects them.
Test: ManualTests/mutation-observer-leaks-nodes.html
* bindings/v8/V8GCController.cpp:
(WebCore::ImplicitConnection::ImplicitConnection):
(WebCore::ImplicitConnection::wrapper):
(ImplicitConnection):
(WebCore::ImplicitReference::ImplicitReference): Wrapper class holding a parent who should have an implicit reference to a child.
(ImplicitReference):
(WebCore::operator<): Needed for std::sort() call to avoid the overhead of using a HashMap
(WebCore::WrapperGrouper::addObjectWrapperToGroup):
(WebCore::WrapperGrouper::addNodeWrapperToGroup):
(WebCore::WrapperGrouper::addImplicitReference):
(WrapperGrouper):
(WebCore::WrapperGrouper::apply):
2013-03-06 Ankur Taly <ataly@google.com>
Modify log method in V8DOMActivityLogger so that the apiName and
extraInfo arguments are of type const String& instead of const char*.
This change gets rid of some of the memory ownership issues that arise
with char* pointers.
https://bugs.webkit.org/show_bug.cgi?id=111483
Reviewed by Adam Barth.
There are no new tests as there is no change in behavior.
* bindings/v8/V8DOMActivityLogger.h:
(WebCore::V8DOMActivityLogger::log):
2013-03-06 Mike Reed <reed@google.com>
Use SkTypeface API directly, rather than (soon to be private) SkFontHost
https://bugs.webkit.org/show_bug.cgi?id=111588
Reviewed by Stephen White.
No new tests, as existing tests in fast/writing-mode exercise this code.
e.g. japanese-rl-text-with-broken-font.html
vertical-subst-font-vert-no-dflt.html
* platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
(WebCore::FontPlatformData::emSizeInFontUnits):
(WebCore::FontPlatformData::openTypeTable):
* platform/graphics/harfbuzz/HarfBuzzFaceSkia.cpp:
(WebCore::harfBuzzSkiaGetTable):
(WebCore::HarfBuzzFace::createFace):
* platform/graphics/skia/SimpleFontDataSkia.cpp:
(WebCore::SimpleFontData::platformInit):
2013-03-06 Victor Costan <costan@gmail.com>
Cleanup in multipart FormData sending code.
https://bugs.webkit.org/show_bug.cgi?id=111603
Reviewed by Alexey Proskuryakov.
No new tests. This is cleanup.
* platform/network/FormDataBuilder.cpp:
(WebCore::appendQuotedString): use proper types (e.g, size_t instead of
unsigned long)
2013-03-06 Tony Gentilcore <tonyg@chromium.org>
Threaded HTML parser should use 8 bit strings for attributes
https://bugs.webkit.org/show_bug.cgi?id=111610
Reviewed by Eric Seidel.
This fixes a 27% regression in dromaeo_jslibattrjquery on the threaded HTML parser vs. the main thread parser.
No new tests because no new functionality.
* html/parser/CompactHTMLToken.cpp:
(WebCore::CompactHTMLToken::CompactHTMLToken):
2013-03-06 Alpha Lam <hclam@chromium.org>
More cleanup in GIFImageReader
https://bugs.webkit.org/show_bug.cgi?id=111137
Reviewed by Stephen White.
Refactor GIFImageReaderReader with the following changes:
+ Separate GIFLZWContext for decoding states.
+ Replace unsigned char* with Vector<unsigned char>
There is no change in code behavior and just refactoring.
No new tests. This is covered by existing GIFImageReaderTest.
I also did a local testing on a 50k image corpus and showed no regression.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::haveDecodedRow):
* platform/image-decoders/gif/GIFImageDecoder.h:
(GIFImageDecoder):
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::outputRow):
(GIFImageReader::doLZW):
(GIFImageReader::decodeInternal):
(GIFImageReader::prepareLZWContext):
* platform/image-decoders/gif/GIFImageReader.h:
(GIFFrameContext):
(GIFFrameContext::GIFFrameContext):
(GIFFrameContext::~GIFFrameContext):
(GIFLZWContext):
(GIFLZWContext::GIFLZWContext):
(GIFImageReader):
2013-03-06 Tim Horton <timothy_horton@apple.com>
Fix typo'd MainThreadScrollingBecauseOfStyleIndictaion
https://bugs.webkit.org/show_bug.cgi?id=111557
Reviewed by Geoff Garen.
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::commitTreeState):
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::updateTileCoverageMap):
2013-03-05 Geoffrey Garen <ggaren@apple.com>
Removed some dead code in the page cache
https://bugs.webkit.org/show_bug.cgi?id=111525
Reviewed by Alexey Proskuryakov.
Page cache autorelease doesn't exist anymore, so there's no need to keep
around these olds hacks.
* WebCore.exp.in:
* history/PageCache.cpp:
(WebCore::PageCache::PageCache):
(WebCore):
* history/PageCache.h:
(PageCache):
* page/Settings.cpp:
(WebCore::Settings::setUsesPageCache):
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::releaseMemory):
* platform/qt/QtTestSupport.cpp:
(WebKit::QtTestSupport::clearMemoryCaches):
2013-03-06 Rafael Weinstein <rafaelw@chromium.org>
Unreviewed, rolling out r144924.
http://trac.webkit.org/changeset/144924
https://bugs.webkit.org/show_bug.cgi?id=109908
caused multiple crashes in inspector/debugger tests
* bindings/js/JSInjectedScriptHostCustom.cpp:
* bindings/js/ScriptObject.h:
* bindings/v8/ScriptObject.h:
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
* inspector/InjectedScriptHost.cpp:
(WebCore::InjectedScriptHost::create):
(WebCore::InjectedScriptHost::InjectedScriptHost):
(WebCore::InjectedScriptHost::disconnect):
* inspector/InjectedScriptHost.h:
(WebCore):
(InjectedScriptHost):
* inspector/InjectedScriptHost.idl:
* inspector/InjectedScriptManager.cpp:
(WebCore::InjectedScriptManager::InjectedScriptManager):
(WebCore::InjectedScriptManager::discardInjectedScripts):
(WebCore::InjectedScriptManager::discardInjectedScriptsFor):
* inspector/InjectedScriptManager.h:
(InjectedScriptManager):
* inspector/InjectedScriptSource.js:
(.):
2013-03-06 Dmitry Zvorygin <zvorygin@chromium.org>
Introduce new message sources for logging.
https://bugs.webkit.org/show_bug.cgi?id=110968
Reviewed by Pavel Feldman.
Added SecurityMessageSource, RenderingMessageSource, StorageMessageSource, AppCacheMessageSource, CSSMessageSource.
Changed some logging lines to contain more descriptive message source.
* Modules/webdatabase/DatabaseBase.cpp:
(WebCore::DatabaseBase::logErrorMessage):
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::logErrorMessage):
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::fail):
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::canExecuteScripts):
* css/MediaList.cpp:
(WebCore::addResolutionWarningMessageToConsole):
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::executeScript):
(WebCore::ScriptElement::notifyFinished):
* dom/ViewportArguments.cpp:
(WebCore::reportViewportWarning):
* html/HTMLFormControlElement.cpp:
(WebCore::shouldAutofocus):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::validateInteractively):
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::parseAttribute):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::getImageData):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::printWarningToConsole):
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::init):
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::XSSAuditorDelegate::didBlockScript):
* inspector/ConsoleMessage.cpp:
(WebCore::messageSourceValue):
* inspector/Inspector.json:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::submitForm):
(WebCore::FrameLoader::reportLocalLoadFailed):
(WebCore::createWindow):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::notifyFinished):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::responseReceived):
* loader/MixedContentChecker.cpp:
(WebCore::MixedContentChecker::logWarning):
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::corsPolicyPreventedLoad):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::abort):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::printAccessDeniedMessage):
* page/Console.cpp:
(WebCore::printMessageSourceAndLevelPrefix):
* page/ConsoleTypes.h:
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::logToConsole):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
* page/PointerLockController.cpp:
(WebCore::PointerLockController::requestPointerLock):
* svg/SVGDocumentExtensions.cpp:
(WebCore::reportMessage):
2013-03-06 Florin Malita <fmalita@chromium.org>
SVG pattern to pattern reference does not work if first pattern has a child node
https://bugs.webkit.org/show_bug.cgi?id=111586
Reviewed by Philip Rogers.
SVGPatternElement::collectPatternAttributes should test for child elements, not child nodes.
Tests: svg/custom/pattern-reference-expected.svg
svg/custom/pattern-reference.svg
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::collectPatternAttributes):
2013-03-06 Christophe Dumez <ch.dumez@sisa.samsung.com>
[soup] session cookies are not correctly reported in getRawCookies()
https://bugs.webkit.org/show_bug.cgi?id=111584
Reviewed by Martin Robinson.
As per libsoup documentation, SoupCookie->expires is NULL for session cookies.
However, the soup implementation for getRawCookies() does not check for NULL
case before passing the value to soup_date_to_time_t(), which leads to run time
warnings.
We should also pass true for WebCore::Cookie's session argument if
SoupCookie->expires is NULL. The current implementation reports the cookie as a
session one if soup_cookie_jar_is_persistent(jar) returns true, which is
inaccurate.
No new tests, no behavior change for layout tests as Web Inspector currently
ignores the "session" member and uses expires/max-age instead to deduce it.
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::getRawCookies):
2013-03-06 Douglas Stockwell <dstockwell@chromium.org>
REGRESSION(r111639): delayed animation start can be postponed
https://bugs.webkit.org/show_bug.cgi?id=108582
Query the animation timer directly for the time it will next fire rather than
trying to cache the interval. Previous approach was incorrect -- as time advanced
it was possible for the interval to jump beyond the next service time.
Reviewed by Darin Adler.
Test: animations/animation-delay-changed.html
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
(WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer):
(WebCore::AnimationControllerPrivate::updateAnimationTimer):
* page/animation/AnimationControllerPrivate.h:
(AnimationControllerPrivate): Remove m_previousTimeToNextService
2013-03-06 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [ACE] show execution line in Ace editor
https://bugs.webkit.org/show_bug.cgi?id=111575
Reviewed by Pavel Feldman.
Highlight execution line by the means of Ace full line markers.
No new tests.
* inspector/front-end/AceTextEditor.js:
(WebInspector.AceTextEditor.prototype.setExecutionLine):
(WebInspector.AceTextEditor.prototype.clearExecutionLine):
(WebInspector.AceTextEditor.prototype.setSelection):
* inspector/front-end/ace/acedevtools.css:
(.ace-editor-container):
(.webkit-execution-line):
2013-03-06 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: fix closure compiler warnings in the profiler code
https://bugs.webkit.org/show_bug.cgi?id=111581
Reviewed by Vsevolod Vlasov.
Added missing annotations. Replaced NativeProfileLauncherView with
ProfileLauncherView.
* inspector/InjectedScriptExterns.js:
(InjectedScriptHost.prototype.objectId):
(InjectedScriptHost.prototype.releaseObjectId):
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart.prototype._forEachNode):
* inspector/front-end/ProfileLauncherView.js:
* inspector/front-end/ProfilesPanel.js:
2013-03-06 Carlos Garcia Campos <cgarcia@igalia.com>
[BlackBerry] Pass String::StrictConversion instead of true to String::utf8()
https://bugs.webkit.org/show_bug.cgi?id=111546
Reviewed by Rob Buis.
String::utf8() API changed in r134173.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::notifyChallengeResult):
2013-03-06 Julien Chaffraix <jchaffraix@webkit.org>
Remove the (dead) code for handling shorthands in StyleResolver / StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=111505
Unreviewed minimal build fix.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
Put CSSPropertyWebkitWrap under the proper if-guard.
2013-03-06 Vsevolod Vlasov <vsevik@chromium.org>
Unreviewed follow up to r144928: front-end closure compilation fixes.
* inspector/front-end/FilteredItemSelectionDialog.js:
(WebInspector.JavaScriptOutlineDialog.prototype.dispose):
(WebInspector.OpenResourceDialog.prototype.dispose):
* inspector/front-end/StyleSheetOutlineDialog.js:
(WebInspector.StyleSheetOutlineDialog.prototype.dispose):
2013-03-06 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Update open resource dialog when new uiSourceCodes are loaded.
https://bugs.webkit.org/show_bug.cgi?id=111327
Reviewed by Pavel Feldman.
* inspector/front-end/FilteredItemSelectionDialog.js:
(WebInspector.FilteredItemSelectionDialog):
(WebInspector.FilteredItemSelectionDialog.prototype.willHide):
(WebInspector.FilteredItemSelectionDialog.prototype._itemsLoaded):
(WebInspector.FilteredItemSelectionDialog.prototype._updateAfterItemsLoaded):
(WebInspector.FilteredItemSelectionDialog.prototype._filterItems.compareFunction):
(WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
(WebInspector.SelectionDialogContentProvider.prototype.dispose):
(WebInspector.JavaScriptOutlineDialog.prototype._didBuildOutlineChunk):
(WebInspector.OpenResourceDialog):
(WebInspector.OpenResourceDialog.prototype.requestItems):
(WebInspector.OpenResourceDialog.prototype._filterUISourceCode):
(WebInspector.OpenResourceDialog.prototype._uiSourceCodeAdded):
(WebInspector.OpenResourceDialog.prototype.dispose):
* inspector/front-end/StyleSheetOutlineDialog.js:
(WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
(WebInspector.StyleSheetOutlineDialog.prototype.requestItems.didGetStyleSheet):
2013-03-06 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Move sidebar-specific styles to a separate file.
https://bugs.webkit.org/show_bug.cgi?id=111173
Reviewed by Pavel Feldman.
* WebCore.gypi:
* inspector/front-end/BreakpointsSidebarPane.js:
(WebInspector.JavaScriptBreakpointsSidebarPane):
(WebInspector.EventListenerBreakpointsSidebarPane):
* inspector/front-end/NativeBreakpointsSidebarPane.js:
(WebInspector.NativeBreakpointsSidebarPane):
* inspector/front-end/SidebarPane.js:
(WebInspector.SidebarPaneTitle):
(WebInspector.SidebarPaneStack):
(WebInspector.SidebarTabbedPane):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/breakpointsList.css: Added.
(.sidebar-pane > .body .breakpoint-condition):
(#breakpoint-condition-input):
(ol.breakpoint-list):
(.breakpoints-list-deactivated):
(.breakpoint-list li):
(.breakpoint-list li:hover):
(.breakpoint-list .checkbox-elem):
(.breakpoint-list .source-text):
(.sidebar-pane .breakpoint-hit):
(li.breakpoint-hit .breakpoint-hit-marker):
(.event-listener-breakpoints .event-category):
(.event-listener-breakpoints.properties-tree .children li):
(.event-listener-breakpoints .checkbox-elem):
* inspector/front-end/elementsPanel.css:
(.panel.elements .sidebar-pane-toolbar > select):
(.panel.elements .sidebar-pane-toolbar > select:hover):
(.panel.elements .sidebar-pane-toolbar > select:active):
(.panel.elements .sidebar-pane-toolbar > select.select-settings):
(.panel.elements .sidebar-pane-toolbar > select.select-filter):
(.panel.elements .sidebar-pane-toolbar > select > option, .panel.elements .sidebar-pane-toolbar > select > hr):
* inspector/front-end/inspector.css:
(.event-bar .event-properties):
* inspector/front-end/scriptsPanel.css:
(.workers-list > li):
(a.worker-item):
(a.worker-item:hover):
* inspector/front-end/sidebarPane.css: Added.
(.sidebar-pane):
(.sidebar-pane > .body):
(.sidebar-pane > .body .info):
(.sidebar-pane > .body .placard + .info):
(.sidebar-pane.visible > .body):
(.sidebar-pane .section .properties):
(.sidebar-tabbed-pane .tabbed-pane-header):
(.sidebar-pane-stack > .sidebar-pane.visible:nth-last-of-type(1)):
(.sidebar-pane-title):
(.sidebar-pane-title + .sidebar-pane-title, .pane:not(.visible) + .sidebar-pane-title, .sidebar-pane-title:first-of-type):
(.sidebar-pane-title:active):
(.sidebar-pane-title::before):
(.sidebar-pane-title.expanded::before):
(.sidebar-pane-toolbar):
(.sidebar-pane-toolbar > *):
(.sidebar-pane-toolbar > .pane-title-button):
(.sidebar-pane-toolbar > .pane-title-button:hover):
(.sidebar-pane-toolbar > .pane-title-button:active, .sidebar-pane-toolbar > .pane-title-button.toggled):
(.sidebar-pane-toolbar > .pane-title-button.add):
(.sidebar-pane-toolbar > .pane-title-button.element-state):
(.sidebar-pane-toolbar > .pane-title-button.refresh):
(.sidebar-pane-subtitle):
(body.platform-windows .sidebar-pane-subtitle):
(.sidebar-pane-subtitle input, .section .header input[type=checkbox]):
2013-03-06 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Combine style-related panes into a single tab when Elements panel is split horizontally.
https://bugs.webkit.org/show_bug.cgi?id=111550
Reviewed by Pavel Feldman.
Grouping the Elements sidebar panes into two tabbed panes proved to be
confusing and inconvenient. Put all the Elements sidebar panes into a single tabbed pane.
Combined Styles, Computed Style and Metrics into a single pane.
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype._splitVertically):
(WebInspector.ElementsPanel.prototype.addExtensionSidebarPane):
* inspector/front-end/elementsPanel.css:
(.sidebar-pane.composite):
(.sidebar-pane.composite > .body):
(.sidebar-pane.composite .metrics):
(.sidebar-pane.composite .sidebar-pane-toolbar):
(.sidebar-pane.composite .sidebar-pane-toolbar > .sidebar-pane-subtitle):
(.sidebar-pane.composite .styles-section.read-only):
2013-03-05 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: support stable remote object ids
https://bugs.webkit.org/show_bug.cgi?id=109908
Reviewed by Pavel Feldman.
Introduced a map from javascript object to its id. It guarantees
that object is assined id only once (unless it is explicitely
released). The map is per execution context and is stored in
InjectedScriptManager.
Test: inspector-protocol/persistent-id.html
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::objectId):
(WebCore):
(WebCore::JSInjectedScriptHost::releaseObjectId):
* bindings/js/ScriptObject.h:
(WTF):
(WTF::ScriptObjectHash::hash):
(WTF::ScriptObjectHash::equal):
(ScriptObjectHash):
* bindings/v8/ScriptObject.h:
(WTF):
(WTF::ScriptObjectHash::hash):
(WTF::ScriptObjectHash::equal):
(ScriptObjectHash):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::V8InjectedScriptHost::objectIdMethodCustom):
(WebCore):
(WebCore::V8InjectedScriptHost::releaseObjectIdMethodCustom):
* inspector/InjectedScriptHost.cpp:
(WebCore::InjectedScriptHost::create):
(WebCore::InjectedScriptHost::InjectedScriptHost):
(WebCore::InjectedScriptHost::disconnect):
(WebCore::InjectedScriptHost::objectId):
(WebCore):
(WebCore::InjectedScriptHost::releaseObjectId):
* inspector/InjectedScriptHost.h:
(WebCore):
(InjectedScriptHost):
* inspector/InjectedScriptHost.idl:
* inspector/InjectedScriptManager.cpp:
(InjectedScriptManager::ObjectIdMap):
(WebCore::InjectedScriptManager::ObjectIdMap::ObjectIdMap):
(WebCore::InjectedScriptManager::ObjectIdMap::objectId):
(WebCore::InjectedScriptManager::ObjectIdMap::releaseObjectId):
(WebCore):
(WebCore::InjectedScriptManager::InjectedScriptManager):
(WebCore::InjectedScriptManager::discardInjectedScripts):
(WebCore::InjectedScriptManager::discardInjectedScriptsFor):
(WebCore::InjectedScriptManager::objectId):
(WebCore::InjectedScriptManager::releaseObjectId):
* inspector/InjectedScriptManager.h:
(InjectedScriptManager):
* inspector/InjectedScriptSource.js:
(.):
2013-03-06 Marja Hölttä <marja@chromium.org>
REGRESSION(r144617): Wrong usage of overwritten variable in toDOMWindow (V8Binding.cpp)
https://bugs.webkit.org/show_bug.cgi?id=111565
Reviewed by Jochen Eisinger.
In toDOMWindow, the variable "global" was first nuked, and then used again. This
change was introduced in r144617.
No new tests (no functional changes).
* bindings/v8/V8Binding.cpp:
(WebCore::toDOMWindow):
2013-03-06 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: use regular eval instead of injectScript for front-end extension API
https://bugs.webkit.org/show_bug.cgi?id=111529
Reviewed by Pavel Feldman.
Removed InjectedScriptManager::injectScript and replaced all of it calls
except the actual script injection with ScriptController::executeScript.
* inspector/InjectedScriptManager.cpp:
(WebCore::InjectedScriptManager::injectedScriptFor):
* inspector/InjectedScriptManager.h:
(InjectedScriptManager):
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::didClearWindowObjectInWorld):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMAgent.prototype._emulateTouchEventsChanged.get if):
* inspector/front-end/ExtensionAPI.js:
(buildExtensionAPIInjectedScript):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype._onReload):
2013-03-06 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Do not disable C++0x
https://bugs.webkit.org/show_bug.cgi?id=111559
Reviewed by Kenneth Rohde Christiansen.
* WebCore.pri:
2013-03-06 Julien Chaffraix <jchaffraix@webkit.org>
Remove the (dead) code for handling shorthands in StyleResolver / StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=111505
Reviewed by Alexis Menard.
The CSS parsing code expands shorthands (with the exception of 'font') to their longhands.
This means that all the code in StyleResolver / StyleBuilder to handle shorthands is basically
dead and shouldn't be there. The reason for it to be is that people didn't know about shorthands
expansion and thus copied existing code.
This change addresses both issues by removing the code and adding ASSERTs that should prevent people
from adding more dead code.
Refactoring, covered by existing tests.
* css/StylePropertyShorthand.h: Added isExpandedShorthand.
* css/StylePropertyShorthand.cpp:
(WebCore::isExpandedShorthand):
Added this function that ignores 'font' as it is the only shorthand that is no consistently expanded
to account for system fonts.
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
Removed the shorthands.
* css/StyleBuilder.h:
(WebCore::StyleBuilder::setPropertyHandler):
Added ASSERTs that people don't add shorthand handling.
* css/StyleResolver.cpp:
(WebCore::isValidVisitedLinkProperty):
Removed all the shorthands (shouldn't be reachable unless the ASSERT in applyProperty
triggers).
(WebCore::StyleResolver::applyProperty):
Removed all shorthand handling code, moved the shorthands together and added some ASSERT
to ensure people don't abuse the code and re-add some of it back by mistake.
2013-03-05 Kent Tamura <tkent@chromium.org>
Rename WebCore/editing/visible_units.* to VisibleUnits.*
https://bugs.webkit.org/show_bug.cgi?id=111426
Reviewed by Alexey Proskuryakov.
No new tests. Just a refactoring.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* accessibility/AccessibilityNodeObject.cpp:
* accessibility/AccessibilityObject.cpp:
* accessibility/AccessibilityRenderObject.cpp:
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
* accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
* dom/Position.cpp:
* dom/Range.cpp:
* editing/AlternativeTextController.cpp:
* editing/ApplyBlockElementCommand.cpp:
* editing/ApplyStyleCommand.cpp:
* editing/CompositeEditCommand.cpp:
* editing/DeleteSelectionCommand.cpp:
* editing/EditingAllInOne.cpp:
* editing/EditingStyle.cpp:
* editing/Editor.cpp:
* editing/FormatBlockCommand.cpp:
* editing/FrameSelection.cpp:
* editing/IndentOutdentCommand.cpp:
* editing/InsertLineBreakCommand.cpp:
* editing/InsertListCommand.cpp:
* editing/InsertParagraphSeparatorCommand.cpp:
* editing/InsertTextCommand.cpp:
* editing/ReplaceSelectionCommand.cpp:
* editing/SurroundingText.cpp:
* editing/TextCheckingHelper.cpp:
* editing/TextIterator.cpp:
* editing/TypingCommand.cpp:
* editing/VisiblePosition.cpp:
* editing/VisibleSelection.cpp:
* editing/VisibleUnits.cpp: Copied from Source/WebCore/editing/visible_units.cpp.
* editing/VisibleUnits.h: Copied from Source/WebCore/editing/visible_units.h.
* editing/htmlediting.cpp:
* editing/markup.cpp:
* editing/visible_units.cpp: Removed.
* editing/visible_units.h: Removed.
* page/Frame.cpp:
* page/mac/FrameMac.mm:
* platform/win/EditorWin.cpp:
2013-03-06 Alexis Menard <alexis@webkit.org>
Do not add CSSPropertyBorderImage shorthand part of the property list when parsing CSS border property
https://bugs.webkit.org/show_bug.cgi?id=111481
Reviewed by Julien Chaffraix.
After http://trac.webkit.org/changeset/135848 and more generally we do not
add shorthand directly into the property list used afterwards to build
StylePropertySet but we rather expand the shorthand to add the
longhands. CSSPropertyBorderImage is a shorthand and it should follow
that rule, so when we successfully parsed CSS border property and we
should reset border-image then we should reset the longhands too.
Test: LayoutTests/inspector/styles/styles-new-API-expected.txt which
reflects the fact that we add longhands instead of the shorthand. All
the other tests should not regress.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
2013-03-06 Luiz Agostini <luiz.agostini@nokia.com>
Accelerated overflow scrolling for Coordinated Graphics.
https://bugs.webkit.org/show_bug.cgi?id=110323
Reviewed by Noam Rosenthal.
A scroll offset is applied to individual layers on UI process and the
web process is notified assynchronously.
The new API WKCoordinatedScene may be used to scroll layers in the UI process.
Tests will be added on bug #111140.
Scrolling coordinator is used to provide a ScrollableArea to CoordinatedGraphicsLayer.
* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
(WebCore::ScrollingCoordinatorCoordinatedGraphics::scrollableAreaScrollLayerDidChange):
(WebCore):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::willDestroyScrollableArea):
* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
(ScrollingCoordinatorCoordinatedGraphics):
GraphicsLayerTextureMapper is responsible for receiving the 'did commit' messages and to pass
them to its TextureMapperLayer on the appropriated time.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::didCommitScrollOffset):
(WebCore):
(WebCore::GraphicsLayerTextureMapper::setIsScrollable):
(WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(WebCore::GraphicsLayerTextureMapper::setScrollClient):
(WebCore::GraphicsLayerTextureMapper::setID):
(GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::isScrollable):
TextureMapperLayer is responsible for applying the requested scroll offset and for
sending the commit messages to web process. It is also able to hittest layers and identify
the ones that are scrollable.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::hitTest):
(WebCore):
(WebCore::TextureMapperLayer::scrollableLayerHitTestCondition):
(WebCore::TextureMapperLayer::findScrollableContentsLayerAt):
(WebCore::TextureMapperLayer::mapScrollOffset):
(WebCore::TextureMapperLayer::commitScrollOffset):
(WebCore::TextureMapperLayer::scrollBy):
(WebCore::TextureMapperLayer::didCommitScrollOffset):
* platform/graphics/texmap/TextureMapperLayer.h:
(TextureMapperLayer):
(ScrollingClient):
(WebCore::TextureMapperLayer::TextureMapperLayer):
(WebCore::TextureMapperLayer::setID):
(WebCore::TextureMapperLayer::id):
(WebCore::TextureMapperLayer::setScrollClient):
(WebCore::TextureMapperLayer::setIsScrollable):
(WebCore::TextureMapperLayer::isScrollable):
(WebCore::TextureMapperLayer::adjustedPosition):
CoordinatedGraphicsLayer receives the commit messages and updates its ScrollableArea.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::setScrollableArea):
(WebCore):
(WebCore::CoordinatedGraphicsLayer::commitScrollOffset):
(WebCore::CoordinatedGraphicsLayer::resetLayerState):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
(WebCore):
(CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::isScrollable):
CoordinatedGraphicsScene receives the commit messages from TextureMapperLayer and
dispatches them on the main thread. It also has a new method that is used to find
the topmost scrollable layer at a given point.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::setLayerState):
(WebCore::CoordinatedGraphicsScene::createLayer):
(WebCore::CoordinatedGraphicsScene::dispatchCommitScrollOffset):
(WebCore):
(WebCore::CoordinatedGraphicsScene::commitScrollOffset):
(WebCore::CoordinatedGraphicsScene::findScrollableContentsLayerAt):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
(WebCore):
(CoordinatedGraphicsSceneClient):
(CoordinatedGraphicsScene):
New fields have been added to CoordinatedGraphicsLayerState.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
(CoordinatedGraphicsLayerState):
2013-03-06 Allan Sandfeld Jensen <allan.jensen@digia.com>
REGGRESSION (r142112): It made compositing tests fail on EFL, Qt.
https://bugs.webkit.org/show_bug.cgi?id=109291
Reviewed by Kenneth Rohde Christiansen.
Report we support fixed layers.
* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
(WebCore::ScrollingCoordinatorCoordinatedGraphics::supportsFixedPositionLayers):
(ScrollingCoordinatorCoordinatedGraphics):
2013-03-06 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r144859.
http://trac.webkit.org/changeset/144859
https://bugs.webkit.org/show_bug.cgi?id=111519
Introduced a test that calls non-exist function on non-
Chromium ports and crash on Chromium (Requested by rniwa on
#webkit).
* html/HTMLAudioElement.h:
(WebCore::HTMLAudioElement::hasPendingActivity):
(HTMLAudioElement):
* html/HTMLAudioElement.idl:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::hasPendingActivity):
* html/HTMLMediaElement.idl:
2013-03-06 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Could not open Profiles panel.
https://bugs.webkit.org/show_bug.cgi?id=111535
Reviewed by Alexander Pavlov.
* inspector/front-end/CPUProfileView.js:
* inspector/front-end/ProfilesPanel.js:
2013-03-06 Tony Chang <tony@chromium.org>
Crash during middle mouse click when page is removed
https://bugs.webkit.org/show_bug.cgi?id=111489
Reviewed by Hajime Morrita.
Check for a null page that can happen if we remove the document from the DOM.
The other methods in EventHandler also check for a null page.
Test: editing/pasteboard/selection-paste-crash.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handlePasteGlobalSelection):
2013-03-05 Eric Seidel <eric@webkit.org>
Replace shouldLazyAttach bool with an enum for readability
https://bugs.webkit.org/show_bug.cgi?id=111503
Reviewed by Dimitri Glazkov.
No behavioral change.
* bindings/cpp/WebDOMNodeCustom.cpp:
(WebDOMNode::insertBefore):
(WebDOMNode::replaceChild):
(WebDOMNode::appendChild):
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::insertBefore):
(WebCore::JSNode::replaceChild):
(WebCore::JSNode::appendChild):
* bindings/v8/custom/V8NodeCustom.cpp:
(WebCore):
(WebCore::V8Node::insertBeforeMethodCustom):
(WebCore::V8Node::replaceChildMethodCustom):
(WebCore::V8Node::appendChildMethodCustom):
* dom/ContainerNode.cpp:
(WebCore):
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::appendChild):
(WebCore::updateTreeAfterInsertion):
* dom/ContainerNode.h:
(ContainerNode):
* dom/Node.cpp:
(WebCore::Node::insertBefore):
(WebCore::Node::replaceChild):
(WebCore::Node::appendChild):
* dom/Node.h:
(Node):
* editing/AppendNodeCommand.cpp:
(WebCore::AppendNodeCommand::doApply):
* editing/InsertNodeBeforeCommand.cpp:
(WebCore::InsertNodeBeforeCommand::doApply):
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::createControls):
* html/shadow/MediaControlsBlackBerry.cpp:
(WebCore::MediaControlsBlackBerry::createControls):
* html/shadow/MediaControlsChromium.cpp:
(WebCore::MediaControlsChromium::initializeControls):
* html/shadow/MediaControlsChromiumAndroid.cpp:
(WebCore::MediaControlsChromiumAndroid::createControls):
2013-03-05 Hajime Morrita <morrita@google.com>
Custom Elements: CustomElementConstructor::m_name doesn't have any good use.
https://bugs.webkit.org/show_bug.cgi?id=111523
Reviewed by Kentaro Hara.
This change removes CustomElementConstructor::m_name and renames
m_tagName to m_name. Now generated function name is same as interface name.
Originally, m_name was added to specify the generated constructor
name. An early version of custom element allows to give the name,
but it no longer says anything about that.
The rename is to align the semantics of type extension mechanism
of Custom Elements, where the name of a custom element isn't
necessarily a tag name.
No new tests. Just removing old code.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* dom/CustomElementConstructor.cpp:
(WebCore::CustomElementConstructor::create):
(WebCore::CustomElementConstructor::CustomElementConstructor):
(WebCore::CustomElementConstructor::createElement):
* dom/CustomElementConstructor.h:
(CustomElementConstructor):
(WebCore::CustomElementConstructor::name):
* dom/CustomElementRegistry.cpp:
(WebCore::CustomElementRegistry::registerElement):
2013-03-05 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Flame Chart. Provide node context info in a popover when mouse hovers over a flame chart item.
https://bugs.webkit.org/show_bug.cgi?id=111442
Reviewed by Yury Semikhatsky.
FlameChart is a canvas so it is not possible to attach the popover to the items on it.
It would be a bit tricky to support an offset due to complex behaviour of the popover.
The simplest solution is to create a fake anchor element and move it to the right position.
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart):
(WebInspector.FlameChart.prototype._getPopoverAnchor):
(WebInspector.FlameChart.prototype._showPopover):
(WebInspector.FlameChart.prototype._onMouseMove):
(WebInspector.FlameChart.prototype.findNodeCallback):
(WebInspector.FlameChart.prototype._coordinatesToNode):
(WebInspector.FlameChart.prototype.onResize):
* inspector/front-end/flameChart.css:
(.flame-chart .item-anchor):
2013-03-05 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed buildfix after r144787. Add missing USE(GRAPHICS_SURFACE) guards.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::setLayerState):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
(WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
2013-03-05 Geoffrey Garen <ggaren@apple.com>
Autoreleased cached pages slow down the PLT by 2%
https://bugs.webkit.org/show_bug.cgi?id=111522
Reviewed by Filip Pizlo.
Let's stop doing that.
2% PLT speedup.
* history/PageCache.cpp:
(WebCore::PageCache::remove):
2013-03-05 Hayato Ito <hayato@chromium.org>
[Shadow] Implements event re-targeting for Touch Events.
https://bugs.webkit.org/show_bug.cgi?id=107800
Reviewed by Dimitri Glazkov.
So far, Touch Events have been intentionally disabled in shadow
tree since it allows users to access internal nodes in shadow tree
by accessing Touch Event's information.
This patch re-targets all individual touch point's target in
TouchList (touches, targetTouches and changedTouches) owned by a Touch Event
before the Touch Event is dispatched so that we won't break an
upper boundary of shadow DOM.
Touch Events re-targeting is similar to that of Mouse Events
re-targeting. The difference is that a Touch Event can have more
than one related target because of multiple touches. We must
re-target all individual touch points which can be referred from
the Touch Event.
Now, Touch Events can be fired in shadow tree. I've removed the
existing limitation.
Test: fast/dom/shadow/touch-event-retargeting.html
* dom/EventContext.cpp:
(WebCore::EventContext::isTouchEventContext):
(WebCore):
(WebCore::TouchEventContext::TouchEventContext):
(WebCore::TouchEventContext::~TouchEventContext):
(WebCore::TouchEventContext::handleLocalEvents):
(WebCore::TouchEventContext::isTouchEventContext):
(WebCore::TouchEventContext::checkReachability): Used for assertion of reachability for each Touch point.
* dom/EventContext.h:
(WebCore):
(EventContext):
(TouchEventContext): Introduced to hold necessary information for re-targeting Touch event.
(WebCore::TouchEventContext::touches):
(WebCore::TouchEventContext::targetTouches):
(WebCore::TouchEventContext::changedTouches):
(WebCore::EventContext::isReachable):
* dom/EventRetargeter.cpp:
(WebCore::EventRetargeter::calculateEventPath):
(WebCore::EventRetargeter::adjustForTouchEvent):
(WebCore):
(WebCore::EventRetargeter::adjustTouchList):
(WebCore::EventRetargeter::adjustForRelatedTarget):
(WebCore::EventRetargeter::calculateAdjustedNodes): Updated so that this can be used for Touch point re-targeting.
(WebCore::EventRetargeter::buildRelatedNodeMap):
* dom/EventRetargeter.h:
(WebCore):
(EventRetargeter):
* dom/Node.cpp:
(WebCore::Node::dispatchEvent):
(WebCore):
(WebCore::Node::dispatchTouchEvent):
* dom/Node.h:
(WebCore):
(Node):
* dom/Touch.cpp:
(WebCore::Touch::Touch):
(WebCore):
(WebCore::Touch::cloneWithNewTarget):
* dom/Touch.h:
(Touch):
* dom/TouchEvent.cpp:
(WebCore::TouchEventDispatchMediator::create):
(WebCore):
(WebCore::TouchEventDispatchMediator::TouchEventDispatchMediator):
(WebCore::TouchEventDispatchMediator::event):
(WebCore::TouchEventDispatchMediator::dispatchEvent):
* dom/TouchEvent.h:
(TouchEvent):
(WebCore::TouchEvent::setTouches):
(WebCore::TouchEvent::setTargetTouches):
(WebCore::TouchEvent::setChangedTouches):
(TouchEventDispatchMediator):
(WebCore):
(WebCore::toTouchEvent):
* dom/TouchList.cpp:
(WebCore::TouchList::item):
(WebCore):
* dom/TouchList.h:
(TouchList):
* page/EventHandler.cpp:
(WebCore::EventHandler::hitTestResultInFrame): Removed the limitation. Adjusting is no longer done here.
(WebCore::EventHandler::handleTouchEvent):
2013-03-05 Hajime Morrita <morrita@google.com>
[Custom Elements][V8] Custom Element doesn't need its own WrapperTypeInfo
https://bugs.webkit.org/show_bug.cgi?id=111411
Reviewed by Kentaro Hara.
No new tests. No observable change yet.
This is a preparation for Bug 110436, where WebKit is going to
allow any HTML element to be a superclass of custom elements.
This change eliminates WrapperTypeInfo for custom element. Instead
of that, the wrapper of a custom element picks WrapperTypeInfo
from most descendant built-in HTML element. For example, think about
following hierarchy:
- ... <- HTMLElement <- HTMLDivElememnt <- ExistingCustomElement <- NewCustomElement
In this case, both ExistingCustomElement and NewCustomElement has
HTMLDivElememnt's type info. This is because HTMLDivElememnt is
the most descendant (or "the nearest") built-in HTML
element. (HTMLElement isn't the most descendant.
ExistingCustomElement isn't a built-in.)
Using such WrapperTypeInfos, created custom element wrappers can
get appropriate set of method and properties regardless of its
super-elements.
This change tells the prototype object of each built-in object
which WrapperTypeInfo the native backing wants:
HTMLDivElememnt.prototype knows V8HTMLDivElement::info for
example. The pointer to the type info is stored into an internal
field. On wrapper construction, createWrapper() walks up the
prototype chain and pick the first one.
* bindings/v8/V8DOMConfiguration.cpp:
(WebCore::V8DOMConfiguration::configureTemplate):
* bindings/v8/V8HTMLCustomElement.cpp:
(WebCore::findWrapperTypeOf):
(WebCore::V8HTMLCustomElement::createWrapper):
* bindings/v8/V8HTMLCustomElement.h:
* bindings/v8/V8PerContextData.cpp:
(WebCore::V8PerContextData::constructorForTypeSlowCase):
* bindings/v8/WrapperTypeInfo.h:
(WebCore):
2013-03-05 Aaron Colwell <acolwell@chromium.org>
Heap-use-after-free in WebCore::HTMLMediaElement::~HTMLMediaElement
https://bugs.webkit.org/show_bug.cgi?id=110623
Reviewed by Eric Seidel.
Test: http/tests/misc/delete-frame-during-readystatechange-with-gc-after-video-removal.html
* html/HTMLAudioElement.h:
(HTMLAudioElement):
* html/HTMLAudioElement.idl:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::hasPendingActivity):
* html/HTMLMediaElement.idl:
2013-03-05 Chris Fleizach <cfleizach@apple.com>
AX: Support aria-posinset/setsize
https://bugs.webkit.org/show_bug.cgi?id=109725
Reviewed by Tim Horton.
Expose aria-setsize and aria-posinset through accessibility.
Right now only the Mac platform exposes them.
Test: platform/mac/accessibility/aria-setsize-posinset.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::supportsARIASetSize):
(WebCore):
(WebCore::AccessibilityObject::supportsARIAPosInset):
(WebCore::AccessibilityObject::ariaSetSize):
(WebCore::AccessibilityObject::ariaPosInset):
* accessibility/AccessibilityObject.h:
(AccessibilityObject):
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
* html/HTMLAttributeNames.in:
2013-03-05 Peter Nelson <peter@peterdn.com>
[WinCairo] Support for cookies is incomplete
https://bugs.webkit.org/show_bug.cgi?id=110147
Expired and HttpOnly cookies no longer accessible from JavaScript.
Cookies set in JavaScript now have correct domain/path.
Reviewed by Brent Fulgham.
Test: http/tests/cookies/http-get-cookie-set-in-js.html
* platform/network/curl/CookieJarCurl.cpp:
(WebCore):
(WebCore::addMatchingCurlCookie):
(WebCore::getNetscapeCookieFormat):
(WebCore::setCookiesFromDOM):
(WebCore::cookieRequestHeaderFieldValue):
2013-03-05 Alec Flett <alecflett@chromium.org>
Fix mac clang build with long long
https://bugs.webkit.org/show_bug.cgi?id=111495
Unreviewed fix for mac build.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::IDBBackingStore):
2013-03-05 Alec Flett <alecflett@chromium.org>
Fix mac clang build with long long
https://bugs.webkit.org/show_bug.cgi?id=111495
Unreviewed fix for mac build.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::IDBBackingStore):
2013-03-05 Aaron Colwell <acolwell@chromium.org>
Add V8Document.h include when the V8 code generator creates a toV8(Document*) call.
https://bugs.webkit.org/show_bug.cgi?id=111486
Reviewed by Adam Barth.
No new tests. This doesn't change user visible behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNamedConstructor):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2013-03-05 Shawn Singh <shawnsingh@chromium.org>
Fix default background of a dragged image.
https://bugs.webkit.org/show_bug.cgi?id=110512
Reviewed by Tony Chang.
Transparent background color (particularly visible in the padding
of an element) was not being respected. The solution is to
initially fill the drag image with transparent instead of white,
so that any color background works correctly. This patch does not
affect Apple Mac or Win platforms, given that this part of the
code is #if guarded from those platforms.
Manual test added:
ManualTests/drag-background-with-padding.html
Infrastructure for retrieving the drag image for pixel testing
does not yet exist.
* page/Frame.cpp:
(WebCore::Frame::nodeImage):
2013-03-05 Emil A Eklund <eae@chromium.org>
ASSERTION FAILED: i < size(), UNKNOWN in WebCore::RenderTableSection::layout
https://bugs.webkit.org/show_bug.cgi?id=108838
Reviewed by Levi Weintraub.
Ensure that RenderTable::recalcSections is called when moving a
TableSection by calling setNeedsSectionRecalc in addChild for
TableSections.
Test: fullscreen/full-screen-table-section.html
* rendering/RenderTable.cpp:
(WebCore::RenderTable::addChild):
2013-03-05 Kenneth Russell <kbr@google.com>
Upgrade ANGLE to r1987
https://bugs.webkit.org/show_bug.cgi?id=111381
Reviewed by Dean Jackson.
Covered by existing tests. Ran WebGL conformance tests in Safari
to ensure correct operation of patch.
* platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
* platform/graphics/cairo/GraphicsContext3DCairo.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::GraphicsContext3D::GraphicsContext3D):
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3DPrivate::initializeANGLE):
Changed all ports to query for highp support in fragment
shaders and conditionally enable it in ANGLE shader translator.
2013-03-05 Alec Flett <alecflett@chromium.org>
IndexedDB: Add IDBBackingStoreTest
https://bugs.webkit.org/show_bug.cgi?id=111233
Reviewed by Adam Barth.
These are tweaks to make IDBBackingStore more easily testable.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::IDBBackingStore): Allow use without a backing store.
2013-03-04 James Robinson <jamesr@chromium.org>
[chromium] Move check for threaded compositing from WebCompositorSupport to Platform
https://bugs.webkit.org/show_bug.cgi?id=111386
Reviewed by Adrienne Walker.
This moves checks for whether threaded compositing is enabled from WebCompositorSupport
to Platform. In the case of Canvas2DLayerBridge, the check is moved completely out of
the class to make it easier for tests to specify the threaded configuration to use in the test.
* platform/graphics/chromium/Canvas2DLayerBridge.cpp:
(WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
* platform/graphics/chromium/Canvas2DLayerBridge.h:
(WebCore::Canvas2DLayerBridge::create):
(Canvas2DLayerBridge):
* platform/graphics/chromium/DrawingBufferChromium.cpp:
(WebCore::DrawingBuffer::DrawingBuffer):
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::createAcceleratedCanvas):
2013-03-05 Anders Carlsson <andersca@apple.com>
Split up the storage event dispatch functions further
https://bugs.webkit.org/show_bug.cgi?id=111482
Reviewed by Beth Dakin.
Add new functions for dispatching storage events to a set of frames.
* storage/StorageAreaImpl.cpp:
(WebCore::StorageAreaImpl::dispatchStorageEvent):
* storage/StorageEventDispatcher.cpp:
(WebCore::StorageEventDispatcher::dispatchSessionStorageEvents):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
(WebCore):
(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):
* storage/StorageEventDispatcher.h:
(WebCore):
(StorageEventDispatcher):
2013-03-05 Stephen Chenney <schenney@chromium.org>
Crash when ImageLoader deletes Element inside SVGImageElement
https://bugs.webkit.org/show_bug.cgi?id=111085
Reviewed by Abhishek Arya.
Elements with ImageLoader objects associated with them may have their
final reference held by the ImageLoader (to allow events to be sent
and handled). Any call on Element that causes the ImageLoader to
dispatch events might then result in the final deref of the Element
itself, thus leaving all the Element's "this" pointers up the stack
pointing to invalid memory.
This change puts the deref of the Element on a timer so that, if the
deref is called via a method on Element, the call stack will unwind
before the deref occurs.
Test: svg/custom/image-with-attr-change-after-delete-crash.html
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::ImageLoader): Initialize a timer
(WebCore::ImageLoader::updatedHasPendingEvent): Put deref of the
element on a oneShotTimer, with appropriate assertions and checks to
ensure we only ref/deref once.
(WebCore::ImageLoader::timerFired): Deref the element when the timer fires.
* loader/ImageLoader.h:
(ImageLoader): Define a timer for controlling deref of the element.
2013-03-05 Antoine Quint <graouts@apple.com>
Web Inspector: identify reflection layers in LayerTreeAgent
https://bugs.webkit.org/show_bug.cgi?id=111419
We add a new property "isReflection" to the Layer objects returned
to the front-end to indicate whether the layer was created to host
the reflection for an element. When this new property is true, the
"nodeId" property is set to point to the reflected element's node
id, since there is no node per-se directly associated with this layer.
We also change the "bounds" property to return absolute page coordinates
such that the front-end can use this information to highlight that
region in the page since metrics would otherwise be unavailable.
Reviewed by Dean Jackson.
Test: inspector-protocol/layers/layers-reflected-content.html
* inspector/Inspector.json:
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
2013-03-05 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Compile fix after r144024.
https://bugs.webkit.org/show_bug.cgi?id=111306
Reviewed by James Robinson.
* page/scrolling/ScrollingCoordinator.cpp: Added guard for USE(ACCELERATED_COMPOSITING).
* page/scrolling/ScrollingCoordinator.h: Added guard for USE(ACCELERATED_COMPOSITING).
2013-03-05 James Weatherall <wez@chromium.org>
keydown and keyup events have zero keycode for some numeric pad keys under Chromium on Linux
https://bugs.webkit.org/show_bug.cgi?id=85642
Add missing key mappings for GDK_KP_Begin, GDK_KP_Insert, GDK_KP_Delete and GDK_ISO_Level3_Shift.
Reviewed by Ojan Vafai.
* platform/chromium/KeyCodeConversionGtk.cpp:
(WebCore::windowsKeyCodeForKeyEvent):
2013-03-05 Alec Flett <alecflett@chromium.org>
IndexedDB: Properly refactor frontend/backend code by #includes
https://bugs.webkit.org/show_bug.cgi?id=110653
Reviewed by Dimitri Glazkov.
IndexedDB has a distinct backend and frontend, with well defined
*Interface / *Callbacks classes distinguishing them, respectively.
This makes sure that the frontend and backend do not include each
other and fixes build problems that occurred as a result.
Specifically this moves enums out of IDBCursor and IDBTransaction
into IndexedDB.h in a new WebCore::IndexedDB namespace.
No new tests, as this is just a refactor.
2013-03-05 Jeffrey Pfau <jpfau@apple.com>
Clear associated cache partitions when deleting origins' cache
https://bugs.webkit.org/show_bug.cgi?id=111383
Reviewed by Maciej Stachowiak.
Clear the cache partitions associated with the origin being cleared.
Not possible to test with current automated test tools, must be tested manually.
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::removeResourcesWithOrigin):
2013-03-04 Ojan Vafai <ojan@chromium.org>
Inline min/maxInstrinsicLogicalWidth functions
https://bugs.webkit.org/show_bug.cgi?id=111399
Reviewed by Tony Chang.
Turns out these functions don't need to be public and only
have one caller. This patch is in preparation for supporting
intrinsic widths on tables, which will need to pass in the
border and padding width as an argument.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::fillAvailableMeasure):
(WebCore::RenderBox::computeIntrinsicLogicalWidthUsing):
(WebCore::RenderBox::computeLogicalWidthInRegionUsing):
* rendering/RenderBox.h:
2013-03-05 Victor Carbune <vcarbune@chromium.org>
Cue line-height property shouldn't be inherited from the video element
https://bugs.webkit.org/show_bug.cgi?id=111262
Reviewed by Eric Carlson.
Test: media/track/track-cue-rendering-on-resize.html
* css/mediaControls.css:
(video::-webkit-media-text-track-container): Set the default font size
and family using the "font" property to also reset the line-height property.
2013-03-05 Joshua Bell <jsbell@chromium.org>
IndexedDB: Remove some unused binding code
https://bugs.webkit.org/show_bug.cgi?id=111463
Reviewed by Adam Barth.
IDBRequest got a custom V8 getter for |request| to help diagnose an issue, but the
root cause was found/fixed (http://wkbug.com/110916 and http://wkbug.com/110206) so
remove it. Also, IDBKey was marked ScriptWrappable but it is now explicitly converted
to a ScriptValue before it gets anywhere near the binding code, so remove that too.
Finally, createIDBKeyFromValue doesn't need to be exposed from IDBBindingUtilities.
No new tests - just removing dead code.
* Modules/indexeddb/IDBKey.h: No need for ScriptWrappable.
* Modules/indexeddb/IDBRequest.idl: Remove custom binding (root cause of bug found).
* WebCore.gypi: Ditto.
* bindings/js/IDBBindingUtilities.h: Don't expose internal createIDBKeyFromValue().
* bindings/v8/IDBBindingUtilities.h: Ditto.
* bindings/v8/custom/V8IDBRequestCustom.cpp: Removed.
2013-03-05 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r144798.
http://trac.webkit.org/changeset/144798
https://bugs.webkit.org/show_bug.cgi?id=111478
"broke chromium windows build" (Requested by dpranke on
#webkit).
* GNUmakefile.list.am:
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::Cursor::continueFunction):
(WebCore::objectStoreCursorOptions):
(WebCore::indexCursorOptions):
(WebCore::IDBBackingStore::openObjectStoreCursor):
(WebCore::IDBBackingStore::openObjectStoreKeyCursor):
(WebCore::IDBBackingStore::openIndexKeyCursor):
(WebCore::IDBBackingStore::openIndexCursor):
* Modules/indexeddb/IDBBackingStore.h:
(IDBBackingStore):
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::create):
(WebCore::IDBCursor::IDBCursor):
(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::stringToDirection):
(WebCore::IDBCursor::directionToString):
* Modules/indexeddb/IDBCursor.h:
(IDBCursor):
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
(WebCore::IDBCursorBackendImpl::deleteFunction):
(WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
* Modules/indexeddb/IDBCursorBackendImpl.h:
(WebCore::IDBCursorBackendImpl::create):
(WebCore::IDBCursorBackendImpl::value):
(IDBCursorBackendImpl):
* Modules/indexeddb/IDBCursorBackendInterface.h:
(WebCore):
* Modules/indexeddb/IDBCursorWithValue.cpp:
(WebCore::IDBCursorWithValue::create):
(WebCore::IDBCursorWithValue::IDBCursorWithValue):
* Modules/indexeddb/IDBCursorWithValue.h:
(IDBCursorWithValue):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBDatabase.h:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::GetOperation::create):
(WebCore::GetOperation::GetOperation):
(GetOperation):
(WebCore::OpenCursorOperation::create):
(WebCore::OpenCursorOperation::OpenCursorOperation):
(OpenCursorOperation):
(WebCore::IDBDatabaseBackendImpl::createObjectStore):
(WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
(WebCore::IDBDatabaseBackendImpl::createIndex):
(WebCore::IDBDatabaseBackendImpl::deleteIndex):
(WebCore::IDBDatabaseBackendImpl::get):
(WebCore::GetOperation::perform):
(WebCore::IDBDatabaseBackendImpl::put):
(WebCore::PutOperation::perform):
(WebCore::IDBDatabaseBackendImpl::setIndexKeys):
(WebCore::IDBDatabaseBackendImpl::openCursor):
(WebCore::OpenCursorOperation::perform):
(WebCore::CountOperation::perform):
(WebCore::IDBDatabaseBackendImpl::deleteRange):
(WebCore::DeleteRangeOperation::perform):
(WebCore::IDBDatabaseBackendImpl::clear):
(WebCore::IDBDatabaseBackendImpl::transactionStarted):
(WebCore::IDBDatabaseBackendImpl::transactionFinished):
(WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
(WebCore::IDBDatabaseBackendImpl::transactionFinishedAndCompleteFired):
(WebCore::IDBDatabaseBackendImpl::createTransaction):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
* Modules/indexeddb/IDBFactory.h:
* Modules/indexeddb/IDBIndex.cpp:
(WebCore):
(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::openKeyCursor):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore):
(WebCore::IDBObjectStore::openCursor):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::setCursorDetails):
(WebCore::IDBRequest::setResultCursor):
(WebCore::IDBRequest::onSuccess):
* Modules/indexeddb/IDBRequest.h:
(IDBRequest):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::create):
(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::stringToMode):
(WebCore::IDBTransaction::modeToString):
* Modules/indexeddb/IDBTransaction.h:
(WebCore::IDBTransaction::isReadOnly):
(WebCore::IDBTransaction::isVersionChange):
(IDBTransaction):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::create):
(WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(IDBTransactionBackendImpl):
(WebCore::IDBTransactionBackendImpl::mode):
* Modules/indexeddb/IDBTransactionCoordinator.cpp:
(WebCore::IDBTransactionCoordinator::processStartedTransactions):
(WebCore::IDBTransactionCoordinator::canRunTransaction):
* Modules/indexeddb/IndexedDB.h: Removed.
* Target.pri:
* WebCore.gypi:
2013-03-05 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Allow local and remote descriptions to be accessed after close
https://bugs.webkit.org/show_bug.cgi?id=111437
Reviewed by Adam Barth.
It's quite clear in the standard that the getters should still return the old value.
Also overhauling the state setters a bit to check if the new state is different.
Existing tests expanded to cover patch.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::localDescription):
(WebCore::RTCPeerConnection::remoteDescription):
(WebCore::RTCPeerConnection::changeSignalingState):
(WebCore::RTCPeerConnection::changeIceGatheringState):
(WebCore::RTCPeerConnection::changeIceConnectionState):
2013-03-05 Charlie Reis <creis@chromium.org>
Add FrameLoaderClient::didAccessInitialDocument
https://bugs.webkit.org/show_bug.cgi?id=107963
Notifies the FrameLoaderClient if another page accesses the
initial empty document of a main frame. In this case, it is
no longer safe to display the provisional URL.
Only takes effect for PLATFORM(CHROMIUM), since no other platforms
listen to the notification.
Reviewed by Adam Barth.
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::setSecurityToken):
Use default token for initial document.
* bindings/v8/custom/V8DOMWindowCustom.cpp:
Notify loader if initial document is accessed.
(WebCore::V8DOMWindow::namedSecurityCheck):
(WebCore::V8DOMWindow::indexedSecurityCheck):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::didAccessInitialDocument):
(WebCore):
* loader/FrameLoader.h:
(FrameLoader):
* loader/FrameLoaderClient.h:
(FrameLoaderClient):
(WebCore::FrameLoaderClient::didAccessInitialDocument):
2013-03-05 Otto Derek Cheung <otcheung@rim.com>
[BlackBerry] Fix assertion in CookieManager::getBackingStoreCookies
https://bugs.webkit.org/show_bug.cgi?id=111468
Reviewed by Rob Buis.
Internally reviewed by Konrad Piascik.
The assert in getBackingStoreCookies could be giving out false positives now
that we have our fixes for cookie loading in PR 286189. The cookie store could
be half loaded if the first cookie get/set call happens before the db is fully loaded.
A full webkit sync call to reload the database will cause the assert to be hit.
Safer to flush everything out and try again.
* platform/blackberry/CookieManager.cpp:
(WebCore::CookieManager::getBackingStoreCookies):
2013-03-05 Tony Gentilcore <tonyg@chromium.org>
CompactHTMLToken does not need an XSSInfo pointer
https://bugs.webkit.org/show_bug.cgi?id=111423
Reviewed by Eric Seidel.
The CompactHTMLToken should remain as small as possible because it is copied. This shrinks the size by one pointer
by moving a relatively uncommon attribute out to its own Vector.
No new tests because no new functionality.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::checkThatXSSInfosAreSafeToSendToAnotherThread):
(WebCore):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):
* html/parser/CompactHTMLToken.cpp:
(SameSizeAsCompactHTMLToken):
(WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
* html/parser/CompactHTMLToken.h:
(WebCore):
(CompactHTMLToken):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
* html/parser/HTMLDocumentParser.h:
(ParsedChunk):
* html/parser/XSSAuditorDelegate.h:
(XSSInfo):
(WebCore):
2013-03-05 Anders Carlsson <andersca@apple.com>
Split StorageEventDispatcher::dispatch into two functions
https://bugs.webkit.org/show_bug.cgi?id=111464
Reviewed by Beth Dakin.
Split StorageEventDispatcher::dispatch into dispatchSessionStorageEvent and
dispatchLocalStorageEvent and make StorageAreaImpl::dispatchStorageEvent call
the right function based on the storage area type.
* storage/StorageAreaImpl.cpp:
(WebCore::StorageAreaImpl::dispatchStorageEvent):
* storage/StorageEventDispatcher.cpp:
(WebCore::StorageEventDispatcher::dispatchSessionStorageEvent):
(WebCore):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEvent):
* storage/StorageEventDispatcher.h:
(StorageEventDispatcher):
2013-03-05 Brent Fulgham <bfulgham@webkit.org>
[WinCairo] Unreviewed build fix after r144024.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::scrollLayerForScrollableArea): Handle
case of not using Accelerated Compositing
(WebCore::ScrollingCoordinator::horizontalScrollbarLayerForScrollableArea):
(WebCore::ScrollingCoordinator::verticalScrollbarLayerForScrollableArea): Ditto.
2013-03-05 Alec Flett <alecflett@chromium.org>
IndexedDB: Properly refactor frontend/backend code by #includes
https://bugs.webkit.org/show_bug.cgi?id=110653
Reviewed by Dimitri Glazkov.
IndexedDB has a distinct backend and frontend, with well defined
*Interface / *Callbacks classes distinguishing them, respectively.
This makes sure that the frontend and backend do not include each
other and fixes build problems that occurred as a result.
Specifically this moves enums out of IDBCursor and IDBTransaction
into IndexedDB.h in a new WebCore::IndexedDB namespace.
No new tests, as this is just a refactor.
2013-03-05 James Robinson <jamesr@chromium.org>
ContainerNode::setActive should not sleep for 100ms on platforms that do not implement synchronous repaint(true) semantics
https://bugs.webkit.org/show_bug.cgi?id=87054
Reviewed by Darin Adler.
Adds a new ChromeClient function to query if the platform supports the immediate parameter
to the invalidation APIs and guards the synchronous repaint logic in ContainerNode::setActive()
with it.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::setActive):
* page/ChromeClient.h:
(WebCore::ChromeClient::supportsImmediateInvalidation):
2013-03-05 Anders Carlsson <andersca@apple.com>
Simplify storage event dispatch somewhat
https://bugs.webkit.org/show_bug.cgi?id=111461
Reviewed by Beth Dakin.
Add a StorageAreaImpl::dispatchStorageEvent to avoid replicating the calls to
StorageEventDispatcher::dispatch there times. This is in preparation for changing the
interface of StorageEventDispatcher so it can be used by WebKit2.
* storage/StorageAreaImpl.cpp:
(WebCore::StorageAreaImpl::setItem):
(WebCore::StorageAreaImpl::removeItem):
(WebCore::StorageAreaImpl::clear):
(WebCore::StorageAreaImpl::dispatchStorageEvent):
* storage/StorageAreaImpl.h:
Reindent.
2013-03-05 Tony Chang <tony@chromium.org>
Fix some crashes in render sliders
https://bugs.webkit.org/show_bug.cgi?id=111458
Reviewed by Ojan Vafai.
Fix some cases where we assumed the renderer is a renderBox.
Test: fast/forms/range/slider-inline-crash.html
* html/shadow/SliderThumbElement.cpp:
(WebCore::RenderSliderContainer::layout): Use renderBox() which will return 0 if the renderer is not a RenderBox.
(WebCore::SliderThumbElement::setPositionFromPoint): Bail out early if renderBox() is 0.
2013-03-04 Andrew Scherkus <scherkus@chromium.org>
REGRESSION(r142191): Fix closed caption buttons for ports still using the painting path.
https://bugs.webkit.org/show_bug.cgi?id=111109
Reviewed by Eric Carlson.
Covered by following tests:
media/track/track-cue-rendering-horizontal.html
media/track/track-cue-rendering-vertical.html
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paint):
* rendering/RenderTheme.h:
(WebCore::RenderTheme::paintMediaToggleClosedCaptionsButton):
2013-03-05 Gwang Yoon Hwang <ryumiel@company100.net>
Coordinated Graphics: CoordinatedGraphicsLayer makes CoordinatedGraphicsScene perform via CoordinatedGraphicsState.
https://bugs.webkit.org/show_bug.cgi?id=108294
Reviewed by Anders Carlsson.
CoordinatedLayerTreeHostProxy has too many IPC messages (e.g. SyncCanvas and
CreateTile), and there is a long function chain from CoordinatedGraphicsLayer to
CoordinatedGraphicsScene (4 classes).
If we want to add a new message, we need to add similar functions into 4 classes.
Now CoordinatedLayerTreeHost has only one IPC message for CoordinatedGraphicsLayer:
CommitCoordinatedGraphicsState.
CoordinatedGraphicsLayer makes CoordinatedGraphicsScene run as follows:
1. CoordinatedGraphicsLayer makes a CoordinatedGraphicsLayerState.
2. CoordinatedLayerTreeHost stores all LayerStates.
3. CoordinatedLayerTreeHost sends GraphicsState includes LayerStates to CoordinatedLayerTreeHostProxy
at the moment of flushing via CommitCoordinatedGraphicsState message.
4. CoordinatedGraphicsScene applies all state changes to layers.
There is one big behavior change. All states changes (e.g.
UpdateTiles, SetLayerChildren, and etc..) are performed at the same time, when
CoordinatedGraphicsScene::commitCoordinatedGraphicsState is called.
This patch is based on Dongsung Huang, and Noam's work in
https://bugs.webkit.org/show_bug.cgi?id=108294
No new tests, covered by existing tests.
* Target.pri:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::setPosition):
(WebCore::CoordinatedGraphicsLayer::setAnchorPoint):
(WebCore::CoordinatedGraphicsLayer::setSize):
(WebCore::CoordinatedGraphicsLayer::setTransform):
(WebCore::CoordinatedGraphicsLayer::setChildrenTransform):
(WebCore::CoordinatedGraphicsLayer::setPreserves3D):
(WebCore::CoordinatedGraphicsLayer::setMasksToBounds):
(WebCore::CoordinatedGraphicsLayer::setDrawsContent):
(WebCore::CoordinatedGraphicsLayer::setContentsVisible):
(WebCore::CoordinatedGraphicsLayer::setContentsOpaque):
(WebCore::CoordinatedGraphicsLayer::setBackfaceVisibility):
(WebCore::CoordinatedGraphicsLayer::setOpacity):
(WebCore::CoordinatedGraphicsLayer::setContentsRect):
(WebCore::CoordinatedGraphicsLayer::setFilters):
(WebCore::CoordinatedGraphicsLayer::setContentsToSolidColor):
(WebCore::CoordinatedGraphicsLayer::setShowDebugBorder):
(WebCore::CoordinatedGraphicsLayer::setShowRepaintCounter):
(WebCore::CoordinatedGraphicsLayer::setMaskLayer):
(WebCore::CoordinatedGraphicsLayer::setReplicatedByLayer):
(WebCore::CoordinatedGraphicsLayer::setFixedToViewport):
(WebCore::CoordinatedGraphicsLayer::syncChildren):
(WebCore::CoordinatedGraphicsLayer::syncFilters):
(WebCore::CoordinatedGraphicsLayer::syncImageBacking):
(WebCore::CoordinatedGraphicsLayer::syncLayerState):
(WebCore::CoordinatedGraphicsLayer::setDebugBorder):
(WebCore::CoordinatedGraphicsLayer::syncAnimations):
(WebCore::CoordinatedGraphicsLayer::syncCanvas):
(WebCore::CoordinatedGraphicsLayer::destroyCanvasIfNeeded):
(WebCore::CoordinatedGraphicsLayer::createCanvasIfNeeded):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
(WebCore::CoordinatedGraphicsLayer::resetLayerState):
(WebCore):
(WebCore::CoordinatedGraphicsLayer::releaseImageBackingIfNeeded):
(WebCore::CoordinatedGraphicsLayer::setRootLayer):
(WebCore::CoordinatedGraphicsLayer::tiledBackingStorePaintEnd):
(WebCore::CoordinatedGraphicsLayer::createTile):
(WebCore::CoordinatedGraphicsLayer::updateTile):
(WebCore::CoordinatedGraphicsLayer::removeTile):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
(CoordinatedGraphicsLayerClient):
(CoordinatedGraphicsLayer):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::createCanvasIfNeeded):
(WebCore::CoordinatedGraphicsScene::syncCanvasIfNeeded):
(WebCore::CoordinatedGraphicsScene::destroyCanvasIfNeeded):
(WebCore::CoordinatedGraphicsScene::setLayerRepaintCountIfNeeded):
(WebCore::CoordinatedGraphicsScene::setLayerChildrenIfNeeded):
(WebCore::CoordinatedGraphicsScene::setLayerFiltersIfNeeded):
(WebCore::CoordinatedGraphicsScene::setLayerState):
(WebCore::CoordinatedGraphicsScene::deleteLayer):
(WebCore::CoordinatedGraphicsScene::createTilesIfNeeded):
(WebCore::CoordinatedGraphicsScene::removeTilesIfNeeded):
(WebCore::CoordinatedGraphicsScene::updateTilesIfNeeded):
(WebCore::CoordinatedGraphicsScene::assignImageBackingToLayer):
(WebCore::CoordinatedGraphicsScene::commitSceneState):
(WebCore::CoordinatedGraphicsScene::setLayerAnimationsIfNeeded):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
(WebCore):
(CoordinatedGraphicsScene):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h: Added.
(WebCore):
(TileUpdateInfo):
(TileCreationInfo):
(WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
(CoordinatedGraphicsLayerState):
(CoordinatedGraphicsState):
* platform/graphics/texmap/coordinated/CoordinatedImageBacking.h:
* platform/graphics/texmap/coordinated/CoordinatedLayerInfo.h: Removed.
* platform/graphics/texmap/coordinated/SurfaceUpdateInfo.h:
2013-03-05 Roger Fong <roger_fong@apple.com>
Unreviewed. AppleWin VS2010 build fix.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* rendering/RenderingAllInOne.cpp:
2013-03-05 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Exclusions] shape-outside on floats for polygon shapes
https://bugs.webkit.org/show_bug.cgi?id=98676
Reviewed by David Hyatt.
Implement support for polygonal shape-outside on floats. The basic
tack taken here is to keep using the bounding box of the shape to
position the float, but to compute the offset (caused by the shape)
from the bounding box for each line when creating and positioning
other inline content.
Test: fast/exclusions/shape-outside-floats/shape-outside-floats-simple-polygon.html
* rendering/ExclusionShapeInfo.cpp:
(WebCore):
(WebCore::::computedShape): Add new template parameter.
(WebCore::::logicalTopOffset): Add new template parameter.
(WebCore::::computeSegmentsForLine): Move here from
ExclusionShapeInsideInfo, since ExclusionShapeOutsideInfo needs it
as well. Make virtual since there is slightly different behavior
between each class even though the vast majority of the code is
common.
* rendering/ExclusionShapeInfo.h:
(WebCore):
(WebCore::ExclusionShapeInfo::~ExclusionShapeInfo): Since
computeSegmentsForLine is virtual, the destructor must be virtual
as well.
(ExclusionShapeInfo): Add new data members to support
computeSegmentsForLine.
(WebCore::ExclusionShapeInfo::shapeLogicalRight): Fix bug, the logical
right is based off of maxX, not y. (it's a logical bounding box!)
(WebCore::ExclusionShapeInfo::logicalLineTop): Moved from
ExclusionShapeInsideInfo for use by computeSegmentsForLine and
lineOverlapsShapeBounds.
(WebCore::ExclusionShapeInfo::logicalLineBottom): Moved from
ExclusionShapeInsideInfo for use by computeSegmentsForLine and
lineOverlapsShapeBounds.
(WebCore::ExclusionShapeInfo::lineOverlapsShapeBounds): Moved from
ExclusionShapeInsideInfo for use by computeSegmentsForLine.
* rendering/ExclusionShapeInsideInfo.cpp: Moved common code from
computeSegmentsForLine into ExclusionShapeInfo.
* rendering/ExclusionShapeInsideInfo.h:
(WebCore): Moved some methods to ExclusionShapeInfo.
(ExclusionShapeInsideInfo): Update for new template parameter.
(WebCore::ExclusionShapeInsideInfo::compyteSegmentsForLine): Override
superclass method to clear the segment ranges. Segement ranges
aren't used by shape outside, and have some complex dependencies
that make it very hard to try and move up into ExclusionShapeInfo.
(WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo): Update
for new template parameter.
* rendering/ExclusionShapeOutsideInfo.cpp:
(WebCore::ExclusionShapeOutsideInfo::isEnabledFor): Add polygons as a
supported shape.
(WebCore::ExclusionShapeOutsideInfo::computeSegmentsForLine): Override
superclass method to not recompute if it isn't needed (this isn't
straightfoward for shape inside, which is why it isn't common),
and to save the left and right offsets caused by the shape
outside, since that's all that is needed to properly do layout in
the case of floats.
* rendering/ExclusionShapeOutsideInfo.h:
(WebCore::ExclusionShapeOutsideInfo::shapeLogicalOffset): Reformat to
be on a single line, like most other methods of it's type in
WebKit headers.
(ExclusionShapeOutsideInfo): Update for new template parameter.
(WebCore::ExclusionShapeOutsideInfo::logicalLeftOffsetForLine):
Accessor method to get the left offset between the shape and the
shape's bounding box.
(WebCore::ExclusionShapeOutsideInfo::logicalRightOffsetForLine):
Accessor method to get the left offset between the shape and the
shape's bounding box.
(WebCore::ExclusionShapeOutsideInfo::ExclusionShapeOutsideInfo):
Update for new template parameter.
* rendering/RenderBlock.cpp:
(WebCore::::collectIfNeeded): Save the last float encountered so that
the shape outside offset can be accounted for.
(WebCore::RenderBlock::logicalLeftOffsetForLine): Account for the
shape outside offset on the outermost float.
(WebCore::RenderBlock::logicalRightOffsetForLine): Account for the
shape outside offset on the outermost float.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::FloatIntervalSearchAdapter::FloatIntervalSearchAdapter):
Initialize the lastFloat member.
(WebCore::RenderBlock::FloatIntervalSearchAdapter::lastFloat): Get the
last float encountered.
(FloatIntervalSearchAdapter): Add a pointer to the last float
encountered. Note that the variable is mutable because
collectIfNeeded is declared as a const method even though it isn't
(it uses loopholes to update m_offset and m_heightRemaining).
Instead of trying to come up with a hack to stick with the
loopholes, I decided to be explicit about it.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Take
into account the offset from any polygonal shape outside.
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Add a FIXME
because the current code will not work properly with stacked
floats that have polygonal shape outside.
2013-03-04 David Hyatt <hyatt@apple.com>
[New Multicolumn] Autogenerate regions for columns.
https://bugs.webkit.org/show_bug.cgi?id=111363
Reviewed by Dean Jackson.
In CSS Regions, we lay out the regions first, and then
we put the flow thread into the regions. This model doesn't
really work for multicolumn layout, which needs to be able
to auto-generate new regions lazily in response to the flow
thread asking for regions at particular offsets.
With the multi-column model, where the regions can't just occur
anywhere, its ok not to lay them out before the flow thread, as
long as we have at least given them the correct size.
This patch changes the layout algorithm for columns to:
(1) Size any existing regions (without worrying about placement).
(2) Lay out the flow thread (generating and sizing regions lazily
that need to be created).
(3) Lay out the regions (to give them correct placement and to
compute overflow correctly for the multi-column block that contains
the regions).
There are no new tests, since there are no behavioral changes. This
is just groundwork for being able to add new sets in response to
spans, balancing, and nested pagination contexts.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::determineLogicalLeftPositionForChild):
(WebCore::RenderBlock::layoutBlockChild):
* rendering/RenderBlock.h:
(RenderBlock):
Since we want to be able to call determineLogicalLeftPositionForChild
to place the flow thread properly, and we don't want to apply a layout
delta (flow threads repaint themselves), we parameterize the method
here so that it can be called without applying a layout delta.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::addRegionToThread):
(WebCore::RenderFlowThread::removeRegionFromThread):
These methods are only used by RenderMultiColumnFlowThread, since
RenderNamedFlowThread overrides them. Remove the code that invalidates
the flow threads region set as regions come and go, since that is now
going to be expected with auto-generation.
(WebCore::RenderFlowThread::validateRegions):
Refactor the code in RenderFlowThread::layout that validates the regions
into its own method, so that we can re-validate regions at any time
after generating new ones.
(WebCore::RenderFlowThread::layout):
Changed to move the region validation code into its own function that is
now called from here.
(WebCore::RenderFlowThread::updateLogicalWidth):
Don't assert if a region set needs layout.
(WebCore::RenderFlowThread::computeLogicalHeight):
Ditto. Don't assert if a region set needs layout. That's expected now.
(WebCore::RenderFlowThread::regionAtBlockOffset):
Add code to regionAtBlockOffset to auto-generate regions up to
the offset. This ensures the region that is being asked for
exists.
(WebCore::RenderFlowThread::pageLogicalTopForOffset):
(WebCore::RenderFlowThread::pageLogicalWidthForOffset):
(WebCore::RenderFlowThread::pageLogicalHeightForOffset):
(WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
These functions are no longer const, since the act of asking for
pagination offsets can cause us to generate new regions.
(WebCore::RenderFlowThread::mapFromFlowToRegion):
Modified to turn auto-generation off, since this is not really
a "layout-time" function.
(WebCore::RenderFlowThread::logicalWidthChangedInRegions):
Modified to not assert if a region set needs layout, since that is
expected now.
* rendering/RenderFlowThread.h:
Changes to remove const from the methods that can trigger region
auto-generation.
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::RenderMultiColumnBlock::styleDidChange):
Make sure to propagate style changes down into the regions. I don't know
of any correctness bugs around this, but I figured I'd be thorough.
(WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
We no longer build a column set aggressively. We wait for the flow thread
to ask us for a region at a particular offset, and only then do we
build the set.
(WebCore::RenderMultiColumnBlock::addChild):
Now that we lay out the flow thread as a special excluded child, we don't
care about the ordering of it relative to the region children.
(WebCore::RenderMultiColumnBlock::layoutSpecialExcludedChild):
We now lay out the flow thread as a special excluded child (like the legend
of a fieldset).
* rendering/RenderMultiColumnBlock.h:
(RenderMultiColumnBlock):
Add new overrides like layoutSpecialExcludedChild.
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::initialLogicalWidth):
Set the flow thread to the initial column width even when no regions exist
yet. This way we ensure the width is right even when we don't have any
regions yet.
(WebCore::RenderMultiColumnFlowThread::autoGenerateRegionsToBlockOffset):
This method handles autogenerating the new region for a given offset.
Right now it's simplistic, since we only have one column set. This method
will be enhanced in future patches when we start supporting multiple column
sets.
* rendering/RenderMultiColumnFlowThread.h:
(RenderMultiColumnFlowThread):
Adding new method declarations like autoGenerateRegionsToBlockOffset.
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::updateLogicalWidth):
Since regions lay out after flow threads, we don't need to make
setFlowThreadPortionRect virtual any longer. We can just get our column set's
width correct immediately. This is the same logic, just moved into updateLogicalWidth().
* rendering/RenderMultiColumnSet.h:
Remove setFlowThreadPortionRect override, since the function can just be simple
and non-virtual in RenderRegion now.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::layoutBlock):
Don't ever invalidate region sets in response to our size changing during layout. Since
our size is always determined outside of layout now, we don't need to do any of
these checks.
* rendering/RenderRegion.h:
(WebCore::RenderRegion::setFlowThreadPortionRect):
Changed to be non-virtual now that RenderMultiColumnSet doesn't need to override.
2013-03-04 Alexey Proskuryakov <ap@apple.com>
Make AsyncFileReader work without ScriptExecutionContext
https://bugs.webkit.org/show_bug.cgi?id=111376
Reviewed by Anders Carlsson.
* WebCore.xcodeproj/project.pbxproj: Added MainThreadTask.h.
* dom/ScriptExecutionContext.cpp:
* dom/ScriptExecutionContext.h:
Removed fileThread(). Creating a thread for every context that acesses files appears
wasteful and unnecessary.
* fileapi/AsyncFileStream.h:
* fileapi/AsyncFileStream.cpp:
(WebCore::createFileThread): FileThread is now a singleton.
(WebCore::fileThread): Ditto.
(WebCore::AsyncFileStream::AsyncFileStream):
(WebCore::AsyncFileStream::create):
(WebCore::didStart):
(WebCore::AsyncFileStream::startOnFileThread):
(WebCore::AsyncFileStream::stop):
(WebCore::derefProxyOnMainThread):
(WebCore::AsyncFileStream::stopOnFileThread):
(WebCore::didGetSize):
(WebCore::AsyncFileStream::getSizeOnFileThread):
(WebCore::didOpen):
(WebCore::AsyncFileStream::openForReadOnFileThread):
(WebCore::AsyncFileStream::openForWriteOnFileThread):
(WebCore::didRead):
(WebCore::AsyncFileStream::readOnFileThread):
(WebCore::didWrite):
(WebCore::AsyncFileStream::writeOnFileThread):
(WebCore::didTruncate):
(WebCore::AsyncFileStream::truncateOnFileThread):
Use callOnMainThread() instead of posting messages through a context. We never used
other threads, and don't plan to.
* loader/ResourceLoader.cpp:
* loader/ResourceLoader.h:
We no longer need this pseudo-client call to create an AsyncFileStream, now that
we don't need to get a ScriptExecutionContext somewhere.
* platform/MainThreadTask.h: Added. This implements callOnMainThread with multiple
strongly typed arguments. Closely based on CrossThreadTask.h.
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::BlobResourceHandle): Create AsyncFileStream directly.
* platform/network/ResourceHandleClient.h: Removed createAsyncFileStream().
2013-03-05 Jessie Berlin <jberlin@apple.com>
Update the localizable strings file.
Rubber-stamped by Anders Carlsson.
* English.lproj/Localizable.strings:
2013-03-05 Chris Fleizach <cfleizach@apple.com>
AX: aria-label does not override text content on iOS
https://bugs.webkit.org/show_bug.cgi?id=111222
Reviewed by David Kilzer.
Make iOS use the same text alternative computation that Mac is using. The main difference
is that description and title need to be concatenated, because iOS doesn't have two attributes
to return those values.
Test: platform/iphone-simulator/accessibility/aria-label-with-internal-text.html
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
(-[WebAccessibilityObjectWrapper accessibilityLabel]):
(-[WebAccessibilityObjectWrapper accessibilityHint]):
* accessibility/mac/WebAccessibilityObjectWrapperBase.h:
2013-03-05 David Kilzer <ddkilzer@apple.com>
BUILD FIX (r144698): Only enable SPEECH_SYNTHESIS for Mac
<http://webkit.org/b/106742>
Fixes the following build failures:
Undefined symbols for architecture i386:
"__ZTVN7WebCore25PlatformSpeechSynthesizerE", referenced from:
__ZN7WebCore25PlatformSpeechSynthesizerC2EPNS_31PlatformSpeechSynthesizerClientE in PlatformSpeechSynthesizer.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"__ZN7WebCore25PlatformSpeechSynthesizer19initializeVoiceListEv", referenced from:
__ZN7WebCore25PlatformSpeechSynthesizerC2EPNS_31PlatformSpeechSynthesizerClientE in PlatformSpeechSynthesizer.o
ld: symbol(s) not found for architecture i386
* Configurations/FeatureDefines.xcconfig:
- Only set ENABLE_SPEECH_SYNTHESIS for the macosx platform.
2013-03-05 Dmitry Zvorygin <zvorygin@chromium.org>
Web Inspector: registered new MIME type application/font-woff for WOFF fonts.
https://bugs.webkit.org/show_bug.cgi?id=111418
The WOFF MIME Type was formally registered as application/font-woff (FINALLY):
http://www.iana.org/assignments/media-types/application/font-woff
Reviewed by Pavel Feldman.
* inspector/front-end/NetworkManager.js:
(WebInspector.NetworkManager):
(WebInspector.NetworkDispatcher.prototype._updateNetworkRequestWithResponse):
2013-03-05 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Add parsing for grid-{end|after}
https://bugs.webkit.org/show_bug.cgi?id=111372
Reviewed by Tony Chang.
Test: fast/css-grid-layout/grid-item-end-after-get-set.html
This change adds the proper support for grid-{end|after}. It doesn't update
grid-{row|column} to be a shorthand for both grid-{before|start} and grid-{after|end}
though.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
Added the new properties to our known properties. Also added
support for getComputedStyle.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
Added parsing for the new properties.
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
The new properties are not inherited.
* css/CSSPropertyNames.in:
Added the new properties.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
Added code to handle applying them to our style.
* rendering/style/RenderStyle.h:
* rendering/style/StyleGridItemData.cpp:
(WebCore::StyleGridItemData::StyleGridItemData):
* rendering/style/StyleGridItemData.h:
(WebCore::StyleGridItemData::operator==):
(StyleGridItemData):
Updated our representation to store the new properties.
2013-03-05 Andrey Kosyakov <caseq@chromium.org>
Unreviewed follow-up to r144756, fix broken inspector-less build.
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::willWriteHTML):
2013-03-05 Mark Lam <mark.lam@apple.com>
Improve robustness of WebSQL quota management.
https://bugs.webkit.org/show_bug.cgi?id=110600.
Reviewed by Geoffrey Garen.
1. Introduced the OriginLock for synchronizing write access to the
database origin directory. This allows us to more accurately
compute the disk usage.
The OriginLock uses a mutex to provide mutual exclusion between
threads and a file lock for mutual exclusion between processes.
The file lock part is conditional on USE(FILE_LOCK).
The mutex mutual exclusion also serves to ensure that only 1 thread
can write to a sqlite database at one time.
2. Change the SQLTransactionCoordinator to only allow one write
transaction to an origin instead of one write transaction per
database. This is needed in order to accurately compute the
disk usage. It is also necessary so that the OriginLock does not
deadlock itself (as would be the case if concurrent write transactions
to different databases in the same origin are allowed).
3. Fix DatabaseTracker::getMaxSizeForDatabase() to check for when
disk usage may exceed the quota, and ensure that we will return
an appropriate max database size.
Disk usage can exceed the usage if it is already near the quota limit
but have not exceeded it yet. If a new database is opened in that
origin, it may bump the usage above the quota, but should not
continually repeat this. Subsequent attempts to open a database
will find that the quota is already exhausted and fail.
There is still a race condition pertaining to the tracker database
getting out of sync that may still enable runaway growth in the
database sizes. That issue only manifest in a multi-process
environment, and will be fixed in another changeset.
4. Fixed a bug in SQLStatement to check if the errorCallback exists
before invoking it.
No new layout tests. A quota-test.html was attached to bugzilla for manual
testing of multi-tab concurrent consumption of storage resource, and also
to test handling situations when the user deletes the database files while
the script is still using the database.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
(WebCore::DatabaseTracker::originLockFor):
(WebCore::DatabaseTracker::deleteOriginLockFor):
(WebCore::DatabaseTracker::deleteOrigin):
* Modules/webdatabase/DatabaseTracker.h:
* Modules/webdatabase/OriginLock.cpp: Added.
(WebCore::OriginLock::lockFileNameForPath):
(WebCore::OriginLock::OriginLock):
(WebCore::OriginLock::~OriginLock):
(WebCore::OriginLock::lock):
(WebCore::OriginLock::unlock):
* Modules/webdatabase/OriginLock.h: Added.
* Modules/webdatabase/SQLStatement.cpp:
(WebCore::SQLStatement::performCallback):
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::doCleanup):
(WebCore::SQLTransactionBackend::computeNextStateAndCleanupIfNeeded):
(WebCore::SQLTransactionBackend::openTransactionAndPreflight):
(WebCore::SQLTransactionBackend::postflightAndCommit):
(WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
(WebCore::SQLTransactionBackend::acquireOriginLock):
(WebCore::SQLTransactionBackend::releaseOriginLockIfNeeded):
* Modules/webdatabase/SQLTransactionBackend.h:
(SQLTransactionBackend):
* Modules/webdatabase/SQLTransactionCoordinator.cpp:
(WebCore::getDatabaseIdentifier):
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* config.h:
* platform/FileSystem.h:
* platform/posix/FileSystemPOSIX.cpp:
(WebCore::lockFile):
(WebCore::unlockFile):
2013-03-05 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: move PopoverContentHelper from TimelinePresentationModel.js to Popover.js.
https://bugs.webkit.org/show_bug.cgi?id=111431
Reviewed by Yury Semikhatsky.
class WebInspector.TimelinePresentationModel.PopoverContentHelper was renamed to WebInspector.PopoverContentHelper.
Style names were changed accordingly.
* inspector/front-end/Popover.js:
(WebInspector.PopoverContentHelper):
(WebInspector.PopoverContentHelper.prototype.contentTable):
(WebInspector.PopoverContentHelper.prototype._createCell):
(WebInspector.PopoverContentHelper.prototype.appendTextRow):
(WebInspector.PopoverContentHelper.prototype.appendElementRow):
(WebInspector.PopoverContentHelper.prototype.appendStackTrace):
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.prototype.generateMainThreadBarPopupContent):
(WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
(WebInspector.TimelinePresentationModel.generatePopupContentForFrame):
(WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics):
* inspector/front-end/popover.css:
(.popover-details):
(.popover-function-name):
(.popover-stacktrace-title):
(.popover-details-row-title):
(.popover-details-row-data):
(.popover-details-title):
* inspector/front-end/timelinePanel.css:
2013-03-05 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: remove "Live native memory chart" experiment
https://bugs.webkit.org/show_bug.cgi?id=111432
Reviewed by Alexander Pavlov.
Removed support for live native memory chart.
* English.lproj/localizedStrings.js:
* inspector/front-end/NativeMemorySnapshotView.js:
* inspector/front-end/ProfileLauncherView.js:
(WebInspector.ProfileLauncherView):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel):
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/nativeMemoryProfiler.css:
2013-03-05 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: remove length parameter from Parse HTML timeline event
https://bugs.webkit.org/show_bug.cgi?id=111421
Reviewed by Yury Semikhatsky.
- remove length parameter in all instrumentation methods used to emit ParseHTML timeline event;
- drive-by style fixes.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::pumpPendingSpeculations):
(WebCore::HTMLDocumentParser::pumpTokenizer):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willWriteHTMLImpl):
(WebCore::InspectorInstrumentation::didWriteHTMLImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::willWriteHTML):
(WebCore::InspectorInstrumentation::didWriteHTML):
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::willWriteHTML):
(WebCore::InspectorTimelineAgent::didWriteHTML):
* inspector/InspectorTimelineAgent.h:
(InspectorTimelineAgent):
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createParseHTMLData):
* inspector/TimelineRecordFactory.h:
(TimelineRecordFactory):
2013-03-05 Alexei Filippov <alph@chromium.org>
Web Inspector: allow each profiler panel to have own landing page
https://bugs.webkit.org/show_bug.cgi?id=111298
Reviewed by Yury Semikhatsky.
Refactor profiler landing page to allow different profiler panels to have own landing pages.
- MultiProfileLauncherView is inherited from ProfileLauncherView
- Native memory distribution profiler has got a custom page.
No new tests: code refactoring.
* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapSnapshotView.prototype.get profile):
(WebInspector.HeapSnapshotView.prototype.get baseProfile):
(WebInspector.HeapSnapshotView.prototype._profiles):
* inspector/front-end/NativeMemorySnapshotView.js:
* inspector/front-end/ProfileLauncherView.js:
(WebInspector.ProfileLauncherView):
(WebInspector.ProfileLauncherView.prototype.addProfileType):
(WebInspector.ProfileLauncherView.prototype._controlButtonClicked):
(WebInspector.ProfileLauncherView.prototype._updateControls):
(WebInspector.ProfileLauncherView.prototype.profileStarted):
(WebInspector.ProfileLauncherView.prototype.profileFinished):
(WebInspector.MultiProfileLauncherView):
(WebInspector.MultiProfileLauncherView.prototype.addProfileType):
(WebInspector.MultiProfileLauncherView.prototype._profileTypeChanged):
(WebInspector.NativeProfileLauncherView):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel):
(WebInspector.ProfilesPanel.prototype._createLauncherView):
(WebInspector.CPUProfilerPanel):
(WebInspector.CSSSelectorProfilerPanel):
(WebInspector.HeapProfilerPanel):
(WebInspector.CanvasProfilerPanel):
(WebInspector.MemoryChartProfilerPanel):
(WebInspector.MemoryChartProfilerPanel.prototype._createLauncherView):
(WebInspector.NativeMemoryProfilerPanel):
* inspector/front-end/profilesPanel.css:
(.panel-enabler-view.profile-launcher-view button:not(.status-bar-item)):
2013-03-05 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Clarify some StylesSidebarPanel and CSSMetadata JSDocs.
https://bugs.webkit.org/show_bug.cgi?id=111427
Reviewed by Alexander Pavlov.
Goal: reflect in JSDoc that non-null array is passed to completionsReady callback.
* inspector/front-end/CSSMetadata.js:
Added JSDocs, avoided possible NPEs.
* inspector/front-end/StylesSidebarPane.js:
Fixed JSDocs, removed unused assignment.
2013-03-05 David Kilzer <ddkilzer@apple.com>
BUILD FIX (r144727): Change type of columnRange and rowRange to pair<unsigned, unsigned>
<http://webkit.org/b/110050>
Fixes the following build failures:
Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:741:30: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
tableCell->rowIndexRange(rowRange);
^~~~~~~~
In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
Source/WebCore/accessibility/AccessibilityTableCell.h:47:58: note: passing argument to parameter 'rowRange' here
virtual void rowIndexRange(pair<unsigned, unsigned>& rowRange);
^
Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:742:33: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
tableCell->columnIndexRange(columnRange);
^~~~~~~~~~~
In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
Source/WebCore/accessibility/AccessibilityTableCell.h:49:61: note: passing argument to parameter 'columnRange' here
virtual void columnIndexRange(pair<unsigned, unsigned>& columnRange);
^
Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:804:30: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
tableCell->rowIndexRange(rowRange);
^~~~~~~~
In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
Source/WebCore/accessibility/AccessibilityTableCell.h:47:58: note: passing argument to parameter 'rowRange' here
virtual void rowIndexRange(pair<unsigned, unsigned>& rowRange);
^
Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:818:33: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
tableCell->columnIndexRange(columnRange);
^~~~~~~~~~~
In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
Source/WebCore/accessibility/AccessibilityTableCell.h:49:61: note: passing argument to parameter 'columnRange' here
virtual void columnIndexRange(pair<unsigned, unsigned>& columnRange);
^
4 errors generated.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):
(-[WebAccessibilityObjectWrapper accessibilityRowRange]):
(-[WebAccessibilityObjectWrapper accessibilityColumnRange]):
2013-03-04 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: [refactoring] set frame identifiers in timeline records early, do not keep them in event stack
https://bugs.webkit.org/show_bug.cgi?id=111345
Reviewed by Pavel Feldman.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::pushGCEventRecords):
(WebCore::InspectorTimelineAgent::addRecordToTimeline):
(WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
(WebCore::InspectorTimelineAgent::setFrameIdentifier):
(WebCore):
(WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
(WebCore::InspectorTimelineAgent::appendRecord):
(WebCore::InspectorTimelineAgent::pushCurrentRecord):
(WebCore::InspectorTimelineAgent::commitFrameRecord):
* inspector/InspectorTimelineAgent.h:
(WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
(TimelineRecordEntry):
(InspectorTimelineAgent):
2013-03-05 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Add the getStreamById method on RTCPeerConnection
https://bugs.webkit.org/show_bug.cgi?id=111311
Reviewed by Adam Barth.
Adding the missing method on RTCPeerConnection defined here:
http://dev.w3.org/2011/webrtc/editor/webrtc.html#widl-RTCPeerConnection-getStreamById-MediaStream-DOMString-streamId
Existing tests have been extended to cover patch.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::getStreamById):
(WebCore):
* Modules/mediastream/RTCPeerConnection.h:
(RTCPeerConnection):
* Modules/mediastream/RTCPeerConnection.idl:
* platform/chromium/support/WebMediaStream.cpp:
(WebKit::WebMediaStream::initialize):
(WebKit):
* platform/mediastream/MediaStreamSource.cpp:
(WebCore::MediaStreamSource::setReadyState):
2013-03-05 Antoine Quint <graouts@apple.com>
Web Inspector: allow retrieval of composited layers in a given DOM subtree
https://bugs.webkit.org/show_bug.cgi?id=111312
Introduce the LayerTreeAgent.layersForNode(node) method allowing the front-end
to gather all composited layers associated with nodes in the subtree of which
the provided node is the root.
In order to gather the layers in the subtree, we first traverse the node's
renderer's RenderObject hierarchy and whenever we encounter a RenderObject
that has a RenderLayer, we then traverse that renderLayer's RenderLayer
hierarchy. This allows for a quick path through the relevant objects we're
gathering.
Layers gathered will push the node to which they're associated, allowing a
nodeId for this layer to be listed in the Layer object sent to the front-end.
It is crucial to be able to provide a nodeId as well as a layerId for a Layer
object in order to be able to correctly assess mutations in the layer tree.
For instance, it is expected that a node's layer be replaced by a new layer
to represent a slightly different rendering of its content, but the front-end
should be able to represent this layer as an object for which only certain
attributes have changed (like the "paintCount" property).
Layer objects also indicate whether they're associated to a node hosted in a
shadow tree (the optional "isInShadowTree" property) in order for the front-end
to be able to only show this layer if the option to show nodes hosted in shadow
tree is enabled.
Finally, since we're only gathering composited layers, we're removing the
"isLayerComposited" property and removing the optional flag on the "paintCount",
"memory" and "compositedBounds" properties.
Reviewed by Simon Fraser.
Test: inspector-protocol/layers/layers-for-node.html
* inspector/Inspector.json:
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::layersForNode):
(WebCore):
(WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderObjectHierarchy):
(WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderLayerHierarchy):
(WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
(WebCore::InspectorLayerTreeAgent::idForNode):
* inspector/InspectorLayerTreeAgent.h:
(InspectorLayerTreeAgent):
2013-03-04 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: use timestamps consistent with rest of Timeline in WebSocket events.
https://bugs.webkit.org/show_bug.cgi?id=111344
- create web socket related records in a manner consistent with the rest of timeline.
Reviewed by Pavel Feldman.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::didCreateWebSocket):
(WebCore::InspectorTimelineAgent::willSendWebSocketHandshakeRequest):
(WebCore::InspectorTimelineAgent::didReceiveWebSocketHandshakeResponse):
(WebCore::InspectorTimelineAgent::didDestroyWebSocket):
* inspector/InspectorTimelineAgent.h:
(InspectorTimelineAgent):
2013-03-05 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Crash when MathML used in CSS Regions
https://bugs.webkit.org/show_bug.cgi?id=110686
Reviewed by David Hyatt.
The MathML blocks trigger a children layout when computing the preferred widths. This happens to determine the preferred
logical heights of the children. When the layout reaches the line boxes computation the preferred width of the containing block
is requested. Because it wasn't computed, the layout of the children is started again to determine the preferred logical heights.
This causes an infinite recursion and triggers a stack overflow.
The patch introduces a new RAII utility class that disables fragmentation when the constructor is called and restores it
on the destructor. This class is used when computing the preferred height for the children of a MathML block.
Test: fast/regions/mathml-crash.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setFlowThreadStateIncludingDescendants): Do not cross RenderFlowThread boundaries when updating the flow thread
state flag. The innermost flow threads need to manage their descendants flag values.
* rendering/RenderView.cpp:
(WebCore::FragmentationDisabler::FragmentationDisabler):
(WebCore):
(WebCore::FragmentationDisabler::~FragmentationDisabler):
* rendering/RenderView.h:
(FragmentationDisabler):
(WebCore):
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
2013-03-05 Mike West <mkwst@chromium.org>
Cleanup: Move HitTestLocation and HitTestResult into separate files.
https://bugs.webkit.org/show_bug.cgi?id=111294
Reviewed by Allan Sandfeld Jensen.
HitTestLocation and HitTestResult currently both live in
HitTestResult.h. That makes things more difficult to understand than
they should be, and violates the one-class-one-file principle that
WebKit generally follows. Happily, it's fairly trivial to fix.
This should have no visible change; it's strictly an internal
refactoring. It doesn't even touch any implementation code: we're
just moving bits from one place to another.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Hey, look: a new file! Let's add it to six different build systems! :)
* rendering/HitTestLocation.cpp: Added.
(WebCore):
(WebCore::HitTestLocation::HitTestLocation):
(WebCore::HitTestLocation::~HitTestLocation):
(WebCore::HitTestLocation::operator=):
(WebCore::HitTestLocation::move):
(WebCore::HitTestLocation::intersectsRect):
(WebCore::HitTestLocation::intersects):
(WebCore::HitTestLocation::rectForPoint):
* rendering/HitTestLocation.h: Added.
(WebCore):
(HitTestLocation):
(WebCore::HitTestLocation::point):
(WebCore::HitTestLocation::roundedPoint):
(WebCore::HitTestLocation::region):
(WebCore::HitTestLocation::isRectBasedTest):
(WebCore::HitTestLocation::isRectilinear):
(WebCore::HitTestLocation::boundingBox):
(WebCore::HitTestLocation::topPadding):
(WebCore::HitTestLocation::rightPadding):
(WebCore::HitTestLocation::bottomPadding):
(WebCore::HitTestLocation::leftPadding):
(WebCore::HitTestLocation::transformedPoint):
(WebCore::HitTestLocation::transformedRect):
* rendering/HitTestResult.cpp:
* rendering/HitTestResult.h:
Move all this code from HitTestResult.* to HitTestLocation.*.
* rendering/RenderBlock.cpp:
Include HitTestLocation.h.
2013-03-05 Jochen Eisinger <jochen@chromium.org>
Refactor UserGestureIndicator::Token to be a top-level class
https://bugs.webkit.org/show_bug.cgi?id=111412
Reviewed by Nico Weber.
This will allow for forward declaring the class in a public WebKit
API header. The goal is to enable the embedder to hold on to a
UserGestureToken.
* dom/UserGestureIndicator.cpp:
(WebCore::UserGestureIndicator::UserGestureIndicator):
(WebCore::UserGestureIndicator::currentToken):
* dom/UserGestureIndicator.h:
(UserGestureToken):
(WebCore::UserGestureToken::~UserGestureToken):
(WebCore):
(UserGestureIndicator):
* page/DOMTimer.h:
(DOMTimer):
* page/EventHandler.h:
2013-03-05 Mike West <mkwst@chromium.org>
Remove redundant code in Document::updateHoverActiveState.
https://bugs.webkit.org/show_bug.cgi?id=111303
Reviewed by Darin Adler.
Document::updateHoverActiveState currently looks for touchrelease events
and explictly clears out the hover state for all nodes between the
currently hovered node and the top of the hover chain. This is actually
redundant with the logic in the rest of the function; we can simplify by
setting the Element* we're working with to 0, which causes the later
loops to do the necessary work.
There should be no web-visible effect from this change; it should simply
make this function less complex.
Extracted from Allan Sandfeld Jensen's original patch to wkbug.com/98168
* dom/Document.cpp:
(WebCore::Document::updateHoverActiveState):
Set innerElementInDocument to 0 rather than walking the hover chain
and clearing it when we see a touchrelease event. The rest of the
code in this function will have the same effect.
2013-03-05 Koji Hara <kojih@chromium.org>
[V8] Remove unused custom indexedPropertyGetter
https://bugs.webkit.org/show_bug.cgi?id=111409
Reviewed by Kentaro Hara.
Remove unused custom indexedPropertyGetter.
There are 9 custom indexedPropertyGetter, including an unused one(NamedNodeMap).
This commit assures all existing custom indexedPropertyGetter(for V8) are used.
No new tests. Simple refactoring.
* bindings/v8/custom/V8NamedNodeMapCustom.cpp: Remove indexedPropertyGetter
2013-03-05 Hajime Morrita <morrita@google.com>
ShadowRoot needs guardRef() and guardDeref()
https://bugs.webkit.org/show_bug.cgi?id=109777
Reviewed by Dimitri Glazkov.
This change moves m_guardRefCount from Document to TreeScope,
which allows ShadowRoot to be guarded by guardRef() mechanism as
Document. After r137524, Node referes TreeScope instead of
Document. This is natural consequence of the change: It no longer
makes sense to guardRef() Document pointer from Node.
Detail:
- Document::m_guardRefCount and related funcdtions are moved to TreeScope
- Document::removedLastRef is factored out into TreeScope::removedLastRefToScope(),
TreeScope::dispose() and Docuent::dispose(). ShadowRoot also got its own dispose() implementation.
- Moved guardRef() and guardDeref() calls to TreeScope and Node.
Note that there are two "guarded" TreeScope references. One is
Node::m_treeScope and another is TreeScope::m_parentTreeScope.
The guarded-ref management is now encapsulated in these two classes.
No new tests. Covered by existing tests.
* WebCore.exp.in:
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::Document::dispose): Extracted from removedLastRef()
* dom/Document.h:
(WebCore::Node::isTreeScope):
(WebCore::Node::Node):
* dom/DocumentFragment.cpp:
(WebCore::DocumentFragment::DocumentFragment): Remove ASSERT() and move it to ...
(WebCore::DocumentFragment::create): ... here, to allow NULL document from ShadowRoot.
* dom/Node.cpp:
(WebCore::Node::~Node):
(WebCore::Node::removedLastRef):
* dom/Node.h:
(WebCore::Node::setTreeScope):
* dom/Element.cpp:
(WebCore::Element::ensureAttr): This has been wrong and is fixed in this revision since the incorrectness is unveiled by this change.
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot): Passed NULL document to superclass. This aligns what Document is doing.
(WebCore::ShadowRoot::dispose): Added.
* dom/ShadowRoot.h:
(ShadowRoot):
* dom/TreeScope.cpp:
(SameSizeAsTreeScope):
(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::~TreeScope):
(WebCore::TreeScope::dispose): Added.
(WebCore::TreeScope::setParentTreeScope):
(WebCore::TreeScope::deletionHasBegun):
(WebCore::TreeScope::beginDeletion):
(WebCore::TreeScope::refCount): Added.
* dom/TreeScope.h: Turned m_rootNode to Node* from ContainerNode* for Node::isTreeScope to be inlined.
(WebCore::TreeScope::guardRef): Pulled up from Document.
(WebCore::TreeScope::guardDeref): Ditto.
(WebCore::TreeScope::hasGuardRefCount): Added to hide m_guardRefCount.
(WebCore::TreeScope::deletionHasBegun): Added.
(WebCore::TreeScope::beginDeletion): Added.
(WebCore::TreeScope::removedLastRefToScope): Pulled up from Document.
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
(WebCore::TreeScopeAdopter::moveNodeToNewDocument):
2013-03-04 Uday Kiran <udaykiran@motorola.com>
getPropertyValue for -webkit-text-stroke returns null, should compute the shorthand value
https://bugs.webkit.org/show_bug.cgi?id=111018
Reviewed by Alexander Pavlov.
Test: fast/css/getPropertyValue-webkit-text-stroke.html
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::getPropertyValue):
2013-03-04 Uday Kiran <udaykiran@motorola.com>
getPropertyValue for -webkit-columns returns null, should compute the shorthand value
https://bugs.webkit.org/show_bug.cgi?id=111011
Reviewed by Alexander Pavlov.
Test: fast/css/getPropertyValue-columns.html
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::getPropertyValue):
2013-03-04 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Do not accumulate file system files, add them to workspace immediately
https://bugs.webkit.org/show_bug.cgi?id=111325
Reviewed by Pavel Feldman.
* inspector/front-end/FileSystemProjectDelegate.js:
(WebInspector.FileSystemProjectDelegate.prototype.populate.fileLoaded):
(WebInspector.FileSystemProjectDelegate.prototype.populate):
* inspector/front-end/IsolatedFileSystem.js:
(WebInspector.IsolatedFileSystem.prototype.innerCallback):
(WebInspector.IsolatedFileSystem.prototype.requestFilesRecursive):
2013-03-04 Kinuko Yasuda <kinuko@chromium.org>
Unreviewed Windows build fix attempt.
floor method is ambigious so explicitly specify the type.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
2013-03-04 Chris Fleizach <cfleizach@apple.com>
AX: cellForColumnAndRow fails for tables with hidden table cells
https://bugs.webkit.org/show_bug.cgi?id=110050
Reviewed by Tim Horton.
If a table had hidden cells, then accessibility code was being confused in a few ways.
1) The cellForColumnAndRow method would return the wrong information since that was
using the RenderTableSection to retrieve a cell, which did not have the same data as the AXTable
2) The way we were adding children made it impossible to determine column and row range because we
would skip rows that had hidden children
3) AccessibilityARIAGrid and AccessibilityTable were using different methods for cellForColumnAndRow
The fix does a few things to make things right:
1) Always add an accessibility row, even if there are no visible cells in that row.
2) Have one method for AXTable and AXARIAGrid for cellForColumnAndRow.
3) Change cellForColumnAndRow to query the accessibility children rather than the RenderTableSection in determining the row, col info.
4) cellForColumnAndRow should use unsigned values instead of int values.
Test: accessibility/table-with-hidden-head-section.html
* accessibility/AccessibilityARIAGrid.cpp:
(WebCore):
* accessibility/AccessibilityARIAGrid.h:
(AccessibilityARIAGrid):
* accessibility/AccessibilityARIAGridCell.cpp:
(WebCore::AccessibilityARIAGridCell::rowIndexRange):
(WebCore::AccessibilityARIAGridCell::columnIndexRange):
* accessibility/AccessibilityARIAGridCell.h:
(AccessibilityARIAGridCell):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::addChildren):
(WebCore::AccessibilityTable::cellForColumnAndRow):
* accessibility/AccessibilityTable.h:
(WebCore):
(AccessibilityTable):
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::rowIndexRange):
(WebCore::AccessibilityTableCell::columnIndexRange):
* accessibility/AccessibilityTableCell.h:
(AccessibilityTableCell):
* accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
(webkitAccessibleTableGetColumnAtIndex):
(webkitAccessibleTableGetRowAtIndex):
(webkitAccessibleTableGetColumnExtentAt):
(webkitAccessibleTableGetRowExtentAt):
(webkitAccessibleTableGetColumnHeader):
(webkitAccessibleTableGetRowHeader):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
* rendering/RenderTableSection.h:
(RenderTableSection):
(WebCore::RenderTableSection::rowRendererAt):
2013-03-04 Arpita Bahuguna <a.bah@samsung.com>
getAttribute does not behave correctly for mixed-case attributes on HTML elements
https://bugs.webkit.org/show_bug.cgi?id=105713
Reviewed by Andreas Kling.
getAttribute() and getAttributeNode() APIs do not convert the
passed attribute name to lowercase before comparing against the
existing attributes.
The specification however states that the passed name should
be converted to ASCII lowercase before checking for the existence
of the given attribute. [www.w3.org/TR/domcore/#dom-element-getattribute]
Test: fast/dom/Element/getAttribute-case-insensitivity.html
* dom/Element.h:
(WebCore::ElementData::getAttributeItemIndex):
getAttributeItemIndex() accepts a bool param 'shouldIgnoreAttributeCase'
which specifies whether the attribute's case should be ignored
before comparison. But inspite of this param's value we still carry
out a case sensitive search.
Have modified the same to convert the passed attribute's name to
lowercase if 'shouldIgnoreAttributeCase' is true.
2013-03-04 Kunihiko Sakamoto <ksakamoto@chromium.org>
[Chromium] Add runtime flag for font load events
https://bugs.webkit.org/show_bug.cgi?id=111296
Reviewed by Kent Tamura.
Add a runtime feature flag for FontLoader interface (disabled by default),
and enable ENABLE_FONT_LOAD_EVENTS build flag for chromium.
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures):
(WebCore::RuntimeEnabledFeatures::setFontLoadEventsEnabled):
(WebCore::RuntimeEnabledFeatures::fontLoadEventsEnabled):
2013-03-04 Brandon Jones <bajones@google.com>
WEBGL_compressed_texture_atc implementation
https://bugs.webkit.org/show_bug.cgi?id=110496
Reviewed by Kenneth Russell.
Test: webgl/conformance/extensions/webgl-compressed-texture-atc.html
Exposes the WEBGL_compressed_texture_atc extension, but is unverified since no desktop hardware supports
the format that I am aware of. Should enable mobile ports to expose the format, however.
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::toJS):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toV8Object):
* html/canvas/WebGLCompressedTextureATC.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
(WebCore):
(WebCore::WebGLCompressedTextureATC::WebGLCompressedTextureATC):
(WebCore::WebGLCompressedTextureATC::~WebGLCompressedTextureATC):
(WebCore::WebGLCompressedTextureATC::getName):
(WebCore::WebGLCompressedTextureATC::create):
(WebCore::WebGLCompressedTextureATC::supported):
* html/canvas/WebGLCompressedTextureATC.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
(WebCore):
(WebGLCompressedTextureATC):
* html/canvas/WebGLCompressedTextureATC.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
* html/canvas/WebGLExtension.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getSupportedExtensions):
(WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
* html/canvas/WebGLRenderingContext.h:
(WebCore):
(WebGLRenderingContext):
* platform/graphics/Extensions3D.h:
2013-03-04 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Exceptions when WebInspector run in hosted mode.
https://bugs.webkit.org/show_bug.cgi?id=111326
Reviewed by Pavel Feldman.
There is bug in commands code generation in InspectorBackend.js
As a consequence all protocol enums have wrong names and cause
exception when refererenced.
Currently protocol enums are referenced only from NetworkManager.
Test: inspector/inspector-backend-commands-generation.html
* inspector/front-end/InspectorBackend.js:
(InspectorBackendClass.prototype.loadFromJSONIfNeeded):
Use static method to generate code.
(InspectorBackendClass._generateCommands):
Extracted from loadFromJSONIfNeeded. Typo fixed.
2013-03-04 Chris Rogers <crogers@google.com>
Add audio hardware support for multi-channel output by implementing AudioDestinationNode.maxChannelCount
https://bugs.webkit.org/show_bug.cgi?id=111385
Reviewed by James Robinson.
See specification details for .maxChannelCount:
https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioDestinationNode
* Modules/webaudio/AudioDestinationNode.h:
(WebCore::AudioDestinationNode::maxChannelCount):
* Modules/webaudio/AudioDestinationNode.idl:
* Modules/webaudio/AudioNode.h:
Implement .maxChannelCount attribute.
(AudioNode):
* Modules/webaudio/DefaultAudioDestinationNode.h:
* Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::initialize):
(WebCore::DefaultAudioDestinationNode::createDestination):
(WebCore::DefaultAudioDestinationNode::enableInput):
Call to createDestination() now takes no argument.
Instead we maintain a member variable for the input device ID.
(WebCore::DefaultAudioDestinationNode::maxChannelCount):
(WebCore::DefaultAudioDestinationNode::setChannelCount):
Check port-specific hardware support for maxChannelCount(),
and allow setting the channel count based on what the hardware
supports.
* platform/audio/AudioDestination.h:
(AudioDestination):
* platform/audio/chromium/AudioDestinationChromium.cpp:
(WebCore::AudioDestination::maxChannelCount):
(WebCore::AudioDestinationChromium::render):
Call into chromium WebKit API: audioHardwareOutputChannels().
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestination::maxChannelCount):
Add basic implementation for maxChannelCount() only supporting stereo output.
* platform/audio/mac/AudioDestinationMac.cpp:
(WebCore::AudioDestination::maxChannelCount):
Add basic implementation for maxChannelCount() only supporting stereo output.
Later, the mac port can support more than this with some small improvements to AudioDestinationMac.
2013-03-04 Adam Barth <abarth@webkit.org>
Background HTML parser can rewind the tokenizer after end-of-file
https://bugs.webkit.org/show_bug.cgi?id=111365
Reviewed by Eric Seidel.
Prior to this patch, it was possible to call didFailSpeculation after
processing the end-of-file token because checkForSpeculationFailure
didn't zero out m_tokenizer in some control paths.
This patch renames checkForSpeculationFailure to validateSpeculations
and ensures that it always takes ownership of the main thread's
HTMLTokenizer.
This patch also adds a number of ASSERTs to make sure the parser state
machine stays in the correct configuration (e.g., that we don't have a
main thread tokenizer while we're supposed to be tokenizing on the
background thread).
Test: fast/parser/document-write-fighting-eof.html
* html/parser/BackgroundHTMLInputStream.cpp:
(WebCore::BackgroundHTMLInputStream::rewindTo):
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::append):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::validateSpeculations):
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::pumpPendingSpeculations):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
2013-03-04 Tim 'mithro' Ansell <mithro@mithis.com>
Make sure that clearOwnerNode also clears StyleResolver references (via didMutate).
https://bugs.webkit.org/show_bug.cgi?id=109446
Reviewed by Eric Seidel.
Test: fast/css/stylesheet.innerHTML-calls-didmutate.html
* css/CSSStyleSheet.h:
2013-03-04 Kentaro Hara <haraken@chromium.org>
Unreviewd build fix after r144701.
* platform/EventTracer.cpp:
(WebCore::EventTracer::initialize):
2013-03-04 Min Qin <qinmin@chromium.org>
Fix some style issues in RenderLayerCompositor
https://bugs.webkit.org/show_bug.cgi?id=111369
Reviewed by Simon Fraser.
Just style fix, no test needed
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::frameViewDidScroll):
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
2013-03-04 Terry Anderson <tdanderson@chromium.org>
Revert changes to RenderLayer::scrollByRecursively() that were added for gesture-scrolling
https://bugs.webkit.org/show_bug.cgi?id=111007
Reviewed by Simon Fraser.
Due to http://trac.webkit.org/changeset/144519 landing, the changes made to RenderLayer in
http://trac.webkit.org/changeset/142057,
http://trac.webkit.org/changeset/140177, and
http://trac.webkit.org/changeset/142195
are no longer necessary (as RenderLayer::scrollByRecursively() is not used for
gesture-scrolling) and should be reverted.
No change in behavior, so no new tests needed.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollByRecursively):
* rendering/RenderLayer.h:
2013-03-04 Kentaro Hara <haraken@chromium.org>
Unreviewed build fix after r144701.
* platform/EventTracer.cpp:
(WebCore::EventTracer::initialize):
2013-03-04 Christian Biesinger <cbiesinger@chromium.org>
REGRESSION (r143643): Buttons containing floats render differently
https://bugs.webkit.org/show_bug.cgi?id=110933
Reviewed by Ojan Vafai.
Test: fast/forms/button-with-float.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
Also include new flexbox as a renderer that needs to enclose
overhanging floats. Flex boxes establish a block formatting context,
so they need to contain floats:
http://dev.w3.org/csswg/css3-flexbox/#flex-items
2013-03-04 Chris Fleizach <cfleizach@apple.com>
Support WebSpeech - Speech Synthesis
https://bugs.webkit.org/show_bug.cgi?id=106742
Build fix.
* Modules/speech/SpeechSynthesis.cpp:
2013-03-04 Rafael Weinstein <rafaelw@chromium.org>
Unreviewed, rolling out r144595.
http://trac.webkit.org/changeset/144595
https://bugs.webkit.org/show_bug.cgi?id=90341
Causing multiple crashes in fast/dom/Element/* tests (hits
assert in Attr.cp:215)
* dom/Element.cpp:
(WebCore::Element::setAttributeNode):
2013-02-26 Kentaro Hara <haraken@chromium.org>
[chromium] Implement TRACE_EVENT macros for sampling profiling
https://bugs.webkit.org/show_bug.cgi?id=110932
Reviewed by Adam Barth.
We are implementing TRACE_EVENT macros for sampling profiling.
It works in the following mechanism:
- Chromium defines global state variables for sampling profiling.
(i.e. g_trace_state0, g_trace_state1, g_trace_state2 in trace_event.h)
- WebKit gets the addresses of the global state variables at the
initialization step. (i.e. EventTracer::initialize())
- WebKit updates the global states by using TRACE_EVENT_SAMPLING_STATE()
macros every time WebKit changes its state. (e.g. DOM attribute
getters/setters/methods)
- A sampling thread running in Chrome reads the global states
periodically and visualizes the profiling results into about://tracing.
This patch implements (1) a WebKit API to get the addresses of
the global states and (2) the TRACE_EVENT_SAMPLING_STATE() macro.
No tests. The sampling profiler is not enabled in Chrome by default.
I manually inserted TRACE_EVENT_SAMPLING_STATE() macros and
confirmed that the sampling profiling is working as expected.
* platform/EventTracer.cpp:
(WebCore::EventTracer::initialize):
(WebCore::EventTracer::getTraceCategoryEnabledFlag):
(WebCore):
* platform/EventTracer.h:
(WebCore):
(EventTracer):
* platform/chromium/EventTracerChromium.cpp:
(WebCore):
(WebCore::EventTracer::initialize):
* platform/chromium/TraceEvent.h:
2013-03-04 Chris Fleizach <cfleizach@apple.com>
Support WebSpeech - Speech Synthesis
https://bugs.webkit.org/show_bug.cgi?id=106742
Reviewed by Simon Fraser.
Enable speech synthesis for the Mac.
* Configurations/FeatureDefines.xcconfig:
2013-03-04 Ruslan Abdikeev <aruslan@chromium.org>
<link rel="apple-touch-icon"> tag is not honored on CNN.com, workflowy.com etc
https://bugs.webkit.org/show_bug.cgi?id=109061
Reviewed by Adam Barth.
Test: fast/dom/icon-url-list-apple-touch.html
Added iconTypes parameter to Document::iconURLs().
Added Document::shortcutIconURLs() with original semantics of iconURLs().
Fixed IconController.cpp to provide iconTypesMask to iconURLs().
Renamed iconTypes to iconTypesMask to make the meaning clearer.
* WebCore.exp.in:
* dom/Document.cpp:
(WebCore::Document::shortcutIconURLs):
(WebCore):
(WebCore::Document::iconURLs):
* dom/Document.h:
(Document):
* loader/icon/IconController.cpp:
(WebCore::IconController::iconURL):
(WebCore::IconController::urlsForTypes):
* testing/Internals.cpp:
(WebCore::Internals::iconURLs):
(WebCore::Internals::shortcutIconURLs):
(WebCore):
(WebCore::Internals::allIconURLs):
* testing/Internals.h:
* testing/Internals.idl:
2013-02-27 Jeffrey Pfau <jpfau@apple.com>
Cache partitioning does not affect iframe MainResources
https://bugs.webkit.org/show_bug.cgi?id=111022
Reviewed by David Kilzer.
Set the partition of a main resource request if in a subframe.
Test: http/tests/cache/partitioned-cache-iframe.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
2013-03-04 Chris Fleizach <cfleizach@apple.com>
AX: user agent shadow roots for plugins should be 'accessible'
https://bugs.webkit.org/show_bug.cgi?id=111339
Reviewed by Tim Horton.
If a plugin element uses a user agent shadow element, we should make that shadow element
into a button with the title and subtitle put together, and use that as the label. This
will probably be the best accessibility experience.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot):
2013-03-04 Alok Priyadarshi <alokp@chromium.org>
[chromium] Form controls on composited layers are not painted properly
https://bugs.webkit.org/show_bug.cgi?id=111366
Reviewed by James Robinson.
Set PlatformContextSkia::m_drawingToImageBuffer which is used as a hint to properly blend GDI-painted bitmap.
* platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
(WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
2013-03-04 Simon Fraser <simon.fraser@apple.com>
Give ViewportConstraints classes copy constructors
https://bugs.webkit.org/show_bug.cgi?id=111367
Reviewed by Beth Dakin.
Downstream code requires that ViewportConstraints objects have
copy constructors, so add them.
Also clean up some redundant initialization of stack objects
in RenderLayerCompositor.
No behavior change.
* page/scrolling/ScrollingConstraints.h:
(WebCore::ViewportConstraints::ViewportConstraints):
(ViewportConstraints):
(WebCore::FixedPositionViewportConstraints::FixedPositionViewportConstraints):
(FixedPositionViewportConstraints):
(WebCore::StickyPositionViewportConstraints::StickyPositionViewportConstraints):
(StickyPositionViewportConstraints):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
(WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
2013-03-04 Roger Fong <roger_fong@apple.com>
Unreviewed. AppleWin build fix.
* html/parser/XSSAuditor.cpp:
(WebCore::isSemicolonSeparatedAttribute):
2013-03-04 Andreas Kling <akling@apple.com>
CSSParser: Avoid temporary String when parsing hex colors.
<http://webkit.org/b/111341>
Reviewed by Anders Carlsson.
Templatize CSSParser::fastParseColor() so we can pass a CSSParserString as the color name.
This avoids creating a temporary WTF::String from the parser string.
* css/CSSParser.cpp:
(WebCore::CSSParser::fastParseColor):
* css/CSSParser.h:
* css/CSSParserValues.h:
(CSSParserString):
2013-03-04 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Add parsing for grid-{start|before}
https://bugs.webkit.org/show_bug.cgi?id=110988
Reviewed by Tony Chang.
Test: fast/css-grid-layout/grid-item-start-before-get-set.html
Refactored how we store internally grid-{row|column} to be based on grid-{before|start}.
This is required as grid-{row|column} are shorthands for resp. grid-{before|after} and grid-{start|end}
in the specification and will also be in the code. That means a lot of methods were renamed to be more
aligned with the new design.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
Added the code to parse, apply and get back the new properties. Also
some renaming after the internal naming change below.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::maximumIndexInDirection):
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::autoPlacementMajorAxisPositionForChild):
(WebCore::RenderGrid::autoPlacementMinorAxisPositionForChild):
* rendering/style/RenderStyle.h:
* rendering/style/StyleGridItemData.cpp:
(WebCore::StyleGridItemData::StyleGridItemData):
* rendering/style/StyleGridItemData.h:
(WebCore::StyleGridItemData::operator==):
Updated the naming now that we manipulate grid-{before|start} instead of grid-{row|column}.
2013-03-04 Chris Fleizach <cfleizach@apple.com>
WebSpeech: change voiceURI to voice
https://bugs.webkit.org/show_bug.cgi?id=110773
Reviewed by Tim Horton.
Change the voiceURI property to a voice property that takes a SpeechSynthesisVoice.
This was recently added to the errata of the WebSpeech spec.
Test: platform/mac/fast/speechsynthesis/speech-synthesis-utterance-uses-voice.html
* Modules/speech/SpeechSynthesisUtterance.cpp:
(WebCore):
(WebCore::SpeechSynthesisUtterance::voice):
(WebCore::SpeechSynthesisUtterance::setVoice):
* Modules/speech/SpeechSynthesisUtterance.h:
(SpeechSynthesisUtterance):
* Modules/speech/SpeechSynthesisUtterance.idl:
* Modules/speech/SpeechSynthesisVoice.h:
(WebCore::SpeechSynthesisVoice::platformVoice):
(SpeechSynthesisVoice):
* platform/PlatformSpeechSynthesisUtterance.cpp:
(WebCore::PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance):
* platform/PlatformSpeechSynthesisUtterance.h:
(WebCore::PlatformSpeechSynthesisUtterance::voice):
(WebCore::PlatformSpeechSynthesisUtterance::setVoice):
(PlatformSpeechSynthesisUtterance):
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
2013-03-04 Victor Costan <costan@gmail.com>
Filename passed to FormData.append() takes precedence over filename in
File.
https://bugs.webkit.org/show_bug.cgi?id=111255
Reviewed by Alexey Proskuryakov.
Test: http/tests/local/formdata/send-form-data-with-filename.html
* platform/network/FormData.cpp:
(WebCore::FormData::appendKeyValuePairItems): changed to implement the
behavior in the XMLHttpRequest W3C spec.
2013-03-04 Alexis Hetu <sugoi@chromium.org>
Canvas and DOM go out of sync
https://bugs.webkit.org/show_bug.cgi?id=107701
Reviewed by Simon Fraser.
Test: fast/canvas/canvas-overflow-hidden-animation.html
Added an update of the current compositor from the layer's stacking
container when the layer itself isn't a stacking container.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAfterLayout):
Added an update of the stacking container of the owning layer of the
layer backing when the owning layer isn't a stacking container itself.
2013-03-04 Alexey Proskuryakov <ap@apple.com>
Small BlobResourceHandle cleanup
https://bugs.webkit.org/show_bug.cgi?id=111352
Reviewed by Sam Weinig.
1. Don't use PassRefPtr<BlobStorageData> when ownership is not being passed.
2. Added OVERRIDE to some functions.
3. Added const to ResourceHandle::firstRequest().
* platform/network/BlobRegistryImpl.cpp:
(WebCore::loadResourceSynchronously):
(WebCore::BlobRegistryImpl::createResourceHandle):
(WebCore::BlobRegistryImpl::getBlobDataFromURL):
* platform/network/BlobRegistryImpl.h:
(BlobRegistryImpl):
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::createAsync):
(WebCore::BlobResourceHandle::loadResourceSynchronously):
* platform/network/BlobResourceHandle.h:
(BlobResourceHandle):
* platform/network/FormData.cpp:
(WebCore::appendBlobResolved):
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::firstRequest):
* platform/network/ResourceHandle.h:
(ResourceHandle):
2013-03-04 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Introduce WebInspector.EventTarget interface for interfaces that dispatch events.
https://bugs.webkit.org/show_bug.cgi?id=111320
Reviewed by Pavel Feldman.
* inspector/front-end/Object.js:
(WebInspector.EventTarget):
(WebInspector.EventTarget.prototype.addEventListener):
(WebInspector.EventTarget.prototype.removeEventListener):
(WebInspector.EventTarget.prototype.removeAllListeners):
(WebInspector.EventTarget.prototype.hasEventListeners):
(WebInspector.EventTarget.prototype.dispatchEventToListeners):
* inspector/front-end/ResourceScriptMapping.js:
* inspector/front-end/UISourceCode.js:
* inspector/front-end/Workspace.js:
(WebInspector.ProjectDelegate.prototype.searchInFileContent):
2013-03-04 Tom Sepez <tsepez@chromium.org>
XSSAuditor bypass with --> comment syntax.
https://bugs.webkit.org/show_bug.cgi?id=111349
Reviewed by Adam Barth.
Test: http/tests/security/xssAuditor/open-iframe-src-03.html
* html/parser/XSSAuditor.cpp:
(WebCore::isTerminatingCharacter):
Adds ">" to the list of terminating characters, so that comments of
the form --> end the snippet we seek to match.
2013-03-04 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Modal dialogs sometimes lose focus.
https://bugs.webkit.org/show_bug.cgi?id=111317
Reviewed by Pavel Feldman.
setCurrentFocusElement doesn't give focus to an element anymore
if modal glass pane is shown and element is not inside it.
* inspector/front-end/Dialog.js:
(WebInspector.Dialog):
(WebInspector.Dialog.prototype._hide):
* inspector/front-end/InspectorView.js:
(WebInspector.InspectorView.prototype.defaultFocusedElement):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.defaultFocusedElement):
* inspector/front-end/UIUtils.js:
(WebInspector.GlassPane):
(WebInspector.GlassPane.prototype.dispose):
(WebInspector.setCurrentFocusElement):
* inspector/front-end/dialog.css:
2013-03-04 Roger Fong <roger_fong@apple.com>
Unreviewed. AppleWin build fix.
* WebCore.vcxproj/WebCore.vcxproj:
2013-03-04 Dan Carney <dcarney@google.com>
[v8] add isolate parameter to heap statistics calls
https://bugs.webkit.org/show_bug.cgi?id=111308
Reviewed by Jochen Eisinger.
No new tests.
* bindings/v8/ScriptGCEvent.cpp:
(WebCore::ScriptGCEvent::getHeapSize):
(WebCore::ScriptGCEvent::getUsedHeapSize):
* bindings/v8/V8AdaptorFunction.cpp:
(WebCore::V8AdaptorFunction::getTemplate):
* bindings/v8/V8GCController.cpp:
(WebCore::V8GCController::checkMemoryUsage):
2013-03-04 Jochen Eisinger <jochen@chromium.org>
[chromium] remove deprecated hyphenation methods from Platform
https://bugs.webkit.org/show_bug.cgi?id=111101
Reviewed by Adam Barth.
* platform/text/chromium/Hyphenation.cpp:
(WebCore::canHyphenate):
(WebCore::lastHyphenLocation):
2013-03-04 Benjamin Poulain <benjamin@webkit.org>
Use initialization from literal for MediaFeatureNames
https://bugs.webkit.org/show_bug.cgi?id=111283
Reviewed by Andreas Kling.
* css/MediaFeatureNames.cpp:
(WebCore::MediaFeatureNames::init):
Initialization from literal is faster and use less memory. The names are
defined statically in MediaFeatureNames.h.
Also use the NotNull placement new to avoid a branch on silly allocators.
2013-03-04 Joshua Bell <jsbell@chromium.org>
[V8] Unreviewed. Rebaselined run-bindings-tests following r144617
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::ConfigureV8Float64ArrayTemplate):
(WebCore::V8Float64Array::GetTemplate):
* bindings/scripts/test/V8/V8Float64Array.h:
(V8Float64Array):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
(WebCore::TestActiveDOMObjectV8Internal::TestActiveDOMObjectDomainSafeFunctionSetter):
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
(WebCore::V8TestActiveDOMObject::GetTemplate):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(V8TestActiveDOMObject):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::ConfigureV8TestCustomNamedGetterTemplate):
(WebCore::V8TestCustomNamedGetter::GetTemplate):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(V8TestCustomNamedGetter):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::ConfigureV8TestEventConstructorTemplate):
(WebCore::V8TestEventConstructor::GetTemplate):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(V8TestEventConstructor):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::ConfigureV8TestEventTargetTemplate):
(WebCore::V8TestEventTarget::GetTemplate):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(V8TestEventTarget):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::ConfigureV8TestExceptionTemplate):
(WebCore::V8TestException::GetTemplate):
* bindings/scripts/test/V8/V8TestException.h:
(V8TestException):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::ConfigureV8TestInterfaceTemplate):
(WebCore::V8TestInterface::GetTemplate):
* bindings/scripts/test/V8/V8TestInterface.h:
(V8TestInterface):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
(WebCore::V8TestMediaQueryListListener::GetTemplate):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(V8TestMediaQueryListListener):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructor::GetTemplate):
(WebCore::ConfigureV8TestNamedConstructorTemplate):
(WebCore::V8TestNamedConstructor::GetTemplate):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(V8TestNamedConstructorConstructor):
(V8TestNamedConstructor):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::ConfigureV8TestNodeTemplate):
(WebCore::V8TestNode::GetTemplate):
* bindings/scripts/test/V8/V8TestNode.h:
(V8TestNode):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::GetTemplate):
(WebCore::V8TestObj::installPerContextPrototypeProperties):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
(WebCore::V8TestOverloadedConstructors::GetTemplate):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(V8TestOverloadedConstructors):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
(WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(V8TestSerializedScriptValueInterface):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::ConfigureV8TestTypedefsTemplate):
(WebCore::V8TestTypedefs::GetTemplate):
* bindings/scripts/test/V8/V8TestTypedefs.h:
(V8TestTypedefs):
2013-03-04 Tony Chang <tony@chromium.org>
Unreviewed, rolling out r144562.
http://trac.webkit.org/changeset/144562
https://bugs.webkit.org/show_bug.cgi?id=85642
Caused KeyPadInsert faluires in webkit_unittests
* platform/chromium/KeyCodeConversionGtk.cpp:
(WebCore::windowsKeyCodeForKeyEvent):
2013-03-04 Uday Kiran <udaykiran@motorola.com>
getComputedStyle not implemented for -webkit-columns shorthand
https://bugs.webkit.org/show_bug.cgi?id=111236
Reviewed by Alexis Menard.
Implement getComputedStyle for -webkit-columns shorthand.
Test: fast/css/getComputedStyle/getComputedStyle-webkit-columns-shorthand.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2013-03-04 Levi Weintraub <leviw@chromium.org>
Add support for 8 bit TextRuns on Chromium Linux & Mac
https://bugs.webkit.org/show_bug.cgi?id=99393
Reviewed by Eric Seidel.
Adding support for 8 bit TextRuns for Mac and Linux Chromium. To accomplish this,
8 bit text runs are upconverted to 16 bit in the complex text path during string
normalization, as HarfBuzz operates on UChars.
Windows has platfom assumptions that TextRuns are 16 bit that need to be addressed
before enabling this optimization.
No new tests. No change in behavior.
(WebCore::HarfBuzzShaperBase::setNormalizedBuffer):
* platform/graphics/harfbuzz/HarfBuzzShaperBase.h:
* platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::normalizeCharacters):
(WebCore::HarfBuzzShaper::HarfBuzzShaper):
2013-03-04 Alexis Menard <alexis@webkit.org>
transition-property property and transition shorthand property doesn't accept "all, all".
https://bugs.webkit.org/show_bug.cgi?id=111201
Reviewed by Simon Fraser.
Relax the parsing of transition-property to allow all, all as a value.
It is not very useful per say but it is possible by the spec and we
align with Firefox, IE and Opera.
Test: LayoutTests/transitions/transitions-parsing.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseAnimationProperty):
2013-03-04 Min Qin <qinmin@chromium.org>
Don't apply page scale to clipRect if applyPageScaleFactorInCompositor is set to true
https://bugs.webkit.org/show_bug.cgi?id=111229
Reviewed by Simon Fraser.
If applyPageScaleFactorInCompositor is set to true, webcore should use css coordinates.
As a result, we shouldn't apply page scale to clipRect in RenderLayerCompositor.
Layout tests set the flag to false, so we don't have anything to test against.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::addToOverlapMap):
2013-03-04 Ian Vollick <vollick@chromium.org>
ASSERTION FAILED: m_clipRectsCache->m_respectingOverflowClip[clipRectsType] == (clipRectsContext.respectOverflowClip == RespectOverflowClip) in RenderLayer.
https://bugs.webkit.org/show_bug.cgi?id=108257
Reviewed by David Hyatt.
With composited scrolling we paint both with and without respecting
overflow clip. To prevent collisions in the clip cache, and to prevent
throwing away cached clips unnecessarily, we keep two copies of the
clip cache -- one for when overflow clip is respected, and one for
when it isn't.
No new tests. Covered by existing tests (in debug):
compositing/overflow/automatically-opt-into-composited-scrolling.html
compositing/overflow/composited-scrolling-creates-a-stacking-container.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateClipRects):
No longer asserts that our 'respect overflow clip' status is
consistent. It also gets and sets the clip cache using the clip rect
context rather than just the clip rect type.
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::parentClipRects):
(WebCore::RenderLayer::clearClipRects):
(WebCore::ClipRectsCache::ClipRectsCache):
(WebCore::ClipRectsCache::getClipRects):
(WebCore::ClipRectsCache::setClipRects):
(WebCore::ClipRectsCache::getIndex):
Get and set the cached clip rects using the context rather than
type.
(WebCore::RenderLayer::clipRects):
We now cache twice as many clip rects.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
ShouldRespectOverflowClip was moved out of RenderLayer.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateClipRects):
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::parentClipRects):
(WebCore::RenderLayer::clearClipRects):
* rendering/RenderLayer.h:
(WebCore::ClipRectsCache::ClipRectsCache):
(WebCore::ClipRectsCache::getClipRects):
(WebCore::ClipRectsCache::setClipRects):
(ClipRectsCache):
(WebCore::ClipRectsCache::getIndex):
(WebCore::RenderLayer::clipRects):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2013-03-04 Aaron Colwell <acolwell@chromium.org>
Remove unused return value from SourceBufferPrivate::abort() and WebSourceBuffer::abort().
https://bugs.webkit.org/show_bug.cgi?id=111195
Reviewed by Adam Barth.
No new tests. No user visible behavior changed.
* platform/graphics/SourceBufferPrivate.h:
(SourceBufferPrivate):
2013-03-04 David Hyatt <hyatt@apple.com>
[New Multicolumn] Eliminate the unique multicolumn flow thread style creation function
https://bugs.webkit.org/show_bug.cgi?id=111338
Reviewed by Allan Jensen.
There is nothing special about a multi-column flow thread style now, so we can just
use the existing anonymous style creation function.
* rendering/RenderMultiColumnBlock.cpp:
(WebCore):
(WebCore::RenderMultiColumnBlock::addChild):
2013-03-04 Mario Sanchez Prada <mario.prada@samsung.com>
[GTK] WebCore::returnString is unsafe and should be removed!
https://bugs.webkit.org/show_bug.cgi?id=110423
Reviewed by Martin Robinson.
Remove returnString() and replace it in callers with a new
function that will cache and return the values of string
properties for ATK interfaces in the private section of the
wrapper AtkObject WebKitAccessible.
* accessibility/atk/WebKitAccessibleUtil.cpp: Remove returnString().
* accessibility/atk/WebKitAccessibleUtil.h: Ditto.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(_WebKitAccessiblePrivate): New private structure to store cached
values of string property for the different ATK interfaces.
(cacheAndReturnAtkProperty): New helper function to make sure the
returned const gchar* value is previously cached in the private
section of the wrapper AtkObject.
(webkitAccessibleGetName): Use the new helper function.
(webkitAccessibleGetDescription): Ditto.
(webkitAccessibleInit): Initialize pointer to private structure.
(webkitAccessibleFinalize): Remove unneeded code.
(webkitAccessibleClassInit): Add private struct to class type/
* accessibility/atk/WebKitAccessibleWrapperAtk.h:
(_WebKitAccessible): New member pointing to the private structure,
made the new helper function cacheAndReturnAtkProperty() available
to external callers (implementation files for ATK interfaces).
(AtkCachedProperty): New enum to allow reusing code when calling
cacheAndReturnAtkProperty() to cache and return different properties.
* accessibility/atk/WebKitAccessibleInterfaceAction.cpp:
(webkitAccessibleActionGetKeybinding): Replace calls to returnString()
with calls to the new helper function cacheAndReturnAtkProperty().
(webkitAccessibleActionGetName): Ditto.
* accessibility/atk/WebKitAccessibleInterfaceDocument.cpp:
(documentAttributeValue): Ditto.
(webkitAccessibleDocumentGetLocale): Ditto.
* accessibility/atk/WebKitAccessibleInterfaceImage.cpp:
(webkitAccessibleImageGetImageDescription): Ditto.
Remove returnString() from WebKitAccessibleHyperlink (which is not
an AtkObject, but a GObject) as well, replacing it in callers with
simple code that will cache and return the required values in the
private section of these kind of objects.
* accessibility/atk/WebKitAccessibleHyperlink.cpp:
(_WebKitAccessibleHyperlinkPrivate): Added two new fields to cache
string values for the key binding and name properties from the
AtkAction interface, which is implemented by AtkHyperlink.
(webkitAccessibleHyperlinkActionGetKeybinding): Cache the string
value for the key binding before returning a const gchar* pointer.
(webkitAccessibleHyperlinkActionGetName): Ditto.
(webkitAccessibleHyperlinkGetURI): Do not cache the URI here, as
this function returns a gchar* that will be owned by the caller.
2013-03-04 peavo@outlook.com <peavo@outlook.com>
[Curl] Compile fix after r144216
https://bugs.webkit.org/show_bug.cgi?id=111305
Reviewed by Brent Fulgham.
* platform/network/curl/ResourceRequest.h:
(WebCore::ResourceRequest::cfURLRequest): Added new parameter.
2013-03-03 David Hyatt <hyatt@apple.com>
[New Multicolumn] Make sure region styling works for columns inside regions.
https://bugs.webkit.org/show_bug.cgi?id=111276
Reviewed by Sam Weinig.
Test: fast/regions/region-styling-in-columns.html
* rendering/RenderFlowThread.cpp:
(WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
(WebCore::CurrentRenderFlowThreadMaintainer::~CurrentRenderFlowThreadMaintainer):
* rendering/RenderFlowThread.h:
(CurrentRenderFlowThreadMaintainer):
Fix the CurrentRenderFlowThreadMaintainer so that it saves off the old render flow thread
and restores it when done. This effectively makes flow thread layout a push/pop stack,
since with in-flow threads, this is allowed. We assert that a nested flow thread is
in-flow to preserve the invariant that you can't nest CSS Regions flow thread.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::computeChildrenStyleInRegion):
Add isInFlowRenderFlowThread() to the anonymous check to make sure a style gets made
for the nested flow thread.
2013-03-04 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: WebInspector.AceTextEditor throws a warning
https://bugs.webkit.org/show_bug.cgi?id=111315
Reviewed by Pavel Feldman.
Add WebInspector.AceTextEditor to externs.js to suppress closure
compilation warning.
No new tests: no change in behaviour.
* inspector/front-end/externs.js:
(WebInspector.AceTextEditor):
2013-03-04 Antoine Quint <graouts@apple.com>
Fix debug build under certain configurations, cause was
http://trac.webkit.org/changeset/144624.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent):
* inspector/InspectorLayerTreeAgent.h:
(WebCore):
(WebCore::InspectorLayerTreeAgent::create):
(InspectorLayerTreeAgent):
2013-03-04 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] REGRESSION(r141240) Crash in PluginPackage::fetchInfo
https://bugs.webkit.org/show_bug.cgi?id=111322
Reviewed by Simon Hausmann.
Do not try to load blacklisted plugins.
* plugins/qt/PluginPackageQt.cpp:
(WebCore::PluginPackage::fetchInfo):
2013-03-04 Alexis Menard <alexis@webkit.org>
transition properties can't be found in CSSStyleDeclaration
https://bugs.webkit.org/show_bug.cgi?id=110011
Reviewed by Antti Koivisto.
The previous approach for handling the unprefixing was to alias the
unprefixed properties with the prefixed ones in CSSPropertyNames.in.
Unfortunately it will alias the properties in the parsing code which will just
identically parse the two versions. This means that when we populate StylePropertySet
we do not have information whether we just parsed the prefixed, the
unprefixed properties or we parsed both. The patch takes another
approach by creating two distinct sets of properties (unprefixed and
prefixed). Each properties have their own id and we now handle them in
the parsing code as disctints properties and add both versions to the
declared style. In order to avoid properties getting out of sync,
this patch adds few facilities to StylePropertySet to update the
prefixed and the unprefixed entries. Finally the style resolution
happens only for the prefixed version (to limit the size of this patch)
and the unprefixed versions are not resolved. This is to avoid creating
the animation objects twice for the resolved style.
Test : transitions/transitions-parsing.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::addPropertyWithPrefixingVariant): Always add the
prefixed and the unprefixed property even if only one is specified.
(WebCore):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseTransitionShorthand): Add both prefixed and
unprefixed longhands to the declarated style.
(WebCore::CSSParser::parseAnimationProperty):
* css/CSSParser.h:
(CSSParser):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSProperty.h:
(WebCore:: prefixingVariantForPropertyId): This function takes a given
property id and returns its prefixed or unprefixed id if it exists. If
not it returns the same id.
(WebCore):
* css/CSSPropertyNames.in:
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::getPropertyValue):
(WebCore::StylePropertySet::removeShorthandProperty):
(WebCore::StylePropertySet::removeProperty):
(WebCore::StylePropertySet::removeProperty): Remove
also the prefixed or unprefixed shorthand if it exists.
(WebCore):
(WebCore::StylePropertySet::setProperty):
(WebCore::StylePropertySet:: appendPrefixingVariantProperty):
(WebCore::StylePropertySet::setPrefixingVariantProperty): If it
exists a unprefixed or prefixed counterpart of the property we're
trying to set, then we update the other one.
(WebCore::StylePropertySet::asText):
(WebCore::StylePropertySet::mergeAndOverrideOnConflict):
* css/StylePropertySet.h:
(StylePropertySet):
* css/StylePropertyShorthand.cpp:
(WebCore::transitionShorthand):
(WebCore):
(WebCore::shorthandForProperty): Define the transitions unprefixed
longhands.
* css/StylePropertyShorthand.h:
(WebCore):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty): StyleBuilder will handle the
resolution and the creation of the animations for the style. As the
declarated style now contains declarations for the prefixed and
unprefixed property we do not want to resolve two times and create duplicate animations.
Therefore when we try to resolve the unprefixed version we just bail out.
2013-03-04 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: CPU Flame Chart: reveal profiler DataGrid node when user clicks on a FlameChart item.
https://bugs.webkit.org/show_bug.cgi?id=111309
Reviewed by Yury Semikhatsky.
* inspector/front-end/CPUProfileView.js:
(WebInspector.CPUProfileView.prototype._revealProfilerNode):
* inspector/front-end/FlameChart.js:
(WebInspector.FlameChart):
(WebInspector.FlameChart.prototype._onClick):
2013-03-04 Antoine Quint <graouts@apple.com>
Web Inspector: remove existing LayerTreeAgent protocol APIs
https://bugs.webkit.org/show_bug.cgi?id=111251
In order to eventually provide a more useful API for the LayerTreeAgent
that will be done in followup bugs, we remove the current API exposed by
the agent providing a clean slate that will make future patches easier
to read. Additionally, we remove the "childLayers" property on the Layer
object since we will no longer be providing a hierarchy of layers, but
rather a flat list of layers attached to a node and its descendants.
No new tests since we're removing the APIs exposed by the LayerTreeAgent.
Subsequent patches will add tests as new APIs are added.
Reviewed by Timothy Hatcher.
* inspector/Inspector.json:
* inspector/InspectorDOMAgent.cpp:
* inspector/InspectorDOMAgent.h:
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
* inspector/InspectorLayerTreeAgent.h:
(InspectorLayerTreeAgent):
2013-03-04 Li Yin <li.yin@intel.com>
MediaStream.ended must return true when it is created with ended tracks.
https://bugs.webkit.org/show_bug.cgi?id=111293
Reviewed by Kentaro Hara.
Spec: http://dev.w3.org/2011/webrtc/editor/getusermedia.html#MediaStream-ended
When a MediaStream object is created, its ended attribute must be set to false,
unless it is being created using the MediaStream() constructor whose arguments
are lists of MediaStreamTrack objects that are all ended, in which case the
MediaStream object must be created with its ended attribute set to true.
Test: fast/mediastream/MediaStreamConstructor.html
* platform/mediastream/MediaStreamDescriptor.h:
(WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
2013-03-04 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Adding new rules broken if a <style> tag is added to document dynamically
https://bugs.webkit.org/show_bug.cgi?id=111299
Reviewed by Pavel Feldman.
The CSSStyleSheet instance should be retrieved directly from the HTMLStyleElement just created,
not from the document.styleSheets list.
Test: inspector/styles/add-new-rule-with-style-after-body.html
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
2013-03-04 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Unreviewed. Fix for closure type annotations.
* inspector/front-end/FlameChart.js:
2013-03-04 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL] Build fix when compiling with GLES2 support enabled.
https://bugs.webkit.org/show_bug.cgi?id=111291
Reviewed by Kenneth Rohde Christiansen.
This patch fixes build issues when compiling with GLES2
support. As part of the fix the patch removes Evas specific
workaround of using GLX with EGL in PlatformContext as GLES2
is the main target with EGL.
* platform/graphics/OpenGLESShims.h:
* platform/graphics/opengl/GLPlatformContext.cpp:
(WebCore::GLCurrentContextWrapper::GLCurrentContextWrapper):
* platform/graphics/texmap/TextureMapper.h:
2013-03-04 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: implement Flame Chart for CPU profiler.
https://bugs.webkit.org/show_bug.cgi?id=111162
Reviewed by Yury Semikhatsky.
It is an initial implementation. The next step is to provide
function names and other stats about the hovered item.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* inspector/compile-front-end.py:
* inspector/front-end/CPUProfileView.js:
(WebInspector.CPUProfileView.prototype._getCPUProfileCallback):
* inspector/front-end/FlameChart.js: Added.
(WebInspector.FlameChart):
(WebInspector.FlameChart.prototype._onMouseMove):
(WebInspector.FlameChart.prototype.findNodeCallback):
(WebInspector.FlameChart.prototype._coordinatesToNode):
(WebInspector.FlameChart.prototype.onResize):
(WebInspector.FlameChart.prototype._rootNodes):
(WebInspector.FlameChart.prototype.draw):
(WebInspector.FlameChart.prototype._drawNode):
(WebInspector.FlameChart.prototype._forEachNode):
(WebInspector.FlameChart.prototype._drawBar):
(WebInspector.FlameChart.prototype.update):
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/flameChart.css: Added.
(.flame-chart):
2013-03-04 Marja Hölttä <marja@chromium.org>
[V8] Add a "context type" parameter to GetTemplate and ConfigureV8SomethingTemplate functions
https://bugs.webkit.org/show_bug.cgi?id=110875
The parameter will later be used for generating specialized V8
bindings for the 3 different world types (main world, isolated
work, worker).
Reviewed by Kentaro Hara.
No new tests (no changes in behavior yet).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateDomainSafeFunctionGetter):
(GenerateDomainSafeFunctionSetter):
(GenerateNormalAttrGetter):
(GenerateNamedConstructor):
(GenerateImplementation):
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::DOMDataStore):
* bindings/v8/DOMDataStore.h:
(DOMDataStore):
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore):
(WebCore::DOMWrapperWorld::setInitializingWindow):
(WebCore::DOMWrapperWorld::DOMWrapperWorld):
(WebCore::DOMWrapperWorld::contextHasCorrectPrototype):
* bindings/v8/DOMWrapperWorld.h:
(DOMWrapperWorld):
(WebCore::DOMWrapperWorld::getWorld):
* bindings/v8/Dictionary.cpp:
(WebCore::Dictionary::get):
* bindings/v8/PageScriptDebugServer.cpp:
(WebCore::retrieveFrameWithGlobalObjectCheck):
* bindings/v8/V8AdaptorFunction.cpp:
(WebCore::V8AdaptorFunction::getTemplate):
(WebCore::V8AdaptorFunction::wrap):
* bindings/v8/V8AdaptorFunction.h:
(V8AdaptorFunction):
* bindings/v8/V8Binding.cpp:
(WebCore::toDOMWindow):
(WebCore::toScriptExecutionContext):
(WebCore::worldType):
(WebCore):
(WebCore::worldTypeInMainThread):
* bindings/v8/V8Binding.h:
(WebCore):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::clearForNavigation):
(WebCore::V8DOMWindowShell::installDOMWindow):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::createWrapper):
* bindings/v8/V8Initializer.cpp:
(WebCore::findFrame):
* bindings/v8/V8PerContextData.cpp:
(WebCore::V8PerContextData::constructorForTypeSlowCase):
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::WorkerScriptController):
(WebCore::WorkerScriptController::controllerForContext):
* bindings/v8/WrapperTypeInfo.h:
(WebCore::WrapperTypeInfo::getTemplate):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::eventAttrGetterCustom):
(WebCore::V8DOMWindow::eventAttrSetterCustom):
(WebCore::V8DOMWindow::toStringMethodCustom):
(WebCore::V8DOMWindow::namedSecurityCheck):
(WebCore::V8DOMWindow::indexedSecurityCheck):
(WebCore::toV8):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::wrapInShadowObject):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::V8HTMLImageElementConstructor::GetTemplate):
* bindings/v8/custom/V8HTMLImageElementConstructor.h:
(V8HTMLImageElementConstructor):
* bindings/v8/custom/V8InjectedScriptManager.cpp:
(WebCore::createInjectedScriptHostV8Wrapper):
(WebCore::InjectedScriptManager::canAccessInspectedWindow):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::reloadAttrGetterCustom):
(WebCore::V8Location::replaceAttrGetterCustom):
(WebCore::V8Location::assignAttrGetterCustom):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::initMessageEventMethodCustom):
2013-03-04 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: add Ace editor experiment
https://bugs.webkit.org/show_bug.cgi?id=111191
Reviewed by Pavel Feldman.
No new tests.
Add Ace text editor experiment.
* WebCore.gypi:
* inspector/front-end/AceTextEditor.js: Added.
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame):
* inspector/front-end/ace/ace.js: Added.
* inspector/front-end/ace/acedevtools.css: Added.
* inspector/front-end/ace/mode_css.js: Added.
* inspector/front-end/ace/mode_html.js: Added.
* inspector/front-end/ace/mode_javascript.js: Added.
* inspector/front-end/ace/theme_textmate.js: Added.
* inspector/front-end/ace/LICENSE.txt: Added.
2013-03-04 Kunihiko Sakamoto <ksakamoto@chromium.org>
Add build flag for FontLoader
https://bugs.webkit.org/show_bug.cgi?id=111289
Reviewed by Benjamin Poulain.
Add ENABLE_FONT_LOAD_EVENTS build flag (disabled by default).
* Configurations/FeatureDefines.xcconfig:
2013-03-04 Mike West <mkwst@chromium.org>
XSSAuditor should strip dangerous attributes from SMIL animation elements.
https://bugs.webkit.org/show_bug.cgi?id=111071
Reviewed by Adam Barth.
SMIL animation elements can, amusingly enough, animate the 'href' of a
link. This patch teaches XSSAuditor how to deal with the
semicolon-separated 'animation[values]' attribute in order to ensure
that it doesn't contain JavaScript URLs that could be animated into
place for an unsuspecting user to click on.
Test: http/tests/security/xssAuditor/svg-animate.html
* html/parser/XSSAuditor.cpp:
(WebCore::isSemicolonSeparatedAttribute): Added.
This returns true if the given attribute is SVGNames::valuesAttr,
but makes it possible to easily extend the list with additional
attributes with this strange property.
(WebCore::semicolonSeparatedValueContainsJavaScriptURL): Added.
Given a semicolon-separated string, determine if it contains any
JavaScript URLs.
(WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):
When looking for dangerousness, determine whether or not we should
be comparing against each member of a semicolon-separated list.
2013-03-04 Arvid Nilsson <anilsson@rim.com>
[BlackBerry] New files for BlackBerry::Platform::Graphics::GraphicsContext integration
https://bugs.webkit.org/show_bug.cgi?id=111153
Reviewed by Rob Buis.
BlackBerry PR 293208
This patch contains contributions from many members of the BlackBerry
WebKit team:
Rob Buis
Robin Cao
Eli Fidler
Mike Lattanzio
Yong Li
Maxim Mogilnitsky
Joshua Netterfield
Arvid Nilsson
Jakob Petsovits
Konrad Piascik
Jeff Rogers
Artem Simonov
Filip Spacek
George Staikos
Covered by existing tests.
* platform/graphics/blackberry/FontBlackBerry.cpp: Added.
(FSFixedToFloat):
(FloatToFSFixed):
(WebCore):
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
(WebCore::Font::selectionRectForComplexText):
(WebCore::Font::drawGlyphs):
(WebCore::Font::canReturnFallbackFontsForComplexText):
(WebCore::Font::drawEmphasisMarksForComplexText):
(WebCore::Font::canExpandAroundIdeographsInComplexText):
* platform/graphics/blackberry/FontCacheBlackBerry.cpp: Added.
(WebCore):
(WebCore::FontCache::platformInit):
(WebCore::FontCache::getFontDataForCharacters):
(WebCore::FontCache::getSimilarFontPlatformData):
(WebCore::FontCache::getLastResortFallbackFont):
(WebCore::FontCache::getTraitsInFamily):
(WebCore::getFamilyNameStringFromFontDescriptionAndFamily):
(WebCore::fontWeightToFontconfigWeight):
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/blackberry/FontCustomPlatformData.h: Added.
(WebCore):
(FontCustomPlatformData):
* platform/graphics/blackberry/FontCustomPlatformDataBlackBerry.cpp: Added.
(WebCore):
(WebCore::FontCustomPlatformData::FontCustomPlatformData):
(WebCore::FontCustomPlatformData::~FontCustomPlatformData):
(WebCore::FontCustomPlatformData::fontPlatformData):
(WebCore::FontCustomPlatformData::supportsFormat):
(WebCore::createFontCustomPlatformData):
* platform/graphics/blackberry/FontPlatformDataBlackBerry.cpp: Added.
(WebCore):
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::~FontPlatformData):
(WebCore::FontPlatformData::name):
(WebCore::FontPlatformData::applyState):
(WebCore::FontPlatformData::platformDataInit):
(WebCore::FontPlatformData::platformDataAssign):
(WebCore::FontPlatformData::platformIsEqual):
(WebCore::FontPlatformData::description):
(WebCore::FontPlatformData::harfbuzzFace):
(WebCore::FontPlatformData::scaledFont):
(WebCore::FontPlatformData::setFakeBold):
(WebCore::FontPlatformData::setFakeItalic):
(WebCore::FontPlatformData::platformFontHandle):
(WebCore::FontPlatformData::isFixedPitch):
* platform/graphics/blackberry/GlyphPageTreeNodeBlackBerry.cpp: Added.
(WebCore):
(WorldTypeScopedPtr):
(WebCore::WorldTypeScopedPtr::WorldTypeScopedPtr):
(WebCore::WorldTypeScopedPtr::~WorldTypeScopedPtr):
(WebCore::WorldTypeScopedPtr::get):
(WebCore::GlyphPage::fill):
* platform/graphics/blackberry/GradientBlackBerry.cpp: Added.
(WebCore):
(WebCore::totalStopsNeeded):
(WebCore::fillStops):
(WebCore::Gradient::platformGradient):
(WebCore::Gradient::platformDestroy):
(WebCore::Gradient::fill):
(WebCore::Gradient::setPlatformGradientSpaceTransform):
* platform/graphics/blackberry/GraphicsContextBlackBerry.cpp: Added.
(WebCore):
(GraphicsContextPlatformPrivate):
(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
(WebCore::GraphicsContext::platformContext):
(WebCore::GraphicsContext::savePlatformState):
(WebCore::GraphicsContext::restorePlatformState):
(WebCore::GraphicsContext::setIsAcceleratedContext):
(WebCore::GraphicsContext::isAcceleratedContext):
(WebCore::GraphicsContext::getCTM):
(WebCore::GraphicsContext::concatCTM):
(WebCore::GraphicsContext::setCTM):
(WebCore::GraphicsContext::scale):
(WebCore::GraphicsContext::rotate):
(WebCore::GraphicsContext::translate):
(WebCore::GraphicsContext::drawEllipse):
(WebCore::GraphicsContext::strokeArc):
(WebCore::GraphicsContext::drawConvexPolygon):
(WebCore::GraphicsContext::drawRect):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::clearRect):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::roundToDevicePixels):
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::GraphicsContext::clearPlatformShadow):
(WebCore::GraphicsContext::beginPlatformTransparencyLayer):
(WebCore::GraphicsContext::endPlatformTransparencyLayer):
(WebCore::GraphicsContext::supportsTransparencyLayers):
(WebCore::GraphicsContext::setLineCap):
(WebCore::GraphicsContext::setLineDash):
(WebCore::GraphicsContext::setLineJoin):
(WebCore::GraphicsContext::setMiterLimit):
(WebCore::GraphicsContext::setAlpha):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::clipConvexPolygon):
(WebCore::GraphicsContext::addRoundedRectClip):
(WebCore::GraphicsContext::clipOutRoundedRect):
(WebCore::GraphicsContext::clipBounds):
(WebCore::GraphicsContext::addInnerRoundedRectClip):
(WebCore::GraphicsContext::setURLForRect):
(WebCore::GraphicsContext::setPlatformTextDrawingMode):
(WebCore::GraphicsContext::setPlatformStrokeColor):
(WebCore::GraphicsContext::setPlatformStrokeStyle):
(WebCore::GraphicsContext::setPlatformStrokeThickness):
(WebCore::GraphicsContext::setPlatformFillColor):
(WebCore::GraphicsContext::setPlatformCompositeOperation):
(WebCore::GraphicsContext::setPlatformShouldAntialias):
(WebCore::GraphicsContext::setImageInterpolationQuality):
(WebCore::GraphicsContext::imageInterpolationQuality):
* platform/graphics/blackberry/ITypeUtils.h: Added.
(floatToITypeFixed):
(intToITypeFixed):
(iTypeFixedToFloat):
* platform/graphics/blackberry/ImageBufferBlackBerry.cpp: Added.
(WebCore):
(WebCore::makeBufferCurrent):
(WebCore::getImageDataInternal):
(WebCore::ImageBufferData::getImageData):
(WebCore::flushAndDraw):
(WebCore::ImageBufferData::draw):
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::~ImageBuffer):
(WebCore::ImageBuffer::context):
(WebCore::ImageBuffer::platformLayer):
(WebCore::ImageBuffer::copyImage):
(WebCore::ImageBuffer::clip):
(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):
(WebCore::ImageBuffer::platformTransformColorSpace):
(WebCore::ImageBuffer::getUnmultipliedImageData):
(WebCore::ImageBuffer::getPremultipliedImageData):
(WebCore::ImageBuffer::putByteArray):
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/blackberry/ImageBufferDataBlackBerry.h: Added.
(WebCore):
(ImageBufferData):
* platform/graphics/blackberry/PathBlackBerry.cpp: Added.
(WebCore):
(WebCore::scratchContext):
(WebCore::Path::Path):
(WebCore::Path::~Path):
(WebCore::Path::operator=):
(WebCore::Path::currentPoint):
(WebCore::Path::contains):
(WebCore::Path::strokeContains):
(WebCore::Path::translate):
(WebCore::Path::boundingRect):
(WebCore::Path::strokeBoundingRect):
(WebCore::Path::moveTo):
(WebCore::Path::addLineTo):
(WebCore::Path::addQuadCurveTo):
(WebCore::Path::addBezierCurveTo):
(WebCore::Path::addArcTo):
(WebCore::Path::closeSubpath):
(WebCore::Path::addArc):
(WebCore::Path::addRect):
(WebCore::Path::addEllipse):
(WebCore::Path::platformAddPathForRoundedRect):
(WebCore::Path::clear):
(WebCore::Path::isEmpty):
(WebCore::Path::hasCurrentPoint):
(WebCore::Path::apply):
(WebCore::Path::transform):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::drawFocusRing):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::drawLineForDocumentMarker):
(WebCore::GraphicsContext::drawLineForText):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::clipPath):
(WebCore::GraphicsContext::canvasClip):
(WebCore::GraphicsContext::clipOut):
* platform/graphics/blackberry/PatternBlackBerry.cpp: Added.
(WebCore):
(WebCore::Pattern::platformDestroy):
(WebCore::Pattern::platformPattern):
(WebCore::Pattern::setPlatformPatternSpaceTransform):
* platform/graphics/blackberry/PlatformSupport.cpp: Added.
(WebCore):
(WebCore::PlatformSupport::getFontFamilyForCharacters):
* platform/graphics/blackberry/PlatformSupport.h: Added.
(WebCore):
(PlatformSupport):
(FontFamily):
* platform/graphics/blackberry/SimpleFontDataBlackBerry.cpp: Added.
(WebCore):
(WebCore::FSFixedToFloat):
(WebCore::SimpleFontData::platformInit):
(WebCore::SimpleFontData::platformCharWidthInit):
(WebCore::SimpleFontData::platformDestroy):
(WebCore::SimpleFontData::createScaledFontData):
(WebCore::SimpleFontData::smallCapsFontData):
(WebCore::SimpleFontData::emphasisMarkFontData):
(WebCore::SimpleFontData::containsCharacters):
(WebCore::SimpleFontData::determinePitch):
(WebCore::SimpleFontData::platformBoundsForGlyph):
(WebCore::SimpleFontData::platformWidthForGlyph):
(WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
2013-03-04 Adam Bergkvist <adam.bergkvist@ericsson.com>
MediaStream API: local addTrack() and removeTrack() operations should not fire events.
https://bugs.webkit.org/show_bug.cgi?id=111079
Reviewed by Adam Barth.
Removed the scheduling of "addtrack" and "removetrack" events by
addTrack and removeTrack(). Replaced the test since the old test was
driven by the event firing removed by this patch.
Test: fast/mediastream/MediaStream-add-remove-tracks.html
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
2013-03-04 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: touchmove not emulated inside iframe
https://bugs.webkit.org/show_bug.cgi?id=111292
Reviewed by Vsevolod Vlasov.
Move fake touch event dispatching from mouseMoved() into handleMouseMoveEvent()
and bail out earlier from dispatchSyntheticTouchEventIfEnabled() when the event
should be dispatched on a subframe.
* page/EventHandler.cpp:
(WebCore::EventHandler::mouseMoved):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
2013-03-04 Mike West <mkwst@chromium.org>
Long URLs in error messages should be shortened
https://bugs.webkit.org/show_bug.cgi?id=111133
Reviewed by Jochen Eisinger.
When generating console messages, we're often copying the page's URL
in order to add detail about where the error occurred. Generally, this
is fine, but in edge cases (multi-meg 'data:' URLs), we're using far
more memory than we should, and impacting performance.
This patch adds an 'elidedString()' method to KURL for use in this
sort of case; when generating console messages, we should insert the
elided URL rather than the full URL.
This shouldn't change any visible behavior; we're already visually
eliding URLs in console messages for URLs above 150 characters. This
patch simply changes the underlying string to ensure that no URL is
over 1k in length to begin with.
* platform/KURL.cpp:
(WebCore::KURL::elidedString): Added.
* platform/KURL.h:
An exciting new method that gives you the same result as string()
for URLs less than 1k long, and elides the middle of URLs longer
than 1k by replacing everything but the first and last 0.5k with
"...".
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::canExecuteScripts):
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
(WebCore::WebSocket::send):
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::send):
(WebCore::WebSocketChannel::fail):
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::canExecuteScripts):
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::executeScript):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canPlayType):
(WebCore::HTMLMediaElement::isSafeToLoadURL):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::submitForm):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
(WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
(WebCore::createWindow):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::responseReceived):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::didReceiveResponse):
(WebCore::ApplicationCacheGroup::didFail):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::canRequest):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::loadResource):
(WebCore::CachedResourceLoader::printAccessDeniedMessage):
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPDirectiveList::checkSourceAndReportViolation):
(WebCore::CSPDirectiveList::allowScriptNonce):
(WebCore::CSPDirectiveList::allowPluginType):
Use 'KURL::elidedString()' rather than 'KURL::string()'
* loader/MixedContentChecker.cpp:
(WebCore::MixedContentChecker::logWarning):
Here, we're doing the same as above, but it enables us to throw
away the asUTF8() function entirely by switching to makeString
rather than String::format.
2013-03-04 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: add runtime flag to determine if inspector's source files were flattened.
https://bugs.webkit.org/show_bug.cgi?id=111184
Reviewed by Pavel Feldman.
- Add a file "buildSystemOnly.js" which will be included into
devtools.html only by GYP build system. This script sets a single flag
which essentially means that inspector source files were run
through a build system and flattened.
- Update "importScript" and "registerRequiredCSS" functions to correct
paths according to the "flattenImports" flag.
No new tests: no change in behaviour.
* WebCore.gypi:
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor):
* inspector/front-end/View.js:
(WebInspector.View.prototype.registerRequiredCSS):
* inspector/front-end/buildSystemOnly.js: Added.
* inspector/front-end/utilities.js:
2013-03-04 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Fix front-end compilation
https://bugs.webkit.org/show_bug.cgi?id=111286
Reviewed by Alexander Pavlov.
* inspector/InjectedScriptSource.js:
* inspector/front-end/FileSystemProjectDelegate.js:
* inspector/front-end/NavigatorView.js:
(WebInspector.NavigatorView.prototype.removeUISourceCode):
(WebInspector.NavigatorTreeNode.prototype.reset):
(WebInspector.NavigatorFolderTreeNode.prototype.didAddChild):
2013-03-03 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][WebGL] Add proper checks to enable GraphicsSurface usage on EGL without XCompositeWindow.
https://bugs.webkit.org/show_bug.cgi?id=108034
Reviewed by Laszlo Gombos.
Covered by existing WebGL tests.
Currently, we set GRAPHICS_SURFACE to true if support for XCompositeWindow
is identified during compile time. This is ok, when using GLX. We might not
have support for XCompositeWindow when using EGL and GLES2.0. This patch
makes changes so that GRAPHICS_SURFACE is always enabled with EGL and adds
GLX guard to the parts of code dependent on XCompositeWindow support.
* platform/graphics/opengl/GLPlatformSurface.cpp:
* platform/graphics/surfaces/glx/GLXConfigSelector.h:
(WebCore::GLXConfigSelector::findMatchingConfig):
* platform/graphics/surfaces/glx/X11Helper.cpp:
(WebCore::X11Helper::createOffScreenWindow):
(WebCore::X11Helper::isXRenderExtensionSupported):
* platform/graphics/surfaces/glx/X11Helper.h:
2013-03-03 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [PageAgent] can't find frame by security origin.
https://bugs.webkit.org/show_bug.cgi?id=110849
Use toRawString() in order to compare Frames' SecurityOrigins for storage-related goals.
Reviewed by Vsevolod Vlasov.
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::findFrameWithSecurityOrigin):
2013-03-03 Alexander Pavlov <apavlov@chromium.org>
Unreviewed, rolling out r144455.
http://trac.webkit.org/changeset/144455
https://bugs.webkit.org/show_bug.cgi?id=111165
A simpler solution to the SecurityOrigin -> localStorage
lookup exists
* inspector/front-end/DOMStorage.js:
(WebInspector.DOMStorage.storageId):
(WebInspector.DOMStorage.prototype.get id):
(WebInspector.DOMStorage.prototype.getItems):
(WebInspector.DOMStorage.prototype.setItem):
(WebInspector.DOMStorage.prototype.removeItem):
(WebInspector.DOMStorageModel.prototype._securityOriginAdded):
(WebInspector.DOMStorageModel.prototype._securityOriginRemoved):
(WebInspector.DOMStorageModel.prototype._storageKey):
* inspector/front-end/ExtensionAuditCategory.js:
* inspector/front-end/FileSystemModel.js:
(WebInspector.FileSystemModel.prototype._reset):
(WebInspector.FileSystemModel.prototype._securityOriginAdded):
(WebInspector.FileSystemModel.prototype._securityOriginRemoved):
(WebInspector.FileSystemModel.prototype._addOrigin):
(WebInspector.FileSystemModel.prototype._removeOrigin):
(WebInspector.FileSystemModel.prototype._requestFileSystemRoot):
(WebInspector.FileSystemModel.prototype._fileSystemRootReceived):
(WebInspector.FileSystemModel.prototype._removeFileSystem):
(WebInspector.FileSystemModel.FileSystem.prototype.get name):
* inspector/front-end/IndexedDBModel.js:
(WebInspector.IndexedDBModel.prototype._reset):
(WebInspector.IndexedDBModel.prototype.refreshDatabaseNames):
(WebInspector.IndexedDBModel.prototype._securityOriginAdded):
(WebInspector.IndexedDBModel.prototype._securityOriginRemoved):
(WebInspector.IndexedDBModel.prototype._addOrigin):
(WebInspector.IndexedDBModel.prototype._removeOrigin):
(WebInspector.IndexedDBModel.prototype._updateOriginDatabaseNames):
(WebInspector.IndexedDBModel.prototype._loadDatabaseNames):
(WebInspector.IndexedDBModel.prototype._loadDatabase):
(WebInspector.IndexedDBModel.prototype.):
(WebInspector.IndexedDBModel.prototype._requestData):
(WebInspector.IndexedDBModel.DatabaseId.prototype.equals):
* inspector/front-end/IndexedDBViews.js:
(WebInspector.IDBDatabaseView.prototype._refreshDatabase):
* inspector/front-end/ResourceTreeModel.js:
(WebInspector.ResourceTreeModel):
(WebInspector.ResourceTreeModel.prototype._addFrame):
(WebInspector.ResourceTreeModel.prototype._addSecurityOrigin):
(WebInspector.ResourceTreeModel.prototype._removeSecurityOrigin):
(WebInspector.ResourceTreeModel.prototype.securityOrigins):
(WebInspector.ResourceTreeModel.prototype._handleMainFrameDetached):
(WebInspector.ResourceTreeModel.prototype._frameNavigated):
(WebInspector.ResourceTreeModel.prototype._frameDetached):
(WebInspector.ResourceTreeFrame):
(WebInspector.ResourceTreeFrame.prototype._navigate):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.IDBDatabaseTreeElement):
(WebInspector.IDBDatabaseTreeElement.prototype.get itemURL):
(WebInspector.IDBObjectStoreTreeElement.prototype.get itemURL):
(WebInspector.IDBIndexTreeElement.prototype.get itemURL):
(WebInspector.DOMStorageTreeElement):
(WebInspector.DOMStorageTreeElement.prototype.get itemURL):
(WebInspector.FileSystemTreeElement):
2013-03-01 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Let user know when file system based uiSourceCode was changed on disk.
https://bugs.webkit.org/show_bug.cgi?id=110133
Reviewed by Pavel Feldman.
We now check if file system based uiSourceCode content was updated externally when
UISourceCodeFrame is shown or inspector window is focused.
If there is no working copy being edited right now we replace old content with the new one silently.
Otherwise ask user if he wants to replace his working copy with the new content.
* English.lproj/localizedStrings.js:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype.editRange):
* inspector/front-end/FileSystemProjectDelegate.js:
(WebInspector.FileSystemProjectDelegate.prototype.innerCallback):
(WebInspector.FileSystemProjectDelegate.prototype.requestFileContent):
(WebInspector.FileSystemProjectDelegate.prototype._contentRequestFinished):
(WebInspector.FileSystemProjectDelegate.prototype.requestUpdatedFileContent):
(WebInspector.FileSystemProjectDelegate.prototype.contentCallback):
(WebInspector.FileSystemProjectDelegate.prototype.searchInFileContent):
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame.prototype.wasShown):
(WebInspector.JavaScriptSourceFrame.prototype.willHide):
* inspector/front-end/SimpleWorkspaceProvider.js:
(WebInspector.SimpleProjectDelegate.prototype.requestUpdatedFileContent):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype.setContent):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.checkContentUpdated.updatedContentLoaded):
(WebInspector.UISourceCode.prototype.checkContentUpdated):
* inspector/front-end/UISourceCodeFrame.js:
(WebInspector.UISourceCodeFrame.prototype.wasShown):
(WebInspector.UISourceCodeFrame.prototype.willHide):
(WebInspector.UISourceCodeFrame.prototype._windowFocused):
(WebInspector.UISourceCodeFrame.prototype._checkContentUpdated):
* inspector/front-end/Workspace.js:
(WebInspector.ProjectDelegate.prototype.requestUpdatedFileContent):
(WebInspector.Project.prototype.requestUpdatedFileContent):
2013-03-03 Arpita Bahuguna <a.bah@samsung.com>
createAttribute/setAttributeNode does not properly normalize case
https://bugs.webkit.org/show_bug.cgi?id=90341
Reviewed by Darin Adler.
setAttributeNode() verifies for existing attributes in a case sensitive
manner. Thus, it would add another attribute if specified in a case
different from the existing one. Instead, like setAttribute(), it too
should modify the existing attribute's value.
Test: fast/dom/Element/setAttributeNode-case-insensitivity.html
* dom/Element.cpp:
(WebCore::Element::setAttributeNode):
Made changes to check for an existing attribute by converting the
specified attribute's localName to lowercase.
2013-03-03 Kentaro Hara <haraken@chromium.org>
Unreviewed. Rebaselined run-bindings-tests.
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::indexedSecurityCheck):
(TestActiveDOMObjectV8Internal):
(WebCore::TestActiveDOMObjectV8Internal::namedSecurityCheck):
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(V8TestActiveDOMObject):
2013-03-03 Kentaro Hara <haraken@chromium.org>
Unreviewed build fix after r144590.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateSecurityCheckFunctions):
2013-03-03 Kentaro Hara <haraken@chromium.org>
Unreviewed build fix after r144587.
* bindings/v8/V8Binding.cpp:
(WebCore::toV8Context):
* bindings/v8/V8MutationCallback.cpp:
(WebCore::V8MutationCallback::V8MutationCallback):
2013-03-01 Kentaro Hara <haraken@chromium.org>
[V8] HTMLDocument.all should have [Replaceable]
https://bugs.webkit.org/show_bug.cgi?id=111230
Reviewed by Adam Barth.
(Although HTMLDocument.all is already removed from the spec,)
it is expected to behave as a [Replaceable] attribute. By adding
a [Replaceable] IDL attribute, we can remove custom implementation
of HTMLDocument.all.
I confimed that exactly the same code is generated for .all getter
and setter.
No tests. No change in behavior.
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
* html/HTMLDocument.idl:
2013-03-01 Kentaro Hara <haraken@chromium.org>
[V8] indexedSecurityCheck() and namedSecurityCheck() should be auto-generated
https://bugs.webkit.org/show_bug.cgi?id=111225
Reviewed by Adam Barth.
indexedSecurityCheck() and namedSecurityCheck() should be auto-generated,
except for DOMWindow's ones.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateImplementation):
(GenerateSecurityCheckFunctions):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::namedSecurityCheckCustom):
(WebCore::V8DOMWindow::indexedSecurityCheckCustom):
* bindings/v8/custom/V8HistoryCustom.cpp:
* bindings/v8/custom/V8LocationCustom.cpp:
2013-03-01 Kentaro Hara <haraken@chromium.org>
[V8] Rename $implContentDecls to $implContentInternals in CodeGeneratorV8.pm
https://bugs.webkit.org/show_bug.cgi?id=111214
Reviewed by Adam Barth.
$implContentDecls stores generated code that is put in a namespace 'XXXV8Internal'.
For clarification, it should be renamed to $implContentInternals.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateDomainSafeFunctionGetter):
(GenerateDomainSafeFunctionSetter):
(GenerateConstructorGetter):
(GenerateNormalAttrGetterCallback):
(GenerateNormalAttrGetter):
(GenerateReplaceableAttrSetterCallback):
(GenerateReplaceableAttrSetter):
(GenerateNormalAttrSetterCallback):
(GenerateNormalAttrSetter):
(GenerateOverloadedFunction):
(GenerateFunctionCallback):
(GenerateFunction):
(GenerateOverloadedConstructorCallback):
(GenerateSingleConstructorCallback):
(GenerateEventConstructor):
(GenerateTypedArrayConstructor):
(GenerateImplementation):
(WriteData):
2013-03-01 Kentaro Hara <haraken@chromium.org>
[V8] Rename getWorld() to isolatedWorld(), and getWorldForEnteredContext() to isolatedWorldForEnteredContext()
https://bugs.webkit.org/show_bug.cgi?id=111212
Reviewed by Adam Barth.
The rename I did in r142424 was wrong. Given that getWorld() returns 0
for the main world, it should be named isolatedWorld(). Similarly,
given that getWorldForEnteredContext() returns 0 for the main world,
it should be named isolatedWorldForEnteredContext().
No tests. No change in behavior.
* bindings/v8/CustomElementHelpers.cpp:
(WebCore::CustomElementHelpers::isFeatureAllowed):
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore::DOMWrapperWorld::makeContextWeak):
* bindings/v8/DOMWrapperWorld.h:
(WebCore::DOMWrapperWorld::isolatedWorld):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
(WebCore::ScriptController::currentWorldContext):
* bindings/v8/V8Binding.h:
(WebCore::isolatedWorldForEnteredContext):
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::WorldContextHandle):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8SVGDocumentCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::V8XMLHttpRequest::constructorCustom):
2013-03-01 Kentaro Hara <haraken@chromium.org>
[V8] Move HTMLDocument::getNamedProperty() to DOMWindowShell
https://bugs.webkit.org/show_bug.cgi?id=111223
Reviewed by Adam Barth.
HTMLDocument::getNamedProperty() is used by DOMWindowShell.
It can be a static method in DOMWindowShell.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::getNamedProperty):
(WebCore):
(WebCore::getter):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
2013-03-03 Dan Bernstein <mitz@apple.com>
Build fix after r144565. Reverted r144533.
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
2013-03-03 Adam Barth <abarth@webkit.org>
Attempt to fix the Qt build after r144498
https://bugs.webkit.org/show_bug.cgi?id=111272
Reviewed by Eric Seidel.
Update the Qt version of the XML parser to call the new API.
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::resumeParsing):
(WebCore::XMLDocumentParser::appendFragmentSource):
2013-03-03 Dean Jackson <dino@apple.com>
Plug-ins that are appropriately large w.r.t page size should autostart
https://bugs.webkit.org/show_bug.cgi?id=111242
Reviewed by Brady Eidson.
A "full-page" plug-in site should never snapshot. The trick is
how to determine what is full-page. This change implements the
following algorithm.
- The plug-in is in the main frame (not an iframe).
- The plug-in is sized with width and height 100%.
- The displayed area of the plug-in is more than 96% of the viewport area.
This is definitely not foolproof. For example, zombo.com has a slight
border around its plug-in. As the window size gets smaller, the body margin
takes up more than 5% of the width or height, and the plug-in doesn't pass
the tests above.
* html/HTMLPlugInImageElement.cpp:
(WebCore): New static constant: sizingFullPageThresholdPercentage
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Implements
the rules described above.
2013-03-03 Ryosuke Niwa <rniwa@webkit.org>
[Win] IDLParser.pm fails to parse OESTextureHalfFloat and causes a build failure
https://bugs.webkit.org/show_bug.cgi?id=111267
Reviewed by Kentaro Hara.
Allow empty definitions.
* bindings/scripts/IDLParser.pm:
(Parse):
2013-03-03 David Kilzer <ddkilzer@apple.com>
BUILD FIX: RenderLayerFilterInfo.h needs to include Element.h with ENABLE(SVG)
Fixes the following build failures:
In file included from Source/WebCore/rendering/RenderLayerFilterInfo.cpp:33:
Source/WebCore/rendering/RenderLayerFilterInfo.h:118:19: error: use of undeclared identifier 'Element'
Vector<RefPtr<Element> > m_internalSVGReferences;
^
Source/WebCore/rendering/RenderLayerFilterInfo.h:118:28: error: expected a type
Vector<RefPtr<Element> > m_internalSVGReferences;
^
Source/WebCore/rendering/RenderLayerFilterInfo.h:118:30: error: private field 'm_internalSVGReferences' is not used [-Werror,-Wunused-private-field]
Vector<RefPtr<Element> > m_internalSVGReferences;
^
3 errors generated.
* rendering/RenderLayerFilterInfo.h: Include Element.h within
ENABLE(SVG). Move ENABLE(SVG) block below unconditional
headers.
2013-03-03 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r144567.
http://trac.webkit.org/changeset/144567
https://bugs.webkit.org/show_bug.cgi?id=111266
Does not compile on apple-win (Requested by abarth on
#webkit).
* WebCore.exp.in:
* dom/Document.cpp:
(WebCore::Document::iconURLs):
* dom/Document.h:
(Document):
* loader/icon/IconController.cpp:
(WebCore::IconController::iconURL):
(WebCore::IconController::urlsForTypes):
* loader/icon/IconController.h:
(IconController):
* testing/Internals.cpp:
(WebCore::Internals::iconURLs):
* testing/Internals.h:
* testing/Internals.idl:
2013-03-03 Mike West <mkwst@chromium.org>
CSP 1.1: Support CSP 1.1 directives on the unprefixed header.
https://bugs.webkit.org/show_bug.cgi?id=111254
Reviewed by Adam Barth.
We'd like to ensure that early adopters don't get stuck on a prefixed
header; when CSP 1.1 is baked enough to be supported in multiple
browsers, everything should Just Work™.
This patch changes WebKit's behavior regarding CSP_NEXT features.
Currently, they're only exposed on the prefixed header ('X-WebKit-CSP').
This patch exposes those features on the canonical header, assuming
that the runtime flag is set. This shouldn't have any effect at all on
ports that haven't yet enabled CSP_NEXT, and will simply clear the way
for a clean deployment to a wider audience once the specification
process is further along.
This change shouldn't have any effect on the existing tests: they
should run just as they did before. The next step will be to adjust
the LayoutTests for 1.1 to prefer the canonical header, but I'll do
that in another patch to reduce churn.
Related, the enum names no longer made sense: the difference between the
canonical 'Content-Security-Policy' header and 'X-WebKit-CSP' is the
prefix, not the functionality. This patch renames them for clarity.
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didBeginDocument):
Use the new enum names.
* page/ContentSecurityPolicy.cpp:
(CSPDirectiveList):
(WebCore::CSPDirectiveList::CSPDirectiveList):
(WebCore::CSPDirectiveList::addDirective):
Drop the 'm_experimental' property from CSPDirectiveList; we'll
control the behavior via the runtime flag from now on.
Also, this fixes a small bug in 'addDirective()': we never threw
unrecognized directive errors for users who were sending the
prefixed header. Oops!
(WebCore::ContentSecurityPolicy::deprecatedHeaderType):
Use the new enum names.
* page/ContentSecurityPolicy.h:
Redefine the enum for clarity: 'PrefixedReport' and 'Report'
rather than 'ReportAllDirectives' and 'ReportStableDirectives'.
2013-03-03 Ryosuke Niwa <rniwa@webkit.org>
Another Windows build fix attempt after r144567.
Try touching the IDL file in a hope it'll regenerate JSInternals.cpp.
* testing/Internals.idl:
2013-03-03 Adam Barth <abarth@webkit.org>
Unreviewed attempted build fix. Adds back some includes removed in
http://trac.webkit.org/changeset/144565.
* Modules/mediastream/RTCPeerConnection.cpp:
* bindings/ScriptControllerBase.cpp:
* bindings/objc/DOM.mm:
* bindings/v8/ScriptController.cpp:
* bindings/v8/V8DOMWindowShell.cpp:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
* css/CSSFontSelector.cpp:
* css/WebKitCSSSVGDocumentValue.cpp:
* dom/DOMImplementation.cpp:
* dom/PendingScript.h:
* dom/ScriptElement.cpp:
* dom/ScriptElement.h:
* history/CachedFrame.cpp:
* html/DOMURL.cpp:
* html/HTMLAnchorElement.cpp:
* html/HTMLAppletElement.cpp:
* html/HTMLElement.cpp:
* html/HTMLEmbedElement.cpp:
* html/HTMLFrameSetElement.cpp:
* html/HTMLHtmlElement.cpp:
* html/HTMLImageElement.cpp:
* html/HTMLObjectElement.cpp:
* html/HTMLPlugInElement.cpp:
* html/ImageDocument.cpp:
* html/ImageInputType.cpp:
* html/MediaDocument.cpp:
* html/PluginDocument.cpp:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
* html/parser/HTMLConstructionSite.cpp:
* html/parser/HTMLParserOptions.cpp:
* html/parser/XSSAuditorDelegate.cpp:
* inspector/InspectorDebuggerAgent.cpp:
* inspector/InspectorFileSystemAgent.cpp:
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorInstrumentation.h:
* inspector/InspectorPageAgent.cpp:
* inspector/NetworkResourcesData.cpp:
* inspector/NetworkResourcesData.h:
(WebCore):
* loader/CookieJar.cpp:
* loader/CrossOriginAccessControl.cpp:
* loader/FrameLoader.cpp:
* loader/MainResourceLoader.cpp:
* loader/MixedContentChecker.cpp:
* loader/PingLoader.cpp:
* loader/SubframeLoader.cpp:
* loader/SubresourceLoader.cpp:
* loader/appcache/ApplicationCacheGroup.cpp:
* loader/appcache/ApplicationCacheHost.cpp:
* loader/cache/CachedResource.cpp:
* loader/icon/IconController.cpp:
* page/DOMWindowExtension.cpp:
* page/Frame.cpp:
* page/PerformanceTiming.cpp:
* page/PointerLockController.cpp:
* page/animation/CSSPropertyAnimation.cpp:
* platform/chromium/PasteboardChromium.cpp:
* platform/efl/ErrorsEfl.cpp:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
* platform/gtk/ErrorsGtk.cpp:
* platform/gtk/PasteboardGtk.cpp:
* platform/gtk/PasteboardHelper.h:
* platform/mac/ClipboardMac.mm:
* platform/mac/HTMLConverter.mm:
* platform/qt/PasteboardQt.cpp:
* plugins/DOMMimeType.cpp:
* plugins/PluginView.cpp:
* rendering/HitTestResult.cpp:
* rendering/RenderImage.cpp:
* rendering/RenderImageResource.cpp:
* rendering/RenderImageResourceStyleImage.cpp:
* rendering/RenderLayer.cpp:
* rendering/RenderLayerBacking.cpp:
* svg/SVGImageLoader.cpp:
* svg/SVGUseElement.cpp:
* testing/MockPagePopupDriver.cpp:
* xml/XSLStyleSheet.h:
(WebCore):
2013-03-03 Ruslan Abdikeev <aruslan@chromium.org>
<link rel="apple-touch-icon"> tag is not honored on CNN.com, workflowy.com etc
https://bugs.webkit.org/show_bug.cgi?id=109061
Reviewed by Adam Barth.
Test: fast/dom/icon-url-list-apple-touch.html
Added iconTypes parameter to Document::iconURLs().
Added Document::shortcutIconURLs() with original semantics of iconURLs().
Fixed IconController.cpp to provide iconTypesMask to iconURLs().
Renamed iconTypes to iconTypesMask to make the meaning clearer.
* WebCore.exp.in:
* dom/Document.cpp:
(WebCore::Document::shortcutIconURLs):
(WebCore):
(WebCore::Document::iconURLs):
* dom/Document.h:
(Document):
* loader/icon/IconController.cpp:
(WebCore::IconController::iconURL):
(WebCore::IconController::urlsForTypes):
* testing/Internals.cpp:
(WebCore::Internals::iconURLs):
(WebCore::Internals::shortcutIconURLs):
(WebCore):
(WebCore::Internals::allIconURLs):
* testing/Internals.h:
* testing/Internals.idl:
2013-03-03 Mike West <mkwst@chromium.org>
CSP: Throw a warning when a '*-report-only' header doesn't contain a 'report-uri' directive.
https://bugs.webkit.org/show_bug.cgi?id=111208
Reviewed by Adam Barth.
Developers in the wild have been observed to serve a report-only CSP
header with a policy that doesn't contain a 'report-uri' directive.
This has zero effect, of course, and we should help them understand
that by throwing a warning up on the console.
Test: http/tests/security/contentSecurityPolicy/report-only-report-uri-missing.html
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPDirectiveList::isReportOnly): Added.
(WebCore::CSPDirectiveList::reportURIs): Added.
(WebCore::CSPDirectiveList::create):
After creating a CSPDirectiveList, check whether it's in
report-only mode without a report-uri. If so, warn the developer.
(WebCore::ContentSecurityPolicy::reportMissingReportURI): Added.
Write an exciting message to the console, warning the developer
about her expensive no-op machine.
2013-03-03 Adam Barth <abarth@webkit.org>
Unreviewed rollout of http://trac.webkit.org/r144530
As described in https://bugs.webkit.org/show_bug.cgi?id=111167 and
https://bugs.webkit.org/show_bug.cgi?id=111035, this patch caused a
large number of ASSERTs in chromium-win.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/RTCPeerConnection.cpp:
* Modules/notifications/Notification.cpp:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/ScriptControllerBase.cpp:
* bindings/js/JSNodeCustom.cpp:
* bindings/js/ScriptController.cpp:
* bindings/js/ScriptSourceCode.h:
(WebCore):
* bindings/objc/DOM.mm:
* bindings/v8/ScriptController.cpp:
* bindings/v8/V8DOMWindowShell.cpp:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
* css/CSSCrossfadeValue.h:
(WebCore::CSSCrossfadeValue::CSSCrossfadeValue):
(WebCore::CSSCrossfadeValue::CrossfadeSubimageObserverProxy::CrossfadeSubimageObserverProxy):
* css/CSSFontFaceSource.h:
* css/CSSFontSelector.cpp:
* css/WebKitCSSSVGDocumentValue.cpp:
* css/WebKitCSSSVGDocumentValue.h:
(WebCore):
* dom/Clipboard.cpp:
(WebCore::Clipboard::Clipboard):
* dom/ContainerNode.cpp:
* dom/DOMImplementation.cpp:
* dom/PendingScript.h:
* dom/ScriptElement.cpp:
* dom/ScriptElement.h:
* history/CachedFrame.cpp:
* html/DOMURL.cpp:
* html/HTMLAnchorElement.cpp:
* html/HTMLAppletElement.cpp:
* html/HTMLElement.cpp:
* html/HTMLEmbedElement.cpp:
* html/HTMLFrameSetElement.cpp:
* html/HTMLHtmlElement.cpp:
* html/HTMLImageElement.cpp:
* html/HTMLObjectElement.cpp:
* html/HTMLPlugInElement.cpp:
* html/ImageDocument.cpp:
* html/ImageInputType.cpp:
* html/MediaDocument.cpp:
* html/PluginDocument.cpp:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
* html/parser/HTMLConstructionSite.cpp:
* html/parser/HTMLParserOptions.cpp:
* html/parser/HTMLScriptRunner.h:
* html/parser/XSSAuditor.cpp:
* html/parser/XSSAuditorDelegate.cpp:
* inspector/InspectorDebuggerAgent.cpp:
* inspector/InspectorFileSystemAgent.cpp:
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorInstrumentation.h:
(WebCore):
* inspector/InspectorPageAgent.cpp:
* inspector/NetworkResourcesData.cpp:
* inspector/NetworkResourcesData.h:
(WebCore):
* loader/CookieJar.cpp:
* loader/CrossOriginAccessControl.cpp:
* loader/CrossOriginAccessControl.h:
(WebCore):
* loader/CrossOriginPreflightResultCache.h:
* loader/DocumentThreadableLoader.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
* loader/FrameLoader.h:
(WebCore):
(WebCore::FrameLoader::policyChecker):
* loader/ImageLoader.cpp:
* loader/ImageLoader.h:
* loader/LinkLoader.h:
(WebCore):
* loader/MainResourceLoader.cpp:
* loader/MainResourceLoader.h:
(WebCore):
* loader/MixedContentChecker.cpp:
* loader/PingLoader.cpp:
* loader/PolicyChecker.h:
(WebCore):
* loader/ProgressTracker.cpp:
* loader/SubframeLoader.cpp:
* loader/SubresourceLoader.cpp:
* loader/TextTrackLoader.cpp:
* loader/TextTrackLoader.h:
(WebCore):
* loader/ThreadableLoader.h:
* loader/appcache/ApplicationCacheGroup.cpp:
* loader/appcache/ApplicationCacheGroup.h:
(WebCore):
* loader/appcache/ApplicationCacheHost.cpp:
* loader/archive/cf/LegacyWebArchive.cpp:
* loader/cache/CachedFont.cpp:
* loader/cache/CachedFont.h:
(CachedFontClient):
(WebCore::CachedFontClient::~CachedFontClient):
(WebCore::CachedFontClient::expectedType):
(WebCore::CachedFontClient::resourceClientType):
(WebCore::CachedFontClient::fontLoaded):
(WebCore):
* loader/cache/CachedFontClient.h: Removed.
* loader/cache/CachedImage.cpp:
* loader/cache/CachedRawResource.cpp:
* loader/cache/CachedRawResource.h:
(WebCore):
(CachedRawResourceClient):
(WebCore::CachedRawResourceClient::~CachedRawResourceClient):
(WebCore::CachedRawResourceClient::expectedType):
(WebCore::CachedRawResourceClient::resourceClientType):
(WebCore::CachedRawResourceClient::dataSent):
(WebCore::CachedRawResourceClient::responseReceived):
(WebCore::CachedRawResourceClient::dataReceived):
(WebCore::CachedRawResourceClient::redirectReceived):
(WebCore::CachedRawResourceClient::dataDownloaded):
* loader/cache/CachedRawResourceClient.h: Removed.
* loader/cache/CachedResource.cpp:
* loader/cache/CachedResourceHandle.cpp:
(WebCore):
* loader/cache/CachedResourceHandle.h:
(WebCore):
(WebCore::CachedResourceHandleBase::~CachedResourceHandleBase):
(WebCore::CachedResourceHandleBase::CachedResourceHandleBase):
* loader/cache/CachedSVGDocument.h:
(CachedSVGDocumentClient):
(WebCore::CachedSVGDocumentClient::~CachedSVGDocumentClient):
(WebCore::CachedSVGDocumentClient::expectedType):
(WebCore::CachedSVGDocumentClient::resourceClientType):
(WebCore):
* loader/cache/CachedSVGDocumentClient.h: Removed.
* loader/cache/CachedSVGDocumentReference.cpp: Removed.
* loader/cache/CachedSVGDocumentReference.h:
(WebCore):
(WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
(WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
* loader/cache/CachedStyleSheetClient.h:
(WebCore):
* loader/cache/MemoryCache.h:
(WebCore):
(MemoryCache):
* loader/chromium/CachedRawResourceChromium.cpp:
* loader/icon/IconController.cpp:
* loader/icon/IconLoader.h:
* loader/mac/ResourceLoaderMac.mm:
* page/DOMWindowExtension.cpp:
* page/Frame.cpp:
(WebCore::Frame::Frame):
(WebCore):
(WebCore::Frame::reportMemoryUsage):
* page/Frame.h:
(WebCore):
(Frame):
(WebCore::Frame::init):
(WebCore::Frame::loader):
* page/PerformanceNavigation.cpp:
* page/PerformanceTiming.cpp:
* page/PointerLockController.cpp:
* page/Settings.cpp:
* page/animation/CSSPropertyAnimation.cpp:
* platform/chromium/PasteboardChromium.cpp:
* platform/efl/ErrorsEfl.cpp:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/filters/FilterOperation.cpp:
(WebCore):
* platform/graphics/filters/FilterOperation.h:
(WebCore):
(WebCore::FilterOperation::ReferenceFilterOperation::setCachedSVGDocumentReference):
(WebCore::FilterOperation::ReferenceFilterOperation::ReferenceFilterOperation):
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
* platform/gtk/ErrorsGtk.cpp:
* platform/gtk/PasteboardGtk.cpp:
* platform/gtk/PasteboardHelper.h:
* platform/mac/ClipboardMac.h:
* platform/mac/ClipboardMac.mm:
* platform/mac/HTMLConverter.mm:
* platform/mac/PasteboardMac.mm:
* platform/network/AuthenticationChallengeBase.cpp:
* platform/network/cf/CookieJarCFNet.cpp:
* platform/network/cf/ResourceRequestCFNet.cpp:
* platform/network/mac/CookieStorageMac.mm:
* platform/qt/PasteboardQt.cpp:
* plugins/DOMMimeType.cpp:
* plugins/PluginRequest.h: Removed.
* plugins/PluginStream.h:
(PluginStreamClient):
(WebCore::PluginStreamClient::~PluginStreamClient):
(WebCore::PluginStreamClient::streamDidFinishLoading):
(WebCore):
* plugins/PluginStreamClient.h: Removed.
* plugins/PluginView.cpp:
* plugins/PluginView.h:
(WebCore):
(PluginRequest):
(WebCore::PluginRequest::PluginRequest):
(WebCore::PluginRequest::frameLoadRequest):
(WebCore::PluginRequest::notifyData):
(WebCore::PluginRequest::sendNotification):
(WebCore::PluginRequest::shouldAllowPopups):
* rendering/HitTestResult.cpp:
* rendering/InlineFlowBox.cpp:
* rendering/RenderBox.cpp:
* rendering/RenderEmbeddedObject.cpp:
* rendering/RenderImage.cpp:
* rendering/RenderImageResource.cpp:
(WebCore::RenderImageResource::RenderImageResource):
(WebCore):
* rendering/RenderImageResource.h:
(WebCore::RenderImageResource::image):
(WebCore::RenderImageResource::errorOccurred):
(WebCore::RenderImageResource::usesImageContainerSize):
(WebCore::RenderImageResource::imageHasRelativeWidth):
(WebCore::RenderImageResource::imageHasRelativeHeight):
(WebCore::RenderImageResource::imageSize):
* rendering/RenderImageResourceStyleImage.cpp:
* rendering/RenderLayer.cpp:
* rendering/RenderLayerBacking.cpp:
* rendering/RenderLayerFilterInfo.h:
(WebCore):
* rendering/RenderListItem.cpp:
* rendering/RenderListMarker.cpp:
* rendering/RenderSnapshottedPlugIn.cpp:
* rendering/RenderTableCol.cpp:
* rendering/RenderTableRow.cpp:
* rendering/RenderTableSection.cpp:
* rendering/style/StyleCachedShader.h:
* rendering/style/StyleCustomFilterProgram.cpp: Removed.
* rendering/style/StyleCustomFilterProgram.h:
(WebCore):
(WebCore::StyleCustomFilterProgram::vertexShaderString):
(StyleCustomFilterProgram):
(WebCore::StyleCustomFilterProgram::fragmentShaderString):
(WebCore::StyleCustomFilterProgram::isLoaded):
(WebCore::StyleCustomFilterProgram::willHaveClients):
(WebCore::StyleCustomFilterProgram::didRemoveLastClient):
(WebCore::StyleCustomFilterProgram::notifyFinished):
* svg/SVGFEImageElement.h:
* svg/SVGFontFaceUriElement.h:
(SVGFontFaceUriElement):
* svg/SVGImageLoader.cpp:
* svg/SVGUseElement.cpp:
* svg/SVGUseElement.h:
* svg/graphics/SVGImageCache.cpp:
* testing/MockPagePopupDriver.cpp:
* xml/XSLStyleSheet.h:
(WebCore):
* xml/XSLTProcessorLibxslt.cpp:
* xml/parser/XMLDocumentParser.cpp:
* xml/parser/XMLDocumentParser.h:
* xml/parser/XMLDocumentParserLibxml2.cpp:
2013-03-03 Kentaro Hara <haraken@chromium.org>
[V8] Remove TranslateParameter() from CodeGeneratorV8.pm
https://bugs.webkit.org/show_bug.cgi?id=111218
Reviewed by Adam Barth.
TranslateParameter() does nothing. It tries to convert TimeoutHandler to DOMString,
but there is no non-custom method that uses TimeoutHandler.
The only place where TimeoutHandler is used in the WebKit IDL is setTimeout() and setInterval().
However, the latest spec uses 'any' instead of TimeoutHandler.
http://dev.w3.org/html5/spec-LC/timers.html
Thus, this patch updates the IDL declarations of setTimeout() and setInterval()
according to the spec. By this change, TimeoutHandler is gone away from the WebKit IDL.
(Anyway this IDL change has no effect, because setTimeout() and setInterval() are written
in custom bindings.)
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateParametersCheck):
* page/DOMWindow.idl:
* workers/WorkerContext.idl:
2013-03-03 James Weatherall <wez@chromium.org>
keydown and keyup events have zero keycode for some numeric pad keys under Chromium on Linux
https://bugs.webkit.org/show_bug.cgi?id=85642
Add missing key mappings for GDK_KP_Begin, GDK_KP_Insert, GDK_KP_Delete and GDK_ISO_Level3_Shift.
Reviewed by Adam Barth.
* platform/chromium/KeyCodeConversionGtk.cpp:
(WebCore::windowsKeyCodeForKeyEvent):
2013-03-03 Adam Barth <abarth@webkit.org>
REGRESSION(144520): Does not compile on chromium-win
https://bugs.webkit.org/show_bug.cgi?id=111261
Unreviewed rollout of http://trac.webkit.org/changeset/144520. This
patch does not compile for chromium-win. See the bug for the compile
error.
* rendering/ExclusionShapeInsideInfo.cpp:
* rendering/ExclusionShapeInsideInfo.h:
(WebCore):
(LineSegmentRange):
(WebCore::LineSegmentRange::LineSegmentRange):
(WebCore::ExclusionShapeInsideInfo::isEnabledFor):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::willBeDestroyed):
(WebCore::RenderBlock::exclusionShapeInsideInfo):
(WebCore):
(WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange):
* rendering/RenderBlock.h:
(WebCore):
(RenderBlock):
(RenderBlockRareData):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::constructBidiRunsForLine):
2013-03-02 Zan Dobersek <zdobersek@igalia.com>
REGRESSION (r144517): IndexedDB layout test failures on GTK
https://bugs.webkit.org/show_bug.cgi?id=111243
Reviewed by Martin Robinson.
Changes to the custom JSC bindings for IDBAny are required after r144517,
specifically the case of IDBAny object having the KeyPathType type has to be covered.
These changes are analogous to those made to the V8 bindings in the mentioned commit.
No new tests - already covered by existing tests.
* bindings/js/JSIDBAnyCustom.cpp:
(WebCore::toJS): A helper function that wraps an IDBKeyPath into a JSValue.
(WebCore): Shuffle the order inside the switch statement a bit to match the V8 custom bindings.
Cover the case where the IDBAny object has the KeyPathType, calling the new helper method.
2013-03-02 Darin Adler <darin@apple.com>
Another try at fixing the build.
* loader/cache/MemoryCache.cpp: Added an include of CachedResourceHandle.h.
2013-03-02 Darin Adler <darin@apple.com>
Try to fix build.
* inspector/InspectorInstrumentation.h: Add missing forward declaration
of CachedResource.
2013-02-18 Darin Adler <darin@apple.com>
Cut down the number of source files that depend on Clipboard.h
https://bugs.webkit.org/show_bug.cgi?id=110030
Reviewed by Ryosuke Niwa.
I am doing some work on Clipboard and it's better to recompile 50 files
each time we touch the header instead of 700. Also cut down on includes
of DragState.h.
* WebCore.exp.in: Updated for new MouseEvent::create function.
* dom/ClipboardEvent.cpp: Added include of Clipboard.h since we use it
here and the world no longer includes it everywhere.
* dom/ClipboardEvent.h: Forward declared Clipboard instead of including
Clipboard.h. Also made some overrides private because they can be.
* dom/DataTransferItem.h: Removed unneeded include of Clipboard.h.
* dom/MouseEvent.cpp: Added include of Clipboard.h since we use it
here and the world no longer includes it everywhere.
(WebCore::MouseEvent::create): Made the create function non-inline
since we can't compile it without including Clipboard.h and we don't
want to include Clipboard.h in the header. This is not so commonly
used or so hot that this needs to be inlined.
* dom/MouseEvent.h: Forward declared Clipboard instead of including
Clipboard.h. Made MouseEvent::create a non-inline function and also
used overloading instead of default arguments, since we can't compile
a default argument of type PassRefPtr<Clipboard> without including
Clipboard.h.
* dom/WheelEvent.cpp: Added include of Clipboard.h since we use it
here and the world no longer includes it everywhere.
* dom/WheelEvent.h: Forward declare PlatformWheelEvent since it is used
in this header. Previously we'd get it indirectly from including a header
that included Clipboard.h.
* editing/Editor.cpp: Added include of Clipboard.h since we use it here
and the world no longer includes it everywhere.
* inspector/InspectorDebuggerAgent.cpp: Added include of CachedResource.h.
We used to get this indirectly through Clipboard.h.
* inspector/InspectorFrontendHost.cpp: Added includes of ResourceError.h
and ResourceResponse.h. We used to get these indirectly through Clipboard.h.
Also removed unneeded include of <wtf/RefPtr.h>.
* inspector/NetworkResourcesData.cpp: Added include of CachedResource.h.
We used to get this indirectly through Clipboard.h.
* loader/PingLoader.cpp: Added include of ResourceResponse.h.
We used to get this indirectly through Clipboard.h.
* page/DragController.cpp: Added include of DragState.h.
We used to get this indirectly through EventHandler.h
* page/EventHandler.h: Forward declared DragState and Element instead of
including DragState.h. Also added an include of LayoutPoint.h, which we
used to get indirectly through DragState.h.
2013-02-27 Darin Adler <darin@apple.com>
StringHasher functions require alignment that call sites do not all guarantee
https://bugs.webkit.org/show_bug.cgi?id=110171
Reviewed by Benjamin Poulain.
* platform/graphics/WidthCache.h:
(WebCore::WidthCache::SmallStringKey::SmallStringKey): Use the newly added
addCharactersAssumingAligned to make sure we don't slow this call site down.
It's safe since this code always adds characters two at a time.
2013-03-02 Adam Barth <abarth@webkit.org>
XSSAuditor has a subtle race condition when used with the threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=111253
Reviewed by Eric Seidel.
We were refing and derefing a StringImpl for a main-thread
AtomicString. Using QualifiedNames on the background thread is very
fragile and we should figure out a more robust solution.
* html/parser/XSSAuditor.cpp:
(WebCore::findAttributeWithName):
2013-03-02 Benjamin Poulain <bpoulain@apple.com>
Move computedStyleIncludingVisitedInfo from TestRunner to Internals
https://bugs.webkit.org/show_bug.cgi?id=109772
Reviewed by Andreas Kling.
The function computedStyleIncludingVisitedInfo() is purely internal to WebCore,
it is better defined on Internals than on TestRunner.
* testing/Internals.cpp:
(WebCore::Internals::computedStyleIncludingVisitedInfo):
* testing/Internals.h:
* testing/Internals.idl:
2013-03-02 David Kilzer <ddkilzer@apple.com>
BUILD FIX (r143637): Export ScriptController::javaScriptContext() on iOS
<http://webkit.org/b/106059>
Fixes the following build failure:
Undefined symbols for architecture armv7:
"__ZN7WebCore16ScriptController17javaScriptContextEv", referenced from:
-[WebFrame javaScriptContext] in WebFrame.o
__ZN20WebFrameLoaderClient35dispatchDidClearWindowObjectInWorldEPN7WebCore15DOMWrapperWorldE in WebFrameLoaderClient.o
ld: symbol(s) not found for architecture armv7
* WebCore.exp.in: Export ScriptController::javaScriptContext()
even more unconditionally.
2013-03-02 Eric Seidel <eric@webkit.org>
Remove two unnecessary mallocs from the main-thread-parser code path
https://bugs.webkit.org/show_bug.cgi?id=111249
Reviewed by Adam Barth.
I noticed these while fixing up our Vector -> String conversions
but never went back to fix the FIXME.
AtomicString(Vector<UChar, capacity>) is smart enough to avoid mallocing
if the represented string is already in the AtomicString table. It
also handles 8bit vs. 16bit and empty() just like nameString() does.
I also removed a 3rd caller to nameString() in the XSSAuditor which
was causing an unnecessary malloc in both the main and background
thread parser paths.
* html/parser/AtomicHTMLToken.h:
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
* html/parser/HTMLToken.h:
* html/parser/XSSAuditor.cpp:
(WebCore):
(WebCore::threadSafeMatch):
(WebCore::hasName):
2013-03-02 Eric Seidel <eric@webkit.org>
constructTreeFromCompactHTMLToken should call clearExternalCharacters
https://bugs.webkit.org/show_bug.cgi?id=111248
Reviewed by Adam Barth.
I don't know how to write a test for this. It's possible characters()
is never accessed from HTMLStackItem::token(), but it's better to be
safe than sorry here.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::constructTreeFromCompactHTMLToken):
2013-03-02 Rob Buis <rbuis@rim.com>
Text overflow ellipsis wrong color when using webkit-text-fill-color
https://bugs.webkit.org/show_bug.cgi?id=54841
Reviewed by David Hyatt.
Take -webkit-text-fill-color into account for ellipsis painting.
Test: fast/css/text-overflow-ellipsis-color.html
* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::paint):
2013-03-02 Ryosuke Niwa <rniwa@webkit.org>
Fix a typo in my previous commit (r144534).
* platform/win/PasteboardWin.cpp:
2013-03-02 Nayan Kumar K <nayankk@motorola.com>
[WebGL] Support for texImage2D of type HALF_FLOAT_OES with ArrayBufferView.
https://bugs.webkit.org/show_bug.cgi?id=110818
Reviewed by Kenneth Russell.
As per OES_texture_half_float specification texImage2D and texSubImage2D entry
points taking ArrayBufferView should extended to accept null with the pixel type
HALF_FLOAT_OES.
Tests: fast/canvas/webgl/oes-texture-half-float-not-supported.html
fast/canvas/webgl/oes-texture-half-float.html
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::toJS):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toV8Object):
* html/canvas/OESTextureHalfFloat.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
(WebCore):
(WebCore::OESTextureHalfFloat::OESTextureHalfFloat):
(WebCore::OESTextureHalfFloat::~OESTextureHalfFloat):
(WebCore::OESTextureHalfFloat::getName):
(WebCore::OESTextureHalfFloat::create):
* html/canvas/OESTextureHalfFloat.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
(WebCore):
(OESTextureHalfFloat):
* html/canvas/OESTextureHalfFloat.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
* html/canvas/WebGLExtension.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::texImage2D):
(WebCore::WebGLRenderingContext::texSubImage2D):
(WebCore::WebGLRenderingContext::validateTexFuncFormatAndType):
(WebCore::WebGLRenderingContext::validateTexFuncData):
* html/canvas/WebGLRenderingContext.h:
(WebCore):
(WebGLRenderingContext):
* html/canvas/WebGLRenderingContext.idl:
* platform/graphics/Extensions3D.h:
(Extensions3D):
* platform/graphics/GraphicsContext3D.cpp:
(WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/GraphicsTypes3D.h:
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::texImage2D):
2013-03-02 Ryosuke Niwa <rniwa@webkit.org>
Windows build fix attempt after r144530.
* platform/win/PasteboardWin.cpp:
2013-03-01 Dan Bernstein <mitz@apple.com>
Tried to fix the build after r144530.
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Include the header for the
base class.
2013-03-01 Terry Anderson <tdanderson@chromium.org>
Remove unused member variable m_useLatchedEventNode from PlatformWheelEvent.h
https://bugs.webkit.org/show_bug.cgi?id=107314
Reviewed by Darin Adler.
EventHandler::handleGestureScrollCore() was removed in http://trac.webkit.org/changeset/140177,
and this was the only place where the member variable |m_useLatchedEventNode| in
PlatformWheelEvent was mutated. This variable is no longer needed and so it should be removed.
No change in behavior, so no new tests needed.
* platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
(WebCore::PlatformWheelEvent::useLatchedEventNode):
(PlatformWheelEvent):
2013-02-28 Alexey Proskuryakov <ap@apple.com>
Reduce amount of rebuilding when touching networking headers
https://bugs.webkit.org/show_bug.cgi?id=111035
Reviewed by Eric Seidel.
This uses a number of common unsurprising techniques. One interesting observation
is that including CachedResource related headers is very expensive. We can usually
get away with their Client counterparts, and with CachedResourceHandle.
* page/Frame.cpp:
* page/Frame.h:
Don't include FrameLoader, greatly reducing include graph for most non-loader files.
This required making Frame::init() non-inline - I'm not sure why it ever was.
* loader/FrameLoader.cpp:
* loader/FrameLoader.h:
Even though FrameLoader is logically on loading side of WebCore, it's included in
too many places. Not including PolicyChecker.h and ResourceHandle.h was among the
largest wins. As a future improvement, we should probably convert other members
to OwnPtrs.
* css/CSSCrossfadeValue.h: Initializing CachedResourceHandle with 0 requires a
definition of a class it holds, but default construction does not.
* loader/CrossOriginAccessControl.h: This file among others only needs ResourceHandleTypes.h,
not ResourceHandle.h. This header is semi-recent, so not all include sites were updated.
* loader/cache/CachedFont.h:
* loader/cache/CachedFontClient.h: Added.
* loader/cache/CachedRawResource.h:
* loader/cache/CachedRawResourceClient.h: Added.
* loader/cache/CachedSVGDocument.h:
* loader/cache/CachedSVGDocumentClient.h: Added.
These types were defining client types in the same headers, making it impossible
to avoid including networking headers through CachedResource. Moved clients into
separate files.
* plugins/PluginStream.h:
* plugins/PluginStreamClient.h: Added.
Similar situation here.
* loader/cache/CachedResourceHandle.cpp:
* loader/cache/CachedResourceHandle.h:
Moved functions that need to know about CachedResource to .cpp file. This is another
huge win. Added a destructor, so that CachedResource woudn't be needed in all files
that include CachedResourceHandle.
* loader/cache/CachedSVGDocumentReference.cpp: Added.
* loader/cache/CachedSVGDocumentReference.h:
Moved constructor and virtual function implementations to a .cpp file - they need
not inlining, and this lets us avoid including CachedSVGDocument.h in the header.
* platform/graphics/filters/FilterOperation.cpp:
* platform/graphics/filters/FilterOperation.h:
Avoid including CachedSVGDocumentReference.h. This is not such a big win now that
CachedSVGDocumentReference.h itself is smaller, but FilterOperation is so clearly
rendering code that it seems best to cut any ties with resources and loading.
Added a virtual destrutor in .cpp file, because inline destructors in polymorphic
classes are generally harmful (due to code bloat).
* plugins/PluginRequest.h: Added.
* plugins/PluginView.h:
Moved PluginRequest into a separate file, it was out of place in a view hierarchy
class file.
* rendering/RenderImageResource.cpp:
* rendering/RenderImageResource.h:
Moved definitions of virtual functions to a .cpp file. Thre is no win from having
them inline, and now we don't need CachedImage.h in the header.
* rendering/style/StyleCustomFilterProgram.cpp: Added.
* rendering/style/StyleCustomFilterProgram.h:
Ditto.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/RTCPeerConnection.cpp:
* Modules/notifications/Notification.cpp:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/ScriptControllerBase.cpp:
* bindings/js/JSNodeCustom.cpp:
* bindings/js/ScriptController.cpp:
* bindings/js/ScriptSourceCode.h:
* bindings/objc/DOM.mm:
* bindings/v8/ScriptController.cpp:
* bindings/v8/V8DOMWindowShell.cpp:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
* css/CSSFontFaceSource.h:
* css/CSSFontSelector.cpp:
* css/WebKitCSSSVGDocumentValue.cpp:
* css/WebKitCSSSVGDocumentValue.h:
* dom/Clipboard.cpp:
* dom/ContainerNode.cpp:
* dom/DOMImplementation.cpp:
* dom/PendingScript.h:
* dom/ScriptElement.cpp:
* dom/ScriptElement.h:
* history/CachedFrame.cpp:
* html/DOMURL.cpp:
* html/HTMLAnchorElement.cpp:
* html/HTMLAppletElement.cpp:
* html/HTMLElement.cpp:
* html/HTMLEmbedElement.cpp:
* html/HTMLFrameSetElement.cpp:
* html/HTMLHtmlElement.cpp:
* html/HTMLImageElement.cpp:
* html/HTMLObjectElement.cpp:
* html/HTMLPlugInElement.cpp:
* html/ImageDocument.cpp:
* html/ImageInputType.cpp:
* html/MediaDocument.cpp:
* html/PluginDocument.cpp:
* html/canvas/WebGLRenderingContext.cpp:
* html/parser/HTMLConstructionSite.cpp:
* html/parser/HTMLParserOptions.cpp:
* html/parser/HTMLScriptRunner.h:
* html/parser/XSSAuditor.cpp:
* html/parser/XSSAuditorDelegate.cpp:
* inspector/InspectorDebuggerAgent.cpp:
* inspector/InspectorFileSystemAgent.cpp:
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorInstrumentation.h:
* inspector/InspectorPageAgent.cpp:
* inspector/NetworkResourcesData.cpp:
* inspector/NetworkResourcesData.h:
* loader/CookieJar.cpp:
* loader/CrossOriginAccessControl.cpp:
* loader/CrossOriginPreflightResultCache.h:
* loader/DocumentThreadableLoader.h:
* loader/ImageLoader.cpp:
* loader/ImageLoader.h:
* loader/LinkLoader.h:
* loader/MainResourceLoader.cpp:
* loader/MainResourceLoader.h:
* loader/MixedContentChecker.cpp:
* loader/PingLoader.cpp:
* loader/PolicyChecker.h:
* loader/ProgressTracker.cpp:
* loader/SubframeLoader.cpp:
* loader/SubresourceLoader.cpp:
* loader/TextTrackLoader.cpp:
* loader/TextTrackLoader.h:
* loader/ThreadableLoader.h:
* loader/appcache/ApplicationCacheGroup.cpp:
* loader/appcache/ApplicationCacheGroup.h:
* loader/appcache/ApplicationCacheHost.cpp:
* loader/archive/cf/LegacyWebArchive.cpp:
* loader/cache/CachedFont.cpp:
* loader/cache/CachedImage.cpp:
* loader/cache/CachedRawResource.cpp:
* loader/cache/CachedResource.cpp:
* loader/cache/CachedStyleSheetClient.h:
* loader/cache/MemoryCache.cpp:
* loader/cache/MemoryCache.h:
* loader/chromium/CachedRawResourceChromium.cpp:
* loader/icon/IconController.cpp:
* loader/icon/IconLoader.h:
* loader/mac/ResourceLoaderMac.mm:
* page/DOMWindowExtension.cpp:
* page/DragController.cpp:
* page/PerformanceNavigation.cpp:
* page/PerformanceTiming.cpp:
* page/PointerLockController.cpp:
* page/Settings.cpp:
* page/animation/CSSPropertyAnimation.cpp:
* platform/chromium/PasteboardChromium.cpp:
* platform/efl/ErrorsEfl.cpp:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
* platform/gtk/ErrorsGtk.cpp:
* platform/gtk/PasteboardGtk.cpp:
* platform/gtk/PasteboardHelper.h:
* platform/mac/ClipboardMac.h:
* platform/mac/ClipboardMac.mm:
* platform/mac/HTMLConverter.mm:
* platform/mac/PasteboardMac.mm:
* platform/network/AuthenticationChallengeBase.cpp:
* platform/network/cf/CookieJarCFNet.cpp:
* platform/network/cf/ResourceRequestCFNet.cpp:
* platform/network/mac/CookieStorageMac.mm:
* platform/qt/PasteboardQt.cpp:
* plugins/DOMMimeType.cpp:
* plugins/PluginView.cpp:
* rendering/HitTestResult.cpp:
* rendering/InlineFlowBox.cpp:
* rendering/RenderBox.cpp:
* rendering/RenderEmbeddedObject.cpp:
* rendering/RenderImage.cpp:
* rendering/RenderImageResourceStyleImage.cpp:
* rendering/RenderLayer.cpp:
* rendering/RenderLayerBacking.cpp:
* rendering/RenderLayerFilterInfo.h:
* rendering/RenderListItem.cpp:
* rendering/RenderListMarker.cpp:
* rendering/RenderSnapshottedPlugIn.cpp:
* rendering/RenderTableCol.cpp:
* rendering/RenderTableRow.cpp:
* rendering/RenderTableSection.cpp:
* rendering/style/StyleCachedShader.h:
* svg/SVGFEImageElement.h:
* svg/SVGFontFaceUriElement.h:
* svg/SVGImageLoader.cpp:
* svg/SVGUseElement.cpp:
* svg/SVGUseElement.h:
* svg/graphics/SVGImageCache.cpp:
* testing/MockPagePopupDriver.cpp:
* xml/XSLStyleSheet.h:
* xml/XSLTProcessorLibxslt.cpp:
* xml/parser/XMLDocumentParser.cpp:
* xml/parser/XMLDocumentParser.h:
* xml/parser/XMLDocumentParserLibxml2.cpp:
Many self-evident changes - removing unnecessary header includes, adding smaller
more local ones that are now necessary.
2013-03-01 David Hyatt <hyatt@apple.com>
[New Multicolumn] Transformed objects inside fragmented transparent objects don't render
https://bugs.webkit.org/show_bug.cgi?id=111221.
Reviewed by Simon Fraser.
Improve transparencyClipBox so that it understands when moving into descendants
that it does in fact have to break up the transformed clip rect across the
fragments.
Make sure when handling fragmented transforms using multiple paints that
the test that determines the extent of the transform within the fragments
uses transparencyClipBox. This gives us an accurate set of columns that the
final transformed result will paint across.
Tests: fast/multicol/mixed-opacity-fixed-test.html
fast/multicol/mixed-opacity-test.html
fast/multicol/transform-inside-opacity.html
* rendering/RenderLayer.cpp:
(WebCore::transparencyClipBox):
(WebCore::expandClipRectForDescendantsAndReflection):
Break transformed boxes up into fragments when they are
being requested by an ancestor.
(WebCore::RenderLayer::collectFragments):
(WebCore::RenderLayer::paintTransformedLayerIntoFragments):
(WebCore::RenderLayer::hitTestTransformedLayerInFragments):
* rendering/RenderLayer.h:
(RenderLayer):
Modify collectFragments so that we pass in the correct range
within the columns that can possibly cover the fragmented
transformed box.
2013-03-01 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: do not visit raw pointers by default.
https://bugs.webkit.org/show_bug.cgi?id=110943
Reviewed by Yury Semikhatsky.
Unfortunately in many cases raw pointer may point to an object that has been deleted.
There is no working solution to solve this problem in general.
It could be solved only on case by case basis.
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::HeapGraphSerializer):
(WebCore::HeapGraphSerializer::reportLeaf):
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::reportMemoryUsage):
* platform/graphics/BitmapImage.cpp:
(WebCore::FrameData::reportMemoryUsage):
* platform/graphics/skia/MemoryInstrumentationSkia.cpp:
(reportMemoryUsage):
2013-03-01 Kentaro Hara <haraken@chromium.org>
Style recalculation takes too long when adding whitespace text nodes
https://bugs.webkit.org/show_bug.cgi?id=110786
Reviewed by Darin Adler.
// This takes 216 msec.
for (var i = 0; i < 1500; ++i) {
document.body.appendChild(document.createTextNode('x'));
document.body.appendChild(document.createElement('div'));
document.body.appendChild(document.createTextNode('x'));
}
// But this takes 25.3 seconds.
for (var i = 0; i < 1500; ++i) {
document.body.appendChild(document.createTextNode(' '));
document.body.appendChild(document.createElement('div'));
document.body.appendChild(document.createTextNode(' '));
}
The reason is that we do not create renderers for empty text
nodes and thus we are hitting the worst O(N^2) case in Node::attach().
(See FIXME in Node::attach().)
This patch adds a logic to bail out the loop to avoid the O(N^2) case.
Specifically, the patch bails out the loop if we encounter a text node
for which we again decided not to create a renderer. This bail out is
reasonable because the fact that we again decided not to create a renderer
for the text node indicates that there will be no affect of the result
of Text::textRendererIsNeeded() of the rest of the sibling nodes.
Performance test: https://bugs.webkit.org/attachment.cgi?id=190545
Performance result in Chromium/Linux: 25.3 sec => 48 msec !
Test: perf/append-text-nodes-without-renderers.html (for performance)
fast/dynamic/create-renderer-for-whitespace-only-text.html (for correctness)
The loop was introduced in r29054. We have to make sure that
all layout tests that were updated in r29054 pass with this patch.
See http://trac.webkit.org/changeset/29054.
* dom/Node.cpp:
(WebCore::Node::attach):
2013-03-01 Jason Anderssen <janderssen@gmail.com>
Moved markerTextForListItem from TestRunner to Internals
https://bugs.webkit.org/show_bug.cgi?id=110939
Reviewed by Benjamin Poulain.
TestRunner framework is an old way of testing webkit, it would be
better to incorporate the testing frame directly into the WebCore itself
as to make it more compatible with WK2.
* testing/Internals.cpp:
(WebCore::Internals::markerTextForListItem):
(WebCore):
* testing/Internals.h:
* testing/Internals.idl:
2013-03-01 Elliott Sprehn <esprehn@gmail.com>
Don't leak Documents when using MutationObserver from extensions
https://bugs.webkit.org/show_bug.cgi?id=111234
Reviewed by Adam Barth.
MutationObserverCallback holds a WorldContextHandle which secretly isn't
a handle to anything when it's for the main world. When it's for a non-main
world though, like those used in extensions, it becomes a strong reference
to the v8::Context which results in leaks by creating cycles:
MutationObserver -> Callback -> World -> Document -> Node -> MutationObserver.
Instead we should keep a RefPtr to a DOMWrapperWorld in the callback and then
get the v8::Context from that inside handleEvent.
Tests: ManualTests/leak-observer-nonmain-world.html
* bindings/v8/V8Binding.cpp:
(WebCore::toV8Context): Added overload that takes a DOMWrapperWorld.
* bindings/v8/V8Binding.h:
* bindings/v8/V8MutationCallback.cpp:
(WebCore::V8MutationCallback::V8MutationCallback):
(WebCore::V8MutationCallback::handleEvent):
* bindings/v8/V8MutationCallback.h:
(V8MutationCallback):
2013-03-01 Bear Travis <betravis@adobe.com>
[css exclusions] Move ExclusionShapeInsideInfo into RenderBlockRareData
https://bugs.webkit.org/show_bug.cgi?id=110995
Reviewed by Julien Chaffraix.
This patch moves ExclusionShapeInsideInfo into the RenderBlockRareData struct,
which enables us to move away from the global ExclusionShapeInsideInfo map.
Some additional refactoring was done to remove ExclusionShapeInsideInfo's
dependency on InlineIterator, which depended on RenderBlock. This work required
adding a new LineSegmentIterator struct.
Refactoring, no new tests.
* rendering/ExclusionShapeInsideInfo.cpp:
(WebCore):
(WebCore::LineSegmentRange::LineSegmentRange): Moving the InlineIterator
constructor to the .cpp file, as InlineIterator is now forward declared in
the .h file.
(WebCore::ExclusionShapeInsideInfo::isEnabledFor): Moving isEnabledFor to
the .cpp file, as RenderBlock is now forward declared in the .h file.
* rendering/ExclusionShapeInsideInfo.h:
(WebCore):
(LineSegmentIterator): A simple struct for containing segment positions for
layout.
(WebCore::LineSegmentIterator::LineSegmentIterator): Constructor.
(LineSegmentRange): Transitioning to store LineSegmentIterator.
(WebCore::LineSegmentRange::LineSegmentRange): Ditto.
(ExclusionShapeInsideInfo):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::willBeDestroyed): Destroying a block will now destroy
its ExclusionShapeInsideInfo, so there is no need to remove it from the map.
(WebCore):
(WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange): Use
the RenderBlockRareData struct rather than the global map.
* rendering/RenderBlock.h:
(WebCore):
(WebCore::RenderBlock::ensureExclusionShapeInsideInfo): Ensure an info struct
is present if the shape-inside style is set.
(WebCore::RenderBlock::exclusionShapeInsideInfo): Look up the info struct for
the current block.
(WebCore::RenderBlock::setExclusionShapeInsideInfo): Update the info struct
for the current block.
(RenderBlockRareData): Add the ExclusionShapeInsideInfo member.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::constructBidiRunsForLine): Construct the appropriate offsets during
layout based on the stored LineSegmentIterators.
2013-03-01 Terry Anderson <tdanderson@chromium.org>
EventHandler::handleGestureScrollUpdate() should invoke the user-generated scroll routines
so its behavior matches other user-initiated scrolls
https://bugs.webkit.org/show_bug.cgi?id=109769
Reviewed by James Robinson.
To ensure that the scrolling behavior of GestureScrollUpdate events are consistent with
the scrolling behavior of mousewheel events, use the existing user-generated scroll logic
instead of calling into RenderLayer::scrollByRecursively(). This patch fixes the bug
reported in https://bugs.webkit.org/show_bug.cgi?id=109316, where the example page can
be scrolled using touch but cannot be scrolled using mousewheels.
Note that this patch does not use any of the mousewheel event-handling code.
Tests: fast/events/touch/gesture/touch-gesture-noscroll-body-propagated.html
fast/events/touch/gesture/touch-gesture-noscroll-body-xhidden.html
fast/events/touch/gesture/touch-gesture-noscroll-body-yhidden.html
fast/events/touch/gesture/touch-gesture-noscroll-body.html
* page/EventHandler.cpp:
(WebCore::EventHandler::clear):
(WebCore::EventHandler::handleGestureEvent):
(WebCore::EventHandler::handleGestureScrollBegin):
(WebCore::EventHandler::handleGestureScrollUpdate):
(WebCore::EventHandler::sendScrollEventToView):
By calling this function at the start of handleGestureScrollUpdate() in the case
where |m_scrollGestureHandlingNode| is null, we ensure that the scroll updates
can still scroll the page itself, if possible.
(WebCore):
(WebCore::EventHandler::clearGestureScrollNodes):
* page/EventHandler.h:
(EventHandler):
* platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::setHasPreciseScrollingDeltas):
2013-03-01 Alec Flett <alecflett@chromium.org>
IndexedDB: Avoid ScriptValue copies in IDBAny
https://bugs.webkit.org/show_bug.cgi?id=111002
Reviewed by Adam Barth.
This avoids some v8 handle thrashing in the long term,
and protects us against some crashes in the short term.
The crashes will be fixed in
https://bugs.webkit.org/show_bug.cgi?id=110206.
* Modules/indexeddb/IDBAny.cpp:
(WebCore::IDBAny::createNull):
(WebCore::IDBAny::createString):
(WebCore::IDBAny::IDBAny):
(WebCore::IDBAny::scriptValue):
* Modules/indexeddb/IDBAny.h:
(WebCore::IDBAny::create):
(IDBAny):
(WebCore::IDBAny::keyPath):
* bindings/v8/custom/V8IDBAnyCustom.cpp:
(WebCore::toV8):
(WebCore):
2013-03-01 Victor Carbune <vcarbune@chromium.org>
Support padding, margin and border for internal UA cue styling
https://bugs.webkit.org/show_bug.cgi?id=110703
Reviewed by Eric Carlson.
For some particular user agent styling this allows the possibility
of making the window around the cue text bigger to match some user
styles (see CaptionUserPreferencesMac::captionsStyleSheetOverride).
These properties *cannot* be set through by using the ::cue
pseudo-element and, as specified, are used only internally.
Note: This patch is identical to the previously commited one,
as it was rolled back without related tests failing.
Test: media/track/track-cue-rendering-with-padding.html
* css/mediaControls.css:
(video::-webkit-media-text-track-display): Set the CSS box model
to include in the specified width or height the values of
padding / margin / border by using -webkit-box-sizing and avoid
overflow over 100% width because of having these properties set.
* rendering/RenderTextTrackCue.cpp:
(WebCore::RenderTextTrackCue::isOutside): To not interfere with
the regular WebVTT positioning algorithm, the check is done for
the absolute content box.
(WebCore::RenderTextTrackCue::repositionCueSnapToLinesSet): Added
an extra adjustment step to accomodate vertical padding (and not
overflow the cue container)
2013-03-01 Andy Estes <aestes@apple.com>
REGRESSION (r125809): CFStrings created via StringImpl::createCFString() might reference freed memory when Objective-C garbage collection is enabled
https://bugs.webkit.org/show_bug.cgi?id=111219
Reviewed by Benjamin Poulain.
StringImpl::createCFString() uses CFStringCreateWithBytesNoCopy() in
order to create CFString without making an unnecessary copy. In order
to ensure that the the StringImpl's backing buffer isn't deallocated
while the CFString is still alive, we use a custom CFAllocator to
ref/deref the StringImpl at the appropriate times.
However, custom allocators aren't supported when Objective-C garbage
collection is enabled, so in this case we use the default CF allocator.
Since we can't guarantee the lifetime of the StringImpl in this case,
we should just fall back to copying the string, as we did prior to r125809.
* platform/text/cf/StringImplCF.cpp:
(garbageCollectionEnabled): Moved the check for whether garbage
collection is enabled from StringWrapperCFAllocator::create() to here.
(WTF::StringWrapperCFAllocator::create): Call garbageCollectionEnabled().
(WTF::StringImpl::createCFString): If garbage collection is enabled,
call the variants of CFStringCreate that copy the string.
2013-03-01 Roger Fong <roger_fong@apple.com>
Unreviewed AppleWin build fix.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::createCFURLConnection):
2013-03-01 Martin Robinson <mrobinson@igalia.com>
[GTK] Allow sharing the WebCore include list with the Chromium build
https://bugs.webkit.org/show_bug.cgi?id=110241
Reviewed by Dirk Pranke.
* WebCore.gyp/WebCoreGTK.gyp: Added. A skeleton gyp file for WebCoreGTK+.
* WebCore.gypi: Added shared include directories.
2013-03-01 Alexey Proskuryakov <ap@apple.com>
Make in-memory blobs work in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=111132
Reviewed by Sam Weinig.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
Exported functions now needed by WebKit2, and made some headers Private instead
of Project.
2013-03-01 Eric Seidel <eric@webkit.org>
Threaded HTML Parser has an extra copy of every byte from the network
https://bugs.webkit.org/show_bug.cgi?id=111135
Reviewed by Adam Barth.
Every LayoutTest executes this code in threaded parsing mode.
* dom/DecodedDataDocumentParser.cpp:
(WebCore::DecodedDataDocumentParser::appendBytes):
- Pass ownership of the decoded string to the parser.
(WebCore::DecodedDataDocumentParser::flush):
- Same.
* dom/DecodedDataDocumentParser.h:
(DecodedDataDocumentParser):
* dom/Document.cpp:
(WebCore::Document::setContent):
* dom/DocumentParser.h:
(DocumentParser):
* dom/RawDataDocumentParser.h:
(WebCore::RawDataDocumentParser::append):
* html/FTPDirectoryDocument.cpp:
(FTPDirectoryDocumentParser):
(WebCore::FTPDirectoryDocumentParser::append):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::append):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
* html/parser/HTMLViewSourceParser.cpp:
(WebCore::HTMLViewSourceParser::append):
* html/parser/HTMLViewSourceParser.h:
(HTMLViewSourceParser):
* html/parser/TextDocumentParser.cpp:
(WebCore::TextDocumentParser::append):
* html/parser/TextDocumentParser.h:
(TextDocumentParser):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):
* xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::append):
* xml/parser/XMLDocumentParser.h:
(XMLDocumentParser):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::resumeParsing):
2013-03-01 David Hyatt <hyatt@apple.com>
[New Multicolumn] Change inRenderFlowThread to follow containing block chain
https://bugs.webkit.org/show_bug.cgi?id=111206
Reviewed by Simon Fraser.
This patch removes inRenderFlowThread and changes enclosingRenderFlowThread()
to flowThreadContainingBlock(). flowThreadContainingBlock() now follows
the containing block chain instead of the parent chain when outside of layout.
(It already did the right thing when called during layout.)
By removing inRenderFlowThread (which was following the parent chain), all
code that is checking for flow thread containment now correctly uses the
containing block chain. This allows for content to escape in-flow flow threads
and do the right thing without asserting.
Test: fast/multicol/positioned-outside-of-columns.html
* dom/WebKitNamedFlow.cpp:
(WebCore::inFlowThread):
(WebCore::WebKitNamedFlow::getRegionsByContent):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removeLeftoverAnonymousBlock):
(WebCore::RenderBlock::collapseAnonymousBoxChild):
(WebCore::RenderBlock::updateRegionsAndExclusionsLogicalSize):
(WebCore::RenderBlock::computeRegionRangeForBlock):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::computeOverflow):
(WebCore::RenderBlock::determineLogicalLeftPositionForChild):
(WebCore::RenderBlock::computeLogicalLocationForFloat):
(WebCore::RenderBlock::logicalLeftOffsetForContent):
(WebCore::RenderBlock::logicalRightOffsetForContent):
(WebCore::RenderBlock::hasNextPage):
(WebCore::RenderBlock::applyBeforeBreak):
(WebCore::RenderBlock::applyAfterBreak):
(WebCore::RenderBlock::pageLogicalTopForOffset):
(WebCore::RenderBlock::pageLogicalHeightForOffset):
(WebCore::RenderBlock::pageRemainingLogicalHeightForOffset):
(WebCore::RenderBlock::adjustForUnsplittableChild):
(WebCore::RenderBlock::adjustLinePositionForPagination):
(WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
(WebCore::RenderBlock::offsetFromLogicalTopOfFirstPage):
(WebCore::RenderBlock::regionAtBlockOffset):
(WebCore::RenderBlock::setStaticInlinePositionForChild):
(WebCore::RenderBlock::logicalWidthChangedInRegions):
(WebCore::RenderBlock::clampToStartAndEndRegions):
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::layoutExclusionShapeInsideInfo):
(WebCore::LineLayoutState::LineLayoutState):
(WebCore::LineLayoutState::flowThread):
(WebCore::LineLayoutState::setFlowThread):
(LineLayoutState):
(WebCore::RenderBlock::layoutRunsAndFloatsInRange):
(WebCore::RenderBlock::linkToEndLineIfNeeded):
(WebCore::RenderBlock::layoutInlineChildren):
(WebCore::RenderBlock::determineStartPosition):
(WebCore::RenderBlock::checkPaginationAndFloatsAtEndLine):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::clearRenderBoxRegionInfo):
(WebCore::RenderBox::renderBoxRegionInfo):
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
(WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
(WebCore::RenderBox::computePositionedLogicalWidth):
(WebCore::RenderBox::computePositionedLogicalHeight):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::objectInFlowRegion):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::updateAlwaysCreateLineBoxes):
* rendering/RenderLayer.cpp:
(WebCore::accumulateOffsetTowardsAncestor):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::canBeComposited):
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::layout):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::locateFlowThreadContainingBlock):
(WebCore::RenderObject::containerForRepaint):
(WebCore::RenderObject::willBeRemovedFromTree):
(WebCore::RenderObject::removeFromRenderFlowThread):
(WebCore::RenderObject::removeFromRenderFlowThreadRecursive):
* rendering/RenderObject.h:
(RenderObject):
(WebCore::RenderObject::flowThreadContainingBlock):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::setObjectStyleInRegion):
* rendering/RenderView.cpp:
(WebCore::RenderView::addChild):
(WebCore::RenderView::initializeLayoutState):
(WebCore::RenderView::setSelection):
* rendering/RenderView.h:
(WebCore::RenderView::pushLayoutState):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::containingRegion):
(WebCore::RootInlineBox::setContainingRegion):
2013-02-28 Sam Weinig <sam@webkit.org>
Add SPI for marking a WebView as doing things on behalf of another process
https://bugs.webkit.org/show_bug.cgi?id=111125
Reviewed by Alexey Proskuryakov.
* platform/network/NetworkingContext.h:
(NetworkingContext):
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::createCFURLConnection):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::createNSURLConnection):
Set the sourceApplicationAuditData on the URL connection if available.
2013-03-01 Brent Fulgham <bfulgham@webkit.org>
[Windows] Unreviewed VS2010 build fix.
* WebCore.vcxproj/WebCore.vcxproj: Add missing TimelineTraceEventProcessor
files to the project.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
2013-03-01 Bear Travis <betravis@adobe.com>
[css exclusions] setting shape-inside on a parent does not relayout child blocks' inline content
https://bugs.webkit.org/show_bug.cgi?id=108128
Reviewed by David Hyatt.
Ensure that blocks lay out when their parent's shape-inside changes.
ExclusionShapeInsideInfo now stores an additional flag indicating whether
the shape has changed and its block's children require layout. Each block
can look up the flag via LayoutState to determine whether it needs to lay
out its children.
Test: fast/exclusions/shape-inside/shape-inside-dynamic-nested.html
* rendering/ExclusionShapeInfo.h:
(WebCore::ExclusionShapeInfo::shapeSizeDirty): Add a method to determine
if the shape has changed.
(ExclusionShapeInfo):
* rendering/ExclusionShapeInsideInfo.h:
(WebCore::ExclusionShapeInsideInfo::setNeedsLayout): Set the flag indicating
layout is necessary.
(WebCore::ExclusionShapeInsideInfo::needsLayout): Retrieve the layout flag.
(ExclusionShapeInsideInfo):
(WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo): Initialize
the layout flag.
* rendering/RenderBlock.cpp:
(WebCore::exclusionInfoRequiresRelayout): Return true if the shape info should
cause a relayout. Also update the needsLayout flag on the ExclusionShapeInsideInfo.
(WebCore):
(WebCore::RenderBlock::updateRegionsAndExclusionsLogicalSize): Return a boolean
indicating whether regions or exclusions updates should cause a relayout.
(WebCore::RenderBlock::layoutBlock): Relayout children if the shape inside has
changed.
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutExclusionShapeInsideInfo): Changing to be a
class method.
(WebCore::LineWidth::LineWidth): Changing to use class method.
(WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Ditto.
(WebCore::constructBidiRunsForLine): Ditto.
(WebCore::RenderBlock::layoutRunsAndFloatsInRange): Ditto.
(WebCore::RenderBlock::LineBreaker::nextLineBreak): Ditto.
2013-03-01 Uday Kiran <udaykiran@motorola.com>
getComputedStyle not implemented for -webkit-column-rule shorthand
https://bugs.webkit.org/show_bug.cgi?id=111203
Reviewed by Alexis Menard.
Implement getComputedStyle for -webkit-column-rule property.
Test: fast/css/getComputedStyle/getComputedStyle-column-rule.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2013-02-28 David Hyatt <hyatt@apple.com>
REGRESSION(r144318) 1-7% perf. regression on SVG/SvgHitTesting
https://bugs.webkit.org/show_bug.cgi?id=111117
Make sure the allocated vector has a capacity of 1, since that is
far and away the most common case.
Reviewed by Andreas Kling.
* rendering/RenderFlowThread.h:
(WebCore):
* rendering/RenderLayer.h:
(WebCore):
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::collectLayerFragments):
* rendering/RenderMultiColumnSet.h:
* rendering/RenderRegion.h:
(WebCore):
(WebCore::RenderRegion::collectLayerFragments):
2013-03-01 Enrica Casucci <enrica@apple.com>
Crash at WebCore::SharedBuffer::hasPlatformData writing an image to the pasteboard.
https://bugs.webkit.org/show_bug.cgi?id=111211.
<rdar://problem/8772758>
Reviewed by Ryosuke Niwa.
This is a speculative fix since we don't have a solid repro case.
Adding null check every time we build a SharedBuffer from an NSData
we have obtained manipulating data from the pasteboard.
* platform/mac/PasteboardMac.mm:
(WebCore::writeFileWrapperAsRTFDAttachment):
(WebCore::Pasteboard::writeImage):
2013-03-01 Enrica Casucci <enrica@apple.com>
Crash at WebCore::SharedBuffer::hasPlatformData during paste.
https://bugs.webkit.org/show_bug.cgi?id=111207.
<rdar://problem/13024528>
Reviewed by Ryosuke Niwa.
This is a speculative fix since we don't have a solid repro case.
Adding null check every time we get a SharedBuffer from the pasteboard.
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::plainText):
(WebCore::documentFragmentWithRTF):
2013-03-01 Alexey Proskuryakov <ap@apple.com>
Build fix for builds with BLOB disabled. This fixes it for me on Mac at least.
* platform/network/BlobRegistryImpl.cpp:
2013-03-01 peavo@outlook.com <peavo@outlook.com>
[Curl] Session cookies should not be persistent.
https://bugs.webkit.org/show_bug.cgi?id=111060
Reviewed by Brent Fulgham.
Curl saves both persistent cookies, and session cookies to the cookie file.
The session cookies should be deleted before starting a new session.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::ResourceHandleManager): Call method to initialize cookie session.
(WebCore::ResourceHandleManager::initCookieSession): Added method to initialize cookie session.
* platform/network/curl/ResourceHandleManager.h: Added method to initialize cookie session.
2013-03-01 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Navigator should show tree element for each folder in the source path.
https://bugs.webkit.org/show_bug.cgi?id=108943
Reviewed by Pavel Feldman.
NavigatorView now renders tree element for each folder in uiSourceCode uri.
Merging several folders into one tree elememnt when folder has only one folder as a child is supported.
ScriptsNavigator has horizontal scroll now.
Projects are shown in ScriptsNavigator by their displayName. This allows us to show several root file system folders
with the same name in the navigator (e.g. 'Source/WebCore/inspector' and 'LayoutTests/inspector').
Test: inspector/debugger/navigator-view.html: Renamed from scripts-file-selector.html
* English.lproj/localizedStrings.js:
* inspector/front-end/NavigatorView.js:
(WebInspector.NavigatorView):
(WebInspector.NavigatorView.iconClassForType):
(WebInspector.NavigatorView.prototype.addUISourceCode):
(WebInspector.NavigatorView.prototype._getProjectNode):
(WebInspector.NavigatorView.prototype._createProjectNode):
(WebInspector.NavigatorView.prototype._getOrCreateProjectNode):
(WebInspector.NavigatorView.prototype._getFolderNode):
(WebInspector.NavigatorView.prototype._createFolderNode):
(WebInspector.NavigatorView.prototype._getOrCreateFolderNode):
(WebInspector.NavigatorView.prototype._getUISourceCodeParentNode):
(WebInspector.NavigatorView.prototype._getOrCreateUISourceCodeParentNode):
(WebInspector.NavigatorView.prototype.revealUISourceCode):
(WebInspector.NavigatorView.prototype.removeUISourceCode):
(WebInspector.NavigatorView.prototype.rename):
(WebInspector.NavigatorView.prototype.reset):
(.typeWeight):
(WebInspector.NavigatorTreeOutline._treeElementsCompare):
(WebInspector.BaseNavigatorTreeElement):
(WebInspector.BaseNavigatorTreeElement.prototype.type):
(WebInspector.NavigatorFolderTreeElement):
(WebInspector.NavigatorFolderTreeElement.prototype.onpopulate):
(WebInspector.NavigatorFolderTreeElement.prototype.onattach):
(WebInspector.NavigatorSourceTreeElement):
(WebInspector.NavigatorTreeNode):
(WebInspector.NavigatorTreeNode.prototype.treeElement):
(WebInspector.NavigatorTreeNode.prototype.dispose):
(WebInspector.NavigatorTreeNode.prototype.isRoot):
(WebInspector.NavigatorTreeNode.prototype.hasChildren):
(WebInspector.NavigatorTreeNode.prototype.populate):
(WebInspector.NavigatorTreeNode.prototype.wasPopulated):
(WebInspector.NavigatorTreeNode.prototype.didAddChild):
(WebInspector.NavigatorTreeNode.prototype.willRemoveChild):
(WebInspector.NavigatorTreeNode.prototype.isPopulated):
(WebInspector.NavigatorTreeNode.prototype.isEmpty):
(WebInspector.NavigatorTreeNode.prototype.child):
(WebInspector.NavigatorTreeNode.prototype.children):
(WebInspector.NavigatorTreeNode.prototype.appendChild):
(WebInspector.NavigatorTreeNode.prototype.removeChild):
(WebInspector.NavigatorTreeNode.prototype.reset):
(WebInspector.NavigatorRootTreeNode):
(WebInspector.NavigatorRootTreeNode.prototype.isRoot):
(WebInspector.NavigatorRootTreeNode.prototype.treeElement):
(WebInspector.NavigatorRootTreeNode.prototype.wasPopulated):
(WebInspector.NavigatorRootTreeNode.prototype.didAddChild):
(WebInspector.NavigatorRootTreeNode.prototype.willRemoveChild):
(WebInspector.NavigatorUISourceCodeTreeNode):
(WebInspector.NavigatorUISourceCodeTreeNode.prototype.treeElement):
(WebInspector.NavigatorUISourceCodeTreeNode.prototype.updateTitle):
(WebInspector.NavigatorUISourceCodeTreeNode.prototype.hasChildren):
(WebInspector.NavigatorUISourceCodeTreeNode.prototype.dispose):
(WebInspector.NavigatorUISourceCodeTreeNode.prototype._titleChanged):
(WebInspector.NavigatorUISourceCodeTreeNode.prototype._workingCopyChanged):
(WebInspector.NavigatorUISourceCodeTreeNode.prototype._workingCopyCommitted):
(WebInspector.NavigatorUISourceCodeTreeNode.prototype._formattedChanged):
(WebInspector.NavigatorUISourceCodeTreeNode.prototype.reveal):
(WebInspector.NavigatorUISourceCodeTreeNode.prototype.rename.commitHandler):
(WebInspector.NavigatorUISourceCodeTreeNode.prototype.rename.cancelHandler):
(WebInspector.NavigatorUISourceCodeTreeNode.prototype.rename.afterEditing):
(WebInspector.NavigatorUISourceCodeTreeNode.prototype.rename):
(WebInspector.NavigatorFolderTreeNode):
(WebInspector.NavigatorFolderTreeNode.prototype.treeElement):
(WebInspector.NavigatorFolderTreeNode.prototype._createTreeElement):
(WebInspector.NavigatorFolderTreeNode.prototype.wasPopulated):
(WebInspector.NavigatorFolderTreeNode.prototype._addChildrenRecursive):
(WebInspector.NavigatorFolderTreeNode.prototype._shouldMerge):
(WebInspector.NavigatorFolderTreeNode.prototype.didAddChild):
(WebInspector.NavigatorFolderTreeNode.prototype.willRemoveChild):
* inspector/front-end/ScriptsNavigator.js:
* inspector/front-end/SimpleWorkspaceProvider.js:
(WebInspector.SimpleProjectDelegate.prototype.displayName):
* inspector/front-end/navigatorView.css:
(.navigator > ol):
(.navigator .base-navigator-tree-element-title):
(.navigator-tabbed-pane .navigator-container):
2013-03-01 Arvid Nilsson <anilsson@rim.com>
[BlackBerry] Upstream BlackBerry::Platform::Graphics::GraphicsContext integration related changes in platform/graphics/blackberry
https://bugs.webkit.org/show_bug.cgi?id=111072
Reviewed by Rob Buis.
BlackBerry PR 293208
This patch contains contributions from many members of the BlackBerry
WebKit team:
Rob Buis
Robin Cao
Michael Carmody
Max Feil
Eli Fidler
Antonio Gomes
Jacky Jiang
Mike Lattanzio
Yong Li
Andrew Lo
Maxim Mogilnitsky
Joshua Netterfield
Arvid Nilsson
Jakob Petsovits
Konrad Piascik
Jeff Rogers
Artem Simonov
Filip Spacek
George Staikos
Cosmin Truta
Covered by existing tests.
* platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:
(WebCore::CanvasLayerWebKitThread::deleteTextures):
(CanvasLayerCompositingThreadClient):
(WebCore::CanvasLayerCompositingThreadClient::layerCompositingThreadDestroyed):
(WebCore::CanvasLayerCompositingThreadClient::layerVisibilityChanged):
(WebCore::CanvasLayerCompositingThreadClient::uploadTexturesIfNeeded):
(WebCore::CanvasLayerCompositingThreadClient::clearBuffer):
(WebCore):
(WebCore::CanvasLayerCompositingThreadClient::CanvasLayerCompositingThreadClient):
(WebCore::CanvasLayerCompositingThreadClient::drawTextures):
(WebCore::CanvasLayerCompositingThreadClient::deleteTextures):
(WebCore::CanvasLayerCompositingThreadClient::commitPendingTextureUploads):
(WebCore::CanvasLayerWebKitThread::CanvasLayerWebKitThread):
(WebCore::CanvasLayerWebKitThread::~CanvasLayerWebKitThread):
(WebCore::CanvasLayerWebKitThread::clearBuffer):
* platform/graphics/blackberry/CanvasLayerWebKitThread.h:
(WebCore):
(WebCore::CanvasLayerWebKitThread::create):
(CanvasLayerWebKitThread):
* platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
(WebCore::DisplayRefreshMonitor::displayLinkFired):
* platform/graphics/blackberry/DrawingBufferBlackBerry.cpp:
(WebCore::DrawingBuffer::DrawingBuffer):
(WebCore):
(WebCore::DrawingBuffer::publishToPlatformLayer):
(WebCore::DrawingBuffer::platformLayer):
* platform/graphics/blackberry/EGLImageLayerCompositingThreadClient.cpp:
(WebCore::EGLImageLayerCompositingThreadClient::~EGLImageLayerCompositingThreadClient):
(WebCore::EGLImageLayerCompositingThreadClient::uploadTexturesIfNeeded):
(WebCore::EGLImageLayerCompositingThreadClient::drawTextures):
(WebCore::EGLImageLayerCompositingThreadClient::deleteTextures):
(WebCore::EGLImageLayerCompositingThreadClient::bindContentsTexture):
(WebCore::EGLImageLayerCompositingThreadClient::setTextureAccessor):
* platform/graphics/blackberry/EGLImageLayerCompositingThreadClient.h:
(Graphics):
(EGLImageLayerCompositingThreadClient):
(WebCore::EGLImageLayerCompositingThreadClient::EGLImageLayerCompositingThreadClient):
* platform/graphics/blackberry/EGLImageLayerWebKitThread.cpp:
(WebCore::EGLImageLayerWebKitThread::EGLImageLayerWebKitThread):
(WebCore::EGLImageLayerWebKitThread::~EGLImageLayerWebKitThread):
(WebCore::EGLImageLayerWebKitThread::updateFrontBuffer):
(WebCore::EGLImageLayerWebKitThread::deleteFrontBuffer):
(WebCore::EGLImageLayerWebKitThread::commitPendingTextureUploads):
(WebCore::EGLImageLayerWebKitThread::createTextureIfNeeded):
(WebCore::EGLImageLayerWebKitThread::blitToFrontBuffer):
* platform/graphics/blackberry/EGLImageLayerWebKitThread.h:
(Graphics):
(EGLImageLayerWebKitThread):
* platform/graphics/blackberry/FloatRectBlackBerry.cpp:
(WebCore::FloatRect::normalized):
(WebCore):
* platform/graphics/blackberry/FontCacheBlackberry.cpp: Removed.
* platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::paintToCanvas):
(WebCore::GraphicsContext3D::getImageData):
(WebCore):
* platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
(WebCore::GraphicsLayerBlackBerry::GraphicsLayerBlackBerry):
(WebCore::GraphicsLayerBlackBerry::setBackgroundColor):
(WebCore::GraphicsLayerBlackBerry::clearBackgroundColor):
(WebCore):
(WebCore::GraphicsLayerBlackBerry::setContentsNeedsDisplay):
(WebCore::GraphicsLayerBlackBerry::setNeedsDisplay):
(WebCore::GraphicsLayerBlackBerry::setNeedsDisplayInRect):
(WebCore::GraphicsLayerBlackBerry::updateLayerBackgroundColor):
(WebCore::GraphicsLayerBlackBerry::setupContentsLayer):
* platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
(GraphicsLayerBlackBerry):
(WebCore::GraphicsLayerBlackBerry::notifySyncRequired):
* platform/graphics/blackberry/ImageBlackBerry.cpp:
(WebCore::ImageFrame::asNewNativeImage):
(WebCore):
(WebCore::FrameData::clear):
(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::checkForSolidColor):
(WebCore::BitmapImage::invalidatePlatformData):
(WebCore::BitmapImage::draw):
(WebCore::Image::drawPattern):
* platform/graphics/blackberry/InstrumentedPlatformCanvas.h: Removed.
* platform/graphics/blackberry/LayerCompositingThread.cpp:
(WebCore::LayerCompositingThread::drawTextures):
(WebCore::LayerCompositingThread::drawSurface):
(WebCore::LayerCompositingThread::contentsTexture):
(WebCore::LayerCompositingThread::commitPendingTextureUploads):
(WebCore):
* platform/graphics/blackberry/LayerCompositingThread.h:
(Graphics):
(LayerCompositingThread):
* platform/graphics/blackberry/LayerCompositingThreadClient.h:
(Graphics):
(WebCore):
(LayerCompositingThreadClient):
(WebCore::LayerCompositingThreadClient::contentsTexture):
(WebCore::LayerCompositingThreadClient::commitPendingTextureUploads):
* platform/graphics/blackberry/LayerData.h:
(WebCore::LayerData::LayerData):
(WebCore::LayerData::contentsResolutionIndependent):
(LayerData):
(WebCore::LayerData::layerProgram):
(WebCore::LayerData::isContainerForFixedPositionLayers):
(WebCore::LayerData::isFixedToTop):
(WebCore::LayerData::isFixedToLeft):
(WebCore::LayerData::frameVisibleRect):
(WebCore::LayerData::frameContentsSize):
(WebCore::LayerData::contentsScale):
* platform/graphics/blackberry/LayerFilterRenderer.cpp:
(WebCore::LayerFilterRendererAction::LayerFilterRendererAction):
(WebCore::LayerFilterRenderer::initializeSharedGLObjects):
(WebCore::LayerFilterRenderer::ping):
(WebCore::LayerFilterRenderer::pong):
(WebCore::LayerFilterRenderer::pushSnapshot):
(WebCore::LayerFilterRenderer::popSnapshot):
(WebCore::LayerFilterRenderer::applyActions):
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore):
(WebCore::LayerRenderer::LayerRenderer):
(WebCore::LayerRenderer::~LayerRenderer):
(WebCore::LayerRenderer::setViewport):
(WebCore::LayerRenderer::compositeLayers):
(WebCore::LayerRenderer::compositeBuffer):
(WebCore::LayerRenderer::drawColor):
(WebCore::LayerRenderer::useSurface):
(WebCore::LayerRenderer::drawLayersOnSurfaces):
(WebCore::glRound):
(WebCore::LayerRenderer::toOpenGLWindowCoordinates):
(WebCore::LayerRenderer::drawDebugBorder):
(WebCore::LayerRenderer::drawHolePunchRect):
(WebCore::LayerRenderer::updateLayersRecursive):
(WebCore::LayerRenderer::compositeLayersRecursive):
(WebCore::LayerRenderer::createProgram):
(WebCore::LayerRenderer::useProgram):
(WebCore::LayerRenderer::useLayerProgram):
* platform/graphics/blackberry/LayerRenderer.h:
(LayerRenderer):
* platform/graphics/blackberry/LayerRendererSurface.cpp:
(WebCore::LayerRendererSurface::ensureTexture):
* platform/graphics/blackberry/LayerTile.cpp:
(WebCore::LayerTile::LayerTile):
(WebCore::LayerTile::setContents):
(WebCore::LayerTile::updateContents):
* platform/graphics/blackberry/LayerTile.h:
(LayerTile):
(WebCore::LayerTile::renderState):
(WebCore::LayerTile::needsRender):
(WebCore::LayerTile::setNeedsRender):
(WebCore::LayerTile::setRenderPending):
(WebCore::LayerTile::setRenderDone):
* platform/graphics/blackberry/LayerTileIndex.h:
* platform/graphics/blackberry/LayerTiler.cpp:
(WebCore):
(WebCore::defaultTileSize):
(WebCore::LayerTiler::LayerTiler):
(WebCore::LayerTiler::updateTextureContentsIfNeeded):
(WebCore::LayerTiler::createBuffer):
(WebCore::LayerTiler::willCommit):
(WebCore::LayerTiler::commitPendingTextureUploads):
(WebCore::LayerTiler::layerVisibilityChanged):
(WebCore::LayerTiler::uploadTexturesIfNeeded):
(WebCore::LayerTiler::processTextureJob):
(WebCore::LayerTiler::addTileJob):
(WebCore::LayerTiler::performTileJob):
(WebCore::LayerTiler::drawTile):
(WebCore::LayerTiler::drawTextures):
(WebCore::LayerTiler::pruneTextures):
(WebCore::LayerTiler::updateTileSize):
(WebCore::LayerTiler::setNeedsBacking):
(WebCore::LayerTiler::contentsTexture):
* platform/graphics/blackberry/LayerTiler.h:
(WebCore::LayerTiler::tileSize):
(LayerTiler):
(WebCore::LayerTiler::TextureJob::TextureJob):
(WebCore::LayerTiler::TextureJob::setContents):
(WebCore::LayerTiler::TextureJob::updateContents):
(TextureJob):
(WebCore::LayerTiler::needsRender):
(WebCore::LayerTiler::removeUpdateContentsJobs):
* platform/graphics/blackberry/LayerWebKitThread.cpp:
(WebCore::LayerWebKitThread::LayerWebKitThread):
(WebCore::LayerWebKitThread::~LayerWebKitThread):
(WebCore::LayerWebKitThread::paintContents):
(WebCore::LayerWebKitThread::commitPendingTextureUploads):
(WebCore::LayerWebKitThread::setContents):
(WebCore::LayerWebKitThread::setNeedsCommit):
(WebCore::LayerWebKitThread::notifyAnimationsStarted):
(WebCore::LayerWebKitThread::commitOnWebKitThread):
(WebCore::LayerWebKitThread::startAnimations):
(WebCore::LayerWebKitThread::updateTextureContents):
(WebCore::LayerWebKitThread::commitOnCompositingThread):
(WebCore::LayerWebKitThread::addSublayer):
(WebCore):
(WebCore::LayerWebKitThread::addOverlay):
(WebCore::LayerWebKitThread::insert):
(WebCore::LayerWebKitThread::removeFromSuperlayer):
(WebCore::LayerWebKitThread::removeSublayerOrOverlay):
(WebCore::LayerWebKitThread::remove):
(WebCore::LayerWebKitThread::replaceSublayer):
(WebCore::LayerWebKitThread::filtersCanBeComposited):
(WebCore::LayerWebKitThread::removeAll):
(WebCore::LayerWebKitThread::setSublayers):
(WebCore::LayerWebKitThread::updateLayerHierarchy):
(WebCore::LayerWebKitThread::setIsMask):
(WebCore::LayerWebKitThread::releaseLayerResources):
* platform/graphics/blackberry/LayerWebKitThread.h:
(WebCore::LayerWebKitThread::insertSublayer):
(LayerWebKitThread):
(WebCore::LayerWebKitThread::isMask):
(WebCore::LayerWebKitThread::removeAllSublayers):
(WebCore::LayerWebKitThread::setFixedPosition):
(WebCore::LayerWebKitThread::setIsContainerForFixedPositionLayers):
(WebCore::LayerWebKitThread::setFixedToTop):
(WebCore::LayerWebKitThread::setFixedToLeft):
(WebCore::LayerWebKitThread::setFrameVisibleRect):
(WebCore::LayerWebKitThread::setFrameContentsSize):
(WebCore::LayerWebKitThread::setLayerProgram):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::play):
(WebCore::MediaPlayerPrivate::supportsFullscreen):
(WebCore::MediaPlayerPrivate::paintCurrentFrameInContext):
(WebCore::MediaPlayerPrivate::prepareForRendering):
(WebCore):
(WebCore::MediaPlayerPrivate::resizeSourceDimensions):
(WebCore::MediaPlayerPrivate::percentLoaded):
(WebCore::MediaPlayerPrivate::updateStates):
(WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
(WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
(WebCore::MediaPlayerPrivate::notifyChallengeResult):
(WebCore::MediaPlayerPrivate::isProcessingUserGesture):
(WebCore::loadBufferingImageData):
(WebCore::MediaPlayerPrivate::setBuffering):
(WebCore::MediaPlayerPrivate::drawBufferingAnimation):
(WebCore::MediaPlayerPrivate::onConditionallyEnterFullscreen):
(WebCore::MediaPlayerPrivate::onExitFullscreen):
(WebCore::MediaPlayerPrivate::onCreateHolePunchRect):
(WebCore::MediaPlayerPrivate::onDestroyHolePunchRect):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
(BlackBerry):
(Platform):
(Graphics):
(MediaPlayerPrivate):
* platform/graphics/blackberry/PluginLayerWebKitThread.cpp:
(WebCore::PluginLayerWebKitThread::setPluginView):
* platform/graphics/blackberry/Texture.cpp:
(WebCore::Texture::Texture):
(WebCore::Texture::updateContents):
(WebCore::Texture::setContentsToColor):
(WebCore::Texture::protect):
* platform/graphics/blackberry/Texture.h:
(Texture):
(WebCore::Texture::textureId):
(WebCore::Texture::isDirty):
(WebCore::Texture::hasTexture):
(WebCore::Texture::sizeInBytes):
(WebCore::Texture::setTextureId):
(WebCore::Texture::setSize):
* platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
(WebCore::TextureCacheCompositingThread::allocateTextureId):
(WebCore::freeTextureId):
(WebCore::TextureCacheCompositingThread::collectGarbage):
(WebCore::TextureCacheCompositingThread::textureSizeInBytesChanged):
(WebCore):
(WebCore::TextureCacheCompositingThread::textureDestroyed):
(WebCore::TextureCacheCompositingThread::install):
(WebCore::TextureCacheCompositingThread::resizeTexture):
(WebCore::TextureCacheCompositingThread::evict):
(WebCore::TextureCacheCompositingThread::prune):
(WebCore::TextureCacheCompositingThread::clear):
(WebCore::TextureCacheCompositingThread::textureForTiledContents):
(WebCore::TextureCacheCompositingThread::updateContents):
* platform/graphics/blackberry/TextureCacheCompositingThread.h:
(TextureCacheCompositingThread):
(WebCore::TextureCacheCompositingThread::ZombieTexture::ZombieTexture):
(ZombieTexture):
* platform/graphics/blackberry/skia/ImageBufferDataSkia.h: Removed.
* platform/graphics/blackberry/skia/PlatformSupport.cpp: Removed.
* platform/graphics/blackberry/skia/PlatformSupport.h: Removed.
2013-03-01 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Qt] Fix the Mac build with the current qtbase/dev branch
https://bugs.webkit.org/show_bug.cgi?id=111190
Reviewed by Allan Sandfeld Jensen.
QMAKE_MACOSX_DEPLOYMENT_TARGET now influences
__MAC_OS_X_VERSION_MIN_REQUIRED through -mmacosx-version-min after
changes in qtbase to support iOS.
Having only WebCore defining it to 10.5 would create a mismatch of
ENABLE_THREADING_LIBDISPATCH with WTF to cause undefined symbols
while linking both together at the end.
Fix it by removing the statement which isn't needed anymore.
qtbase/mkspecs/common/mac-minimum-version.conf already defines
10.6 as the minimum Mac version.
* Target.pri:
2013-03-01 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: [Regression] Snippets renaming is broken.
https://bugs.webkit.org/show_bug.cgi?id=111181
Reviewed by Alexander Pavlov.
* inspector/front-end/NavigatorView.js:
* inspector/front-end/ScriptSnippetModel.js:
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.set _fileRenamed):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.rename):
2013-03-01 David Hyatt <hyatt@apple.com>
Fix a misspelled word in RenderObject.h. staticly -> statically.
Reviewed by Dean Jackson.
* rendering/RenderObject.h:
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
(WebCore::RenderObject::RenderObjectBitfields::isPositioned):
2013-03-01 David Hyatt <hyatt@apple.com>
[New Multicolumn] Change flow thread containment to be a state.
https://bugs.webkit.org/show_bug.cgi?id=111110
Change m_inRenderFlowThread from a single bit to an actual state. This
will let us track whether we're inside a multicolumn (in-flow) flow thread
or a named (out-of-flow) flow thread. In the former case, we're going to have
to do more work to maintain this state, but for now I've kept all the logic
the same just for the initial landing.
Reviewed by Andreas Kling.
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
(WebCore::NodeRenderingContext::createRendererForTextIfNeeded):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::clone):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::RenderFlowThread):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::clone):
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setFlowThreadStateIncludingDescendants):
(WebCore::RenderObject::removeFromRenderFlowThreadRecursive):
* rendering/RenderObject.h:
(WebCore::RenderObject::setParent):
(RenderObject):
(WebCore::RenderObject::inRenderFlowThread):
(WebCore::RenderObject::flowThreadState):
(WebCore::RenderObject::setFlowThreadState):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
(RenderObjectBitfields):
(WebCore::RenderObject::RenderObjectBitfields::flowThreadState):
(WebCore::RenderObject::RenderObjectBitfields::setFlowThreadState):
* rendering/RenderView.cpp:
(WebCore::RenderView::addChild):
2013-03-01 Jessie Berlin <jberlin@apple.com>
Build fix.
Roll out r144431 because it was a build fix for r144422, which was rolled out in r144446.
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
2013-03-01 David Kilzer <ddkilzer@apple.com>
BUILD FIX (r144358): Add UNUSED_PARAM() macros to WebCore::Extensions3DOpenGL::drawBuffersEXT()
<http://webkit.org/b/109331>
Fixes the following build failures:
Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp:218:51: error: unused parameter 'n' [-Werror,-Wunused-parameter]
void Extensions3DOpenGL::drawBuffersEXT(GC3Dsizei n, const GC3Denum* bufs)
^
Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp:218:70: error: unused parameter 'bufs' [-Werror,-Wunused-parameter]
void Extensions3DOpenGL::drawBuffersEXT(GC3Dsizei n, const GC3Denum* bufs)
^
2 errors generated.
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::drawBuffersEXT): Add UNUSED_PARAM()
macros.
2013-03-01 Dan Carney <dcarney@google.com>
[v8] ScriptValue has dangerous copy semantics
https://bugs.webkit.org/show_bug.cgi?id=110206
Reviewed by Kentaro Hara.
Update ScriptValue to used a SharedPersistent,
making it impossible to return dead references.
No new tests. No change in functionality.
* bindings/v8/ScriptValue.cpp:
(WebCore::ScriptValue::serialize):
(WebCore::ScriptValue::getString):
(WebCore::ScriptValue::toString):
(WebCore::ScriptValue::toInspectorValue):
* bindings/v8/ScriptValue.h:
(WebCore::ScriptValue::ScriptValue):
(WebCore::ScriptValue::operator=):
(WebCore::ScriptValue::operator==):
(WebCore::ScriptValue::isEqual):
(WebCore::ScriptValue::isFunction):
(WebCore::ScriptValue::isNull):
(WebCore::ScriptValue::isUndefined):
(WebCore::ScriptValue::isObject):
(WebCore::ScriptValue::hasNoValue):
(WebCore::ScriptValue::clear):
(ScriptValue):
(WebCore::ScriptValue::v8Value):
(WebCore::ScriptValue::v8ValueRaw):
* bindings/v8/SharedPersistent.h:
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::InjectedScriptHost::scriptValueAsNode):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::dataAttrGetterCustom):
2013-03-01 Julien Chaffraix <jchaffraix@webkit.org>
Add FeatureObserver for marquee and reflection
https://bugs.webkit.org/show_bug.cgi?id=111118
Reviewed by Simon Fraser.
Refactoring covered by existing tests.
* page/FeatureObserver.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::styleChanged):
Added some instrumentation for reflection and marquee as they are both prefixed and this would help
to know their popularity on the web. Marquee was split between <marquee> (HTMLMarqueeElement) and
overflow: -webkit-marquee (CSSOverflowMarquee).
2013-03-01 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Introduce opaque SecurityOrigin string identifiers in the frontend
https://bugs.webkit.org/show_bug.cgi?id=111165
Reviewed by Vsevolod Vlasov.
A plain string security origin value has been replaced by WebInspector.SecurityOrigin all over the code,
containing a URL (which holds a stringified security origin) and an identifier (which is now used
as a key in place of the stringified security origin in various maps). To avoid the ResourceTreeModel
code clutter, the security origin tracking code has been extracted into a separate type,
WebInspector.SecurityOriginTracker, which works as a helper on the ResourceTreeModel.
No new tests, as it is a refactoring.
* inspector/front-end/DOMStorage.js:
(WebInspector.DOMStorage.storageId):
(WebInspector.DOMStorage.prototype.id):
(WebInspector.DOMStorage.prototype.getItems):
(WebInspector.DOMStorage.prototype.setItem):
(WebInspector.DOMStorage.prototype.removeItem):
(WebInspector.DOMStorageModel.prototype._securityOriginAdded):
(WebInspector.DOMStorageModel.prototype._securityOriginRemoved):
(WebInspector.DOMStorageModel.prototype._storageKey):
* inspector/front-end/ExtensionAuditCategory.js:
* inspector/front-end/FileSystemModel.js:
(WebInspector.FileSystemModel.prototype._reset):
(WebInspector.FileSystemModel.prototype._securityOriginAdded):
(WebInspector.FileSystemModel.prototype._securityOriginRemoved):
(WebInspector.FileSystemModel.prototype._addOrigin):
(WebInspector.FileSystemModel.prototype._removeOrigin):
(WebInspector.FileSystemModel.prototype._requestFileSystemRoot):
(WebInspector.FileSystemModel.prototype._fileSystemRootReceived):
(WebInspector.FileSystemModel.prototype._removeFileSystem):
(WebInspector.FileSystemModel.FileSystem.prototype.get name):
* inspector/front-end/IndexedDBModel.js:
(WebInspector.IndexedDBModel.prototype._reset):
(WebInspector.IndexedDBModel.prototype.refreshDatabaseNames):
(WebInspector.IndexedDBModel.prototype._securityOriginAdded):
(WebInspector.IndexedDBModel.prototype._securityOriginRemoved):
(WebInspector.IndexedDBModel.prototype._addOrigin):
(WebInspector.IndexedDBModel.prototype._removeOrigin):
(WebInspector.IndexedDBModel.prototype._updateOriginDatabaseNames):
(WebInspector.IndexedDBModel.prototype._loadDatabaseNames):
(WebInspector.IndexedDBModel.prototype._loadDatabase):
(WebInspector.IndexedDBModel.prototype.):
(WebInspector.IndexedDBModel.prototype._requestData):
(WebInspector.IndexedDBModel.DatabaseId.prototype.equals):
* inspector/front-end/IndexedDBViews.js:
(WebInspector.IDBDatabaseView.prototype._refreshDatabase):
* inspector/front-end/ResourceTreeModel.js:
(WebInspector.ResourceTreeModel.prototype._addFrame):
(WebInspector.ResourceTreeModel.prototype.securityOriginForId):
(WebInspector.ResourceTreeModel.prototype.securityOrigins):
(WebInspector.ResourceTreeModel.prototype._handleMainFrameDetached):
(WebInspector.ResourceTreeModel.prototype._frameNavigated):
(WebInspector.ResourceTreeModel.prototype._frameDetached):
(WebInspector.ResourceTreeModel.SecurityOriginTracker):
(WebInspector.ResourceTreeModel.SecurityOriginTracker.prototype._addSecurityOrigin):
(WebInspector.ResourceTreeModel.SecurityOriginTracker.prototype._removeSecurityOrigin):
(WebInspector.ResourceTreeModel.SecurityOriginTracker.prototype._bindSecurityOrigin):
(WebInspector.ResourceTreeModel.SecurityOriginTracker.prototype._unbindSecurityOrigin):
(WebInspector.ResourceTreeModel.SecurityOriginTracker.prototype._detachMainFrame):
(WebInspector.ResourceTreeModel.SecurityOriginTracker.prototype._securityOriginForId):
(WebInspector.ResourceTreeModel.SecurityOriginTracker.prototype._securityOrigins):
(WebInspector.ResourceTreeFrame.prototype._navigate):
(WebInspector.SecurityOrigin.prototype.id):
(WebInspector.SecurityOrigin.prototype.url):
(WebInspector.SecurityOrigin.prototype.uiTitle):
(WebInspector.SecurityOrigin.prototype.toProtocol):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.IDBDatabaseTreeElement):
(WebInspector.IDBDatabaseTreeElement.prototype.get itemURL):
(WebInspector.IDBObjectStoreTreeElement.prototype.get itemURL):
(WebInspector.IDBIndexTreeElement.prototype.get itemURL):
(WebInspector.DOMStorageTreeElement):
(WebInspector.DOMStorageTreeElement.prototype.get itemURL):
(WebInspector.FileSystemTreeElement):
2013-03-01 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Timeline] Show "curtains" when mouse is over CPU bar.
https://bugs.webkit.org/show_bug.cgi?id=108930
Reviewed by Pavel Feldman.
This feature will help developers to focus on events
that caused CPU bar.
* inspector/front-end/Popover.js: Added "arrowDirection" parameter.
* inspector/front-end/TimelineGrid.js:
(WebInspector.TimelineGrid): Added "curtains".
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._mouseMove): Show/hide "curtains"
when mouse is over CPU bar.
* inspector/front-end/timelinePanel.css: Added "curtains" style rules.
2013-03-01 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Styles] Implement navigation to UI locations of property names/values in the source code
Relanding fixed r144449.
https://bugs.webkit.org/show_bug.cgi?id=105285
Reviewed by Vsevolod Vlasov.
Users can now Ctrl/Cmd-click CSS property names/values whose UI locations are found in
an external stylesheet/sass/other file. Inline stylesheets are not navigable,
since their start position is not detectable inside the surrounding HTML as of yet.
No new tests, a UI change.
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSRule.prototype.isSourceNavigable): Whether the rule contains reliable source code information.
(WebInspector.CSSProperty.prototype.uiLocation): Returns a UILocation for the property name of value.
* inspector/front-end/StylesSidebarPane.js: Add navigation code.
(WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
(WebInspector.StylePropertiesSection):
2013-03-01 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r144449.
http://trac.webkit.org/changeset/144449
https://bugs.webkit.org/show_bug.cgi?id=111175
Breaks style-related inspector tests (Requested by apavlov on
#webkit).
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSRule.prototype.get isRegular):
(WebInspector.CSSProperty.prototype.setDisabled):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
(WebInspector.StylePropertiesSection):
(.event):
(.isRevert):
2013-03-01 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Styles] Implement navigation to UI locations of property names/values in the source code
https://bugs.webkit.org/show_bug.cgi?id=105285
Reviewed by Vsevolod Vlasov.
Users can now Ctrl/Cmd-click CSS property names/values whose UI locations are found in
an external stylesheet/sass/other file. Inline stylesheets are not navigable,
since their start position is not detectable inside the surrounding HTML as of yet.
No new tests, a UI change.
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSRule.prototype.isSourceNavigable): Whether the rule contains reliable source code information.
(WebInspector.CSSProperty.prototype.uiLocation): Returns a UILocation for the property name of value.
* inspector/front-end/StylesSidebarPane.js: Add navigation code.
(WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
(WebInspector.StylePropertiesSection):
2013-03-01 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r144443.
http://trac.webkit.org/changeset/144443
https://bugs.webkit.org/show_bug.cgi?id=111169
Caused 2 tests to crash by segv on Chromium Mac10.6 (Requested
by toyoshim on #webkit).
* css/mediaControls.css:
(video::-webkit-media-text-track-display):
* rendering/RenderTextTrackCue.cpp:
(WebCore::RenderTextTrackCue::isOutside):
(WebCore::RenderTextTrackCue::repositionCueSnapToLinesSet):
2013-03-01 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r144422 and r144424.
http://trac.webkit.org/changeset/144422
http://trac.webkit.org/changeset/144424
https://bugs.webkit.org/show_bug.cgi?id=111167
Caused over 20 tests to fail assertion on Chromium Win port as
ASSERTION FAILED: m_platformRequestUpdated (Requested by
toyoshim on #webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/RTCPeerConnection.cpp:
* Modules/notifications/Notification.cpp:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/ScriptControllerBase.cpp:
* bindings/js/JSNodeCustom.cpp:
* bindings/js/ScriptController.cpp:
* bindings/js/ScriptSourceCode.h:
* bindings/objc/DOM.mm:
* bindings/v8/ScriptController.cpp:
* bindings/v8/V8DOMWindowShell.cpp:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
* css/CSSCrossfadeValue.h:
(WebCore::CSSCrossfadeValue::CSSCrossfadeValue):
(WebCore::CSSCrossfadeValue::CrossfadeSubimageObserverProxy::CrossfadeSubimageObserverProxy):
* css/CSSFontFaceSource.h:
* css/CSSFontSelector.cpp:
* css/WebKitCSSSVGDocumentValue.cpp:
* css/WebKitCSSSVGDocumentValue.h:
(WebCore):
* dom/Clipboard.cpp:
(WebCore::Clipboard::Clipboard):
* dom/ContainerNode.cpp:
* dom/DOMImplementation.cpp:
* dom/PendingScript.h:
* dom/ScriptElement.cpp:
* dom/ScriptElement.h:
* history/CachedFrame.cpp:
* html/DOMURL.cpp:
* html/HTMLAnchorElement.cpp:
* html/HTMLAppletElement.cpp:
* html/HTMLElement.cpp:
* html/HTMLEmbedElement.cpp:
* html/HTMLFrameSetElement.cpp:
* html/HTMLHtmlElement.cpp:
* html/HTMLImageElement.cpp:
* html/HTMLObjectElement.cpp:
* html/HTMLPlugInElement.cpp:
* html/ImageDocument.cpp:
* html/ImageInputType.cpp:
* html/MediaDocument.cpp:
* html/PluginDocument.cpp:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
* html/parser/HTMLConstructionSite.cpp:
* html/parser/HTMLParserOptions.cpp:
* html/parser/HTMLScriptRunner.h:
* html/parser/XSSAuditor.cpp:
* html/parser/XSSAuditorDelegate.cpp:
* inspector/InspectorDebuggerAgent.cpp:
* inspector/InspectorFileSystemAgent.cpp:
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorInstrumentation.h:
(WebCore):
* inspector/InspectorPageAgent.cpp:
* inspector/NetworkResourcesData.cpp:
* inspector/NetworkResourcesData.h:
(WebCore):
* loader/CookieJar.cpp:
* loader/CrossOriginAccessControl.cpp:
* loader/CrossOriginAccessControl.h:
(WebCore):
* loader/CrossOriginPreflightResultCache.h:
* loader/DocumentThreadableLoader.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
* loader/FrameLoader.h:
(WebCore):
(WebCore::FrameLoader::policyChecker):
* loader/ImageLoader.cpp:
* loader/ImageLoader.h:
* loader/LinkLoader.h:
* loader/MainResourceLoader.cpp:
* loader/MainResourceLoader.h:
* loader/MixedContentChecker.cpp:
* loader/PingLoader.cpp:
* loader/PolicyChecker.h:
(WebCore):
* loader/ProgressTracker.cpp:
* loader/SubframeLoader.cpp:
* loader/SubresourceLoader.cpp:
* loader/TextTrackLoader.cpp:
* loader/TextTrackLoader.h:
* loader/ThreadableLoader.h:
* loader/appcache/ApplicationCacheGroup.cpp:
* loader/appcache/ApplicationCacheGroup.h:
(WebCore):
* loader/appcache/ApplicationCacheHost.cpp:
* loader/archive/cf/LegacyWebArchive.cpp:
* loader/cache/CachedFont.cpp:
* loader/cache/CachedFont.h:
(CachedFontClient):
(WebCore::CachedFontClient::~CachedFontClient):
(WebCore::CachedFontClient::expectedType):
(WebCore::CachedFontClient::resourceClientType):
(WebCore::CachedFontClient::fontLoaded):
(WebCore):
* loader/cache/CachedFontClient.h: Removed.
* loader/cache/CachedImage.cpp:
* loader/cache/CachedRawResource.cpp:
* loader/cache/CachedRawResource.h:
(WebCore):
(CachedRawResourceClient):
(WebCore::CachedRawResourceClient::~CachedRawResourceClient):
(WebCore::CachedRawResourceClient::expectedType):
(WebCore::CachedRawResourceClient::resourceClientType):
(WebCore::CachedRawResourceClient::dataSent):
(WebCore::CachedRawResourceClient::responseReceived):
(WebCore::CachedRawResourceClient::dataReceived):
(WebCore::CachedRawResourceClient::redirectReceived):
(WebCore::CachedRawResourceClient::dataDownloaded):
* loader/cache/CachedRawResourceClient.h: Removed.
* loader/cache/CachedResource.cpp:
* loader/cache/CachedResourceHandle.cpp:
* loader/cache/CachedResourceHandle.h:
(WebCore::CachedResourceHandleBase::~CachedResourceHandleBase):
(WebCore::CachedResourceHandleBase::CachedResourceHandleBase):
* loader/cache/CachedSVGDocument.h:
(CachedSVGDocumentClient):
(WebCore::CachedSVGDocumentClient::~CachedSVGDocumentClient):
(WebCore::CachedSVGDocumentClient::expectedType):
(WebCore::CachedSVGDocumentClient::resourceClientType):
(WebCore):
* loader/cache/CachedSVGDocumentClient.h: Removed.
* loader/cache/CachedSVGDocumentReference.cpp: Removed.
* loader/cache/CachedSVGDocumentReference.h:
(WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
(WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
* loader/cache/CachedStyleSheetClient.h:
* loader/cache/MemoryCache.cpp:
* loader/cache/MemoryCache.h:
(WebCore):
(MemoryCache):
* loader/chromium/CachedRawResourceChromium.cpp:
* loader/icon/IconController.cpp:
* loader/icon/IconLoader.h:
* loader/mac/ResourceLoaderMac.mm:
* page/DOMWindowExtension.cpp:
* page/DragController.cpp:
* page/Frame.cpp:
(WebCore::Frame::Frame):
(WebCore::Frame::reportMemoryUsage):
* page/Frame.h:
(WebCore):
(Frame):
(WebCore::Frame::init):
(WebCore::Frame::loader):
* page/PerformanceNavigation.cpp:
* page/PerformanceTiming.cpp:
* page/PointerLockController.cpp:
* page/Settings.cpp:
* page/animation/CSSPropertyAnimation.cpp:
* platform/chromium/PasteboardChromium.cpp:
* platform/efl/ErrorsEfl.cpp:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/filters/FilterOperation.cpp:
* platform/graphics/filters/FilterOperation.h:
(WebCore::FilterOperation::ReferenceFilterOperation::setCachedSVGDocumentReference):
(WebCore::FilterOperation::ReferenceFilterOperation::ReferenceFilterOperation):
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
* platform/gtk/ErrorsGtk.cpp:
* platform/gtk/PasteboardGtk.cpp:
* platform/gtk/PasteboardHelper.h:
* platform/mac/ClipboardMac.h:
* platform/mac/ClipboardMac.mm:
* platform/mac/HTMLConverter.mm:
* platform/mac/PasteboardMac.mm:
* platform/network/AuthenticationChallengeBase.cpp:
* platform/network/cf/CookieJarCFNet.cpp:
* platform/network/cf/ResourceRequestCFNet.cpp:
* platform/network/mac/CookieStorageMac.mm:
* platform/qt/PasteboardQt.cpp:
* plugins/DOMMimeType.cpp:
* plugins/PluginRequest.h: Removed.
* plugins/PluginStream.h:
(PluginStreamClient):
(WebCore::PluginStreamClient::~PluginStreamClient):
(WebCore::PluginStreamClient::streamDidFinishLoading):
(WebCore):
* plugins/PluginStreamClient.h: Removed.
* plugins/PluginView.cpp:
* plugins/PluginView.h:
(WebCore):
(PluginRequest):
(WebCore::PluginRequest::PluginRequest):
(WebCore::PluginRequest::frameLoadRequest):
(WebCore::PluginRequest::notifyData):
(WebCore::PluginRequest::sendNotification):
(WebCore::PluginRequest::shouldAllowPopups):
* rendering/HitTestResult.cpp:
* rendering/InlineFlowBox.cpp:
* rendering/RenderBox.cpp:
* rendering/RenderEmbeddedObject.cpp:
* rendering/RenderImage.cpp:
* rendering/RenderImageResource.cpp:
(WebCore::RenderImageResource::RenderImageResource):
* rendering/RenderImageResource.h:
(WebCore::RenderImageResource::image):
(WebCore::RenderImageResource::errorOccurred):
(WebCore::RenderImageResource::usesImageContainerSize):
(WebCore::RenderImageResource::imageHasRelativeWidth):
(WebCore::RenderImageResource::imageHasRelativeHeight):
(WebCore::RenderImageResource::imageSize):
* rendering/RenderImageResourceStyleImage.cpp:
* rendering/RenderLayer.cpp:
* rendering/RenderLayerBacking.cpp:
* rendering/RenderLayerFilterInfo.h:
* rendering/RenderListItem.cpp:
* rendering/RenderListMarker.cpp:
* rendering/RenderSnapshottedPlugIn.cpp:
* rendering/RenderTableCol.cpp:
* rendering/RenderTableRow.cpp:
* rendering/RenderTableSection.cpp:
* rendering/style/StyleCachedShader.h:
* rendering/style/StyleCustomFilterProgram.cpp: Removed.
* rendering/style/StyleCustomFilterProgram.h:
(WebCore):
(WebCore::StyleCustomFilterProgram::vertexShaderString):
(StyleCustomFilterProgram):
(WebCore::StyleCustomFilterProgram::fragmentShaderString):
(WebCore::StyleCustomFilterProgram::isLoaded):
(WebCore::StyleCustomFilterProgram::willHaveClients):
(WebCore::StyleCustomFilterProgram::didRemoveLastClient):
(WebCore::StyleCustomFilterProgram::notifyFinished):
* svg/SVGFEImageElement.h:
* svg/SVGFontFaceUriElement.h:
(SVGFontFaceUriElement):
* svg/SVGImageLoader.cpp:
* svg/SVGUseElement.cpp:
* svg/SVGUseElement.h:
* svg/graphics/SVGImageCache.cpp:
* testing/MockPagePopupDriver.cpp:
* xml/XSLStyleSheet.h:
* xml/XSLTProcessorLibxslt.cpp:
* xml/parser/XMLDocumentParser.cpp:
* xml/parser/XMLDocumentParser.h:
* xml/parser/XMLDocumentParserLibxml2.cpp:
2013-03-01 Alexei Filippov <alph@chromium.org>
Web Inspector: fix closure compiler warnings in ProfilesPanel
https://bugs.webkit.org/show_bug.cgi?id=111163
Reviewed by Vsevolod Vlasov.
* inspector/front-end/ProfileLauncherView.js:
(WebInspector.ProfileLauncherView.prototype.addProfileType):
* inspector/front-end/ProfilesPanel.js:
2013-03-01 Victor Carbune <vcarbune@chromium.org>
Support padding, margin and border for internal UA cue styling
https://bugs.webkit.org/show_bug.cgi?id=110703
Reviewed by Eric Carlson.
For some particular user agent styling this allows the possibility
of making the window around the cue text bigger to match some user
styles (see CaptionUserPreferencesMac::captionsStyleSheetOverride).
These properties *cannot* be set through by using the ::cue
pseudo-element and, as specified, are used only internally.
Test: media/track/track-cue-rendering-with-padding.html
* css/mediaControls.css:
(video::-webkit-media-text-track-display): Set the CSS box model
to include in the specified width or height the values of
padding / margin / border by using -webkit-box-sizing and avoid
overflow over 100% width because of having these properties set.
* rendering/RenderTextTrackCue.cpp:
(WebCore::RenderTextTrackCue::isOutside): To not interfere with
the regular WebVTT positioning algorithm, the check is done for
the absolute content box.
(WebCore::RenderTextTrackCue::repositionCueSnapToLinesSet): Added
an extra adjustment step to accomodate vertical padding (and not
overflow the cue container)
2013-02-26 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Save/load timeline should preserve DOMContentLoaded and Load event markers
https://bugs.webkit.org/show_bug.cgi?id=110819
Reviewed by Pavel Feldman.
To create event divider TimelinePresentation model checks if record
frame is main frame. With this patch check is moved to backend and
result is saved in record to avoid incoherence.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::didMarkDOMContentEvent):
Record "isMainFrame" flag.
(WebCore::InspectorTimelineAgent::didMarkLoadEvent): Ditto.
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createMarkData):
Added data object constructor.
* inspector/TimelineRecordFactory.h: Ditto.
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.isEventDivider):
Use saved flag value instead of comparing with "current" main frame.
2013-03-01 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [DataGrid] Columns are misaligned after rows being refreshed.
https://bugs.webkit.org/show_bug.cgi?id=111077
Reviewed by Pavel Feldman.
Analysis: DataGridNode.refresh removes all cells and then recreates them.
The issue is that mandatory "corner" cell is not recreated.
* inspector/front-end/DataGrid.js:
(WebInspector.DataGridNode.prototype.refresh):
Added "corner" cell restoration code.
2013-02-28 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Selector's raw start position in its line is considered to be 0 when computing UILocation
https://bugs.webkit.org/show_bug.cgi?id=110732
Reviewed by Vsevolod Vlasov.
Test: inspector/styles/selector-line.html
* inspector/ContentSearchUtils.cpp:
(WebCore::ContentSearchUtils::sizetExtractor): Utility for binary search.
(WebCore::ContentSearchUtils::textPositionFromOffset): Converts absolute raw text offset into line:column.
(WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines): Refactor.
(WebCore::ContentSearchUtils::lineEndings): Factored out of getRegularExpressionMatchesByLines.
(WebCore::ContentSearchUtils::buildObjectForSearchMatch): Drive-by: pass String by reference.
* inspector/ContentSearchUtils.h:
* inspector/Inspector.json: Use line:column for SourceRange boundaries rather than raw offsets.
* inspector/InspectorStyleSheet.cpp:
(ParsedStyleSheet::text): ASSERT(m_hasText).
(WebCore::InspectorStyle::buildObjectForStyle): Supply the lineEndings argument.
(WebCore::buildSourceRangeObject): Follow the protocol change.
(WebCore::InspectorStyle::setPropertyText): Refactor.
(WebCore::InspectorStyle::toggleProperty): Ditto.
(WebCore::InspectorStyle::styleText): Ditto.
(WebCore::InspectorStyle::populateAllProperties): Ditto.
(WebCore::InspectorStyle::styleWithProperties): Convert relative property range offsets into absolute ones.
(WebCore::InspectorStyle::extractSourceData): Factored out.
(WebCore::InspectorStyle::newLineAndWhitespaceDelimiters): Supply the lineEndings argument.
(WebCore::InspectorStyleSheet::buildObjectForSelectorList): Ditto.
(WebCore::InspectorStyleSheet::lineEndings): Compute line endings for ordinary stylesheets.
(WebCore::InspectorStyleSheetForInlineStyle::lineEndings): Ditto for bogus inline style stylesheets.
* inspector/InspectorStyleSheet.h:
* inspector/front-end/AuditRules.js: Removed the byte counting for unused CSS.
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSRule): Set selector rawLocation based on the selectorList range or sourceLine.
(WebInspector.CSSRule.prototype._setRawLocation): Added.
* inspector/front-end/SASSSourceMapping.js:
(WebInspector.SASSSourceMapping.prototype._bindUISourceCode): Fix call order when binding scss sourcecodes.
2013-03-01 Benjamin Poulain <benjamin@webkit.org>
Get rid of two silly static null Strings
https://bugs.webkit.org/show_bug.cgi?id=111151
Reviewed by Eric Seidel.
We have a global null String through nullAtom, there is no need
for local static null strings.
* page/Page.cpp:
(WebCore::Page::groupName):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::markerText):
2013-03-01 Mark Rowe <mrowe@apple.com>
Build fix.
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Add a missing #include.
2013-03-01 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: fix code-mirror experiment to work in debug mode
https://bugs.webkit.org/show_bug.cgi?id=111064
Reviewed by Pavel Feldman.
No new tests: no change in behaviour.
Improve importScript function to try load a script from the root
directory iff its loading from the given path failed.
* inspector/front-end/utilities.js:
2013-03-01 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] capture a WebGL extension by it's name in lower case
https://bugs.webkit.org/show_bug.cgi?id=110745
Reviewed by Pavel Feldman.
WebGL's getExtension accepts a name that is tested against an ASCII case-insensitive match.
Just force lower case for extension names.
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
2013-03-01 Mike West <mkwst@chromium.org>
XSSAuditor should use threadSafeMatch when relevant.
https://bugs.webkit.org/show_bug.cgi?id=111099
Reviewed by Adam Barth.
Given the work on breaking parsing out into a background thread, we
should compare QualifiedNames in a thread-safe manner. Rather than
casting the result of QualifiedName::localName to a String, we can
call out to threadSafeMatch to do the comparison.
This patch leaves one use of equalIgnoringNullity in
XSSAuditor::findAttributeWithName. That usage seems safe, since we're
creating a new string against which to compare.
* html/parser/XSSAuditor.cpp:
(WebCore::hasName):
Replace call to equalIgnoringNullity(Vector<UChar...>, String)
with threadSafeMatch(String, QualifiedName).
2013-02-28 Keishi Hattori <keishi@webkit.org>
Add calendar table view for the new calendar picker
https://bugs.webkit.org/show_bug.cgi?id=110970
Reviewed by Kent Tamura.
The calendar table that will be used in the new calendar picker (Bug 109439).
No new tests. Code is not used yet.
* Resources/pagepopups/calendarPicker.js:
(DayCell): Cell which represents one day in the calendar.
(DayCell.recycleOrCreate):
(DayCell.prototype._recycleBin):
(DayCell.prototype.throwAway):
(DayCell.prototype.setHighlighted): Sets the highlighted class on the element.
(DayCell.prototype.setDisabled): Sets the disabled class on the element.
(DayCell.prototype.setIsInCurrentMonth): Sets the current-month class on the element.
(DayCell.prototype.setIsToday): Sets the today class on the element.
(DayCell.prototype.reset): Resets the day cell to be reused.
(WeekNumberCell): Cell used for the week number column.
(WeekNumberCell.prototype._recycleBin):
(WeekNumberCell.recycleOrCreate):
(WeekNumberCell.prototype.reset):
(WeekNumberCell.prototype.throwAway):
(WeekNumberCell.prototype.setHighlighted): Sets the highlighted class on the element.
(WeekNumberCell.prototype.setDisabled): Sets the disabled class on the element.
(CalendarTableHeaderView): Header for the calendar table. Contains the column labels.
(CalendarRowCell): Row containing day cells and maybe a week number cell.
(CalendarRowCell.prototype._recycleBin):
(CalendarRowCell.prototype.reset):
(CalendarRowCell.prototype.throwAway):
(CalendarTableView): A list view showing a grid of days.
(CalendarTableView.prototype.rowAtScrollOffset): Returns the row number currently at the scroll offset.
(CalendarTableView.prototype.scrollOffsetForRow): Returns the current scroll offset for the given row.
(CalendarTableView.prototype.onClick): If the click is on a DayCell or WeekNumberCell, select the appropriate date range.
(CalendarTableView.prototype.onMouseOver): If the click is on a DayCell or WeekNumberCell, highlight the appropriate date range.
(CalendarTableView.prototype.onMouseOut):
(CalendarTableView.prototype.prepareNewCell): Prepares a new row cell by recycling or creating a new one.
(CalendarTableView.prototype.height): Returns the height of the view in pixels.
(CalendarTableView.prototype.setHeight): Sets the height of the view in pixels.
(CalendarTableView.prototype.scrollToMonth): Scrolls to reveal the given month.
(CalendarTableView.prototype.dayAtColumnAndRow): Day at a given column and row. Column number doesn't count week number column.
(CalendarTableView.prototype.columnAndRowForDay): Column and row for the given day.
(CalendarTableView.prototype.updateCells): Update the position and appearance of the cell.s
(CalendarTableView.prototype.prepareNewDayCell): Prepares a new day cell. The cell is registered to this._dayCells.
(CalendarTableView.prototype.prepareNewWeekNumberCell): Prepares a new week number cell. The cell is registered to this._weekNumberCells.
(CalendarTableView.prototype.throwAwayDayCell): The cell is unregistered from this._dayCells.
(CalendarTableView.prototype.throwAwayWeekNumberCell): The cell is unregistered from this._weekNumberCells.
2013-02-28 Alexey Proskuryakov <ap@apple.com>
Reduce amount of rebuilding when touching networking headers
https://bugs.webkit.org/show_bug.cgi?id=111035
Reviewed by Eric Seidel.
This uses a number of common unsurprising techniques. One interesting observation
is that including CachedResource related headers is very expensive. We can usually
get away with their Client counterparts, and with CachedResourceHandle.
* page/Frame.cpp:
* page/Frame.h:
Don't include FrameLoader, greatly reducing include graph for most non-loader files.
This required making Frame::init() non-inline - I'm not sure why it ever was.
* loader/FrameLoader.cpp:
* loader/FrameLoader.h:
Even though FrameLoader is logically on loading side of WebCore, it's included in
too many places. Not including PolicyChecker.h and ResourceHandle.h was among the
largest wins. As a future improvement, we should probably convert other members
to OwnPtrs.
* css/CSSCrossfadeValue.h: Initializing CachedResourceHandle with 0 requires a
definition of a class it holds, but default construction does not.
* loader/CrossOriginAccessControl.h: This file among others only needs ResourceHandleTypes.h,
not ResourceHandle.h. This header is semi-recent, so not all include sites were updated.
* loader/cache/CachedFont.h:
* loader/cache/CachedFontClient.h: Added.
* loader/cache/CachedRawResource.h:
* loader/cache/CachedRawResourceClient.h: Added.
* loader/cache/CachedSVGDocument.h:
* loader/cache/CachedSVGDocumentClient.h: Added.
These types were defining client types in the same headers, making it impossible
to avoid including networking headers through CachedResource. Moved clients into
separate files.
* plugins/PluginStream.h:
* plugins/PluginStreamClient.h: Added.
Similar situation here.
* loader/cache/CachedResourceHandle.cpp:
* loader/cache/CachedResourceHandle.h:
Moved functions that need to know about CachedResource to .cpp file. This is another
huge win. Added a destructor, so that CachedResource woudn't be needed in all files
that include CachedResourceHandle.
* loader/cache/CachedSVGDocumentReference.cpp: Added.
* loader/cache/CachedSVGDocumentReference.h:
Moved constructor and virtual function implementations to a .cpp file - they need
not inlining, and this lets us avoid including CachedSVGDocument.h in the header.
* platform/graphics/filters/FilterOperation.cpp:
* platform/graphics/filters/FilterOperation.h:
Avoid including CachedSVGDocumentReference.h. This is not such a big win now that
CachedSVGDocumentReference.h itself is smaller, but FilterOperation is so clearly
rendering code that it seems best to cut any ties with resources and loading.
Added a virtual destrutor in .cpp file, because inline destructors in polymorphic
classes are generally harmful (due to code bloat).
* plugins/PluginRequest.h: Added.
* plugins/PluginView.h:
Moved PluginRequest into a separate file, it was out of place in a view hierarchy
class file.
* rendering/RenderImageResource.cpp:
* rendering/RenderImageResource.h:
Moved definitions of virtual functions to a .cpp file. Thre is no win from having
them inline, and now we don't need CachedImage.h in the header.
* rendering/style/StyleCustomFilterProgram.cpp: Added.
* rendering/style/StyleCustomFilterProgram.h:
Ditto.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/RTCPeerConnection.cpp:
* Modules/notifications/Notification.cpp:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/ScriptControllerBase.cpp:
* bindings/js/JSNodeCustom.cpp:
* bindings/js/ScriptController.cpp:
* bindings/js/ScriptSourceCode.h:
* bindings/objc/DOM.mm:
* bindings/v8/ScriptController.cpp:
* bindings/v8/V8DOMWindowShell.cpp:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
* css/CSSFontFaceSource.h:
* css/CSSFontSelector.cpp:
* css/WebKitCSSSVGDocumentValue.cpp:
* css/WebKitCSSSVGDocumentValue.h:
* dom/Clipboard.cpp:
* dom/ContainerNode.cpp:
* dom/DOMImplementation.cpp:
* dom/PendingScript.h:
* dom/ScriptElement.cpp:
* dom/ScriptElement.h:
* history/CachedFrame.cpp:
* html/DOMURL.cpp:
* html/HTMLAnchorElement.cpp:
* html/HTMLAppletElement.cpp:
* html/HTMLElement.cpp:
* html/HTMLEmbedElement.cpp:
* html/HTMLFrameSetElement.cpp:
* html/HTMLHtmlElement.cpp:
* html/HTMLImageElement.cpp:
* html/HTMLObjectElement.cpp:
* html/HTMLPlugInElement.cpp:
* html/ImageDocument.cpp:
* html/ImageInputType.cpp:
* html/MediaDocument.cpp:
* html/PluginDocument.cpp:
* html/canvas/WebGLRenderingContext.cpp:
* html/parser/HTMLConstructionSite.cpp:
* html/parser/HTMLParserOptions.cpp:
* html/parser/HTMLScriptRunner.h:
* html/parser/XSSAuditor.cpp:
* html/parser/XSSAuditorDelegate.cpp:
* inspector/InspectorDebuggerAgent.cpp:
* inspector/InspectorFileSystemAgent.cpp:
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorInstrumentation.h:
* inspector/InspectorPageAgent.cpp:
* inspector/NetworkResourcesData.cpp:
* inspector/NetworkResourcesData.h:
* loader/CookieJar.cpp:
* loader/CrossOriginAccessControl.cpp:
* loader/CrossOriginPreflightResultCache.h:
* loader/DocumentThreadableLoader.h:
* loader/ImageLoader.cpp:
* loader/ImageLoader.h:
* loader/LinkLoader.h:
* loader/MainResourceLoader.cpp:
* loader/MainResourceLoader.h:
* loader/MixedContentChecker.cpp:
* loader/PingLoader.cpp:
* loader/PolicyChecker.h:
* loader/ProgressTracker.cpp:
* loader/SubframeLoader.cpp:
* loader/SubresourceLoader.cpp:
* loader/TextTrackLoader.cpp:
* loader/TextTrackLoader.h:
* loader/ThreadableLoader.h:
* loader/appcache/ApplicationCacheGroup.cpp:
* loader/appcache/ApplicationCacheGroup.h:
* loader/appcache/ApplicationCacheHost.cpp:
* loader/archive/cf/LegacyWebArchive.cpp:
* loader/cache/CachedFont.cpp:
* loader/cache/CachedImage.cpp:
* loader/cache/CachedRawResource.cpp:
* loader/cache/CachedResource.cpp:
* loader/cache/CachedStyleSheetClient.h:
* loader/cache/MemoryCache.cpp:
* loader/cache/MemoryCache.h:
* loader/chromium/CachedRawResourceChromium.cpp:
* loader/icon/IconController.cpp:
* loader/icon/IconLoader.h:
* loader/mac/ResourceLoaderMac.mm:
* page/DOMWindowExtension.cpp:
* page/DragController.cpp:
* page/PerformanceNavigation.cpp:
* page/PerformanceTiming.cpp:
* page/PointerLockController.cpp:
* page/Settings.cpp:
* page/animation/CSSPropertyAnimation.cpp:
* platform/chromium/PasteboardChromium.cpp:
* platform/efl/ErrorsEfl.cpp:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
* platform/gtk/ErrorsGtk.cpp:
* platform/gtk/PasteboardGtk.cpp:
* platform/gtk/PasteboardHelper.h:
* platform/mac/ClipboardMac.h:
* platform/mac/ClipboardMac.mm:
* platform/mac/HTMLConverter.mm:
* platform/mac/PasteboardMac.mm:
* platform/network/AuthenticationChallengeBase.cpp:
* platform/network/cf/CookieJarCFNet.cpp:
* platform/network/cf/ResourceRequestCFNet.cpp:
* platform/network/mac/CookieStorageMac.mm:
* platform/qt/PasteboardQt.cpp:
* plugins/DOMMimeType.cpp:
* plugins/PluginView.cpp:
* rendering/HitTestResult.cpp:
* rendering/InlineFlowBox.cpp:
* rendering/RenderBox.cpp:
* rendering/RenderEmbeddedObject.cpp:
* rendering/RenderImage.cpp:
* rendering/RenderImageResourceStyleImage.cpp:
* rendering/RenderLayer.cpp:
* rendering/RenderLayerBacking.cpp:
* rendering/RenderLayerFilterInfo.h:
* rendering/RenderListItem.cpp:
* rendering/RenderListMarker.cpp:
* rendering/RenderSnapshottedPlugIn.cpp:
* rendering/RenderTableCol.cpp:
* rendering/RenderTableRow.cpp:
* rendering/RenderTableSection.cpp:
* rendering/style/StyleCachedShader.h:
* svg/SVGFEImageElement.h:
* svg/SVGFontFaceUriElement.h:
* svg/SVGImageLoader.cpp:
* svg/SVGUseElement.cpp:
* svg/SVGUseElement.h:
* svg/graphics/SVGImageCache.cpp:
* testing/MockPagePopupDriver.cpp:
* xml/XSLStyleSheet.h:
* xml/XSLTProcessorLibxslt.cpp:
* xml/parser/XMLDocumentParser.cpp:
* xml/parser/XMLDocumentParser.h:
* xml/parser/XMLDocumentParserLibxml2.cpp:
Many self-evident changes - removing unnecessary header includes, adding smaller
more local ones that are now necessary.
2013-02-28 Koji Hara <kojih@chromium.org>
[V8] Added V8CustomIndexedGetter to IDLs that correspond to existing custom indexedPropertyGetter.
https://bugs.webkit.org/show_bug.cgi?id=110852
Reviewed by Kentaro Hara.
Add V8CustomIndexedGetter attribute that indicates the interface have custom implementation of a getter of indexed properties.
(Also added to the wiki)
https://trac.webkit.org/wiki/WebKitIDL#V8CustomIndexedGetter
Add V8CustomIndexedGetter to IDLs that correspond to existing custom indexedPropertyGetter.
We want to clean up CodeGeneratorV8.pm.
The problem is that all implementations of indexed properties and named properties are currently delegated to custom bindings.
We want to auto-generate as much code as possible.
As a starting point, this commit assures a interface has [V8CustomIndexedGetter] ==> there's custom implementation of indexed getter.
No test. Simple refactoring.
* bindings/scripts/IDLAttributes.txt: Add V8CustomIndexedGetter attribute.
* dom/NamedNodeMap.idl: Add V8CustomIndexedGetter attribute.
* html/HTMLAppletElement.idl: Add V8CustomIndexedGetter attribute.
* html/HTMLEmbedElement.idl: Add V8CustomIndexedGetter attribute.
* html/HTMLFormElement.idl: Add V8CustomIndexedGetter attribute.
* html/HTMLObjectElement.idl: Add V8CustomIndexedGetter attribute.
* html/HTMLOptionsCollection.idl: Add V8CustomIndexedGetter attribute.
* html/HTMLSelectElement.idl: Add V8CustomIndexedGetter attribute.
* page/DOMWindow.idl: Add V8CustomIndexedGetter attribute.
* storage/Storage.idl: Add V8CustomIndexedGetter attribute.
2013-02-28 Xingnan Wang <xingnan.wang@intel.com>
Heap-use-after-free in WebCore::AudioNodeInput::updateInternalBus
https://bugs.webkit.org/show_bug.cgi?id=108542
Replace the wrong AudioNodeOutput::bus() usage out of safe peroid,
which causes this issue.
Reviewed by Chris Rogers.
* Modules/webaudio/AudioNodeInput.cpp:
(WebCore::AudioNodeInput::numberOfChannels):
* Modules/webaudio/AudioNodeOutput.cpp:
(WebCore::AudioNodeOutput::bus):
2013-02-28 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r144370.
http://trac.webkit.org/changeset/144370
https://bugs.webkit.org/show_bug.cgi?id=111136
Caused 21 assertion failure at DocumentLoader.cpp(436)
(Requested by toyoshim on #webkit).
* dom/Document.cpp:
(WebCore::Document::decrementActiveParserCount):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoading):
(WebCore::DocumentLoader::checkLoadComplete):
2013-02-28 Li Yin <li.yin@intel.com>
[chromium] Events can't be triggered on MediaStreamTrack
https://bugs.webkit.org/show_bug.cgi?id=110930
Reviewed by Kentaro Hara.
Spec: http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack
ended event handler should be triggered, when stop() is called.
No new tests because the test fast/mediastream/MediaStreamTrack.html
had covered it already.
* platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
(WebCore::MediaStreamCenterChromium::didStopLocalMediaStream):
2013-02-28 Ankur Taly <ataly@google.com>
WebKit API for enabling DOM logging for certain worlds
https://bugs.webkit.org/show_bug.cgi?id=110779
Reviewed by Adam Barth.
Adds additional static methods to DOMWrapperWorld for managing the
mapping between worldIDs and logger objects (where DOM logging messages
are sent), and also defines a class (V8DOMActivityLogger) for logger
objects.
* WebCore.gypi:
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore):
(WebCore::domActivityLoggers):
(WebCore::DOMWrapperWorld::setDOMActivityLogger):
(WebCore::DOMWrapperWorld::getDOMActivityLogger):
* bindings/v8/DOMWrapperWorld.h:
(DOMWrapperWorld):
* bindings/v8/V8DOMActivityLogger.h: Added.
(WebCore):
(V8DOMActivityLogger):
(WebCore::V8DOMActivityLogger::~V8DOMActivityLogger):
(WebCore::V8DOMActivityLogger::log):
2013-02-28 Adam Barth <abarth@webkit.org>
The threaded HTML parser shouldn't need to invalidate the speculation buffer on every document.write
https://bugs.webkit.org/show_bug.cgi?id=111130
Reviewed by Eric Seidel.
Previously, the threaded HTML parser always invalidated its speculation
buffer when it received a document.write. That means we performed
poorly on web sites that contained document.write calls early in the
page.
This patch teaches the HTMLDocumentParser that we don't need to discard
the speculation buffer in the common case of starting and ending in the
DataState.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::checkForSpeculationFailure):
(WebCore::HTMLDocumentParser::didFailSpeculation):
* html/parser/HTMLDocumentParser.h:
(WebCore):
(ParsedChunk):
2013-02-28 Eberhard Graether <egraether@google.com>
WebInspector: Switch hide element shortcut in ElementsPanel to use a selector
https://bugs.webkit.org/show_bug.cgi?id=110641
Reviewed by Pavel Feldman.
This change switches the shortcut for adding visibility:hidden to an element's style
to toggling a class name on the element and injecting a style rule into the element's
document instead. This way it is possible to change the visibility of all child
elements as well.
Test: inspector/elements/hide-shortcut.html
* inspector/front-end/CSSStyleModel.js:
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline.prototype._onkeydown):
(WebInspector.ElementsTreeOutline.prototype.resolvedNode.toggleClassAndInjectStyleRule):
(WebInspector.ElementsTreeOutline.prototype.):
(WebInspector.ElementsTreeOutline.prototype._toggleHideShortcut):
2013-02-28 Ryuan Choi <ryuan.choi@samsung.com>
[EFL] Build break with --no-web-audio and --no-video
https://bugs.webkit.org/show_bug.cgi?id=111055
Unreviewed build fix.
* platform/graphics/gstreamer/GStreamerUtilities.cpp:
2013-02-28 Xingnan Wang <xingnan.wang@intel.com>
Implement the memory report on IPP FFTFrame on Web Audio
https://bugs.webkit.org/show_bug.cgi?id=111039
Reviewed by Yury Semikhatsky.
Covered by existing test.
* platform/audio/FFTFrame.cpp:
(WebCore::FFTFrame::reportMemoryUsage):
2013-02-28 Levi Weintraub <leviw@chromium.org>
Stale FrameSelection in removed iframe causes crash
https://bugs.webkit.org/show_bug.cgi?id=108696
Reviewed by Ryosuke Niwa.
Catching a specific issue where selectFrameElementInParentIfFullySelected in a nested
iFrame that is removed can leave the outer frame's selection referencing stale nodes.
Instead, in this case, we keep the frame alive long enough to check for this condition
and clear our selection if we hit it.
Test: editing/selection/selection-in-iframe-removed-crash.html
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelection):
2013-02-28 Conrad Shultz <conrad_shultz@apple.com>
Need API to control page underlay color
https://bugs.webkit.org/show_bug.cgi?id=110918
Reviewed by Simon Fraser.
* page/ChromeClient.h:
(ChromeClient):
Declare underlayColor().
* platform/ScrollbarTheme.h:
(WebCore::ScrollbarTheme::setUpOverhangAreasLayerContents):
Have setUpOverhangAreasLayerContents() take a background color parameter.
* platform/mac/ScrollbarThemeMac.h:
(ScrollbarThemeMac):
Ditto.
* platform/mac/ScrollbarThemeMac.mm:
Include ColorMac.h.
(WebCore::ScrollbarThemeMac::setUpOverhangAreasLayerContents):
Use the passed-in background color, if valid, for the overhang area layer.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
Get the underlay color from the chrome client and pass it into setUpOverhangAreasLayerContents().
2013-02-28 Beth Dakin <bdakin@apple.com>
RelevantRepaintedObjects heuristic should ensure there is some coverage in the
bottom half of the relevant view rect
https://bugs.webkit.org/show_bug.cgi?id=111124
-and corresponding-
<rdar://problem/12257164>
Reviewed by Simon Fraser.
We need two Regions now -- one for the top and another for the bottom. Make sure
we have at least half of our desired coverage in both.
* page/Page.cpp:
(WebCore::Page::resetRelevantPaintedObjectCounter):
(WebCore::Page::addRelevantRepaintedObject):
(WebCore::Page::reportMemoryUsage):
* page/Page.h:
2013-02-28 Chris Fleizach <cfleizach@apple.com>
WebSpeech: support pitch change
https://bugs.webkit.org/show_bug.cgi?id=107348
Reviewed by Beth Dakin.
Implement a policy for the Mac synthesizer to convert from the utterance's pitch rate
to something sensible for the platform.
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper initWithSpeechSynthesizer:WebCore::]):
(-[WebSpeechSynthesisWrapper convertPitchToNSSpeechValue:]):
(-[WebSpeechSynthesisWrapper updateBasePitchForSynthesizer]):
(-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
2013-02-28 Vineet Chaudhary <rgf748@motorola.com>
Unreviewed. Bindings test results update after r144376.
* bindings/scripts/test/JS/JSTestObj.cpp:
2013-02-28 Roger Fong <roger_fong@apple.com>
Unreviewed. AppleWin VS2010 build fix.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
2013-02-28 Roger Fong <roger_fong@apple.com>
Unreviewed. AppleWin Build fix.
* WebCore.vcproj/WebCore.vcproj:
2013-02-28 Kentaro Hara <haraken@chromium.org>
[V8] Remove the world->isMainWorld() check from minorGCPrologue()
https://bugs.webkit.org/show_bug.cgi?id=111114
Reviewed by Adam Barth.
A couple of weeks ago, I introduced the following check to minorGCPrologue() in r142419.
void minorGCPrologue() {
// A minor GC can handle the main world only.
DOMWrapperWorld* world = worldForEnteredContextWithoutContextCheck();
if (world && world->isMainWorld()) {
MinorGCWrapperVisitor visitor(isolate);
v8::V8::VisitHandlesForPartialDependence(isolate, &visitor);
visitor.notifyFinished();
}
}
- The check makes no sense. A GC should not care about what world we are in.
There is no concept of worlds in GC.
- worldForEnteredContextWithoutContextCheck() returns 0 for the main world.
So if a GC runs in the main world, the minor DOM GC is skipped.
- worldForEnteredContextWithoutContextCheck() caused a Chromium crash
(https://code.google.com/p/chromium/issues/detail?id=177587)
We should remove the check.
No tests. No change in behavior.
* bindings/v8/DOMWrapperWorld.h:
(WebCore::DOMWrapperWorld::getWorld):
* bindings/v8/V8Binding.h:
* bindings/v8/V8GCController.cpp:
(WebCore::V8GCController::minorGCPrologue):
2013-02-28 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
Create GraphicsContext3DState to aggregate state objects
https://bugs.webkit.org/show_bug.cgi?id=110817
Reviewed by Kenneth Russell.
Aggregate context state-related objects on a GraphicsContext3DState
struct, in a similar fashion as GraphicsContext does. This is useful to
avoid duplicated values for platform-specific initialization lists.
No behavior changes, thus covered by existing tests.
* platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::GraphicsContext3DState::GraphicsContext3DState):
(GraphicsContext3DState):
(GraphicsContext3D):
Moved m_boundFBO, m_activeTexture and m_boundTexture0 to GraphicsContext3DState.
* platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::reshapeFBOs):
* platform/graphics/cairo/GraphicsContext3DCairo.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
* platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::GraphicsContext3D::GraphicsContext3D):
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::reshapeFBOs):
(WebCore::GraphicsContext3D::readPixels):
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::prepareTexture):
(WebCore::GraphicsContext3D::readRenderingResults):
(WebCore::GraphicsContext3D::reshape):
(WebCore::GraphicsContext3D::activeTexture):
(WebCore::GraphicsContext3D::bindFramebuffer):
(WebCore::GraphicsContext3D::bindTexture):
(WebCore::GraphicsContext3D::copyTexImage2D):
(WebCore::GraphicsContext3D::copyTexSubImage2D):
(WebCore::GraphicsContext3D::deleteFramebuffer):
(WebCore::GraphicsContext3D::deleteTexture):
* platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
(WebCore::GraphicsContext3D::readPixels):
(WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
(WebCore::GraphicsContext3D::reshapeFBOs):
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3DPrivate::createOffscreenBuffers):
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
(WebCore::GraphicsContext3DPrivate::blitMultisampleFramebuffer):
(WebCore::GraphicsContext3D::GraphicsContext3D):
Removed initialization list values not needed anymore and reassigned
calls to m_boundFBO, m_boundTexture0 and m_activeTexture to m_state
respectives.
2013-02-28 David Hyatt <hyatt@apple.com>
Unreviewed build fix. A merge error led to a duplication of a single line.
Just removing the duplicate line.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::createLocalTransformState):
2013-02-28 Kaustubh Atrawalkar <kaustubh@motorola.com>
Notification.requestPermission callback should be optional
https://bugs.webkit.org/show_bug.cgi?id=108196
Reviewed by Kentaro Hara.
Spec says it should be optional.
http://notifications.spec.whatwg.org/#notification
Test: fast/notifications/notifications-request-permission-optional.html
* GNUmakefile.list.am:
* Modules/notifications/Notification.h:
(Notification):
* Modules/notifications/Notification.idl:
* Modules/notifications/NotificationCenter.cpp:
(WebCore::NotificationCenter::NotificationRequestCallback::timerFired):
* Modules/notifications/NotificationCenter.h:
(NotificationCenter):
* Modules/notifications/NotificationCenter.idl:
* Target.pri:
* UseJSC.cmake:
* UseV8.cmake:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSDesktopNotificationsCustom.cpp: Removed.
* bindings/js/JSNotificationCustom.cpp: Removed.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
* bindings/v8/custom/V8NotificationCenterCustom.cpp: Removed.
* bindings/v8/custom/V8NotificationCustom.cpp: Removed.
2013-02-28 Ben Wagner <bungeman@chromium.org>
Underline should round to match other content.
https://bugs.webkit.org/show_bug.cgi?id=111005
Reviewed by Stephen White.
Test: fast/text/decorations-with-text-combine.html
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::drawLineForText):
Round (instead of floor) underlines to match other content.
2013-02-28 Eric Carlson <eric.carlson@apple.com>
Refine Ryosuke's r144367 fix.
Rubber-stamped by Ryosuke Niwa.
* page/PageGroup.cpp:
(WebCore::PageGroup::captionPreferences):
2013-02-28 Eric Seidel <eric@webkit.org>
Threaded HTML parser hits ASSERTION FAILED: this == frameLoader()->activeDocumentLoader()
https://bugs.webkit.org/show_bug.cgi?id=110937
Reviewed by Adam Barth.
Remove the #ifdef guards added to work around this ASSERT.
This was fixed by https://bugs.webkit.org/show_bug.cgi?id=110951
as now DocumentLoader::checkLoadComplete() will ignore the call
if the DocumentLoader is not the active document loader for the Document.
* dom/Document.cpp:
(WebCore::Document::decrementActiveParserCount):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoading):
(WebCore::DocumentLoader::checkLoadComplete):
2013-02-28 Ryosuke Niwa <rniwa@webkit.org>
Revert an erroneous change in r144336.
Rubber-stamped by Eric Carlson.
* page/PageGroup.cpp:
(WebCore::PageGroup::captionPreferences):
2013-02-28 David Hyatt <hyatt@apple.com>
Unreviewed build fix for Windows. Make sure the new bits are unsigned and not bools.
* rendering/RenderBlock.h:
2013-02-28 Jochen Eisinger <jochen@chromium.org>
Meta referrer isn't honored for window.open
https://bugs.webkit.org/show_bug.cgi?id=111076
Reviewed by Adam Barth.
Test: http/tests/security/referrer-policy-window-open.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::urlSelected): loadFrameRequest() will set the correct referrer
(WebCore::createWindow): This code is required for the inspector which doesn't set the referrer
* page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow):
2013-02-28 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
[texmap] Remove redundant defines on TextureMapperGL
https://bugs.webkit.org/show_bug.cgi?id=111090
Reviewed by Antonio Gomes.
driverSupportsSubImage() already uses OpenGL ES defines to return
correct support, thus no need for these additional defines.
No behavior changes, thus covered by existing tests.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::BitmapTextureGL::updateContentsNoSwizzle):
2013-02-26 Zhenyao Mo <zmo@google.com>
EXT_draw_buffers needs implementation
https://bugs.webkit.org/show_bug.cgi?id=109331
Reviewed by Kenneth Russell.
This patch adds support for EXT_draw_buffers for WebGL.
mac OpenGL port is passing khronos WebGL conformance test with this patch. OpenGL ES port implementation isn't added in this patch.
Also, it has the WebKit side support for chromium port, but pending command buffer implementation.
Besides the basic extension implementation, we also added drawBuffers() wrapper to work around a mac driver bug: i.e., do not enable a buffer if there is no attachment added.
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::toJS):
* bindings/v8/V8Binding.h:
(WebCore):
(WebCore::toInt32):
(WebCore::toUInt32):
(WebCore::toFloat):
(WebCore::toInt64):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toV8Object):
* html/canvas/EXTDrawBuffers.cpp: Added.
(WebCore):
(WebCore::EXTDrawBuffers::EXTDrawBuffers):
(WebCore::EXTDrawBuffers::~EXTDrawBuffers):
(WebCore::EXTDrawBuffers::getName):
(WebCore::EXTDrawBuffers::create):
(WebCore::EXTDrawBuffers::supported):
(WebCore::EXTDrawBuffers::drawBuffersEXT):
* html/canvas/EXTDrawBuffers.h: Added.
(WebCore):
(EXTDrawBuffers):
* html/canvas/EXTDrawBuffers.idl: Added.
* html/canvas/WebGLExtension.h:
* html/canvas/WebGLFramebuffer.cpp:
(WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer):
(WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
(WebCore::WebGLFramebuffer::drawBuffers):
(WebCore):
(WebCore::WebGLFramebuffer::drawBuffersIfNecessary):
* html/canvas/WebGLFramebuffer.h:
(WebGLFramebuffer):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::initializeNewContext):
(WebCore::WebGLRenderingContext::framebufferRenderbuffer):
(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getParameter):
(WebCore::WebGLRenderingContext::getSupportedExtensions):
(WebCore::WebGLRenderingContext::validateFramebufferFuncParameters):
(WebCore::WebGLRenderingContext::getMaxDrawBuffers):
(WebCore::WebGLRenderingContext::getMaxColorAttachments):
* html/canvas/WebGLRenderingContext.h:
(WebCore):
(WebGLRenderingContext):
* platform/chromium/support/Extensions3DChromium.cpp:
(WebCore::Extensions3DChromium::drawBuffersEXT):
(WebCore):
* platform/graphics/Extensions3D.h:
(Extensions3D):
* platform/graphics/GraphicsContext3D.cpp:
(WebCore::GraphicsContext3D::getClearBitsByAttachmentType):
* platform/graphics/chromium/Extensions3DChromium.h:
(Extensions3DChromium):
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::supportsExtension):
(WebCore::Extensions3DOpenGL::drawBuffersEXT):
(WebCore):
* platform/graphics/opengl/Extensions3DOpenGL.h:
(Extensions3DOpenGL):
* platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
(WebCore::Extensions3DOpenGLCommon::ensureEnabled):
* platform/graphics/opengl/Extensions3DOpenGLCommon.h:
(Extensions3DOpenGLCommon):
* platform/graphics/opengl/Extensions3DOpenGLES.cpp:
(WebCore::Extensions3DOpenGLES::drawBuffersEXT):
(WebCore):
(WebCore::Extensions3DOpenGLES::supportsExtension):
* platform/graphics/opengl/Extensions3DOpenGLES.h:
(Extensions3DOpenGLES):
2013-02-28 Alexey Proskuryakov <ap@apple.com>
Create BlobRegistry through a strategy
https://bugs.webkit.org/show_bug.cgi?id=111100
Chromium build fix.
* platform/network/BlobRegistry.cpp: Use destructor for chromium too.
2013-02-28 Alexey Proskuryakov <ap@apple.com>
Create BlobRegistry through a strategy
https://bugs.webkit.org/show_bug.cgi?id=111100
Reviewed by Sam Weinig.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
Added BlobRegistry.cpp.
* WebCore.exp.in:
* loader/LoaderStrategy.cpp:
(WebCore::LoaderStrategy::createBlobRegistry):
* loader/LoaderStrategy.h:
Addxed a function to create BlobRegistry, with default implementation being
in-process WebKit1 one.
* platform/network/BlobData.h: Added ENABLE(BLOB).
* platform/network/BlobRegistry.cpp: Added. Moved singleton to a separate file.
* platform/network/BlobRegistry.h: Made destructor non-inline. Cleaned up includes.
* platform/network/BlobRegistryImpl.cpp:
* platform/network/BlobRegistryImpl.h:
Cleaned up includes, made functions that are only called through base class private.
Added ENABLE(BLOB).
* platform/network/BlobStorageData.h: Added ENABLE(BLOB).
* platform/network/FormData.cpp:
(WebCore::appendBlobResolved): Check blob registry type before upcasting. It's a
public function, and we should not depend on high level understanding of process
model to prove that the cast is safe.
* platform/network/ResourceHandle.cpp:
* platform/network/cf/FormDataStreamCFNet.cpp:
* platform/network/mac/ResourceHandleMac.mm:
Cleaned up includes.
2013-02-28 Kent Tamura <tkent@chromium.org>
REGRESSION: INPUT_MULTIPLE_FIELDS_UI: Changing CSS display property on input[type=date] unexpectedly makes another line for ::-webkit-calendar-picker-indicator
https://bugs.webkit.org/show_bug.cgi?id=110974
Reviewed by Kentaro Hara.
Input elements with the multiple fields UI require flexible box
layout.
- If display:inline or display:inline-block is specified, we
replace it with display:inline-flex.
- If display:block is specified, we replace it with
display:flex.
- If other display value is specified, we use it as is, but it
won't wrap inside an input element because we have
display:inline-block for ::-webkit-calendar-pixker-indicaotor.
r144184 was incomplete. It avoided the wrapping issue, but it
didn't make spin buttons and calendar arrows right-aligned.
Tests: Update fast/forms/date/date-apparance-basic.html
* css/html.css:
(input::-webkit-calendar-picker-indicator):
Add display:inline-block in orde to avoid line-wrapping.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::customStyleForRenderer):
Move the code to BaseMultipleFieldsDateAndTimeInputType::customStyleForRenderer.
* html/InputType.cpp:
(WebCore::InputType::customStyleForRenderer): Added.
* html/InputType.h:
(InputType): Add customStyleForRenderer, and remove
shouldApplyLocaleDirection.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::customStyleForRenderer):
Moved the code from HTMLInputElement::customStyleForRenderer, and
add display property updatting code.
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType):
Add customStyleForRenderer, and remove shouldApplyLocaleDirection.
2013-02-28 Anders Carlsson <andersca@apple.com>
Implement more StorageAreaProxy member functions
https://bugs.webkit.org/show_bug.cgi?id=111103
Reviewed by Sam Weinig.
Export two more StorageMap symbols required by WebKit2.
* WebCore.exp.in:
2013-02-28 Xianzhu Wang <wangxianzhu@chromium.org>
Focus ring for a child layer is incorrectly offset by ancestor composited layer's position
https://bugs.webkit.org/show_bug.cgi?id=110895
Reviewed by Simon Fraser.
Test: compositing/sub-layer-focus-ring.html
The problem occurs in RenderBlock::addFocusRingRects() where the absolute position of a sub-layer is used to calculate the focus ring rect of the layer.
Should use the relative position to the current paintContainer instead.
To fix the issue:
- RenderLayer passes LayerPaintingInfo.rootLayer to PaintInfo.paintContainer
- Let RenderObject::paintFocusRing() and RenderObject::paintOutline() take PaintInfo instead of GraphicsContext* so that the paintContainer can be passed
- RenderBlock::addFocusRingRects() uses localToContainerPoint(FloatPoint(), paintContainer) instead of localToAbsolute() to calculate the focus ring rect of a sublayer.
* rendering/PaintInfo.h:
(WebCore):
(WebCore::PaintInfo::PaintInfo): Add a field paintContainer (the RenderLayerModelObject which originates the current painting)
(PaintInfo):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::paintContinuationOutlines):
(WebCore::RenderBlock::addFocusRingRects): Use the added paintContainer parameter to calculate the relative offset of the child layer.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintBackgroundForFragments): Pass LayerPaintingInfo.rootLayer to PaintInfo.paintContainer.
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase): Ditto.
(WebCore::RenderLayer::paintOutlineForFragments): Ditto.
(WebCore::RenderLayer::paintMaskForFragments): Ditto.
* rendering/RenderLayer.cpp:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::paintFocusRing): Now takes PaintInfo instead of GraphicsContext*. Pass paintInfo.paintContainer to addFocusRingRects().
(WebCore::RenderObject::paintOutline): Now takes PaintInfo instead of GraphicsContext*.
(WebCore::RenderObject::absoluteFocusRingQuads):
* rendering/RenderObject.h:
(WebCore::RenderObject::addFocusRingRects): Add paintContainer parameter.
2013-02-28 David Hyatt <hyatt@apple.com>
Remove the quirk margin bits from RenderObject and put them back in RenderBlock.
https://bugs.webkit.org/show_bug.cgi?id=111089
Reviewed by Dan Bernstein.
This patch removes the marginBeforeQuirk and marginAfterQuirk bits from RenderObject
and puts them into RenderBlock instead. I also did some renaming and clean-up after
moving them, e.g., to hasMarginBeforeQuirk and hasMarginAfterQuirk.
Even though it's pretty irrelevant, I also made the code writing-mode-correct so that
the correct child margin quirk is propagated across differing writing mode
boundaries.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::MarginInfo::MarginInfo):
(WebCore::RenderBlock::RenderBlock):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::collapseMargins):
(WebCore::RenderBlock::marginBeforeEstimateForChild):
(WebCore::RenderBlock::setCollapsedBottomMargin):
(WebCore::RenderBlock::handleAfterSideOfBlock):
(WebCore::RenderBlock::hasMarginBeforeQuirk):
(WebCore):
(WebCore::RenderBlock::hasMarginAfterQuirk):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::setHasMarginBeforeQuirk):
(WebCore::RenderBlock::setHasMarginAfterQuirk):
(RenderBlock):
(WebCore::RenderBlock::hasMarginBeforeQuirk):
(WebCore::RenderBlock::hasMarginAfterQuirk):
(MarginInfo):
(WebCore::RenderBlock::MarginInfo::setHasMarginBeforeQuirk):
(WebCore::RenderBlock::MarginInfo::setHasMarginAfterQuirk):
(WebCore::RenderBlock::MarginInfo::hasMarginBeforeQuirk):
(WebCore::RenderBlock::MarginInfo::hasMarginAfterQuirk):
* rendering/RenderObject.h:
(RenderObject):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
(RenderObjectBitfields):
* rendering/style/RenderStyle.h:
2013-02-28 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r144126 and r144176.
http://trac.webkit.org/changeset/144126
http://trac.webkit.org/changeset/144176
https://bugs.webkit.org/show_bug.cgi?id=111096
Caused fast/notifications/notifications-request-
permission.html to crash (Requested by abarth on #webkit).
* GNUmakefile.list.am:
* Modules/notifications/Notification.h:
(Notification):
* Modules/notifications/Notification.idl:
* Target.pri:
* UseJSC.cmake:
* UseV8.cmake:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSNotificationCustom.cpp: Added.
(WebCore):
(WebCore::JSNotification::requestPermission):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/v8/custom/V8NotificationCustom.cpp: Added.
(WebCore):
(WebCore::V8Notification::requestPermissionMethodCustom):
2013-02-28 Nate Chapin <japhet@chromium.org>
Crash in CachedRawResource::responseReceived().
https://bugs.webkit.org/show_bug.cgi?id=110482
Reviewed by Adam Barth.
Test: http/tests/security/XFrameOptions/x-frame-options-deny-multiple-clients.html
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::responseReceived):
2013-02-28 Eric Carlson <eric.carlson@apple.com>
[Mac] use HAVE() macro instead of version check
https://bugs.webkit.org/show_bug.cgi?id=111087
Reviewed by Dean Jackson.
No new tests, covered by existing tests.
* page/CaptionUserPreferencesMac.h: Use HAVE(MEDIA_ACCESSIBILITY_FRAMEWORK).
* page/CaptionUserPreferencesMac.mm: Ditto.
(WebCore::CaptionUserPreferencesMac::CaptionUserPreferencesMac): Ditto.
(WebCore::CaptionUserPreferencesMac::~CaptionUserPreferencesMac): Ditto.
* page/PageGroup.cpp:
(WebCore::PageGroup::captionPreferences): Ditto.
2013-02-28 Chris Fleizach <cfleizach@apple.com>
WebSpeech: support the boundary event
https://bugs.webkit.org/show_bug.cgi?id=107350
Reviewed by Beth Dakin.
Generate boundary events for speech synthesis and have them fire the appropriate events.
This implements for the Mac platform, as well as simulating these events in the mock
synthesizer for testing purposes.
Test: platform/mac/fast/speechsynthesis/speech-synthesis-boundary-events.html
* Modules/speech/SpeechSynthesis.cpp:
(WebCore):
(WebCore::SpeechSynthesis::boundaryEventOccurred):
* Modules/speech/SpeechSynthesis.h:
(SpeechSynthesis):
* platform/PlatformSpeechSynthesizer.h:
(WebCore):
(PlatformSpeechSynthesizerClient):
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakWord:ofString:]):
* platform/mock/PlatformSpeechSynthesizerMock.cpp:
(WebCore::PlatformSpeechSynthesizerMock::speak):
2013-02-28 David Grogan <dgrogan@chromium.org>
IndexedDB: Histogram all exits from IDBBackingStore::open
https://bugs.webkit.org/show_bug.cgi?id=110677
Reviewed by Tony Chang.
No tests because this only changes logging code.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::open):
2013-02-28 Aaron Colwell <acolwell@chromium.org>
Factor SourceBuffer methods out of MediaSourcePrivate & WebMediaSource
into SourceBufferPrivate & WebSourceBuffer respectively.
https://bugs.webkit.org/show_bug.cgi?id=110798
Reviewed by Adam Barth, Jer Noble.
No new tests. No user visible behavior has changed.
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::addSourceBuffer):
(WebCore::MediaSource::removeSourceBuffer):
* Modules/mediasource/MediaSource.h:
(MediaSource):
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::create):
(WebCore):
(WebCore::SourceBuffer::SourceBuffer):
(WebCore::SourceBuffer::buffered):
(WebCore::SourceBuffer::setTimestampOffset):
(WebCore::SourceBuffer::append):
(WebCore::SourceBuffer::abort):
(WebCore::SourceBuffer::removedFromMediaSource):
(WebCore::SourceBuffer::isRemoved):
(WebCore::SourceBuffer::isOpen):
(WebCore::SourceBuffer::isEnded):
* Modules/mediasource/SourceBuffer.h:
(WebCore):
(SourceBuffer):
* Modules/mediasource/SourceBufferList.cpp:
(WebCore::SourceBufferList::SourceBufferList):
(WebCore::SourceBufferList::remove):
(WebCore::SourceBufferList::clear):
* Modules/mediasource/SourceBufferList.h:
(SourceBufferList):
* html/HTMLMediaElement.cpp:
* platform/graphics/MediaSourcePrivate.h:
(WebCore):
(MediaSourcePrivate):
* platform/graphics/SourceBufferPrivate.h:
(WebCore):
(SourceBufferPrivate): Contains methods extracted from MediaPlayerPrivate.
(WebCore::SourceBufferPrivate::SourceBufferPrivate):
(WebCore::SourceBufferPrivate::~SourceBufferPrivate):
2013-02-28 Joe Mason <jmason@rim.com>
[BlackBerry] Handle Set-Cookie immediately even when loading is deferred
https://bugs.webkit.org/show_bug.cgi?id=111083
Reviewed by Yong Li.
Internal PR: 298805
Internally Reviewed By: Leo Yang
Handle Set-Cookie headers immediately, even if loading is being deferred, since any request
created while loading is deferred should include all cookies received. (This especially
affects Set-Cookie headers sent with a 401 response - often this causes an auth dialog to be
opened, which defers loading, but the followup request using the credentials from the dialog
needs to include the cookie.)
This is safe because handleSetCookieHeader only updates the cookiejar, it doesn't call back
into the loader.
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::notifyHeadersReceived):
(WebCore::NetworkJob::handleNotifyHeaderReceived):
2013-02-28 David Grogan <dgrogan@chromium.org>
IndexedDB: IO error when checking schema should destroy LevelDB directory
https://bugs.webkit.org/show_bug.cgi?id=110675
Reviewed by Adam Barth.
Also some refactoring to remove IDBBackingStore's dependence on
static LevelDBDatabase methods. This facilitated the unit test.
New unit test - IDBIOErrorTest.CleanUpTest
* Modules/indexeddb/IDBBackingStore.cpp:
(DefaultLevelDBFactory):
Wraps the previous behavior.
(WebCore::IDBBackingStore::open):
The default parameter provides the previous behavior, which is what
non-tests want.
* Modules/indexeddb/IDBBackingStore.h:
* platform/leveldb/LevelDBDatabase.h:
2013-02-28 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r144157.
http://trac.webkit.org/changeset/144157
https://bugs.webkit.org/show_bug.cgi?id=110794
It broke chromium windows build
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNamedConstructor):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructorCallback):
(WebCore::V8TestNamedConstructorConstructor::GetTemplate):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::v8HTMLImageElementConstructorMethodCustom):
(WebCore::V8HTMLImageElementConstructor::GetTemplate):
2013-02-26 David Hyatt <hyatt@apple.com>
[New Multicolumn] Rewrite the painting/stacking model to be spec compliant.
https://bugs.webkit.org/show_bug.cgi?id=110624.
Reviewed by Simon Fraser.
This patch implements a new painting and hit testing model for columns that is
spec-compliant with Section 3.5 of the multicolumn specification, which states:
"All column boxes in a multi-column element are in the same stacking context and
the drawing order of their contents is as specified in CSS 2.1. Column boxes do
not establish new stacking contexts."
What this statement means is that you cannot paint a layer and all its stacking
context descendants in a strip in each column, since some of those descendants
might actually "break out" of the pagination (like fixed positioned descendants)
and overlap multiple columns. In addition clips may apply across pagination
boundaries, and any overlap caused by opacity has to do the right thing and
treat the paginated and unpaginated components together as a single unit.
The solution to this problem is to introduce the concept of a LayerFragment. Now
all layers when painting or hit testing compute a fragment list, and that list
is then walked in order to do painting and hit testing of layers. In the simple
unpaginated case, a layer has one LayerFragment, but in the case of columns the
layer may be broken up into multiple fragments representing boxes in separate
columns.
Much of this patch consists of refactoring all of the painting and hit testing
code to operate on these fragments.
Test: fast/multicol/mixed-positioning-stacking-order.html.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::collectLayerFragments):
This method is called by the RenderLayer code to fetch the layer fragments from
the regions of a flow thread. The flow thread just turns around and calls into
each of its regions one by one to get the fragments from each region.
(WebCore::RenderFlowThread::fragmentsBoundingBox):
A new function that collects LayerFragments and then determines the bounding
box that encloses all of the fragments.
* rendering/RenderFlowThread.h:
Declarations of the new methods for obtaining layer fragments and bounding
box information for fragments.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updatePagination):
RenderLayers now track an enclosing pagination layer. If this is set, then the layer knows it
needs to check with the enclosing pagination layer's flow thread renderer to
obtain layer fragments.
(WebCore::transparencyClipBox):
Modified to obtain a fragments bounding box so that opacity can operate correctly on
column boxes.
(WebCore::accumulateOffsetTowardsAncestor):
This method has been patched to allow for fixed positioned objects to escape
in-flow RenderFlowThreads. Our in-flow RenderFlowThreads behave differently from
CSS Regions flow threads in that they aren't necesssarily acting as the containing
block for all of their descendants. Content is allowed to "escape" from the flow
thread.
(WebCore::RenderLayer::collectFragments):
A new method that collects fragments from the flow thread and sets up the appropriate
clips and translations on each fragment.
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintList):
(WebCore::RenderLayer::updatePaintingInfoForFragments):
(WebCore::RenderLayer::paintTransformedLayerIntoFragments):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::paintMaskForFragments):
(WebCore::RenderLayer::paintOverflowControlsForFragments):
Refactoring of painting to break all individual painting steps out into methods that walk over
fragment boxes. This actually had the side effect of making the main painting function,
paintLayerContents, much cleaner and easier to read. :)
(WebCore::RenderLayer::hitTest):
(WebCore::RenderLayer::createLocalTransformState):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::hitTestContentsForFragments):
(WebCore::RenderLayer::hitTestResizerInFragments):
(WebCore::RenderLayer::hitTestTransformedLayerInFragments):
(WebCore::RenderLayer::hitTestContents):
(WebCore::RenderLayer::hitTestList):
Refactoring of hit testing to break all individual hit testing steps out into methods that walk over
fragment boxes.
(WebCore::RenderLayer::backgroundClipRect):
Modified to avoid using the clip rects cache when crossing into different pagination contexts,
e.g., from unpaginated to paginated.
(WebCore::RenderLayer::intersectsDamageRect):
(WebCore::RenderLayer::boundingBox):
Modified boundingBox to work with fragments. A new flag is used to indicate whether or not
the bounds of fragments or the original unsplit box are being computed.
(WebCore::RenderLayer::collectLayers):
Fix layer collection so that in-flow RenderFlowThreads can still be collected, since in-flow
RenderFlowThreads do not establish stacking contexts.
* rendering/RenderLayer.h:
(WebCore::ClipRect::moveBy):
Added a moveBy method that just wrap the corresponding LayoutRect method.
(LayerFragment):
(WebCore::LayerFragment::LayerFragment):
(WebCore::LayerFragment::setRects):
(WebCore::LayerFragment::moveBy):
(WebCore::LayerFragment::intersect):
(WebCore::RenderLayer::enclosingPaginationLayer):
The new LayerFragment struct. Holds clips and translation information for each fragment box.
(WebCore::RenderLayer::isOutOfFlowRenderFlowThread):
Helper method for determining if the renderer is an out-of-flow RenderFlowThread.
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::createMultiColumnFlowThreadStyle):
Change the flow thread style to no longer establish a stacking context.
(WebCore::RenderMultiColumnBlock::layoutBlock):
Patched to move the flow thread to a position that allows it to be untranslated in the
initial column.
(WebCore):
* rendering/RenderMultiColumnBlock.h:
(RenderMultiColumnBlock):
layoutBlock is subclassed to tweak the flow thread's position.
* rendering/RenderMultiColumnFlowThread.h:
(RenderMultiColumnFlowThread):
The flow thread for multi-column blocks implements collectLayerFragments to hand back LayerFragment
information based off its RenderMultiColumnSets.
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::paintObject):
Changed to no longer paint column contents, since the layer code is just doing that now.
(WebCore::RenderMultiColumnSet::collectLayerFragments):
The method that figures out what columns are intersected by a layer and hands back
initial fragment information.
* rendering/RenderMultiColumnSet.h:
(RenderMultiColumnSet):
Declaration of collectLayerFragments.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::container):
Patch container() to allow fixed positioned objects to escape in-flow RenderFlowThreads.
* rendering/RenderObject.h:
(WebCore::RenderObject::isInFlowRenderFlowThread):
(WebCore::RenderObject::isOutOfFlowRenderFlowThread):
Methods for distinguishing between in-flow and out-of-flow RenderFlowThreads.
(WebCore::RenderObject::canContainFixedPositionObjects):
Patch canContainFixedPositionObjects() to allow fixed positioned objects to escape
in-flow RenderFlowThreads.
* rendering/RenderRegion.h:
(WebCore::RenderRegion::collectLayerFragments):
(RenderRegion):
The virtual functions on Region for fragment collection.
2013-02-28 Vivek Galatage <vivek.vg@samsung.com>
Web Inspector: Adding existing key in DOMStorageItemsView leaves it inconsistent state
https://bugs.webkit.org/show_bug.cgi?id=111061
Reviewed by Alexander Pavlov.
The view must be checked for all the rows with the matching keys. Only the first one would be updated
with the new value while the others must be removed from the grid. Also in case there are various key/value
pairs, the changed node should be selected and revealed in the grid.
No new tests as UI related minor change.
* inspector/front-end/DOMStorageItemsView.js:
(WebInspector.DOMStorageItemsView.prototype._domStorageItemUpdated):
2013-02-28 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] User credentials is not correctly handled
https://bugs.webkit.org/show_bug.cgi?id=110994
Reviewed by Yong Li.
WTF::String::utf8 no longer receives a bool, see r134173.
* platform/network/blackberry/CredentialBackingStore.cpp:
(WebCore::CredentialBackingStore::encryptedString):
2013-02-28 Lianghui Chen <liachen@rim.com>
[BlackBerry] User credentials are not correctly handled for non-browser usage
https://bugs.webkit.org/show_bug.cgi?id=111032
Internal PR: 295181
Internal reviewed by Joe Mason.
Reviewed by Yong Li.
Use encrypted password as binary data when calling SQLiteStatement::bindBlob(), in
stead of using it as a normal WTF::String.
No new tests as this causes no expected behaviour change.
* platform/network/blackberry/CredentialBackingStore.cpp:
(WebCore::CredentialBackingStore::addLogin):
(WebCore::CredentialBackingStore::updateLogin):
2013-02-28 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: "loadScript" function to load scripts via xhr
https://bugs.webkit.org/show_bug.cgi?id=110879
Reviewed by Pavel Feldman.
Create an alias for "importScript" function and use it in those cases
which assume lazy script loading.
No new tests.
* inspector/front-end/Panel.js:
(WebInspector.PanelDescriptor.prototype.panel):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame):
* inspector/front-end/utilities.js:
2013-02-28 Alexei Filippov <alph@chromium.org>
Web Inspector: Move profiler tools into separate panels
https://bugs.webkit.org/show_bug.cgi?id=109832
Reviewed by Yury Semikhatsky.
This is a first part of the fix that puts each profiler tool into a separate panel.
The fix introduces separate panels for each profiler type.
There are now six panel (including experimental):
1. JS CPU profiler
2. CSS Selector profiler
3. JS Heap profiler
4. Canvas profier
5. Native memory snapshots
6. Native memory distribution
The new functionality is put behind experimental flag.
* inspector/front-end/ProfileLauncherView.js:
(WebInspector.ProfileLauncherView):
(WebInspector.ProfileLauncherView.prototype.addProfileType):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfileHeader.prototype.view):
(WebInspector.ProfileHeader.prototype.createView):
(WebInspector.ProfilesPanel):
(WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
(WebInspector.ProfilesPanel.prototype._addProfileHeader):
(WebInspector.ProfilesPanel.prototype._removeProfileHeader):
(WebInspector.ProfilesPanel.prototype._showProfile):
(WebInspector.ProfilesPanel.prototype._searchableViews):
(WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
(WebInspector.ProfileGroupSidebarTreeElement):
(WebInspector.ProfileGroupSidebarTreeElement.prototype.onselect):
(WebInspector.CPUProfilerPanel):
(WebInspector.CSSSelectorProfilerPanel):
(WebInspector.HeapProfilerPanel):
(WebInspector.CanvasProfilerPanel):
(WebInspector.MemoryChartProfilerPanel):
(WebInspector.NativeMemoryProfilerPanel):
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/inspector.css:
(.toolbar-item.cpu-profiler .toolbar-icon):
(.toolbar-item.css-profiler .toolbar-icon):
(.toolbar-item.heap-profiler .toolbar-icon):
(.toolbar-item.canvas-profiler .toolbar-icon):
(.toolbar-item.memory-chart-profiler .toolbar-icon):
(.toolbar-item.memory-snapshot-profiler .toolbar-icon):
* inspector/front-end/inspector.js:
(WebInspector._panelDescriptors):
2013-02-28 Keishi Hattori <keishi@webkit.org>
Add calendar header for new calendar picker
https://bugs.webkit.org/show_bug.cgi?id=110967
Reviewed by Kent Tamura.
The calendar header showing the current month and containing navigation
buttons, which will be part of the new calendar picker (Bug 109439).
No new tests. Code is not yet used.
* Resources/pagepopups/calendarPicker.js:
(MonthPopupButton): Button that opens the month popup.
(MonthPopupButton.prototype._shouldUseShortMonth): Returns true if we should use the short month format in order to fit in the available width.
(MonthPopupButton.prototype.setCurrentMonth): Sets the month to the button label.
(MonthPopupButton.prototype.onClick): Dispatches buttonClick event which will tell the calendar picker to open the month popup.
(CalendarNavigationButton): A square button that fires repeatedly while the mouse is pressed down.
(CalendarNavigationButton.prototype.setDisabled):
(CalendarNavigationButton.prototype.onClick):
(CalendarNavigationButton.prototype.onMouseDown): Sets the timer to fire while the mouse is pressed down.
(CalendarNavigationButton.prototype.onWindowMouseUp):
(CalendarNavigationButton.prototype.onRepeatingClick):
(CalendarHeaderView): View containing month popup button and the navigation buttons.
(CalendarHeaderView.prototype.onCurrentMonthChanged): Sets the MonthPopupButton label and checks if the navigation buttons should be disabled.
(CalendarHeaderView.prototype.onNavigationButtonClick):
(CalendarHeaderView.prototype.setDisabled): Used to disable all the buttons while the month popup is open.
2013-02-28 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: class console-formatted-string renamed to console-formatted- ?
https://bugs.webkit.org/show_bug.cgi?id=110881
Reviewed by Vsevolod Vlasov.
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype._renderPropertyPreview):
2013-02-28 Mike West <mkwst@chromium.org>
XSSAuditor should strip formaction attributes from input and button elements.
https://bugs.webkit.org/show_bug.cgi?id=110975
Reviewed by Daniel Bates.
The 'formaction' attribute of 'input' and 'button' elements is just as
dangerous as the 'action' attribute of 'form' elements. This patch
teaches the XSSAuditor how to avoid them.
Tests: http/tests/security/xssAuditor/formaction-on-button.html
http/tests/security/xssAuditor/formaction-on-input.html
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::filterStartToken):
(WebCore::XSSAuditor::filterInputToken): Added.
(WebCore::XSSAuditor::filterButtonToken): Added.
* html/parser/XSSAuditor.h:
Create filters for 'input' and 'button' elements, which currently
only have the effect of filtering the 'formaction' attribute.
2013-02-28 Allan Sandfeld Jensen <allan.jensen@digia.com>
REGRESSION(r144169): It broke clipping
https://bugs.webkit.org/show_bug.cgi?id=111065
Reviewed by Noam Rosenthal.
The clipstack was not marked dirty when new clips were added
leading to clipping never being applied.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::ClipStack::push):
2013-02-28 Tamas Czene <tczene@inf.u-szeged.hu>
OpenCL implementation of FEImage SVG Filter.
https://bugs.webkit.org/show_bug.cgi?id=110752
Reviewed by Zoltan Herczeg.
The result of the image is uploaded to an OpenCL buffer.
* Target.pri:
* platform/graphics/gpu/opencl/OpenCLFEImage.cpp: Added.
(WebCore):
(WebCore::FEImage::platformApplyOpenCL):
* svg/graphics/filters/SVGFEImage.h:
(FEImage):
2013-02-28 Mike West <mkwst@chromium.org>
Web Inspector: Make it obvious where command line functions come from
https://bugs.webkit.org/show_bug.cgi?id=62367
Reviewed by Pavel Feldman.
This patch adds a custom .toString() method on the various command-line
API methods that are bound in the inspector. Rather than dumping the
function text, we now model the response after that of native methods:
"function __() { [Command Line API] }".
Test: inspector/console/console-native-function-to-string.html
* inspector/InjectedScriptSource.js:
Added a function to the CommandLineAPI constructor that creates a
custom toString() method for each command-line API method.
2013-02-28 David Kilzer <ddkilzer@apple.com>
ResourceRequestCFNet.cpp won't compile after r144216
<http://webkit.org/b/111034>
Reviewed by Alexey Proskuryakov.
* WebCore.exp.in: Move Mac-only symbol into !PLATFORM(IOS)
section. Update iOS-only symbol to add argument.
* platform/network/cf/ResourceRequest.h: Remove unused method
declaration.
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doUpdatePlatformHTTPBody): Fix typos.
Add static_cast<CFStringRef>().
(WebCore::ResourceRequest::doUpdateResourceHTTPBody): Fix another
typo.
2013-02-28 Kent Tamura <tkent@chromium.org>
Unreviewed, rolling out r144184.
http://trac.webkit.org/changeset/144184
https://bugs.webkit.org/show_bug.cgi?id=110974
The change didn't fix all of the problems.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType):
2013-02-27 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Protocol] Genarate JS enum definitions.
https://bugs.webkit.org/show_bug.cgi?id=110461
Reviewed by Pavel Feldman.
Generating corresponding type annotations
would help to compiler to point errors.
* inspector/CodeGeneratorInspector.py: Generate "registerEnum" records.
* inspector/InjectedScriptSource.js: Shadow compiler warning.
* inspector/front-end/InspectorBackend.js:
Added "registerEnum". Added "registerEnum" generation.
* inspector/front-end/NetworkManager.js: Use enum instead of literal.
* inspector/generate_protocol_externs.py: Generate enum typedefs.
2013-02-27 Kunihiko Sakamoto <ksakamoto@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Step-up/-down of hour field should respect min/max attributes
https://bugs.webkit.org/show_bug.cgi?id=109555
Reviewed by Kent Tamura.
Make step-up/-down of the hour field respect the min/max attributes of the element.
Note that it still accepts any keyboard inputs (the element
becomes 'invalid' state when out-of-range values entered).
Also, disable the hour field and/or the AMPM field when there is only single possible value.
Test: fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-readonly-subfield.html
fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-stepup-stepdown-from-renderer.html
fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
* html/TimeInputType.cpp:
(WebCore::TimeInputType::setupLayoutParameters): Populates layoutParameters.{minimum,maximum}.
* html/shadow/DateTimeEditElement.cpp:
(DateTimeEditBuilder): Add data fields for min/max of day and hour fields.
(WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Set newly added data members.
(WebCore::DateTimeEditBuilder::visitField): Pass minimum/maximum value to the month field constructors.
(WebCore::DateTimeEditBuilder::shouldAMPMFieldDisabled): Added.
(WebCore::DateTimeEditBuilder::shouldDayOfMonthFieldDisabled):
(WebCore::DateTimeEditBuilder::shouldHourFieldDisabled):
Disables the hour field when min, max, and value have the same hour, except when the minute
field is disabled (by step attribute), because we need to leave at least one field editable.
* html/shadow/DateTimeFieldElements.cpp:
(WebCore::DateTimeHourFieldElementBase::DateTimeHourFieldElementBase):
(WebCore::DateTimeHourFieldElementBase::initialize):
(WebCore::DateTimeHourFieldElementBase::setValueAsDate):
(WebCore::DateTimeHourFieldElementBase::setValueAsDateTimeFieldsState):
(WebCore::DateTimeHour11FieldElement::DateTimeHour11FieldElement):
(WebCore::DateTimeHour11FieldElement::create):
(WebCore::DateTimeHour11FieldElement::populateDateTimeFieldsState):
(WebCore::DateTimeHour11FieldElement::setValueAsInteger):
(WebCore::DateTimeHour11FieldElement::clampValueForHardLimits):
(WebCore::DateTimeHour12FieldElement::DateTimeHour12FieldElement):
(WebCore::DateTimeHour12FieldElement::create):
(WebCore::DateTimeHour12FieldElement::populateDateTimeFieldsState):
(WebCore::DateTimeHour12FieldElement::setValueAsInteger):
(WebCore::DateTimeHour12FieldElement::clampValueForHardLimits):
(WebCore::DateTimeHour23FieldElement::DateTimeHour23FieldElement):
(WebCore::DateTimeHour23FieldElement::create):
(WebCore::DateTimeHour23FieldElement::populateDateTimeFieldsState):
(WebCore::DateTimeHour23FieldElement::setValueAsInteger):
(WebCore::DateTimeHour23FieldElement::clampValueForHardLimits):
(WebCore::DateTimeHour24FieldElement::DateTimeHour24FieldElement):
(WebCore::DateTimeHour24FieldElement::create):
(WebCore::DateTimeHour24FieldElement::populateDateTimeFieldsState):
(WebCore::DateTimeHour24FieldElement::setValueAsInteger):
(WebCore::DateTimeHour24FieldElement::clampValueForHardLimits):
* html/shadow/DateTimeFieldElements.h: Splitted DateTimeHourFieldElement into a base class and four derived classes that represents different hour formats.
(DateTimeHourFieldElementBase): Added.
(DateTimeHour11FieldElement): Added. Represents 0-11 hour format.
(DateTimeHour12FieldElement): Added. Represents 1-12 hour format.
(DateTimeHour23FieldElement): Added. Represents 0-23 hour format.
(DateTimeHour24FieldElement): Added. Represents 1-24 hour format.
2013-02-27 Tien-Ren Chen <trchen@chromium.org>
Need to re-layout fixed position elements after scale when using settings()->fixedElementsLayoutRelativeToFrame()
https://bugs.webkit.org/show_bug.cgi?id=105486
Reviewed by James Robinson.
In settings()->fixedElementsLayoutRelativeToFrame() mode, fixed-position
elements are layout relative to the current visible viewport, which can
be different from the layout viewport when using fixed-layout mode.
We need to re-layout fixed-position elements in case of visible content
size changes.
The test is currently chromium-specific due to difficulties to make this
test works on Mac. The mac port seems to work very differently with
visible content size when a page is scaled. And there is no reliable way
to hide scrollbars in mac-wk1 that doesn't cause a side effect.
Test: platform/chromium/fast/repaint/relayout-fixed-position-after-scale.html
* page/FrameView.h:
(FrameView):
* page/Page.cpp:
(WebCore::Page::setPageScaleFactor):
2013-02-27 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Enable shape-inside rectangle support for shape-padding
https://bugs.webkit.org/show_bug.cgi?id=110500
Reviewed by Dirk Schulze.
Added support for CSS shape-padding for shapes defined with shape-inside.
Tests: fast/exclusions/shape-inside/shape-inside-circle-padding.html
fast/exclusions/shape-inside/shape-inside-ellipse-padding.html
fast/exclusions/shape-inside/shape-inside-rectangle-padding.html
fast/exclusions/shape-inside/shape-inside-rounded-rectangle-padding.html
* rendering/ExclusionRectangle.cpp:
(WebCore::FloatRoundedRect::paddingBounds): Inset the rounded rectangle to reflect the padding parameter.
(WebCore::FloatRoundedRect::marginBounds): Expand the rounded rectangle to reflect the margin parameter.
(WebCore::FloatRoundedRect::cornerInterceptForWidth): Moved this method from ExclusionRectangle to FloatRoundedRect.
(WebCore::ExclusionRectangle::shapePaddingBounds): Lazily compute the bounds of the padding box.
(WebCore::ExclusionRectangle::shapeMarginBounds): Lazily compute the bounds of the margin box.
(WebCore::ExclusionRectangle::getExcludedIntervals): This computuation is now based on the (new) margin box.
(WebCore::ExclusionRectangle::getIncludedIntervals): This computation is now base don the (new) padding box.
(WebCore::ExclusionRectangle::firstIncludedIntervalLogicalTop): This computation is now base don the (new) padding box.
* rendering/ExclusionRectangle.h:
(FloatRoundedRect): A subclass of FloatRect that includes corner radii specified as CSS shapes do.
(WebCore::FloatRoundedRect::FloatRoundedRect):
(WebCore::FloatRoundedRect::rx):
(WebCore::FloatRoundedRect::ry):
(WebCore::ExclusionRectangle::ExclusionRectangle):
* rendering/ExclusionShape.cpp:
(WebCore::ExclusionShape::createExclusionShape): Initialize the new shapeMargin and shapePadding properties.
* rendering/ExclusionShape.h:
(ExclusionShape):
(WebCore::ExclusionShape::shapeMargin): Added a public read-only property for shapeMargin.
(WebCore::ExclusionShape::shapePadding): Added a public read-only property for shapePadding.
* rendering/ExclusionShapeInfo.cpp:
(WebCore::::computedShape): Pass the values of the CSS shape-margin and shapp-padding properties to createExclusionShape().
2013-02-25 Alpha Lam <hclam@chromium.org>
More style cleanup in GIFImageReader
https://bugs.webkit.org/show_bug.cgi?id=110776
Reviewed by Allan Sandfeld Jensen.
Renamed variable q to currentComponent which more accurately represent
the purpose.
No test. Simple refactoring.
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::decodeInternal):
2013-02-27 Keishi Hattori <keishi@webkit.org>
Add month popup for new calendar picker
https://bugs.webkit.org/show_bug.cgi?id=110830
Reviewed by Kent Tamura.
Adding month popup view for use in the new calendar picker (Bug 109439).
YearListCell will grow in height when selected to reveal the buttons for
selecting the month.
No new tests. Code is not used yet.
* Resources/pagepopups/calendarPicker.js:
(YearListCell): A row inside the month popup. Contains buttons for choosing a month.
(YearListCell.prototype._recycleBin):
(YearListCell.prototype.reset): Resets a thrown away cell for reuse at the given row.
(YearListCell.prototype.height):
(YearListCell.prototype.setHeight):
(YearListView): List view showing YearListCells.
(YearListView.prototype.onMouseOver): If the mouse is over a month button, highlights it.
(YearListView.prototype.onMouseOut): De-highlights the month button.
(YearListView.prototype.setWidth): Set scroll view width to leave space for the scroll bar.
(YearListView.prototype.setHeight): Sets the scroll bar height as well.
(YearListView.prototype._animateRow): Animates the row height to open/close the YearListCell.
(YearListView.prototype.onCellHeightAnimatorDidStop): Keep this._runningAnimators and this._animatingRows up to date.
(YearListView.prototype.onCellHeightAnimatorStep): Update the cell height and position.
(YearListView.prototype.onClick): If this is a click on a month button, select the month.
(YearListView.prototype.rowAtScrollOffset): Calculates the row currently at the given offset.
(YearListView.prototype.scrollOffsetForRow): Calculates the current scroll offset of the given row.
(YearListView.prototype.prepareNewCell): Prepares a new or recycled YearListCell.
(YearListView.prototype.updateCells): Updates the position of the visible cells.
(YearListView.prototype.deselect): Deselects a row.
(YearListView.prototype.deselectWithoutAnimating): Deselects a row without the closing animation.
(YearListView.prototype.select): Selects a row.
(YearListView.prototype.selectWithoutAnimating): Deselects a row without the opening animation.
(YearListView.prototype.buttonForMonth): Returns the month button for a given month. Returns null if the cell is not visible.
(YearListView.prototype.dehighlightMonth): Dehighlights the month button.
(YearListView.prototype.highlightMonth): Highlights the month button.
(YearListView.prototype.show): Call when showing the year list view. Shows the given month as highlighted.
(YearListView.prototype.hide): Dispatches a did hide event which will be picked up by the CalendarPicker and the MonthPopupView will close.
(YearListView.prototype._moveHighlightTo): Used to move the month highlight in response to a key event.
(YearListView.prototype.onKeyDown): Arrow keys and PageUp/PageDown keys work.
(MonthPopupView): The popup view to be overlayed over the calendar picker.
(MonthPopupView.prototype.show): Takes the initialMonth to show and the calendarTableRect so we can overlay the year list view right on top of it.
(MonthPopupView.prototype.hide):
(MonthPopupView.prototype.onClick): Hides itself if the use clicks outside the year list view.
2013-02-27 Adam Barth <abarth@webkit.org>
Use FeatureObserver to see how often web sites use multipart main documents
https://bugs.webkit.org/show_bug.cgi?id=111015
Reviewed by Nate Chapin.
Multipart main documents add sigificant complexity to the loader. It
would be interesting to know how often this complexity is used.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::responseReceived):
* page/FeatureObserver.h:
2013-02-27 James Simonsen <simonjam@chromium.org>
[chromium] Lower priority of preloaded images
https://bugs.webkit.org/show_bug.cgi?id=110527
Reviewed by Nate Chapin.
This improves Speed Index by ~5%, because it encourages us to load images that are needed for
painting over speculative preloads. Ideally, all embedders would use this, but it relies on
ResourceHandle::didChangePriority being implemented. Currently, only Chrome does that.
Test: http/tests/loading/promote-img-preload-priority.html
* loader/FrameLoaderClient.h:
(FrameLoaderClient):
(WebCore::FrameLoaderClient::dispatchDidChangeResourcePriority): Added callback to enable testing.
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::setLoadPriority): Signal callback.
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::preload): Actual behavior change.
2013-02-27 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed trivial buildfix after r144190.
* platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp:
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
2013-02-27 Chris Fleizach <cfleizach@apple.com>
WebSpeech: support speech cancel
https://bugs.webkit.org/show_bug.cgi?id=107349
Reviewed by Beth Dakin.
Add the ability to cancel speech utterances and make it work with Mac
and the mock speech synthesizer.
Test: platform/mac/fast/speechsynthesis/speech-synthesis-cancel.html
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::pending):
(WebCore::SpeechSynthesis::cancel):
(WebCore::SpeechSynthesis::handleSpeakingCompleted):
* platform/PlatformSpeechSynthesizer.h:
(PlatformSpeechSynthesizer):
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper cancel]):
(WebCore::PlatformSpeechSynthesizer::cancel):
(WebCore):
* platform/mock/PlatformSpeechSynthesizerMock.cpp:
(WebCore::PlatformSpeechSynthesizerMock::cancel):
(WebCore):
(WebCore::PlatformSpeechSynthesizerMock::speak):
* platform/mock/PlatformSpeechSynthesizerMock.h:
(PlatformSpeechSynthesizerMock):
2013-02-27 Min Qin <qinmin@chromium.org>
Unlock partially decoded images after passing them to the ImageDecodingStore
https://bugs.webkit.org/show_bug.cgi?id=110778
Reviewed by Stephen White.
For partially decoded images, we need to unlock them so that the memory can be freed.
This change unlocks all the image frames after they are passed to ImageDecodingStore.
Unit tests are added in ImageFrameGeneratorTest.
* platform/graphics/chromium/ImageFrameGenerator.cpp:
(WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
(WebCore::ImageFrameGenerator::tryToDecodeAndScale):
(WebCore::ImageFrameGenerator::decode):
* platform/image-decoders/ImageDecoder.h:
(ImageDecoder):
(WebCore::ImageDecoder::lockFrameBuffers):
(WebCore::ImageDecoder::unlockFrameBuffers):
2013-02-27 Kenneth Russell <kbr@google.com>
Insufficient validation when uploading depth textures to WebGL
https://bugs.webkit.org/show_bug.cgi?id=110931
Reviewed by Abhishek Arya.
Updated webgl/conformance/extensions/webgl-depth-texture.html
layout test with additional test cases.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::texImage2D):
(WebCore::WebGLRenderingContext::texSubImage2DImpl):
(WebCore::WebGLRenderingContext::texSubImage2D):
Check for valid format/type combinations, depth, and
depth+stencil formats when uploading HTML elements and
ImageData as textures.
2013-02-27 Adam Barth <abarth@webkit.org>
Threaded HTML Parser fails fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html in debug
https://bugs.webkit.org/show_bug.cgi?id=110951
Reviewed by Eric Seidel.
We were triggering this ASSERT because we didn't understand that a
given frame might have multiple DocumentLoaders in various states. That
caused us to think that a DocumentLoader in the provisional state was
actually loading.
* dom/Document.cpp:
(WebCore::Document::decrementActiveParserCount):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoading):
2013-02-27 Chris Fleizach <cfleizach@apple.com>
AX: Mac platform should support ability to scroll an element into visible
https://bugs.webkit.org/show_bug.cgi?id=109860
Reviewed by Beth Dakin.
Support the scrollToMakeVisible() action for MacOS accessibility clients.
Tests: platform/mac/accessibility/scroll-to-visible-action.html
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper accessibilityActionNames]):
(-[WebAccessibilityObjectWrapper accessibilityScrollToVisible]):
(-[WebAccessibilityObjectWrapper accessibilityPerformAction:]):
2013-02-27 John Bauman <jbauman@chromium.org>
Plugin in iframe may not display
https://bugs.webkit.org/show_bug.cgi?id=109879
Reviewed by Simon Fraser.
Changing the cliprect on a layer containing an iframe may change the
cliprect of plugins inside the iframe, so recursively tell all plugins
in iframes that their cliprect has changed after doing layout on the
outer frame.
Test: plugins/plugin-clip-subframe.html
* platform/ScrollView.cpp:
(WebCore::ScrollView::clipRectChanged):
* platform/ScrollView.h:
* platform/Widget.h:
(WebCore::Widget::clipRectChanged):
* plugins/PluginView.cpp:
(WebCore::PluginView::clipRectChanged):
* plugins/PluginView.h:
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::setWidgetGeometry):
2013-02-27 Chris Rogers <crogers@google.com>
Implement channel up-mixing and down-mixing rules
https://bugs.webkit.org/show_bug.cgi?id=110812
Reviewed by Kenneth Russell.
Please see Web Audio specification for details of the AudioNode mixing rules attributes:
https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#UpMix
Test: webaudio/audionode-channel-rules.html
* Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::AudioNode):
(WebCore::AudioNode::channelCount):
(WebCore):
(WebCore::AudioNode::setChannelCount):
(WebCore::AudioNode::channelCountMode):
(WebCore::AudioNode::setChannelCountMode):
(WebCore::AudioNode::channelInterpretation):
(WebCore::AudioNode::setChannelInterpretation):
(WebCore::AudioNode::updateChannelsForInputs):
* Modules/webaudio/AudioNode.h:
(AudioNode):
(WebCore::AudioNode::internalChannelCountMode):
(WebCore::AudioNode::internalChannelInterpretation):
* Modules/webaudio/AudioNode.idl:
* Modules/webaudio/AudioNodeInput.cpp:
(WebCore::AudioNodeInput::numberOfChannels):
(WebCore::AudioNodeInput::bus):
(WebCore::AudioNodeInput::internalSummingBus):
(WebCore::AudioNodeInput::sumAllConnections):
(WebCore::AudioNodeInput::pull):
* Modules/webaudio/AudioNodeInput.h:
(AudioNodeInput):
* Modules/webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::ConvolverNode):
* Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::PannerNode):
* platform/audio/AudioBus.cpp:
(WebCore::AudioBus::speakersCopyFrom):
(WebCore::AudioBus::speakersSumFrom):
(WebCore::AudioBus::speakersSumFrom5_1_ToMono):
(WebCore):
* platform/audio/AudioBus.h:
(AudioBus):
2013-02-27 Adam Barth <abarth@webkit.org>
Threaded HTML parser hits ASSERTION FAILED: this == frameLoader()->activeDocumentLoader()
https://bugs.webkit.org/show_bug.cgi?id=110937
Reviewed by Darin Adler.
This patch restores the ASSERT behind an ifdef so that we can continue
to get converage from the ASSERT while we investigate why it is
triggering in the threaded parser.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::checkLoadComplete):
2013-02-27 Lianghui Chen <liachen@rim.com>
[BlackBerry] User credentials is not correctly handled
https://bugs.webkit.org/show_bug.cgi?id=110994
Internal PR: 280990
Internal reviewed by Leo Yang.
Reviewed by Yong Li.
Following changes are made:
Remove url from generating the hash to index user credential.
Remove url from database.
Use new CertMgrWrapper API to remove password from CertMgr.
Handle encrypted password as binary data, instead of normal text string.
When authentication fails, remove the saved user credential only when they match.
Remove some url related API from CredentialBackingStore, as they are obsolete now.
No new tests as this is platform specific change about user credential.
* platform/network/blackberry/CredentialBackingStore.cpp:
(WebCore::hashCredentialInfo):
(WebCore::CredentialBackingStore::CredentialBackingStore):
(WebCore::CredentialBackingStore::~CredentialBackingStore):
(WebCore::CredentialBackingStore::open):
(WebCore::CredentialBackingStore::addLogin):
(WebCore::CredentialBackingStore::updateLogin):
(WebCore::CredentialBackingStore::hasLogin):
(WebCore::CredentialBackingStore::getLogin):
(WebCore::CredentialBackingStore::removeLogin):
(WebCore::CredentialBackingStore::addNeverRemember):
(WebCore::CredentialBackingStore::encryptedString):
(WebCore::CredentialBackingStore::decryptedString):
* platform/network/blackberry/CredentialBackingStore.h:
(CredentialBackingStore):
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::sendRequestWithCredentials):
(WebCore::NetworkJob::purgeCredentials):
2013-02-27 David Hyatt <hyatt@apple.com>
Refactor transform painting/hit testing code in RenderLayer.
https://bugs.webkit.org/show_bug.cgi?id=110998
Reviewed by Eric Seidel.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerByApplyingTransform):
Pull the code that applies the transform for painting into a new
function that can also apply an additional translation offset. This
offset will be used by the new columns code when that patch lands.
(WebCore::RenderLayer::createLocalTransformState):
Also patched to be able to apply an additional translation offset.
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::hitTestLayerByApplyingTransform):
Same as with painting, pull the code that applies the transform into
its own function and also enable an extra translation offset to be
applied.
* rendering/RenderLayer.h:
Added the new functions to the header.
2013-02-27 David Kilzer <ddkilzer@apple.com>
Touch CSSGrammar.y.in to fix an internal buildbot
* css/CSSGrammar.y.in: Add copyright dates based on previous
commits.
2013-02-27 Manuel Rego Casasnovas <rego@igalia.com>
Add smartInsertDeleteEnabled setting to WebCore::Page
https://bugs.webkit.org/show_bug.cgi?id=107840
Reviewed by Ryosuke Niwa.
Covered by editing/deleting/smart-editing-disabled.html.
* page/Settings.in: Add new setting with true as initial value.
2013-02-27 Chris Fleizach <cfleizach@apple.com>
WebSpeech: Support pause/resume ability
https://bugs.webkit.org/show_bug.cgi?id=107345
Reviewed by Beth Dakin.
Add in the pause/resume functionality to SpeechSynthesis. Also hook up
the callback events.
Test: platform/mac/fast/speechsynthesis/speech-synthesis-pause-resume.html
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::SpeechSynthesis):
(WebCore::SpeechSynthesis::pending):
(WebCore::SpeechSynthesis::paused):
(WebCore::SpeechSynthesis::startSpeakingImmediately):
(WebCore::SpeechSynthesis::pause):
(WebCore::SpeechSynthesis::resume):
(WebCore):
(WebCore::SpeechSynthesis::didPauseSpeaking):
(WebCore::SpeechSynthesis::didResumeSpeaking):
* Modules/speech/SpeechSynthesis.h:
(SpeechSynthesis):
* platform/PlatformSpeechSynthesizer.h:
(PlatformSpeechSynthesizerClient):
(PlatformSpeechSynthesizer):
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
(-[WebSpeechSynthesisWrapper pause]):
(-[WebSpeechSynthesisWrapper resume]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
(WebCore::PlatformSpeechSynthesizer::pause):
(WebCore):
(WebCore::PlatformSpeechSynthesizer::resume):
2013-02-26 Alexey Proskuryakov <ap@apple.com>
Don't add a body to platform request until necessary
https://bugs.webkit.org/show_bug.cgi?id=110900
Reviewed by Brady Eidson.
ResourceRequest now has more state for syncing between resource and platform parts.
In addition to tracking which is up to date, we also track which has up to date
HTTP Body.
The reason is that we don't need the body on request before it's actually sent,
and we actually cannot build it when networking is out of process.
* WebCore.exp.in: Updated exports.
* platform/network/ResourceRequestBase.h:
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::setHTTPBody): Update HTTP body before returning it.
(WebCore::ResourceRequestBase::updatePlatformRequest): Update according to HTTPBodyUpdatePolicy.
(WebCore::ResourceRequestBase::updateResourceRequest): Ditto.
* platform/network/cf/FormDataStreamCFNet.cpp:
(WebCore::formDataStreamLengthPropertyName):
(WebCore::formCopyProperty):
(WebCore::setHTTPBody):
Changed to not update Content-Length in platform request directly. We need to keep it
in sync with resource request, and it's easier to do in a caller. Exposed computed
length as a property do avoid duplicating the work.
* platform/network/cf/FormDataStreamCFNet.h: Removed unnecessary httpBodyFromStream().
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::willSendRequest):
(WebCore::didReceiveResponse):
(WebCore::ResourceHandle::createCFURLConnection):
Update body when necessary.
(WebCore::ResourceRequest::nsURLRequest):
(WebCore::ResourceRequest::doUpdateResourceRequest):
(WebCore::ResourceRequest::doUpdateResourceHTTPBody):
(WebCore):
(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
(WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody):
(WebCore::ResourceRequest::applyWebArchiveHackForMail):
Ditto.
* platform/network/cf/ResourceRequest.h: Track body up-to-date state.
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::cfURLRequest): Honor HTTPBodyUpdatePolicy.
(WebCore::ResourceRequest::doUpdatePlatformRequest): Don't update body here.
(WebCore::ResourceRequest::doUpdatePlatformHTTPBody): Update the body, and make sure
that Content-Length is correct.
(WebCore::ResourceRequest::doUpdateResourceRequest): Don't update body here.
(WebCore::ResourceRequest::doUpdateResourceHTTPBody): Update the body, fixing a bug
where body stream was lost if this function got called.
(WebCore::ResourceRequest::applyWebArchiveHackForMail): No need to update body for this one.
* platform/network/mac/ResourceRequestMac.mm: Ditto (but this didn't have a bug
with streams in doUpdateResourceRequest()).
* platform/network/mac/FormDataStreamMac.h: Forward declare formDataStreamLengthPropertyName().
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::createNSURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
(-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
Update body when necessary.
* platform/network/blackberry/ResourceRequest.h:
* platform/network/chromium/ResourceRequest.h:
* platform/network/curl/ResourceRequest.h:
* platform/network/qt/ResourceRequest.h:
* platform/network/soup/ResourceRequest.h:
* platform/network/win/ResourceRequest.h:
Added stubs for new functions. These ports don't keep a platform request in ResourceRequest,
and don't need updating.
2013-02-27 Glenn Adams <glenn@skynav.com>
Add ENABLE_CSS3_TEXT_LINE_BREAK flag.
https://bugs.webkit.org/show_bug.cgi?id=110944
Reviewed by Dean Jackson.
No new tests.
* Configurations/FeatureDefines.xcconfig:
2013-02-27 Andrei Bucur <abucur@adobe.com>
REGRESSION(r124739): fast/lists/list-marker-remove-crash.html hits an assertion in MoveParagraphs
https://bugs.webkit.org/show_bug.cgi?id=93247
Reviewed by Darin Adler.
The listifyParagraph function inside InsertListCommand triggered a layout for the new list and updated
only the "start" Position. The insertion and layout may have changed the "end" Position as well. The patch
makes sure "end" is also recomputed.
Test: No new test, the patch fixes a regression.
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::listifyParagraph):
2013-02-27 Zach Kuznia <zork@chromium.org>
Add ENABLE_STREAM guards to FileReaderLoader
https://bugs.webkit.org/show_bug.cgi?id=110938
Reviewed by Hajime Morrita.
* fileapi/FileReaderLoader.cpp:
* fileapi/FileReaderLoader.h:
2013-02-27 Allan Sandfeld Jensen <allan.jensen@digia.com>
Switch QtWebKit to GStreamer 1.0.
https://bugs.webkit.org/show_bug.cgi?id=106669.
Original patch by Sebastian Dröge.
Reviewed by Csaba Osztrogonác.
* WebCore.pri:
2013-02-27 Eli Fidler <efidler@rim.com>
[BlackBerry] Fix BlackBerry::Platform::String to WTF::String conversion when the string is Latin-1-encoded.
https://bugs.webkit.org/show_bug.cgi?id=110986
Reviewed by Yong Li.
Internally reviewed by Nima Ghanavatian.
BlackBerry PR 292922
We were assuming all platform strings were valid UTF-8, which isn't true for Latin-1 strings.
* platform/text/blackberry/StringBlackBerry.cpp:
(WTF::String::String):
2013-02-27 Allan Sandfeld Jensen <allan.jensen@digia.com>
[TexMap] REGRESSION(144183): It make negative delay tests fails
https://bugs.webkit.org/show_bug.cgi?id=110989
Reviewed by Noam Rosenthal.
Do not apply a negative offset to the animation starttime send to the GraphicLayerClient,
it needs the actual animation start not a virtual start.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::addAnimation):
2013-02-27 Aaron Colwell <acolwell@chromium.org>
Fix SourceBufferList so SourceBuffer.append() calls are always rejected after the MediaSource is closed.
https://bugs.webkit.org/show_bug.cgi?id=110917
Reviewed by Eric Carlson.
Test: http/tests/media/media-source/video-media-source-reject-append-after-reopening.html
* Modules/mediasource/SourceBufferList.cpp:
(WebCore::SourceBufferList::clear):
2013-02-27 Justin Novosad <junov@google.com>
REGRESSION (r134631) of border-radius percentage with border pixel
https://bugs.webkit.org/show_bug.cgi?id=110889
Reviewed by Simon Fraser.
Fixing background color filling to handle "non renderable" rounded
rectangles.
Test: fast/borders/border-radius-percent.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
2013-02-27 Florin Malita <fmalita@chromium.org>
[Chromium] Layout Test svg/custom/transform-with-shadow-and-gradient.svg is failing
https://bugs.webkit.org/show_bug.cgi?id=76557
Reviewed by Stephen Chenney.
Always use kDst_Mode transfer for the shadow looper. Using kSrc_Mode to enforce CSS
box-shadow opaqueness at this level is not necessary since the RenderBoxModel box
decoration code already makes sure that shadows are filled with opaque black.
This change aligns the SVG shadow behavior (and pixel results) with CG/Safari.
No new tests, coverage provided by existing tests.
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::setPlatformShadow):
2013-02-25 Kentaro Hara <haraken@chromium.org>
[V8] Generate a wrapper function for ReplaceableAttrSetter()
https://bugs.webkit.org/show_bug.cgi?id=110781
Reviewed by Adam Barth.
This is one of steps to insert TRACE_EVENT_STATE() macros
into DOM bindings. This patch introduces an indirection function
for xxxReplaceableAttrSetter(), like this:
// For non-custom replaceable setters (Note: One implementation
is enough for all replaceable setters in one interface.)
void V8XXX:::ReplaceableAttrSetterCallback(...) {
V8XXX::ReplaceableAttrSetter(...);
}
// For custom replaceable setters. (Note: This is treated as
a normal custom setter.)
void xxxAttrSetterCallback(...) {
return xxxAttrSetterCustom(...);
}
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateReplaceableAttrSetterCallback):
(GenerateReplaceableAttrSetter):
(GenerateSingleBatchedAttribute):
(GenerateImplementation):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::TestObjReplaceableAttrSetterCallback):
(TestObjV8Internal):
(WebCore):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::TestTypedefsV8Internal::TestTypedefsReplaceableAttrSetterCallback):
(TestTypedefsV8Internal):
2013-02-27 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Flash objects won't load until scrolling page
https://bugs.webkit.org/show_bug.cgi?id=110149
Reviewed by Simon Hausmann.
Revert r134222. The issue from bug 101836 is no longer reproducable,
and the fix was causing flash objects to not load properly.
* plugins/PluginPackage.cpp:
(WebCore::PluginPackage::determineQuirks):
2013-02-27 No'am Rosenthal <noam@webkit.org>
[Texmap] TextureMapper is too eager to use intermediate surfaces
https://bugs.webkit.org/show_bug.cgi?id=110762
Reviewed by Allan Sandfeld Jensen.
Refactor the way intermediate surfaces are handled in TextureMapperLayer.
Beforehand, we would create an intermediate surface whenever there is a chance of overlap, and
the intermediate surface would be the largest possible. The result would then be drawn to the
target surface with the layer's opacity and mask.
This would make it so that (1) surfaces are created even when they're not needed, i.e. when there
is no actual overlap, and (2) mask wouldn't be applied correctly.
In this patch the behavior is changed so that the area to be painted is divided to "overlapping"
and "non overlapping" regions. The non-overlapping regions are painted directly, while the overlapping
regions are tiled to smaller rectangles painted using an intermediate surface.
Masks are applied to those intermediate surfaces based on the transform of the actual mask, not drawn
together with the content texture like before.
This optimizes for the more common case of opacity animations on a large tree, while making the quite
rare case of composited masks slightly less optimized but always correct.
Tests: compositing/overlap-blending/children-opacity-huge.html
compositing/overlap-blending/reflection-opacity-huge.html
compositing/overlap-blending/children-opacity-no-overlap.html
* platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
* platform/graphics/cairo/GraphicsContext3DPrivate.h:
(GraphicsContext3DPrivate):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
* platform/graphics/efl/GraphicsContext3DPrivate.h:
(GraphicsContext3DPrivate):
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(GraphicsContext3DPrivate):
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
* platform/graphics/qt/MediaPlayerPrivateQt.cpp:
(WebCore::MediaPlayerPrivateQt::paintToTextureMapper):
* platform/graphics/qt/MediaPlayerPrivateQt.h:
(MediaPlayerPrivateQt):
* platform/graphics/surfaces/GraphicsSurface.cpp:
(WebCore::GraphicsSurface::paintToTextureMapper):
* platform/graphics/surfaces/GraphicsSurface.h:
(GraphicsSurface):
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
* platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
* platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp:
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
* platform/graphics/texmap/TextureMapperBackingStore.h:
(TextureMapperBackingStore):
* platform/graphics/texmap/TextureMapperPlatformLayer.h:
(TextureMapperPlatformLayer):
* platform/graphics/texmap/TextureMapperSurfaceBackingStore.cpp:
(WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
* platform/graphics/texmap/TextureMapperSurfaceBackingStore.h:
(TextureMapperSurfaceBackingStore):
* platform/graphics/texmap/TextureMapperTile.cpp:
(WebCore::TextureMapperTile::paint):
* platform/graphics/texmap/TextureMapperTile.h:
(TextureMapperTile):
* platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
(WebCore::TextureMapperTiledBackingStore::paintToTextureMapper):
* platform/graphics/texmap/TextureMapperTiledBackingStore.h:
(TextureMapperTiledBackingStore):
* platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
(WebCore::CoordinatedBackingStore::paintTilesToTextureMapper):
(WebCore::CoordinatedBackingStore::paintToTextureMapper):
* platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
(CoordinatedBackingStore):
Removed the "mask" parameter from TextureMapperPlatformLayer and overrides, since
we no longer paint the contents and the mask in the same pass.
* platform/graphics/texmap/TextureMapper.cpp:
(WebCore::TextureMapper::TextureMapper):
* platform/graphics/texmap/TextureMapper.h:
(WebCore::TextureMapper::setMaskMode):
(TextureMapper):
(WebCore::TextureMapper::isInMaskMode):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawNumber):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::draw):
(WebCore):
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
(WebCore::TextureMapperGL::drawFiltered):
* platform/graphics/texmap/TextureMapperGL.h:
(TextureMapperGL):
* platform/graphics/texmap/TextureMapperImageBuffer.cpp:
(WebCore::TextureMapperImageBuffer::drawTexture):
(WebCore::TextureMapperImageBuffer::drawSolidColor):
* platform/graphics/texmap/TextureMapperImageBuffer.h:
(TextureMapperImageBuffer):
Instead of painting the mask together with the texture/color, paint the mask
by drawing with DestinationIn to an existing surface.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(TextureMapperPaintOptions):
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::shouldBlend):
(WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
(WebCore::TextureMapperLayer::replicaTransform):
(WebCore):
(WebCore::applyFilters):
(WebCore::resolveOverlaps):
(WebCore::TextureMapperLayer::computeOverlapRegions):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
(WebCore::TextureMapperLayer::applyMask):
(WebCore::TextureMapperLayer::paintIntoSurface):
(WebCore::commitSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):
(WebCore::TextureMapperLayer::paintRecursive):
* platform/graphics/texmap/TextureMapperLayer.h:
(WebCore):
(TextureMapperLayer):
(WebCore::TextureMapperLayer::hasFilters):
* platform/graphics/texmap/TextureMapperShaderProgram.cpp:
(WebCore):
(WebCore::TextureMapperShaderProgram::create):
* platform/graphics/texmap/TextureMapperShaderProgram.h:
2013-02-27 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [REGRESSION] [Audits] Disabled "Run" button styling is the same as the enabled one
https://bugs.webkit.org/show_bug.cgi?id=110971
Reviewed by Yury Semikhatsky.
Split out PanelEnablerView-related rules into panelEnabledView.css and restored the missing rules
in inspector.css.
* inspector/front-end/inspector.css:
* inspector/front-end/panelEnablerView.css:
2013-02-27 Kent Tamura <tkent@chromium.org>
REGRESSION: INPUT_MULTIPLE_FIELDS_UI: Changing CSS display property on input[type=date] unexpectedly makes another line for ::-webkit-calendar-picker-indicator
https://bugs.webkit.org/show_bug.cgi?id=110974
Reviewed by Kentaro Hara.
Input elements with the multiple fields UI require flexible box
layout. We should use RenderFlexibleBox regardless of display
property values.
Tests: Update fast/forms/date/date-apparance-basic.html
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::createRenderer):
Always use RenderFlexibleBox.
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType): Declare createRenderer.
2013-02-27 Allan Sandfeld Jensen <allan.jensen@digia.com>
[TexMap] Flickering after transitions on Apple HTML5 demo
https://bugs.webkit.org/show_bug.cgi?id=102501
Reviewed by Noam Rosenthal.
Notify about animation start after the new animation is actually commited.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
(WebCore::GraphicsLayerTextureMapper::addAnimation):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(GraphicsLayerTextureMapper):
2013-02-27 Vivek Galatage <vivek.vg@samsung.com>
Web Inspector: Refactor AuditsPanel with AuditController as newly introduced entity
https://bugs.webkit.org/show_bug.cgi?id=110866
Reviewed by Alexander Pavlov.
AuditController is being introduced in order to follow MVC pattern with the Audits.
This is the first step about the refactoring. Moving the methods from the AuditsPanel
into AuditController would ease the event driven approach to de-couple the AuditsPanel
and the AuditLauncherView.
No new tests as code refactoring.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/AuditController.js: Added.
(WebInspector.AuditController):
(WebInspector.AuditController.prototype.ruleResultReadyCallback):
(WebInspector.AuditController.prototype.categoryDoneCallback):
(WebInspector.AuditController.prototype._executeAudit):
(WebInspector.AuditController.prototype._auditFinishedCallback):
(WebInspector.AuditController.prototype.startAuditWhenResourcesReady):
(WebInspector.AuditController.prototype.initiateAudit):
(WebInspector.AuditController.prototype._reloadResources):
(WebInspector.AuditController.prototype._didMainResourceLoad):
* inspector/front-end/AuditLauncherView.js:
(WebInspector.AuditLauncherView):
(WebInspector.AuditLauncherView.prototype._startAudit):
* inspector/front-end/AuditsPanel.js:
(WebInspector.AuditsPanel):
(WebInspector.AuditsPanel.prototype.auditFinishedCallback):
* inspector/front-end/WebKit.qrc:
2013-02-27 Mihai Maerean <mmaerean@adobe.com>
[CSS Regions] Region overset property is not properly computed when there is a region break
https://bugs.webkit.org/show_bug.cgi?id=92497
Reviewed by David Hyatt.
For "paginated" content in regions that has -webkit-region-break-after:always, the bottom margin was being passed
along for the next region in the chain, which shouldn't happen.
The fix is, at layout, to clear the bottom margin for the nodes (inside paginated contexts) that have
-webkit-region-break-after:always.
Tests: fast/multicol/break-after-always-bottom-margin.html
fast/regions/overset-break-nested.html
fast/regions/overset-break-with-sibling.html
fast/regions/overset-break.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::applyAfterBreak):
2013-02-27 Stephen Chenney <schenney@chromium.org>
Bindings test results update after r144126
https://bugs.webkit.org/show_bug.cgi?id=108196
Unreviewed test update.
* bindings/scripts/test/JS/JSTestObj.cpp: Add include of CallbackFunction.h
2013-02-27 Vsevolod Vlasov <vsevik@chromium.org>
Unreviewed inspector front-end closure compilaiton fix.
* inspector/front-end/ScriptsNavigator.js:
(WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
(WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.set _fileRenamed):
2013-02-27 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
[texmap] Do not apply clip state if redundant
https://bugs.webkit.org/show_bug.cgi?id=110790
Reviewed by Noam Rosenthal.
Add a bool to check if clip state has changed since last apply.
No behavior changes, thus covered by existing tests.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::ClipStack::reset):
(WebCore::TextureMapperGL::ClipStack::pop):
(WebCore::TextureMapperGL::ClipStack::apply):
* platform/graphics/texmap/TextureMapperGL.h:
(WebCore::TextureMapperGL::ClipStack::ClipStack):
(ClipStack):
2013-02-27 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: timeline stops working on certain sites
https://bugs.webkit.org/show_bug.cgi?id=110955
Reviewed by Alexander Pavlov.
Analysis: "timerId" value is number,
so it is not wrapped to node as expected.
Solution: wrap values of all types except Node.
* inspector/front-end/TimelinePresentationModel.js:
Wrap nonstring values to text nodes.
2013-02-27 Adam Barth <abarth@webkit.org>
HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser can trigger ASSERT(m_speculations.isEmpty())
https://bugs.webkit.org/show_bug.cgi?id=110949
Reviewed by Eric Seidel.
We can hit this ASSERT if didReceiveParsedChunkFromBackgroundParser is
called from the background thread while we're processing
m_speculations (i.e., if processing m_speculations is taking a while
and we've yielded to the event loop).
It's hard to write a deterministic test for this patch, but it's hit
quite often with existing LayoutTests.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
2013-02-27 Kentaro Hara <haraken@chromium.org>
[V8] Generate a wrapper function for named constructor callbacks
https://bugs.webkit.org/show_bug.cgi?id=110794
Reviewed by Adam Barth.
This would be the final step of generating wrapper functions.
The patch generates the following wrapper function for named
constructor callbacks.
Handle<Value> namedConstructorCallback(...)
{
return namedConstructor(...);
}
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNamedConstructor):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::namedConstructor):
(WebCore::namedConstructorCallback):
(WebCore):
(WebCore::V8TestNamedConstructorConstructor::GetTemplate):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::namedConstructor):
(WebCore::namedConstructorCallback):
(WebCore):
(WebCore::V8HTMLImageElementConstructor::GetTemplate):
2013-02-26 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: show raster tasks on Timeline
https://bugs.webkit.org/show_bug.cgi?id=105851
- add DeferPaint, Paint & RasterTask trace events handling to trace event processor;
- upon begin frame, emit aggregated background event for all raster tasks related to inspected page.
Reviewed by Pavel Feldman.
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willPaintImpl):
(InstrumentationEvents):
(InstrumentationEventArguments):
* inspector/InspectorInstrumentation.h:
(InstrumentationEvents):
(WebCore):
(InstrumentationEventArguments):
* inspector/InspectorTimelineAgent.cpp:
(TimelineRecordType):
(WebCore::InspectorTimelineAgent::stop):
(WebCore::InspectorTimelineAgent::didBeginFrame):
* inspector/InspectorTimelineAgent.h:
(TimelineRecordType):
(WebCore):
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createRasterData):
(WebCore):
* inspector/TimelineRecordFactory.h:
(TimelineRecordFactory):
* inspector/TimelineTraceEventProcessor.cpp:
(WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
(WebCore::TimelineTraceEventProcessor::~TimelineTraceEventProcessor):
(WebCore):
(WebCore::TimelineTraceEventProcessor::registerHandler):
(WebCore::TimelineTraceEventProcessor::shutdown):
(WebCore::TimelineTraceEventProcessor::TraceEvent::findParameter):
(WebCore::TimelineTraceEventProcessor::TraceEvent::parameter):
(WebCore::TimelineTraceEventProcessor::processEventOnAnyThread):
(WebCore::TimelineTraceEventProcessor::onBeginFrame):
(WebCore::TimelineTraceEventProcessor::onPaintLayerBegin):
(WebCore::TimelineTraceEventProcessor::onPaintLayerEnd):
(WebCore::TimelineTraceEventProcessor::onRasterTaskBegin):
(WebCore::TimelineTraceEventProcessor::onRasterTaskEnd):
(WebCore::TimelineTraceEventProcessor::onLayerDeleted):
(WebCore::TimelineTraceEventProcessor::onPaint):
(WebCore::TimelineTraceEventProcessor::flushRasterizerStatistics):
(WebCore::TimelineTraceEventProcessor::sendTimelineRecord):
(WebCore::TimelineTraceEventProcessor::processBackgroundEvents):
* inspector/TimelineTraceEventProcessor.h:
(WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
(WebCore::TimelineTraceEventProcessor::TraceEvent::id):
(WebCore::TimelineTraceEventProcessor::TraceEvent::asInt):
(WebCore::TimelineTraceEventProcessor::TraceEvent::asUInt):
(TimelineTraceEventProcessor):
* inspector/front-end/TimelineModel.js:
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel._initRecordStyles):
2013-02-26 Uday Kiran <udaykiran@motorola.com>
getPropertyValue for -webkit-column-rule returns null, should compute the shorthand value
https://bugs.webkit.org/show_bug.cgi?id=110698
Reviewed by Alexander Pavlov.
Test: fast/css/getPropertyValue-column-rule.html
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::getPropertyValue):
2013-02-26 Uday Kiran <udaykiran@motorola.com>
getPropertyValue for -webkit-margin-collapse returns null, should compute the shorthand value
https://bugs.webkit.org/show_bug.cgi?id=110903
Reviewed by Alexander Pavlov.
getPropertyValue("-webkit-margin-collapse") should compute shorthand value
when -webkit-margin-collapse is specified in CSS.
Test: fast/css/getPropertyValue-webkit-margin-collapse.html
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::getPropertyValue):
2013-02-26 Uday Kiran <udaykiran@motorola.com>
getPropertyValue for -webkit-marquee returns null, should compute the shorthand value
https://bugs.webkit.org/show_bug.cgi?id=110816
Reviewed by Alexander Pavlov.
Compute the shorthand value for '-webkit-marquee' specified in CSS.
Test: fast/css/getPropertyValue-webkit-marquee.html
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::getPropertyValue):
2013-02-26 Kentaro Hara <haraken@chromium.org>
[V8] Remove Event::dataTransferAttrGetterCustom() and Event::valueAttrSetterCustom()
https://bugs.webkit.org/show_bug.cgi?id=110666
Reviewed by Adam Barth.
Event::dataTransferAttrGetterCustom() is not used
(i.e. the custom method is not registered to V8).
Event::valueAttrSetterCustom() is declared but not
implemented. We can remove them.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeaderCustomCall):
* bindings/v8/custom/V8EventCustom.cpp:
2013-02-26 Dimitri Glazkov <dglazkov@chromium.org>
SelectorQuery should not ever use ResolvingStyle mode.
https://bugs.webkit.org/show_bug.cgi?id=110843
It looks like we accidentally used ResolvingStyle mode for webkitMatchesSelector, and I exacerbated the problem
in r143858 by switching all of SelectorQuery to use it. There aren't any visible effects, but the style bits
of elements are unnecessarily twiddled when if we do that. Let's not do it.
Reviewed by Eric Seidel.
No public-facing behavior change, covered by existing tests.
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::selectorMatches): Switched to always use QueryingRules mode.
2013-02-26 Adam Barth <abarth@webkit.org>
Silence this ASSERT. It is triggered by the threaded HTML parser.
Investigation to follow in https://bugs.webkit.org/show_bug.cgi?id=110937
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::checkLoadComplete):
2013-02-26 Mark Lam <mark.lam@apple.com>
SQLTransactionBackend::doCleanup() should not nullify its current
statement and transaction error fields.
https://bugs.webkit.org/show_bug.cgi?id=110826.
Reviewed by Geoffrey Garen.
The reason for this is because the frontend SQLTransaction may have
tasks that are already registered via callOnMainThread(), and may
invoke transaction state functions that access these objects in the
SQLTransactionBackend. This proves to be problematic if the database
was interrupted resulting in doCleanup() being called concurrently
while those states are executing.
Instead, we leave their clean up to the SQLTransactionBackend destructor
which is guaranteed to only be called when the SQLTransaction is also
destructing i.e. these objects are no longer needed.
No new tests.
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::doCleanup):
2013-02-26 Anders Carlsson <andersca@apple.com>
Implement StorageAreaProxy::getItem and StorageAreaProxy::setItem
https://bugs.webkit.org/show_bug.cgi?id=110927
Reviewed by Sam Weinig.
Export StorageMap::getItem and StorageMap::setItem.
* WebCore.exp.in:
2013-02-26 Adam Klein <adamk@chromium.org>
Parsing of HTML tags in MathML Text Insertion Points leads to bogus parser behavior
https://bugs.webkit.org/show_bug.cgi?id=110808
Reviewed by Adam Barth.
When looking for various table tags in the HTMLElementStack, compare
QualifiedNames rather than just local names, where necessary.
Note that not all uses have been "fixed"; I've only changed for which
I could write a test with differing behavior. A followup patch to
rationalize the use of QualifiedName vs local names would be ideal.
Tests: html5lib/generated/run-math-data.html
html5lib/generated/run-math-write.html
* html/parser/HTMLElementStack.cpp:
(WebCore::inScopeCommon): Added a version of inScopeCommon that
handles QualifiedNames instead of just localNames.
(WebCore::HTMLElementStack::inTableScope): When given a QualifiedName,
call the new version of inScopeCommon().
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
(WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
2013-02-26 Kaustubh Atrawalkar <kaustubh@motorola.com>
Notification.requestPermission callback should be optional
https://bugs.webkit.org/show_bug.cgi?id=108196
Reviewed by Adam Barth.
Spec says it should be optional.
http://notifications.spec.whatwg.org/#notification
Test: fast/notifications/notifications-request-permission-optional.html
* GNUmakefile.list.am:
* Modules/notifications/Notification.h:
(Notification):
* Modules/notifications/Notification.idl:
* Target.pri:
* UseJSC.cmake:
* UseV8.cmake:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSNotificationCustom.cpp: Removed.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
* bindings/v8/custom/V8NotificationCustom.cpp: Removed.
2013-02-26 Joshua Bell <jsbell@chromium.org>
IndexedDB: Add temporary diagnostic code to IDBRequest.result getter
https://bugs.webkit.org/show_bug.cgi?id=110916
Reviewed by Kentaro Hara.
Implement a custom getter for IDBRequest.result that does one additional hidden
property set, to try and isolate the flaky crash seen in wkbug.com/105363 which is
difficult to repro locally. If the crash moves to the new line it will point
the investigation in a new direction. Also add an assertion that probes string
wrappers (the expected type).
* Modules/indexeddb/IDBRequest.idl: Mark attribute as [Custom]
* WebCore.gypi: New file.
* bindings/v8/custom/V8IDBRequestCustom.cpp: Added.
(WebCore::V8IDBRequest::resultAttrGetterCustom): Implementation - copy/paste from
generated code, plus extra setNamedHiddenReference call and string ASSERT.
2013-02-26 Anders Carlsson <andersca@apple.com>
Add a couple of symbols needed by WebKit2.
* WebCore.exp.in:
2013-02-26 Michelangelo De Simone <michelangelo@webkit.org>
[CSS Shaders] Implement color and luminosity non-separable blend modes
https://bugs.webkit.org/show_bug.cgi?id=106226
Added the following GLSL helper functions to the CustomFilterValidatedProgram:
- css_Lum(C): returns the luminosity for the color C
- css_ClipColor(C): clips color C
- css_SetLum(C, l): sets the luminosity l on the color C
The above functions are being used for the "color" and "luminosity" non-separable
blend modes, the relevant spec for such modes is at URL:
https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnonseparable
Reviewed by Dean Jackson.
Tests: css3/filters/custom/custom-filter-nonseparable-blend-mode-color.html
css3/filters/custom/custom-filter-nonseparable-blend-mode-luminosity.html
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore::CustomFilterValidatedProgram::blendFunctionString):
2013-02-26 Anders Carlsson <andersca@apple.com>
StorageAreaProxy should hold on to a StorageMap and not a HashMap
https://bugs.webkit.org/show_bug.cgi?id=110919
Reviewed by Jessie Berlin.
StorageMap should be a private header.
* WebCore.xcodeproj/project.pbxproj:
2013-02-26 Stephen Chenney <schenney@chromium.org>
feDisplacementMap filter gets color space wrong
https://bugs.webkit.org/show_bug.cgi?id=105929
Reviewed by Dirk Schulze.
Tests: svg/filters/feDisplacementMap-color-interpolation-filters-expected.svg
svg/filters/feDisplacementMap-color-interpolation-filters.svg
svg/filters/feDisplacementMap-filterUnits-expected.svg
svg/filters/feDisplacementMap-filterUnits.svg
According to the spec, the SVG feDisplacementMap filter should not
change the color space on its first input, and other vendors seem to
agree that this also means that the output should be in the first
input's color space. That makes sense: we are displacing the input,
not otherwise manipulating colors.
This change improves color space handling for filters by more
explicitly tracking which color space is used for the filter's
operation and which is used for the filter's result. It provides a
means for filter effects to override the color-interpolation-filters
property as defined by the spec. feFlood and feDisplacementMap use
this new feature to enforce the spec requirements.
* platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::FEDisplacementMap::setResultColorSpace): Override the default color space with the
same color space as the first input filter.
(WebCore):
(WebCore::FEDisplacementMap::transformResultColorSpace): Only transform the color space on
the second filter input.
(WebCore::FEDisplacementMap::platformApplySoftware): Make the application code more efficient,
and give slightly better numerical accuracy.
* platform/graphics/filters/FEDisplacementMap.h:
(FEDisplacementMap): Declare setResultColorSpace.
* platform/graphics/filters/FEFlood.cpp:
(WebCore::FEFlood::platformApplySoftware): Remove the call that forces
the result color space. We do it now in the setResultColorSpace.
* platform/graphics/filters/FEFlood.h:
(FEFlood): Add setResultColorSPace override that enforces sRGB color space. But not if using
CG, which apparently does this this already internally.
* platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::FilterEffect): Rename m_colorSpace to m_operatingColorSpace.
(WebCore::FilterEffect::apply): Allow filter effects to
override the color space conversion of their inputs.
(WebCore::FilterEffect::createImageBufferResult): Always create the
image buffer with the result color space.
* platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::operatingColorSpace): New accessor.
(WebCore::FilterEffect::setOperatingColorSpace): New accessor.
(WebCore::FilterEffect::resultColorSpace): New accessor.
(WebCore::FilterEffect::setResultColorSpace): New accessor.
(FilterEffect):
(WebCore::FilterEffect::transformResultColorSpace): A new virtual
method that allows filter effects individual control over the color
space conversion of their inputs.
* platform/graphics/filters/SourceGraphic.h:
(WebCore::SourceGraphic::SourceGraphic): Variable rename.
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::build): Use accessors to set color
space to enable per-effect overrides.
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::buildPrimitives): Use accessors to set color.
2013-02-26 Mike West <mkwst@chromium.org>
X-Frame-Options should accept ALLOWALL as a valid value.
https://bugs.webkit.org/show_bug.cgi?id=110857
Reviewed by Adam Barth.
DoubleClick, among others, serves ALLOWALL as a 'X-Frame-Options' value
with the intent of (shock!) allowing a resource to be framed by all
origins. Given its prevelance, and the fact that IE supports the header,
we shouldn't call it out as invalid.
This patch tweaks the warning logic to only throw the warning if the
header's value isn't 'ALLOWALL', 'DENY', or 'SAMEORIGIN'.
Test: http/tests/security/XFrameOptions/x-frame-options-allowall.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
2013-02-26 Tony Chang <tony@chromium.org>
CSS Flexbox: dynamically applied align-items doesn't affect item alignment
https://bugs.webkit.org/show_bug.cgi?id=110341
Reviewed by Ojan Vafai.
If flex items don't change width, we don't lay them out again. This causes problems
when an item goes from stretch to non-stretch since we need to relayout to get the
smaller height. Fix this by marking flex items that were stretch as needing layout.
Test: css3/flexbox/relayout-align-items.html
* rendering/RenderFlexibleBox.cpp:
(WebCore::resolveAlignment): Pull out common code for computing flex item style.
(WebCore::RenderFlexibleBox::styleDidChange): Mark children as needing layout.
(WebCore::RenderFlexibleBox::alignmentForChild): Use resolveAlignment.
* rendering/RenderFlexibleBox.h:
2013-02-26 Anders Carlsson <andersca@apple.com>
StorageMap can just import an entire map of items at once
https://bugs.webkit.org/show_bug.cgi?id=110904
Reviewed by Beth Dakin.
Instead of iterating over the map inside StorageAreaSync, just pass it directly
(through StorageAreaImpl) to StorageMap and iterate over it there.
* storage/StorageAreaImpl.cpp:
(WebCore::StorageAreaImpl::importItems):
* storage/StorageAreaImpl.h:
(StorageAreaImpl):
* storage/StorageAreaSync.cpp:
(WebCore::StorageAreaSync::performImport):
* storage/StorageMap.cpp:
(WebCore::StorageMap::importItems):
* storage/StorageMap.h:
(StorageMap):
2013-02-26 CHAUDHARY VINEET <rgf748@motorola.com>
[JSC] static methods with Callback should not have this pointer
https://bugs.webkit.org/show_bug.cgi?id=110846
Reviewed by Kentaro Hara.
Fixing the JSC Codegenerator not to use 'this' pointer in static methods.
No new tests.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArg):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArg):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::staticMethodWithCallbackAndOptionalArgMethod):
(TestObjV8Internal):
(WebCore::TestObjV8Internal::staticMethodWithCallbackAndOptionalArgMethodCallback):
(WebCore::TestObjV8Internal::staticMethodWithCallbackArgMethod):
(WebCore::TestObjV8Internal::staticMethodWithCallbackArgMethodCallback):
(WebCore::ConfigureV8TestObjTemplate):
2013-02-20 Alpha Lam <hclam@chromium.org>
GIFImageReader to read from source data directly
https://bugs.webkit.org/show_bug.cgi?id=109662
Reviewed by Stephen White.
This is the first patch to improve GIF image decoding.
GIFImageReader has an internal 256 bytes buffer to saving incoming
bytes. This mechanism is out-dated because WebKit holds the entire
file in memory and it is not necessary to hold data in an intermediate
buffer.
This is also a blocker for later work to parse and decode GIF
incrementally.
This change removed the imtermediate 'hold' buffer and uses an index
for data position to keep track of parsing of the GIF file. Buffer for
global colormap and local colormap are also removed because they can be
referenced from the data stream.
This change is tested by:
Layout tests
All tests passed under fast/images.
Unit tests
Added GIFImageDecoderTest for Chromium.
Local testing
I tested this implementation against a set of 50k GIF images and
there's no crashes and produces bit-exact results as previous code.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::setData):
(WebCore::GIFImageDecoder::frameCount):
(WebCore::GIFImageDecoder::haveDecodedRow):
(WebCore::GIFImageDecoder::decode):
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::doLZW):
(GIFImageReader::decode):
(GIFImageReader::decodeInternal):
(GIFImageReader::setRemainingBytes):
* platform/image-decoders/gif/GIFImageReader.h:
(GIFFrameContext):
(GIFFrameContext::GIFFrameContext):
(GIFFrameContext::~GIFFrameContext):
(GIFImageReader::GIFImageReader):
(GIFImageReader::~GIFImageReader):
(GIFImageReader::setData):
(GIFImageReader):
(GIFImageReader::globalColormap):
(GIFImageReader::localColormap):
(GIFImageReader::localColormapSize):
(GIFImageReader::data):
(GIFImageReader::colormap):
2013-02-26 Christian Biesinger <cbiesinger@chromium.org>
Empty <button>s should collapse; empty <input type="button"> should not collapse
https://bugs.webkit.org/show_bug.cgi?id=110654
Reviewed by Ojan Vafai.
This patch also fixes other height computation issues with flex boxes
related to scroll bars and hasLineIfEmpty()=true. See below for
details.
Tests: css3/flexbox/button.html
css3/flexbox/position-absolute-child-with-contenteditable.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock): Add a FIXME to make
border/padding/scrollbar inclusion more consistent with other
renderers.
* rendering/RenderButton.h:
(WebCore::RenderButton::hasLineIfEmpty): We only want a line for
<input type=button|submit|reset>, for consistency with Firefox.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock): Start out layoutBlock by
setting the logical height to border + padding + scrollbar height to
ensure that we have space for the scrollbar even without children. The
layoutFlexItems change below is not enough because we also need this
when hasLineIfEmpty() is false.
(WebCore::RenderFlexibleBox::layoutFlexItems): Ensure we have a line
when hasLineIfEmpty() is true by calling setLogicalHeight(border+
padding+scrollbar+lineHeight()) if we don't have a flex line.
2013-02-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143941.
http://trac.webkit.org/changeset/143941
https://bugs.webkit.org/show_bug.cgi?id=110901
This is a step in the wrong direction as it ties us to what
grid-{row|column} expect (see
https://bugs.webkit.org/show_bug.cgi?id=110777 for the right
direction) (Requested by jchaffraix on #webkit).
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridPosition):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/StyleResolver.cpp:
(WebCore::createGridPosition):
(WebCore::StyleResolver::applyProperty):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::maximumIndexInDirection):
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
(WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid):
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
(WebCore::RenderGrid::autoPlacementMajorAxisPositionForChild):
(WebCore::RenderGrid::autoPlacementMinorAxisPositionForChild):
* rendering/RenderGrid.h:
* rendering/style/GridPosition.h:
* rendering/style/RenderStyle.h:
* rendering/style/StyleGridItemData.h:
(StyleGridItemData):
2013-02-26 Jer Noble <jer.noble@apple.com>
Unreviewed build fix; use correct macro for platform name in FeatureDefines.xcconfig.
* Configurations/FeatureDefines.xcconfig:
2013-02-26 Andrew Lo <anlo@rim.com>
[BlackBerry] Animated images not animating on accelerated compositing layers
https://bugs.webkit.org/show_bug.cgi?id=110886
Reviewed by Rob Buis.
Internally reviewed by Arvid Nilsson.
Internal PR 299598.
Animated images on AC layers call GraphicsLayer::setContentsToImage
on each frame with the same Image.
We need to set needs display in that case so that the frames are
displayed.
No new tests are needed since there is no new functionality.
* platform/graphics/blackberry/LayerWebKitThread.cpp:
(WebCore::LayerWebKitThread::setContents):
2013-02-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r144065.
http://trac.webkit.org/changeset/144065
https://bugs.webkit.org/show_bug.cgi?id=110896
Causing failures and crashes on Chromium Win7 and Win XP
(Requested by schenney on #webkit).
* platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::normalizeCharacters):
(WebCore::HarfBuzzShaper::HarfBuzzShaper):
* platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp:
(WebCore::HarfBuzzShaperBase::setNormalizedBuffer):
2013-02-26 Allan Sandfeld Jensen <allan.jensen@digia.com>
[TexMap] Ignore layer repaint request when drawsContent is false
https://bugs.webkit.org/show_bug.cgi?id=110888
Reviewed by Noam Rosenthal.
As long as drawsContent is false we should ignore requests for repaints.
A full repaint will be requested when drawsContent is changed to true.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
(WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
(WebCore::GraphicsLayerTextureMapper::setDrawsContent):
2013-02-26 Joshua Bell <jsbell@chromium.org>
IndexedDB: IDBObjectStore.index() doesn't report errors after deleteIndex()
https://bugs.webkit.org/show_bug.cgi?id=110792
Reviewed by Tony Chang.
The object store's metadata wasn't updated if the index hadn't been accessed
by script and hence placed in the name->object map. Make sure the metadata
is always updated.
Test: storage/indexeddb/deleteIndex-bug110792.html
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::deleteIndex): Always update the object store's metadata.
2013-02-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r144019.
http://trac.webkit.org/changeset/144019
https://bugs.webkit.org/show_bug.cgi?id=110892
due to 8% perf regression on chromium-win7 intl1 page cycler,
see https://bugs.webkit.org/show_bug.cgi?id=110872 (Requested
by gasubic on #webkit).
* platform/text/LineBreakIteratorPoolICU.h:
(WebCore::LineBreakIteratorPool::take):
(WebCore::LineBreakIteratorPool::put):
(LineBreakIteratorPool):
* platform/text/TextBreakIterator.h:
(WebCore):
(WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
(WebCore::LazyLineBreakIterator::get):
(WebCore::LazyLineBreakIterator::reset):
(LazyLineBreakIterator):
* platform/text/TextBreakIteratorICU.cpp:
(WebCore::acquireLineBreakIterator):
(WebCore::releaseLineBreakIterator):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
* rendering/RenderText.cpp:
(WebCore::RenderText::computePreferredLogicalWidths):
* rendering/RenderText.h:
(WebCore):
* rendering/break_lines.cpp:
(WebCore):
(WebCore::isBreakableSpace):
(WebCore::needsLineBreakIterator):
(WebCore::nextBreakablePosition):
(WebCore::nextBreakablePositionIgnoringNBSP):
* rendering/break_lines.h:
(WebCore):
(WebCore::isBreakable):
2013-02-26 Dana Jansens <danakj@chromium.org>
Create the SharedGraphicsContext3D through its own method.
https://bugs.webkit.org/show_bug.cgi?id=109345
Reviewed by James Robinson.
Allow creating a GraphicsContext3DPrivate from an externally owned
WebGraphicsContext3D and GrContext. Then create the shared graphics
context from these provided by the embedder.
This falls back to the old path if the new methods return NULL to
let us land this immediately and then transition the chromium side
over to this path.
* platform/chromium/support/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
(WebCore):
(WebCore::GraphicsContext3DPrivate::createGraphicsContextFromExternalWebContextAndGrContext):
(WebCore::GraphicsContext3DPrivate::grContext):
* platform/chromium/support/GraphicsContext3DPrivate.h:
(GraphicsContext3DPrivate):
(WebCore::GraphicsContext3DPrivate::webContext):
* platform/graphics/gpu/SharedGraphicsContext3D.cpp:
(WebCore::SharedGraphicsContext3DImpl::getOrCreateContext):
2013-02-26 Antti Koivisto <antti@apple.com>
REGRESSION(r143986): fast/files/revoke-blob-url.html asserts
https://bugs.webkit.org/show_bug.cgi?id=110885
Reviewed by Alexey Proskuryakov.
The ResourceRequest string constructor assumes that the string is a valid URL. Use KURL constructor instead.
* html/DOMURL.cpp:
(WebCore::DOMURL::revokeObjectURL):
2013-02-26 Dean Jackson <dino@apple.com>
Draw intermediate snapshots if possible
https://bugs.webkit.org/show_bug.cgi?id=110811
Reviewed by Simon Fraser.
After http://webkit.org/b/110495 we delayed snapshotting until we've
received a nice image, but this made the page look like it is broken.
We should draw any intermediate snapshots that we find, which might
include content such as progress bars/spinners.
* html/HTMLPlugInElement.h:
(WebCore::HTMLPlugInElement::isPlugInImageElement): Expose virtual method
to indicate if this is a HTMLPlugInImageElement or not.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::updateSnapshot): If we have
a RenderEmbeddedObject renderer, then tell it to repaint.
* html/HTMLPlugInImageElement.h:
(WebCore::HTMLPlugInImageElement::snapshotImage): Expose an
accessor for snapshot images.
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::paintSnapshotImage): New helper
method to render an image directly. This code is similar to
that in RenderSnapshottedPlugIn.
(WebCore::RenderEmbeddedObject::paintContents): The virtual implementation
of this method for use when we have a snapshot to paint. If we are a plugin that is
in the process of being snapshotted, ask our HTMLPlugInImageElement for a
snapshot and paint that instead. In the case where we are not snapshotting,
or we do not yet have a snapshot, this will call back into the RenderWidget code.
* rendering/RenderEmbeddedObject.h:
(RenderEmbeddedObject): New methods paintSnapshotImage and paintContents
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paintContents): New method called in the middle
of paint() that can be overridden by RenderEmbeddedObject. The code here was
simply moved out of the previous paint().
(WebCore::RenderWidget::paint): Call paintContents at the appropriate time.
* rendering/RenderWidget.h:
(RenderWidget): New virtual method paintContents.
2013-02-26 Levi Weintraub <leviw@chromium.org>
Add support for 8 bit TextRuns for Chromium/HarfBuzz
https://bugs.webkit.org/show_bug.cgi?id=99393
Reviewed by Eric Seidel.
Adding support for 8 bit TextRuns for platforms using HarfBuzz. To accomplish this,
8 bit text runs are upconverted to 16 bit in the complex text path during string
normalization, as HarfBuzz operates on UChars.
No new tests. No change in behavior.
(WebCore::HarfBuzzShaperBase::setNormalizedBuffer):
* platform/graphics/harfbuzz/HarfBuzzShaperBase.h:
* platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::normalizeCharacters):
(WebCore::HarfBuzzShaper::HarfBuzzShaper):
2013-02-26 Dmitry Zvorygin <zvorygin@chromium.org>
Merged Tip and Debug log levels for web console.
https://bugs.webkit.org/show_bug.cgi?id=109919
Reviewed by Pavel Feldman.
In every component either TIP or DEBUG level was used for reporting,
but not both. This patch is prerequisite for Web Inspector console log filtering.
* css/MediaList.cpp:
(WebCore::addResolutionWarningMessageToConsole):
* inspector/ConsoleMessage.cpp:
(WebCore::messageLevelValue):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::abort):
* page/Console.cpp:
(WebCore::printMessageSourceAndLevelPrefix):
* page/ConsoleTypes.h:
* xml/XSLTProcessorLibxslt.cpp:
(WebCore::XSLTProcessor::parseErrorFunc):
* xml/XSLTProcessorQt.cpp:
(WebCore::XSLTMessageHandler::handleMessage):
2013-02-26 Alberto Garcia <agarcia@igalia.com>
[BlackBerry] Upstream the datalist support UI
https://bugs.webkit.org/show_bug.cgi?id=110736
Reviewed by Rob Buis.
Original code by Otto Derek Cheung <otcheung@rim.com>
* css/themeBlackBerry.css:
(input::-webkit-suggestion-dropdown-box):
(input::-webkit-suggestion-dropdown-box-item):
(input::-webkit-suggestion-prefix-text):
(input::-webkit-suggestion-dropdown-box-item-last):
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::RenderThemeBlackBerry::supportsDataListUI):
(WebCore):
* platform/blackberry/RenderThemeBlackBerry.h:
(RenderThemeBlackBerry):
2013-02-26 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: plumb trace events to Timeline agent
https://bugs.webkit.org/show_bug.cgi?id=105796
Reviewed by Pavel Feldman.
- plumb trace events to Timeline;
- add TimelineTraceEventProcessor to process selected trace events;
- emit timeline events from TimelineTraceEventProcessor.
Note that actual event processing logic is a separate change.
* CMakeLists.txt: Added TimelineTraceEventProcessor.{h,cpp}.
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* inspector/InspectorAllInOne.cpp: Ditto.
* inspector/InspectorClient.h:
(InspectorClient):
(WebCore::InspectorClient::setTraceEventCallback):
* inspector/InspectorTimelineAgent.cpp: create/destroy trace event processor on start/stop.
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::stop):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::page):
(WebCore):
* inspector/InspectorTimelineAgent.h:
(WebCore):
(InspectorTimelineAgent):
* inspector/TimelineTraceEventProcessor.cpp: Added.
(WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
(WebCore):
(WebCore::TimelineTraceEventProcessor::~TimelineTraceEventProcessor):
(WebCore::TimelineTraceEventProcessor::TraceEvent::parameter):
(WebCore::TimelineTraceEventProcessor::processEventOnAnyThread):
(WebCore::TimelineTraceEventProcessor::processEvent):
(WebCore::TimelineTraceEventProcessor::sendTimelineRecord):
(WebCore::TimelineTraceEventProcessor::processBackgroundEvents):
* inspector/TimelineTraceEventProcessor.h: Added.
(WebCore):
(TimelineTraceEventProcessor):
(TraceEvent):
(WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
(WebCore::TimelineTraceEventProcessor::TraceEvent::timestamp):
(WebCore::TimelineTraceEventProcessor::TraceEvent::phase):
(WebCore::TimelineTraceEventProcessor::TraceEvent::name):
(WebCore::TimelineTraceEventProcessor::TraceEvent::threadIdentifier):
(WebCore::TimelineTraceEventProcessor::TraceEvent::argumentCount):
(WebCore::TimelineTraceEventProcessor::TraceEvent::asBool):
(WebCore::TimelineTraceEventProcessor::TraceEvent::asInt):
(WebCore::TimelineTraceEventProcessor::TraceEvent::asUInt):
(WebCore::TimelineTraceEventProcessor::TraceEvent::asDouble):
(WebCore::TimelineTraceEventProcessor::TraceEvent::asString):
(WebCore::TimelineTraceEventProcessor::EventTypeEntry::EventTypeEntry):
(EventTypeEntry):
2013-02-18 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Web Inspector: Specify return type of WebInspector.UIString
https://bugs.webkit.org/show_bug.cgi?id=110095
Reviewed by Pavel Feldman.
Specify return type of WebInspector.UIString.
Fix new js-compiler warnings.
This change will increase type coverage by 0.4% (to 81%)
* inspector/front-end/ObjectPropertiesSection.js: Fix type errors.
* inspector/front-end/UIString.js:
(WebInspector.UIString): Return type specified.
2013-02-26 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Resources] Cookies table looks empty.
https://bugs.webkit.org/show_bug.cgi?id=110870
Reviewed by Pavel Feldman.
Fixed data-grid selector.
* inspector/front-end/resourcesPanel.css:
(.storage-view .data-grid): Fixed selector.
2013-02-26 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Migrate FileSystem inspection support to ResourceTreeModel's SecurityOriginAdded/Removed events.
https://bugs.webkit.org/show_bug.cgi?id=110878
Reviewed by Alexander Pavlov.
Recently added SecurityOriginAdded/Removed events support was essentially duplicated in
FileSystemModel. This patch migrates FileSystem inspection support to new events.
* inspector/front-end/FileSystemModel.js:
(WebInspector.FileSystemModel):
(WebInspector.FileSystemModel.prototype._reset):
(WebInspector.FileSystemModel.prototype._securityOriginAdded):
(WebInspector.FileSystemModel.prototype._securityOriginRemoved):
(WebInspector.FileSystemModel.prototype._addOrigin):
(WebInspector.FileSystemModel.prototype._removeOrigin):
(WebInspector.FileSystemModel.prototype.refreshFileSystemList):
2013-02-26 Antoine Quint <graouts@apple.com>
Web Inspector: Cannot deep expand an element that has previously been partially expanded
https://bugs.webkit.org/show_bug.cgi?id=110424
In the case where the children from the provided node have already been pushed, traverse
children at the depth provided until we find children that have not been pushed yet.
Reviewed by Pavel Feldman.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
2013-02-26 Andrey Kosyakov <caseq@chromium.org>
Unreviewed, rolling out r144041, r144044, and r144048.
http://trac.webkit.org/changeset/144041
http://trac.webkit.org/changeset/144044
http://trac.webkit.org/changeset/144048
https://bugs.webkit.org/show_bug.cgi?id=105796
Broke build
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorClient.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willPaintImpl):
* inspector/InspectorInstrumentation.h:
* inspector/InspectorTimelineAgent.cpp:
(TimelineRecordType):
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::stop):
(WebCore::InspectorTimelineAgent::didBeginFrame):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
* inspector/InspectorTimelineAgent.h:
(WebCore):
(InspectorTimelineAgent):
* inspector/TimelineRecordFactory.cpp:
* inspector/TimelineRecordFactory.h:
* inspector/TimelineTraceEventProcessor.cpp: Removed.
* inspector/TimelineTraceEventProcessor.h: Removed.
* inspector/front-end/TimelineModel.js:
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel._initRecordStyles):
2013-02-26 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Migrate IndexedDB support to ResourceTreeModel's SecurityOriginAdded/Removed events.
https://bugs.webkit.org/show_bug.cgi?id=110863
Reviewed by Alexander Pavlov.
Recently added SecurityOriginAdded/Removed events support was essentially duplicated in
IndexedDBModel. This patch migrates IndexedDB support to new events.
* inspector/Inspector.json:
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore):
(WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
(WebCore::InspectorIndexedDBAgent::requestDatabase):
(WebCore::InspectorIndexedDBAgent::requestData):
* inspector/InspectorIndexedDBAgent.h:
(InspectorIndexedDBAgent):
* inspector/front-end/IndexedDBModel.js:
(WebInspector.IndexedDBModel):
(WebInspector.IndexedDBModel.prototype._reset):
(WebInspector.IndexedDBModel.prototype.refreshDatabaseNames):
(WebInspector.IndexedDBModel.prototype._securityOriginAdded):
(WebInspector.IndexedDBModel.prototype._securityOriginRemoved):
(WebInspector.IndexedDBModel.prototype._addOrigin):
(WebInspector.IndexedDBModel.prototype._removeOrigin):
(WebInspector.IndexedDBModel.prototype._updateOriginDatabaseNames):
(WebInspector.IndexedDBModel.prototype._loadDatabaseNames):
(WebInspector.IndexedDBModel.prototype._loadDatabase):
(WebInspector.IndexedDBModel.prototype.):
(WebInspector.IndexedDBModel.prototype._requestData):
* inspector/front-end/ResourceTreeModel.js:
(WebInspector.ResourceTreeModel.prototype.securityOrigins):
2013-02-26 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: in protocol make field "securityOrigin" in type Page.Frame mandatory
https://bugs.webkit.org/show_bug.cgi?id=80857
Reviewed by Vsevolod Vlasov.
Frame.securityOrigin has always been set to a valid value, so this change just fixes
the protocol flaw.
* inspector/Inspector.json:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::buildObjectForFrame):
* inspector/front-end/ResourceTreeModel.js:
(WebInspector.ResourceTreeFrame):
(WebInspector.ResourceTreeFrame.prototype._navigate):
2013-02-26 Andrey Kosyakov <caseq@chromium.org>
Unreviewed build fix following r144041.
* inspector/TimelineTraceEventProcessor.h:
(WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
2013-02-26 Vivek Galatage <vivek.vg@samsung.com>
Web Inspector: DataGrid should reveal and select next/previous DataGridNode upon deletion of selected node
https://bugs.webkit.org/show_bug.cgi?id=110862
Reviewed by Alexander Pavlov.
While deleting entries in the DataGrid, deleting of selected node should trigger selection of
next possible (backward/forward) DataGridNode.
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid.prototype._keyDown):
(WebInspector.DataGridNode.prototype.get leftPadding):
(WebInspector.DataGridNode.prototype.isEventWithinDisclosureTriangle):
2013-02-26 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: show raster tasks on Timeline
https://bugs.webkit.org/show_bug.cgi?id=105851
- add PaintLayer, Paint & RasterTask trace events handling to trace event processor;
- upon begin frame, emit aggregated background event for all raster tasks related to the inspected page.
Reviewed by Pavel Feldman.
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willPaintImpl):
(InstrumentationEvents):
(InstrumentationEventArguments):
* inspector/InspectorInstrumentation.h:
(InstrumentationEvents):
(WebCore):
(InstrumentationEventArguments):
* inspector/InspectorTimelineAgent.cpp:
(TimelineRecordType):
(WebCore::InspectorTimelineAgent::stop):
(WebCore::InspectorTimelineAgent::didBeginFrame):
* inspector/InspectorTimelineAgent.h:
(TimelineRecordType):
(WebCore):
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createRasterData):
(WebCore):
* inspector/TimelineRecordFactory.h:
(TimelineRecordFactory):
* inspector/TimelineTraceEventProcessor.cpp:
(WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
(WebCore::TimelineTraceEventProcessor::~TimelineTraceEventProcessor):
(WebCore):
(WebCore::TimelineTraceEventProcessor::registerHandler):
(WebCore::TimelineTraceEventProcessor::shutdown):
(WebCore::TimelineTraceEventProcessor::TraceEvent::findParameter):
(WebCore::TimelineTraceEventProcessor::TraceEvent::parameter):
(WebCore::TimelineTraceEventProcessor::processEventOnAnyThread):
(WebCore::TimelineTraceEventProcessor::onBeginFrame):
(WebCore::TimelineTraceEventProcessor::onPaintLayerBegin):
(WebCore::TimelineTraceEventProcessor::onPaintLayerEnd):
(WebCore::TimelineTraceEventProcessor::onRasterTaskBegin):
(WebCore::TimelineTraceEventProcessor::onRasterTaskEnd):
(WebCore::TimelineTraceEventProcessor::onLayerDeleted):
(WebCore::TimelineTraceEventProcessor::onPaint):
(WebCore::TimelineTraceEventProcessor::flushRasterizerStatistics):
(WebCore::TimelineTraceEventProcessor::sendTimelineRecord):
(WebCore::TimelineTraceEventProcessor::processBackgroundEvents):
* inspector/TimelineTraceEventProcessor.h:
(WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
(WebCore::TimelineTraceEventProcessor::TraceEvent::id):
(WebCore::TimelineTraceEventProcessor::TraceEvent::asBool):
(WebCore::TimelineTraceEventProcessor::TraceEvent::asInt):
(WebCore::TimelineTraceEventProcessor::TraceEvent::asUInt):
(WebCore::TimelineTraceEventProcessor::TraceEvent::asDouble):
(TimelineTraceEventProcessor):
* inspector/front-end/TimelineModel.js:
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel._initRecordStyles):
2013-02-26 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Work around a MSVC 2012 Update 1 bug causing a crash on x86
https://bugs.webkit.org/show_bug.cgi?id=110488
Reviewed by Anders Carlsson.
The crash happens when building with /O2, where TextEncodingNameHash::equal is
incorrectly optimized with the inlined toASCIILower and uses a register already in use.
The function returns false incorrectly, causing a mismatch of text encoding name which
then results in a null pointer access.
Slightly rewording the use of the inline function lets the compiler produce correct code.
The bug has already been reported and should be fixed in the next release of MSVS later this year.
https://connect.microsoft.com/VisualStudio/feedback/details/777533/vs2012-c-optimizing-bug-when-using-inline-and-char-return-type-x86-target-only
* platform/text/TextEncodingRegistry.cpp:
2013-02-01 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: plumb trace events to Timeline agent
https://bugs.webkit.org/show_bug.cgi?id=105796
Reviewed by Pavel Feldman.
- plumb trace events to Timeline;
- add TimelineTraceEventProcessor to process selected trace events;
- emit timeline events from TimelineTraceEventProcessor.
Note that actual event processing logic is a separate change.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* inspector/Inspector.json:
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorClient.h:
(InspectorClient):
(WebCore::InspectorClient::setTraceEventCallback):
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::stop):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::appendBackgroundThreadRecord):
(WebCore):
(WebCore::InspectorTimelineAgent::page):
* inspector/InspectorTimelineAgent.h:
(WebCore):
(InspectorTimelineAgent):
* inspector/TimelineTraceEventProcessor.cpp: Added.
(WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
(WebCore):
(WebCore::TimelineTraceEventProcessor::~TimelineTraceEventProcessor):
(WebCore::TimelineTraceEventProcessor::TraceEvent::parameter):
(WebCore::TimelineTraceEventProcessor::processEventOnAnyThread):
(WebCore::TimelineTraceEventProcessor::processEvent):
(WebCore::TimelineTraceEventProcessor::sendTimelineRecord):
(WebCore::TimelineTraceEventProcessor::processBackgroundEvents):
* inspector/TimelineTraceEventProcessor.h: Added.
(WebCore):
(TimelineTraceEventProcessor):
(TraceEvent):
(WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
(WebCore::TimelineTraceEventProcessor::TraceEvent::timestamp):
(WebCore::TimelineTraceEventProcessor::TraceEvent::phase):
(WebCore::TimelineTraceEventProcessor::TraceEvent::name):
(WebCore::TimelineTraceEventProcessor::TraceEvent::threadIdentifier):
(WebCore::TimelineTraceEventProcessor::TraceEvent::argumentCount):
(WebCore::TimelineTraceEventProcessor::TraceEvent::asBool):
(WebCore::TimelineTraceEventProcessor::TraceEvent::asInt):
(WebCore::TimelineTraceEventProcessor::TraceEvent::asUInt):
(WebCore::TimelineTraceEventProcessor::TraceEvent::asDouble):
(WebCore::TimelineTraceEventProcessor::TraceEvent::asString):
(WebCore::TimelineTraceEventProcessor::EventTypeEntry::EventTypeEntry):
(EventTypeEntry):
* inspector/front-end/TimelineFrameController.js:
(WebInspector.TimelineFrameController.prototype._addRecord):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelineRecordListRow.prototype.update):
(WebInspector.TimelineRecordGraphRow.prototype.update):
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.Record):
(WebInspector.TimelinePresentationModel.insertRetrospecitveRecord):
(WebInspector.TimelinePresentationModel.Record.prototype.get isBackground):
* inspector/front-end/timelinePanel.css:
(.timeline-tree-item.background .timeline-tree-icon):
(.timeline-graph-side.background .timeline-graph-bar):
2013-02-01 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: display background events on Timeline
https://bugs.webkit.org/show_bug.cgi?id=108599
Reviewed by Pavel Feldman.
- add optional `thread' field to timeline event;
- if thread field is present, display the event as 'background' (hollow bar / list icon), align to nearest foreground event;
- do not account background events in Frame mode of overview.
* inspector/Inspector.json:
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::appendBackgroundThreadRecord):
(WebCore):
* inspector/InspectorTimelineAgent.h:
(InspectorTimelineAgent):
* inspector/front-end/TimelineFrameController.js:
(WebInspector.TimelineFrameController.prototype._addRecord):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelineRecordListRow.prototype.update):
(WebInspector.TimelineRecordGraphRow.prototype.update):
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.Record):
(WebInspector.TimelinePresentationModel.insertRetrospecitveRecord):
(WebInspector.TimelinePresentationModel.Record.prototype.get isBackground):
* inspector/front-end/timelinePanel.css:
(.timeline-tree-item.background .timeline-tree-icon):
(.timeline-graph-side.background .timeline-graph-bar):
2013-02-26 Kentaro Hara <haraken@chromium.org>
[V8] Rename BatchedCallback to BatchedMethod
https://bugs.webkit.org/show_bug.cgi?id=110791
Reviewed by Adam Barth.
Now 'Callback' is used to refer to functions that are called back
by V8. DOM methods should be referred to as 'Method's.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateImplementation):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore):
(WebCore::ConfigureV8Float64ArrayTemplate):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore):
(WebCore::ConfigureV8TestCustomNamedGetterTemplate):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore):
(WebCore::ConfigureV8TestEventTargetTemplate):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore):
(WebCore::ConfigureV8TestInterfaceTemplate):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore):
(WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore):
(WebCore::ConfigureV8TestObjTemplate):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore):
(WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore):
(WebCore::ConfigureV8TestTypedefsTemplate):
* bindings/v8/V8DOMConfiguration.cpp:
(WebCore::V8DOMConfiguration::batchConfigureCallbacks):
(WebCore::V8DOMConfiguration::configureTemplate):
* bindings/v8/V8DOMConfiguration.h:
(V8DOMConfiguration):
2013-02-26 Takashi Toyoshima <toyoshim@chromium.org>
Add User-Agent header in opening handshake headers.
https://bugs.webkit.org/show_bug.cgi?id=110601
Reviewed by Alexey Proskuryakov.
RFC-6455 doesn't require to send User-Agent header, but allow it.
Many web application developers want to have it, and Firefox already
did it. This patch adds User-Agent header in opening handshake also in
WebKit ports.
Test: http/tests/websocket/tests/hybi/useragent-in-openinghandshake.html
* Modules/websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::clientHandshakeMessage):
(WebCore::WebSocketHandshake::clientHandshakeRequest):
2013-02-26 Mike West <mkwst@chromium.org>
XSSAuditor: Don't rely on implicit casting when copying the document's KURL to String.
https://bugs.webkit.org/show_bug.cgi?id=110859
Reviewed by Jochen Eisinger.
XSSAuditor::init should explicitly make a thread-safe copy of the
document's URL as a String rather than relying on implicit casting from
a copy of the KURL.
This shouldn't change any visible behavior; all existing XSSAuditor
tests should continue to pass. They'll now just be a bit more smug while
doing so.
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::init):
2013-02-26 Takashi Sakamoto <tasak@google.com>
Shadow DOM styles appear to be over-eagerly shared
https://bugs.webkit.org/show_bug.cgi?id=110797
Reviewed by Dimitri Glazkov.
A style of a distributed node should not be shared, because the node
might be affected by styles in a shadow dom tree, i.e. :distributed
or something.
Test: fast/dom/shadow/no-style-sharing-with-distributed-nodes.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::locateCousinList):
Skip shadow hosts, because children of shadow hosts are distributed
nodes and cannot share their styles.
2013-02-26 Adam Klein <adamk@chromium.org>
Remove unused conditional includes of {MathML,SVG}Names.h
https://bugs.webkit.org/show_bug.cgi?id=110809
Reviewed by Eric Seidel.
* html/parser/HTMLConstructionSite.cpp:
2013-02-26 Eric Seidel <eric@webkit.org>
Threaded HTML parser fails fast/loader/stateobjects/state-attribute-history-getter.html
https://bugs.webkit.org/show_bug.cgi?id=110801
Reviewed by Adam Barth.
This causes 6 more tests to pass for the threaded parser,
an solves all of our timeout issues.
These tests which were failing were racy, we just were never
hitting the race due to using file urls. This change fixes
the threaded parser to emulate one more of the EOF quirks from
the loader/main-thread-parser interaction.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
2013-02-26 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: CSSAgent.setStyleSheetText crashes on inline styles
https://bugs.webkit.org/show_bug.cgi?id=110359
Reviewed by Pavel Feldman.
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::SetStyleSheetTextAction::undo): Pass ExceptionCode into setText().
(WebCore::InspectorCSSAgent::SetStyleSheetTextAction::redo): Ditto.
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::setText): Make use of checkPageStyleSheet().
(WebCore::InspectorStyleSheet::setRuleSelector): Ditto.
(WebCore::InspectorStyleSheet::addRule): Ditto.
(WebCore::InspectorStyleSheet::deleteRule): Ditto.
(WebCore::InspectorStyleSheet::checkPageStyleSheet):
Return NOT_SUPPORTED_ERR if no m_pageStyleSheet.
(WebCore::InspectorStyleSheet::setStyleText): Check field directly.
* inspector/InspectorStyleSheet.h:
2013-02-26 Tien-Ren Chen <trchen@chromium.org>
Implement coordinated scrollbar for subframes and overflow:scroll
https://bugs.webkit.org/show_bug.cgi?id=109560
Reviewed by James Robinson.
This patch obsoletes ScrollingCoordinatorPrivate for the Chromium
implementation. Also removes the concept of a single main scrolling
layer. Should use HashMap to keep track resources for multiple
scrollable objects.
Many of the callbacks are extended to support ScrollableArea instead
of just FrameView. Now ScrollingCoordinatorChromium coordinates
scrollbars for both subframes and overflow:scroll.
Some drive-by change:
1. Remove the GraphicsLayer parameter for layer change callbacks.
Should be able to get the latest layer from the ScrollableArea anyway.
2. Should start from main frame document when updating touch event target rects.
New chromium test: ScrollingCoordinatorChromiumTest.iframeScrolling
* page/Frame.cpp:
(WebCore::Frame::willDetachPage):
* page/FrameView.cpp:
(WebCore::FrameView::prepareForDetach):
(WebCore::FrameView::layerForScrolling):
(WebCore):
* page/FrameView.h:
(FrameView):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::scrollLayerForScrollableArea):
(WebCore):
(WebCore::ScrollingCoordinator::horizontalScrollbarLayerForScrollableArea):
(WebCore::ScrollingCoordinator::verticalScrollbarLayerForScrollableArea):
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::willDestroyScrollableArea):
(WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
(WebCore::ScrollingCoordinator::scrollableAreaScrollbarLayerDidChange):
(ScrollingCoordinator):
* page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
(WebCore::scrollingWebLayerForGraphicsLayer):
(WebCore::ScrollingCoordinatorChromium::scrollingWebLayerForScrollableArea):
(WebCore::ScrollingCoordinatorChromium::ScrollingCoordinatorChromium):
(WebCore::ScrollingCoordinatorChromium::~ScrollingCoordinatorChromium):
(WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
(WebCore::ScrollingCoordinatorChromium::touchEventTargetRectsDidChange):
(WebCore::createScrollbarLayer):
(WebCore::detachScrollbarLayer):
(WebCore::setupScrollbarLayer):
(WebCore::ScrollingCoordinatorChromium::willDestroyScrollableArea):
(WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollbarLayerDidChange):
(WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
(WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRects):
(WebCore::ScrollingCoordinatorChromium::setWheelEventHandlerCount):
(WebCore::ScrollingCoordinatorChromium::setShouldUpdateScrollLayerPositionOnMainThread):
(WebCore::ScrollingCoordinatorChromium::setLayerIsContainerForFixedPositionLayers):
(WebCore::ScrollingCoordinatorChromium::setLayerIsFixedToContainerLayer):
(WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollLayerDidChange):
(WebCore::ScrollingCoordinatorChromium::addWebScrollbarLayer):
(WebCore):
(WebCore::ScrollingCoordinatorChromium::getWebScrollbarLayer):
(WebCore::ScrollingCoordinatorChromium::removeWebScrollbarLayer):
* page/scrolling/chromium/ScrollingCoordinatorChromium.h:
(WebCore):
(ScrollingCoordinatorChromium):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
(ScrollingCoordinatorMac):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::scrollableAreaScrollbarLayerDidChange):
* platform/ScrollableArea.h:
(ScrollableArea):
(WebCore::ScrollableArea::layerForScrolling):
* platform/graphics/GraphicsLayer.h:
(GraphicsLayer):
(WebCore::GraphicsLayer::setContentsToPlatformLayer):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::~RenderLayer):
(WebCore::RenderLayer::layerForScrolling):
(WebCore):
* rendering/RenderLayer.h:
(RenderLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateOverflowControlsLayers):
(WebCore::RenderLayerBacking::positionOverflowControlsLayers):
(WebCore::RenderLayerBacking::updateScrollingLayers):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::frameViewDidScroll):
(WebCore::RenderLayerCompositor::scrollingLayerDidChange):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
2013-02-26 Kentaro Hara <haraken@chromium.org>
[V8] Overloaded constructors don't need header declarations
https://bugs.webkit.org/show_bug.cgi?id=110799
Reviewed by Adam Barth.
They are implemented as static functions in cpp files.
Header declarations are not needed.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
2013-02-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r144016.
http://trac.webkit.org/changeset/144016
https://bugs.webkit.org/show_bug.cgi?id=110856
Breaks compilation on chromium mac (Requested by vsevik on
#webkit).
* platform/chromium/KeyCodeConversionGtk.cpp:
(WebCore::windowsKeyCodeForKeyEvent):
2013-02-26 Glenn Adams <glenn@skynav.com>
Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
https://bugs.webkit.org/show_bug.cgi?id=89235
Reviewed by Eric Seidel.
This patch adds semantic support for the CSS3 line-break property (qua -webkit-line-break),
and enables testing on (apple) mac ports. Follow on patches will enable these tests on
other ports as they are incrementally verified.
See also wiki documentation at:
[1] http://trac.webkit.org/wiki/LineBreaking
[2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
Tests: css3/line-break/line-break-auto-centered.html
css3/line-break/line-break-auto-half-kana.html
css3/line-break/line-break-auto-hyphens.html
css3/line-break/line-break-auto-inseparables.html
css3/line-break/line-break-auto-iteration-marks.html
css3/line-break/line-break-auto-postfixes.html
css3/line-break/line-break-auto-prefixes.html
css3/line-break/line-break-auto-sound-marks.html
css3/line-break/line-break-loose-centered.html
css3/line-break/line-break-loose-half-kana.html
css3/line-break/line-break-loose-hyphens.html
css3/line-break/line-break-loose-inseparables.html
css3/line-break/line-break-loose-iteration-marks.html
css3/line-break/line-break-loose-postfixes.html
css3/line-break/line-break-loose-prefixes.html
css3/line-break/line-break-loose-sound-marks.html
css3/line-break/line-break-normal-centered.html
css3/line-break/line-break-normal-half-kana.html
css3/line-break/line-break-normal-hyphens.html
css3/line-break/line-break-normal-inseparables.html
css3/line-break/line-break-normal-iteration-marks.html
css3/line-break/line-break-normal-postfixes.html
css3/line-break/line-break-normal-prefixes.html
css3/line-break/line-break-normal-sound-marks.html
css3/line-break/line-break-strict-centered.html
css3/line-break/line-break-strict-half-kana.html
css3/line-break/line-break-strict-hyphens.html
css3/line-break/line-break-strict-inseparables.html
css3/line-break/line-break-strict-iteration-marks.html
css3/line-break/line-break-strict-postfixes.html
css3/line-break/line-break-strict-prefixes.html
css3/line-break/line-break-strict-sound-marks.html
These tests were previously added in http://trac.webkit.org/changeset/143378, but skipped
in generic TestExpectations. In this patch, they are marked as Pass for the (apple) mac ports.
* platform/text/LineBreakIteratorPoolICU.h:
(WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
Add static function to construct ICU locale argument (also used as pool key) with additional
break keyword.
(LineBreakIteratorPool):
(WebCore::LineBreakIteratorPool::take):
(WebCore::LineBreakIteratorPool::put):
Remove direct dependency from ICU library (and types), moving that dependency into
new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
Update to take line break mode into account.
Create (and cache) different break iterators depending on line break mode (in addition to locale),
which entails expanding pool entry key format to optionally append "@break=" +
"loose"|"normal"|"strict" keyword to locale string.
* platform/text/TextBreakIterator.h:
(WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
(WebCore::LazyLineBreakIterator::isLooseCJKMode):
(WebCore::LazyLineBreakIterator::get):
(WebCore::LazyLineBreakIterator::reset):
(LazyLineBreakIterator):
Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
Add state member to indicate line break mode.
* platform/text/TextBreakIteratorICU.cpp:
(WebCore::acquireLineBreakIterator):
Use new line break mode when making iterator from pool.
Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
(WebCore::releaseLineBreakIterator):
Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
(WebCore):
(WebCore::isCJKLocale):
New functions for determining if CJK rules apply.
(WebCore::openLineBreakIterator):
New function for abstracting opening of ICU style line break iterator. This is now
used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
This function also takes into account the line break mode.
(WebCore::closeLineBreakIterator):
(WebCore::mapLineIteratorModeToRules):
New function for abstracting closing of ICU style line break iterator. This is now
used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
Pass line break iterator mode flag when reseting LazyLineBreakIterator.
Add looseMode local variable to prevent need for computing under isBreakable().
* rendering/RenderText.cpp:
(WebCore::mapLineBreakToIteratorMode):
Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
and RenderBlock::LineBreaker::nextLineBreak.
(WebCore):
(WebCore::RenderText::computePreferredLogicalWidths):
Ensure (lazy line) breakIterator is initialized for line break mode.
Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
* rendering/RenderText.h:
(WebCore):
Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
and RenderBlock::LineBreaker::nextLineBreak.
* rendering/break_lines.cpp:
(WebCore):
Introduce (local) enum NBSPBehavior for expanding template on nextBreakablePosition.
(WebCore::isBreakableSpace):
Add externally specified loose mode parameter to prevent need to invoke line break iterator
accessor method on each invocation. Use new loose mode flavors off NBP functions.
(WebCore::needsLineBreakIterator):
Use enum NBSP behavior template parameter rather than boolean.
(WebCore::nextBreakablePositionNonLoosely):
Extend name to distinguish from loose flavor of this function.
(WebCore::nextBreakablePositionLoosely):
Add loose flavor of NBP invoked only when loose mode applies, in which case ASCII shortcut
table cannot be used.
(WebCore::nextBreakablePosition):
(WebCore::nextBreakablePositionIgnoringNBSP):
Use (renamed) non-loose flavor of NBP.
(WebCore::nextBreakablePositionLoose):
(WebCore::nextBreakablePositionIgnoringNBSPLoose):
Introduce loose flavor of NBP template expansions.
* rendering/break_lines.h:
(WebCore):
(WebCore::isBreakable):
Add externally specified loose mode parameter to prevent need to invoke line break iterator
accessor method on each invocation.
2013-02-26 James Weatherall <wez@chromium.org>
keydown and keyup events have zero keycode for some numeric pad keys under Chromium on Linux
https://bugs.webkit.org/show_bug.cgi?id=85642
Add missing key mappings for GDK_KP_Begin, GDK_KP_Insert, GDK_KP_Delete and GDK_ISO_Level3_Shift.
Reviewed by Ojan Vafai.
* platform/chromium/KeyCodeConversionGtk.cpp:
(WebCore::windowsKeyCodeForKeyEvent):
2013-02-25 Adam Barth <abarth@webkit.org>
6% regression in intl1 page cycler on chromium-mac
https://bugs.webkit.org/show_bug.cgi?id=110784
Unreviewed.
This patch restores the code that I rolled out in
http://trac.webkit.org/changeset/143960 and
http://trac.webkit.org/changeset/143983. Rolling out those patches did
not heal the bot.
* dom/Element.cpp:
(WebCore::Element::addAttributeInternal):
(WebCore::ShareableElementData::ShareableElementData):
(WebCore::UniqueElementData::makeShareableCopy):
(WebCore::UniqueElementData::addAttribute):
(WebCore::UniqueElementData::removeAttribute):
(WebCore::ElementData::reportMemoryUsage):
(WebCore::UniqueElementData::getAttributeItem):
(WebCore):
(WebCore::UniqueElementData::attributeItem):
* dom/Element.h:
(ElementData):
(UniqueElementData):
(WebCore::isShadowHost):
(WebCore::ElementData::length):
(WebCore::ElementData::attributeItem):
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::resumeFrom):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
* html/parser/CSSPreloadScanner.cpp:
(WebCore):
(WebCore::CSSPreloadScanner::scanCommon):
(WebCore::CSSPreloadScanner::scan):
(WebCore::CSSPreloadScanner::emitRule):
* html/parser/CSSPreloadScanner.h:
(CSSPreloadScanner):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::startBackgroundParser):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::tagIdFor):
(WebCore):
(WebCore::TokenPreloadScanner::initiatorFor):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(TokenPreloadScanner::StartTagScanner):
(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
(WebCore::TokenPreloadScanner::createCheckpoint):
(WebCore::TokenPreloadScanner::rewindTo):
(WebCore::TokenPreloadScanner::scan):
(WebCore::TokenPreloadScanner::scanCommon):
(WebCore::TokenPreloadScanner::updatePredictedBaseURL):
(WebCore::HTMLPreloadScanner::scan):
* html/parser/HTMLPreloadScanner.h:
(TokenPreloadScanner):
(WebCore::TokenPreloadScanner::isSafeToSendToAnotherThread):
(WebCore::TokenPreloadScanner::Checkpoint::Checkpoint):
(Checkpoint):
2013-02-25 Chris Rogers <crogers@google.com>
AudioDestinationChromium should pass in inputDeviceId when creating WebKit::WebAudioDevice
https://bugs.webkit.org/show_bug.cgi?id=110796
Reviewed by Kenneth Russell.
* platform/audio/chromium/AudioDestinationChromium.cpp:
(WebCore::AudioDestinationChromium::AudioDestinationChromium):
2013-02-25 Mark Lam <mark.lam@apple.com>
Need a more robust WebSQL disk usage computation.
https://bugs.webkit.org/show_bug.cgi?id=110805.
Reviewed by Geoffrey Garen.
- Changed DatabaseTracker::usageForOrigin() to compute the disk usage
for a specified origin by fetching database sizes from the file system
instead of using cached file size values.
- The OriginQuotaManager and OriginUsageRecord are no longer needed.
Updated build files to reflect this.
- Removed getMaxSizeForDatabase() from DatabaseManager, DatabaseServer,
and AbstractDatabaseServer since it is only needed in the backend.
- DatabaseTracker::getMaxSizeForDatabase() now calls usageForOrigin()
to get the disk usage for its computation.
- The performance difference for this changes is a 1.6% degradation
per additional database whose size needs to be fetched. This is a
worst case estimated based on the disk-stat-speed-test.html benchmark
(attached to bugzilla). The benchmark writes an average of 16 bytes per
transaction. Most real-world transactions will likely write more
content than that. Since disk write IO time will dominate over memory
read time for fetching the file size, the degradation ratio will only
reduce with larger workloads.
No layout test, but there is a quota-test.html attached to bugzilla.
The test is a webpage that can be loaded into multiple tabs to
consuming storage space. While the test is running, we can run a
"du -k; du -k *" on the database directory to verify that the total
disk usage does not far exceed the allowed quota (some small error
is expected). Without this change, each database from each tab may
exceed the quota by that same maginitude of error.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/AbstractDatabaseServer.h:
* Modules/webdatabase/Database.cpp:
* Modules/webdatabase/Database.h:
* Modules/webdatabase/DatabaseBackendBase.cpp:
(WebCore::DatabaseBackendBase::maximumSize):
* Modules/webdatabase/DatabaseManager.cpp:
* Modules/webdatabase/DatabaseManager.h:
* Modules/webdatabase/DatabaseServer.cpp:
* Modules/webdatabase/DatabaseServer.h:
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::hasAdequateQuotaForOrigin):
(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::retryCanEstablishDatabase):
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
(WebCore::DatabaseTracker::fullPathForDatabaseNoLock):
(WebCore::DatabaseTracker::fullPathForDatabase):
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::DatabaseTracker::removeOpenDatabase):
(WebCore::DatabaseTracker::usageForOrigin):
(WebCore::DatabaseTracker::deleteOrigin):
(WebCore::DatabaseTracker::deleteDatabase):
* Modules/webdatabase/DatabaseTracker.h:
* Modules/webdatabase/OriginQuotaManager.cpp: Removed.
* Modules/webdatabase/OriginQuotaManager.h: Removed.
* Modules/webdatabase/OriginUsageRecord.cpp: Removed.
* Modules/webdatabase/OriginUsageRecord.h: Removed.
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::runCurrentStatementAndGetNextState):
* Modules/webdatabase/SQLTransactionBackendSync.cpp:
(WebCore::SQLTransactionBackendSync::executeSQL):
* Modules/webdatabase/SQLTransactionClient.cpp:
* Modules/webdatabase/SQLTransactionClient.h:
* Modules/webdatabase/chromium/SQLTransactionClientChromium.cpp:
* Target.pri:
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
2013-02-25 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
[texmap] Rename TextureMapperGL::ClipStack::init to reset
https://bugs.webkit.org/show_bug.cgi?id=110783
Reviewed by Noam Rosenthal.
Functions named init() are usually called inside ctor's to initialize
member variables that were unable to be assigned on an initialization
list, which is not the case, and also because reset() better reflects
the behavior (clears the clip stack and assigns a value to the initial
clip state).
No behavior changes, thus covered by existing tests.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::ClipStack::reset):
(WebCore::TextureMapperGL::beginPainting):
(WebCore::BitmapTextureGL::initializeDepthBuffer):
* platform/graphics/texmap/TextureMapperGL.h:
(ClipStack):
2013-02-25 Adam Barth <abarth@webkit.org>
Threaded HTML parser should pass fast/parser/iframe-sets-parent-to-javascript-url.html
https://bugs.webkit.org/show_bug.cgi?id=110637
Reviewed by Eric Seidel.
With the main thread parser, we always parse the first chunk of content
returned as the result of evaluating a JavaScript URL synchronously. In
particular, if the first chunk has an inline script, we'll execute it
synchronously.
Previous to this patch, the threaded parser would always parse this
content asynchronously. It's conceivable that there could be some
content relying on the synchronous behavior, so this patch introduces
the notion of "pinning" a parser to the main thread and uses that
concept to force the result of JavaScript URLs to be parsed on the main
thread (which is probably desirable anyway because they're likely to be
quite short).
This patch fixes fast/parser/iframe-sets-parent-to-javascript-url.html
and fast/dom/javascript-url-crash-function.html with the threaded
parser with --enable-threaded-html-parser.
* dom/DocumentParser.h:
(WebCore::DocumentParser::pinToMainThread):
(DocumentParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore):
(WebCore::HTMLDocumentParser::pinToMainThread):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
(WebCore::HTMLDocumentParser::shouldUseThreading):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):
2013-02-25 Jessie Berlin <jberlin@apple.com>
Update the localizable strings file.
Rubber-stamped by Anders Carlsson.
* English.lproj/Localizable.strings:
2013-02-25 Xueqing Huang <huangxueqing@baidu.com>
Flexbox should ignore firstLetter pseudo element.
https://bugs.webkit.org/show_bug.cgi?id=105126
Reviewed by Tony Chang.
The CSS WG decided that first-line and first-letter should not
apply to flex containers.
http://dev.w3.org/csswg/css3-flexbox/issue-cr-2012#issue-13
tests:
css3/flexbox/flexbox-ignore-firstLetter.html
css3/flexbox/flexbox-ignore-container-firstLetter.html
* rendering/RenderBlock.cpp:
(WebCore::findFirstLetterBlock):
2013-02-25 Simon Fraser <simon.fraser@apple.com>
Lots of unnecessary DidLayout notifications when scrolling zoomed page with iframes
https://bugs.webkit.org/show_bug.cgi?id=110824
Reviewed by Tim Horton.
RenderWidget::setWidgetGeometry() compares the old and new frame rects to decide
if the geometry changed. However, it use implicit IntRect->LayoutRect promotion in
the comparison, and then roundedIntRect() in setting. Thus the code would think
that the geometry changed, even when the final assigned frame did not.
Fix by computing the new frame using roundedIntRect(), and using that to determine
whether the geometry changed.
No way to test DidLayout notifications in DRT/WTR.
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::setWidgetGeometry):
2013-02-21 Jeffrey Pfau <jpfau@apple.com>
Optionally partition cache to prevent using cache for tracking
https://bugs.webkit.org/show_bug.cgi?id=110269
Reviewed by Maciej Stachowiak.
Implement memory cache partitioning by passing the cache name through
resource requests into a new version of resourceForURL.
Test: http/tests/cache/partitioned-cache.html
* Configurations/FeatureDefines.xcconfig: Add defines for cache partitioning and public suffix list usage
* WebCore.exp.in: Export new functions for WKSI and test suite
* WebCore.xcodeproj/project.pbxproj:
* html/DOMURL.cpp:
(WebCore::DOMURL::revokeObjectURL): Retrofit for new resourceForRequest function
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::cachedResource): Retrofit for new resourceForRequest function
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::replayXHR): Retrofit for new resourceForRequest function
* loader/DocumentLoader.h:
(DocumentLoader):
(WebCore::DocumentLoader::recordMemoryCacheLoadForFutureClientNotification): Retrofit for new resourceForRequest function
(WebCore::DocumentLoader::takeMemoryCacheLoadsForClientNotification): Retrofit for new resourceForRequest function
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadedResourceFromMemoryCache): Retrofit for new resourceForRequest function
(WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads): Retrofit for new resourceForRequest function
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create): Retrofit for new resourceForRequest function
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::~CachedResource):
* loader/cache/CachedResource.h: Retrofit for new resourceForRequest function
(CachedResource):
(WebCore::CachedResource::cachePartition):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Retrofit for new resourceForRequest function
(WebCore::CachedResourceLoader::requestResource): Retrofit for new resourceForRequest function
(WebCore::CachedResourceLoader::loadResource): Retrofit for new resourceForRequest function
* loader/cache/MemoryCache.cpp:
(WebCore):
(WebCore::partitionName): Add function for determining absolute partition name
(WebCore::MemoryCache::add): Retrofit for partition mapping
(WebCore::MemoryCache::revalidationSucceeded): Retrofit for partition mapping
(WebCore::MemoryCache::resourceForURL): Call into new resourceForRequest
(WebCore::MemoryCache::resourceForRequest): Retrofit for partition mapping
(WebCore::MemoryCache::evict): Retrofit for partition mapping
(WebCore::MemoryCache::removeResourcesWithOrigin): Retrofit for partition mapping
(WebCore::MemoryCache::getOriginsWithCache): Retrofit for partition mapping
(WebCore::MemoryCache::removeUrlFromCache): Retrofit for partition mapping
(WebCore::MemoryCache::removeRequestFromCache): Retrofit for partition mapping
(WebCore::MemoryCache::removeRequestFromCacheImpl): Retrofit for partition mapping
(WebCore::MemoryCache::crossThreadRemoveRequestFromCache): Add function for calling removeRequestFromCacheImpl that takes a CrossThreadResourceRequestData
(WebCore::MemoryCache::getStatistics): Retrofit for partition mapping
(WebCore::MemoryCache::setDisabled): Retrofit for partition mapping
* loader/cache/MemoryCache.h:
(MemoryCache):
* page/SecurityOrigin.cpp:
(WebCore):
(WebCore::SecurityOrigin::cachePartition): Add function for determining the cache partition name
* page/SecurityOrigin.h:
(SecurityOrigin):
* platform/PublicSuffix.h: Added.
(WebCore):
* platform/mac/PublicSuffixMac.mm: Added.
(WebCore):
(WebCore::isPublicSuffix):
(WebCore::topPrivatelyControlledDomain):
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
* platform/network/cf/ResourceRequest.h:
(ResourceRequest):
(WebCore::ResourceRequest::cachePartition):
(WebCore::ResourceRequest::setCachePartition):
(CrossThreadResourceRequestData):
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doPlatformCopyData): Pass through cache partition name
(WebCore):
(WebCore::ResourceRequest::doPlatformAdopt): Pass through cache partition name
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::doUpdateResourceRequest): Pass through cache partition name
(WebCore::ResourceRequest::doUpdatePlatformRequest): Pass through cache partition name
2013-02-25 Jer Noble <jer.noble@apple.com>
Normalize ENABLE_ENCRYPTED_MEDIA definitions across all FeatureDefines files.
https://bugs.webkit.org/show_bug.cgi?id=110806
Reviewed by Alexey Proskuryakov.
Ensure both ENCRYPTED_MEDIA and ENCRYPTED_MEDIA_V2 are enabled on macosx_1090.
* Configurations/FeatureDefines.xcconfig:
Fix some build errors which occurred when both ENCRYPTED_MEDIA and
ENCRYPTED_MEDIA_V2 were enabled:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::webkitGenerateKeyRequest):
(WebCore::HTMLMediaElement::webkitAddKey):
* page/DOMWindow.idl:
2013-02-25 Adam Barth <abarth@webkit.org>
6% regression in intl1 page cycler on chromium-mac
https://bugs.webkit.org/show_bug.cgi?id=110784
Reviewed by Eric Seidel.
This patch reverts http://trac.webkit.org/changeset/143014 to see if
that's the cause of the PLT regression. If it's not the cause, I'll
roll it back in.
* dom/Element.cpp:
(WebCore::Element::addAttributeInternal):
(WebCore::ShareableElementData::ShareableElementData):
(WebCore::UniqueElementData::makeShareableCopy):
(WebCore::ElementData::addAttribute):
(WebCore::ElementData::removeAttribute):
(WebCore::ElementData::reportMemoryUsage):
* dom/Element.h:
(ElementData):
(UniqueElementData):
(WebCore::ElementData::mutableAttributeVector):
(WebCore):
(WebCore::ElementData::immutableAttributeArray):
(WebCore::ElementData::length):
(WebCore::ElementData::getAttributeItem):
(WebCore::ElementData::attributeItem):
2013-02-25 Tim Horton <timothy_horton@apple.com>
Page::m_isInWindow is uninitialized
https://bugs.webkit.org/show_bug.cgi?id=110807
Reviewed by Simon Fraser.
Ideally m_isInWindow and m_isOnscreen would default to false, and be flipped to true
when the Page is put in-window or on-screen. However, only the Mac port seems to ever
call setIsInWindow/didMoveOnscreen. So, we have to default to true and flip it to false
immediately after construction on Mac.
This is just matching the behaviour of the existing m_isOnscreen.
* page/Page.cpp:
(WebCore::Page::Page): Initialize m_isInWindow to true.
2013-02-25 Kentaro Hara <haraken@chromium.org>
Unreviewed build fix after r143965.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateOverloadedConstructorCallback):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::TestOverloadedConstructorsV8Internal::constructor):
2013-02-25 Gustavo Noronha Silva <gns@gnome.org>
Build fix for gtk2-based library.
Reviewed by Martin Robinson.
* platform/gtk/WidgetRenderingContext.cpp: move gtk2 check to after the config.h
include, which is the one that includes autotoolsconfig.h, where the gtk2 define
lives.
2013-02-25 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143936.
http://trac.webkit.org/changeset/143936
https://bugs.webkit.org/show_bug.cgi?id=110789
Causes webkit_unit_tests failures on android dbg (Requested by
vollick on #webkit).
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::GIFImageDecoder):
(WebCore::GIFImageDecoder::setData):
(WebCore::GIFImageDecoder::frameCount):
(WebCore::GIFImageDecoder::decodingHalted):
(WebCore):
(WebCore::GIFImageDecoder::haveDecodedRow):
(WebCore::GIFImageDecoder::decode):
* platform/image-decoders/gif/GIFImageDecoder.h:
(GIFImageDecoder):
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::doLZW):
(GIFImageReader::read):
* platform/image-decoders/gif/GIFImageReader.h:
(GIFFrameContext):
(GIFFrameContext::GIFFrameContext):
(GIFFrameContext::~GIFFrameContext):
(GIFImageReader::GIFImageReader):
(GIFImageReader::~GIFImageReader):
(GIFImageReader):
(GIFImageReader::globalColormap):
(GIFImageReader::globalColormapSize):
2013-02-25 Kentaro Hara <haraken@chromium.org>
[V8] Generate a wrapper function for method callbacks
https://bugs.webkit.org/show_bug.cgi?id=110769
Reviewed by Adam Barth.
This is one of steps to insert TRACE_EVENT_STATE() macros
into DOM bindings. This patch introduces an indirection
function for xxxMethod(), like this:
// For non-custom methods
void xxxMethodCallback(...) {
xxxMethod(...);
}
// For custom methods
void xxxMethodCallback(...) {
return xxxMethodCustom(...);
}
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateDomainSafeFunctionGetter):
(GenerateOverloadedFunction):
(GenerateFunctionCallback):
(GenerateFunction):
(GenerateNonStandardFunction):
(GenerateImplementation):
(GenerateFunctionCallString):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::Float64ArrayV8Internal::fooMethodCallback):
(Float64ArrayV8Internal):
(WebCore::Float64ArrayV8Internal::setMethodCallback):
(WebCore):
(WebCore::ConfigureV8Float64ArrayTemplate):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::excitingFunctionMethodCallback):
(TestActiveDOMObjectV8Internal):
(WebCore::TestActiveDOMObjectV8Internal::postMessageMethodCallback):
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::TestCustomNamedGetterV8Internal::anotherFunctionMethodCallback):
(TestCustomNamedGetterV8Internal):
(WebCore):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::TestEventTargetV8Internal::itemMethodCallback):
(TestEventTargetV8Internal):
(WebCore::TestEventTargetV8Internal::addEventListenerMethodCallback):
(WebCore::TestEventTargetV8Internal::removeEventListenerMethodCallback):
(WebCore::TestEventTargetV8Internal::dispatchEventMethodCallback):
(WebCore):
(WebCore::ConfigureV8TestEventTargetTemplate):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalMethod1MethodCallback):
(TestInterfaceV8Internal):
(WebCore::TestInterfaceV8Internal::supplementalMethod2MethodCallback):
(WebCore::TestInterfaceV8Internal::supplementalMethod3MethodCallback):
(WebCore::TestInterfaceV8Internal::supplementalMethod4MethodCallback):
(WebCore):
(WebCore::ConfigureV8TestInterfaceTemplate):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::TestMediaQueryListListenerV8Internal::methodMethodCallback):
(TestMediaQueryListListenerV8Internal):
(WebCore):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::voidMethodMethodCallback):
(TestObjV8Internal):
(WebCore::TestObjV8Internal::voidMethodWithArgsMethodCallback):
(WebCore::TestObjV8Internal::longMethodMethodCallback):
(WebCore::TestObjV8Internal::longMethodWithArgsMethodCallback):
(WebCore::TestObjV8Internal::objMethodMethod):
(WebCore::TestObjV8Internal::objMethodMethodCallback):
(WebCore::TestObjV8Internal::objMethodWithArgsMethodCallback):
(WebCore::TestObjV8Internal::methodWithSequenceArgMethodCallback):
(WebCore::TestObjV8Internal::methodReturningSequenceMethodCallback):
(WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsMethodCallback):
(WebCore::TestObjV8Internal::serializedValueMethodCallback):
(WebCore::TestObjV8Internal::optionsObjectMethodCallback):
(WebCore::TestObjV8Internal::methodWithExceptionMethodCallback):
(WebCore::TestObjV8Internal::customMethodMethodCallback):
(WebCore::TestObjV8Internal::customMethodWithArgsMethodCallback):
(WebCore::TestObjV8Internal::addEventListenerMethodCallback):
(WebCore::TestObjV8Internal::removeEventListenerMethodCallback):
(WebCore::TestObjV8Internal::withScriptStateVoidMethodCallback):
(WebCore::TestObjV8Internal::withScriptStateObjMethodCallback):
(WebCore::TestObjV8Internal::withScriptStateVoidExceptionMethodCallback):
(WebCore::TestObjV8Internal::withScriptStateObjExceptionMethodCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextMethodCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateMethodCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionMethodCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesMethodCallback):
(WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackMethodCallback):
(WebCore::TestObjV8Internal::methodWithOptionalArgMethodCallback):
(WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgMethodCallback):
(WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsMethodCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringMethodCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedMethodCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringMethodCallback):
(WebCore::TestObjV8Internal::methodWithCallbackArgMethodCallback):
(WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgMethodCallback):
(WebCore::TestObjV8Internal::methodWithCallbackAndOptionalArgMethodCallback):
(WebCore::TestObjV8Internal::conditionalMethod1MethodCallback):
(WebCore::TestObjV8Internal::conditionalMethod2MethodCallback):
(WebCore::TestObjV8Internal::conditionalMethod3MethodCallback):
(WebCore::TestObjV8Internal::overloadedMethodMethodCallback):
(WebCore::TestObjV8Internal::classMethodMethodCallback):
(WebCore::TestObjV8Internal::classMethodWithOptionalMethodCallback):
(WebCore::TestObjV8Internal::classMethod2MethodCallback):
(WebCore::TestObjV8Internal::overloadedMethod1MethodCallback):
(WebCore::TestObjV8Internal::classMethodWithClampMethodCallback):
(WebCore::TestObjV8Internal::enabledAtRuntimeMethod1MethodCallback):
(WebCore::TestObjV8Internal::enabledAtRuntimeMethod2MethodCallback):
(WebCore::TestObjV8Internal::enabledPerContextMethod1MethodCallback):
(WebCore::TestObjV8Internal::enabledPerContextMethod2MethodCallback):
(WebCore::TestObjV8Internal::stringArrayFunctionMethodCallback):
(WebCore::TestObjV8Internal::domStringListFunctionMethodCallback):
(WebCore::TestObjV8Internal::getSVGDocumentMethodCallback):
(WebCore::TestObjV8Internal::convert1MethodCallback):
(WebCore::TestObjV8Internal::convert2MethodCallback):
(WebCore::TestObjV8Internal::convert4MethodCallback):
(WebCore::TestObjV8Internal::convert5MethodCallback):
(WebCore::TestObjV8Internal::mutablePointFunctionMethodCallback):
(WebCore::TestObjV8Internal::immutablePointFunctionMethodCallback):
(WebCore::TestObjV8Internal::orangeMethodCallback):
(WebCore::TestObjV8Internal::strictFunctionMethodCallback):
(WebCore::TestObjV8Internal::variadicStringMethodMethodCallback):
(WebCore::TestObjV8Internal::variadicDoubleMethodMethodCallback):
(WebCore::TestObjV8Internal::variadicNodeMethodMethodCallback):
(WebCore):
(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::installPerContextPrototypeProperties):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListMethodCallback):
(TestSerializedScriptValueInterfaceV8Internal):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::multiTransferListMethodCallback):
(WebCore):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::TestTypedefsV8Internal::funcMethodCallback):
(TestTypedefsV8Internal):
(WebCore::TestTypedefsV8Internal::multiTransferListMethodCallback):
(WebCore::TestTypedefsV8Internal::setShadowMethodCallback):
(WebCore::TestTypedefsV8Internal::methodWithSequenceArgMethodCallback):
(WebCore::TestTypedefsV8Internal::nullableArrayArgMethodCallback):
(WebCore::TestTypedefsV8Internal::funcWithClampMethodCallback):
(WebCore::TestTypedefsV8Internal::immutablePointFunctionMethodCallback):
(WebCore::TestTypedefsV8Internal::stringArrayFunctionMethodCallback):
(WebCore::TestTypedefsV8Internal::stringArrayFunction2MethodCallback):
(WebCore::TestTypedefsV8Internal::methodWithExceptionMethodCallback):
(WebCore):
(WebCore::ConfigureV8TestTypedefsTemplate):
2013-02-25 Kentaro Hara <haraken@chromium.org>
[V8] Generate a wrapper method for constructor callbacks
https://bugs.webkit.org/show_bug.cgi?id=110765
Reviewed by Adam Barth.
This is one of steps to insert TRACE_EVENT_STATE() macros
into DOM bindings. This patch introduces an indirection
function for constructor(), like this:
// For non-custom constructors
void constructorCallback(...) {
return constructor(...);
}
// For custom constructors
void constructorCallback(...) {
return constructorCustom(...);
}
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateOverloadedConstructorCallback):
(GenerateSingleConstructorCallback):
(GenerateConstructorCallback):
(GenerateConstructor):
(GenerateEventConstructor):
(GenerateTypedArrayConstructor):
(GenerateNamedConstructor):
(GenerateConstructorHeader):
(GenerateImplementation):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::Float64ArrayV8Internal::constructor):
(Float64ArrayV8Internal):
(WebCore::V8Float64Array::constructorCallback):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::TestEventConstructorV8Internal::constructor):
(WebCore):
(WebCore::V8TestEventConstructor::constructorCallback):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::constructor):
(TestInterfaceV8Internal):
(WebCore::V8TestInterface::constructorCallback):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructorCallback):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::TestNodeV8Internal::constructor):
(TestNodeV8Internal):
(WebCore::V8TestNode::constructorCallback):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::constructor):
(TestObjV8Internal):
(WebCore::V8TestObj::constructorCallback):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::TestOverloadedConstructorsV8Internal::constructor1):
(WebCore::TestOverloadedConstructorsV8Internal::constructor2):
(WebCore::TestOverloadedConstructorsV8Internal::constructor3):
(WebCore::TestOverloadedConstructorsV8Internal::constructor4):
(WebCore::TestOverloadedConstructorsV8Internal::constructor):
(WebCore):
(WebCore::V8TestOverloadedConstructors::constructorCallback):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::TestSerializedScriptValueInterfaceV8Internal::constructor):
(TestSerializedScriptValueInterfaceV8Internal):
(WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::TestTypedefsV8Internal::constructor):
(TestTypedefsV8Internal):
(WebCore::V8TestTypedefs::constructorCallback):
2013-02-24 Kentaro Hara <haraken@chromium.org>
[V8] Generate xxxAttrSetterCallback()
https://bugs.webkit.org/show_bug.cgi?id=110726
Reviewed by Adam Barth.
This is one of steps to insert TRACE_EVENT_STATE() macros into DOM bindings.
This patch introduces an indirection function for xxxAttrSetter(), like this:
// For non-custom setters
void xxxAttrSetterCallback(...) {
xxxAttrSetter(...);
}
// For custom setters.
void xxxAttrSetterCallback(...) {
return xxxAttrSetterCustom(...);
}
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrSetterCallback):
(GenerateNormalAttrSetter):
(GenerateSingleBatchedAttribute):
(GenerateImplementation):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetterCallback):
(TestInterfaceV8Internal):
(WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetterCallback):
(WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetterCallback):
(WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetterCallback):
(WebCore):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::staticStringAttrAttrSetterCallback):
(TestObjV8Internal):
(WebCore::TestObjV8Internal::enumAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::shortAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::unsignedShortAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::longAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::longLongAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::unsignedLongLongAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::stringAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::testObjAttrAttrSetter):
(WebCore::TestObjV8Internal::testObjAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::XMLObjAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::createAttrSetterCallback):
(WebCore::TestObjV8Internal::reflectedStringAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::reflectedIntegralAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::reflectedBooleanAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::reflectedURLAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::typedArrayAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::attrWithGetterExceptionAttrSetterCallback):
(WebCore::TestObjV8Internal::attrWithSetterExceptionAttrSetterCallback):
(WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetterCallback):
(WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetterCallback):
(WebCore::TestObjV8Internal::customAttrAttrSetterCallback):
(WebCore::TestObjV8Internal::withScriptStateAttributeAttrSetterCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetterCallback):
(WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetterCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetterCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetterCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetterCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetterCallback):
(WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetterCallback):
(WebCore::TestObjV8Internal::conditionalAttr1AttrSetterCallback):
(WebCore::TestObjV8Internal::conditionalAttr2AttrSetterCallback):
(WebCore::TestObjV8Internal::conditionalAttr3AttrSetterCallback):
(WebCore::TestObjV8Internal::anyAttributeAttrSetterCallback):
(WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrSetterCallback):
(WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrSetterCallback):
(WebCore::TestObjV8Internal::enabledPerContextAttr1AttrSetterCallback):
(WebCore::TestObjV8Internal::enabledPerContextAttr2AttrSetterCallback):
(WebCore::TestObjV8Internal::floatArrayAttrSetterCallback):
(WebCore::TestObjV8Internal::doubleArrayAttrSetterCallback):
(WebCore::TestObjV8Internal::mutablePointAttrSetterCallback):
(WebCore::TestObjV8Internal::immutablePointAttrSetterCallback):
(WebCore::TestObjV8Internal::strawberryAttrSetterCallback):
(WebCore::TestObjV8Internal::strictFloatAttrSetterCallback):
(WebCore::TestObjV8Internal::idAttrSetterCallback):
(WebCore):
(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::installPerContextProperties):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrSetterCallback):
(TestSerializedScriptValueInterfaceV8Internal):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetterCallback):
(WebCore):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrSetterCallback):
(TestTypedefsV8Internal):
(WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrSetterCallback):
(WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrSetterCallback):
(WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrSetterCallback):
(WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrSetterCallback):
(WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrSetterCallback):
(WebCore):
2013-02-25 Adam Barth <abarth@webkit.org>
Build fix for Debug.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::startBackgroundParser):
2013-02-25 Adam Barth <abarth@webkit.org>
6% regression in intl1 page cycler on chromium-mac
https://bugs.webkit.org/show_bug.cgi?id=110784
Reviewed by Eric Seidel.
This patch attempts to heal the regression by reverting all the changes
to the preload scanner up to (and including)
http://trac.webkit.org/changeset/143020/.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::resumeFrom):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::scan):
(WebCore::CSSPreloadScanner::emitRule):
* html/parser/CSSPreloadScanner.h:
(CSSPreloadScanner):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::isStartTag):
(WebCore):
(WebCore::isStartOrEndTag):
(WebCore::TokenPreloadScanner::identifierFor):
(WebCore::TokenPreloadScanner::inititatorFor):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
(WebCore::TokenPreloadScanner::processPossibleTemplateTag):
(WebCore::TokenPreloadScanner::processPossibleStyleTag):
(WebCore::TokenPreloadScanner::processPossibleBaseTag):
(WebCore::TokenPreloadScanner::scan):
(WebCore::HTMLPreloadScanner::scan):
* html/parser/HTMLPreloadScanner.h:
(TokenPreloadScanner):
2013-02-25 Mark Lam <mark.lam@apple.com>
Changed DatabaseTracker::getMaxSizeForDatabase() to return the previous
database size instead of 0 when the quota limit has been reached.
https://bugs.webkit.org/show_bug.cgi?id=110557.
Reviewed by Geoffrey Garen.
Testing of concurrent multi-process consumption of database quota shows that
returning a value of 0 when the quota is exceeded still allows some databases
to run away with unbounded growth. However, if getMaxSizeForDatabase() returns
the existing database size, the underlying sqlite3 database will successfully
reject new growth.
The value returned by DatabaseTracker::getMaxSizeForDatabase() is used to set
the SQLite3 database size using a sql command "PRAGMA max_page_count = <size>".
The SQLite3 documentation on this pragma says, "The maximum page count cannot
be reduced below the current database size."
It is undefined what setting it to a reduced size will do. So, we're changing
getMaxSizeForDatabase() to return the existing size instead.
No new tests.
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
2013-02-25 Tony Chang <tony@chromium.org>
Refactor logic for relaying out children out of RenderBlock::styleDidChange
https://bugs.webkit.org/show_bug.cgi?id=110661
Reviewed by David Hyatt.
Instead of having styleDidChange need to know which children to mark as needing layout,
use a bool to keep track of border and padding width changes so at layout time, we know
we need to set relayoutChildren=true.
We steal a bit from m_lineHeight reducing the possible line height from around 500 million pixels
to 250 million pixels.
No new tests, this should be covered by fast/block/positioning/border-change-relayout-test.html and
fast/block/dynamic-padding-border.html.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::RenderBlock): Fix indent and initialize m_hasBorderOrPaddingLogicalWidthChanged.
(WebCore::RenderBlock::styleDidChange): Remove logic for setting children as needing layout.
(WebCore::RenderBlock::updateLogicalWidthAndColumnWidth): Return true if border or padding width changed.
* rendering/RenderBlock.h:
(RenderBlock): Steal a bit from m_lineHeight and give it to m_hasBorderOrPaddingLogicalWidthChanged.
2013-02-25 Alexis Menard <alexis@webkit.org>
transition-property property doesn't accept "all, <IDENT>".
https://bugs.webkit.org/show_bug.cgi?id=110074
Reviewed by Dean Jackson.
http://dev.w3.org/csswg/css3-transitions/#transition-property-property
allows all, <IDENT> as a value for the transition-property property. In
fact thanks to http://trac.webkit.org/changeset/143019 we correctly
implemented that behavior for transition shorthand property while
fixing bugs on the previous implementation. We did introduce a
AnimationParseContext to track whether the parsing of the
transition-property was finished or not in relation to the keyword.
This patch extend that mechanism to the longhand by renaming the
boolean and the functions to use it in the context class and set it
correctly while parsing the longhand property.
Test: LayoutTests/transitions/transitions-parsing.html
* css/CSSParser.cpp:
(WebCore::AnimationParseContext::AnimationParseContext):
(WebCore::AnimationParseContext::commitAnimationPropertyKeyword):
(WebCore::AnimationParseContext::animationPropertyKeywordAllowed):
(AnimationParseContext):
(WebCore::CSSParser::parseAnimationShorthand):
(WebCore::CSSParser::parseTransitionShorthand):
(WebCore::CSSParser::parseAnimationProperty): We can remove the
condition inShorthand() here, if 'none' is parsed then no more keyword
can appear, if 'all' is parsed then we can continue the parsing but
invalidate the property if another keyword is encountered. These
conditions are valid for the shorthand and the longhand.
2013-02-25 No'am Rosenthal <noam@webkit.org>
[Texmap] LayoutTests/compositing/animation/state-at-end-event-transform-layer.html shows a red square where it shouldn't
https://bugs.webkit.org/show_bug.cgi?id=110685
Reviewed by Martin Robinson.
Removed m_shouldUpdateCurrentTransformFromGraphicsLayer etc., as they don't do
what they're supposed to do. No flickers observed.
LayoutTests/compositing/animation/state-at-end-event-transform-layer.html now works correctly.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::setAnimatedTransform):
(WebCore::TextureMapperLayer::setAnimatedOpacity):
(WebCore::TextureMapperLayer::setAnimatedFilters):
(WebCore::TextureMapperLayer::syncAnimations):
* platform/graphics/texmap/TextureMapperLayer.h:
(WebCore::TextureMapperLayer::TextureMapperLayer):
(TextureMapperLayer):
2013-02-25 Jer Noble <jer.noble@apple.com>
AVFoundation.framework and QTKit.framework are lazy-loaded on every WebProcess launch
https://bugs.webkit.org/show_bug.cgi?id=110725
Reviewed by Eric Carlson.
When settings are changed, do not re-query the media engines (which causes their respective
frameworks to load). Instead, merely clear any previously loaded media engines so that
the media engine list will be re-queried the next time installedMediaEngines() is called.
(WebCore::MediaPlayer::resetMediaEngines): Renamed from requeryMediaEngines.
* platform/graphics/MediaPlayer.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::resetMediaEngines): Ditto.
* html/HTMLMediaElement.h:
* page/Settings.cpp:
(WebCore::Settings::setAVFoundationEnabled): Call renamed method.
(WebCore::Settings::setQTKitEnabled): Ditto.
* platform/graphics/MediaPlayer.cpp:
(WebCore::installedMediaEngines): Only clear out previously queried engines.
2013-02-25 Martin Robinson <mrobinson@igalia.com>
Try to fix the Windows gyp build after r143937
* WebCore.gypi: Update the filename in the source list.
2013-02-25 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Refactor RenderStyle's grid position storage in preparation to supporting spanning
https://bugs.webkit.org/show_bug.cgi?id=110651
Reviewed by Ojan Vafai.
The current code stores grid-{row|column} as a single GridPosition value. While this works well currently,
we want to be able to handle 2 GridPosition as this enables row / column spanning.
That's what this refactoring achieves: it replaces the internal storage by a GridPositions that contains a
single GridPosition for now. The rest is mechanical updates.
Refactoring covered by existing tests.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridPositions):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
Added the simple wrapper valueForGridPositions and updated the rest of the code.
* css/StyleResolver.cpp:
(WebCore::createGridPositions):
(WebCore::StyleResolver::applyProperty):
Ditto with createGridPositions.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::maximumIndexInDirection):
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
(WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid):
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
(WebCore::RenderGrid::autoPlacementMajorAxisPositionsForChild):
(WebCore::RenderGrid::autoPlacementMinorAxisPositionsForChild):
Updated the code after adding the indirection: s/GridPosition/GridPositions/ and
use the firstPosition helper.
* rendering/RenderGrid.h:
* rendering/style/GridPosition.h:
(WebCore::GridPositions::GridPositions):
(WebCore::GridPositions::firstPosition):
(WebCore::GridPositions::operator==):
Added this class to add the indirection. For now, it only wraps the single GridPosition.
* rendering/style/RenderStyle.h:
* rendering/style/StyleGridItemData.h:
Updated to store / take / return a GridPositions.
2013-02-25 Dimitri Glazkov <dglazkov@chromium.org>
Revert r143840 because it caused flaky crashes.
https://bugs.webkit.org/show_bug.cgi?id=110766
2013-02-25 Alexey Proskuryakov <ap@apple.com>
Remove an obsolete workaround for relaxing 3rd party cookie policy
https://bugs.webkit.org/show_bug.cgi?id=110664
Reviewed by Benjamin Poulain.
Removed shouldRelaxThirdPartyCookiePolicy(). This workaround is no longer needed,
because CFNetwork performs the same check starting with 10.6.8.
Also, the workaround was not quite correct and harmful for performance, as it
was always changing main document URL to an untrue value, which caused ResourceRequest
regeneration.
* platform/network/ResourceHandle.h:
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::createCFURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::createNSURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
2013-02-25 Vsevolod Vlasov <vsevik@chromium.org>
WebInspector: Do not keep track of resources unless they have a valid loader identifier.
https://bugs.webkit.org/show_bug.cgi?id=110761
Reviewed by Pavel Feldman.
* inspector/NetworkResourcesData.cpp:
(WebCore::NetworkResourcesData::responseReceived):
(WebCore::NetworkResourcesData::setResourceType):
(WebCore::NetworkResourcesData::resourceType):
(WebCore::NetworkResourcesData::setResourceContent):
(WebCore::NetworkResourcesData::maybeAddResourceData):
(WebCore::NetworkResourcesData::maybeDecodeDataToContent):
(WebCore::NetworkResourcesData::addCachedResource):
(WebCore::NetworkResourcesData::addResourceSharedBuffer):
(WebCore::NetworkResourcesData::data):
(WebCore::NetworkResourcesData::xhrReplayData):
(WebCore::NetworkResourcesData::setXHRReplayData):
(WebCore::NetworkResourcesData::reuseXHRReplayData):
(WebCore::NetworkResourcesData::resourceDataForRequestId):
(WebCore::NetworkResourcesData::ensureNoDataForRequestId):
(WebCore::NetworkResourcesData::ensureFreeSpace):
* inspector/NetworkResourcesData.h:
(NetworkResourcesData):
2013-02-25 Mariusz Grzegorczyk <mariusz.g@samsung.com>
[EFL][GTK] Move text selection/focus notification for a11y from gtk to atk directory
https://bugs.webkit.org/show_bug.cgi?id=110221
Reviewed by Martin Robinson.
Share implementation between efl and gtk.
Update build with changes made.
* GNUmakefile.list.am: Change WebCore/editing/gtk/FrameSelectionGtk.cpp to WebCore/editing/atk/FrameSelectionAtk.cpp to build.
* PlatformEfl.cmake: Add WebCore/editing/atk to include directories, add Webcore/editing/atk/FrameSelectionAtk.cpp to build.
* editing/FrameSelection.h: Omit notifyAccessibilityForSelectionChange() stub for EFL port.
(WebCore):
* editing/atk/FrameSelectionAtk.cpp: Renamed from Source/WebCore/editing/gtk/FrameSelectionGtk.cpp.
(WebCore):
(WebCore::emitTextSelectionChange):
(WebCore::maybeEmitTextFocusChange):
(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
2013-02-25 Alpha Lam <hclam@chromium.org>
GIFImageReader to read from source data directly
https://bugs.webkit.org/show_bug.cgi?id=109662
Reviewed by Stephen White.
This is the first patch to improve GIF image decoding.
GIFImageReader has an internal 256 bytes buffer to saving incoming
bytes. This mechanism is out-dated because WebKit holds the entire
file in memory and it is not necessary to hold data in an intermediate
buffer.
This is also a blocker for later work to parse and decode GIF
incrementally.
This change removed the imtermediate 'hold' buffer and uses an index
for data position to keep track of parsing of the GIF file. Buffer for
global colormap and local colormap are also removed because they can be
referenced from the data stream.
This change is tested by:
Layout tests
All tests passed under fast/images.
Unit tests
Added GIFImageDecoderTest for Chromium.
Local testing
I tested this implementation against a set of 50k GIF images and
there's no crashes and produces bit-exact results as previous code.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::setData):
(WebCore::GIFImageDecoder::frameCount):
(WebCore::GIFImageDecoder::haveDecodedRow):
(WebCore::GIFImageDecoder::decode):
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::doLZW):
(GIFImageReader::decode):
(GIFImageReader::decodeInternal):
(GIFImageReader::setRemainingBytes):
* platform/image-decoders/gif/GIFImageReader.h:
(GIFFrameContext):
(GIFFrameContext::GIFFrameContext):
(GIFFrameContext::~GIFFrameContext):
(GIFImageReader::GIFImageReader):
(GIFImageReader::~GIFImageReader):
(GIFImageReader::setData):
(GIFImageReader):
(GIFImageReader::globalColormap):
(GIFImageReader::localColormap):
(GIFImageReader::localColormapSize):
(GIFImageReader::data):
(GIFImageReader::colormap):
2013-02-25 Sergio Villar Senin <svillar@igalia.com>
[soup] "Too many redirects" error loading chat in plus.google.com
https://bugs.webkit.org/show_bug.cgi?id=64575
Reviewed by Martin Robinson.
Set the firstPartyForCookies for the new request on redirects to
the URL used for redirection.
Test: http/tests/cookies/set-cookie-on-redirect.html
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::doRedirect):
2013-02-25 Andreas Kling <akling@apple.com>
Reduce amount of code that includes StylePropertySet.h
<http://webkit.org/b/101149>
Reviewed by Antti Koivisto.
StylePropertySet.h and dependents were getting included by the majority of WebKit
through either StyledElement.h or CSSStyleDeclaration.h. This change removes those includes
and moves inclusion to .cpp files instead. After this change, it's possible to hack most
of WebCore/css/ and rebuild <100 files instead of >1000.
The only real code change in here is changing CSSStyleDeclaration::cssPropertyMatches()
to take a CSSPropertyID/CSSValue* combo instead of a StylePropertySet::Reference.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
* css/CSSComputedStyleDeclaration.h:
(CSSComputedStyleDeclaration):
* css/CSSStyleDeclaration.h:
(CSSStyleDeclaration):
* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
* css/PropertySetCSSStyleDeclaration.h:
* css/SelectorChecker.h:
* css/SelectorCheckerFastPath.cpp:
* css/SelectorFilter.cpp:
* css/SelectorFilter.h:
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::propertyMatches):
(WebCore::StylePropertySet::removeEquivalentProperties):
* css/StylePropertySet.h:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::MatchedProperties::MatchedProperties):
(WebCore::StyleResolver::MatchedProperties::~MatchedProperties):
* css/StyleResolver.h:
(MatchedProperties):
* css/StyleRule.cpp:
* css/ViewportStyleResolver.cpp:
(WebCore::ViewportStyleResolver::~ViewportStyleResolver):
* css/ViewportStyleResolver.h:
(ViewportStyleResolver):
* css/WebKitCSSKeyframeRule.cpp:
(WebCore::StyleKeyframe::StyleKeyframe):
(WebCore::StyleKeyframe::~StyleKeyframe):
* css/WebKitCSSKeyframeRule.h:
(StyleKeyframe):
* dom/Attr.cpp:
* dom/Document.cpp:
* dom/Element.cpp:
* dom/StyledElement.cpp:
(WebCore::StyledElement::addPropertyToPresentationAttributeStyle):
* dom/StyledElement.h:
(StyledElement):
* editing/FrameSelection.cpp:
* editing/RemoveCSSPropertyCommand.cpp:
(WebCore::RemoveCSSPropertyCommand::~RemoveCSSPropertyCommand):
* editing/RemoveCSSPropertyCommand.h:
(RemoveCSSPropertyCommand):
* editing/RemoveFormatCommand.cpp:
* html/HTMLBodyElement.cpp:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::addHTMLLengthToStyle):
(WebCore::HTMLElement::addHTMLColorToStyle):
* html/HTMLElement.h:
(HTMLElement):
* html/HTMLFontElement.cpp:
* html/HTMLHRElement.cpp:
* html/HTMLPreElement.cpp:
* html/HTMLTableElement.cpp:
* html/HTMLTablePartElement.cpp:
* html/canvas/CanvasStyle.cpp:
* html/shadow/MediaControlElementTypes.cpp:
* inspector/InspectorStyleSheet.cpp:
* page/PageSerializer.cpp:
* rendering/RenderTableCell.cpp:
* svg/SVGAnimateElement.cpp:
* svg/SVGElementRareData.h:
* svg/SVGFontFaceElement.cpp:
2013-02-25 Alexei Filippov <alph@chromium.org>
Web Inspector: Remove CPU profile from a group causes exception
https://bugs.webkit.org/show_bug.cgi?id=110466
Reviewed by Yury Semikhatsky.
WebInspector.ProfilesPanel._removeProfileHandle did not handle
profile removal from a group. The fix takes care of this case.
Test: inspector/profiler/cpu-profiler-profile-removal.html
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel.prototype.addProfileHeader):
(WebInspector.ProfilesPanel.prototype._removeProfileHeader):
2013-02-23 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: replace String with const char* in MemoryObjectInfo
https://bugs.webkit.org/show_bug.cgi?id=110599
Reviewed by Yury Semikhatsky.
Due to potentially dynamic nature of names and classNames we need to make a copy of the strings
that were given us via MemoryInstrumentation calls.
So I extended client api with registerString method that pushes the strings
down to the serializer.
* css/InspectorCSSOMWrappers.h:
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::HeapGraphSerializer):
(WebCore::HeapGraphSerializer::reportNodeImpl):
(WebCore::HeapGraphSerializer::reportEdgeImpl):
(WebCore::HeapGraphSerializer::registerString):
(WebCore::HeapGraphSerializer::registerTypeString):
(WebCore::HeapGraphSerializer::addRootNode):
* inspector/HeapGraphSerializer.h:
(HeapGraphSerializer):
* inspector/MemoryInstrumentationImpl.cpp:
(WebCore::MemoryInstrumentationClientImpl::registerString):
(WebCore):
* inspector/MemoryInstrumentationImpl.h:
(MemoryInstrumentationClientImpl):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::reportMemoryUsage):
2013-02-25 Keishi Hattori <keishi@webkit.org>
Add a scrollbar class for the new calendar picker
https://bugs.webkit.org/show_bug.cgi?id=110589
Reviewed by Kent Tamura.
Adding a scrollbar to be used in the new calendar picker (Bug 109439).
No new tests. Code is not used yet.
* Resources/pagepopups/calendarPicker.js:
(ScrubbyScrollBar):
(ScrubbyScrollBar.prototype.height):
(ScrubbyScrollBar.prototype.setHeight):
(ScrubbyScrollBar.prototype.setThumbHeight): Sets the height of the scroll bar thumb.
(ScrubbyScrollBar.prototype._setThumbPositionFromEvent): Sets the thumb position from a mouse event.
(ScrubbyScrollBar.prototype.onMouseDown):
(ScrubbyScrollBar.prototype.onWindowMouseMove):
(ScrubbyScrollBar.prototype.onWindowMouseUp):
(ScrubbyScrollBar.prototype.onThumbStyleTopAnimationStep): Animates the thumb back to the center position.
(ScrubbyScrollBar.prototype.onScrollTimer): Fires repeatedly while the thumb is being dragged.
2013-02-25 Ilya Tikhonovsky <loislo@chromium.org>
Unreviewed. Fix of closure type annotations.
* inspector/front-end/UISourceCode.js:
* inspector/front-end/utilities.js:
2013-02-25 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] Timeline bars and dividers are positioned in different coordinate systems.
https://bugs.webkit.org/show_bug.cgi?id=109943
Reviewed by Pavel Feldman.
Look at network log: red bar (on load) is positioned to the right of
the last required load.
This is incorrect. For exmaple, in case of short event it should be
positioned in the center of the bar.
* inspector/front-end/DataGrid.js:
Fix - hidden columns can have non-zero width.
* inspector/front-end/NetworkPanel.js: Use correct width for calculator.
* inspector/front-end/networkLogView.css: Removed parasite paddinds.
Extracted common absolute "paddings".
2013-02-25 Keishi Hattori <keishi@webkit.org>
Add list view for new calendar picker
https://bugs.webkit.org/show_bug.cgi?id=110140
Reviewed by Kent Tamura.
Adding list view class to be used in the new calendar picker (Bug 109439).
No new tests. Code is not yet used.
* Resources/pagepopups/calendarPicker.js:
(ListCell): One row inside the list view. We reuse
list cells to avoid animation hiccups caused by memory allocation.
(ListCell.prototype._recycleBin): Returns array to
store thrown away list cells so we can reuse them.
(ListCell.prototype.throwAway): Hides the cell and puts it in the recycle bin.
(ListCell.prototype.show):
(ListCell.prototype.hide): Hide the cell when we don't need the cell any more.
(ListCell.prototype.width):
(ListCell.prototype.setWidth):
(ListCell.prototype.position):
(ListCell.prototype.setPosition): Sets the CSS transform to position the cell.
(ListCell.prototype.setSelected): Adds selected CSS class.
(ListView): Shows a scrolling list.
(ListView.prototype.onAnimationFrameWillFinish): Calls updateCells if the cells need to be updated.
(ListView.prototype.setNeedsUpdateCells): Mark the cells as need to be updated.
(ListView.prototype.cellAtRow): Returns the cell at a given row. If the cell is not visible and doesn't exist, returns undefined.
(ListView.prototype.rowAtScrollOffset): The row that is displayed at the given scroll offset.
(ListView.prototype.scrollOffsetForRow): The scroll offset for the top of a given row.
(ListView.prototype.addCellIfNecessary): Adds the cell for a given row.
(ListView.prototype.prepareNewCell): Prepares a new or recycled cell for a given row.
(ListView.prototype.throwAwayCell): Throws a way a cell.
(ListView.prototype.firstVisibleRow): The first visible row at the top of the view.
(ListView.prototype.lastVisibleRow): The last visible row at the bottom of the view.
(ListView.prototype.scrollViewDidChangeContentOffset):
(ListView.prototype.scrollViewDidChangeHeight):
(ListView.prototype.scrollViewDidChangePartition):
(ListView.prototype.updateCells): Updates all the cells that are visible.
(ListView.prototype.width):
(ListView.prototype.setWidth):
(ListView.prototype.height):
(ListView.prototype.setHeight):
(ListView.prototype.onClick): Clicking on a row selects it.
(ListView.prototype.select):
(ListView.prototype.deselect):
(ListView.prototype.scrollToRow): Scrolls to a given row.
2013-02-25 Alexei Filippov <alph@chromium.org>
Web Inspector: move profile type specific code out of ProfilesPanel (refactor)
https://bugs.webkit.org/show_bug.cgi?id=110597
Reviewed by Yury Semikhatsky.
Move profile type specific functionality out of ProfilesPanel class.
This is a first part of WebInspector.ProfilesPanel refactoring.
No new tests as the functionality isn't changed.
* English.lproj/localizedStrings.js:
* inspector/front-end/CPUProfileView.js:
(WebInspector.CPUProfileType):
(WebInspector.CPUProfileType.prototype.addProfileHeader):
(WebInspector.CPUProfileType.prototype.removeProfile):
(WebInspector.CPUProfileType.prototype._requestProfilesFromBackend):
(WebInspector.CPUProfileType.prototype.resetProfiles):
(WebInspector.CPUProfileType.prototype.addHeapSnapshotChunk):
(WebInspector.CPUProfileType.prototype.finishHeapSnapshot):
(WebInspector.CPUProfileType.prototype.reportHeapSnapshotProgress):
* inspector/front-end/CSSSelectorProfileView.js:
(WebInspector.CSSSelectorProfileType.prototype.buttonClicked):
(WebInspector.CSSSelectorProfileType.prototype._startRecordingProfile):
(WebInspector.CSSSelectorProfileType.prototype._stopRecordingProfile):
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileType.prototype.buttonClicked):
(WebInspector.CanvasProfileType.prototype._runSingleFrameCapturing):
(WebInspector.CanvasProfileType.prototype._startFrameCapturing):
(WebInspector.CanvasProfileType.prototype._didStartCapturingFrame):
(WebInspector.CanvasProfileType.prototype._reset):
(WebInspector.CanvasProfileType.prototype.removeProfile):
(WebInspector.CanvasProfileHeader.prototype.dispose):
* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapSnapshotView.prototype._profiles):
(WebInspector.HeapSnapshotProfileType):
(WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
(WebInspector.HeapSnapshotProfileType.prototype.addProfileHeader):
(WebInspector.HeapSnapshotProfileType.prototype.addHeapSnapshotChunk):
(WebInspector.HeapSnapshotProfileType.prototype.finishHeapSnapshot):
(WebInspector.HeapSnapshotProfileType.prototype.reportHeapSnapshotProgress):
(WebInspector.HeapSnapshotProfileType.prototype.resetProfiles):
(WebInspector.HeapSnapshotProfileType.prototype.removeProfile):
(WebInspector.HeapSnapshotProfileType.prototype._requestProfilesFromBackend):
(WebInspector.HeapProfileHeader.prototype._updateTransferProgress):
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeSnapshotProfileType):
(WebInspector.NativeSnapshotProfileType.prototype.addNativeSnapshotChunk):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfileType):
(WebInspector.ProfileType.prototype.buttonClicked):
(WebInspector.ProfileType.prototype.get description):
(WebInspector.ProfileType.prototype.getProfiles):
(WebInspector.ProfileType.prototype.getProfile):
(WebInspector.ProfileType.prototype._makeKey):
(WebInspector.ProfileType.prototype.addProfile):
(WebInspector.ProfileType.prototype.removeProfile):
(WebInspector.ProfileType.prototype.findTemporaryProfile):
(WebInspector.ProfileType.prototype._reset):
(WebInspector.ProfileType.prototype._requestProfilesFromBackend):
(WebInspector.ProfileHeader):
(WebInspector.ProfileHeader.prototype.dispose):
(WebInspector.ProfilesPanel):
(WebInspector.ProfilesPanel.prototype._loadFromFile):
(WebInspector.ProfilesPanel.prototype.toggleRecordButton):
(WebInspector.ProfilesPanel.prototype._populateAllProfiles):
(WebInspector.ProfilesPanel.prototype.wasShown):
(WebInspector.ProfilesPanel.prototype._profilerWasEnabled):
(WebInspector.ProfilesPanel.prototype._reset):
(WebInspector.ProfilesPanel.prototype._registerProfileType.onAddProfileHeader):
(WebInspector.ProfilesPanel.prototype._registerProfileType.onRemoveProfileHeader):
(WebInspector.ProfilesPanel.prototype._registerProfileType.onProgressUpdated):
(WebInspector.ProfilesPanel.prototype._registerProfileType):
(WebInspector.ProfilesPanel.prototype._addProfileHeader):
(WebInspector.ProfilesPanel.prototype._removeProfileHeader):
(WebInspector.ProfilesPanel.prototype._createTemporaryProfile):
(WebInspector.ProfilesPanel.prototype._removeTemporaryProfile):
(WebInspector.ProfilesPanel.prototype.getProfile):
(WebInspector.ProfilesPanel.prototype.showProfile):
(WebInspector.ProfilesPanel.prototype._getAllProfiles):
(WebInspector.ProfilesPanel.prototype._searchableViews):
(WebInspector.ProfilesPanel.prototype.searchCanceled):
(WebInspector.ProfilesPanel.prototype.setRecordingProfile):
(WebInspector.ProfilesPanel.prototype._reportProfileProgress):
2013-02-25 Ilya Tikhonovsky <loislo@chromium.org>
Unreviewed fix of type annotation for this._liveLocations.
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode):
2013-02-25 Kent Tamura <tkent@chromium.org>
Fix style errors in WebCore/editing/{htmlediting,markup,visible_units}.*
https://bugs.webkit.org/show_bug.cgi?id=110721
Reviewed by Ryosuke Niwa.
No new tests. This should not make any bahevior changes.
* editing/htmlediting.cpp:
(WebCore::lowestEditableAncestor):
(WebCore):
(WebCore::isSpecialElement):
(WebCore::enclosingListChild):
(WebCore::canMergeLists):
(WebCore::tabSpanNode):
(WebCore::isNodeRendered):
(WebCore::caretMaxOffset):
* editing/htmlediting.h:
(WebCore):
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::appendElement):
* editing/markup.h:
(WebCore):
* editing/visible_units.cpp:
(WebCore::previousRootInlineBoxCandidatePosition):
(WebCore::nextRootInlineBoxCandidatePosition):
(WebCore::wordBreakIteratorForMinOffsetBoundary):
(WebCore::previousBoundary):
(WebCore::endOfLine):
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
(WebCore::nextSentencePositionBoundary):
(WebCore::startOfParagraph):
(WebCore::endOfParagraph):
2013-02-24 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Improve speed of Linkifier.reset operation.
https://bugs.webkit.org/show_bug.cgi?id=110696
Reviewed by Yury Semikhatsky.
Linkifier calls Location.dispose N times and each dispose method calls Array.remove
which scans entire array and does splice. So the complexity of Linkifier.reset
is O(N^2). I replaced the arrays with Set and got O(N) complexity.
Drive by fix: The identifier generator was slightly changed.
Now it produces identifiers that couldn't be converted into a number.
So the engine will never convert Set/Map object into an array.
* inspector/front-end/Script.js:
(WebInspector.Script):
(WebInspector.Script.prototype.updateLocations):
(WebInspector.Script.prototype.createLiveLocation):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode):
(WebInspector.UISourceCode.prototype.addLiveLocation):
(WebInspector.UISourceCode.prototype.updateLiveLocations):
* inspector/front-end/utilities.js:
2013-02-24 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143797.
http://trac.webkit.org/changeset/143797
https://bugs.webkit.org/show_bug.cgi?id=110724
Causes assertion failures in multiple tests. (Requested by
vsevik on #webkit).
* dom/DocumentParser.h:
(DocumentParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
(WebCore::HTMLDocumentParser::shouldUseThreading):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):
2013-02-24 Hajime Morrita <morrita@google.com>
Rollout r143556, it regressed html5-full-render perf.
https://bugs.webkit.org/show_bug.cgi?id=110719
Unreviewed rollout.
* css/BasicShapeFunctions.cpp:
(WebCore::convertToLength):
(WebCore::basicShapeForValue):
* css/BasicShapeFunctions.h:
(WebCore):
* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::gradientWithStylesResolved):
* css/CSSGradientValue.h:
(CSSGradientValue):
* css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::style):
(WebCore::CSSToStyleMap::rootElementStyle):
(WebCore::CSSToStyleMap::useSVGZoomRules):
(WebCore::CSSToStyleMap::styleImage):
* css/CSSToStyleMap.h:
(WebCore):
(WebCore::CSSToStyleMap::CSSToStyleMap):
(CSSToStyleMap):
* css/SVGCSSStyleSelector.cpp:
(WebCore::StyleResolver::applySVGProperty):
* css/StyleBuilder.cpp:
(WebCore::ApplyPropertyExpanding::applyInheritValue):
(WebCore::ApplyPropertyExpanding::applyInitialValue):
(WebCore::ApplyPropertyExpanding::applyValue):
(WebCore::ApplyPropertyDefaultBase::applyInheritValue):
(WebCore::ApplyPropertyDefaultBase::applyInitialValue):
(WebCore::ApplyPropertyDefaultBase::applyValue):
(WebCore::ApplyPropertyDefault::applyValue):
(WebCore::ApplyPropertyNumber::applyValue):
(WebCore::ApplyPropertyStyleImage::applyValue):
(WebCore::ApplyPropertyAuto::applyInheritValue):
(WebCore::ApplyPropertyAuto::applyInitialValue):
(WebCore::ApplyPropertyAuto::applyValue):
(WebCore::ApplyPropertyClip::convertToLength):
(WebCore::ApplyPropertyClip::applyInheritValue):
(WebCore::ApplyPropertyClip::applyInitialValue):
(WebCore::ApplyPropertyClip::applyValue):
(WebCore::ApplyPropertyColor::applyInheritValue):
(WebCore::ApplyPropertyColor::applyInitialValue):
(WebCore::ApplyPropertyColor::applyValue):
(WebCore::ApplyPropertyColor::applyColorValue):
(WebCore::ApplyPropertyDirection::applyValue):
(WebCore::ApplyPropertyLength::applyValue):
(WebCore::ApplyPropertyString::applyValue):
(WebCore::ApplyPropertyBorderRadius::applyValue):
(WebCore::ApplyPropertyFillLayer::applyInheritValue):
(WebCore::ApplyPropertyFillLayer::applyInitialValue):
(WebCore::ApplyPropertyFillLayer::applyValue):
(WebCore::ApplyPropertyComputeLength::applyValue):
(WebCore::ApplyPropertyFont::applyInheritValue):
(WebCore::ApplyPropertyFont::applyInitialValue):
(WebCore::ApplyPropertyFont::applyValue):
(WebCore::ApplyPropertyFontSize::applyInheritValue):
(WebCore::ApplyPropertyFontSize::applyInitialValue):
(WebCore::ApplyPropertyFontSize::applyValue):
(WebCore::ApplyPropertyFontWeight::applyValue):
(WebCore::ApplyPropertyFontVariantLigatures::applyInheritValue):
(WebCore::ApplyPropertyFontVariantLigatures::applyInitialValue):
(WebCore::ApplyPropertyFontVariantLigatures::applyValue):
(WebCore::ApplyPropertyBorderImage::applyValue):
(WebCore::ApplyPropertyBorderImageModifier::applyInheritValue):
(WebCore::ApplyPropertyBorderImageModifier::applyInitialValue):
(WebCore::ApplyPropertyBorderImageModifier::applyValue):
(WebCore::ApplyPropertyBorderImageSource::applyValue):
(WebCore::ApplyPropertyCounter::emptyFunction):
(WebCore::ApplyPropertyCounter::applyInheritValue):
(WebCore::ApplyPropertyCounter::applyValue):
(WebCore::ApplyPropertyCursor::applyInheritValue):
(WebCore::ApplyPropertyCursor::applyInitialValue):
(WebCore::ApplyPropertyCursor::applyValue):
(WebCore::ApplyPropertyTextAlign::applyValue):
(WebCore::ApplyPropertyTextDecoration::applyValue):
(WebCore::ApplyPropertyLineHeight::applyValue):
(WebCore::ApplyPropertyPageSize::applyInheritValue):
(WebCore::ApplyPropertyPageSize::applyInitialValue):
(WebCore::ApplyPropertyPageSize::applyValue):
(WebCore::ApplyPropertyTextEmphasisStyle::applyInheritValue):
(WebCore::ApplyPropertyTextEmphasisStyle::applyInitialValue):
(WebCore::ApplyPropertyTextEmphasisStyle::applyValue):
(WebCore::ApplyPropertyAnimation::map):
(WebCore::ApplyPropertyAnimation::applyInheritValue):
(WebCore::ApplyPropertyAnimation::applyInitialValue):
(WebCore::ApplyPropertyAnimation::applyValue):
(WebCore::ApplyPropertyOutlineStyle::applyInheritValue):
(WebCore::ApplyPropertyOutlineStyle::applyInitialValue):
(WebCore::ApplyPropertyOutlineStyle::applyValue):
(WebCore::ApplyPropertyResize::applyValue):
(WebCore::ApplyPropertyVerticalAlign::applyValue):
(WebCore::ApplyPropertyAspectRatio::applyInheritValue):
(WebCore::ApplyPropertyAspectRatio::applyInitialValue):
(WebCore::ApplyPropertyAspectRatio::applyValue):
(WebCore::ApplyPropertyZoom::resetEffectiveZoom):
(WebCore::ApplyPropertyZoom::applyInheritValue):
(WebCore::ApplyPropertyZoom::applyInitialValue):
(WebCore::ApplyPropertyZoom::applyValue):
(WebCore::ApplyPropertyDisplay::isValidDisplayValue):
(WebCore::ApplyPropertyDisplay::applyInheritValue):
(WebCore::ApplyPropertyDisplay::applyInitialValue):
(WebCore::ApplyPropertyDisplay::applyValue):
(WebCore::ApplyPropertyClipPath::applyValue):
(WebCore::ApplyPropertyExclusionShape::applyValue):
(WebCore::ApplyPropertyImageResolution::applyInheritValue):
(WebCore::ApplyPropertyImageResolution::applyInitialValue):
(WebCore::ApplyPropertyImageResolution::applyValue):
* css/StyleBuilder.h:
(WebCore):
(PropertyHandler):
(WebCore::PropertyHandler::applyInheritValue):
(WebCore::PropertyHandler::applyInitialValue):
(WebCore::PropertyHandler::applyValue):
* css/StyleResolver.cpp:
(WebCore):
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::collectMatchingRules):
(WebCore::StyleResolver::collectMatchingRulesForRegion):
(WebCore::StyleResolver::sortAndTransferMatchedRules):
(WebCore::StyleResolver::matchScopedAuthorRules):
(WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
(WebCore::StyleResolver::matchHostRules):
(WebCore::StyleResolver::matchAuthorRules):
(WebCore::StyleResolver::matchUserRules):
(WebCore::StyleResolver::matchUARules):
(WebCore::StyleResolver::collectMatchingRulesForList):
(WebCore::StyleResolver::sortMatchedRules):
(WebCore::StyleResolver::matchAllRules):
(WebCore::StyleResolver::initElement):
(WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
(WebCore::StyleResolver::canShareStyleWithControl):
(WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
(WebCore::StyleResolver::canShareStyleWithElement):
(WebCore::StyleResolver::findSiblingForStyleSharing):
(WebCore::StyleResolver::locateSharedStyle):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::keyframeStylesForAnimation):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::defaultStyleForElement):
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::updateFont):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::ruleMatches):
(WebCore::StyleResolver::checkRegionSelector):
(WebCore::StyleResolver::applyProperties):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::isLeftPage):
(WebCore::StyleResolver::applyPropertyToStyle):
(WebCore::StyleResolver::applyPropertyToCurrentStyle):
(WebCore::StyleResolver::useSVGZoomRules):
(WebCore::StyleResolver::resolveVariables):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::styleImage):
(WebCore::StyleResolver::cachedOrPendingFromValue):
(WebCore::StyleResolver::generatedOrPendingFromValue):
(WebCore::StyleResolver::setOrPendingFromValue):
(WebCore::StyleResolver::cursorOrPendingFromValue):
(WebCore::StyleResolver::checkForTextSizeAdjust):
(WebCore::StyleResolver::checkForZoomChange):
(WebCore::StyleResolver::checkForGenericFamilyChange):
(WebCore::StyleResolver::initializeFontStyle):
(WebCore::StyleResolver::setFontSize):
(WebCore::StyleResolver::colorFromPrimitiveValue):
(WebCore::StyleResolver::loadPendingSVGDocuments):
(WebCore::StyleResolver::styleShader):
(WebCore::StyleResolver::cachedOrPendingStyleShaderFromValue):
(WebCore::StyleResolver::loadPendingShaders):
(WebCore::StyleResolver::parseCustomFilterTransformParameter):
(WebCore::StyleResolver::parseCustomFilterParameter):
(WebCore::StyleResolver::parseCustomFilterParameterList):
(WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
(WebCore::StyleResolver::createCustomFilterOperation):
(WebCore::StyleResolver::createFilterOperations):
(WebCore::StyleResolver::loadPendingImage):
(WebCore::StyleResolver::loadPendingImages):
(WebCore::StyleResolver::loadPendingResources):
(WebCore::StyleResolver::reportMemoryUsage):
* css/StyleResolver.h:
(WebCore::StyleResolver::style):
(WebCore::StyleResolver::parentStyle):
(WebCore::StyleResolver::rootElementStyle):
(WebCore::StyleResolver::element):
(WebCore::StyleResolver::hasParentNode):
(StyleResolver):
(WebCore::StyleResolver::isRightPage):
(WebCore::StyleResolver::State::State):
(WebCore::StyleResolver::State::document):
(State):
(WebCore::StyleResolver::applyPropertyToRegularStyle):
(WebCore::StyleResolver::applyPropertyToVisitedLinkStyle):
(WebCore::StyleResolver::styleMap):
(WebCore::StyleResolver::fontDescription):
(WebCore::StyleResolver::parentFontDescription):
(WebCore::StyleResolver::setFontDescription):
(WebCore::StyleResolver::setZoom):
(WebCore::StyleResolver::setEffectiveZoom):
(WebCore::StyleResolver::setTextSizeAdjust):
(WebCore::StyleResolver::setWritingMode):
(WebCore::StyleResolver::setTextOrientation):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setFont):
2013-02-24 Eric Carlson <eric.carlson@apple.com>
[Mac] cleanup MediaPlayerPrivateAVFoundation and InbandTextTrackPrivateAVF
https://bugs.webkit.org/show_bug.cgi?id=110716
Reviewed by Alexey Proskuryakov.
No new tests, no functionality changed.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF): Take AVFInbandTrackParent*
instead of MediaPlayerPrivateAVFoundation*.
(WebCore::InbandTextTrackPrivateAVF::processCue): Pass new cues directly to the client.
(WebCore::InbandTextTrackPrivateAVF::disconnect): m_player -> m_owner.
(WebCore::InbandTextTrackPrivateAVF::setMode): m_player -> m_owner.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::addGenericCue): Delete, no longer needed.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: Don't include
CachedResourceClient.h, it isn't needed.
2013-02-24 Kihong Kwon <kihong.kwon@samsung.com>
Add an ASSERT to didChangeDeviceProximity
https://bugs.webkit.org/show_bug.cgi?id=110317
Reviewed by Hajime Morrita.
Add An ASSERT to didChangeDeviceProximity function to check range of value.
Change exist test cases.
* Modules/proximity/DeviceProximityController.cpp:
(WebCore::DeviceProximityController::didChangeDeviceProximity):
2013-02-24 Alexey Proskuryakov <ap@apple.com>
Clarify meaning of default default encoding localizable string
https://bugs.webkit.org/show_bug.cgi?id=110714
Reviewed by Eric Carlson.
* English.lproj/Localizable.strings: This string is only used on Windows, and it's
very confusing to everyone involved.
2013-02-24 Mike West <mkwst@chromium.org>
CSP 1.1: Experiment with 'reflected-xss' directive.
https://bugs.webkit.org/show_bug.cgi?id=104479
Reviewed by Adam Barth.
Content Security Policy 1.1 defines a 'reflected-xss' directive that
works in much the same way as WebKit's current 'X-XSS-Protection'
header[1]. This patch implements the new directive by parsing it
inside ContentSecurityPolicy, and exposing that state to XSSAuditor.
XSSAuditor now grabs the CSP directive's state, and mixes it with the
X-XSS-Protection header's state to determine how the page should be
handled. Moreover, both headers' states are now expressed in terms of
ContentSecurityPolicy::ReflectedXSSDisposition.
[1]: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#reflected-xss--experimental
Tests: http/tests/security/contentSecurityPolicy/1.1/reflected-xss-allow.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-allow.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-block.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-filter.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-invalid.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-unset.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-allow.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-block.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-filter.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-invalid.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-unset.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-allow.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-block.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-filter.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-invalid.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-unset.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-allow.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-block.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-filter.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-invalid.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-unset.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-allow.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-block.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-filter.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-invalid.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-unset.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-block.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-empty.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-filter.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-invalid.html
http/tests/security/contentSecurityPolicy/1.1/reflected-xss-parsing.html
* html/parser/XSSAuditor.cpp:
(WebCore::combineXSSProtectionHeaderAndCSP):
Given both headers' states, return the state which the XSSAuditor
should use when parsing a page. Blocking overrides filtering, which
overrides disabling.
(WebCore):
(WebCore::XSSAuditor::init):
Process the 'X-XSS-Protection' header before grabbing the CSP
header's state. Both are passed into the new
combineXSSProtectionHeaderAndCSP method to generate the final
state that ought to be used.
(WebCore::XSSAuditor::XSSAuditor):
(WebCore::XSSAuditor::filterToken):
* html/parser/XSSAuditor.h:
Switch to ContentSecurityPolicy::ReflectedXSSDisposition internally
in XSSAuditor.
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPDirectiveList::reflectedXSSDisposition):
Enum defining the possible state of the 'reflected-xss' CSP directive.
(CSPDirectiveList):
(WebCore::CSPDirectiveList::CSPDirectiveList):
(WebCore::CSPDirectiveList::parseReflectedXSS):
Given a 'reflected-xss' directive's value, set the
ReflectedXSSDisposition into a new property on the CSPDirectiveList.
(WebCore):
(WebCore::CSPDirectiveList::addDirective):
Accept 'reflected-xss' as a valid directive if we're in
experimental mode.
(WebCore::ContentSecurityPolicy::reflectedXSSDisposition):
Expose the directive's state via the public API.
(WebCore::ContentSecurityPolicy::reportInvalidReflectedXSS):
Generate console errors when invalid reflected-xss directive values
are encounted during parsing.
* page/ContentSecurityPolicy.h:
* platform/network/HTTPParsers.cpp:
(WebCore::parseXSSProtectionHeader):
* platform/network/HTTPParsers.h:
(WebCore):
Start using ContentSecurityPolicy::ReflectedXSSDisposition rather
than the XSSProtectionDisposition enum.
2013-02-24 Zan Dobersek <zdobersek@igalia.com>
Updating GObject bindings baselines after r143863.
Unreviewed.
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
2013-02-24 Zan Dobersek <zdobersek@igalia.com>
[GTK] Stop generating UserAgentGtk.h
https://bugs.webkit.org/show_bug.cgi?id=110582
Reviewed by Martin Robinson.
No new tests - no new functionality.
* GNUmakefile.list.am: Move the UserAgentGtk.h build target from the derived sources list to
the list of the WebCore platform sources.
* platform/gtk/UserAgentGtk.cpp:
(WebCore::standardUserAgent): Rename WEBKIT_USER_AGENT_(MAJOR|MINOR)_VERSION to
USER_AGENT_GTK_(MAJOR|MINOR)_VERSION.
* platform/gtk/UserAgentGtk.h: Renamed from Source/WebCore/platform/gtk/UserAgentGtk.h.in.
Same as the input file expect for removed WEBKIT_USER_AGENT_(MAJOR|MINOR)_VERSION defines that
are now replaced by using the USER_AGENT_GTK_(MAJOR|MINOR)_VERSION defines placed in autotoolsconfig.h.
2013-02-24 Gustavo Noronha Silva <gns@gnome.org>
[GTK] GTK+ 2 build broken since GTK_API_VERSION_2 moved to autoconfig.h
https://bugs.webkit.org/show_bug.cgi?id=110702
Reviewed by Martin Robinson.
No tests. Build fix, no behaviour change.
* platform/gtk/GtkVersioning.h: include the autotoolsconfig.h header,
which contains the GTK_API_VERSION_2 define now.
2013-02-24 Andreas Kling <akling@apple.com>
StyledElement: Don't expose a mutable direct interface to the inline style.
<http://webkit.org/b/110711>
Reviewed by Antti Koivisto.
Remove the ability to grab at a mutable StylePropertySet* for a StyledElement's inline style
from the outside world. It's now private and returns MutableStylePropertySet* for future convenience.
Three paths to changing the inline style remain:
- Setting the "style" attribute
- Via CSSOM (element.style)
- setInlineStyleProperty/removeInlineStyleProperty helpers
* dom/StyledElement.cpp:
(WebCore::StyledElement::ensureMutableInlineStyle):
* dom/StyledElement.h:
(StyledElement):
* editing/ApplyStyleCommand.cpp:
(WebCore::copyStyleOrCreateEmpty):
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
(WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::handleStyleSpans):
* html/canvas/CanvasStyle.cpp:
(WebCore::currentColor):
2013-02-24 Keishi Hattori <keishi@webkit.org>
Add methods to date types for new calendar picker
https://bugs.webkit.org/show_bug.cgi?id=110454
Reviewed by Kent Tamura.
Adding some methods to date types as part of the calendar picker redesign (Bug 109439).
Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-date-types.html
* Resources/pagepopups/calendarPicker.js:
(createUTCDate):
(DateType): Base class for Day, Week and Month.
(Day): Simplified constructor to only accept year, month, date.
(Day.createFromValue): Creates a new Day from a value.
(Day.createFromDate): Throw an error if the given date is invalid.
(Day.createFromDay):
(Day.prototype.equals): Accept non Day objects.
(Day.prototype.previous): Modified to take an offset value.
(Day.prototype.next): Ditto.
(Day.prototype.firstDay): Returns the first day in the range. For Day's case, returns itself.
(Day.prototype.middleDay): Returns the middle day in the range. For Day's case, returns itself.
(Day.prototype.lastDay): Returns the middle day in the range. For Day's case, returns itself.
(Day.prototype.valueOf):
(Day.prototype.weekDay): Returns the week day.
(Week): Simplified constructor to only accept year, month, date.
(Week.createFromValue):
(Week.createFromDate):
(Week.createFromDay):
(Week.weekOneStartDateForYear):
(Week.weekOneStartDayForYear):
(Week._numberOfWeeksSinceDate):
(Week.prototype.equals):
(Week.prototype.previous):
(Week.prototype.next):
(Week.prototype.firstDay): Returns the first day in the week.
(Week.prototype.middleDay): Returns the the day for Thursday.
(Week.prototype.lastDay): Returns the last day in the week.
(Week.prototype.valueOf):
(Month):
(Month.createFromValue):
(Month.createFromDate):
(Month.createFromDay):
(Month.prototype.containsDay):
(Month.prototype.equals):
(Month.prototype.previous):
(Month.prototype.next):
(Month.prototype.firstDay): Returns the first day in the month.
(Month.prototype.middleDay): Returns the middle day in the month.
(Month.prototype.lastDay): Returns the last day in the month.
(Month.prototype.valueOf):
(Month.prototype.toLocaleString): Moved location.
(Month.prototype.toShortLocaleString): Returns the month string in short format.
(CalendarPicker): Use createFromValue.
(YearMonthController.prototype.setMonth): Ditto.
(YearMonthController.prototype.moveRelatively): Ditto.
2013-02-24 Hajime Morrita <morrita@google.com>
[Custom Elements] Implement bare-bone document.register()
https://bugs.webkit.org/show_bug.cgi?id=100229
Reviewed by Adam Barth.
This change implements a prefixed version of document.register(), with minimal feature support.
- The feature is guarded by ENABLE(CUSTOM_ELEMENTS) and RuntimeEnabledFeatures::customDOMElementsEnabled().
- This bare-bone version only recognizes "name" and "prototype" parameters. It doesn't support default value of "prototype" parameter.
- Currently only V8 is supported. JSC binding needs its own binding implementation.
= Major new classes under dom/:
The dom module gets two new classes:
- CustomElementConstructor: A return value of document.register()
which holds the custom element definition.
- CustomElementRegistry: A collection of CustomElementConstructor objects.
CustomElementRegistry instance is created per Document and is owned by the Document.
CustomElementConstructor knows the definition of each custom
element, which is registered by document.register(). The name and
other options are held by this object. CustomElementRegistry owns a set
of the registered constructors. The registry guarantees invariants
like validity and uniqueness of the element names.
= A change on make_names.pl
This change tweaks make_names.pl (or generated HTMLElementFactory)
to hook the creations of unknown elements. Some of element names
which come to the fallback path can be one of registered custom
element.
= [V8WrapAsFunction] extended attribute:
The document.register() API returns a constructor
function. However, the V8 binding currently doesn't support it. To
make it possible, this change introduces "V8WrapAsFunction"
extended attribute for annotating CustomElementConstructor IDL
interface.
V8WrapAsFunction wraps the annotated interface with a JavaScript
function, which calls the original object as a function, or as a
constructor depends on the context.
With this wrapper function, there are two levels of indirection
between native C++ object and author-visible JS function:
[JS Adaptor Function] <-(hidden property)-> [JS Wrapper Object] -(internal field)-> [C++ Native object]
The code generator generates the binding code which deals with
this indirection. Also, there is a set of helper functions in
V8AdaptorFunction.h/cpp which takes care of this indirection.
V8DOMWrapper.cpp/h works as a facade for these APIs and is used from
the generated code.
This redundancy comes from limitations of both V8 bindings and V8
embedding API. See bug 108138 for details.
= V8HTMLCustomElement
Unlike built-in HTML elements, any custom element has no
corresponding C++ class. Instead, document.register() should allow
passing a prototype object for the elements being registered.
V8HTMLCustomElement handles this lack of native class. It behaves
like a native side proxy of non-native HTMLElement subclasses. It
connects each custom element to an appropriate native element,
which is HTMLElement at this time. This restriction will be
relaxed later. See Bug 110436 for details.
= Custom DOM elements and multiple worlds
In this patch, custom element registration and instantiation is not allowed
in non-main world and document.register() API just fails there.
Reviewed by Adam Barth.
Tests: fast/dom/custom/document-register-basic.html
fast/dom/custom/document-register-reentrant-null-constructor.html
fast/dom/custom/document-register-reentrant-returning-fake.html
fast/dom/custom/document-register-reentrant-throwing-constructor.html
* DerivedSources.make:
* WebCore.gypi:
* bindings/generic/RuntimeEnabledFeatures.cpp:
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures):
(WebCore::RuntimeEnabledFeatures::customDOMElementsEnabled):
(WebCore::RuntimeEnabledFeatures::setCustomDOMElements):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* bindings/scripts/IDLAttributes.txt:
* bindings/v8/CustomElementHelpers.cpp: Added.
(WebCore::CustomElementHelpers::initializeConstructorWrapper):
(WebCore::hasNoBuiltinsInPrototype):
(WebCore::CustomElementHelpers::isValidPrototypeParameter):
(WebCore::CustomElementHelpers::isFeatureAllowed):
* bindings/v8/CustomElementHelpers.h: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
(CustomElementHelpers):
* bindings/v8/V8AdaptorFunction.cpp: Added.
(WebCore::V8AdaptorFunction::getTemplate):
(WebCore::V8AdaptorFunction::configureTemplate):
(WebCore::V8AdaptorFunction::invocationCallback):
(WebCore::V8AdaptorFunction::wrap):
* bindings/v8/V8AdaptorFunction.h: Added.
(V8AdaptorFunction):
(WebCore::V8AdaptorFunction::unwrap):
(WebCore::V8AdaptorFunction::get):
* bindings/v8/V8DOMConfiguration.cpp:
(WebCore::V8DOMConfiguration::configureTemplate):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::toFunction):
(WebCore::V8DOMWrapper::fromFunction):
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
* bindings/v8/V8HTMLCustomElement.cpp: Added.
(WebCore::V8HTMLCustomElement::createWrapper):
* bindings/v8/V8HTMLCustomElement.h: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
(V8HTMLCustomElement):
(WebCore::V8HTMLCustomElement::toV8):
(WebCore::HTMLCustomElement::toV8):
* bindings/v8/V8HiddenPropertyName.h:
* bindings/v8/custom/V8CustomElementConstructorCustom.cpp: Added.
(WebCore::V8CustomElementConstructor::callAsFunctionCallback):
* dom/CustomElementConstructor.cpp: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
(WebCore::CustomElementConstructor::create):
(WebCore::CustomElementConstructor::CustomElementConstructor):
(WebCore::CustomElementConstructor::~CustomElementConstructor):
(WebCore::CustomElementConstructor::createElement):
* dom/CustomElementConstructor.h: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
(CustomElementConstructor):
(WebCore::CustomElementConstructor::document):
(WebCore::CustomElementConstructor::tagName):
(WebCore::CustomElementConstructor::name):
* dom/CustomElementConstructor.idl: Added.
* dom/CustomElementRegistry.cpp: Added.
(WebCore::CustomElementRegistry::CustomElementRegistry):
(WebCore::CustomElementRegistry::~CustomElementRegistry):
(WebCore::CustomElementRegistry::constructorOf):
(WebCore::CustomElementRegistry::isValidName):
(WebCore::CustomElementRegistry::registerElement):
(WebCore::CustomElementRegistry::find):
(WebCore::CustomElementRegistry::createElement):
(WebCore::CustomElementRegistry::document):
* dom/CustomElementRegistry.h: Added.
(CustomElementRegistry):
* dom/Document.cpp:
(WebCore::Document::removedLastRef):
(WebCore::Document::registerElement):
(WebCore::Document::registry):
* dom/Document.h:
(Document):
* dom/make_names.pl:
(printWrapperFactoryCppFile):
* html/HTMLDocument.idl:
2013-02-24 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Timeline] Shrink CPU bars to make it easier to see frame information popup.
https://bugs.webkit.org/show_bug.cgi?id=110561
Reviewed by Pavel Feldman.
Area that causes frame information popup is overly "shaded" by CPU bars.
* inspector/front-end/timelinePanel.css:
(.timeline-cpu-bars .timeline-graph-bar): Reduce height and opacity.
2013-02-24 Andreas Kling <akling@apple.com>
Reduce include graph of JSDOMBinding.h
<http://webkit.org/b/110709>
Reviewed by Antti Koivisto.
Move WebCore::root(Foo*) to the custom JSFooCustom.h headers.
This reduces the number of headers pulled in by JSDOMBinding.h.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCSSRuleCustom.cpp:
* bindings/js/JSCSSRuleCustom.h: Added.
(WebCore::root):
* bindings/js/JSCSSRuleListCustom.cpp:
* bindings/js/JSCSSStyleDeclarationCustom.h:
(WebCore::root):
* bindings/js/JSDOMBinding.h:
* bindings/js/JSMediaListCustom.h: Added.
(WebCore::root):
* bindings/js/JSMutationObserverCustom.cpp:
* bindings/js/JSNodeCustom.h:
(WebCore::root):
* bindings/js/JSSVGElementInstanceCustom.cpp:
* bindings/js/JSStyleSheetCustom.h: Added.
(WebCore::root):
* bindings/js/JSTextTrackCustom.h:
* bindings/js/JSTextTrackListCustom.cpp:
* bindings/js/JSXPathResultCustom.cpp:
* bindings/js/SerializedScriptValue.cpp:
* bindings/scripts/CodeGeneratorGObject.pm:
(Generate):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/CodeGeneratorObjC.pm:
(AddIncludesForType):
* css/CSSRule.idl:
* css/CSSStyleDeclaration.idl:
* css/MediaList.idl:
* css/StyleSheet.idl:
* editing/mac/EditorMac.mm:
2013-02-23 Alexey Proskuryakov <ap@apple.com>
ResourceRequestBase unnecessarily updates when nothing changes
https://bugs.webkit.org/show_bug.cgi?id=110665
Reviewed by Dan Bernstein.
Don't mark platform data for update if nothing really changed. This avoids ever doing
doUpdatePlatformRequest() in NetworkProcess during normal browsing for me, which is
good for performance.
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::removeCredentials):
(WebCore::ResourceRequestBase::setCachePolicy):
(WebCore::ResourceRequestBase::setTimeoutInterval):
(WebCore::ResourceRequestBase::setFirstPartyForCookies):
(WebCore::ResourceRequestBase::setHTTPMethod):
(WebCore::ResourceRequestBase::clearHTTPAuthorization):
(WebCore::ResourceRequestBase::setAllowCookies):
(WebCore::ResourceRequestBase::setPriority):
2013-02-23 Philip Rogers <pdr@google.com>
Prevent crash in animated transform lists
https://bugs.webkit.org/show_bug.cgi?id=110704
Reviewed by Abhishek Arya.
This change prevents accessing values off the end of toAtEndOfDuration by adding a check
for this case. Similar checks were added in r116458 but the author failed to catch this
case. WK110706 has been filed to handle this case in general.
This change also makes a trivial change that marks effectiveFrom as const.
Test: svg/animations/animateTransform-list-crash.html
* svg/SVGAnimatedTransformList.cpp:
(WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):
2013-02-23 Dimitri Glazkov <dglazkov@chromium.org>
SelectorChecker should not know about SelectorCheckerFastPath.
https://bugs.webkit.org/show_bug.cgi?id=110663
Both SelectorChecker and it's speedy cousin unfortunately include each other.
Luckily, the particular way in which SelectorQuery uses SelectorChecker yields
to a fairly simple decoupling. Now only the cousin knows of SelectorChecker.
Reviewed by Antti Koivisto.
No new functionality, covered by existing tests.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matches): Removed.
* css/SelectorChecker.h:
(SelectorChecker): Updated the decls to remove fast-path flag.
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::selectorMatches): Added a helper just for SelectorQuery.
(WebCore::SelectorDataList::matches): Changed the callsite to use new helper.
(WebCore::SelectorDataList::execute): Ditto.
* dom/SelectorQuery.h:
(SelectorDataList): Updated decls.
2013-02-23 Eric Carlson <eric.carlson@apple.com>
[Mac] user preference caption style applied incorrectly
https://bugs.webkit.org/show_bug.cgi?id=110707
<rdar://problem/13281096>
Reviewed by Maciej Stachowiak.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::textTrackContainerElementShadowPseudoId): New
static function so the pseudo ID is available.
(WebCore::MediaControlTextTrackContainerElement::shadowPseudoId): Call textTrackContainerElementShadowPseudoId.
* html/shadow/MediaControlElements.h:
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Style the text track container
element for cue color, edge style, and font name.
2013-02-22 Kentaro Hara <haraken@chromium.org>
[V8] Generate xxxAttrGetterCallback()
https://bugs.webkit.org/show_bug.cgi?id=110676
Reviewed by Adam Barth.
This is one of steps to insert TRACE_EVENT_STATE() macros
into DOM bindings. This patch introduces an indirection
function for xxxAttrGetter(), like this:
// For non-custom getters
Handle<Value> xxxAttrGetterCallback(...) {
return xxxAttrGetter(...);
}
// For custom getters.
Handle<Value> xxxAttrGetterCallback(...) {
return xxxAttrGetterCustom(...);
}
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateDomainSafeFunctionGetter):
(GenerateNormalAttrGetterCallback):
(GenerateNormalAttrGetter):
(GenerateSingleBatchedAttribute):
(GenerateNonStandardFunction):
(GenerateImplementation):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::excitingAttrAttrGetterCallback):
(TestActiveDOMObjectV8Internal):
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetterCallback):
(WebCore):
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::TestEventConstructorV8Internal::attr1AttrGetterCallback):
(TestEventConstructorV8Internal):
(WebCore::TestEventConstructorV8Internal::attr2AttrGetterCallback):
(WebCore):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::TestExceptionV8Internal::nameAttrGetterCallback):
(TestExceptionV8Internal):
(WebCore):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalStaticReadOnlyAttrAttrGetterCallback):
(TestInterfaceV8Internal):
(WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetterCallback):
(WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetterCallback):
(WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetterCallback):
(WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetterCallback):
(WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetterCallback):
(WebCore):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::readOnlyLongAttrAttrGetterCallback):
(TestObjV8Internal):
(WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::staticReadOnlyLongAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::staticStringAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::enumAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::shortAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::unsignedShortAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::longAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::longLongAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::unsignedLongLongAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::stringAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::testObjAttrAttrGetter):
(WebCore::TestObjV8Internal::testObjAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::XMLObjAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::createAttrGetterCallback):
(WebCore::TestObjV8Internal::reflectedStringAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::reflectedIntegralAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::reflectedBooleanAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::reflectedURLAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::typedArrayAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::attrWithGetterExceptionAttrGetterCallback):
(WebCore::TestObjV8Internal::attrWithSetterExceptionAttrGetterCallback):
(WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetterCallback):
(WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetterCallback):
(WebCore::TestObjV8Internal::customAttrAttrGetterCallback):
(WebCore::TestObjV8Internal::withScriptStateAttributeAttrGetterCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetterCallback):
(WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetterCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetterCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetterCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetterCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetterCallback):
(WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetterCallback):
(WebCore::TestObjV8Internal::conditionalAttr1AttrGetterCallback):
(WebCore::TestObjV8Internal::conditionalAttr2AttrGetterCallback):
(WebCore::TestObjV8Internal::conditionalAttr3AttrGetterCallback):
(WebCore::TestObjV8Internal::cachedAttribute1AttrGetterCallback):
(WebCore::TestObjV8Internal::cachedAttribute2AttrGetterCallback):
(WebCore::TestObjV8Internal::anyAttributeAttrGetterCallback):
(WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrGetterCallback):
(WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrGetterCallback):
(WebCore::TestObjV8Internal::enabledPerContextAttr1AttrGetterCallback):
(WebCore::TestObjV8Internal::enabledPerContextAttr2AttrGetterCallback):
(WebCore::TestObjV8Internal::floatArrayAttrGetterCallback):
(WebCore::TestObjV8Internal::doubleArrayAttrGetterCallback):
(WebCore::TestObjV8Internal::contentDocumentAttrGetterCallback):
(WebCore::TestObjV8Internal::mutablePointAttrGetterCallback):
(WebCore::TestObjV8Internal::immutablePointAttrGetterCallback):
(WebCore::TestObjV8Internal::strawberryAttrGetterCallback):
(WebCore::TestObjV8Internal::strictFloatAttrGetterCallback):
(WebCore::TestObjV8Internal::descriptionAttrGetterCallback):
(WebCore::TestObjV8Internal::idAttrGetterCallback):
(WebCore::TestObjV8Internal::hashAttrGetterCallback):
(WebCore::TestObjV8Internal::replaceableAttributeAttrGetterCallback):
(WebCore):
(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::installPerContextProperties):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetterCallback):
(TestSerializedScriptValueInterfaceV8Internal):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetterCallback):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetterCallback):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::portsAttrGetterCallback):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetterCallback):
(WebCore):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrGetterCallback):
(TestTypedefsV8Internal):
(WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrGetterCallback):
(WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrGetterCallback):
(WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrGetterCallback):
(WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrGetterCallback):
(WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrGetterCallback):
(WebCore):
2013-02-23 Kentaro Hara <haraken@chromium.org>
WebCore fails to link in Chromium official build
https://bugs.webkit.org/show_bug.cgi?id=110701
Reviewed by Abhishek Arya.
This is a follow-up fix for r143853. In WebCore.gyp, we need to
increase the shard of 'webcore_rendering' as well.
No tests. No change in behavior.
* WebCore.gyp/WebCore.gyp:
2013-02-23 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r143844.
http://trac.webkit.org/changeset/143844
https://bugs.webkit.org/show_bug.cgi?id=110241
It broke Chromium Mac Release Build
* WebCore.gyp/WebCore.gyp:
* WebCore.gyp/WebCoreGTK.gyp: Removed.
* WebCore.gypi:
2013-02-23 Adam Barth <abarth@webkit.org>
WebCore fails to link in Chromium official build
https://bugs.webkit.org/show_bug.cgi?id=110697
Reviewed by Eric Seidel.
Apparently we need to use more shards to work around linker limitations
on Windows again.
* WebCore.gyp/WebCore.gyp:
2013-02-23 Kentaro Hara <haraken@chromium.org>
[V8] Rename constructorCallbackCustom() to constructorCustom()
https://bugs.webkit.org/show_bug.cgi?id=110671
Reviewed by Adam Barth.
his is one of steps to insert TRACE_EVENT_STATE() macros
into DOM bindings.
See https://bugs.webkit.org/show_bug.cgi?id=110667#c0
In the new world, "Callback" is used to indicate that it
is a function called back by V8. Currently "Callback" is
used for both V8 callbacks, DOM methods and DOM constructors.
This patch fixes the inconsistency.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateCustomConstructorCallback):
* bindings/v8/custom/V8ArrayBufferCustom.cpp:
(WebCore::V8ArrayBuffer::constructorCustom):
* bindings/v8/custom/V8AudioContextCustom.cpp:
(WebCore::V8AudioContext::constructorCustom):
* bindings/v8/custom/V8BlobCustom.cpp:
(WebCore::V8Blob::constructorCustom):
* bindings/v8/custom/V8DOMFormDataCustom.cpp:
(WebCore::V8DOMFormData::constructorCustom):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::V8DataView::constructorCustom):
* bindings/v8/custom/V8MessageChannelCustom.cpp:
(WebCore::V8MessageChannel::constructorCustom):
* bindings/v8/custom/V8MutationObserverCustom.cpp:
(WebCore::V8MutationObserver::constructorCustom):
* bindings/v8/custom/V8WebKitPointCustom.cpp:
(WebCore::V8WebKitPoint::constructorCustom):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::V8XMLHttpRequest::constructorCustom):
2013-02-23 Kentaro Hara <haraken@chromium.org>
[V8] Rename xxxCallback() to xxxMethod(), and xxxCallbackCustom() to xxxMethodCustom()
https://bugs.webkit.org/show_bug.cgi?id=110669
Reviewed by Adam Barth.
This is one of steps to insert TRACE_EVENT_STATE()
macros into DOM bindings.
See https://bugs.webkit.org/show_bug.cgi?id=110667#c0
In the new world, "Callback" is used to refer that it
is a function called back by V8. Currently "Callback" is
used for both V8 callbacks, DOM methods and DOM constructors.
This patch fixes the inconsistency.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateDomainSafeFunctionGetter):
(GenerateOverloadedFunctionCallback):
(GenerateFunctionCallback):
(GenerateNonStandardFunction):
(GenerateImplementation):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::Float64ArrayV8Internal::fooMethod):
(WebCore::Float64ArrayV8Internal::setMethod):
(WebCore):
(WebCore::ConfigureV8Float64ArrayTemplate):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::excitingFunctionMethod):
(WebCore::TestActiveDOMObjectV8Internal::postMessageMethod):
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::TestCustomNamedGetterV8Internal::anotherFunctionMethod):
(WebCore):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::TestEventTargetV8Internal::itemMethod):
(WebCore::TestEventTargetV8Internal::addEventListenerMethod):
(WebCore::TestEventTargetV8Internal::removeEventListenerMethod):
(WebCore::TestEventTargetV8Internal::dispatchEventMethod):
(WebCore):
(WebCore::ConfigureV8TestEventTargetTemplate):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalMethod1Method):
(WebCore::TestInterfaceV8Internal::supplementalMethod2Method):
(WebCore::TestInterfaceV8Internal::supplementalMethod3Method):
(WebCore::TestInterfaceV8Internal::supplementalMethod4Method):
(WebCore):
(WebCore::ConfigureV8TestInterfaceTemplate):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::TestMediaQueryListListenerV8Internal::methodMethod):
(WebCore):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::voidMethodMethod):
(WebCore::TestObjV8Internal::voidMethodWithArgsMethod):
(WebCore::TestObjV8Internal::longMethodMethod):
(WebCore::TestObjV8Internal::longMethodWithArgsMethod):
(WebCore::TestObjV8Internal::objMethodMethod):
(WebCore::TestObjV8Internal::objMethodWithArgsMethod):
(WebCore::TestObjV8Internal::methodWithSequenceArgMethod):
(WebCore::TestObjV8Internal::methodReturningSequenceMethod):
(WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsMethod):
(WebCore::TestObjV8Internal::serializedValueMethod):
(WebCore::TestObjV8Internal::optionsObjectMethod):
(WebCore::TestObjV8Internal::methodWithExceptionMethod):
(WebCore::TestObjV8Internal::customMethodMethod):
(WebCore::TestObjV8Internal::customMethodWithArgsMethod):
(WebCore::TestObjV8Internal::addEventListenerMethod):
(WebCore::TestObjV8Internal::removeEventListenerMethod):
(WebCore::TestObjV8Internal::withScriptStateVoidMethod):
(WebCore::TestObjV8Internal::withScriptStateObjMethod):
(WebCore::TestObjV8Internal::withScriptStateVoidExceptionMethod):
(WebCore::TestObjV8Internal::withScriptStateObjExceptionMethod):
(WebCore::TestObjV8Internal::withScriptExecutionContextMethod):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateMethod):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionMethod):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesMethod):
(WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackMethod):
(WebCore::TestObjV8Internal::methodWithOptionalArgMethod):
(WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgMethod):
(WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsMethod):
(WebCore::TestObjV8Internal::methodWithOptionalStringMethod):
(WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedMethod):
(WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringMethod):
(WebCore::TestObjV8Internal::methodWithCallbackArgMethod):
(WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgMethod):
(WebCore::TestObjV8Internal::methodWithCallbackAndOptionalArgMethod):
(WebCore::TestObjV8Internal::conditionalMethod1Method):
(WebCore::TestObjV8Internal::conditionalMethod2Method):
(WebCore::TestObjV8Internal::conditionalMethod3Method):
(WebCore::TestObjV8Internal::overloadedMethod1Method):
(WebCore::TestObjV8Internal::overloadedMethod2Method):
(WebCore::TestObjV8Internal::overloadedMethod3Method):
(WebCore::TestObjV8Internal::overloadedMethod4Method):
(WebCore::TestObjV8Internal::overloadedMethod5Method):
(WebCore::TestObjV8Internal::overloadedMethod6Method):
(WebCore::TestObjV8Internal::overloadedMethod7Method):
(WebCore::TestObjV8Internal::overloadedMethod8Method):
(WebCore::TestObjV8Internal::overloadedMethod9Method):
(WebCore::TestObjV8Internal::overloadedMethod10Method):
(WebCore::TestObjV8Internal::overloadedMethod11Method):
(WebCore::TestObjV8Internal::overloadedMethodMethod):
(WebCore::TestObjV8Internal::classMethodMethod):
(WebCore::TestObjV8Internal::classMethodWithOptionalMethod):
(WebCore::TestObjV8Internal::classMethod2Method):
(WebCore::TestObjV8Internal::overloadedMethod12Method):
(WebCore::TestObjV8Internal::classMethodWithClampMethod):
(WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Method):
(WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Method):
(WebCore::TestObjV8Internal::enabledPerContextMethod1Method):
(WebCore::TestObjV8Internal::enabledPerContextMethod2Method):
(WebCore::TestObjV8Internal::stringArrayFunctionMethod):
(WebCore::TestObjV8Internal::domStringListFunctionMethod):
(WebCore::TestObjV8Internal::getSVGDocumentMethod):
(WebCore::TestObjV8Internal::convert1Method):
(WebCore::TestObjV8Internal::convert2Method):
(WebCore::TestObjV8Internal::convert4Method):
(WebCore::TestObjV8Internal::convert5Method):
(WebCore::TestObjV8Internal::mutablePointFunctionMethod):
(WebCore::TestObjV8Internal::immutablePointFunctionMethod):
(WebCore::TestObjV8Internal::orangeMethod):
(WebCore::TestObjV8Internal::strictFunctionMethod):
(WebCore::TestObjV8Internal::variadicStringMethodMethod):
(WebCore::TestObjV8Internal::variadicDoubleMethodMethod):
(WebCore::TestObjV8Internal::variadicNodeMethodMethod):
(WebCore):
(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::installPerContextPrototypeProperties):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListMethod):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::multiTransferListMethod):
(WebCore):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::TestTypedefsV8Internal::funcMethod):
(WebCore::TestTypedefsV8Internal::multiTransferListMethod):
(WebCore::TestTypedefsV8Internal::setShadowMethod):
(WebCore::TestTypedefsV8Internal::methodWithSequenceArgMethod):
(WebCore::TestTypedefsV8Internal::nullableArrayArgMethod):
(WebCore::TestTypedefsV8Internal::funcWithClampMethod):
(WebCore::TestTypedefsV8Internal::immutablePointFunctionMethod):
(WebCore::TestTypedefsV8Internal::stringArrayFunctionMethod):
(WebCore::TestTypedefsV8Internal::stringArrayFunction2Method):
(WebCore::TestTypedefsV8Internal::methodWithExceptionMethod):
(WebCore):
(WebCore::ConfigureV8TestTypedefsTemplate):
* bindings/v8/custom/V8ClipboardCustom.cpp:
(WebCore::V8Clipboard::clearDataMethodCustom):
(WebCore::V8Clipboard::setDragImageMethodCustom):
* bindings/v8/custom/V8ConsoleCustom.cpp:
(WebCore::V8Console::traceMethodCustom):
(WebCore::V8Console::assertMethodCustom):
(WebCore::V8Console::profileMethodCustom):
(WebCore::V8Console::profileEndMethodCustom):
* bindings/v8/custom/V8CryptoCustom.cpp:
(WebCore::V8Crypto::getRandomValuesMethodCustom):
* bindings/v8/custom/V8DOMFormDataCustom.cpp:
(WebCore::V8DOMFormData::appendMethodCustom):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::addEventListenerMethodCustom):
(WebCore::V8DOMWindow::removeEventListenerMethodCustom):
(WebCore::V8DOMWindow::postMessageMethodCustom):
(WebCore::V8DOMWindow::toStringMethodCustom):
(WebCore::V8DOMWindow::releaseEventsMethodCustom):
(WebCore::V8DOMWindow::captureEventsMethodCustom):
(WebCore::V8DOMWindow::showModalDialogMethodCustom):
(WebCore::V8DOMWindow::openMethodCustom):
(WebCore::V8DOMWindow::setTimeoutMethodCustom):
(WebCore::V8DOMWindow::setIntervalMethodCustom):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::V8DataView::getInt8MethodCustom):
(WebCore::V8DataView::getUint8MethodCustom):
(WebCore::V8DataView::setInt8MethodCustom):
(WebCore::V8DataView::setUint8MethodCustom):
* bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
(WebCore::V8DedicatedWorkerContext::postMessageMethodCustom):
* bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
(WebCore::V8DeviceMotionEvent::initDeviceMotionEventMethodCustom):
* bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
(WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventMethodCustom):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::evaluateMethodCustom):
(WebCore::V8Document::createTouchListMethodCustom):
* bindings/v8/custom/V8GeolocationCustom.cpp:
(WebCore::V8Geolocation::getCurrentPositionMethodCustom):
(WebCore::V8Geolocation::watchPositionMethodCustom):
* bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
(WebCore::V8HTMLAllCollection::itemMethodCustom):
(WebCore::V8HTMLAllCollection::namedItemMethodCustom):
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::V8HTMLCanvasElement::getContextMethodCustom):
(WebCore::V8HTMLCanvasElement::toDataURLMethodCustom):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::writeMethodCustom):
(WebCore::V8HTMLDocument::writelnMethodCustom):
(WebCore::V8HTMLDocument::openMethodCustom):
* bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
(WebCore::V8HTMLFormControlsCollection::namedItemMethodCustom):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::v8HTMLImageElementConstructorMethodCustom):
(WebCore::V8HTMLImageElementConstructor::GetTemplate):
* bindings/v8/custom/V8HTMLInputElementCustom.cpp:
(WebCore::V8HTMLInputElement::setSelectionRangeMethodCustom):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::namedItemMethodCustom):
(WebCore::V8HTMLOptionsCollection::removeMethodCustom):
(WebCore::V8HTMLOptionsCollection::addMethodCustom):
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
(WebCore::V8HTMLSelectElement::removeMethodCustom):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::pushStateMethodCustom):
(WebCore::V8History::replaceStateMethodCustom):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::V8InjectedScriptHost::inspectedObjectMethodCustom):
(WebCore::V8InjectedScriptHost::internalConstructorNameMethodCustom):
(WebCore::V8InjectedScriptHost::isHTMLAllCollectionMethodCustom):
(WebCore::V8InjectedScriptHost::typeMethodCustom):
(WebCore::V8InjectedScriptHost::functionDetailsMethodCustom):
(WebCore::V8InjectedScriptHost::getInternalPropertiesMethodCustom):
(WebCore::V8InjectedScriptHost::getEventListenersMethodCustom):
(WebCore::V8InjectedScriptHost::inspectMethodCustom):
(WebCore::V8InjectedScriptHost::databaseIdMethodCustom):
(WebCore::V8InjectedScriptHost::storageIdMethodCustom):
(WebCore::V8InjectedScriptHost::evaluateMethodCustom):
(WebCore::V8InjectedScriptHost::setFunctionVariableValueMethodCustom):
* bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
(WebCore::V8InspectorFrontendHost::platformMethodCustom):
(WebCore::V8InspectorFrontendHost::portMethodCustom):
(WebCore::V8InspectorFrontendHost::showContextMenuMethodCustom):
(WebCore::V8InspectorFrontendHost::recordActionTakenMethodCustom):
(WebCore::V8InspectorFrontendHost::recordPanelShownMethodCustom):
(WebCore::V8InspectorFrontendHost::recordSettingChangedMethodCustom):
* bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
(WebCore::V8JavaScriptCallFrame::evaluateMethodCustom):
(WebCore::V8JavaScriptCallFrame::restartMethodCustom):
(WebCore::V8JavaScriptCallFrame::setVariableValueMethodCustom):
(WebCore::V8JavaScriptCallFrame::scopeTypeMethodCustom):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::reloadAttrGetterCustom):
(WebCore::V8Location::replaceAttrGetterCustom):
(WebCore::V8Location::assignAttrGetterCustom):
(WebCore::V8Location::reloadMethodCustom):
(WebCore::V8Location::replaceMethodCustom):
(WebCore::V8Location::assignMethodCustom):
(WebCore::V8Location::valueOfMethodCustom):
(WebCore::V8Location::toStringMethodCustom):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::initMessageEventMethodCustom):
(WebCore::V8MessageEvent::webkitInitMessageEventMethodCustom):
* bindings/v8/custom/V8MessagePortCustom.cpp:
(WebCore::V8MessagePort::postMessageMethodCustom):
* bindings/v8/custom/V8NodeCustom.cpp:
(WebCore::V8Node::insertBeforeMethodCustom):
(WebCore::V8Node::replaceChildMethodCustom):
(WebCore::V8Node::removeChildMethodCustom):
(WebCore::V8Node::appendChildMethodCustom):
* bindings/v8/custom/V8NotificationCenterCustom.cpp:
(WebCore::V8NotificationCenter::requestPermissionMethodCustom):
* bindings/v8/custom/V8NotificationCustom.cpp:
(WebCore::V8Notification::requestPermissionMethodCustom):
* bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
(WebCore::V8SQLResultSetRowList::itemMethodCustom):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::V8SQLTransaction::executeSqlMethodCustom):
* bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
(WebCore::V8SQLTransactionSync::executeSqlMethodCustom):
* bindings/v8/custom/V8SVGLengthCustom.cpp:
(WebCore::V8SVGLength::convertToSpecifiedUnitsMethodCustom):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::V8WebGLRenderingContext::getAttachedShadersMethodCustom):
(WebCore::V8WebGLRenderingContext::getBufferParameterMethodCustom):
(WebCore::V8WebGLRenderingContext::getExtensionMethodCustom):
(WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterMethodCustom):
(WebCore::V8WebGLRenderingContext::getParameterMethodCustom):
(WebCore::V8WebGLRenderingContext::getProgramParameterMethodCustom):
(WebCore::V8WebGLRenderingContext::getRenderbufferParameterMethodCustom):
(WebCore::V8WebGLRenderingContext::getShaderParameterMethodCustom):
(WebCore::V8WebGLRenderingContext::getSupportedExtensionsMethodCustom):
(WebCore::V8WebGLRenderingContext::getTexParameterMethodCustom):
(WebCore::V8WebGLRenderingContext::getUniformMethodCustom):
(WebCore::V8WebGLRenderingContext::getVertexAttribMethodCustom):
(WebCore::V8WebGLRenderingContext::uniform1fvMethodCustom):
(WebCore::V8WebGLRenderingContext::uniform1ivMethodCustom):
(WebCore::V8WebGLRenderingContext::uniform2fvMethodCustom):
(WebCore::V8WebGLRenderingContext::uniform2ivMethodCustom):
(WebCore::V8WebGLRenderingContext::uniform3fvMethodCustom):
(WebCore::V8WebGLRenderingContext::uniform3ivMethodCustom):
(WebCore::V8WebGLRenderingContext::uniform4fvMethodCustom):
(WebCore::V8WebGLRenderingContext::uniform4ivMethodCustom):
(WebCore::V8WebGLRenderingContext::uniformMatrix2fvMethodCustom):
(WebCore::V8WebGLRenderingContext::uniformMatrix3fvMethodCustom):
(WebCore::V8WebGLRenderingContext::uniformMatrix4fvMethodCustom):
(WebCore::V8WebGLRenderingContext::vertexAttrib1fvMethodCustom):
(WebCore::V8WebGLRenderingContext::vertexAttrib2fvMethodCustom):
(WebCore::V8WebGLRenderingContext::vertexAttrib3fvMethodCustom):
(WebCore::V8WebGLRenderingContext::vertexAttrib4fvMethodCustom):
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::V8WorkerContext::importScriptsMethodCustom):
(WebCore::V8WorkerContext::setTimeoutMethodCustom):
(WebCore::V8WorkerContext::setIntervalMethodCustom):
* bindings/v8/custom/V8WorkerCustom.cpp:
(WebCore::V8Worker::postMessageMethodCustom):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::V8XMLHttpRequest::openMethodCustom):
(WebCore::V8XMLHttpRequest::sendMethodCustom):
* bindings/v8/custom/V8XSLTProcessorCustom.cpp:
(WebCore::V8XSLTProcessor::setParameterMethodCustom):
(WebCore::V8XSLTProcessor::getParameterMethodCustom):
(WebCore::V8XSLTProcessor::removeParameterMethodCustom):
2013-02-23 Dimitri Glazkov <dglazkov@chromium.org>
Scrollbar style resolution arguments should not passed via statics.
https://bugs.webkit.org/show_bug.cgi?id=110690
Use PseudoStyleRequest to pass scrollbar params for style resolve.
Reviewed by Eric Seidel.
No change in functionality, covered by existing tests.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::match): Changed to use context params, rather than statics.
(WebCore::SelectorChecker::checkOne): Changed to pass context to checkScrollbarPseudoClass.
(WebCore::SelectorChecker::checkScrollbarPseudoClass): Changed to use context params, rather than statics.
* css/SelectorChecker.h:
(WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext): Added scrollbar style args.
(SelectorCheckingContext): Ditto.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRulesForList): Changed to use PseudoStyleRequest.
(WebCore::StyleResolver::State::initForStyleResolve): Ditto.
(WebCore::StyleResolver::pseudoStyleForElement): Ditto.
(WebCore::StyleResolver::ruleMatches): Ditto and added stuffing scrollbar style resolve args into SelectorCheckingContext.
* css/StyleResolver.h:
(PseudoStyleRequest): Added.
(State): Changed to hold and use PseudoStyleRequest instead of just PseudoId
* dom/Element.cpp:
(WebCore::Element::pseudoStyleCacheIsInvalid): Changed to use PseudoStyleRequest.
* page/FrameView.cpp: Ditto.
(WebCore::FrameView::updateScrollCorner): Ditto.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateScrollCornerStyle): Ditto.
(WebCore::RenderLayer::updateResizerStyle): Ditto.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::selectionBackgroundColor): Ditto.
(WebCore::RenderObject::selectionColor): Ditto.
(WebCore::firstLineStyleForCachedUncachedType): Ditto.
(WebCore::RenderObject::getCachedPseudoStyle): Ditto.
(WebCore::RenderObject::getUncachedPseudoStyle): Ditto.
* rendering/RenderObject.h:
(RenderObject): Ditto.
* rendering/RenderScrollbar.cpp:
(WebCore::RenderScrollbar::getScrollbarPseudoStyle): Ditto.
* rendering/RenderScrollbar.h:
(RenderScrollbar): Removed static members that are now obsolete.
2013-02-23 Adam Barth <abarth@webkit.org>
Threaded HTML parser should pass fast/parser/parser-yield-timing.html
https://bugs.webkit.org/show_bug.cgi?id=110647
Reviewed by Eric Seidel.
Previously, the threaded HTML parser would run for an arbitrary amount
of time without yielding after speculation succeeded. This might be the
cause of the good DOMContentLoaded numbers.
Note: This patch also demonstrates that the ParseHTML_max numbers
aren't correct currently because they're measuring the interior of this
loop instead of all the time spent in the loop. We should move the
instrumentation in a followup patch.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::resumeParsingAfterYield):
(WebCore::HTMLDocumentParser::pumpPendingSpeculations):
(WebCore):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
* html/parser/HTMLParserScheduler.cpp:
2013-02-23 Martin Robinson <mrobinson@igalia.com>
[GTK] Allow sharing the WebCore include list with the Chromium build
https://bugs.webkit.org/show_bug.cgi?id=110241
Reviewed by Dirk Pranke.
* WebCore.gyp/WebCore.gyp: Moved shared include directories to
WebCore.gypi.
* WebCore.gyp/WebCoreGTK.gyp: Added. A skeleton gyp file for WebCoreGTK+.
* WebCore.gypi: Added shared include directories.
2013-02-23 Andreas Kling <akling@apple.com>
StyledElement: Tweak signature of collectStyleForPresentationAttribute().
<http://webkit.org/b/110687>
Reviewed by Antti Koivisto.
Out with the old:
collectStyleForPresentationAttribute(const Attribute&, StylePropertySet*)
In with the new:
collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStylePropertySet*)
This is primarily about switching to using MutableStylePropertySet* in preparation for
removing mutating functions from the StylePropertySet base class.
2013-02-23 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][WebGL] Refactor GLPlatformSurface.
https://bugs.webkit.org/show_bug.cgi?id=110616
Reviewed by Kenneth Rohde Christiansen.
Covered by existing WebGL tests.
With recent changes, there is a clear separation between
transport surface and off-screen surface. PlatformSurface
has the logic to render content to transport surface.
We currently rely on EXT_framebuffer_blit for this. This
extension is not exposed on GLES2.0. PlatformSurface was
supposed to be an abstraction layer without any knowledge
of the type of surface. This patch addresses the issues
in PlatformSurface class. We use shaders to draw texture
content to the surface. Any transport surface related
code in PlatformSurface is moved to GLTransportSurface class.
* PlatformEfl.cmake:
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::didResizeCanvas):
* platform/graphics/surfaces/GLTransportSurface.cpp: Added.
(WebCore):
(WebCore::GLTransportSurface::GLTransportSurface):
(WebCore::GLTransportSurface::~GLTransportSurface):
(WebCore::GLTransportSurface::updateContents):
(WebCore::GLTransportSurface::setGeometry):
(WebCore::GLTransportSurface::destroy):
(WebCore::GLTransportSurface::draw):
(WebCore::GLTransportSurface::bindArrayBuffer):
(WebCore::GLTransportSurface::updateTransformationMatrix):
(WebCore::GLTransportSurface::initializeShaderProgram):
* platform/graphics/surfaces/GLTransportSurface.h:
(WebCore):
(GLTransportSurface):
* platform/graphics/surfaces/egl/EGLSurface.cpp:
(WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
(WebCore::EGLWindowTransportSurface::destroy):
(WebCore::EGLWindowTransportSurface::setGeometry):
* platform/graphics/surfaces/egl/EGLSurface.h:
* platform/graphics/surfaces/glx/GLXSurface.cpp:
(WebCore::GLXTransportSurface::GLXTransportSurface):
(WebCore::GLXTransportSurface::setGeometry):
(WebCore::GLXTransportSurface::destroy):
(WebCore::GLXOffScreenSurface::freeResources):
* platform/graphics/surfaces/glx/GLXSurface.h:
2013-02-23 Hajime Morrita <morrita@google.com>
ShadowRoot needs guardRef() and guardDeref()
https://bugs.webkit.org/show_bug.cgi?id=109777
Reviewed by Dimitri Glazkov.
This change moves m_guardRefCount from Document to TreeScope,
which allows ShadowRoot to be guarded by guardRef() mechanism as
Document. After r137524, Node referes TreeScope instead of
Document. This is natural consequence of the change: It no longer
makes sense to guardRef() Document pointer from Node.
Detail:
- Document::m_guardRefCount and related funcdtions are moved to TreeScope
- Document::removedLastRef is factored out into TreeScope::removedLastRefToScope(),
TreeScope::dispose() and Docuent::dispose(). ShadowRoot also got its own dispose() implementation.
- Moved guardRef() and guardDeref() calls to TreeScope and Node.
Note that there are two "guarded" TreeScope references. One is
Node::m_treeScope and another is TreeScope::m_parentTreeScope.
The guarded-ref management is now encapsulated in these two classes.
No new tests. Covered by existing tests.
* WebCore.exp.in:
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::Document::dispose): Extracted from removedLastRef()
* dom/Document.h:
(WebCore::Node::isTreeScope):
(WebCore::Node::Node):
* dom/DocumentFragment.cpp:
(WebCore::DocumentFragment::DocumentFragment): Remove ASSERT() and move it to ...
(WebCore::DocumentFragment::create): ... here, to allow NULL document from ShadowRoot.
* dom/Node.cpp:
(WebCore::Node::~Node):
(WebCore::Node::removedLastRef):
* dom/Node.h:
(WebCore::Node::setTreeScope):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot): Passed NULL document to superclass. This aligns what Document is doing.
(WebCore::ShadowRoot::dispose): Added.
* dom/ShadowRoot.h:
(ShadowRoot):
* dom/TreeScope.cpp:
(SameSizeAsTreeScope):
(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::~TreeScope):
(WebCore::TreeScope::dispose): Added.
(WebCore::TreeScope::setParentTreeScope):
(WebCore::TreeScope::deletionHasBegun):
(WebCore::TreeScope::beginDeletion):
(WebCore::TreeScope::refCount): Added.
* dom/TreeScope.h: Turned m_rootNode to Node* from ContainerNode* for Node::isTreeScope to be inlined.
(WebCore::TreeScope::guardRef): Pulled up from Document.
(WebCore::TreeScope::guardDeref): Ditto.
(WebCore::TreeScope::hasGuardRefCount): Added to hide m_guardRefCount.
(WebCore::TreeScope::deletionHasBegun): Added.
(WebCore::TreeScope::beginDeletion): Added.
(WebCore::TreeScope::removedLastRefToScope): Pulled up from Document.
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
(WebCore::TreeScopeAdopter::moveNodeToNewDocument):
2013-02-23 Alexey Proskuryakov <ap@apple.com>
Don't include ResourceHandle.h in ResourceLoaderOptions.h
https://bugs.webkit.org/show_bug.cgi?id=110662
Reviewed by Tim Horton.
* loader/ResourceLoaderOptions.h: Include ResourceHandleTypes.h instead.
2013-02-23 Jason Anderssen <janderssen@gmail.com>
Move setAutofilled from TestRunner to WebCore
https://bugs.webkit.org/show_bug.cgi?id=110521
Reviewed by Benjamin Poulain.
* testing/Internals.cpp:
(WebCore):
(WebCore::Internals::setAutofilled):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2013-02-22 Andreas Kling <akling@apple.com>
Attr: Simplify modification callbacks.
<http://webkit.org/b/110598>
Reviewed by Antti Koivisto.
Instead of Attr being a friend of Element and grabbing at various internal storage and callbacks,
let Attr simply call Element::setAttribute() when its value is changed, and do all that business
from Element.
* dom/Element.h:
* dom/Element.cpp:
(WebCore::Element::setAttributeInternal):
Call Attr::recreateTextChildAfterAttributeValueChanged() after modifying an attribute value instead
of doing the modification through the Attr node.
* dom/Attr.h:
* dom/Attr.cpp:
(WebCore::Attr::Attr):
(WebCore::Attr::childrenChanged):
Added an m_inChildrenChanged flag so we can prevent infinite callback recursion in childrenChanged().
(WebCore::Attr::setValue):
Call Element::setAttribute() instead of modifying the attribute storage directly.
(WebCore::Attr::recreateTextChildAfterAttributeValueChanged):
Factored out the "remove all children / create a new text child with attribute value" logic into
a separate function.
2013-02-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL] Use EINA_LOG instead of fprintf
https://bugs.webkit.org/show_bug.cgi?id=110313
Reviewed by Laszlo Gombos.
Replace fprintf with EINA_LOG.
* platform/efl/NetworkInfoProviderEfl.cpp:
(WebCore::NetworkInfoProviderEfl::startUpdating):
* platform/graphics/efl/CairoUtilitiesEfl.cpp:
(WebCore::evasObjectFromCairoImageSurface):
2013-02-22 Tony Gentilcore <tonyg@chromium.org>
Threaded HTML parser fails resources/plain-text-unsafe.dat
https://bugs.webkit.org/show_bug.cgi?id=110538
Reviewed by Eric Seidel.
With this patch, the background HTML parser passes all tests in plain-text-unsafe.dat.
No new tests because covered by existing tests.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::tokenExitsSVG):
(WebCore):
(WebCore::tokenExitsMath):
(WebCore::BackgroundHTMLParser::simulateTreeBuilder):
2013-02-22 Tony Gentilcore <tonyg@chromium.org>
Correct InspectorInstrumentation for background HTML parser
https://bugs.webkit.org/show_bug.cgi?id=110678
Reviewed by Adam Barth.
resumeParsingAfterScriptExecution potentially calls processParsedChunkFromBackgroundParser multiple times
without yielding. So it is not correct to count each of those as a separate ParseHTML event.
This patch moves the instrumentation outside of the loop.
No new tests because no new functionality.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
2013-02-22 Aaron Colwell <acolwell@chromium.org>
Factor MediaSource methods out of MediaPlayer & MediaPlayerPrivate and into a new MediaSourcePrivate interface.
https://bugs.webkit.org/show_bug.cgi?id=109857
Reviewed by Adam Barth.
This is a simple refactor that moves MediaSource related methods out of MediaPlayer & MediaPlayerPrivate
so that the MediaSource implementation can be updated without further polluting these interfaces.
MediaSourcePrivate is the new WebCore interface that ports must implement to support the MediaSource API.
No new tests. No user visible behavior has changed.
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::MediaSource):
(WebCore::MediaSource::duration):
(WebCore::MediaSource::setDuration):
(WebCore::MediaSource::addSourceBuffer):
(WebCore::MediaSource::removeSourceBuffer):
(WebCore::MediaSource::setReadyState):
(WebCore::MediaSource::endOfStream):
(WebCore::MediaSource::buffered):
(WebCore::MediaSource::append):
(WebCore::MediaSource::abort):
(WebCore::MediaSource::setTimestampOffset):
(WebCore::MediaSource::setPrivateAndOpen):
(WebCore):
(WebCore::MediaSource::hasPendingActivity):
(WebCore::MediaSource::stop):
* Modules/mediasource/MediaSource.h:
(MediaSource):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::loadResource):
(WebCore::HTMLMediaElement::createMediaPlayer):
(WebCore::HTMLMediaElement::reportMemoryUsage):
* html/HTMLMediaElement.h:
(HTMLMediaElement):
* platform/graphics/MediaPlayer.cpp:
(NullMediaPlayerPrivate):
(WebCore::NullMediaPlayerPrivate::load):
(WebCore::MediaPlayer::load):
(WebCore):
(WebCore::MediaPlayer::loadWithNextMediaEngine):
* platform/graphics/MediaPlayer.h:
(WebCore):
(MediaPlayerClient):
(MediaPlayer):
* platform/graphics/MediaPlayerPrivate.h:
(MediaPlayerPrivateInterface):
* platform/graphics/MediaSourcePrivate.h: Added.
(WebCore):
(MediaSourcePrivate): Contains the MediaSource methods extracted from MediaPlayer.
(WebCore::MediaSourcePrivate::MediaSourcePrivate):
(WebCore::MediaSourcePrivate::~MediaSourcePrivate):
2013-02-22 Beth Dakin <bdakin@apple.com>
RenderLayer::scrollTo() should call FrameLoaderClient::didChangeScrollOffset()
https://bugs.webkit.org/show_bug.cgi?id=110673
-and corresponding-
<rdar://problem/13258596>
Reviewed by Sam Weinig.
FrameLoaderClient::didChangeScrollOffset() doesn't get called for web pages that
have overflow on the body. We can easily address this by calling it at the
end of RenderLayer::scrollTo().
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollTo):
2013-02-22 Ryosuke Niwa <rniwa@webkit.org>
WebKit can erroneously strip font-size CSS property from font element with size attribute
https://bugs.webkit.org/show_bug.cgi?id=110657
Reviewed by Justin Garcia.
The bug was caused by ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline
erroneously removing style attributes even on an element such as font that implicitly adds
editing style.
Fixed the bug by removing these elements or attributes when they conflict with the inline
style of the element. This is always safe because implicit style of an element is always
overridden by that of inline style.
Note that when the font element becomes "empty" (i.e. doesn't have any attributes), then
we also want to delete this font element as it doesn't contribute anything to the style.
Test: editing/pasteboard/insert-u-with-text-decoration-none.html
editing/pasteboard/insert-font-with-size-and-css.html
* editing/ApplyStyleCommand.cpp:
(WebCore::isEmptyFontTag): Added ShouldStyleAttributeBeEmpty as an argument. This will
allow removeRedundantStylesAndKeepStyleSpanInline to ignore style attribute when we know
the attribute can be removed.
* editing/ApplyStyleCommand.h: Expose isEmptyFontTag and ShouldStyleAttributeBeEmpty.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::InsertedNodes::didReplaceNode): Added.
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline): See above.
* editing/ReplaceSelectionCommand.h:
(InsertedNodes): Added a declaration of didReplaceNode.
2013-02-22 Laszlo Gombos <l.gombos@samsung.com>
Remove unused make variable from DerivedSources.make
https://bugs.webkit.org/show_bug.cgi?id=110306
Reviewed by Alexey Proskuryakov.
r107026 removed the last piece of logic that was guarded with
ENABLE_DASHBOARD_SUPPORT, so now it can be removed from
DerivedSources.make.
Also combined the way ENABLE_ORIENTATION_EVENTS is set to 0
to make it more readable.
No new tests, no new functionality.
* DerivedSources.make:
2013-02-22 Dimitri Glazkov <dglazkov@chromium.org>
REGRESSION(r130089): Scrollbar thumb no longer re-rendered on hover
https://bugs.webkit.org/show_bug.cgi?id=109230
In r130089, I accidentally removed the extra check that made scrollbar
parts styles sad. I put it back and made them happy.
Reviewed by Eric Seidel.
Test: fast/css/pseudo-element-selector-scrollbar-hover.html
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::match): Added the check back.
2013-02-22 Tim Horton <timothy_horton@apple.com>
[WK2] The root and page overlay layers should be the size of the view, not the content
https://bugs.webkit.org/show_bug.cgi?id=110660
<rdar://problem/13096456>
Reviewed by Simon Fraser.
* WebCore.exp.in:
2013-02-22 Anders Carlsson <andersca@apple.com>
pluginLoadStrategy should take a WKDictionaryRef for extensibility
https://bugs.webkit.org/show_bug.cgi?id=110656
<rdar://problem/13265303>
Reviewed by Jessie Berlin.
Export a symbol needed by WebKit2.
* WebCore.exp.in:
2013-02-22 Levi Weintraub <leviw@chromium.org>
Add descriptive names for different addMidpoint use cases
https://bugs.webkit.org/show_bug.cgi?id=110644
Reviewed by Ryosuke Niwa.
Midpoints are used to delineate ranges where we don't add line boxes for contents (collapsed spaces),
and to explicitly split a RenderText into multiple text runs so that text paragraph seperators get
their own line boxes. This patch encapsulates the different cases where midpoints are added to
lineMidpointState into 4 helper functions to make it clearer what's going on in each case.
No new tests. No change in functionality.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::deprecatedAddMidpoint): Original function simply adds a midpoint to the lineMidpointState.
Renaming to deprecated to discourage callers.
(WebCore::startIgnoringSpaces): Adds a midpoint to start collapsing subsequent spaces. Asserts that
we have an even number of midpoints.
(WebCore::stopIgnoringSpaces): Adds the corresponding midpoint from startIgnoringSpaces and asserts
that it's an odd number.
(WebCore::ensureLineBoxInsideIgnoredSpaces): When ignoring spaces and we come across a RenderInline
that needs a line box, this function adds a pair of midpoints which ensures we'll later add a line
box for it.
(WebCore::ensureCharacterGetsLineBox): Adds a pair of midpoints in a text renderer to mark that
the current character needs its own line box. This is used by svg for absolutely positioned
characters, or for text paragraph seperators.
2013-02-22 Justin Schuh <jschuh@chromium.org>
RenderArena masking has low entropy
https://bugs.webkit.org/show_bug.cgi?id=110394
Reviewed by Oliver Hunt.
No new tests. This is a hardening measure.
* rendering/RenderArena.cpp:
(WebCore::RenderArena::RenderArena):
2013-02-22 Min Qin <qinmin@chromium.org>
Fix the overlay play button position on android
https://bugs.webkit.org/show_bug.cgi?id=110638
Reviewed by Ojan Vafai.
Because we are using flex box, specifying the height is not necessary.
Setting height to 100% will make the enclosure go outside the control panel.
There are no media layout test expecations for android, will do that in another patch.
* css/mediaControlsChromiumAndroid.css:
(video::-webkit-media-controls-overlay-enclosure):
2013-02-22 Kentaro Hara <haraken@chromium.org>
Unreviewed build fix. Added missing #if PLATFORM(CHROMIUM).
* dom/Document.cpp:
(WebCore::Document::recalcStyle):
* page/FrameView.cpp:
(WebCore::FrameView::layout):
2013-02-22 Kentaro Hara <haraken@chromium.org>
Document::styleRecalc() and FrameView::layout() should be traced
https://bugs.webkit.org/show_bug.cgi?id=110646
Reviewed by Ojan Vafai.
Document::styleRecalc() and FrameView::layout() are key factors
for web page rendering performance. We should add TRACE_EVENT()
macros to these functions.
* dom/Document.cpp:
(WebCore::Document::recalcStyle):
* page/FrameView.cpp:
(WebCore::FrameView::layout):
2013-02-22 Eric Seidel <eric@webkit.org>
Teach the html5lib tests how to test the threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=110643
Reviewed by Adam Barth.
This adds a way to force data: url parsing to go through
the threaded parser, to enable us to test the threaded parser
using the html5lib test harness.
* html/parser/HTMLParserOptions.cpp:
(WebCore::HTMLParserOptions::HTMLParserOptions):
* page/Settings.in:
2013-02-21 Ojan Vafai <ojan@chromium.org>
Increase the max preferred width of tables to 1000000
https://bugs.webkit.org/show_bug.cgi?id=110545
Reviewed by Emil A Eklund.
Test: fast/table/large-shrink-wrapped-width.html
The old limit of 15000 was picked arbitrarily to avoid overflow.
No need to pick such a small number.
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::computeInstrinsicLogicalWidths):
As best I can tell, this code is just wrong. Removing this makes the
new test pass and doesn't cause any test failure. While we have many
tests that hit this codepath, this code would only
show a difference in the cases where the available container width is
greater then 15000, and I don't think we have any tests that hit that case
other than this new one.
* rendering/TableLayout.h:
2013-02-22 Adam Barth <abarth@webkit.org>
Threaded HTML parser should pass fast/parser/iframe-sets-parent-to-javascript-url.html
https://bugs.webkit.org/show_bug.cgi?id=110637
Reviewed by Eric Seidel.
With the main thread parser, we always parse the first chunk of content
returned as the result of evaluating a JavaScript URL synchronously. In
particular, if the first chunk has an inline script, we'll execute it
synchronously.
Previous to this patch, the threaded parser would always parse this
content asynchronously. It's conceivable that there could be some
content relying on the synchronous behavior, so this patch introduces
the notion of "pinning" a parser to the main thread and uses that
concept to force the result of JavaScript URLs to be parsed on the main
thread (which is probably desirable anyway because they're likely to be
quite short).
This patch fixes fast/parser/iframe-sets-parent-to-javascript-url.html
and fast/dom/javascript-url-crash-function.html with the threaded
parser with --enable-threaded-html-parser.
* dom/DocumentParser.h:
(WebCore::DocumentParser::pinToMainThread):
(DocumentParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore):
(WebCore::HTMLDocumentParser::pinToMainThread):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
(WebCore::HTMLDocumentParser::shouldUseThreading):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):
2013-02-22 Joe Mason <jmason@rim.com>
[BlackBerry] Reread cookies when retrying a request with new auth credentials
https://bugs.webkit.org/show_bug.cgi?id=110628
Reviewed by George Staikos.
Internal PR: 298805
Internally Reviewed By: Leo Yang
The "isRedirect" parameter of initializePlatformRequest is only used to decide whether to
reread cookies. Since we must reread cookies when resending a request with new auth
credentials as well, rename this to "rereadCookies".
The only caller which sets this parameter rather than using the default value is
NetworkManager::startJob, which also has other processing on redirect. So add a new
"rereadCookies" parameter to startJob and ensure it is always set to true on a redirect, but
can also be set to true on a non-redirect. And when startJob is called due to new auth
credentials, set it to true.
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::startNewJobWithRequest): Add rereadCookies parameter, pass it to
startJob.
(WebCore::NetworkJob::handleRedirect): Set new rereadCookies param of startNewJob to true.
(WebCore::NetworkJob::notifyChallengeResult): Set new rereadCookies param of startNewJob to
true.
* platform/network/blackberry/NetworkJob.h:
(NetworkJob): Add rereadCookies parameter to startNewJobWithRequest.
* platform/network/blackberry/NetworkManager.cpp:
(WebCore::NetworkManager::startJob): Add rereadCookies parameter, pass it instead of
redirectCount to initializePlatformRequest.
* platform/network/blackberry/NetworkManager.h:
(NetworkManager): Add rereadCookies parameter to startJob.
* platform/network/blackberry/ResourceRequest.h:
(ResourceRequest): Rename isRedirect parameter to rereadCookies.
* platform/network/blackberry/ResourceRequestBlackBerry.cpp:
(WebCore::ResourceRequest::initializePlatformRequest): Rename isRedirect to rereadCookies.
2013-02-22 Benjamin Poulain <bpoulain@apple.com>
Use CFNotificationCenter instead of NSNotificationCenter for SharedTimerIOS
https://bugs.webkit.org/show_bug.cgi?id=110544
Reviewed by Daniel Bates.
Previously, we were instantiating the Obj-C object WebCoreResumeNotifierIOS
with the only purpose of forwarding one notification to a C function.
This patch updates the code to use CFNotificationCenter to dispatch the notification
without the intermediary object.
* platform/ios/SharedTimerIOS.mm:
(WebCore::applicationDidBecomeActive):
(WebCore::setSharedTimerFireInterval):
2013-02-22 Kenneth Russell <kbr@google.com>
Uint8ClampedArray constructor is wrong in WorkerContext.idl
https://bugs.webkit.org/show_bug.cgi?id=110634
Reviewed by Adam Barth.
Tests: fast/canvas/webgl/typed-arrays-in-workers.html
webgl/conformance/typedarrays/typed-arrays-in-workers.html
* workers/WorkerContext.idl:
2013-02-21 Mark Lam <mark.lam@apple.com>
Add some checks to DatabaseTracker::getMaxSizeForDatabase() to ensure
that it returns a sane value.
https://bugs.webkit.org/show_bug.cgi?id=110557.
Reviewed by Geoffrey Garen.
No layout test, but there is a quota-test.html attached to bugzilla.
The test is a webpage that can be loaded into multiple tabs to
consuming storage space. Once the test webpages are loaded, you will
need to monitor the database directory and its files to confirm that
growth is bounded. Also try reloading the test in the tabs. At no
time should any database file ever exceed the quota.
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
2013-02-22 James Simonsen <simonjam@chromium.org>
Preloads should be cleared when JavaScript cancels loading prematurely.
https://bugs.webkit.org/show_bug.cgi?id=110388
Reviewed by Antti Koivisto.
If a page preloads a resource, but JavaScript aborts parsing for any reason (for example, a
redirect or document.write()), the resource is forever marked a preload and won't be reloaded
even if it's explicitly marked no-cache and the page is reloaded.
Test: http/tests/cache/preload-cleared-after-parrsing-canceled-by-js.html
* dom/Document.cpp:
(WebCore::Document::implicitClose):
(WebCore::Document::finishedParsing):
2013-02-22 Antoine Quint <graouts@apple.com>
Expose a list of all reasons that qualify a RenderLayer to be composited
https://bugs.webkit.org/show_bug.cgi?id=110505
Expose the various reasons that can qualify a RenderLayer to be composited
via a new bitmask returned by the reasonForCompositing() method on
RenderLayerCompositor. This method already existed and was used for logging
purposes, but the previous functionality is now accessed via the
logReasonForCompositing() method.
This will allow the the InspectorLayerTreeAgent to provide this information
to the front-end on a per-layer basis as requested by the front-end.
Reviewed by Simon Fraser.
No new tests.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::logLayerInfo):
(WebCore::RenderLayerCompositor::reasonsForCompositing):
(WebCore):
(WebCore::RenderLayerCompositor::logReasonsForCompositing):
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
2013-02-22 Beth Dakin <bdakin@apple.com>
ScrollingStateTree::rootStateNode() should be null-checked since it can be null
https://bugs.webkit.org/show_bug.cgi?id=110631
Reviewed by Simon Fraser.
This is a speculative fix for <rdar://problem/13233090> and
<rdar://problem/12519348>. It is totally possible for rootStateNode() to be null,
so we should null-check it.
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::setShouldUpdateScrollLayerPositionOnMainThread):
(WebCore::ScrollingCoordinatorMac::syncChildPositions):
2013-02-22 Mike Reed <reed@google.com>
Check for null-device when calling createCompatibleDevice
https://bugs.webkit.org/show_bug.cgi?id=107981
Reviewed by James Robinson.
No new tests. Current tests provided coverage. Site in the wild triggered the failure
(cairo failed to allocate a huge surface).
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::ImageBuffer::ImageBuffer):
2013-02-22 Chris Rogers <crogers@google.com>
AudioDestination::create() needs extra device identification information for live/local input streams
https://bugs.webkit.org/show_bug.cgi?id=109494
Reviewed by James Robinson.
AudioDestination::create() supports live/local audio input. But, since there may be multiple
audio input devices available, an identifier for the requested input device needs to be
passed in. The embedder may then use this information so that the proper audio hardware is
accessed.
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createMediaStreamSource):
* Modules/webaudio/AudioDestinationNode.h:
(AudioDestinationNode):
* Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::initialize):
(WebCore::DefaultAudioDestinationNode::createDestination):
(WebCore::DefaultAudioDestinationNode::enableInput):
* Modules/webaudio/DefaultAudioDestinationNode.h:
(DefaultAudioDestinationNode):
* Modules/webaudio/OfflineAudioDestinationNode.h:
* platform/audio/AudioDestination.h:
(AudioDestination):
* platform/audio/chromium/AudioDestinationChromium.cpp:
(WebCore::AudioDestination::create):
(WebCore::AudioDestinationChromium::AudioDestinationChromium):
* platform/audio/chromium/AudioDestinationChromium.h:
(AudioDestinationChromium):
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestination::create):
* platform/audio/mac/AudioDestinationMac.cpp:
(WebCore::AudioDestination::create):
* platform/chromium/support/WebMediaStreamSource.cpp:
(WebKit::WebMediaStreamSource::deviceId):
(WebKit):
(WebKit::WebMediaStreamSource::setDeviceId):
* platform/mediastream/MediaStreamSource.h:
(WebCore::MediaStreamSource::deviceId):
(WebCore::MediaStreamSource::setDeviceId):
(MediaStreamSource):
2013-02-22 Ryosuke Niwa <rniwa@webkit.org>
Binding tests rebaseline after r143737.
* bindings/scripts/test/V8/V8Float64Array.cpp:
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
* bindings/scripts/test/V8/V8TestException.cpp:
* bindings/scripts/test/V8/V8TestInterface.cpp:
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
* bindings/scripts/test/V8/V8TestNode.cpp:
* bindings/scripts/test/V8/V8TestObj.cpp:
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
2013-02-22 Kunihiko Sakamoto <ksakamoto@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Unable to enter "24" to hour field
https://bugs.webkit.org/show_bug.cgi?id=110431
Reviewed by Kent Tamura.
Fixed a bug that hour-field does not accept "24" as a valid input when hour format is 1-24.
To test <input> against different time formats, added "pattern" attribute to DateTimeEditElement.
Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Overwrites layoutParameters.dateTimeFormat by pattern attribute of DateTimeEditElement (if exists).
* html/shadow/DateTimeFieldElements.cpp:
(WebCore::DateTimeHourFieldElement::populateDateTimeFieldsState): Fixed a bug where AM/PM value was passed to setHour().
(WebCore::DateTimeHourFieldElement::setValueAsInteger): Clamps the given value to 0-24 when the range of the field is 1-12 or 1-24. Renamed the parameter as it may not be an hour23 value (0-23).
2013-02-21 Zoltan Horvath <zoltan@webkit.org>
[CSS Regions] Region boxes should respect -shape-inside CSS property
https://bugs.webkit.org/show_bug.cgi?id=107880
Reviewed by David Hyatt.
The shape-inside CSS property modifies the shape of the inner inline flow content from rectangular content box
to an arbitrary geometry. The detailed documentation is located in the CSS-Exclusions specification:
http://dev.w3.org/csswg/css3-exclusions/#shape-inside-property. This change adds support for the shape-inside property
on CSS Regions.
Test: fast/regions/shape-inside-on-regions.html
* rendering/ExclusionShapeInfo.cpp:
(WebCore):
(WebCore::::logicalTopOffset): Shape dimension should be relative to the current region.
* rendering/ExclusionShapeInfo.h:
(ExclusionShapeInfo):
(WebCore::::logicalTopOffset): Move the implementation to ExclusionShapeInfo.cpp.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::logicalHeightForLine): Move the function prior to layoutExclusionShapeInsideInfo, since we need to use it there.
(WebCore):
(WebCore::layoutExclusionShapeInsideInfo): Add support for cases when shape-inside is a region-block property.
(WebCore::RenderBlock::layoutRunsAndFloatsInRange): Update the exclusion shape information for every line, since the content
could flow through several region containers which can have different shape-inside properties.
2013-02-21 Ojan Vafai <ojan@chromium.org>
Add computeInstrinsicLogicalWidths functions to TableLayout subclasses
https://bugs.webkit.org/show_bug.cgi?id=110520
Reviewed by Tony Chang.
This is just a refactor in preparation for adding RenderTable::computeIntinsicLogicalWidths.
No change in behavior.
Split the computePreferredLogicalWidths functions into a computeIntinsicLogicalWidths
and a applyPreferredLogicalWidthQuirks. Also, move the addition of bordersPaddingAndSpacing
into RenderTable since both TableLayout subclasses need this.
This has the added readability benefit of better isolating the quirks that each table layout
mode requires.
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::computeIntrinsicLogicalWidths):
(WebCore::AutoTableLayout::applyPreferredLogicalWidthQuirks):
* rendering/AutoTableLayout.h:
(AutoTableLayout):
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::computeIntrinsicLogicalWidths):
(WebCore::FixedTableLayout::applyPreferredLogicalWidthQuirks):
* rendering/FixedTableLayout.h:
(FixedTableLayout):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::computePreferredLogicalWidths):
* rendering/TableLayout.h:
(TableLayout):
2013-02-22 David Hyatt <hyatt@apple.com>
[New Multicolumn] Correctly track whether or not a layer is paginated.
https://bugs.webkit.org/show_bug.cgi?id=110625.
Taking the first step towards implementing the correct spec-compliant painting
model for the new multi-column layout. Add code to make sure the paginated
bits in RenderLayer get propagated correctly for the new layout.
The main difference in bit propagation between the old multicolumn layout and
the new multicolumn layout is that the old layout only tracked pagination "roots",
since it has a broken layer painting model. It incorrectly treats a pagination
"root" inside a multi-column block as establishing a stacking context in each
column. This is incorrect.
The new multicolumn code is going to paint each paginated layer individually,
and this means the bits can't just be about roots. Instead they have to be set
on every layer that may be split across columns, without regard for whether parent
layers are also split or not. This is actually a simpler bit propagation model
than the old code.
Reviewed by Beth Dakin.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
Add code to set the m_isPaginated bit for in-flow RenderFlowThreads. This includes
only RenderMultiColumnFlowThread for now, but eventually it will also include
RenderPageFlowThread.
(WebCore::RenderLayer::useRegionBasedColumns):
Add a helper method to check if region-based columns are turned on, since we're
not attempting to alter the old column pagination model.
(WebCore::RenderLayer::updatePagination):
Added the code to propagate bits under the new model. Whether or not you're paginated
just depends on whether or not your enclosing layer along the containing block chain
is paginated.
(WebCore::RenderLayer::paintList):
(WebCore::RenderLayer::hitTestList):
Add code that avoids the old multi-column pagination model when the new column model
is enabled. For now there is no code in the new model that does anything with the bits,
but we're avoiding calling the old code, since it is broken for the new columns.
* rendering/RenderLayer.h:
(RenderLayer):
Added the useRegionBasedColumns method to check the Setting.
* rendering/RenderMultiColumnFlowThread.h:
* rendering/RenderObject.h:
(WebCore::RenderObject::isInFlowRenderFlowThread):
(RenderObject):
Implement isInFlowRenderFlowThread, a virtual function for asking if a renderer is
an in-flow RenderFlowThread, which means that it is going to need paginated layers
because the flow thread has to split across "pages" that do not establish stacking
contexts.
2013-02-22 Bem Jones-Bey <bjonesbe@adobe.com>
text-overflow:ellipsis is not applied when the block contains nested blocks
https://bugs.webkit.org/show_bug.cgi?id=101879
Reviewed by Eric Seidel.
Since text-overflow is not an inherited property, the anonymous blocks
don't know they should ellipse. This causes the anonymous blocks
created in the nested block situation to check their parent to find
out if they should ellipse.
Test: fast/css/text-overflow-ellipsis-anonymous-blocks.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutInlineChildren):
2013-02-22 Eric Seidel <eric@webkit.org>
REGRESSION(r143664, r143681): http/tests/security/feed-urls-from-remote.html fails
https://bugs.webkit.org/show_bug.cgi?id=110554
Reviewed by Adam Barth.
Will fix http/tests/security/feed-urls-from-remote.html for Mac WK1.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoading):
2013-02-22 Mark Rowe <mrowe@apple.com>
Build fix after r143637.
* WebCore.exp.in: Unconditionally export ScriptController::javaScriptContext.
* bindings/js/ScriptController.h: Unconditionally define javaScriptContext for Mac builds.
* bindings/js/ScriptControllerMac.mm:
(WebCore::ScriptController::javaScriptContext): Move the #if inside the function, and return 0 when false.
2013-02-22 Anton Vayvod <avayvod@chromium.org>
[TextAutosizing] Refactoring to eliminate boolean parameter.
https://bugs.webkit.org/show_bug.cgi?id=110490
Reviewed by Julien Chaffraix.
A follow-up to the recent change that introduced a boolean parameter to
processClusterInternal method of TextAutosizer. Boolean parameters are discouraged by the
WebKit style guide. See http://trac.webkit.org/changeset/142866
Refactoring so no new tests.
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::clusterMultiplier):
Calculates the font size multiplier for the specified cluster.
(WebCore::TextAutosizer::processClusterInternal):
Accepts the font size multiplier instead of |shouldBeAutosized|.
(WebCore::TextAutosizer::processCluster):
(WebCore::TextAutosizer::processCompositeCluster):
Both methods above now calculate the multiplier and then pass it to
processClusterInternal.
* rendering/TextAutosizer.h:
Updated method declarations.
2013-02-22 Carlos Garcia Campos <cargarcia@rim.com>
[BlackBerry] Use KURL::protocolIsInHTTPFamily instead of KURL::protocolInHTTPFamily
https://bugs.webkit.org/show_bug.cgi?id=110581
Reviewed by Rob Buis.
KURL::protocolInHTTPFamily() was removed in r109670.
* platform/network/blackberry/ResourceRequestBlackBerry.cpp:
(WebCore::ResourceRequest::clearHTTPContentLength):
(WebCore::ResourceRequest::clearHTTPContentType):
2013-02-22 Allan Sandfeld Jensen <allan.jensen@digia.com>
Unreviewed build-fix after r143744.
* dom/Document.cpp:
(WebCore::Document::updateHoverActiveState):
2013-02-22 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] throttle replayTraceLog messages to backend
https://bugs.webkit.org/show_bug.cgi?id=110591
Reviewed by Pavel Feldman.
The replayTraceLog message may be quite expensive. So, while such a request is processed by the
backend, user may well generate a dozen of new ones simply by walking through the DataGrid.
We should actually send to the backend only the last event from the queue.
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
(WebInspector.CanvasProfileView.prototype._replayTraceLog):
2013-02-22 Allan Sandfeld Jensen <allan.jensen@digia.com>
Multiple Layout Test crashes (ASSERT) on chromium linux debug after r143727
https://bugs.webkit.org/show_bug.cgi?id=110609
Reviewed by Antonio Gomes.
Revert r128869. InnerNode may now again be from a child document,
and should be handled and not asserted against.
* dom/Document.cpp:
(WebCore::Document::updateHoverActiveState):
2013-02-22 Andreas Kling <akling@apple.com>
Element: Make updateName/updateId/updateLabel private.
<http://webkit.org/b/110603>
Reviewed by Antti Koivisto.
These methods are only called from inside Element so make them private and
move them to the .cpp file.
* dom/Element.cpp:
(WebCore::Element::updateName):
(WebCore::Element::updateId):
* dom/Element.h:
2013-02-21 Zhenyao Mo <zmo@google.com>
Roll ANGLE to r1833
https://bugs.webkit.org/show_bug.cgi?id=110513
Reviewed by Kenneth Russell.
* CMakeLists.txt:
* GNUmakefile.list.am:
2013-02-22 Carlos Garcia Campos <cargarcia@rim.com>
[BlackBerry] Rename first/second to key/value in HashMap iterators
https://bugs.webkit.org/show_bug.cgi?id=110577
Reviewed by Rob Buis.
Iterators were renamed to key/value in r130612.
* platform/blackberry/AuthenticationChallengeManager.cpp:
(WebCore::AuthenticationChallengeManager::pageVisibilityChanged):
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::handleNotifyMultipartHeaderReceived):
2013-02-22 Kentaro Hara <haraken@chromium.org>
[V8] Add comments to checkTypeOrDieTrying()
https://bugs.webkit.org/show_bug.cgi?id=110553
Reviewed by Adam Barth.
It is mysterious how the check is helpful. We need comments.
No tests. Just added comments.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateImplementation):
* bindings/v8/ScriptWrappable.h:
(ScriptWrappable):
2013-02-22 Jessie Berlin <jberlin@apple.com>
32-bit build fix after r143706
* fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::didReceiveData):
2013-02-22 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] do no show a single frame node in data grid
https://bugs.webkit.org/show_bug.cgi?id=110473
Reviewed by Pavel Feldman.
In a single canvas frame capture mode do not show the single "Frame #1" node.
Drive-by: Fix a wrong "this" pointer.
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
(WebInspector.CanvasProfileView.prototype.appendDrawCallGroup):
(WebInspector.CanvasProfileView.prototype._flattenSingleFrameNode):
2013-02-22 Allan Sandfeld Jensen <allan.jensen@digia.com>
Multiple Layout Test crashes (ASSERT) on chromium linux debug after r143727
https://bugs.webkit.org/show_bug.cgi?id=110609
Reviewed by Antonio Gomes.
Point based hit tests should not append but assign HitTestResults.
* rendering/RenderFrameBase.cpp:
(WebCore::RenderFrameBase::nodeAtPoint):
2013-02-22 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: show source location after drawer views
https://bugs.webkit.org/show_bug.cgi?id=110156
Reviewed by Pavel Feldman.
- Add statusBarText method
- Add #drawer-view-anchor, which determines layout position of
drawerView
- Fix layout in #panel-status-bar to avoid floating elements.
No new tests.
* inspector/front-end/Panel.js:
(WebInspector.Panel.prototype.wasShown): Add statusBarItems before
drawer-view-anchor and statusBarText after.
(WebInspector.Panel.prototype.willHide): Remove statusBarText from DOM in the
way it's done for statusBarItems
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.statusBarText): Added.
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype.statusBarText): Added.
(WebInspector.SourceFrame.prototype.statusBarItems):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype.get statusBarItems):
* inspector/front-end/View.js:
(WebInspector.View.prototype.statusBarText):
* inspector/front-end/inspector.css:
(#drawer-view-anchor):
(.source-frame-cursor-position):
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
(WebInspector.showViewInDrawer):
* inspector/front-end/timelinePanel.css:
(.timeline-records-stats):
(.timeline-records-stats-container):
2013-02-22 Allan Sandfeld Jensen <allan.jensen@digia.com>
Allow child-frame content in hit-tests.
https://bugs.webkit.org/show_bug.cgi?id=95204
Reviewed by Julien Chaffraix.
Refactors how EventHandler::hitTestResultAtPoint handles child-frame content,
it is now handled by the hit test itself controlled by the AllowChildFrameContent
flag in HitTestRequest.
This means that area-based hit-tests can now return elements from all the child frames
they intersect instead of just the one frame containing the center point. The improved
results from area-based hit-tests will among other things also improve touch adjustment
near frame boundaries.
Tests: fast/dom/nodesFromRect/nodesFromRect-child-frame-content.html
* page/EventHandler.cpp:
(WebCore::EventHandler::hitTestResultAtPoint):
Recursion into child-frames have been moved to RenderFrameBase::nodeAtPoint, so
now hitTestResultAtPoint just needs to set AllowChildFrameContent.
* page/TouchAdjustment.cpp:
(WebCore::TouchAdjustment::parentShadowHostOrOwner):
New function to iterate up across frame boundaries.
(WebCore::TouchAdjustment::compileSubtargetList):
We need to iterate up across frame boundaries to avoid iframes competing with their
own content for touch adjustment.
* rendering/HitTestRequest.h:
(WebCore::HitTestRequest::allowsChildFrameContent):
(WebCore::HitTestRequest::isChildFrameHitTest):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::HitTestResult):
(WebCore::HitTestResult::operator=):
(WebCore::HitTestResult::append):
(WebCore::HitTestResult::dictationAlternatives):
* rendering/HitTestResult.h:
(WebCore::HitTestResult::pointInMainFrame):
(WebCore::HitTestResult::pointInInnerNodeFrame):
(HitTestResult):
m_hitTestLocation is now in main frame coordinates, which make m_pointInMainFrame
unnecessary, but requires the introduction of m_pointInInnerFrame, to remember
the coordinates of inner-node in its own frame.
* rendering/RenderFrameBase.cpp:
(WebCore::RenderFrameBase::nodeAtPoint):
The recursion into child-frames is now handled here instead of in hitTestResultAtPoint, this
allows us to recurse into multiple frames, instead of just one.
* rendering/RenderFrameBase.h:
(RenderFrameBase):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTest):
RenderLayer should not lie about being hit if the request is child-frame request.
* testing/Internals.cpp:
(WebCore::Internals::nodesFromRect):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
Extended so nodesFromRect with child-frame content can be tested.
2013-02-22 Andreas Kling <akling@apple.com>
ShareableElementData should use zero-length array for storage.
<http://webkit.org/b/109959>
Reviewed by Anders Carlsson.
Use a zero-length Attribute array instead of always casting from void* to an array.
It was done this way originally because I didn't know we could sidestep the MSVC
build error with some #pragma hackery and a default constructor for Attribute.
* dom/Attribute.cpp:
(WebCore::Attribute::Attribute):
* dom/DocumentSharedObjectPool.cpp:
(WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
* dom/Element.cpp:
(WebCore::sizeForShareableElementDataWithAttributeCount):
(WebCore::ShareableElementData::ShareableElementData):
(WebCore::ShareableElementData::~ShareableElementData):
(WebCore::UniqueElementData::UniqueElementData):
* dom/Element.h:
(ShareableElementData):
(WebCore::ElementData::attributeItem):
2013-02-22 Andreas Kling <akling@apple.com>
Remove unused declaration: Element::removeCachedHTMLCollection()
Not reviewed by Antti Koivisto.
* dom/Element.h:
(Element):
2013-02-22 Keishi Hattori <keishi@webkit.org>
Add scroll view for new calendar picker
https://bugs.webkit.org/show_bug.cgi?id=110137
Reviewed by Kent Tamura.
Adding a scroll view class as part of the new calendar picker (Bug 109439).
No new tests. Code not yet used.
* Resources/pagepopups/calendarPicker.js:
(View):
(View.prototype.offsetRelativeTo): Returns the offset position of this view relative to the given ancestor element.
(View.prototype.attachTo): Attaches view to a node or view.
(View.prototype.bindCallbackMethods): Binds all methods starting with "on" to this.
(ScrollView): A custom scroll view that can contain extremely long content. CSS values have a limit. This can go beyond that.
(ScrollView.prototype.setWidth): Sets the view width.
(ScrollView.prototype.width):
(ScrollView.prototype.setHeight):Sets the view height.
(ScrollView.prototype.height):
(ScrollView.prototype.onScrollAnimatorStep): Callback for scroll animator step.
(ScrollView.prototype.scrollTo): Scrolls to a certain offset.
(ScrollView.prototype.scrollBy): Scrolls by a certain amount.
(ScrollView.prototype.contentOffset): Current content offset.
(ScrollView.prototype.onMouseWheel): Scroll with the mouse wheel.
(ScrollView.prototype.setContentOffset): Sets the content offset.
(ScrollView.prototype.contentPositionForContentOffset): Returns where the content element should be positioned.
2013-02-22 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: InspectorPageAgent::disable() should not update view metrics regardless of the override state
https://bugs.webkit.org/show_bug.cgi?id=110593
Reviewed by Vsevolod Vlasov.
InspectorPageAgent::disable() now checks if the device metrics are overridden before
telling the client to disable the override.
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::setDeviceMetricsOverride):
(WebCore::InspectorPageAgent::deviceMetricsChanged):
* inspector/InspectorPageAgent.h:
(InspectorPageAgent):
2013-02-22 Zan Dobersek <zdobersek@igalia.com>
Unreviewed, rolling out r143695.
http://trac.webkit.org/changeset/143695
https://bugs.webkit.org/show_bug.cgi?id=110554
Crashes in DocumentLoader::checkLoadComplete on AppleMac WK1, EFL, GTK.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoading):
2013-02-22 Balazs Kelemen <kbalazs@webkit.org>
[CoordGfx] Minor cleanup in CoordinatedGraphicsScene::paintToGraphicsContext
https://bugs.webkit.org/show_bug.cgi?id=109824
Reviewed by Andreas Kling.
Avoid ugly ifdefs by using PlatformGraphicsContext.
No new tests, only refactoring.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::paintToGraphicsContext):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
(CoordinatedGraphicsScene):
2013-02-22 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix make distcheck.
* GNUmakefile.am: Add CodeGeneratorInspectorStrings.py to
EXTRA_DIST.
2013-02-22 Andreas Kling <akling@apple.com>
GlyphPage: ALWAYS_INLINE all performance-relevant getters.
REGRESSION(r143125): ~5% performance hit on Chromium's intl2 page cycler
<http://webkit.org/b/108835>
Reviewed by Antti Koivisto.
Unreviewed desperate hack. Since I can't reproduce the problem and it's only showing
up on two bots, one Linux and one Snow Leopard, I'm thinking it may be GCC related.
Let's see what happens if we tell it to force inline all the GlyphPage getters.
* platform/graphics/GlyphPage.h:
(WebCore::GlyphPage::indexForCharacter):
(WebCore::GlyphPage::glyphDataForCharacter):
(WebCore::GlyphPage::glyphDataForIndex):
(WebCore::GlyphPage::glyphAt):
(WebCore::GlyphPage::fontDataForCharacter):
2013-02-22 Zach Kuznia <zork@chromium.org>
Update FileReaderLoader to allow specifying a range and reading as a blob.
https://bugs.webkit.org/show_bug.cgi?id=110556
This is part of a series of patches to implement Stream support. See:
https://bugs.webkit.org/show_bug.cgi?id=110194
Reviewed by Hajime Morrita.
Tests: will be added when js binding is added.
* fileapi/FileReaderLoader.cpp:
* fileapi/FileReaderLoader.h:
2013-02-22 Kondapally Kalyan <kalyan.kondapally@intel.com>
[WebGL][EFL] Support for creating surface with alpha disabled.
https://bugs.webkit.org/show_bug.cgi?id=110067
Reviewed by Kenneth Rohde Christiansen.
Covered by compositing/webgl/webgl-no-alpha.html
We currently always create a surface supporting alpha channel.
With this patch we create the surface with alpha only if
required.
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::initialize):
* platform/graphics/efl/GraphicsContext3DPrivate.h:
(GraphicsContext3DPrivate):
* platform/graphics/opengl/GLPlatformSurface.cpp:
(WebCore::GLPlatformSurface::createOffScreenSurface):
(WebCore::GLPlatformSurface::createTransportSurface):
(WebCore::GLPlatformSurface::GLPlatformSurface):
(WebCore::GLPlatformSurface::attributes):
(WebCore):
* platform/graphics/opengl/GLPlatformSurface.h:
* platform/graphics/surfaces/egl/EGLConfigSelector.cpp:
(WebCore):
(WebCore::EGLConfigSelector::EGLConfigSelector):
(WebCore::EGLConfigSelector::pBufferContextConfig):
(WebCore::EGLConfigSelector::surfaceContextConfig):
* platform/graphics/surfaces/egl/EGLConfigSelector.h:
(EGLConfigSelector):
* platform/graphics/surfaces/egl/EGLSurface.cpp:
(WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
* platform/graphics/surfaces/egl/EGLSurface.h:
(EGLWindowTransportSurface):
* platform/graphics/surfaces/glx/GLXConfigSelector.h:
(WebCore):
(WebCore::GLXConfigSelector::GLXConfigSelector):
(WebCore::GLXConfigSelector::pixmapContextConfig):
(WebCore::GLXConfigSelector::surfaceContextConfig):
(WebCore::GLXConfigSelector::surfaceClientConfig):
(WebCore::GLXConfigSelector::validateAttributes):
(WebCore::GLXConfigSelector::findMatchingConfig):
(WebCore::GLXConfigSelector::findMatchingConfigWithVisualId):
(GLXConfigSelector):
* platform/graphics/surfaces/glx/GLXContext.cpp:
(WebCore::GLXOffScreenContext::initialize):
* platform/graphics/surfaces/glx/GLXSurface.cpp:
(WebCore::GLXTransportSurface::GLXTransportSurface):
(WebCore::GLXOffScreenSurface::GLXOffScreenSurface):
(WebCore::GLXOffScreenSurface::initialize):
* platform/graphics/surfaces/glx/GLXSurface.h:
(GLXTransportSurface):
(GLXOffScreenSurface):
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createPixmap):
2013-02-22 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: allow opting out from vertical split in the dock-to-right mode
https://bugs.webkit.org/show_bug.cgi?id=110564
Reviewed by Vsevolod Vlasov.
* English.lproj/localizedStrings.js:
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype._splitVertically):
* inspector/front-end/ScriptsPanel.js:
* inspector/front-end/Settings.js:
(WebInspector.Settings):
* inspector/front-end/SettingsScreen.js:
(WebInspector.GenericSettingsTab):
2013-02-21 Claudio Saavedra <csaavedra@igalia.com>
[GTK] Control+Shift+Up/Down selection works backwards
https://bugs.webkit.org/show_bug.cgi?id=110459
Reviewed by Martin Robinson.
* platform/gtk/KeyBindingTranslator.cpp:
(WebCore): The translation table for paragraph selection
commands is backwards, fix it.
2013-02-21 Eric Seidel <eric@webkit.org>
REGRESSION(r143664, r143681): http/tests/security/feed-urls-from-remote.html fails
https://bugs.webkit.org/show_bug.cgi?id=110554
Reviewed by Ryosuke Niwa.
Will fix http/tests/security/feed-urls-from-remote.html for Mac WK1.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoading):
2013-02-21 Alec Flett <alecflett@chromium.org>
IndexedDB: Implement SharedBuffer version of put() / onSuccess()
https://bugs.webkit.org/show_bug.cgi?id=110398
Reviewed by Tony Chang.
This avoids all unnecessary data copies within the context of
IndexedDB proper, and removes all references to
SerializedScriptValue from the IndexedDB "backend".
No new tests because this is just a refactor.
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::deserializeIDBValueBuffer): New version of deserializeIDBValue which takes SharedBuffer.
2013-02-21 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143691.
http://trac.webkit.org/changeset/143691
https://bugs.webkit.org/show_bug.cgi?id=110559
Breaks compilation on mac. (Requested by vsevik on #webkit).
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::logLayerInfo):
(WebCore):
(WebCore::RenderLayerCompositor::reasonForCompositing):
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
2013-02-21 Philip Rogers <pdr@google.com>
Remove deep copy of ImageBuffer in tiled SVG backgrounds
https://bugs.webkit.org/show_bug.cgi?id=110549
Reviewed by Dirk Schulze.
SVGImage::drawPatternForContainer creates a temporary ImageBuffer for stamping out tiled
backgrounds. Previously this ImageBuffer was unnecessarily deep-copied! This patch uses a
shallow copy, taking advantage of the fact that the temporary ImageBuffer is never modified.
This patch is covered with existing tests.
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawPatternForContainer):
2013-02-21 Antoine Quint <graouts@apple.com>
Expose a list of all reasons that qualify a RenderLayer to be composited
https://bugs.webkit.org/show_bug.cgi?id=110505
Expose the various reasons that can qualify a RenderLayer to be composited
via a new bitmask returned by the reasonForCompositing() method on
RenderLayerCompositor. This method already existed and was used for logging
purposes, but the previous functionality is now accessed via the
logReasonForCompositing() method.
This will allow the the InspectorLayerTreeAgent to provide this information
to the front-end on a per-layer basis as requested by the front-end.
Reviewed by Simon Fraser.
No new tests.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::logLayerInfo):
(WebCore::RenderLayerCompositor::reasonsForCompositing):
(WebCore):
(WebCore::RenderLayerCompositor::logReasonsForCompositing):
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
2013-02-21 Takashi Sakamoto <tasak@google.com>
RenderTable::paintBoxDecorations sometimes draws box-shadow twice.
https://bugs.webkit.org/show_bug.cgi?id=110196
Reviewed by Simon Fraser.
When RenderTable::paintBoxDecorations draws box-shadow, paintBackground
should not draw box-shadow. So we have to provide bleedAvoidance
parameter for RenderBox::paintBackground.
Test: fast/css/table-border-radius-with-box-shadow.html
* rendering/RenderTable.cpp:
(WebCore::RenderTable::paintBoxDecorations):
Provide bleedAvoidance, which determineBackgroundBleedAvoidance
returns, for paintBackground.
2013-02-21 Grzegorz Czajkowski <g.czajkowski@samsung.com>
Allow to retrieve the request data from abstract TextCheckingRequest to be accessible for WK2
https://bugs.webkit.org/show_bug.cgi?id=110208
Reviewed by Hajime Morrita.
The WebCore changes are required to implement asynchronous spell checking in WK2.
The idea of asynchronous spell checking in WK1 is to pass the pointer to the abstract object
to the client who is able to verify the given text and notify the WebCore about results.
WK2 will extract the request data and pass it (with additional information) to the UIProcess.
No new tests, covered by editing/spelling tests.
* editing/Editor.cpp:
(WebCore::Editor::markAndReplaceFor):
Extract the request data as it is the member of 'TextCheckingRequest'.
* editing/SpellChecker.cpp:
(WebCore):
(WebCore::SpellCheckRequest::didCancel):
(WebCore::SpellCheckRequest::setCheckerAndSequence):
(WebCore::SpellChecker::requestCheckingFor):
(WebCore::SpellChecker::enqueueRequest):
(WebCore::SpellChecker::didCheck):
(WebCore::SpellChecker::didCheckSucceed):
* platform/text/TextChecking.h:
(WebCore):
(TextCheckingRequestData):
Introduce a new 'TextCheckingRequestData' class to keep the request data and to
easy extract it from the 'TextCheckingRequest'.
(WebCore::TextCheckingRequestData::TextCheckingRequestData):
(TextCheckingRequest):
(WebCore::TextCheckingRequest::~TextCheckingRequest):
2013-02-21 Brady Eidson <beidson@apple.com>
Move fastlog2() to WTF/MathExtras.h so it can be used from multiple projects.
Rubberstamped by Geoff Garen.
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::lruListFor): Remove the inline fastlog2 and use WTF::fastlog2.
2013-02-21 Dimitri Glazkov <dglazkov@chromium.org>
Split SelectorChecker's fast-checking logic into its own class.
https://bugs.webkit.org/show_bug.cgi?id=106860
Reviewed by Antti Koivisto.
No functional changes, covered by existing tests.
* CMakeLists.txt: Added new class to existing build system.
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* css/CSSAllInOne.cpp: Ditto.
* css/RuleSet.cpp:
(WebCore::RuleData::RuleData): Changed to use SelectorCheckerFastPath.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matches): Ditto.
* css/SelectorChecker.h:
(SelectorChecker): Move fast path code into SelectorCheckerFastPath.
* css/SelectorCheckerFastPath.cpp: Added.
* css/SelectorCheckerFastPath.h: Added.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::ruleMatches): Changed to use SelectorCheckerFastPath.
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::initialize): Ditto.
2013-02-21 Tony Gentilcore <tonyg@chromium.org>
Invalidate outstanding checkpoints for the background input stream and preload scanner
https://bugs.webkit.org/show_bug.cgi?id=110537
Reviewed by Adam Barth.
fast/tokenizer/write-before-load.html caused duplicate didFailSpeculation() calls for the same checkpoint.
One was triggered by processParsedChunkFromBackgroundParser and the other by resumeParsingAfterScriptExecution.
This change ensures that after we send a checkpoint, it is cleared so it won't be sent again until the next
processParsedChunkFromBackgroundParser().
No new tests because no new functionality.
* html/parser/BackgroundHTMLInputStream.cpp:
(WebCore::BackgroundHTMLInputStream::rewindTo):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didFailSpeculation):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::rewindTo):
2013-02-21 Dean Jackson <dino@apple.com>
Followup commit for https://bugs.webkit.org/show_bug.cgi?id=110541
from a comment by Jon Lee.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Logic
in conditional was unnecessarily complex.
2013-02-21 Ojan Vafai <ojan@chromium.org>
Clean up computePreferredLogicalWidths functions in TableLayout subclasses
https://bugs.webkit.org/show_bug.cgi?id=110515
Reviewed by Tony Chang.
No change in behavior. This is just a cleanup in preparation for other
refactoring to this code.
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::calcWidthArray):
Move a FIXME here from computePreferredLogicalWidths. It makes more sense here.
(WebCore::FixedTableLayout::computePreferredLogicalWidths):
-Remove outdated or unhelpful comments.
-Isolate the fixed width codepath to make it a bit less convoluted.
(WebCore::FixedTableLayout::layout):
* rendering/FixedTableLayout.h:
The argument to calcWidthArray is never used. Remove it.
2013-02-21 Eric Seidel <eric@webkit.org>
LayoutTests/fast/encoding/parser-tests-*.html timeout with threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=109995
Unreviewed speculative fix for Mac WK1.
It appears that m_frame can be null for Mac WK1.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoading):
2013-02-21 Dean Jackson <dino@apple.com>
Better sizing model for Snapshotted plugins
https://bugs.webkit.org/show_bug.cgi?id=110541
Reviewed by Simon Fraser.
Clarify the way we apply sizing rules to snapshotted plug-ins. In
testing we've found that plug-ins smaller than 40px in either
dimension should never be frozen. Also, larger plugins should
be explicitly marked, because often they are the single dominant
element on the page.
As a drive-by, I removed the flag that indicated whether or not
the label should show automatically. It wasn't being used. This is
all determined from the shadow root and its CSS now.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): New values for size thresholds.
(WebCore::HTMLPlugInImageElement::createRenderer): Remove call to setShouldShowSnapshotLabelAutomatically.
(WebCore::classNameForShadowRoot): Remove logging and clearly assign sizing classes.
(WebCore::HTMLPlugInImageElement::updateSnapshotInfo): We don't need the page size any more.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Use new constant names.
* html/HTMLPlugInImageElement.h:
(HTMLPlugInImageElement): Remove setShouldShowSnapshotLabelAutomatically.
2013-02-21 Benjamin Poulain <benjamin@webkit.org>
Fix the build after r143664.
Unreviewed.
* WebCore.exp.in:
2013-02-21 Eric Seidel <eric@webkit.org>
tables/mozilla/bugs/bug8950.html fails with threaded parser due to attribute duplication
https://bugs.webkit.org/show_bug.cgi?id=110532
Reviewed by Adam Barth.
This is a very basic failure which we should have caught earlier with the html5lib parser
tests, except those use document.write and thus avoid the threaded parser.
AtomicHTMLToken expects its attributes to be unique. We were not doing that for the
CompactHTMLToken path, and this ancient mozilla table test caught that.
Fixes tables/mozilla/bugs/bug8950.html.
* html/parser/AtomicHTMLToken.h:
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
(WebCore::AtomicHTMLToken::initializeAttributes):
2013-02-21 Adam Barth <abarth@webkit.org>
Threaded HTML Parser fails fast/dom/Document/readystate.html
https://bugs.webkit.org/show_bug.cgi?id=110529
Reviewed by Eric Seidel.
We need to create the tokenizer even when we finish a script-created
parser. Most of the time, the tokenizer has already been created at
this point because it is created by calls to document.write.
Test: fast/parser/body-should-exist-after-open-close.html
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::finish):
2013-02-21 Emil A Eklund <eae@chromium.org>
Lots of LayoutUnit assertions when loading a Wikipedia article
https://bugs.webkit.org/show_bug.cgi?id=110270
Reviewed by Levi Weintraub.
Change RenderBlock::adjustRectForColumns to ensure that the
endColumn calculation does not overflow.
No new tests, covered by existing tests.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::adjustRectForColumns):
Make the endOffset value be no less than the beforeBorderPadding
value to ensure that endColumn is not negative.
2013-02-21 Eric Seidel <eric@webkit.org>
LayoutTests/fast/encoding/parser-tests-*.html timeout with threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=109995
Reviewed by Adam Barth.
In the case where during main document onload, we
load a new iframe, and then from within that iframe
we run script to remove the iframe and call testRunner.notifyDone()
the notifyDone() will not correctly dump because
the testRunner does not yet realize that the main resource
has completed loading.
In the main-thread parser, the testRunner does correctly know
that the main thread has completed, because removing the iframe
causes a didFailLoad callback to the embedder, because when
the iframe is being removed, the DocumentLoader for that iframe
is still on the stack and believe's its loading
(because it has a MainResourceLoader which is also on the stack
delivering us the bytes which contain this inline script).
In the threaded-parser case, the DocumentLoader and MainResourceLoader
are no longer on the stack, as we are parsing the iframe asynchronously
after all the bytes have been delivered, and the MainResourceLoader destroyed.
Thus when DocumentLoader::stopLoading() is called, loading() returns
false, and it returns early. One might argue that we should remove that
early return entirely, but it seemed safer to extend the idea of
when we're loading to include the time when the parser is active.
This patch solves this by teaching the DocumentLoader that it is still
"loading" so long as the parser is still active.
Also added a call to DocumentLoader::checkLoadComplete from
Document::decrementActiveParserCount which seemed to cause
http/tests/multipart/policy-ignore-crash.php to pass.
This causes http/tests/security/feed-urls-from-remote.html to timeout
on chromium (but no other platforms that I'm aware of). I believe this
is due to a bug in our DRT implementation in the policyDelegate case
(which AFAIK is not a codepath which Chromium actually uses in the wild).
The test already times out on TOT if you remove the setCustomPolicyDelegate calls!
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoading):
(WebCore):
* loader/DocumentLoader.h:
(DocumentLoader):
2013-02-21 Erik Arvidsson <arv@chromium.org>
Nodes should not have attributes property
https://bugs.webkit.org/show_bug.cgi?id=110510
Reviewed by Adam Barth.
According to http://dom.spec.whatwg.org/ attributes and hasAttributes
should be defined on Element and not on Node.
Test: fast/dom/Text/text-should-not-have-attributes.html
* dom/Element.idl:
* dom/Node.idl:
2013-02-21 Tony Gentilcore <tonyg@chromium.org>
Make BackgroundHTMLParser rewind the preload scanner instead of clear it
https://bugs.webkit.org/show_bug.cgi?id=110517
Reviewed by Adam Barth.
No new tests becuase no new functionality.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::resumeFrom):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
* html/parser/BackgroundHTMLParser.h:
(Checkpoint):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didFailSpeculation):
* html/parser/HTMLDocumentParser.h:
(ParsedChunk):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::createCheckpoint):
(WebCore):
(WebCore::TokenPreloadScanner::rewindTo):
* html/parser/HTMLPreloadScanner.h:
(WebCore):
(TokenPreloadScanner):
(WebCore::TokenPreloadScanner::Checkpoint::Checkpoint):
(Checkpoint):
2013-02-21 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143536.
http://trac.webkit.org/changeset/143536
https://bugs.webkit.org/show_bug.cgi?id=110523
Causing a bunch of tests to fail on Windows, requires
rebaselining (Requested by rfong on #webkit).
* config.h:
* page/Settings.cpp:
(WebCore):
(WebCore::Settings::setShouldPaintNativeControls):
* page/Settings.h:
(Settings):
(WebCore::Settings::shouldPaintNativeControls):
* platform/win/ScrollbarThemeWin.cpp:
(WebCore):
* rendering/RenderThemeWin.cpp:
(WebCore):
2013-02-21 Simon Fraser <simon.fraser@apple.com>
Don't make an overhang shadow layer when the WKView has a transparent background
https://bugs.webkit.org/show_bug.cgi?id=110429
Reviewed by Anders Carlsson.
When in coordinated scrolling mode, RenderLayerCompositor makes a layer to show
the shadow around the content when rubber-banding. However, if the view is
transparent, we don't want to make this layer, since it darkens the entire view.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateRootLayerConfiguration): Code was moved
into viewHasTransparentBackground(), so just call that here.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresContentShadowLayer): Don't make
a shadow layer when the view is transparent.
(WebCore::RenderLayerCompositor::viewHasTransparentBackground): Return
true if the view is transparent or has a non-opaque background color,
and optionally return that color.
* rendering/RenderLayerCompositor.h:
2013-02-21 Simon Fraser <simon.fraser@apple.com>
[Safari] Crash with opacity + drop shadow filter + child element extending beyond filter outsets
https://bugs.webkit.org/show_bug.cgi?id=107467
Reviewed by Dean Jackson.
The filter code plays games with the current GraphicsContext, replacing the current
context with one which will get filtered.
This doesn't play nicely with the RenderLayer code which lazily starts transparency
layers. If we don't start a transparency layer until painting a child of the filtered
layer, then the transparency layer is started using the wrong context.
Fix by eagerly starting transparency layers if we have both a filter and opacity.
Test: css3/filters/filter-with-opacity-and-children.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents):
2013-02-21 Tony Chang <tony@chromium.org>
Autogenerate Settings that call setNeedsRecalcStyleInAllFrames when set
https://bugs.webkit.org/show_bug.cgi?id=109989
Reviewed by Ryosuke Niwa.
Start generating the code for settings that call m_page->setNeedsRecalcStyleInAllFrames()
when the value is changed. This allows us to generate 10 more settings. As a follow up, we
can remove some methods from DRT/WTR after this.
No new tests, this is a build refactor and should not impact any test results.
* page/Settings.cpp:
(WebCore::Settings::Settings): Remove member variables. Add SETTINGS_SETTER_BODIES macro that
has the generated setter bodies.
* page/Settings.h:
(Settings): Remove code that is now generated.
* page/Settings.in: Add new entries with setNeedsStyleRecalcWhenSetting=1
* page/make_settings.pl:
(defaultItemFactory): Add setNeedsStyleRecalcWhenSetting flag.
(generateSettingsMacrosHeader): Print macro for setter bodies.
(printConditionalMacros): Add setter body code.
(printGettersAndSetters): Pass in setNeedsStyleRecalcWhenSetting so we know whether to inline the
setter in the header or not.
(printGetterAndSetter): Ditto.
(printSetterBodies): Print macro for setter bodies.
(printSetterBody): Print setter body for a single setting.
2013-02-21 Dean Jackson <dino@apple.com>
Plug-in snapshotting code always accepts first snapshot
https://bugs.webkit.org/show_bug.cgi?id=110495
Reviewed by Tim Horton.
When we detect a plugin that can be snapshotted we start capturing
images until we find one that we believe isn't blank, or we timeout.
I introduced a regression recently where we swap renderers as
soon as the snapshot arrives, whether or not is is blank.
The fix was to have the embedder (currently only WK2) be the one
who tells the HTMLPlugInElement to start displaying snapshots.
I also reduced the number of snapshot attempts we will make before
giving up. We don't want to sit around for 66 seconds displaying nothing.
* html/HTMLPlugInElement.h:
(WebCore::HTMLPlugInElement::setDisplayState): Make this a virtual function.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::setDisplayState): Override to call the
base class version, but swap renderers if we should move to the snapshot.
(WebCore::HTMLPlugInImageElement::updateSnapshot): Don't swap renderers here any more.
* html/HTMLPlugInImageElement.h: New virtual version of setDisplayState.
2013-02-21 Tony Gentilcore <tonyg@chromium.org>
Tune BackgroundHTMLParser's pendingTokenLimit based on a benchmark
https://bugs.webkit.org/show_bug.cgi?id=110408
Reviewed by Adam Barth.
This constant was tuned by running the top 25 sites in Telemetry on a Nexus 7 device.
The new value decreases the maximum time spent parsing by 40% without significantly impacting total parse time or DOMContentLoaded.
No new tests because no new functionality.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore):
2013-02-21 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143419.
http://trac.webkit.org/changeset/143419
https://bugs.webkit.org/show_bug.cgi?id=110507
Broke border-image on Mac (Requested by jpfau on #webkit).
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawTiledImage):
* platform/graphics/GraphicsContext.h:
(GraphicsContext):
* platform/graphics/Image.cpp:
(WebCore::Image::drawTiled):
* platform/graphics/Image.h:
(Image):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintNinePieceImage):
2013-02-21 Tom Sepez <tsepez@chromium.org>
XSSAuditor should block pages by redirecting to a sandboxed data: URL.
https://bugs.webkit.org/show_bug.cgi?id=110406
Reviewed by Adam Barth.
Patch originally by mkwst@chromium.org.
Tests: http/tests/security/xssAuditor/block-does-not-leak-location.html
http/tests/security/xssAuditor/block-does-not-leak-referrer.html
http/tests/security/xssAuditor/full-block-script-tag-cross-domain.html
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::XSSAuditorDelegate::didBlockScript):
When blocking entire pages via the XSSAuditor, redirect to a data:
URL to ensure that requests for properties don't leak information.
2013-02-21 Christian Biesinger <cbiesinger@chromium.org>
Convert buttons from DeprecatedFlexBox to nondeprecated FlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=109994
Reviewed by Ojan Vafai.
Covered by existing tests for <button> and <input
type="button|submit|reset">
* css/html.css:
(input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::-webkit-file-upload-button, button):
Convert from box-align to align-items. We are using flex-start here in
conjunction with an auto margin for correct centering. See
RenderButton.cpp below for the margin & more explanation.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
Add a case for creating a non-deprecated flex box.
* rendering/RenderButton.cpp:
(WebCore::RenderButton::RenderButton):
(WebCore::RenderButton::addChild):
(WebCore::RenderButton::removeChild):
Forward to new base class
(WebCore::RenderButton::styleWillChange):
(WebCore::RenderButton::setupInnerStyle):
We are now using flexbox properties.
- min-width is needed for correct shrinking of the contents
- margin-top and margin-bottom are used for correct centering. We
can't use align-items: center because results are incorrect when the
content overflows. See LayoutTests/fast/forms/control-clip.html
* rendering/RenderButton.h:
Inherit from RenderFlexibleBox
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::createAnonymous):
(WebCore):
* rendering/RenderFlexibleBox.h:
(RenderFlexibleBox):
Add a createAnonymous function to RenderFlexibleBox.
2013-02-21 John Mellor <johnme@chromium.org>
[chromium] Simplify computation of screenRect/windowRect.
https://bugs.webkit.org/show_bug.cgi?id=110456
Reviewed by Adam Barth.
This patch removes applyDeviceScaleFactorInCompositor checks
added by http://trac.webkit.org/changeset/139356 because
Chrome for Android now sizes its screen and window in DIP
units (like other platforms), so they are no longer necessary.
No new tests, since this is just removing an unused codepath.
* platform/chromium/PlatformScreenChromium.cpp:
(WebCore::screenRect):
(WebCore::screenAvailableRect):
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::processSubtree):
2013-02-21 Beth Dakin <bdakin@apple.com>
Out-of-view fixed position check should not be affected by page scale at all on Mac
https://bugs.webkit.org/show_bug.cgi?id=110294
-and corresponding-
<rdar://problem/13247582>
Reviewed by Simon Fraser.
Don't scale the layerBounds. Generally, the layerBounds should be relative to the
viewBounds which are also unscaled. Chromium used to want this behavior, but it is
covered by their pageScaleFactorAppliedInCompositor implementation now.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
2013-02-21 Philip Rogers <pdr@google.com>
Stop starting animations when leaving a page
https://bugs.webkit.org/show_bug.cgi?id=110257
Reviewed by Stephen Chenney.
SVGImage::resetAnimation() incorrectly started animations which could cause a crash
when leaving the page. This patch fixes resetAnimation to only stop the animation,
similar to BitmapImage::resetAnimation().
Additionally, this patch removes an unneeded call to Document::updateStyleForAllDocuments()
that was present in the animation loop. This makes the animation code more resistant to
similar bugs in the future.
Both of these changes are functionally covered with existing tests.
Test: svg/animations/reset-animation-crash.html
* svg/animation/SMILTimeContainer.cpp:
(WebCore::SMILTimeContainer::updateAnimations):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::resetAnimation):
2013-02-19 Mark Hahnenberg <mhahnenberg@apple.com>
Objective-C API: Need a way to use the Objective-C JavaScript API with WebKit
https://bugs.webkit.org/show_bug.cgi?id=106059
Reviewed by Geoffrey Garen.
* WebCore.exp.in:
* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::setWindow): Since we're basically abandoning a JSDOMWindow here, we call
garbageCollectSoon().
* bindings/js/JSDOMWindowShell.h:
* bindings/js/ScriptController.h: New function to get the JSContext for the global object of the current main world.
* bindings/js/ScriptControllerMac.mm:
(WebCore::ScriptController::javaScriptContext): Ditto.
* bindings/objc/WebScriptObject.h: Added ifdef guards. Also new convenience conversion function for the JSC Obj-C API.
* bindings/objc/WebScriptObject.mm: JSC::JSValue and JSValue conflict with one another, so we have to be more specific.
(-[WebScriptObject _globalContextRef]): Useful helper function for getting the JSGlobalContextRef of a particular WebScriptObject.
(-[WebScriptObject callWebScriptMethod:withArguments:]):
(-[WebScriptObject evaluateWebScript:]):
(-[WebScriptObject valueForKey:]):
(-[WebScriptObject webScriptValueAtIndex:]):
(+[WebScriptObject _convertValueToObjcValue:JSC::originRootObject:rootObject:]):
(-[WebScriptObject JSValue]): Implementation of convenience WebScriptObject conversion function to new Objective-C API.
* bindings/objc/WebScriptObjectPrivate.h:
2013-02-21 Kentaro Hara <haraken@chromium.org>
[V8] Rename add{Node,Object}ToGroup() to add{Node,Object}WrapperToGroup()
https://bugs.webkit.org/show_bug.cgi?id=110404
Reviewed by Adam Barth.
The current function name is confusing
(See discussion in bug 110396). We should rename the functions
so that it becomes clear that "Node"/"Object" refers to a type
of a wrapper in the second argument.
No tests. No change in behavior.
* bindings/v8/V8GCController.cpp:
(WebCore::WrapperGrouper::addObjectWrapperToGroup):
(WebCore::WrapperGrouper::addNodeWrapperToGroup):
2013-02-21 Vivek Galatage <vivek.vg@samsung.com>
[JS Binding] ScriptObject default constructor should initialize the Script State to 0
https://bugs.webkit.org/show_bug.cgi?id=110177
Reviewed by Geoffrey Garen.
Adding the initialization of ScriptState to 0.
* bindings/js/ScriptObject.h:
(WebCore::ScriptObject::ScriptObject):
2013-02-21 Nate Chapin <japhet@chromium.org>
REGRESSION: Crash in MainResourceLoader::setDataBufferingPolicy when sharing an html5 video via email
https://bugs.webkit.org/show_bug.cgi?id=110075
Reviewed by Alexey Proskuryakov.
Test: webarchive/loading/video-in-webarchive.html
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::continueAfterContentPolicy): isStopping()
isn't accurate to determine whether a SubstituteData load should
continue, as this point in the code shouldn't be reachable from any point
where isStopping() would return true. DocumentLoader might have completely
stopped and believe that MainResourceLoader is complete, though. Don't
continue in that case.
(WebCore::MainResourceLoader::setDataBufferingPolicy): m_resource can be null
in a reasonable case, handle it rather than asserting that it can't be null.
2013-02-21 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143616.
http://trac.webkit.org/changeset/143616
https://bugs.webkit.org/show_bug.cgi?id=110491
Caused a test failure on Chromium Mac. (Requested by vollick
on #webkit).
* page/FrameView.cpp:
(WebCore::FrameView::visibleContentsResized):
* page/FrameView.h:
(FrameView):
* page/Page.cpp:
(WebCore::Page::setPageScaleFactor):
2013-02-21 Robert Hogan <robert@webkit.org>
Overflow can be cleared just before it is computed
https://bugs.webkit.org/show_bug.cgi?id=110361
Reviewed by David Hyatt.
Overflow can be cleared just before it is computed in a lot of places because overflow computation happens all at once
now rather than cumulatively during layout. Any object that doesn't use computeOverflow() will still need to clear it manually
though.
No new tests, refactoring.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::computeOverflow):
(WebCore::RenderBlock::simplifiedLayout):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutInlineChildren):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::layout):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout):
2013-02-21 Alok Priyadarshi <alokp@chromium.org>
Mark GraphicsLayers as opaque when possible
https://bugs.webkit.org/show_bug.cgi?id=70634
Reviewed by Simon Fraser.
Mark layers as opaque in a very simple case - the main renderer has an
opaque background and covers the entire composited bounds.
RenderLayer::contentsOpaqueInRect has been implemented conservatively,
i.e. it errs towards returning false negative.
Tests: compositing/contents-opaque/contents-opaque-background-clip.html
compositing/contents-opaque/contents-opaque-background-color.html
compositing/contents-opaque/contents-opaque-layer-opacity.html
compositing/contents-opaque/contents-opaque-layer-transform.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::backgroundIsOpaqueInRect):
(WebCore):
* rendering/RenderBox.h:
(RenderBox):
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::backgroundIsOpaqueInRect):
(WebCore::RenderBoxModelObject::foregroundIsOpaqueInRect):
(RenderBoxModelObject):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::contentsOpaqueInRect):
(WebCore):
(WebCore::RenderLayer::listContentsOpaqueInRect):
* rendering/RenderLayer.h:
(RenderLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
* rendering/RenderLayerModelObject.h:
(RenderLayerModelObject):
2013-02-21 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Implement grid growth during auto placement
https://bugs.webkit.org/show_bug.cgi?id=110418
Reviewed by Ojan Vafai.
This change implements the last remaining piece of the auto placement algorithm:
growing the grid mid-placement. With that landed, we should handle all cases properly.
Change covered by : fast/css-grid-layout/grid-item-addition-auto-placement.html
fast/css-grid-layout/grid-item-removal-auto-placement.html
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::growGrid):
Added this helper function to grow the grid one item in a direction.
(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
Updated this function to grow in the minor axis direction and insert in the
newly created grid area.
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
Updated this function to grow in the major axis direction and insert in the
newly create grid area. Unfortunately this code cannot use the iterator to find
the new position as the (auto, auto) case iterates orthogonally to the major axis
direction, which we just grew.
* rendering/RenderGrid.h:
Added growGrid.
2013-02-21 Martin Robinson <mrobinson@igalia.com>
A couple more 'make dist' fixes for WebKitGTK+.
* GNUmakefile.list.am: Add a missing file to the source list.
2013-02-21 Andrei Bucur <abucur@adobe.com>
-webkit-margin-collapse: separate doesn't work correctly for before margins
https://bugs.webkit.org/show_bug.cgi?id=109956
Reviewed by David Hyatt.
The collapsing code for "-webkit-margin-collapse: separate" assumed the margin value inside
marginInfo always contributes to the position of the child. This is valid only if the collapse
doesn't happen at the before side of the container. In that case, the child needs to be positioned
at the margin value specified in the style sheet.
Test: fast/block/margin-collapse/webkit-margin-collapse-separate-position.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::collapseMargins):
2013-02-21 Tien-Ren Chen <trchen@chromium.org>
Need to re-layout fixed position elements after scale when using settings()->fixedElementsLayoutRelativeToFrame()
https://bugs.webkit.org/show_bug.cgi?id=105486
Reviewed by James Robinson.
In settings()->fixedElementsLayoutRelativeToFrame() mode, fixed-position
elements are layout relative to the current visible viewport, which can
be different from the layout viewport when using fixed-layout mode.
We need to re-layout fixed-position elements in case of visible content
size changes.
The test is currently chromium-specific due to difficulties to make this
test works on Mac. The mac port seems to work very differently with
visible content size when a page is scaled. And there is no reliable way
to hide scrollbars in mac-wk1 that doesn't cause a side effect.
Test: platform/chromium/fast/repaint/relayout-fixed-position-after-scale.html
* page/FrameView.cpp:
(WebCore::FrameView::visibleContentsResized):
* page/FrameView.h:
(FrameView):
* page/Page.cpp:
(WebCore::Page::setPageScaleFactor):
2013-02-21 Xan Lopez <xlopez@rim.com>
[BlackBerry] LayerFilterRenderer: fix inclusion of Vector.h
https://bugs.webkit.org/show_bug.cgi?id=110476
Reviewed by Rob Buis.
Added in r124242. The include line should be wtf/Vector.h
* platform/graphics/blackberry/LayerFilterRenderer.cpp:
2013-02-21 David Hyatt <hyatt@apple.com>
[New Multicolumn] Remove unneeded layout method in RenderMultiColumnFlowThread.
https://bugs.webkit.org/show_bug.cgi?id=110477.
Reviewed by Antti Koivisto.
I forgot that both the sets and the flow thread lay out before the containing
RenderMultiColumnBlock has finished. That means it hasn't computed its overflow yet.
Therefore there is no need to force it to compute its overflow from inside
RenderMultiColumnFlowThread::layout, because the minute RenderMultiColumnFlowThread
finishes its layout, the block will compute its overflow anyway.
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore):
* rendering/RenderMultiColumnFlowThread.h:
(RenderMultiColumnFlowThread):
2013-02-21 Martin Robinson <mrobinson@igalia.com>
[GTK] Move feature overriding to the configure phase
https://bugs.webkit.org/show_bug.cgi?id=110293
Reviewed by Gustavo Noronha Silva.
* GNUmakefile.am: No longer include GNUmakefile.features.am. We don't
have to process the result of this file or do any modification of
feature_defines_override, because this variable is gone.
2013-02-21 Andrey Adaikin <aandrey@chromium.org>
Unreviewed. Rolling out an unindented change from r143580.
* inspector/Inspector.json:
2013-02-21 Andreas Kling <akling@apple.com>
GlyphPage: Bake per-glyph font data array into same allocation as GlyphPage.
A hopeful fix for REGRESSION(r143125): ~5% performance hit on Chromium's intl2 page cycler
<http://webkit.org/b/108835>
Reviewed by Antti Koivisto.
Rewire GlyphPage so that we have to decide at creation time whether there will be a per-glyph
array of SimpleFontData* or not. This removes one allocation and one step of indirection for
pages with glyphs from mixed fonts.
* platform/graphics/GlyphPage.h:
(WebCore::GlyphPage::createForMixedFontData):
(WebCore::GlyphPage::createForSingleFontData):
(WebCore::GlyphPage::createCopiedSystemFallbackPage):
(WebCore::GlyphPage::~GlyphPage):
(WebCore::GlyphPage::glyphDataForIndex):
(WebCore::GlyphPage::fontDataForCharacter):
(WebCore::GlyphPage::setGlyphDataForIndex):
(WebCore::GlyphPage::removeFontDataFromSystemFallbackPage):
(WebCore::GlyphPage::GlyphPage):
(WebCore::GlyphPage::hasPerGlyphFontData):
(GlyphPage):
* platform/graphics/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::initializePage):
2013-02-21 Xan Lopez <xlopez@rim.com>
[BlackBerry] MediaPlayerPrivateBlackBerry: include Logging.h
https://bugs.webkit.org/show_bug.cgi?id=110455
Reviewed by Eric Carlson.
LOG is used in this file, so it is needed.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
2013-02-21 Keishi Hattori <keishi@webkit.org>
Add animation class for new calendar picker
https://bugs.webkit.org/show_bug.cgi?id=110132
Reviewed by Kent Tamura.
Adding animation related classes as part of the calendar picker
redesign(Bug 109439).
No new tests. Code is not used yet.
* Resources/pagepopups/calendarPicker.js:
(AnimationTimingFunction.Linear): Parameter t should be a number between 0 and 1.
(AnimationTimingFunction.EaseInOut): Ditto.
(AnimationManager): All animators are managed by this class so we
can dispatch "animationFrameWillFinish" event after all the updates.
(AnimationManager.prototype._startAnimation):
(AnimationManager.prototype._stopAnimation):
(AnimationManager.prototype.add): Adds an animator to the list of running animators.
(AnimationManager.prototype.remove): Removes an animator.
(AnimationManager.prototype._animationFrameCallback): Callback for requestAnimationFrame.
(AnimationManager.prototype._needsAnimationFrame): Returns true if we should request the next animation frame.
(AnimationManager.prototype.on): If we add a callback, request animation frame.
(AnimationManager.prototype.removeListener):
(Animator): Animates between the from value and to value.
(Animator.prototype.setFrom): Sets the from value.
(Animator.prototype.setTo): Sets the to value.
(Animator.prototype.start):
(Animator.prototype.stop):
(Animator.prototype.onAnimationFrame): Called by AnimationManager.
2013-02-21 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] UI: more intuitive control buttons
https://bugs.webkit.org/show_bug.cgi?id=110327
Reviewed by Pavel Feldman.
Tweaks to the CanvasProfiler replay control buttons.
- NextDrawCall forward button (StepOver) should jump up to the last expanded node, otherwise a noop is not intuitive unless the last node is selected.
- NextDrawCall/PrevDrawCall buttons should not skip draw call nodes themselves.
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView.prototype._onReplayDrawingCallClick):
2013-02-21 Grzegorz Czajkowski <g.czajkowski@samsung.com>
Make SpellCheckRequest's constructor private.
https://bugs.webkit.org/show_bug.cgi?id=110462
Reviewed by Antonio Gomes.
It's no need to expose SpellCheckRequest's constructor.
There is SpellCheckRequest::create() method which is
responsible for creating SpellCheckRequest object.
No new tests, no behavior change.
* editing/SpellChecker.h:
(SpellCheckRequest):
2013-02-21 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] Remove arrays of DataGrid nodes from the View
https://bugs.webkit.org/show_bug.cgi?id=110325
Reviewed by Pavel Feldman.
Remove arrays of DataGrid nodes from the CanvasProfileView and use live DataGrid instead.
This is a prerequisite to support a non-fixed layered tree in the grid (for example, to hide
a single frame group node, or to combine several draw call groups into a pattern group).
Drive-by: added an assert to injected canvas module.
* inspector/InjectedScriptCanvasModuleSource.js:
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView):
(WebInspector.CanvasProfileView.prototype.dispose):
(WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
(WebInspector.CanvasProfileView.prototype._requestTraceLog):
(WebInspector.CanvasProfileView.prototype._selectedCallIndex):
(WebInspector.CanvasProfileView.prototype._peekLastRecursively):
(WebInspector.CanvasProfileView.prototype._appendCallNodes):
(WebInspector.CanvasProfileView.prototype.):
(WebInspector.CanvasProfileView.prototype.splitDrawCallGroup):
(WebInspector.CanvasProfileView.prototype._appendCallNodesToFrameNode):
2013-02-21 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Local/session storage tree items in the Resources panel after page refresh are not shown
Re-landing r143581 with a build fix for Windows.
https://bugs.webkit.org/show_bug.cgi?id=109572
Reviewed by Vsevolod Vlasov.
This is a complete rework of the DOMStorage domain of the Web Inspector protocol. The most notable changes:
- Session and local DOM storages are considered to implicitly exist for each SecurityOrigin in the page
(previously, only those that were lazily created by DOMWindow would exist).
- Consequently, the addDOMStorage event is gone.
- StorageId is now an object rather than an opaque numeric identifier.
- DOM storage modifiers no longer return a boolean indicating if the operation was successful.
Clients should rely on the returned error message instead.
Implementation changes:
- InspectorDOMStorageResource would rely on the frame for which it was created throughout its lifetime.
As such, the frame removal from the page would break the respective DOM storage inspection.
Since this concept was entirely flawed, InspectorDOMStorageResource has been removed. Instead, a StorageArea
is retrieved based on the security origin specified by the client.
- DOM storages can now be dynamically removed (upon the respective SecurityOrigin removal) in the frontend.
* CMakeLists.txt: Remove InspectorDOMStorageResource.
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.order: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* dom/WebCoreMemoryInstrumentation.cpp: Ditto.
* dom/WebCoreMemoryInstrumentation.h: Ditto.
* inspector/InjectedScriptSource.js: Account for the structured StorageId.
* inspector/Inspector.json: Update structures and API methods.
Do not return boolean success flag and make use of the error message instead.
* inspector/InspectorAllInOne.cpp: Remove InspectorDOMStorageResource.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController): Add InspectorPageAgent into InspectorDOMStorageAgent.
* inspector/InspectorDOMStorageAgent.cpp: Mostly remove InspectorDOMStorageResource usages.
(WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
(WebCore::InspectorDOMStorageAgent::clearFrontend):
(WebCore::InspectorDOMStorageAgent::isEnabled):
(WebCore::InspectorDOMStorageAgent::enable):
(WebCore::InspectorDOMStorageAgent::disable):
(WebCore::InspectorDOMStorageAgent::getDOMStorageItems): Renamed.
(WebCore::toErrorString): Stringify ExceptionCode.
(WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::storageId): Make it structured rather than a plain string.
(WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
(WebCore::InspectorDOMStorageAgent::findStorageArea): Added.
(WebCore::InspectorDOMStorageAgent::reportMemoryUsage): Remove InspectorDOMStorageResource map.
* inspector/InspectorDOMStorageAgent.h:
(WebCore::InspectorDOMStorageAgent::create): Update signature.
(InspectorDOMStorageAgent):
* inspector/InspectorDOMStorageResource.cpp: Removed.
* inspector/InspectorDOMStorageResource.h: Removed.
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didCommitLoadImpl): Do not call the removed clearResources().
* inspector/InspectorInstrumentation.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::findFrameWithSecurityOrigin): Added.
* inspector/InspectorPageAgent.h:
(InspectorPageAgent):
* inspector/front-end/DOMStorage.js: Entirely reworked to use the SecurityOriginAdded/Removed events.
(WebInspector.DOMStorage):
(WebInspector.DOMStorage.storageId):
(WebInspector.DOMStorage.prototype.get id):
(WebInspector.DOMStorage.prototype.get securityOrigin):
(WebInspector.DOMStorage.prototype.getItems):
(WebInspector.DOMStorage.prototype.setItem):
(WebInspector.DOMStorage.prototype.removeItem):
(WebInspector.DOMStorageModel):
(WebInspector.DOMStorageModel.prototype._securityOriginAdded):
(WebInspector.DOMStorageModel.prototype._securityOriginRemoved):
(WebInspector.DOMStorageModel.prototype._storageKey):
(WebInspector.DOMStorageModel.prototype._domStorageItemsCleared):
(WebInspector.DOMStorageModel.prototype._domStorageItemRemoved):
(WebInspector.DOMStorageModel.prototype._domStorageItemAdded):
(WebInspector.DOMStorageModel.prototype.storageForId):
(WebInspector.DOMStorageModel.prototype.storages):
* inspector/front-end/DOMStorageItemsView.js: Rename Entries -> Items to avoid confusion.
(WebInspector.DOMStorageItemsView.prototype._update):
(WebInspector.DOMStorageItemsView.prototype._showDOMStorageItems):
(WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageItems):
* inspector/front-end/ResourcesPanel.js: Follow the updated DOMStorage model.
(WebInspector.ResourcesPanel):
(WebInspector.ResourcesPanel.prototype._initialize):
(WebInspector.ResourcesPanel.prototype._domStorageAdded):
(WebInspector.ResourcesPanel.prototype._domStorageRemoved):
(WebInspector.ResourcesPanel.prototype._populateDOMStorageTree):
(WebInspector.DOMStorageTreeElement):
(WebInspector.DOMStorageTreeElement.prototype.get itemURL):
* page/DOMWindow.cpp: Remove instrumentation calls.
(WebCore::DOMWindow::sessionStorage):
(WebCore::DOMWindow::localStorage):
2013-02-21 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix make distcheck.
* GNUmakefile.list.am: Add missing files to compilation.
2013-02-21 Alberto Garcia <albgarcia@rim.com>
[BlackBerry] Fix access to ResourceHandle::context
https://bugs.webkit.org/show_bug.cgi?id=110443
Reviewed by Carlos Garcia Campos.
This changed in r141981.
* platform/network/blackberry/ResourceHandleBlackBerry.cpp:
(WebCore::ResourceHandle::start):
2013-02-21 Alberto Garcia <albgarcia@rim.com>
[BlackBerry] GraphicsLayerBlackBerry: rename showDebugBorder to isShowingDebugBorder
https://bugs.webkit.org/show_bug.cgi?id=110453
Reviewed by Carlos Garcia Campos.
This changed in r133517.
* platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
(WebCore::GraphicsLayerBlackBerry::setupContentsLayer):
2013-02-21 Peter Rybin <prybin@chromium.org>
Web Inspector: take large strings out of CodeGeneratorInspector.py
https://bugs.webkit.org/show_bug.cgi?id=110159
Reviewed by Yury Semikhatsky.
Python script is refactored.
* inspector/CodeGeneratorInspector.py:
* inspector/CodeGeneratorInspectorStrings.py: Added.
(InspectorFrontend_h):
(InspectorFrontendChannel):
(InspectorArray):
(InspectorObject):
(String):
(InspectorFrontend):
(InspectorBackendDispatcher_h):
(InspectorAgent):
(InspectorBackendDispatcherImpl):
(InspectorBackendDispatcher):
(CallbackBase):
(void):
(HashMap):
(OptOutput):
(ExactlyInt):
(RuntimeCastHelper):
(provides):
(typename):
(Array):
(Builder):
2013-02-21 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143581.
http://trac.webkit.org/changeset/143581
https://bugs.webkit.org/show_bug.cgi?id=110457
Breaks Windows builds (compile + link) (Requested by apavlov
on #webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.order:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* dom/WebCoreMemoryInstrumentation.cpp:
(WebCore):
* dom/WebCoreMemoryInstrumentation.h:
(WebCoreMemoryTypes):
* inspector/InjectedScriptSource.js:
(.):
* inspector/Inspector.json:
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
(WebCore::InspectorDOMStorageAgent::clearFrontend):
(WebCore::InspectorDOMStorageAgent::restore):
(WebCore::InspectorDOMStorageAgent::enable):
(WebCore::InspectorDOMStorageAgent::disable):
(WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
(WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::storageId):
(WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
(WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
(WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
(WebCore::InspectorDOMStorageAgent::clearResources):
(WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
* inspector/InspectorDOMStorageAgent.h:
(WebCore):
(WebCore::InspectorDOMStorageAgent::create):
(InspectorDOMStorageAgent):
* inspector/InspectorDOMStorageResource.cpp: Added.
(WebCore):
(WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
(WebCore::InspectorDOMStorageResource::isSameOriginAndType):
(WebCore::InspectorDOMStorageResource::bind):
(WebCore::InspectorDOMStorageResource::unbind):
(WebCore::InspectorDOMStorageResource::reportMemoryUsage):
* inspector/InspectorDOMStorageResource.h: Added.
(WebCore):
(InspectorDOMStorageResource):
(WebCore::InspectorDOMStorageResource::create):
(WebCore::InspectorDOMStorageResource::id):
(WebCore::InspectorDOMStorageResource::storageArea):
(WebCore::InspectorDOMStorageResource::frame):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::didUseDOMStorageImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::didUseDOMStorage):
(WebCore):
* inspector/InspectorPageAgent.cpp:
* inspector/InspectorPageAgent.h:
(InspectorPageAgent):
* inspector/front-end/DOMStorage.js:
(WebInspector.DOMStorage):
(WebInspector.DOMStorage.prototype.get id):
(WebInspector.DOMStorage.prototype.get domain):
(WebInspector.DOMStorage.prototype.getEntries):
(WebInspector.DOMStorage.prototype.setItem):
(WebInspector.DOMStorage.prototype.removeItem):
(WebInspector.DOMStorageModel):
(WebInspector.DOMStorageModel.prototype._addDOMStorage):
(WebInspector.DOMStorageModel.prototype._domStorageItemsCleared):
(WebInspector.DOMStorageModel.prototype._domStorageItemRemoved):
(WebInspector.DOMStorageModel.prototype._domStorageItemAdded):
(WebInspector.DOMStorageModel.prototype.storageForId):
(WebInspector.DOMStorageModel.prototype.storages):
(WebInspector.DOMStorageDispatcher.prototype.addDOMStorage):
* inspector/front-end/DOMStorageItemsView.js:
(WebInspector.DOMStorageItemsView.prototype._update):
(WebInspector.DOMStorageItemsView.prototype._showDOMStorageEntries):
(WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageEntries):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel):
(WebInspector.ResourcesPanel.prototype._initialize):
(WebInspector.ResourcesPanel.prototype._domStorageAdded):
(WebInspector.ResourcesPanel.prototype._addDOMStorage):
(WebInspector.DOMStorageTreeElement):
(WebInspector.DOMStorageTreeElement.prototype.get itemURL):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::sessionStorage):
(WebCore::DOMWindow::localStorage):
2013-02-21 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Get rid of parsedURL in uiSourceCode, use name and path for displayName instead.
https://bugs.webkit.org/show_bug.cgi?id=110335
Reviewed by Alexander Pavlov.
Replaced UISourceCode.parsedURL with UISourceCode.displayName().
* inspector/front-end/NavigatorView.js:
(WebInspector.NavigatorView.prototype._updateScriptTitle):
(WebInspector.NavigatorView.prototype.getOrCreateFolderTreeElement):
(WebInspector.NavigatorFolderTreeElement):
* inspector/front-end/ResourceUtils.js:
(WebInspector.displayNameForURL):
* inspector/front-end/RevisionHistoryView.js:
(WebInspector.RevisionHistoryView.prototype._createUISourceCodeItem):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode):
(WebInspector.UISourceCode.prototype.displayName):
(WebInspector.UISourceCode.prototype.urlChanged):
2013-02-21 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Local/session storage tree items in the Resources panel after page refresh are not shown
https://bugs.webkit.org/show_bug.cgi?id=109572
Reviewed by Vsevolod Vlasov.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.order:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* dom/WebCoreMemoryInstrumentation.cpp:
(WebCore):
* dom/WebCoreMemoryInstrumentation.h:
(WebCoreMemoryTypes):
* inspector/InjectedScriptSource.js:
(.):
* inspector/Inspector.json:
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
(WebCore::InspectorDOMStorageAgent::clearFrontend):
(WebCore::InspectorDOMStorageAgent::isEnabled):
(WebCore::InspectorDOMStorageAgent::enable):
(WebCore::InspectorDOMStorageAgent::disable):
(WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
(WebCore::toErrorString):
(WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::storageId):
(WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
(WebCore::InspectorDOMStorageAgent::findStorageArea):
(WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
* inspector/InspectorDOMStorageAgent.h:
(WebCore):
(WebCore::InspectorDOMStorageAgent::create):
(InspectorDOMStorageAgent):
* inspector/InspectorDOMStorageResource.cpp: Removed.
* inspector/InspectorDOMStorageResource.h: Removed.
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::findFrameWithSecurityOrigin):
(WebCore):
* inspector/InspectorPageAgent.h:
(InspectorPageAgent):
* inspector/front-end/DOMStorage.js:
(WebInspector.DOMStorage):
(WebInspector.DOMStorage.storageId):
(WebInspector.DOMStorage.prototype.get id):
(WebInspector.DOMStorage.prototype.get securityOrigin):
(WebInspector.DOMStorage.prototype.getItems):
(WebInspector.DOMStorage.prototype.setItem):
(WebInspector.DOMStorage.prototype.removeItem):
(WebInspector.DOMStorageModel):
(WebInspector.DOMStorageModel.prototype._securityOriginAdded):
(WebInspector.DOMStorageModel.prototype._securityOriginRemoved):
(WebInspector.DOMStorageModel.prototype._storageKey):
(WebInspector.DOMStorageModel.prototype._domStorageItemsCleared):
(WebInspector.DOMStorageModel.prototype._domStorageItemRemoved):
(WebInspector.DOMStorageModel.prototype._domStorageItemAdded):
(WebInspector.DOMStorageModel.prototype.storageForId):
(WebInspector.DOMStorageModel.prototype.storages):
* inspector/front-end/DOMStorageItemsView.js:
(WebInspector.DOMStorageItemsView.prototype._update):
(WebInspector.DOMStorageItemsView.prototype._showDOMStorageItems):
(WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageItems):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel):
(WebInspector.ResourcesPanel.prototype._initialize):
(WebInspector.ResourcesPanel.prototype._domStorageAdded):
(WebInspector.ResourcesPanel.prototype._domStorageRemoved):
(WebInspector.ResourcesPanel.prototype._populateDOMStorageTree):
(WebInspector.DOMStorageTreeElement):
(WebInspector.DOMStorageTreeElement.prototype.get itemURL):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::sessionStorage):
(WebCore::DOMWindow::localStorage):
2013-02-19 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Console] Add console API message types for profile/profileEnd.
https://bugs.webkit.org/show_bug.cgi?id=109790
Reviewed by Pavel Feldman.
With profile/profileEnd message types we will gain more control over
output messages.
* English.lproj/localizedStrings.js: Added corresponging strings.
* inspector/ConsoleAPITypes.h: Added enum members.
* inspector/Inspector.json: Ditto.
* inspector/front-end/ConsoleModel.js: Ditto.
* inspector/ConsoleMessage.cpp:
(WebCore::messageTypeValue): Added cases.
* inspector/InspectorProfilerAgent.cpp: Adopted changes.
* inspector/front-end/inspector.js: Ditto.
* inspector/front-end/ConsoleMessage.js:
Added message generators for introduced message types.
* inspector/front-end/ProfilesPanel.js:
Turned showProfileForURL(url) to showProfile(typeId, uid).
* inspector/front-end/ProfilesPanelDescriptor.js:
(WebInspector.ProfilesPanelDescriptor.resolveProfileTitle): Added.
* inspector/front-end/ResourceUtils.js: Removed linkifier plugins.
2013-02-21 Tamas Czene <tczene@inf.u-szeged.hu>
OpenCL implementation of FEMerge filter.
https://bugs.webkit.org/show_bug.cgi?id=110193
Reviewed by Zoltan Herczeg.
In case of odd number of parameters the first parameter is copied to the destination image and
the rest of the parameters are merged in pairs.
* Target.pri:
* platform/graphics/filters/FEMerge.h:
(FEMerge):
* platform/graphics/gpu/opencl/FilterContextOpenCL.h:
(WebCore::FilterContextOpenCL::FilterContextOpenCL):
(FilterContextOpenCL):
* platform/graphics/gpu/opencl/OpenCLFEMerge.cpp: Added.
(WebCore):
(WebCore::FilterContextOpenCL::compileFEMerge):
(WebCore::FilterContextOpenCL::copy): This is a simple copy method.
(WebCore::FilterContextOpenCL::applyFEMerge):
(WebCore::FEMerge::platformApplyOpenCL):
2013-02-21 Keishi Hattori <keishi@webkit.org>
Add event dispatch class for the new calendar picker
https://bugs.webkit.org/show_bug.cgi?id=110131
Reviewed by Kent Tamura.
Adding event dispatcher class as part of the new calendar picker patch at Bug 109439.
No new tests. Code is not yet used.
* Resources/pagepopups/calendarPicker.js:
(EventEmitter):
(EventEmitter.prototype.on): Adds a callback for an event.
(EventEmitter.prototype.hasListener): Returns true if more than one listeners exist for an event type.
(EventEmitter.prototype.removeListener): Removes an event listener.
(EventEmitter.prototype.dispatchEvent): Dispatches an event to all callbacks. Takes variable number of arguments.
2013-02-21 Ken Kania <kkania@chromium.org>
Web Inspector: Add command for selecting files for file input element
https://bugs.webkit.org/show_bug.cgi?id=109308
Reviewed by Pavel Feldman.
Test: inspector-protocol/dom/setFileInputFiles.html
* inspector/Inspector.json:
* inspector/InspectorClient.h:
(WebCore::InspectorClient::canSetFileInputFiles):
(InspectorClient):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::InspectorDOMAgent):
(WebCore::InspectorDOMAgent::setFileInputFiles):
(WebCore):
* inspector/InspectorDOMAgent.h:
(WebCore):
(WebCore::InspectorDOMAgent::create):
(InspectorDOMAgent):
2013-02-21 Pan Deng <pan.deng@intel.com>
[Web Inspector]Add WebSocket networking events in Timeline panel.
https://bugs.webkit.org/show_bug.cgi?id=105527.
Reviewed by Pavel Feldman.
This patch add four WebSocket networking events in Timeline panel. The Events
are CreateWebSocket, SendWebSocketHandshakeRequest, ReceiveWebSocketHandShakeResponse
and DestoryWebSocket. Thanks to Kitamura san's previous work.
Test: http/tests/inspector/websocket/timeline-websocket-event.html
* English.lproj/localizedStrings.js:
* Modules/websockets/WebSocketChannel.cpp: Add protocol information
(WebCore::WebSocketChannel::connect):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::didCreateWebSocketImpl): Add Timeline agent instrumentation for websocket
(WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequestImpl): Ditto
(WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponseImpl): Ditto
(WebCore::InspectorInstrumentation::didCloseWebSocketImpl): Ditto
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::didCreateWebSocket):
(WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
(WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
(WebCore::InspectorInstrumentation::didCloseWebSocket):
* inspector/InspectorTimelineAgent.cpp:
(TimelineRecordType):
(WebCore):
(WebCore::InspectorTimelineAgent::didCreateWebSocket): Add Timeline record for websocket create
(WebCore::InspectorTimelineAgent::addWebSocketRecord): Add general websocket record
(WebCore::InspectorTimelineAgent::willSendWebSocketHandshakeRequest): Add Timeline record for websocket handshake request send
(WebCore::InspectorTimelineAgent::didReceiveWebSocketHandshakeResponse): Add Timeline record for websocket handshake response receive
(WebCore::InspectorTimelineAgent::didDestroyWebSocket): Add Timeline record for websocket destroy
* inspector/InspectorTimelineAgent.h:
(WebCore):
(InspectorTimelineAgent):
* inspector/TimelineRecordFactory.h:
(TimelineRecordFactory):
(WebCore::TimelineRecordFactory::createWebSocketCreateData):
(WebCore::TimelineRecordFactory::createGenericWebSocketData):
* inspector/front-end/TimelineModel.js: Add Timeline record type for websocket
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel._initRecordStyles):
(WebInspector.TimelinePresentationModel.prototype.reset): Add slot to store WebSocket Create record
(WebInspector.TimelinePresentationModel.Record):
(WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview): Add PopupContent for websocket record, including url and protocol
2013-02-21 Oswald Buddenhagen <oswald.buddenhagen@digia.com>
[Qt] Fix pkg-config dependencies of QtWebKit itself
Reviewed by Simon Hausmann.
Don't override QMAKE_PKGCONFIG_REQUIRES needlessly.
* WebCore.pri:
2013-02-21 Nils Barth <nbarth@google.com>
File upload control doesn't apply CSS vertical padding or border to file name
https://bugs.webkit.org/show_bug.cgi?id=109011
Reviewed by Hajime Morrita.
Test: fast/forms/file/file-vertical-padding-border.html
* rendering/RenderFileUploadControl.cpp:
Add borderTop() and paddingTop() when computing position.
(WebCore::RenderFileUploadControl::paintObject):
2013-02-20 Alexey Proskuryakov <ap@apple.com>
Stop hardcoding knowledge about blob protocol in ResourceHandle
https://bugs.webkit.org/show_bug.cgi?id=110382
Reviewed by Anders Carlsson.
* platform/network/BlobRegistry.h:
* platform/network/chromium/BlobRegistryProxy.h:
Removed loadResourceSynchronously(). Chromium did not even implement it, and
cross-platform code doesn't need it any more either.
* platform/network/BlobRegistryImpl.cpp:
(WebCore::loadResourceSynchronously): A function to load a blob synchronously,
suitable for being in a ResourceHandle map.
(WebCore::registerBlobResourceHandleConstructor): Register loadResourceSynchronously too.
(WebCore::BlobRegistryImpl::createResourceHandle): Don't make policy decisions here,
it's just a registry. Moved code for checking request method down to BlobResourceHandle.
* platform/network/BlobRegistryImpl.h: Removed BlobRegistryImpl::loadResourceSynchronously().
A registry shouldn't load resources, and it already has enough accessors to implement
this externally.
* platform/network/BlobResourceHandle.h:
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::createAsync): Renamed from create(), to make it clear
that it's not OK to call from synchronous loader. Moved method check here.
(WebCore::BlobResourceHandle::loadResourceSynchronously): Moved method check here.
We used to fall through to NSURLConnection based loader when method was not GET,
which of course resulted in an error eventually, but was just wrong.
* platform/network/ResourceHandle.cpp:
(WebCore::builtinResourceHandleSynchronousLoaderMap): Added a map for synchronous case.
(WebCore::ResourceHandle::registerBuiltinSynchronousLoader): Ditto.
(WebCore::ResourceHandle::loadResourceSynchronously): We no longer need to hardcode
knowledge about blobRegistry and blobs here.
* platform/network/ResourceHandle.h: Added registerBuiltinSynchronousLoader().
* platform/network/chromium/ResourceHandle.h: Removed loadResourceSynchronously(),
which was not implemented for Chromium.
2013-02-20 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: TabbedEditorContainer and OpenResourceDialog should show uiSourceCode path and name instead of parsedURL
https://bugs.webkit.org/show_bug.cgi?id=110334
Reviewed by Alexander Pavlov.
Introduced uiSourceCode.name() that returns a name based on uiSourceCode path.
OpenResourceDialog now shows uiSourceCode workspace path as a subtitle.
TabbedEditorContainer now shows uiSourceCode name in the tab header.
* inspector/front-end/FilteredItemSelectionDialog.js:
(WebInspector.OpenResourceDialog.filterOutEmptyURLs):
(WebInspector.OpenResourceDialog):
(WebInspector.OpenResourceDialog.prototype.itemTitleAt):
(WebInspector.OpenResourceDialog.prototype.itemSubtitleAt):
(WebInspector.OpenResourceDialog.prototype.itemKeyAt):
* inspector/front-end/NavigatorView.js:
(WebInspector.NavigatorView.prototype._updateScriptTitle):
* inspector/front-end/TabbedEditorContainer.js:
(WebInspector.TabbedEditorContainer.prototype._titleForFile):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.name):
2013-02-20 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: debugger buttons are scrolled along with the sidebar content.
https://bugs.webkit.org/show_bug.cgi?id=110434
Reviewed by Vsevolod Vlasov.
* inspector/front-end/scriptsPanel.css:
(div.sidebar-pane-stack#scripts-debug-sidebar-contents, #scripts-sidebar-stack-pane):
2013-02-20 Wei James <james.wei@intel.com>
ChannelMergerNode may need check for deferred updating of output channels
https://bugs.webkit.org/show_bug.cgi?id=108863
There can in rare cases be a slight delay before the output bus is updated
to the new number of channels because of tryLocks() in the context's
updating system. So need to check the channel number before processing.
Reviewed by Chris Rogers.
* Modules/webaudio/ChannelMergerNode.cpp:
(WebCore::ChannelMergerNode::ChannelMergerNode):
(WebCore::ChannelMergerNode::process):
(WebCore::ChannelMergerNode::checkNumberOfChannelsForInput):
* Modules/webaudio/ChannelMergerNode.h:
(ChannelMergerNode):
2013-02-20 Pan Deng <pan.deng@intel.com>
[Web Inspector] Fix Sort by Initiator functionality of Network Panel.
https://bugs.webkit.org/show_bug.cgi?id=109135.
Reviewed by Pavel Feldman.
A refactor for request initiator types, and the sort by Initiator functionality
was changed to sort by url and line number that displayed in initiator cell.
No new tests.
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell): save initiator displayedURL and displayedLineNumber
(WebInspector.NetworkDataGridNode.InitiatorComparator):
* inspector/front-end/NetworkRequest.js:
2013-02-20 Eric Seidel <eric@webkit.org>
WebVTTParser copies character buffer more often than necessary
https://bugs.webkit.org/show_bug.cgi?id=103319
Reviewed by Eric Carlson.
Previously this codepath was creating a String just to parse the timestamp
and then if the timestamp was valid, was creating a second string.
I've fixed it to only create one string and use it in both places.
I also fixed this codepath to use 8bit strings when possible, per the FIXME.
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::constructTreeFromToken):
2013-02-20 Mike West <mkwst@chromium.org>
Mouseup event does not fire on Scroll Bar
https://bugs.webkit.org/show_bug.cgi?id=25811
Reviewed by Tony Chang.
Currently, clicking on a scrollbar fires a mousedown event, but not a
mouseup event. This causes problems for code like jQuery UI's
draggable[1], as the drag starts, but is never cancelled. Other use
cases are noted in the slightly old Chromium bug[2].
If a mouseup event is received after a mousedown event on a scrollbar,
this patch dispatches a mouseup event on the same node the mousedown
event dispatched on. This matches Gecko's behavior.
[1]: http://bugs.jqueryui.com/ticket/6925
[2]: http://crbug.com/14204
Tests: fast/scrolling/scrollbar-mousedown-mouseup.html
fast/scrolling/scrollbar-mousedown-move-mouseup.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseReleaseEvent):
If a mouseup event follow a mousedown event on a scrollbar,
dispatch an event on the same node from which the mousedown event
was triggered.
2013-02-20 Takashi Sakamoto <tasak@google.com>
[Refactoring] Make m_state an on-stack object
https://bugs.webkit.org/show_bug.cgi?id=109909
Reviewed by Antti Koivisto.
Mode m_state, an instance of StyleResolver::State, an on-stack object.
The state is only required in styleForElement, styleForKeyframe and
so on. No need to keep the state outside of those methods.
No new tests, because just refactoring.
* css/BasicShapeFunctions.cpp:
(WebCore::convertToLength):
(WebCore::basicShapeForValue):
* css/BasicShapeFunctions.h:
(WebCore):
Replaced StyleResolver* with StyleResolver::State&.
* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::gradientWithStylesResolved):
* css/CSSGradientValue.h:
(CSSGradientValue):
Replaced StyleResolver* with StyleResolver::State&.
* css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::style):
(WebCore::CSSToStyleMap::rootElementStyle):
(WebCore::CSSToStyleMap::useSVGZoomRules):
(WebCore::CSSToStyleMap::styleImage):
* css/CSSToStyleMap.h:
(WebCore):
(WebCore::CSSToStyleMap::CSSToStyleMap):
(CSSToStyleMap):
Replaced StyleResolver* with StyleResolver::State&.
* css/SVGCSSStyleSelector.cpp:
(WebCore::StyleResolver::applySVGProperty):
Replaced m_state with state which is given as an argument of
applySVGProperty.
* css/StyleBuilder.cpp:
(WebCore::ApplyPropertyExpanding::applyInheritValue):
(WebCore::ApplyPropertyExpanding::applyInitialValue):
(WebCore::ApplyPropertyExpanding::applyValue):
(WebCore::ApplyPropertyDefaultBase::applyInheritValue):
(WebCore::ApplyPropertyDefaultBase::applyInitialValue):
(WebCore::ApplyPropertyDefaultBase::applyValue):
(WebCore::ApplyPropertyDefault::applyValue):
(WebCore::ApplyPropertyNumber::applyValue):
(WebCore::ApplyPropertyStyleImage::applyValue):
(WebCore::ApplyPropertyAuto::applyInheritValue):
(WebCore::ApplyPropertyAuto::applyInitialValue):
(WebCore::ApplyPropertyAuto::applyValue):
(WebCore::ApplyPropertyClip::convertToLength):
(WebCore::ApplyPropertyClip::applyInheritValue):
(WebCore::ApplyPropertyClip::applyInitialValue):
(WebCore::ApplyPropertyClip::applyValue):
(WebCore::ApplyPropertyColor::applyInheritValue):
(WebCore::ApplyPropertyColor::applyInitialValue):
(WebCore::ApplyPropertyColor::applyValue):
(WebCore::ApplyPropertyColor::applyColorValue):
(WebCore::ApplyPropertyDirection::applyValue):
(WebCore::ApplyPropertyLength::applyValue):
(WebCore::ApplyPropertyString::applyValue):
(WebCore::ApplyPropertyBorderRadius::applyValue):
(WebCore::ApplyPropertyFillLayer::applyInheritValue):
(WebCore::ApplyPropertyFillLayer::applyInitialValue):
(WebCore::ApplyPropertyFillLayer::applyValue):
(WebCore::ApplyPropertyComputeLength::applyValue):
(WebCore::ApplyPropertyFont::applyInheritValue):
(WebCore::ApplyPropertyFont::applyInitialValue):
(WebCore::ApplyPropertyFont::applyValue):
(WebCore::ApplyPropertyFontSize::applyInheritValue):
(WebCore::ApplyPropertyFontSize::applyInitialValue):
(WebCore::ApplyPropertyFontSize::applyValue):
(WebCore::ApplyPropertyFontWeight::applyValue):
(WebCore::ApplyPropertyFontVariantLigatures::applyInheritValue):
(WebCore::ApplyPropertyFontVariantLigatures::applyInitialValue):
(WebCore::ApplyPropertyFontVariantLigatures::applyValue):
(WebCore::ApplyPropertyBorderImage::applyValue):
(WebCore::ApplyPropertyBorderImageModifier::applyInheritValue):
(WebCore::ApplyPropertyBorderImageModifier::applyInitialValue):
(WebCore::ApplyPropertyBorderImageModifier::applyValue):
(WebCore::ApplyPropertyBorderImageSource::applyValue):
(WebCore::ApplyPropertyCounter::emptyFunction):
(WebCore::ApplyPropertyCounter::applyInheritValue):
(WebCore::ApplyPropertyCounter::applyValue):
(WebCore::ApplyPropertyCursor::applyInheritValue):
(WebCore::ApplyPropertyCursor::applyInitialValue):
(WebCore::ApplyPropertyCursor::applyValue):
(WebCore::ApplyPropertyTextAlign::applyValue):
(WebCore::ApplyPropertyTextDecoration::applyValue):
(WebCore::ApplyPropertyLineHeight::applyValue):
(WebCore::ApplyPropertyPageSize::applyInheritValue):
(WebCore::ApplyPropertyPageSize::applyInitialValue):
(WebCore::ApplyPropertyPageSize::applyValue):
(WebCore::ApplyPropertyTextEmphasisStyle::applyInheritValue):
(WebCore::ApplyPropertyTextEmphasisStyle::applyInitialValue):
(WebCore::ApplyPropertyTextEmphasisStyle::applyValue):
(WebCore::ApplyPropertyAnimation::map):
(WebCore::ApplyPropertyAnimation::applyInheritValue):
(WebCore::ApplyPropertyAnimation::applyInitialValue):
(WebCore::ApplyPropertyAnimation::applyValue):
(WebCore::ApplyPropertyOutlineStyle::applyInheritValue):
(WebCore::ApplyPropertyOutlineStyle::applyInitialValue):
(WebCore::ApplyPropertyOutlineStyle::applyValue):
(WebCore::ApplyPropertyResize::applyValue):
(WebCore::ApplyPropertyVerticalAlign::applyValue):
(WebCore::ApplyPropertyAspectRatio::applyInheritValue):
(WebCore::ApplyPropertyAspectRatio::applyInitialValue):
(WebCore::ApplyPropertyAspectRatio::applyValue):
(WebCore::ApplyPropertyZoom::resetEffectiveZoom):
(WebCore::ApplyPropertyZoom::applyInheritValue):
(WebCore::ApplyPropertyZoom::applyInitialValue):
(WebCore::ApplyPropertyZoom::applyValue):
(WebCore::ApplyPropertyDisplay::isValidDisplayValue):
(WebCore::ApplyPropertyDisplay::applyInheritValue):
(WebCore::ApplyPropertyDisplay::applyInitialValue):
(WebCore::ApplyPropertyDisplay::applyValue):
(WebCore::ApplyPropertyClipPath::applyValue):
(WebCore::ApplyPropertyExclusionShape::applyValue):
(WebCore::ApplyPropertyImageResolution::applyInheritValue):
(WebCore::ApplyPropertyImageResolution::applyInitialValue):
(WebCore::ApplyPropertyImageResolution::applyValue):
* css/StyleBuilder.h:
(WebCore):
(PropertyHandler):
(WebCore::PropertyHandler::applyInheritValue):
(WebCore::PropertyHandler::applyInitialValue):
(WebCore::PropertyHandler::applyValue):
Replaced StyleResolver* with StyleResolver::State&.
* css/StyleResolver.cpp:
(WebCore):
(WebCore::StyleResolver::StyleResolver):
Removed m_styleMap. Now m_styleMap is an on-stack object.
(WebCore::StyleResolver::collectMatchingRules):
(WebCore::StyleResolver::collectMatchingRulesForRegion):
(WebCore::StyleResolver::sortAndTransferMatchedRules):
(WebCore::StyleResolver::matchScopedAuthorRules):
(WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
(WebCore::StyleResolver::matchHostRules):
(WebCore::StyleResolver::matchAuthorRules):
(WebCore::StyleResolver::matchUserRules):
(WebCore::StyleResolver::matchUARules):
(WebCore::StyleResolver::collectMatchingRulesForList):
(WebCore::StyleResolver::sortMatchedRules):
(WebCore::StyleResolver::matchAllRules):
(WebCore::StyleResolver::initElement):
(WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
(WebCore::StyleResolver::canShareStyleWithControl):
(WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
(WebCore::StyleResolver::canShareStyleWithElement):
(WebCore::StyleResolver::findSiblingForStyleSharing):
(WebCore::StyleResolver::locateSharedStyle):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::keyframeStylesForAnimation):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::defaultStyleForElement):
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::updateFont):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::ruleMatches):
(WebCore::StyleResolver::checkRegionSelector):
(WebCore::StyleResolver::applyProperties):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::isLeftPage):
(WebCore::StyleResolver::applyPropertyWithNullCheck):
(WebCore::StyleResolver::applyFontPropertyToStyle):
(WebCore::StyleResolver::resolveVariables):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::styleImage):
(WebCore::StyleResolver::cachedOrPendingFromValue):
(WebCore::StyleResolver::generatedOrPendingFromValue):
(WebCore::StyleResolver::setOrPendingFromValue):
(WebCore::StyleResolver::cursorOrPendingFromValue):
(WebCore::StyleResolver::checkForTextSizeAdjust):
(WebCore::StyleResolver::checkForZoomChange):
(WebCore::StyleResolver::checkForGenericFamilyChange):
(WebCore::StyleResolver::initializeFontStyle):
(WebCore::StyleResolver::setFontSize):
(WebCore::StyleResolver::colorFromPrimitiveValue):
(WebCore::StyleResolver::loadPendingSVGDocuments):
(WebCore::StyleResolver::styleShader):
(WebCore::StyleResolver::cachedOrPendingStyleShaderFromValue):
(WebCore::StyleResolver::loadPendingShaders):
(WebCore::StyleResolver::parseCustomFilterTransformParameter):
(WebCore::StyleResolver::parseCustomFilterParameter):
(WebCore::StyleResolver::parseCustomFilterParameterList):
(WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
(WebCore::StyleResolver::createCustomFilterOperation):
(WebCore::StyleResolver::createFilterOperations):
(WebCore::StyleResolver::loadPendingImage):
(WebCore::StyleResolver::loadPendingImages):
(WebCore::StyleResolver::loadPendingResources):
Just replaced m_state with state and added one more parameter to
provide the state.
(WebCore::StyleResolver::reportMemoryUsage):
Since m_state was removed, removed a code for reporting m_state's
memory usage.
* css/StyleResolver.h:
(StyleResolver):
(WebCore::StyleResolver::isRightPage):
(WebCore::StyleResolver::State::State):
(WebCore::StyleResolver::State::document):
Since State::m_element is not always available (sometimes, 0),
added m_document to State and modified to return the m_document.
(WebCore::StyleResolver::State::useSVGZoomRules):
Moved StyleResolver to State.
(State):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setFont):
Moved the code, updating a style by using a given StylePropertySet,
to StyleResolver.
2013-02-20 Ojan Vafai <ojan@chromium.org>
AutoTableLayout applies min-width redundantly with RenderTable
https://bugs.webkit.org/show_bug.cgi?id=110426
Reviewed by Emil A Eklund.
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::computePreferredLogicalWidths):
This code used to do something, but has since been superceded by
code in RenderTable::computePreferredLogicalWidths.
2013-02-20 Dirk Schulze <krit@webkit.org>
Enable CANVAS_PATH flag
https://bugs.webkit.org/show_bug.cgi?id=108508
Uneviewed attempt to fix Qt minimal build.
* html/canvas/DOMPath.h:
(WebCore::DOMPath::DOMPath):
\2013-02-20 Mark Lam <mark.lam@apple.com>
Rename DatabaseBackendAsync to DatabaseBackend.
https://bugs.webkit.org/show_bug.cgi?id=110422.
Reviewed by Geoffrey Garen.
This is a purely cosmetic change to make the naming consistent with
the front-end Database.
No new tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/ChangeVersionWrapper.cpp:
(WebCore::ChangeVersionWrapper::performPreflight):
(WebCore::ChangeVersionWrapper::performPostflight):
* Modules/webdatabase/Database.cpp:
(WebCore::Database::Database):
(WebCore::Database::from):
(WebCore::Database::backend):
* Modules/webdatabase/Database.h:
* Modules/webdatabase/DatabaseBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackendAsync.cpp.
(WebCore::DatabaseBackend::DatabaseBackend):
(WebCore::DatabaseBackend::openAndVerifyVersion):
(WebCore::DatabaseBackend::performOpenAndVerify):
(WebCore::DatabaseBackend::close):
(WebCore::DatabaseBackend::runTransaction):
(WebCore::DatabaseBackend::inProgressTransactionCompleted):
(WebCore::DatabaseBackend::scheduleTransaction):
(WebCore::DatabaseBackend::scheduleTransactionStep):
(WebCore::DatabaseBackend::transactionClient):
(WebCore::DatabaseBackend::transactionCoordinator):
* Modules/webdatabase/DatabaseBackend.h: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackendAsync.h.
* Modules/webdatabase/DatabaseBackendAsync.cpp: Removed.
* Modules/webdatabase/DatabaseBackendAsync.h: Removed.
* Modules/webdatabase/DatabaseBackendBase.cpp:
(WebCore::DatabaseBackendBase::~DatabaseBackendBase):
* Modules/webdatabase/DatabaseManager.cpp:
* Modules/webdatabase/DatabaseServer.cpp:
* Modules/webdatabase/DatabaseTask.cpp:
(WebCore::DatabaseTask::DatabaseTask):
(WebCore::DatabaseBackend::DatabaseOpenTask::DatabaseOpenTask):
(WebCore::DatabaseBackend::DatabaseOpenTask::doPerformTask):
(WebCore::DatabaseBackend::DatabaseOpenTask::debugTaskName):
(WebCore::DatabaseBackend::DatabaseCloseTask::DatabaseCloseTask):
(WebCore::DatabaseBackend::DatabaseCloseTask::doPerformTask):
(WebCore::DatabaseBackend::DatabaseCloseTask::debugTaskName):
(WebCore::DatabaseBackend::DatabaseTransactionTask::DatabaseTransactionTask):
(WebCore::DatabaseBackend::DatabaseTransactionTask::~DatabaseTransactionTask):
(WebCore::DatabaseBackend::DatabaseTransactionTask::doPerformTask):
(WebCore::DatabaseBackend::DatabaseTransactionTask::debugTaskName):
(WebCore::DatabaseBackend::DatabaseTableNamesTask::DatabaseTableNamesTask):
(WebCore::DatabaseBackend::DatabaseTableNamesTask::doPerformTask):
(WebCore::DatabaseBackend::DatabaseTableNamesTask::debugTaskName):
* Modules/webdatabase/DatabaseTask.h:
(WebCore::DatabaseTask::database):
(DatabaseTask):
(WebCore::DatabaseBackend::DatabaseOpenTask::create):
(DatabaseBackend::DatabaseOpenTask):
(WebCore::DatabaseBackend::DatabaseCloseTask::create):
(DatabaseBackend::DatabaseCloseTask):
(WebCore::DatabaseBackend::DatabaseTableNamesTask::create):
(DatabaseBackend::DatabaseTableNamesTask):
* Modules/webdatabase/DatabaseThread.cpp:
(WebCore::DatabaseThread::recordDatabaseOpen):
(WebCore::DatabaseThread::recordDatabaseClosed):
(WebCore::SameDatabasePredicate::SameDatabasePredicate):
(SameDatabasePredicate):
(WebCore::DatabaseThread::unscheduleDatabaseTasks):
* Modules/webdatabase/DatabaseThread.h:
* Modules/webdatabase/SQLStatementBackend.cpp:
(WebCore::SQLStatementBackend::execute):
(WebCore::SQLStatementBackend::setDatabaseDeletedError):
(WebCore::SQLStatementBackend::setVersionMismatchedError):
(WebCore::SQLStatementBackend::setFailureDueToQuota):
* Modules/webdatabase/SQLStatementBackend.h:
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::create):
(WebCore::SQLTransactionBackend::SQLTransactionBackend):
* Modules/webdatabase/SQLTransactionBackend.h:
(WebCore::SQLTransactionBackend::database):
* Modules/webdatabase/SQLTransactionCoordinator.cpp:
(WebCore::getDatabaseIdentifier):
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
2013-02-20 David Kilzer <ddkilzer@apple.com>
Upstream SharedTimerIOS.mm
<http://webkit.org/b/110161>
Reviewed by Benjamin Poulain.
* Configurations/WebCore.xcconfig:
(EXCLUDED_SOURCE_FILE_NAMES_iphoneos): Add SharedTimerMac.mm.
* WebCore.xcodeproj/project.pbxproj: Add SharedTimerIOS.mm.
* platform/ios/SharedTimerIOS.mm: Add.
(WebCore):
(-[WebCoreResumeNotifierIOS init]):
(-[WebCoreResumeNotifierIOS dealloc]):
(-[WebCoreResumeNotifierIOS didWake]):
(WebCore::setSharedTimerFiredFunction):
(WebCore::timerFired):
(WebCore::setSharedTimerFireInterval):
(WebCore::stopSharedTimer):
2013-02-20 Ojan Vafai <ojan@chromium.org>
Speculative fix for EFL and Windows compilers not realizing
that all possible cases have a return value from this switch.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalWidthUsing):
2013-02-20 David Hyatt <hyatt@apple.com>
[New Multicolumn] Fix overflow computation for column blocks.
https://bugs.webkit.org/show_bug.cgi?id=110392.
Reviewed by Simon Fraser.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::addOverflowFromChild):
Exclude in-flow RenderFlowThreads from overflow propagation.
* rendering/RenderMultiColumnSet.h:
* rendering/RenderRegion.h:
(WebCore::RenderRegion::shouldHaveAutoLogicalHeight):
* rendering/RenderRegionSet.h:
(RenderRegionSet):
Override shouldHaveAutoLogicalHeight to always be false
for region sets and for columns. Eventually we're going to try
to leverage this code to do column balancing, and that's why
RenderMultiColumnSet has a unique override.
2013-02-20 Brandon Jones <bajones@google.com>
Printing WebGL canvases in Chrome uses stale data after first print
https://bugs.webkit.org/show_bug.cgi?id=110003
Reviewed by Kenneth Russell.
Unable to validate printed content automatically. No regression in existing WebGL tests.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
2013-02-20 Christian Biesinger <cbiesinger@chromium.org>
Incorrect rendering for flex boxes with percentage height in a table cell
https://bugs.webkit.org/show_bug.cgi?id=110389
Reviewed by Tony Chang.
Tests: css3/flexbox/flex-percentage-height-in-table-standards-mode.html
css3/flexbox/flex-percentage-height-in-table.html
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
Always update the logical height of the flex box, not just when it is
auto. If necessary, the later updateLogicalHeight() call will adjust
it.
2013-02-20 Philip Rogers <pdr@google.com>
Account for transform in SVG background images
https://bugs.webkit.org/show_bug.cgi?id=110295
Reviewed by Dirk Schulze.
Tiled SVG background images are rendererd by drawing the SVG content into a temporary
image buffer, then stamping out a tiled pattern using this buffer. Previously the
image buffer did not account for CSS transforms which could result in pixelated backgrounds.
This patch takes advantage of the context's transform when sizing the temporary tiling
image buffer. Because the context's transform also includes scale, this patch simplifies
the SVG image code to no longer track scale.
Test: svg/as-background-image/svg-transformed-background.html
* loader/cache/CachedImage.cpp:
(WebCore):
(WebCore::CachedImage::imageForRenderer):
CachedImage::lookupOrCreateImageForRenderer no longer creates images so it has been
refactored into just "imageForRenderer". Previously there were two versions of
lookupOrCreateImageForRenderer; these have been folded into imageForRenderer.
* loader/cache/CachedImage.h:
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawPatternForContainer):
To create the temporary tiling image buffer, the final size in screen coordinates is
needed. This is now computed using the current context's CTM. Because the CTM
already includes the page scale, all page scale tracking can be removed.
The adjustments to srcRect and the pattern transform are the same as before, just
refactored to use imageBufferScale which has x and y components.
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageCache.cpp:
(WebCore::SVGImageCache::setContainerSizeForRenderer):
Because the page scale needed to be cached between calls to
setContainerSizeForRenderer, this function was written to modify an existing cache
entry. Because the page scale no longer needs to be tracked, this code has been
simplified to re-write any existing cache entry.
(WebCore::SVGImageCache::imageSizeForRenderer):
This function has been simplified by calling SVGImageForContainer::size() instead
of computing this value manually. The value returned remains the same, containing
the container size multiplied by zoom.
(WebCore::SVGImageCache::imageForRenderer):
Previously we set the page scale on every call to imageForRenderer. Because page scale
no longer needs to be tracked, this function has been simplified to simply return
the cached SVGImageForContainer.
* svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::drawPattern):
* svg/graphics/SVGImageForContainer.h:
(WebCore::SVGImageForContainer::create):
(WebCore::SVGImageForContainer::SVGImageForContainer):
(SVGImageForContainer):
2013-02-20 Jer Noble <jer.noble@apple.com>
Crash in com.apple.WebKit2.WebProcessService at com.apple.avfoundation: __73-[AVAssetResourceLoader _attemptDelegateHandlingOfRequestWithDictionary:]_block_invoke + 51
https://bugs.webkit.org/show_bug.cgi?id=110385
Reviewed by Eric Carlson.
Ensure AVFoundation does not attempt to message a dead object by explicitly disassociating
the AVAssetResourceLoaderDelegate on MediaPlayerPrivateAVFoundationObjC destruction.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
2013-02-20 Ojan Vafai <ojan@chromium.org>
Positioned, replaced elements with intrinsic width keywords compute the wrong width
https://bugs.webkit.org/show_bug.cgi?id=110393
Reviewed by Emil A Eklund.
Test: fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalWidthUsing):
Add the intrinsic size keywords to the switch. Confusingly, we have to
subtract the border and padding since the callers expect the content width.
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeReplacedLogicalWidth):
Don't do the intrinsic ratio calculation if the width is an
intrinsic width keyword, as per, http://dev.w3.org/csswg/css3-sizing/#replaced-intrinsic.
(WebCore::RenderReplaced::computeIntrinsicLogicalWidths):
(WebCore::RenderReplaced::computePreferredLogicalWidths):
The old code was trying to apply the intrinsic ratio calculation to
the intrinsic width, which is wrong per spec.
2013-02-20 Alec Flett <alecflett@chromium.org>
LevelDB: Remove excess vector copy
https://bugs.webkit.org/show_bug.cgi?id=110399
Reviewed by Tony Chang.
Remove an extra copy introduced by the makeVector function.
No new tests, this is covered by existing tests.
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::LevelDBDatabase::safeGet):
2013-02-20 Simon Fraser <simon.fraser@apple.com>
Zoomed, slow-scrolling pages keep recreating tiles when scrolled
https://bugs.webkit.org/show_bug.cgi?id=110379
Reviewed by Tim Horton.
On slow-scrolling pages the TileCache makes the tiles the size of
the visible rect to minimize per-tile painting overhead. If the size
of that rect changes, the TileCache re-creates all the tiles.
This was a problem whem zoomed, because mapping the visible rect
through the scale transform and then rounding it would cause the
size to keep changing, causing lots of tile re-creation.
Fix by carrying the visibleRect around as a FloatRect, and doing
the same for the exposedRect. We then only expand to integers
when computing the tile size. This also fixes an issue where we could
sometimes make extra tiles because of fractional bits of tiles at the edges,
as shown by the test result change.
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateVisibleRect):
* platform/graphics/ca/mac/TileCache.h:
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::setVisibleRect):
(WebCore::TileCache::setExposedRect):
(WebCore::TileCache::prepopulateRect):
(WebCore::TileCache::computeTileCoverageRect):
(WebCore::TileCache::tileSizeForCoverageRect):
(WebCore::TileCache::blankPixelCountForTiles):
(WebCore::TileCache::revalidateTiles):
(WebCore::TileCache::ensureTilesForRect):
* platform/graphics/ca/mac/WebTileLayer.mm:
(-[WebTileLayer logFilledFreshTile]):
2013-02-20 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Implement the auto-placement algorithm without grid growth
https://bugs.webkit.org/show_bug.cgi?id=110277
Reviewed by Tony Chang.
Tests: fast/css-grid-layout/grid-item-addition-auto-placement-update.html
fast/css-grid-layout/grid-item-removal-auto-placement-update.html
fast/css-grid-layout/grid-auto-flow-resolution.html (extended to cover more cases)
This change implements most of the auto-placement algorithm per
http://dev.w3.org/csswg/css3-grid-layout/#auto-placement-algo
To limit the size of the code change, it doesn't implement growing the grid if there
are no empty grid areas. If we don't find any empty grid areas, we just insert in the first
one, like what grid-auto-flow: none would do (which explains the test failures).
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::GridIterator::nextEmptyGridArea):
Added this function to return the GridCoordinate of the next empty grid area along
the iterator's direction.
(WebCore::RenderGrid::placeItemsOnGrid):
Split this function into the different steps below. For efficiency, collect the auto vs specified
major axis grid items in different Vectors.
(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
Added this function that implements part of step 1 of the algorithm (the grid items without
auto row / column are already handled in placeItemsOnGrid).
(WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid):
Added this function that iterates over the auto grid items and call placeAutoMajorAxisItemOnGrid.
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
Added this method to handle the step 4 of the algorithm. Based on the minor axis's position,
it either walks along the major axis once or several times until it finds an empty grid area
for the grid item.
(WebCore::RenderGrid::autoPlacementMajorAxisPositionForChild):
(WebCore::RenderGrid::autoPlacementMinorAxisPositionForChild):
(WebCore::RenderGrid::autoPlacementMajorAxisDirection):
(WebCore::RenderGrid::autoPlacementMinorAxisDirection):
Added these helper functions that return minor / major axis positions & direction.
* rendering/RenderGrid.h:
Added the previous new RenderGrid functions.
2013-02-20 Vincent Scheib <scheib@chromium.org>
Accept 'allowfullscreen' in addition to 'webkitallowfullscreen'.
https://bugs.webkit.org/show_bug.cgi?id=110374
Reviewed by Adam Barth.
The fullscreen API also includes a new HTML attribute for iframes
which permits its use. That attribute, 'allowfullcreen' is now
included in the HTML specification [1] and is stable enough
to remove the webkit prefix.
[1] http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#attr-iframe-allowfullscreen
Tests: fullscreen/full-screen-enabled-prefixed.html
fullscreen/full-screen-iframe-allowed-prefixed.html
fullscreen/full-screen-iframe-with-mixed-allow-webkitallow-attribute.html
* dom/Document.cpp:
(WebCore::isAttributeOnAllOwners):
(WebCore::Document::fullScreenIsAllowedForElement):
(WebCore::Document::webkitFullscreenEnabled):
* html/HTMLAttributeNames.in:
2013-02-20 Roger Fong <roger_fong@apple.com>
Unreviewed. Remove references to SAFARI_THEME from Windows Solution.
<rdar://problem/13258710>
* config.h:
* page/Settings.cpp:
* page/Settings.h:
* platform/win/ScrollbarThemeWin.cpp:
* rendering/RenderThemeWin.cpp:
2013-02-20 Roger Fong <roger_fong@apple.com>
Get VS2010 Solution B&I ready.
<rdar://problem/1322988>
Rubberstamped by Timothy Horton.
Add Production configuration.
Add a WebCore submit solution with a DebugSuffix configuration.
Modify WebCore.make as necessary.
* DerivedSources.make:
* WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj:
* WebCore.vcxproj/QTMovieWin/QTMovieWinCommon.props:
* WebCore.vcxproj/QTMovieWin/QTMovieWinProduction.props: Added.
* WebCore.vcxproj/QTMovieWin/QTMovieWinRelease.props:
* WebCore.vcxproj/WebCore.make: Added.
* WebCore.vcxproj/WebCore.sln: Removed.
* WebCore.vcxproj/WebCore.submit.sln: Copied from Source/WebCore/WebCore.vcxproj/WebCore.sln.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCoreGenerated.vcxproj:
* WebCore.vcxproj/WebCoreGeneratedProduction.props: Added.
* WebCore.vcxproj/WebCoreGeneratedRelease.props:
* WebCore.vcxproj/WebCoreProduction.props: Added.
* WebCore.vcxproj/WebCoreRelease.props:
* WebCore.vcxproj/WebCoreTestSupport.vcxproj:
2013-02-20 Adam Klein <adamk@chromium.org>
[v8] Fix an erroneous WrapperGrouper call in preparation for refactoring
https://bugs.webkit.org/show_bug.cgi?id=110396
Reviewed by Kentaro Hara.
This is in preparation for a refactor to expose a simplified
WrapperGrouper interface to V8 wrapper classes enabling them to
specify multiple roots per wrapper object.
* bindings/v8/V8GCController.cpp: Since MutationObservers are not Nodes, the correct call here is addObjectToGroup, as it is for all other non-Node wrappers.
2013-02-20 Levi Weintraub <leviw@chromium.org>
Line layout (but not pref widths) double-counts word spacing when between inlines
https://bugs.webkit.org/show_bug.cgi?id=110381
Reviewed by Emil A Eklund.
When a word break with a space occurs between inlines and word-spacing is non-zero,
line layout incorrectly committed the word-spacing value to the line twice, causing
wrapping in inline-blocks. To fix this, clear the word-spacing value when between
words and ignoring spaces, as we will already have added the word-spacing to the
line.
Test: fast/text/word-space-between-inlines.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
2013-02-20 Nate Chapin <japhet@chromium.org>
Crash in WebCore::FrameLoader::checkCompleted()
https://bugs.webkit.org/show_bug.cgi?id=110237
Reviewed by Abhishek Arya.
Test: http/tests/misc/delete-frame-during-readystatechange.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkCompleted): Protect before setReadyState() is called.
2013-02-20 David Grogan <dgrogan@chromium.org>
IndexedDB: Limit LevelDB's max open files
https://bugs.webkit.org/show_bug.cgi?id=109993
Reviewed by Tony Chang.
LevelDB keeps up to 1000 (by default) data files open at a time to
avoid having to open() them. This has caused chromium to hit the
process-wide open file limit. This patch changes max_open_files to 20,
as that's the minimum permitted by LevelDB and we have no reason to
think that performance will suffer because of the extra open calls.
No new tests - a chromium browser test that tracks the open LevelDB
files is plausible but is blocked on http://crbug.com/177249/.
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::openDB):
2013-02-20 David Hyatt <hyatt@apple.com>
[New Multicolumn] Resize RenderMultiColumnSets around their columns.
https://bugs.webkit.org/show_bug.cgi?id=110378.
Reviewed by Dirk Schulze.
Test: fast/multicol/newmulticol/positioned-with-constrained-height.html.
* rendering/RenderBlock.h:
(RenderBlock):
Make computeOverflow public so that RenderMultiColumnFlowThread can
access it.
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::layout):
Subclass layout to recompute the overflow for RenderMultiColumnBlock
after the flow thread has finished layout. This way it can account
for changes in RenderMultiColumnSets without having to do a second
layout pass.
* rendering/RenderMultiColumnFlowThread.h:
(RenderMultiColumnFlowThread):
Override layout().
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::columnCount):
Clean up a comment that referred to portions as region rects still.
(WebCore::RenderMultiColumnSet::setFlowThreadPortionRect):
* rendering/RenderMultiColumnSet.h:
* rendering/RenderRegion.h:
(WebCore::RenderRegion::setFlowThreadPortionRect):
Make setFlowThreadPortionRect virtual and actually mutate the size
and position of RenderMultiColumnSets so that they enclose their
column rects.
2013-02-20 Dirk Schulze <krit@webkit.org>
Enable CANVAS_PATH flag
https://bugs.webkit.org/show_bug.cgi?id=108508
Reviewed by Simon Fraser.
Enable CANVAS_PATH flag on trunk.
Existing tests cover the feature.
* Configurations/FeatureDefines.xcconfig:
2013-02-20 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143441.
http://trac.webkit.org/changeset/143441
https://bugs.webkit.org/show_bug.cgi?id=110376
May be causing chromium content_browsertests failures.
(Requested by vollick on #webkit).
* bindings/v8/ScriptValue.cpp:
(WebCore::ScriptValue::serialize):
(WebCore::ScriptValue::getString):
(WebCore::ScriptValue::toString):
(WebCore::ScriptValue::toInspectorValue):
* bindings/v8/ScriptValue.h:
(WebCore::ScriptValue::ScriptValue):
(WebCore::ScriptValue::operator=):
(WebCore::ScriptValue::operator==):
(WebCore::ScriptValue::isEqual):
(WebCore::ScriptValue::isFunction):
(WebCore::ScriptValue::isNull):
(WebCore::ScriptValue::isUndefined):
(WebCore::ScriptValue::isObject):
(WebCore::ScriptValue::hasNoValue):
(WebCore::ScriptValue::clear):
(WebCore::ScriptValue::v8Value):
(ScriptValue):
* bindings/v8/SharedPersistent.h:
(WebCore):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::InjectedScriptHost::scriptValueAsNode):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::dataAttrGetterCustom):
2013-02-15 Dirk Schulze <krit@webkit.org>
[Chromium] Add runtime flag for CanvasPath
https://bugs.webkit.org/show_bug.cgi?id=109997
Reviewed by Adam Barth.
Add runtime flag for Chromium.
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures):
(WebCore::RuntimeEnabledFeatures::setCanvasPathEnabled):
(WebCore::RuntimeEnabledFeatures::canvasPathEnabled):
* html/canvas/DOMPath.idl:
* page/DOMWindow.idl:
2013-02-20 Laszlo Gombos <l.gombos@samsung.com>
Remove unnecessary includes for Platform.h from headers
https://bugs.webkit.org/show_bug.cgi?id=110300
Reviewed by Alexey Proskuryakov.
wtf/Platform.h only need to be included in a few places directly
as it is included in config.h. Remove the unnecessay duplicate as
it can be confusing.
No new tests, no change in functionality.
* platform/SecureTextInput.h:
* platform/audio/Biquad.h:
* platform/audio/FFTFrame.h:
* platform/graphics/cpu/arm/filters/FEBlendNEON.h:
* platform/graphics/cpu/arm/filters/NEONHelpers.h:
* platform/graphics/filters/FELighting.h:
2013-02-20 Florin Malita <fmalita@chromium.org>
[SVG] Update of element referenced by multiple 'use' nodes is absurdly slow
https://bugs.webkit.org/show_bug.cgi?id=97905
Reviewed by Dirk Schulze.
Rebuilding the shadow and instance trees of dependent use nodes recursively can be
extremely inefficient with non-trivial dependency graphs (the trees are not constructed
in topological order).
To avoid redundant buildShadowAndInstanceTree() invokations, separate the invalidation
phase from the actual tree (re)building phase, and only descend into the dependency DAG
during the invalidation phase (recursion also stops at nodes that have been previously
invalidated).
No new tests: functional coverage provided by existing tests, perfomance tracked by
PerformanceTests/SVG/SvgNestedUse.html.
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::buildPendingResource):
(WebCore::SVGUseElement::buildShadowAndInstanceTree):
(WebCore::SVGUseElement::invalidateShadowTree):
(WebCore):
(WebCore::SVGUseElement::invalidateDependentShadowTrees):
* svg/SVGUseElement.h:
(SVGUseElement):
2013-02-20 Tim Horton <timothy_horton@apple.com>
RenderLayerBacking should initialize TiledBacking's isInWindow state with Page's isInWindow, not isOnscreen
https://bugs.webkit.org/show_bug.cgi?id=110370
<rdar://problem/13254006>
Reviewed by Simon Fraser.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
2013-02-20 Mark Lam <mark.lam@apple.com>
Cleanup the SQLTransaction and SQLTransactionBackend state dispatch
to only honor a state transition request if the associated database
hasn't been interrupted.
https://bugs.webkit.org/show_bug.cgi?id=110247.
Reviewed by Antti Koivisto.
No new tests.
* Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::performPendingCallback):
(WebCore::SQLTransaction::computeNextStateAndCleanupIfNeeded):
* Modules/webdatabase/SQLTransaction.h:
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::computeNextStateAndCleanupIfNeeded):
(WebCore::SQLTransactionBackend::performNextStep):
* Modules/webdatabase/SQLTransactionBackend.h:
2013-02-20 Alexey Proskuryakov <ap@apple.com>
ResourceHandle::loadResourceSynchronously should have blob support in cross-platform code
https://bugs.webkit.org/show_bug.cgi?id=110364
Reviewed by Anders Carlsson.
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::loadResourceSynchronously):
Added a cross-platform version to keep blob-related logic in one place.
* platform/network/blackberry/ResourceHandleBlackBerry.cpp:
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
* platform/network/win/ResourceHandleWin.cpp:
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
Renamed loadResourceSynchronously to platformLoadResourceSynchronously,
removed blob handling from platforms that had it.
2013-02-20 David Hyatt <hyatt@apple.com>
[New Multicolumn] RenderMultiColumnFlowThreads should establish a BFC.
https://bugs.webkit.org/show_bug.cgi?id=110366.
Reviewed by Antti Koivisto.
RenderFlowThreads should establish a block formatting context always.
CSS Regions have named flow thread that they absolutely position, and so
they got this for free by being absolutely positioned.
RenderMultiColumnFlowThreads, however, are relative positioned, so we need
to just add an isRenderFlowThread case specifically so we're not dependent
on the positioning scheme used for the flow thread to establish the BFC.
Test: fast/multicol/newmulticol/float-*.html.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::MarginInfo::MarginInfo):
2013-02-20 David Hyatt <hyatt@apple.com>
[New Multicolumn] Column gap is computed incorrectly.
https://bugs.webkit.org/show_bug.cgi?id=110360.
Reviewed by Simon Fraser.
Test: fast/multicol/newmulticol/layers-split-across-columns.html.
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::columnGap):
Make sure we ask the RenderMultiColumnBlock for the gap rather than our
own style, since we don't actually have the gap value in our style.
(WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
* rendering/RenderMultiColumnSet.h:
Fix another spot where the columnGap was an int. It should be a LayoutUnit.
2013-02-20 Robert Hogan <robert@webkit.org>
No caret on empty contenteditable element with negative text-indent
https://bugs.webkit.org/show_bug.cgi?id=108633
Reviewed by Ryosuke Niwa.
Test: fast/repaint/paint-caret-in-div-with-negative-indent.html
When an editable element has a negative text indent we won't paint the caret when the
element is empty because it falls outside the element's border box. To ensure the caret is painted,
account for any negative indent with our overflow.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeOverflow):
2013-02-20 Ojan Vafai <ojan@chromium.org>
Remove stretchesToMinIntrinsicLogicalWidth
https://bugs.webkit.org/show_bug.cgi?id=110266
Reviewed by Emil Eklund.
This was only used by fieldsets and now we have a way to express this
concept in CSS.
* WebCore.order:
* css/html.css:
Make fieldsets min-width: -webkit-min-content.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalWidthInRegion):
(WebCore::RenderBox::computePositionedLogicalWidth):
* rendering/RenderBox.h:
Remove all calls to stretchesToMinIntrinsicLogicalWidth.
2013-02-20 Ojan Vafai <ojan@chromium.org>
Make intrinsic width values work for positioned elements
https://bugs.webkit.org/show_bug.cgi?id=110264
Reviewed by Tony Chang.
Tests: fast/css-intrinsic-dimensions/intrinsic-sized-absolutes.html
fast/css-intrinsic-dimensions/width-shrinks-avoid-floats.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeIntrinsicLogicalWidthUsing):
(WebCore::RenderBox::computeLogicalWidthInRegionUsing):
Move the computation of intrinsic widths out into a helper function so that
computePositionedLogicalWidthUsing can use it. As per the current spec,
fill-available measures shrink to avoid floats. http://dev.w3.org/csswg/css3-sizing/
(WebCore::RenderBox::computePositionedLogicalWidth):
Compute intrinsic min-widths in addition to non-zero ones. Intrinsic widths
return true for isZero. width and max-width don't need modifying since they already
call computePositionedLogicalWidthUsing for intrinsic widths.
(WebCore::RenderBox::computePositionedLogicalWidthUsing):
Compute intrinsic widths and use a Fixed length for the rest of the positioned width
computation. Doesn't include bordersPlusPadding because the caller, expected the content
width and adds in the bordersPlusPadding later.
* rendering/RenderBox.h:
2013-02-20 Robert Hogan <robert@webkit.org>
input element with placeholder text and width set to 100% on focus causes overflow even after losing focus
https://bugs.webkit.org/show_bug.cgi?id=109020
Reviewed by David Hyatt.
Tests: fast/forms/input-placeholder-layout-view.html
fast/forms/textarea-placeholder-layout-view.html
Placeholder elements don't affect layout so shouldn't contribute overflow either.
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout):
2013-02-20 Mark Lam <mark.lam@apple.com>
Rename DatabaseBackend to DatabaseBackendBase.
https://bugs.webkit.org/show_bug.cgi?id=110303.
Rubber stamped by Alexey Proskuryakov.
This is a purely cosmetic change to make the naming consistent with
the front-end DatabaseBase.
No new tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/AbstractDatabaseServer.h:
* Modules/webdatabase/Database.cpp:
(WebCore::Database::create):
(WebCore::Database::version):
* Modules/webdatabase/Database.h:
(Database):
* Modules/webdatabase/DatabaseBackend.cpp: Removed.
* Modules/webdatabase/DatabaseBackend.h: Removed.
* Modules/webdatabase/DatabaseBackendAsync.cpp:
(WebCore::DatabaseBackendAsync::DatabaseBackendAsync):
(WebCore::DatabaseBackendAsync::performOpenAndVerify):
* Modules/webdatabase/DatabaseBackendAsync.h:
* Modules/webdatabase/DatabaseBackendBase.cpp: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackend.cpp.
(WebCore::DatabaseBackendBase::databaseInfoTableName):
(WebCore::DatabaseBackendBase::DatabaseBackendBase):
(WebCore::DatabaseBackendBase::~DatabaseBackendBase):
(WebCore::DatabaseBackendBase::closeDatabase):
(WebCore::DatabaseBackendBase::version):
(WebCore::DoneCreatingDatabaseOnExitCaller::DoneCreatingDatabaseOnExitCaller):
(DoneCreatingDatabaseOnExitCaller):
(WebCore::DatabaseBackendBase::performOpenAndVerify):
(WebCore::DatabaseBackendBase::securityOrigin):
(WebCore::DatabaseBackendBase::stringIdentifier):
(WebCore::DatabaseBackendBase::displayName):
(WebCore::DatabaseBackendBase::estimatedSize):
(WebCore::DatabaseBackendBase::fileName):
(WebCore::DatabaseBackendBase::details):
(WebCore::DatabaseBackendBase::getVersionFromDatabase):
(WebCore::DatabaseBackendBase::setVersionInDatabase):
(WebCore::DatabaseBackendBase::setExpectedVersion):
(WebCore::DatabaseBackendBase::getCachedVersion):
(WebCore::DatabaseBackendBase::setCachedVersion):
(WebCore::DatabaseBackendBase::getActualVersionForTransaction):
(WebCore::DatabaseBackendBase::disableAuthorizer):
(WebCore::DatabaseBackendBase::enableAuthorizer):
(WebCore::DatabaseBackendBase::setAuthorizerReadOnly):
(WebCore::DatabaseBackendBase::setAuthorizerPermissions):
(WebCore::DatabaseBackendBase::lastActionChangedDatabase):
(WebCore::DatabaseBackendBase::lastActionWasInsert):
(WebCore::DatabaseBackendBase::resetDeletes):
(WebCore::DatabaseBackendBase::hadDeletes):
(WebCore::DatabaseBackendBase::resetAuthorizer):
(WebCore::DatabaseBackendBase::maximumSize):
(WebCore::DatabaseBackendBase::incrementalVacuumIfNeeded):
(WebCore::DatabaseBackendBase::interrupt):
(WebCore::DatabaseBackendBase::isInterrupted):
(WebCore::DatabaseBackendBase::reportOpenDatabaseResult):
(WebCore::DatabaseBackendBase::reportChangeVersionResult):
(WebCore::DatabaseBackendBase::reportStartTransactionResult):
(WebCore::DatabaseBackendBase::reportCommitTransactionResult):
(WebCore::DatabaseBackendBase::reportExecuteStatementResult):
(WebCore::DatabaseBackendBase::reportVacuumDatabaseResult):
* Modules/webdatabase/DatabaseBackendBase.h: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackend.h.
(DatabaseBackendBase):
* Modules/webdatabase/DatabaseBackendSync.cpp:
(WebCore::DatabaseBackendSync::DatabaseBackendSync):
* Modules/webdatabase/DatabaseBackendSync.h:
* Modules/webdatabase/DatabaseBase.h:
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::openDatabaseBackend):
(WebCore::DatabaseManager::openDatabase):
(WebCore::DatabaseManager::openDatabaseSync):
(WebCore::DatabaseManager::getMaxSizeForDatabase):
* Modules/webdatabase/DatabaseManager.h:
(DatabaseManager):
* Modules/webdatabase/DatabaseServer.cpp:
(WebCore::DatabaseServer::openDatabase):
(WebCore::DatabaseServer::createDatabase):
(WebCore::DatabaseServer::getMaxSizeForDatabase):
* Modules/webdatabase/DatabaseServer.h:
* Modules/webdatabase/DatabaseSync.cpp:
(WebCore::DatabaseSync::create):
* Modules/webdatabase/DatabaseSync.h:
(DatabaseSync):
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
(WebCore::DatabaseTracker::databaseChanged):
(WebCore::DatabaseTracker::interruptAllDatabasesForContext):
(WebCore::DatabaseTracker::doneCreatingDatabase):
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::DatabaseTracker::removeOpenDatabase):
(WebCore::DatabaseTracker::getOpenDatabases):
(WebCore::DatabaseTracker::deleteDatabaseFile):
* Modules/webdatabase/DatabaseTracker.h:
(DatabaseTracker):
* Modules/webdatabase/OriginQuotaManager.cpp:
(WebCore::OriginQuotaManager::markDatabase):
* Modules/webdatabase/OriginQuotaManager.h:
(OriginQuotaManager):
* Modules/webdatabase/SQLTransactionClient.cpp:
(WebCore::SQLTransactionClient::didCommitWriteTransaction):
(WebCore::SQLTransactionClient::didExecuteStatement):
(WebCore::SQLTransactionClient::didExceedQuota):
* Modules/webdatabase/SQLTransactionClient.h:
(SQLTransactionClient):
* Modules/webdatabase/chromium/DatabaseObserver.h:
(DatabaseObserver):
* Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::NotifyDatabaseObserverOnCloseTask::create):
(WebCore::NotifyDatabaseObserverOnCloseTask::NotifyDatabaseObserverOnCloseTask):
(NotifyDatabaseObserverOnCloseTask):
(WebCore::DatabaseTracker::removeOpenDatabase):
(WebCore::DatabaseTracker::prepareToOpenDatabase):
(WebCore::DatabaseTracker::failedToOpenDatabase):
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
(WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::create):
(WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::CloseOneDatabaseImmediatelyTask):
(DatabaseTracker::CloseOneDatabaseImmediatelyTask):
(WebCore::DatabaseTracker::closeOneDatabaseImmediately):
* Modules/webdatabase/chromium/SQLTransactionClientChromium.cpp:
(WebCore::NotifyDatabaseChangedTask::create):
(WebCore::NotifyDatabaseChangedTask::NotifyDatabaseChangedTask):
(NotifyDatabaseChangedTask):
(WebCore::SQLTransactionClient::didCommitWriteTransaction):
(WebCore::SQLTransactionClient::didExecuteStatement):
(WebCore::SQLTransactionClient::didExceedQuota):
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
2013-02-20 Eric Carlson <eric.carlson@apple.com>
iOS does not use CaptionUserPreferencesMac
https://bugs.webkit.org/show_bug.cgi?id=110259
Reviewed by Dean Jackson.
* page/CaptionUserPreferencesMac.h: Add PLATFORM(IOS) guard
* page/CaptionUserPreferencesMac.mm: Ditto.
* page/PageGroup.cpp:
(WebCore::PageGroup::captionPreferences): Ditto.
2013-02-19 David Hyatt <hyatt@apple.com>
[New Multicolumn] Make layers paint properly in columns.
https://bugs.webkit.org/show_bug.cgi?id=110296.
Reviewed by Sam Weinig.
Construct the style for the RenderMultiColumnFlowThread such that it
establishes a stacking context (by being position:relative
with a z-index of 0). This causes the layer collection code
to correctly ignore the RenderFlowThread layers during normal
painting.
Fix more clipping bugs to eliminate subpixel layout differences
between old and new multicolumn.
Test: fast/multicol/newmulticol/layers-in-multicol.html
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::createMultiColumnFlowThreadStyle):
(WebCore):
(WebCore::RenderMultiColumnBlock::addChild):
Use a custom style (similar to what normal RenderFlowThreads do)
for the RenderMultiColumnFlowThread that makes it a stacking
context.
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
Fix the overflow calculations out the leftmost and rightmost
columns to actually look at the physical placement of the columns.
The old code was backwards for RTL.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::overflowRectForFlowThreadPortion):
Fix the clipping done by overflowRectForFlowThreadPortion to min
and max with the passed-in portion rect so that subclasses that
inflate the rect prior to passing it into the method don't have that
inflation discarded.
2013-02-20 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: CSSProperty.status defaults to "style" not "active"
https://bugs.webkit.org/show_bug.cgi?id=110348
Reviewed by Timothy Hatcher.
* inspector/Inspector.json: Fix the default property status to be "style" in the description.
2013-02-20 Dan Carney <dcarney@google.com>
[v8] potentially disposed handle returned for npapi object
https://bugs.webkit.org/show_bug.cgi?id=110331
Reviewed by Kentaro Hara.
No new tests. No change in functionality.
* bindings/v8/V8NPUtils.cpp:
(WebCore::convertNPVariantToV8Object):
2013-02-20 Xabier Rodriguez Calvar <calvaris@igalia.com> and Martin Robinson <mrobinson@igalia.com>
[Gtk] HTML5 Media controls require a design refresh
https://bugs.webkit.org/show_bug.cgi?id=83869
Created new controls that depend less on Gtk and more in CSS.
Reviewed by Philippe Normand.
* GNUmakefile.list.am: Added compilation for MediaControlsGtk.cpp
and MediaControlsGtk.h
* css/mediaControlsGtk.css: Taken from Chromium and adapted for
WebKitGtk+.
* html/shadow/MediaControlsGtk.cpp: Added.
(WebCore): Added MediaControlsGtk class.
(WebCore::MediaControlsGtk::MediaControlsGtk): Class constructor
(WebCore::MediaControls::create): Creates the Gtk+ controls
components.
(WebCore::MediaControlsGtk::createControls): Creates the Gtk+
controls components.
(WebCore::MediaControlsGtk::initializeControls): Initializes all
media controls.
(WebCore::MediaControlsGtk::setMediaController): Sets the media
controller.
(WebCore::MediaControlsGtk::reset): Resets the controllers.
(WebCore::MediaControlsGtk::playbackStarted): Invoked when the
playback starts
(WebCore::MediaControlsGtk::updateCurrentTimeDisplay): Updates the
controls when the current time shall be updated.
(WebCore::MediaControlsGtk::changedMute): Updates the controls
then the mute changes.
(WebCore::MediaControlsGtk::showVolumeSlider): Invoked when the
volume slider is meant to be shown.
(WebCore::MediaControlsGtk::createTextTrackDisplay): Creates the
track display. Though it is not used by us, it needs to be created
to prevent immediate crashes when loading a video.
* html/shadow/MediaControlsGtk.h: Added.
(WebCore): Added the MediaControlsGtk class.
(MediaControlsGtk): Added the MediaControlsGtk class.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore): Added getStockSymbolicIconForWidgetType function
signature to load symbolic icons.
(WebCore::supportsFocus): Added media control widgets to support
focus so that the focus ring is not painted by WebCore.
(WebCore::RenderThemeGtk::paintMediaButton): Added the symbolic
icon support. It supports now normal and symbolic icons at the
same time.
(WebCore::RenderThemeGtk::paintMediaFullscreenButton): Added the
symbolic icon support.
(WebCore::RenderThemeGtk::paintMediaMuteButton): Added the
symbolic icon support.
(WebCore::RenderThemeGtk::paintMediaPlayButton): Added the
symbolic icon support.
(WebCore::RenderThemeGtk::paintMediaSeekBackButton): Added the
symbolic icon support.
(WebCore::RenderThemeGtk::paintMediaSeekForwardButton): Added the
symbolic icon support.
(WebCore::borderRadiiFromStyle): Created the radii info from the
style.
(WebCore::RenderThemeGtk::paintMediaSliderTrack): Removed the
background and the Gtk widget support as it is painted with
CSS. Also paint the time ranges with the CSS style.
(WebCore::RenderThemeGtk::paintMediaSliderThumb): Paint slider
thumb according to the CSS parameters.
(WebCore::RenderThemeGtk::paintMediaVolumeSliderContainer):
Delegates in the CSS.
(WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack): Fills the
track up to the volume level and delegates the border in the CSS.
(WebCore::RenderThemeGtk::paintMediaVolumeSliderThumb): Delegates
in the paintMediaSliderThumb method so the thumb is painted the
same with the CSS parameters.
(WebCore::RenderThemeGtk::paintMediaCurrentTime): Removed the Gtk
background to use only CSS.
* platform/gtk/RenderThemeGtk.h:
(RenderThemeGtk): Changed paintMediaButton to support the symbolic
and normal icons at the same time.
* platform/gtk/RenderThemeGtk2.cpp:
(WebCore::RenderThemeGtk::adjustSliderThumbSize): Not adjusting
the thumb size and letting the CSS decide that for media slider.
(WebCore::getStockSymbolicIconForWidgetType): Implemented as a
fallback to the normal stock icons.
* platform/gtk/RenderThemeGtk3.cpp:
(WebCore):
(WebCore::RenderThemeGtk::adjustSliderThumbSize): Not adjusting
the thumb size and letting the CSS decide that for the media
sliders.
(WebCore::getStockSymbolicIconForWidgetType): Added this function
to load symbolic icons. It falls back to normal icons if the
symbolic is not found.
2013-02-20 Andras Becsi <andras.becsi@digia.com>
[Qt] Rename AncestorChainWalker.h to EventPathWalker.h in the project file.
Unreviewed gardening.
AncestorChainWalker has been renamed to EventPathWalker in r143422.
Rename the header in the project file as well so that it shows up in QtCreator.
No new tests needed.
* Target.pri:
2013-02-20 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: fix for frontend closure compile errors.
https://bugs.webkit.org/show_bug.cgi?id=110329
Reviewed by Vsevolod Vlasov.
It has no tests because it has no code changes.
* inspector/front-end/HeapSnapshot.js:
(HeapSnapshotMetainfo):
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeSnapshotProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
(WebInspector.NativeSnapshotProfileType.prototype.buttonClicked):
2013-02-20 Florin Malita <fmalita@chromium.org>
Clear SVGPathSeg role on removal.
https://bugs.webkit.org/show_bug.cgi?id=110058
Reviewed by Dirk Schulze.
SVGPathSegListPropertyTearOff::initialize() and SVGPathSegListPropertyTearOff::replaceItem()
need to clear the context and role for segments being expunged from the list, similarly to
removeItem(). Otherwise, processIncomingListItemValue() can get confused and attempt to
remove stale segments.
Test: svg/dom/SVGPathSegList-crash.html
* svg/properties/SVGPathSegListPropertyTearOff.cpp:
(WebCore::SVGPathSegListPropertyTearOff::clearContextAndRoles):
(WebCore::SVGPathSegListPropertyTearOff::clear):
(WebCore::SVGPathSegListPropertyTearOff::replaceItem):
(WebCore):
* svg/properties/SVGPathSegListPropertyTearOff.h:
(WebCore::SVGPathSegListPropertyTearOff::initialize):
(SVGPathSegListPropertyTearOff):
2013-02-20 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143434.
http://trac.webkit.org/changeset/143434
https://bugs.webkit.org/show_bug.cgi?id=110326
added reftest fails on chromium mac 10.6 (Requested by
toyoshim on #webkit).
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::paintObject):
2013-02-19 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Make UISourceCode.path() an array of path segments.
https://bugs.webkit.org/show_bug.cgi?id=110229
Reviewed by Pavel Feldman.
* inspector/front-end/FileSystemProjectDelegate.js:
(WebInspector.FileSystemProjectDelegate.prototype._filePathForPath):
(WebInspector.FileSystemProjectDelegate.prototype.innerCallback):
(WebInspector.FileSystemProjectDelegate.prototype.requestFileContent):
(WebInspector.FileSystemProjectDelegate.prototype._contentTypeForPath):
(WebInspector.FileSystemProjectDelegate.prototype.populate.filesLoaded):
(WebInspector.FileSystemProjectDelegate.prototype.populate):
* inspector/front-end/SimpleWorkspaceProvider.js:
(WebInspector.SimpleProjectDelegate.prototype.requestFileContent):
(WebInspector.SimpleProjectDelegate.prototype.searchInFileContent):
(WebInspector.SimpleProjectDelegate.prototype.addFile):
(WebInspector.SimpleProjectDelegate.prototype._ensureUniquePath):
(WebInspector.SimpleProjectDelegate.prototype.removeFile):
(WebInspector.SimpleWorkspaceProvider.pathForSplittedURL):
(WebInspector.SimpleWorkspaceProvider.prototype.addFileByName):
(WebInspector.SimpleWorkspaceProvider.prototype.removeFileByName):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.uri):
* inspector/front-end/Workspace.js:
(WebInspector.Project.prototype._fileAdded):
(WebInspector.Project.prototype._fileRemoved):
(WebInspector.Project.prototype.uiSourceCode):
(WebInspector.Workspace.prototype.uiSourceCodeForURL):
(WebInspector.Workspace.prototype.urlForPath):
2013-02-20 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: fix message for non-existent domain warning
https://bugs.webkit.org/show_bug.cgi?id=110315
Reviewed by Alexander Pavlov.
Only send (Heap)Profiler.resetProfiles event if the client has
requested profile headers before.
* inspector/InspectorHeapProfilerAgent.cpp:
(HeapProfilerAgentState):
(WebCore):
(WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
(WebCore::InspectorHeapProfilerAgent::resetFrontendProfiles):
(WebCore::InspectorHeapProfilerAgent::clearFrontend):
(WebCore::InspectorHeapProfilerAgent::restore):
(WebCore::InspectorHeapProfilerAgent::getProfileHeaders):
* inspector/InspectorHeapProfilerAgent.h:
(InspectorHeapProfilerAgent):
* inspector/InspectorProfilerAgent.cpp:
(ProfilerAgentState):
(WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
(WebCore::InspectorProfilerAgent::addProfile):
(WebCore::InspectorProfilerAgent::disable):
(WebCore::InspectorProfilerAgent::getProfileHeaders):
(WebCore):
(WebCore::InspectorProfilerAgent::resetFrontendProfiles):
(WebCore::InspectorProfilerAgent::restore):
* inspector/InspectorProfilerAgent.h:
(InspectorProfilerAgent):
2013-02-19 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Move workspace specific code from FileMapping to workspace.
https://bugs.webkit.org/show_bug.cgi?id=110219
Reviewed by Pavel Feldman.
Extracted workspace specific code from FileMapping to Workspace.
This allows to reduce usage of uri and eventually make UISourceCode.path an array of path segments.
Test: inspector/workspace-mapping.html
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSStyleModel.prototype.rawLocationToUILocation):
* inspector/front-end/CompilerScriptMapping.js:
(WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
(WebInspector.CompilerScriptMapping.prototype.get addScript.get this):
(WebInspector.CompilerScriptMapping.prototype.get addScript):
* inspector/front-end/FileMapping.js:
(WebInspector.FileMapping):
(WebInspector.FileMapping.prototype.mappingEntryForURL):
(WebInspector.FileMapping.prototype.mappingEntryForPath):
* inspector/front-end/FileSystemMapping.js:
(WebInspector.FileSystemMapping.prototype.fileSystemPathForPrefix):
(WebInspector.FileSystemMappingImpl.prototype.addFileSystemMapping):
(WebInspector.FileSystemMappingImpl.prototype.removeFileSystemMapping):
(WebInspector.FileSystemMappingImpl.prototype.fileSystemPathForPrefix):
* inspector/front-end/FileSystemProjectDelegate.js:
(WebInspector.FileSystemProjectDelegate):
(WebInspector.FileSystemProjectDelegate.prototype.populate.filesLoaded):
(WebInspector.FileSystemProjectDelegate.prototype.populate):
(WebInspector.FileSystemWorkspaceProvider):
(WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemAdded):
* inspector/front-end/IsolatedFileSystemManager.js:
(WebInspector.IsolatedFileSystemManager):
* inspector/front-end/NetworkUISourceCodeProvider.js:
(WebInspector.NetworkUISourceCodeProvider):
(WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping.prototype._workspaceUISourceCodeForScript):
* inspector/front-end/ResourceUtils.js:
(WebInspector.displayNameForURL):
* inspector/front-end/SASSSourceMapping.js:
(WebInspector.SASSSourceMapping.prototype._reloadCSS):
(WebInspector.SASSSourceMapping.prototype._bindUISourceCode):
(WebInspector.SASSSourceMapping.prototype.rawLocationToUILocation):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
* inspector/front-end/SimpleWorkspaceProvider.js:
(WebInspector.SimpleWorkspaceProvider.pathForSplittedURL):
(WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
* inspector/front-end/StylesSourceMapping.js:
(WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
(WebInspector.StylesSourceMapping.prototype._resourceAdded):
(WebInspector.StylesSourceMapping.prototype._mainFrameCreatedOrNavigated):
(WebInspector.StyleContentBinding):
(WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
* inspector/front-end/Workspace.js:
(WebInspector.Workspace):
(WebInspector.Workspace.prototype.hasMappingForURL):
(WebInspector.Workspace.prototype._fileSystemPathForEntry):
(WebInspector.Workspace.prototype.uiSourceCodeForURL):
(WebInspector.Workspace.prototype.urlForPath):
* inspector/front-end/inspector.js:
2013-02-20 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Introduce SecurityOriginAdded and SecurityOriginRemoved events into ResourceTreeModel
https://bugs.webkit.org/show_bug.cgi?id=110232
Reviewed by Vsevolod Vlasov.
* inspector/front-end/ResourceTreeModel.js:
(WebInspector.ResourceTreeModel):
(WebInspector.ResourceTreeModel.prototype._addFrame):
(WebInspector.ResourceTreeModel.prototype._addSecurityOrigin): Added.
(WebInspector.ResourceTreeModel.prototype._removeSecurityOrigin): Added.
(WebInspector.ResourceTreeModel.prototype._handleMainFrameDetached): Added.
(WebInspector.ResourceTreeModel.prototype._frameNavigated):
(WebInspector.ResourceTreeModel.prototype._frameDetached):
2013-02-20 Dan Carney <dcarney@google.com>
[v8] ScriptValue has dangerous copy semantics
https://bugs.webkit.org/show_bug.cgi?id=110206
Reviewed by Kentaro Hara.
Update ScriptValue to used a SharedPersistent,
making it impossible to return dead references.
No new tests. No change in functionality.
* bindings/v8/ScriptValue.cpp:
(WebCore::ScriptValue::serialize):
(WebCore::ScriptValue::getString):
(WebCore::ScriptValue::toString):
(WebCore::ScriptValue::toInspectorValue):
* bindings/v8/ScriptValue.h:
(WebCore::ScriptValue::ScriptValue):
(WebCore::ScriptValue::operator=):
(WebCore::ScriptValue::operator==):
(WebCore::ScriptValue::isEqual):
(WebCore::ScriptValue::isFunction):
(WebCore::ScriptValue::isNull):
(WebCore::ScriptValue::isUndefined):
(WebCore::ScriptValue::isObject):
(WebCore::ScriptValue::hasNoValue):
(WebCore::ScriptValue::clear):
(ScriptValue):
(WebCore::ScriptValue::v8Value):
(WebCore::ScriptValue::v8ValueRaw):
* bindings/v8/SharedPersistent.h:
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::InjectedScriptHost::scriptValueAsNode):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::dataAttrGetterCustom):
2013-02-20 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: highlight undefined word in JavaScript
https://bugs.webkit.org/show_bug.cgi?id=109585
Reviewed by Vsevolod Vlasov.
Test enhancement: inspector/syntax-highlight-javascript.html
Add global object value properties to tokenizer and add a css style
class to highlight "undefined" with gray color.
* inspector/front-end/SourceJavaScriptTokenizer.js:
(WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
* inspector/front-end/SourceJavaScriptTokenizer.re2js:
* inspector/front-end/inspectorSyntaxHighlight.css:
(.webkit-javascript-undef):
2013-02-20 Mike West <mkwst@chromium.org>
Use EventPathWalker rather than parentNode() to normalize event targets in EventHandler.
https://bugs.webkit.org/show_bug.cgi?id=110037
Reviewed by Ryosuke Niwa.
We need to teach EventHandler about Shadow DOM in a few places in order
to ensure that we properly target events dispatched upon text nodes.
Rather than naively grabbing the text node's direct parent via
parentNode(), we need to account for the case in which the text node is
distributed[1] to an insertion point inside a shadow host.
EventPathWalker::parent understands these relationships, and should
be used when dealing with mouse, drag, and touch events.
[1]: http://www.w3.org/TR/shadow-dom/#dfn-distribution
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseDraggedEvent):
(WebCore::EventHandler::handleTouchEvent):
(WebCore::EventHandler::passGestureEventToWidgetIfPossible):
(WebCore::EventHandler::updateDragAndDrop):
Refactor parentNode callsites to use EventPathWalker::parent().
2013-02-20 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: [Regression] Search in ProfilesPanel is broken
https://bugs.webkit.org/show_bug.cgi?id=110312
Reviewed by Pavel Feldman.
* inspector/front-end/CPUProfileView.js:
(WebInspector.CPUProfileView.prototype.matchesQuery):
(WebInspector.CPUProfileView.prototype.performSearch):
2013-02-20 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: View.markAsRoot should never be invoked on attached view.
https://bugs.webkit.org/show_bug.cgi?id=110224
Reviewed by Pavel Feldman.
This will cause CSS loading problems after "show".
* inspector/front-end/Drawer.js:
Ensure child view is detached before marked as root.
* inspector/front-end/View.js:
(WebInspector.View.prototype.markAsRoot): Added assertion.
2013-02-20 Nils Barth <nbarth@google.com>
File upload control doesn't apply CSS vertical padding or border to file name
https://bugs.webkit.org/show_bug.cgi?id=109011
Reviewed by Hajime Morrita.
Test: fast/forms/file/file-vertical-padding-border.html
* rendering/RenderFileUploadControl.cpp:
Add borderTop() and paddingTop() when computing position.
(WebCore::RenderFileUploadControl::paintObject):
2013-02-19 Andrey Adaikin <aandrey@chromium.org>
Few methods in WebGLRenderingContext.idl have incorrect signatures
https://bugs.webkit.org/show_bug.cgi?id=110305
Reviewed by Kentaro Hara.
* html/canvas/WebGLRenderingContext.idl:
2013-02-19 Tim Horton <timothy_horton@apple.com>
Clarify isInWindow vs. isVisible path through to RenderLayerCompositor
https://bugs.webkit.org/show_bug.cgi?id=110261
<rdar://problem/13196122>
Reviewed by Simon Fraser.
Remove RenderLayerCompositor::willMoveOffscreen/didMoveOnscreen.
Add RenderLayerCompositor::setIsInWindow, and pipe in-window changes through from Page::setIsInWindow.
Adjust a few Document functions that previously called RenderView::didMoveOnscreen/willMoveOffscreen to use setIsInWindow instead, since in-window state changes are occurring when attaching and detaching documents.
* WebCore.exp.in: Export Page::setIsInWindow.
* dom/Document.cpp:
(WebCore::Document::attach): Use setIsInWindow instead of didMoveOnscreen.
(WebCore::Document::documentWillBecomeInactive): Use setIsInWindow instead of willMoveOffscreen.
(WebCore::Document::documentDidResumeFromPageCache): Use setIsInWindow instead of didMoveOnscreen.
* page/FrameView.cpp:
(WebCore::FrameView::didMoveOnscreen):
(WebCore::FrameView::willMoveOffscreen):
RenderView doesn't care about moving on/offscreen, just in-window state.
(WebCore::FrameView::setIsInWindow): Added. Forward isInWindow changes to our RenderView.
* page/FrameView.h:
(FrameView): Add setIsInWindow.
* page/Page.cpp:
(WebCore::Page::setIsInWindow): Added. Forward isInWindow changes to the Page's FrameViews.
* page/Page.h:
(Page): Add setIsInWindow.
(WebCore::Page::isInWindow):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::setIsInWindow): Added. Replace willMoveOffscreen/didMoveOnscreen with setIsInWindow,
since that's the only change we actually care about.
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor): Add setIsInWindow.
* rendering/RenderView.cpp:
(WebCore::RenderView::setIsInWindow): Added. Replace willMoveOffscreen/didMoveOnscreen with setIsInWindow,
since that's the only change RenderLayerCompositor actually cares about.
* rendering/RenderView.h:
(RenderView): Add setIsInWindow.
2013-02-19 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Cleanup and add JSDocs to SuggestBox
https://bugs.webkit.org/show_bug.cgi?id=110202
Reviewed by Pavel Feldman.
SuggestBox contains some obsolete/unused code and not fully
covered with JSDocs.
* inspector/front-end/SuggestBox.js:
(WebInspector.SuggestBox.prototype.visible):
Replaced getter with function.
(WebInspector.SuggestBox.prototype._onScrollOrResize):
Use camel-case for function names.
(WebInspector.SuggestBox.prototype._onBoxMouseDown): Ditto.
(WebInspector.SuggestBox.prototype.updateSuggestions):
Removed unused code.
(WebInspector.SuggestBox.prototype.hide): Adopt changes.
(WebInspector.SuggestBox.prototype._applySuggestion): Ditto.
* inspector/front-end/TextPrompt.js:
(WebInspector.TextPrompt.prototype.isSuggestBoxVisible): Ditto.
2013-02-19 Hayato Ito <hayato@chromium.org>
Calculate EventPath in EventDispatcher's constructor.
https://bugs.webkit.org/show_bug.cgi?id=109905
Reviewed by Dimitri Glazkov.
This patch calculates an EventPath in EventDispatcher's
constructor and removes EventDispatcher::ensureEventPath().
We don't have any reason to initialize an EventPath lazily.
No tests. No change in behavior.
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::EventDispatcher):
(WebCore::EventDispatcher::dispatch):
* dom/EventDispatcher.h:
(WebCore::EventDispatcher::eventPath):
(EventDispatcher):
* dom/FocusEvent.cpp:
(WebCore::FocusEventDispatchMediator::dispatchEvent):
(WebCore::BlurEventDispatchMediator::dispatchEvent):
(WebCore::FocusInEventDispatchMediator::dispatchEvent):
(WebCore::FocusOutEventDispatchMediator::dispatchEvent):
* dom/MouseEvent.cpp:
(WebCore::MouseEventDispatchMediator::dispatchEvent):
2013-02-19 Simon Fraser <simon.fraser@apple.com>
Fix TileCache tile size when zoomed on slow-scrolling site
https://bugs.webkit.org/show_bug.cgi?id=110289
Reviewed by Tim Horton.
In slow scrolling mode, we use the tile coverage rect as the tile size
(so a single tile covers the viewport). When zoomed, the tile coverage rect
shrinks relative to the TileCache, so scale the tile size back up.
Test: platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed.html
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::tileSizeForCoverageRect):
2013-02-19 Hayato Ito <hayato@chromium.org>
Rename AncestorChainWalker.
https://bugs.webkit.org/show_bug.cgi?id=110146
Reviewed by Dimitri Glazkov.
Rename AncestorChainWalker to EventPathWalker.
The term of EventPath is used in DOM Core spec. EventPath was
already introduced into a EventContext.h in r112055. We should
spread this term into the Walker class since they share the same
purpose.
No new tests, no behavior change.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* dom/DOMAllInOne.cpp:
* dom/EventDispatcher.cpp:
* dom/EventPathWalker.cpp: Renamed from Source/WebCore/dom/AncestorChainWalker.cpp.
(WebCore):
(WebCore::EventPathWalker::EventPathWalker):
(WebCore::EventPathWalker::parent): parent() is now a static function to cover simple use cases.
(WebCore::EventPathWalker::moveToParent): Renamed from parent().
* dom/EventPathWalker.h: Renamed from Source/WebCore/dom/AncestorChainWalker.h.
(WebCore):
(EventPathWalker):
(WebCore::EventPathWalker::node):
(WebCore::EventPathWalker::isVisitingInsertionPointInReprojection): Renamed from isCrossingInsertionPoint().
* dom/EventRetargeter.cpp:
(WebCore::EventRetargeter::calculateEventPath):
(WebCore::EventRetargeter::buildRelatedNodeMap):
* dom/TreeScope.cpp:
(WebCore::TreeScope::focusedNode):
* html/HTMLLIElement.cpp:
(WebCore::HTMLLIElement::attach):
* page/EventHandler.cpp:
(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::handleWheelEvent):
2013-02-19 Dean Jackson <dino@apple.com>
Snapshotted plugin label should not be selectable
https://bugs.webkit.org/show_bug.cgi?id=110286
Reviewed by Simon Fraser.
Update the CSS to make it clear that you should click
on a snapshot (use the finger pointer) and disable
text selection.
* css/plugIns.css:
(embed::-webkit-snapshotted-plugin-content .snapshot-container .snapshot-label):
2013-02-19 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Enable shape-inside support for ellipses
https://bugs.webkit.org/show_bug.cgi?id=109868
Reviewed by Dirk Schulze.
This change is very similar to the one recently made for circles:
removed the test that disabled ellipse values for shape-inside.
The remaining support for ellipses, which is based on rounded rectangles
whose width/height is equal to their radiusX/radiusY, has not changed.
Test: fast/exclusions/shape-inside/shape-inside-ellipse.html
* rendering/ExclusionShapeInsideInfo.h:
(WebCore::ExclusionShapeInsideInfo::isEnabledFor): No longer disallows any BasicShape type.
2013-02-19 Uday Kiran <udaykiran@motorola.com>
'round' not implemented in border-image
https://bugs.webkit.org/show_bug.cgi?id=14185
Reviewed by David Hyatt.
Add rendering support for 'round' keyword of border-image-repeat CSS property
http://dev.w3.org/csswg/css3-background/#border-image-repeat
Rebased original patch by Benjamin Otte <otte@gnome.org> and made few fixes.
Test: fast/borders/border-image-02.html
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawTiledImage):
* platform/graphics/GraphicsContext.h:
(GraphicsContext):
* platform/graphics/Image.cpp:
(WebCore::Image::drawTiled):
* platform/graphics/Image.h:
(Image):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintNinePieceImage): For 'round' keyword,
the image is tiled (repeated) to fill the area. If it does not fill the area
with a whole number of tiles, the image is rescaled so that it does.
2013-02-19 Conrad Shultz <conrad_shultz@apple.com>
Allow UI clients to handle vertical wheel events.
https://bugs.webkit.org/show_bug.cgi?id=110006
Reviewed by Tim Horton.
Add API to allow matching changes in WebKit2 to control rubber-banding behavior at vertical page extrema.
If rubber-banding is disabled during a scroll event that would otherwise trigger rubber-banding, dispatch
didNotHandleWheelEvent() to the page UI client.
* WebCore.exp.in:
Export new rubber-banding API.
* page/Page.cpp:
(WebCore):
(WebCore::Page::rubberBandsAtBottom):
Proxy for the corresponding function in ScrollingCoordinator.
(WebCore::Page::setRubberBandsAtBottom):
Ditto.
(WebCore::Page::rubberBandsAtTop):
Ditto.
(WebCore::Page::setRubberBandsAtTop):
Ditto.
* page/Page.h:
(Page):
Declare new rubber-banding API (above).
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::rubberBandsAtBottom):
Stub API implementation.
(WebCore::ScrollingCoordinator::setRubberBandsAtBottom):
Ditto.
(WebCore::ScrollingCoordinator::rubberBandsAtTop):
Ditto.
(WebCore::ScrollingCoordinator::setRubberBandsAtTop):
Ditto.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::ScrollingTree):
Initialize new member variables.
(WebCore::ScrollingTree::setMainFramePinState):
Set top/bottom pinned states.
(WebCore::ScrollingTree::rubberBandsAtBottom):
New accessor function.
(WebCore::ScrollingTree::setRubberBandsAtBottom):
New mutator function.
(WebCore::ScrollingTree::rubberBandsAtTop):
New accessor function.
(WebCore::ScrollingTree::setRubberBandsAtTop):
New mutator function.
(WebCore::ScrollingTree::willWheelEventStartSwipeGesture):
Start a vertical swipe event if the frame is pinned at the top or bottom and associated rubber-banding is disabled.
* page/scrolling/ScrollingTree.h:
(ScrollingTree):
Declare new rubber-banding API and associated member variables.
* page/scrolling/mac/ScrollingCoordinatorMac.h:
(ScrollingCoordinatorMac):
Declare API overrides.
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::rubberBandsAtBottom):
Method override; proxy to corresponding function in ScrollingTree.
(WebCore::ScrollingCoordinatorMac::setRubberBandsAtBottom):
Ditto.
(WebCore::ScrollingCoordinatorMac::rubberBandsAtTop):
Ditto.
(WebCore::ScrollingCoordinatorMac::setRubberBandsAtTop):
Ditto.
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::pinnedInDirection):
Remove trailing whitespace.
(WebCore::ScrollingTreeScrollingNodeMac::updateMainFramePinState):
Calculate and pass vertical pinning state to ScrollingTree::setMainFramePinState().
2013-02-19 Simon Fraser <simon.fraser@apple.com>
Rubber-banding should not affect the visibleRect of the TileCache
https://bugs.webkit.org/show_bug.cgi?id=110278
Reviewed by Beth Dakin.
When rubber-banding a slow-scrolling page, or image document, we would constantly re-create
the bottom tile because of the logic that adapts the tile size to the visible rect when slow
scrolling.
Avoid that by ensuring that the visibleRect is not affected by rubber-banding. This is done
via a GraphicsLayerClient function that allows RenderLayerCompositor to provide a custom
position for the scroll layer. We constrain that scroll position to remove the overhang that
results from rubber-banding.
I wasn't able to make a test for this, even with internals.setScrollViewPosition().
* platform/graphics/GraphicsLayerClient.h:
(GraphicsLayerClient):
(WebCore::GraphicsLayerClient::customPositionForVisibleRectComputation):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::computeVisibleRect):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::customPositionForVisibleRectComputation):
* rendering/RenderLayerCompositor.h:
2013-02-19 Tony Gentilcore <tonyg@chromium.org>
Fix crash in preloading scanning base tags with no href attribute for background parser
https://bugs.webkit.org/show_bug.cgi?id=110276
Reviewed by Eric Seidel.
Previously a <base> tag without an href attribute (like the one in fast/dom/HTMLAnchorElement/set-href-attribute-rebase.html)
would crash the background parser's preload scanner.
To fix that, we only call stripLeadingAndTrailingHTMLSpaces() if the href attribute is non-null. This matches the main thread parser.
Along with this, I decided to templatize updatePredictedBaseURL() so that the main and background parser can share the same impl.
This required making CompactHTMLToken and HTMLToken a little more similar:
1. Give HTMLToken a getAttributeItem() method.
2. Move CompactAttribute to CompactHTMLToken::Attribute and make it a struct.
No new tests because covered by existing tests.
* html/parser/AtomicHTMLToken.h:
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
* html/parser/CompactHTMLToken.cpp:
(SameSizeAsCompactHTMLToken):
(WebCore::CompactHTMLToken::CompactHTMLToken):
(WebCore::CompactHTMLToken::getAttributeItem):
(WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
* html/parser/CompactHTMLToken.h:
(WebCore::CompactHTMLToken::Attribute::Attribute):
(Attribute):
(WebCore::CompactHTMLToken::attributes):
(CompactHTMLToken):
(WebCore::CompactHTMLToken::publicIdentifier):
(WebCore::CompactHTMLToken::systemIdentifier):
* html/parser/HTMLParserIdioms.h:
(WebCore):
(WebCore::stripLeadingAndTrailingHTMLSpaces):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(WebCore):
(WebCore::TokenPreloadScanner::updatePredictedBaseURL):
* html/parser/HTMLPreloadScanner.h:
* html/parser/HTMLToken.h:
(WebCore::HTMLToken::getAttributeItem):
(HTMLToken):
2013-02-19 Mark Lam <mark.lam@apple.com>
Introducing AbstractSQLTransaction and AbstractSQLTransactionBackend.
https://bugs.webkit.org/show_bug.cgi?id=110273.
Reviewed by Anders Carlsson.
This is part of the webdatabase refactoring for webkit2.
- Also changed the frontend and backend to only refer to the
abstract interface of each other.
No new tests.
* Modules/webdatabase/AbstractSQLTransaction.h: Added.
(AbstractSQLTransaction):
(WebCore::AbstractSQLTransaction::~AbstractSQLTransaction):
* Modules/webdatabase/AbstractSQLTransactionBackend.h: Added.
(AbstractSQLTransactionBackend):
(WebCore::AbstractSQLTransactionBackend::~AbstractSQLTransactionBackend):
* Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::hasCallback):
(WebCore::SQLTransaction::hasSuccessCallback):
(WebCore::SQLTransaction::hasErrorCallback):
(WebCore::SQLTransaction::setBackend):
* Modules/webdatabase/SQLTransaction.h:
(SQLTransaction):
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::create):
(WebCore::SQLTransactionBackend::SQLTransactionBackend):
* Modules/webdatabase/SQLTransactionBackend.h:
(SQLTransactionBackend):
* Modules/webdatabase/SQLTransactionStateMachine.h:
2013-02-19 Emil A Eklund <eae@chromium.org>
Change computeStickyPositionConstraints to use LayoutBoxExtent for margins
https://bugs.webkit.org/show_bug.cgi?id=108872
Reviewed by Levi Weintraub.
Change RenderBoxModelObject::computeStickyPositionConstraints to
use a LayoutBoxExtent to represent margins.
No new tests, no change in functionality.
* platform/graphics/LayoutRect.h:
(WebCore::LayoutRect::contract):
Add version contract methods that takes a LayoutBoxExtent object.
* platform/graphics/LayoutSize.h:
(WebCore::LayoutSize::shrink):
Add shrink method.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
Change to use a LayoutBoxExtent object to represent margins.
2013-02-19 Tony Gentilcore <tonyg@chromium.org>
Disable ASSERT(!hasInsertionPoint()) for background parser
https://bugs.webkit.org/show_bug.cgi?id=110251
Reviewed by Adam Barth.
The background parser crashes about 10 layout tests by hitting ASSERT(!hasInsertionPoint()).
Now, finish() is the thing that closes the HTMLInputStream which removes the insertion point.
In these tests, a document.open() calls insert() which clears the HTMLInputStream which causes
there to be an insertion point again.
With the main thread parser, insert() is called before finish() so the ASSERT passes.
However, with the threaded parser, finish() is called before insert(), so we fail the ASSERT.
This patch disables the ASSERT for the background parser because m_input isn't really relevant.
This causes us to pass the tests. However, there is a risk that now hasInsertionPoint() may be incorrect
and Document has a non-debug branch that tests hasInsertionPoint().
No new tests because covered by existing tests.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::prepareToStopParsing):
(WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd):
2013-02-19 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Enable shape-inside support for ellipses
https://bugs.webkit.org/show_bug.cgi?id=109868
Reviewed by Dirk Schulze.
This change is very similar to the one recently made for circles:
removed the test that disabled ellipse values for shape-inside.
The remaining support for ellipses, which is based on rounded rectangles
whose width/height is equal to their radiusX/radiusY, has not changed.
Test: fast/exclusions/shape-inside/shape-inside-ellipse.html
* rendering/ExclusionShapeInsideInfo.h:
(WebCore::ExclusionShapeInsideInfo::isEnabledFor): No longer disallows any BasicShape type.
2013-02-19 Simon Fraser <simon.fraser@apple.com>
Separate constraining for overhang from fixed-position zooming behavior in scrollOffsetForFixedPosition()
https://bugs.webkit.org/show_bug.cgi?id=110267
Reviewed by Beth Dakin.
The static scrollOffsetForFixedPosition() function in ScrollingCoordinator did two things;
it constrained the scroll position when rubber-banding, and applied the special scaling for
fixed position when zoomed.
Separate these out so that we can use the rubber-banding constrained elsewhere.
* page/FrameView.cpp:
(WebCore::FrameView::scrollOffsetForFixedPosition): The static function is here now.
* page/FrameView.h:
* page/scrolling/ScrollingCoordinator.cpp: Code moved to FrameView.
* page/scrolling/ScrollingCoordinator.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition): scrollOffsetForFixedPosition()
is now on FrameView.
* platform/ScrollableArea.cpp:
(WebCore::constrainedScrollPosition): Helper to constrain one axis for overhang.
(WebCore::ScrollableArea::constrainScrollPositionForOverhang): Static function that
can be called by FrameView::scrollOffsetForFixedPosition().
* platform/ScrollableArea.h: Static function constrainScrollPositionForOverhang()
so we can call it from another thread. Also a member fuction of the same name, which takes
the scrollPosition as input (so we can feed it a layer position in a later patch).
2013-02-19 Tony Gentilcore <tonyg@chromium.org>
Fix checkThatTokensAreSafeToSendToAnotherThread() now that the preload scanner is enabled
https://bugs.webkit.org/show_bug.cgi?id=110258
Reviewed by Adam Barth.
We were hitting this ASSERT on numerous tests with the background parser enabled. This copy fixes the assertion.
No new tests becuase covered by existing tests.
* html/parser/HTMLResourcePreloader.h:
(WebCore::PreloadRequest::setCharset):
2013-02-19 Tony Gentilcore <tonyg@chromium.org>
Fix typo: inititatorFor->initiatorFor
https://bugs.webkit.org/show_bug.cgi?id=110260
Reviewed by Adam Barth.
No new tests because no changed functionality.
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::initiatorFor):
(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
* html/parser/HTMLPreloadScanner.h:
2013-02-19 Tony Chang <tony@chromium.org>
Convert 3 settings to use Settings.in
https://bugs.webkit.org/show_bug.cgi?id=109875
Reviewed by Ryosuke Niwa.
Convert mediaEnabled, applicationChromeMode and DOMPasteAllowed to
use Settings.in. They previously had inconsistently named setters.
No new tests, this is a refactoring.
* Source/WebCore/WebCore.exp.in: Remove symbols that are now inlined from exports.
* Source/WebCore/WebCore.order: Remove symbols that no longer exist.
* dom/make_names.pl:
(printConstructorInterior): Rename isMediaEnabled to mediaEnabled.
(printWrapperFunctions): Rename isMediaEnabled to mediaEnabled.
* editing/EditorCommand.cpp:
(WebCore::supportedPaste): Rename isDOMPasteAllowed to DOMPasteAllowed.
* page/Settings.cpp:
(WebCore::Settings::Settings): Remove custom code.
* page/Settings.h:
(Settings): Remove custom code.
* page/Settings.in: Add entries for mediaEnabled, applicationChromeMode and DOMPasteAllowed.
* page/make_settings.pl:
(setterFunctionName): Expand uppercase rules to include DOM.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::isDefault): Rename inApplicationChromeMode to applicationChromeMode.
* rendering/RenderThemeWin.cpp:
(WebCore::documentIsInApplicationChromeMode): Rename inApplicationChromeMode to applicationChromeMode.
2013-02-19 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Refactor the code in preparation of auto placement support
https://bugs.webkit.org/show_bug.cgi?id=110244
Reviewed by Ojan Vafai.
Test: fast/css-grid-layout/grid-auto-flow-resolution.html
In order to support auto placement, we need to iterate over the grid items with
auto row / column several times. This changes makes us do that in a very simple,
not-yet-conformant way. While touching this code, the distinction between grid-auto-flow
none and row / column was better drawn (and enforced).
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::resolveGridPositionFromStyle):
Made it illegal to call resolveGridPositionFromStyle if the grid track is auto and
grid-auto-flow is not none. This would catch bad use of the function.
(WebCore::RenderGrid::maximumIndexInDirection):
Updated to bail out if the grid track is auto. Also improved the comment.
(WebCore::RenderGrid::placeItemsOnGrid):
Updated the function to do several iterations. Also handled the grid-auto-flow: none
case differently as it shouldn't need the extra iteration(s).
2013-02-19 David Hyatt <hyatt@apple.com>
[New Multicolumn] REGRESSION: RenderMultiColumnSets broken by the RenderRegion -> RenderBlock subclassing.
https://bugs.webkit.org/show_bug.cgi?id=110239.
Reviewed by Simon Fraser.
Test: fast/multicol/newmulticol/column-rules-fixed-height.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::columnRectAt):
Make sure the columnGap() in the old multicolumn code is always expressed as a LayoutUnit. This was the
one place where it was still an int.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::paintFlowThreadPortionInRegion):
Rework the painting of flow thread portions to account for the fact that regions paint at an integral
translation. This means you have to construct clipping around that integral destination. Subpixel layout
regions did not clip correctly as a result of this issue.
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::columnRectAt):
Fix the same bug with columnGap() that the old column code has, i.e., one spot where it was an int.
(WebCore::RenderMultiColumnSet::paintObject):
RenderMultiColumnSet should be using paintObject and not paint and it needs to check for visibility
and phases now that it is a RenderBlock subclass.
(WebCore::RenderMultiColumnSet::paintColumnRules):
Fix the bug that Opera guys fixed in the old multi-column code. They didn't patch the new code, so this
takes care of that.
* rendering/RenderMultiColumnSet.h:
(RenderMultiColumnSet):
Change to use paintObject instead of paint.
2013-02-19 Branimir Lambov <blambov@google.com>
Fix 'slice' aspect ratio calculation
https://bugs.webkit.org/show_bug.cgi?id=99984
Reviewed by Dirk Schulze.
Previously the calculation for the 'slice' aspect ratio would incorrectly calculate the
source rect location based on the destination rect offset. This caused our source rect to be
incorrect, and sometimes render outside the visible area completely. After this patch
our implementation matches the implementation of both Gecko and Presto.
The relevant spec section:
http://www.w3.org/TR/SVG/single-page.html#coords-PreserveAspectRatioAttribute
Tests: svg/as-image/image-preserveAspectRatio-all.svg
svg/filters/feImage-preserveAspectRatio-all.svg
* svg/SVGPreserveAspectRatio.cpp:
(WebCore::SVGPreserveAspectRatio::transformRect):
2013-02-19 Kentaro Hara <haraken@google.com>
[V8] ScriptRunner::runCompiledScript() should return Handle<Value>() when OOM occurs
https://bugs.webkit.org/show_bug.cgi?id=110254
Reviewed by Adam Barth.
Chromium bug: https://code.google.com/p/chromium/issues/detail?id=176951
Currently ScriptRunner::runCompiledScript() calls
ASSERT(script.IsEmpty()) when OOM occurs. The Chromium bug is
hitting the ASSERT(). The ASSERT() does not make sense at all.
Instead, we should return an empty handle when OOM occurs.
No tests. The bug happens only when OOM occurs.
* bindings/v8/ScriptRunner.cpp:
(WebCore::ScriptRunner::runCompiledScript):
2013-02-19 Elliott Sprehn <esprehn@chromium.org>
Support both MutationObserver and WebKitMutationObserver
https://bugs.webkit.org/show_bug.cgi?id=109776
Reviewed by Ojan Vafai.
We should allow new MutationObserver now that we support parser generated
mutations. This leaves the old prefixed constructor in until we decide
people don't depend on it.
Test: fast/dom/MutationObserver/mutation-observer-prefix.html
* page/DOMWindow.idl:
2013-02-19 Elliott Sprehn <esprehn@chromium.org>
Remove RenderText::updateText
https://bugs.webkit.org/show_bug.cgi?id=109991
Reviewed by Eric Seidel.
There's no reason for the generic RenderText::updateText virtual hook
anymore now that r143060 made RenderQuote stop setting dirty bits during
layout since the hook is only used by RenderCounter.
Instead add updateCounterIfNeeded and make it clear this is a hack for
counters.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::updateCounterIfNeeded): Added, not handles the counter specific hack.
(WebCore::dirtyLineBoxesForRenderer):
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::updateCounter):
* rendering/RenderCounter.h:
(RenderCounter):
* rendering/RenderQuote.cpp:
(WebCore::RenderQuote::styleDidChange):
(WebCore::RenderQuote::updateDepth):
* rendering/RenderQuote.h:
(RenderQuote):
* rendering/RenderText.h:
(RenderText):
2013-02-19 Tony Chang <tony@chromium.org>
Border changes on tables with collapsed borders doesn't relayout table cells
https://bugs.webkit.org/show_bug.cgi?id=109774
Reviewed by David Hyatt.
Test: fast/table/border-collapsing/dynamic-border-width-change.html
Changes to border top and border bottom on table rows also changes the size
of the table cell causing a relayout to be needed.
* rendering/RenderTableRow.cpp:
(WebCore::borderWidthChanged): Also include border top and bottom.
(WebCore::RenderTableRow::styleDidChange): Remove logical from the helper function name.
2013-02-19 Kentaro Hara <haraken@chromium.org>
Unreviewed. Rebaselined run-bindings-tests.
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
2013-02-19 ChangSeok Oh <changseok.oh@collabora.com>
[GTK][AC] Implement matrix transform animation with clutter ac backend
https://bugs.webkit.org/show_bug.cgi?id=109848
Reviewed by Gustavo Noronha Silva.
Clutter 1.12 doesn't support additive transform animations yet, so the combination
of two or more transformations(such as rotation after translation) runs unexpectedly.
So we use a matrix transformation instead for the case.
Covered by existing animation tests.
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::getValueFunctionNameForTransformOperation):
(WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
* platform/graphics/clutter/PlatformClutterAnimation.cpp:
(WebCore::toClutterActorPropertyString): Add actor property "transform"
(WebCore::clutterMatrixProgress): Handle interpolation between two matrices instead of default clutter_matrix_progress.
(WebCore):
(WebCore::PlatformClutterAnimation::supportsAdditiveValueFunction):
(WebCore::PlatformClutterAnimation::setFromValue): for TransformationMatrix.
(WebCore::PlatformClutterAnimation::setToValue): ditto.
(WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
(WebCore::PlatformClutterAnimation::addTransformTransition):
* platform/graphics/clutter/PlatformClutterAnimation.h:
(PlatformClutterAnimation):
* platform/graphics/clutter/TransformationMatrixClutter.cpp: Add copy constructor for CoglMatrix.
(WebCore::TransformationMatrix::TransformationMatrix):
(WebCore):
* platform/graphics/transforms/TransformationMatrix.h:
(TransformationMatrix):
2013-02-19 Kassy Coan <kassycoan@chromium.org>
Update FeatureObserver on top level navigation in addition to page destruction.
https://bugs.webkit.org/show_bug.cgi?id=109874
Reviewed by Adam Barth.
No new tests. Only effect is to histogram more frequently.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::dispatchDidCommitLoad):
* page/FeatureObserver.cpp:
(WebCore::FeatureObserver::~FeatureObserver):
(WebCore):
(WebCore::FeatureObserver::updateMeasurements):
(WebCore::FeatureObserver::didCommitLoad):
* page/FeatureObserver.h:
(FeatureObserver):
2013-02-19 Morten Stenshorne <mstensho@opera.com>
Remove unnecessary (and problematic) copy-constructor from LayoutUnit
https://bugs.webkit.org/show_bug.cgi?id=110121
This copy constructor does what a default copy constructor would do, so
it's not necessary. Furthermore, this copy constructor is the only
reason why LayoutUnit becomes non-POD, and that triggers a gdb bug,
making it impossible to do things like "print location()" when inside
some RenderBlock, for instance.
Gdb bug http://sourceware.org/bugzilla/show_bug.cgi?id=15154 reported.
Reviewed by Benjamin Poulain.
No tests. Apart from dealing with buggy debuggers, this is just code cleanup.
* platform/LayoutUnit.h:
2013-02-19 Emil A Eklund <eae@chromium.org>
LayoutUnit::epsilon shouldn't be necessary to place floats
https://bugs.webkit.org/show_bug.cgi?id=94000
Reviewed by Levi Weintraub.
Currently, to get float placement correct, we need to have an
epsilon tolerance in RenderBlock::computeLogicalLocationForFloat
for the width of the line to fit them on. This really shouldn't
be necessary, and probably indicates we're losing precision
elsewhere.
Remove epsilon as it no longer appears to be needed. All layout
tests pass without it.
No new tests, covered by existing tests.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeLogicalLocationForFloat):
2013-02-19 Tim Volodine <timvolodine@chromium.org>
Text Autosizing: prevent oscillation of font sizes during autosizing
https://bugs.webkit.org/show_bug.cgi?id=108205
Reviewed by Kenneth Rohde Christiansen.
On some websites autosized font-sizes oscillate due to layouts caused by
hovering or incremental page loading (and on other sites font sizes do
eventually stabilize, but it takes many layouts before they reach a steady
size). To prevent all these cases, we no longer allow the autosizing
multiplier to change after it has been set (to a value other than 1).
This won't always give exactly the same results, but testing on 2000 top
sites shows that this makes little difference in practice, and it prevents
these very jarring cases. As a happy side-effect, this speeds up layouts
as font sizes change less.
Test: fast/text-autosizing/oscillation-javascript-fontsize-change.html
* page/FrameView.cpp:
(WebCore::FrameView::setFrameRect):
* page/Settings.cpp:
(WebCore::Settings::setTextAutosizingFontScaleFactor):
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::recalculateMultipliers):
(WebCore):
(WebCore::TextAutosizer::processContainer):
* rendering/TextAutosizer.h:
(TextAutosizer):
2013-02-19 Youenn Fablet <youennf@gmail.com>
[EFL][DRT] http/tests/loading/307-after-303-after-post.html times out
https://bugs.webkit.org/show_bug.cgi?id=93214
Ensured that GET verb is consistently used for any request
coming after a redirection that triggers switching to GET.
Reviewed by Martin Robinson.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::doRedirect):
2013-02-19 Andras Becsi <andras.becsi@digia.com>
[Qt] Fix compilation if Qt was configured with -no-rtti
https://bugs.webkit.org/show_bug.cgi?id=110234
Reviewed by Noam Rosenthal.
Availability of dynamic_cast should be checked.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):
2013-02-18 Alexey Proskuryakov <ap@apple.com>
Unregistered blob URLs have incorrect MIME type
https://bugs.webkit.org/show_bug.cgi?id=110166
Reviewed by Sam Weinig.
* page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::shouldUseInnerURL): Added a FIXME.
* platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::notifyResponseOnError):
Pass an accurate MIME type (for a delegate to see).
2013-02-19 Joshua Bell <jsbell@chromium.org>
IndexedDB: additional checks on LevelDB decoding
https://bugs.webkit.org/show_bug.cgi?id=109711
Reviewed by Tony Chang.
Watch out for decoding errors caused by corrupted data, and exit various
decode/compare operations earlier.
Covered by existing LayoutTests and Chromium's webkit_unit_tests
* Modules/indexeddb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::decodeStringWithLength): Bail if length is negative.
(WebCore::IDBLevelDBCoding::compareEncodedStringsWithLength): Distinguish error case.
(WebCore::IDBLevelDBCoding::extractEncodedIDBKey): Bail if length is negative.
(WebCore::IDBLevelDBCoding::compareEncodedIDBKeys): Distinguish error case.
(WebCore::IDBLevelDBCoding::compare): Plumb through "ok".
(WebCore::IDBLevelDBCoding::ObjectStoreDataKey::compare): Ditto.
(WebCore::IDBLevelDBCoding::ExistsEntryKey::compare): Ditto.
(WebCore::IDBLevelDBCoding::IndexDataKey::compare): Ditto.
* Modules/indexeddb/IDBLevelDBCoding.h: Updated method signatures.
2013-02-19 ChangSeok Oh <changseok.oh@collabora.com>
[GTK][AC] Implement keyframe animations with clutter ac backend
https://bugs.webkit.org/show_bug.cgi?id=110057
Reviewed by Gustavo Noronha Silva.
This patch brings accelerated keyframe animation with clutter to WebKitGtk+.
Changes of GraphicsLayerClutter are based on GraphicsLayerCA. But major changes
of PlatformClutterAnimation are implemented with clutter keyframe transition apis.
See http://developer.gnome.org/clutter/stable/ClutterKeyframeTransition.html
Covered by existing animation tests.
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::GraphicsLayerClutter::createKeyframeAnimation):
(WebCore::GraphicsLayerClutter::setTransformAnimationKeyframes):
(WebCore::GraphicsLayerClutter::setAnimationKeyframes):
* platform/graphics/clutter/PlatformClutterAnimation.cpp:
(WebCore::toClutterActorPropertyString):
(WebCore::PlatformClutterAnimation::PlatformClutterAnimation):
(WebCore::PlatformClutterAnimation::setTimingFunction):
(WebCore::PlatformClutterAnimation::setValues):
(WebCore::PlatformClutterAnimation::setKeyTimes):
(WebCore::PlatformClutterAnimation::setTimingFunctions):
(WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
(WebCore):
(WebCore::PlatformClutterAnimation::addClutterKeyframeTransitionForProperty):
(WebCore::PlatformClutterAnimation::addOpacityTransition):
(WebCore::PlatformClutterAnimation::addTransformTransition):
(WebCore::PlatformClutterAnimation::addAnimationForKey):
(WebCore::PlatformClutterAnimation::removeAnimationForKey):
* platform/graphics/clutter/PlatformClutterAnimation.h:
(PlatformClutterAnimation):
2013-02-19 Claudio Saavedra <csaavedra@igalia.com>
[harfbuzz] Crash in harfbuzz related code
https://bugs.webkit.org/show_bug.cgi?id=110145
Reviewed by Martin Robinson.
Patch by Behdad Esfahbod <behdad@google.com>
* platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Ask harfbuzz
to guess the segment properties.
2013-02-19 Pavel Podivilov <podivilov@chromium.org>
Web Inspector: release backtrace object group on each step.
https://bugs.webkit.org/show_bug.cgi?id=110223
Reviewed by Pavel Feldman.
* inspector/InspectorDebuggerAgent.cpp:
(WebCore):
(WebCore::InspectorDebuggerAgent::stepOver):
(WebCore::InspectorDebuggerAgent::stepInto):
(WebCore::InspectorDebuggerAgent::stepOut):
2013-02-19 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r142975.
http://trac.webkit.org/changeset/142975
https://bugs.webkit.org/show_bug.cgi?id=110225
Introduces hard-to-reproduce crashes upon inspected page
navigation on Mac (Requested by apavlov on #webkit).
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
* inspector/Inspector.json:
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::InspectorCSSAgent):
(WebCore::InspectorCSSAgent::clearFrontend):
(WebCore::InspectorCSSAgent::enable):
(WebCore::InspectorCSSAgent::getAllStyleSheets):
(WebCore::InspectorCSSAgent::collectStyleSheets):
(WebCore::InspectorCSSAgent::bindStyleSheet):
(WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
(WebCore::InspectorCSSAgent::detectOrigin):
(WebCore::InspectorCSSAgent::buildObjectForRule):
* inspector/InspectorCSSAgent.h:
(InspectorCSSAgent):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
* inspector/InspectorInstrumentation.h:
(WebCore):
(InspectorInstrumentation):
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSStyleModel.prototype.getViaInspectorResourceForRule):
(WebInspector.CSSStyleModelResourceBinding.prototype.):
(WebInspector.CSSStyleModelResourceBinding.prototype.requestStyleSheetIdForResource):
(WebInspector.CSSStyleModelResourceBinding.prototype.requestResourceURLForStyleSheetId):
(WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetIdForResource):
(WebInspector.CSSStyleModelResourceBinding.prototype._loadStyleSheetHeaders):
(WebInspector.CSSStyleModelResourceBinding.prototype.headersLoaded):
(WebInspector.CSSStyleModelResourceBinding.prototype._requestViaInspectorResource):
(WebInspector.CSSStyleModelResourceBinding.prototype._getOrCreateInspectorResource):
(WebInspector.CSSStyleModelResourceBinding.prototype._reset):
* inspector/front-end/SASSSourceMapping.js:
(WebInspector.SASSSourceMapping.prototype._styleSheetChanged.callback):
(WebInspector.SASSSourceMapping.prototype._styleSheetChanged):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertiesSection.prototype._createRuleOriginNode.callback):
(WebInspector.StylePropertiesSection.prototype._createRuleOriginNode):
* inspector/front-end/StylesSourceMapping.js:
(WebInspector.StyleContentBinding.prototype.callback):
(WebInspector.StyleContentBinding.prototype.setStyleContent):
(WebInspector.StyleContentBinding.prototype.):
(WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
2013-02-19 Julien Chaffraix <jchaffraix@webkit.org>
RenderGrid::computedUsedBreadthOfGridTracks can read past m_grid's size
https://bugs.webkit.org/show_bug.cgi?id=110126
Reviewed by Ojan Vafai.
The issue comes from how we store the column information inside m_grid.
Because m_grid is a Vector of rows, we could lose the column information
if we had no row, no grid item but some columns defined in CSS. As the
logic would assume that our row / column size would be greater than what
the style defines explicitely, we would access past our Vector's boundary.
The fix is to ensure that we have at least a row so that we can store the
column information in every case. This fix is overly broad as it also forces
the grid to have one column, which shouldn't be an issue.
Test: fast/css-grid-layout/grid-element-empty-row-column.html
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::maximumIndexInDirection):
Forced this function to return at least one as the maximum index so that
m_grid has at least one row / column.
(WebCore::RenderGrid::placeItemsOnGrid):
Added a ASSERT that m_grid is bigger than the explicit grid-rows / grid-columns.
Also changed an existing ASSERT to use gridWasPopulated for consistency and changed
the code not to call gridRowCount as it would ASSERT (we are in the middle of populating
the grid).
* rendering/RenderGrid.h:
(WebCore::RenderGrid::gridWasPopulated):
Added this helper function.
(WebCore::RenderGrid::gridColumnCount):
Replaced a now unneeded branch with an ASSERT. As placeItemsOnGrid should be called
prior to read m_grid, this change should be fine.
(WebCore::RenderGrid::gridRowCount):
Added an ASSERT.
2013-02-19 Sergio Villar Senin <svillar@igalia.com>
[Soup] Use synchronous calls to close completely processed streams
https://bugs.webkit.org/show_bug.cgi?id=107432
Reviewed by Martin Robinson.
There is no need to close already processed streams in asynchronous
calls since they won't block. Using the synchronous call will save
us some code and unnecessary asynchronous burden. This is kind of
a code refactor so no new tests needed.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore):
(WebCore::redirectSkipCallback):
(WebCore::readCallback):
2013-02-19 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] use timeline's didBeginFrame for marking frame end calls
https://bugs.webkit.org/show_bug.cgi?id=110130
Reviewed by Pavel Feldman.
In Web Inspector canvas profiler use timeline's didBeginFrame for marking frame end calls instead of an ad-hoc timeout-based solution.
* inspector/InjectedScriptCanvasModule.cpp:
(WebCore::InjectedScriptCanvasModule::markFrameEnd):
(WebCore):
* inspector/InjectedScriptCanvasModule.h:
(InjectedScriptCanvasModule):
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::hasUninstrumentedCanvases):
(WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
(WebCore::InspectorCanvasAgent::findFramesWithUninstrumentedCanvases):
(WebCore::InspectorCanvasAgent::frameNavigated):
(WebCore::InspectorCanvasAgent::didBeginFrame):
(WebCore):
* inspector/InspectorCanvasAgent.h:
(InspectorCanvasAgent):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::didBeginFrame):
2013-02-19 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Decouple various file system project implementation parts for better testability and cover with tests.
https://bugs.webkit.org/show_bug.cgi?id=110204
Reviewed by Pavel Feldman.
Extracted FileSystemWorkspaceProvider from IsolatedFileSystemManager to take care of managing workspace projects and projectDelegates.
Replaced FileMapping.urlForURI with urlForPath method that does not need any information about workspace structure anymore.
Test: inspector/file-system-project.html
* inspector/front-end/FileMapping.js:
(WebInspector.FileMapping.prototype.urlForPath):
* inspector/front-end/FileSystemProjectDelegate.js:
(WebInspector.FileSystemProjectDelegate):
(WebInspector.FileSystemProjectDelegate.prototype.populate.filesLoaded):
(WebInspector.FileSystemProjectDelegate.prototype.populate):
(WebInspector.FileSystemWorkspaceProvider):
(WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemAdded):
(WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemRemoved):
* inspector/front-end/IsolatedFileSystem.js:
(WebInspector.IsolatedFileSystem):
(WebInspector.IsolatedFileSystem.prototype.name):
(WebInspector.IsolatedFileSystem.prototype.rootURL):
* inspector/front-end/IsolatedFileSystemManager.js:
(WebInspector.IsolatedFileSystemManager):
(WebInspector.IsolatedFileSystemManager.prototype._innerAddFileSystem):
(WebInspector.IsolatedFileSystemManager.prototype._fileSystemRemoved):
(WebInspector.IsolatedFileSystemManager.prototype._isolatedFileSystem):
(WebInspector.IsolatedFileSystemManager.prototype.requestDOMFileSystem):
* inspector/front-end/inspector.js:
2013-02-19 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] do not replace replay image with spinner icon
https://bugs.webkit.org/show_bug.cgi?id=110213
Reviewed by Pavel Feldman.
Otherwise it's visually hard to see changes in the replay image. Instead show a small spinner icon in the bottom right corner.
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView):
(WebInspector.CanvasProfileView.prototype._enableWaitIcon):
* inspector/front-end/canvasProfiler.css:
(#canvas-replay-image-container):
(.canvas-debug-info):
(.canvas-spinner-icon):
2013-02-19 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] UI: tweak replay control buttons behavior
https://bugs.webkit.org/show_bug.cgi?id=110207
Reviewed by Pavel Feldman.
New behavior for control buttons in the Canvas profiler.
- The NextCall button (~StepInto) on a node group should expand it and move into its first child (instead of expanding and moving into the next node group)
- The NextDrawCall button (~StepOver) should move to a next node that has children (instead of just iterating call group nodes, ignoring frame nodes).
- The ReplayLast button should select the last expanded node (instead of always selecting last frame group node).
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView.prototype._onReplayStepClick):
(WebInspector.CanvasProfileView.prototype._onReplayDrawingCallClick):
(WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
2013-02-19 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Assertion in RenderFlowThread::removeRenderBoxRegionInfo
https://bugs.webkit.org/show_bug.cgi?id=109914
Reviewed by David Hyatt.
This patch moves a part of the invalidation operations inside the RenderFlowThread::invalidateRegions call. The maps
are cleared anyway at layout time but doing this earlier makes sure the flow thread is in a more consistent state
(the RenderFlowThread object has both the region chain invalidated and the regions information cleared).
RenderFlowThread::removeRenderBoxRegionInfo will check if the region chain is invalidated. If true, it means the
flow thread has a layout scheduled and the regions information is not yet reliable. In this case we just return from the
function and wait for the layout to cleanup the box information.
Test: fast/regions/remove-box-info-assert.html
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::removeRegionFromThread):
(WebCore::RenderFlowThread::invalidateRegions):
(WebCore):
(WebCore::RenderFlowThread::layout):
(WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
* rendering/RenderFlowThread.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::removeRegionFromThread):
2013-02-19 Alberto Garcia <agarcia@igalia.com>
Fix build broekn by r142988.
https://bugs.webkit.org/show_bug.cgi?id=109530
Unreviewed. Build fix.
Properly add shortMonthFormat() to the LocaleNone class.
* platform/text/LocaleNone.cpp:
(LocaleNone):
(WebCore::LocaleNone::shortMonthFormat):
2013-02-19 Anton Vayvod <avayvod@chromium.org>
[Text Autosizing] Combine narrow descendants of a cluster into groups that should be autosized with the same multiplier.
https://bugs.webkit.org/show_bug.cgi?id=109825
Enhancement of the approach introduced in https://bugs.webkit.org/show_bug.cgi?id=109573.
Instead of using the same text size multiplier for all narrow descendants of any autosizing
cluster, group the descendants by how much narrower they are than the cluster's
|blockContainingAllText| and process each group separately with a different multiplier for
each one.
For example, we want nested comments on the page to be autosized as a group but separately
from a sidebar on the same page.
Reviewed by Kenneth Rohde Christiansen.
Updated the existing test to verify the patch.
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::processClusterInternal):
Splits the narrow descendants of the autosizing cluster into groups before processing
each group individually.
(WebCore::TextAutosizer::getNarrowDescendantsGroupedByWidth):
Sorts the narrow descendants of the given cluster into groups, combining them by the
difference between their content widths. If sorted by width, two consecutive nodes
belong to the same group if their width difference is no greater than 100 CSS units.
* rendering/TextAutosizer.h:
New method definitions.
2013-02-18 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: show user provided name property of the heap snapshot node.
https://bugs.webkit.org/show_bug.cgi?id=110124
Reviewed by Yury Semikhatsky.
Publish userProvidedName into grid node.
* inspector/front-end/HeapSnapshotGridNodes.js:
(WebInspector.HeapSnapshotGenericObjectNode):
(WebInspector.HeapSnapshotGenericObjectNode.prototype._createObjectCell):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
* inspector/front-end/HeapSnapshotProxy.js:
(WebInspector.HeapSnapshotWorker):
* inspector/front-end/NativeHeapSnapshot.js:
(WebInspector.NativeHeapSnapshotNode.prototype.serialize):
2013-02-19 Arpita Bahuguna <a.bah@samsung.com>
Caret is not displayed when trying to focus inside a contenteditable element containing an empty block.
https://bugs.webkit.org/show_bug.cgi?id=108053
Reviewed by Ryosuke Niwa.
Test: editing/selection/caret-in-div-containing-empty-block.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::localCaretRect):
When trying to compute the caret rect for the contenteditable div, the
border and the padding were not considered. Because of this, for the
given test case, which had a border defined on the containing div, the
caret was being painted just atop the border, thereby masking it.
Have modified the code to ensure that the computed caret rect takes
into account the border and padding (if any) specified on the box, but only
if the node doesn't have content that shall be skipped for editing.
We do not add border and padding while computing the caret rect for any
element that either has no content or has content that shall be skipped
for editing purposes. This holds true for table elements as well.
This helps avoid the caret displacement previsouly observed before/after
any controls placed within the contenteditable box, when considering
border and padding in computation of the caret rect.
2013-02-19 Mihnea Ovidenie <mihnea@adobe.com>
CSSRegions: crash positioned object with inline containing block in flow thread
https://bugs.webkit.org/show_bug.cgi?id=108307
Reviewed by David Hyatt.
The fix for https://bugs.webkit.org/show_bug.cgi?id=69896 allowed positioned blocks work
with variable width regions. However, the information needed for that is available only
when the container used for positioning is a block.
This patch ensures we are using this solution only when the container used for positioning
is a block. This needs to be revisited when we will extend support for other types of boxes
as mentioned in RenderBox::renderBoxRegionInfo.
Test: fast/regions/positioned-object-inline-cb-crash.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::renderBoxRegionInfo):
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
(WebCore::RenderBox::computePositionedLogicalWidth): Make sure we are using containerBlocks
that are blocks. Add an assert that the type of containerBlock we are using can have
computed RenderBoxRegionInfo.
(WebCore::RenderBox::computePositionedLogicalHeight):
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::canHaveBoxInfoInRegion): This helper method
will return the boxes that may have computed RenderBoxRegionInfo. Currently,
returns true for blocks only.
2013-02-19 Ryosuke Niwa <rniwa@webkit.org>
Yet anther JSC build fix after r143304.
* bindings/js/JSDOMBinding.h:
(WebCore::argumentOrNull):
2013-02-19 Kentaro Hara <haraken@chromium.org>
Unreviewed build fix. Fixed warning caused by r143305.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateParametersCheck):
2013-02-19 Kentaro Hara <haraken@chromium.org>
Unreviewed build fix after r143304.
* bindings/js/JSDOMBinding.h:
(WebCore::argumentOrNull):
2013-02-19 Kentaro Hara <haraken@chromium.org>
[V8] Remove redundant usage of MAYBE_MISSING_PARAMETER() macro
https://bugs.webkit.org/show_bug.cgi?id=109899
Reviewed by Adam Barth.
Currently:
- MAYBE_MISSING_PARAMETER(args, index, DefaultIsUndefined) returns args[index].
- MAYBE_MISSING_PARAMETER(args, index, DefaultIsNullString) returns Local<Value>()
if args[index] is missing (i.e. the length of |args| is less than |index|).
It returns args[index] otherwise.
No one other than CodeGeneratorV8.pm uses
MAYBE_MISSING_PARAMETER(args, index, DefaultIsUndefined). Instead, we simply use
args[index]. We should remove the redundant usage from CodeGeneratorV8.pm too.
The long-name macro has been making generated code less readable.
In addition, we can rename MAYBE_MISSING_PARAMETER() to argumentOrNull().
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateParametersCheck):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::Float64ArrayV8Internal::fooCallback):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
(WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::TestEventTargetV8Internal::itemCallback):
(WebCore::TestEventTargetV8Internal::dispatchEventCallback):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
(WebCore::V8TestInterface::constructorCallback):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructorCallback):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
(WebCore::TestObjV8Internal::longMethodWithArgsCallback):
(WebCore::TestObjV8Internal::objMethodWithArgsCallback):
(WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
(WebCore::TestObjV8Internal::methodReturningSequenceCallback):
(WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
(WebCore::TestObjV8Internal::optionsObjectCallback):
(WebCore::TestObjV8Internal::methodWithOptionalArgCallback):
(WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
(WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
(WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
(WebCore::TestObjV8Internal::overloadedMethod1Callback):
(WebCore::TestObjV8Internal::overloadedMethod2Callback):
(WebCore::TestObjV8Internal::overloadedMethod3Callback):
(WebCore::TestObjV8Internal::overloadedMethod4Callback):
(WebCore::TestObjV8Internal::overloadedMethod6Callback):
(WebCore::TestObjV8Internal::overloadedMethod7Callback):
(WebCore::TestObjV8Internal::overloadedMethod8Callback):
(WebCore::TestObjV8Internal::overloadedMethod9Callback):
(WebCore::TestObjV8Internal::overloadedMethod10Callback):
(WebCore::TestObjV8Internal::overloadedMethod11Callback):
(WebCore::TestObjV8Internal::classMethodWithOptionalCallback):
(WebCore::TestObjV8Internal::overloadedMethod12Callback):
(WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
(WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
(WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
(WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
(WebCore::TestObjV8Internal::stringArrayFunctionCallback):
(WebCore::TestObjV8Internal::domStringListFunctionCallback):
(WebCore::TestObjV8Internal::convert1Callback):
(WebCore::TestObjV8Internal::convert2Callback):
(WebCore::TestObjV8Internal::convert4Callback):
(WebCore::TestObjV8Internal::convert5Callback):
(WebCore::TestObjV8Internal::strictFunctionCallback):
(WebCore::TestObjV8Internal::variadicStringMethodCallback):
(WebCore::TestObjV8Internal::variadicDoubleMethodCallback):
(WebCore::TestObjV8Internal::variadicNodeMethodCallback):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::constructor1Callback):
(WebCore::V8TestOverloadedConstructors::constructor2Callback):
(WebCore::V8TestOverloadedConstructors::constructor3Callback):
(WebCore::V8TestOverloadedConstructors::constructor4Callback):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::TestTypedefsV8Internal::funcCallback):
(WebCore::TestTypedefsV8Internal::setShadowCallback):
(WebCore::TestTypedefsV8Internal::methodWithSequenceArgCallback):
(WebCore::TestTypedefsV8Internal::nullableArrayArgCallback):
(WebCore::TestTypedefsV8Internal::stringArrayFunctionCallback):
(WebCore::TestTypedefsV8Internal::stringArrayFunction2Callback):
(WebCore::V8TestTypedefs::constructorCallback):
* bindings/v8/V8BindingMacros.h:
(WebCore):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::pushStateCallbackCustom):
(WebCore::V8History::replaceStateCallbackCustom):
2013-02-19 Kentaro Hara <haraken@chromium.org>
[JSC] MAYBE_MISSING_PARAMETER(..., DefaultIsNullString) macro is redundant
https://bugs.webkit.org/show_bug.cgi?id=109902
Reviewed by Adam Barth.
Currently:
- MAYBE_MISSING_PARAMETER(exec, index, DefaultIsUndefined)
returns exec->argument(index).
- MAYBE_MISSING_PARAMETER(exec, index, DefaultIsNullString)
returns JSValue() if exec->argument(index) is missing
(i.e. the length of the argument is less than index).
It returns exec->argument(index) otherwise.
No one other than CodeGeneratorJS.pm uses
MAYBE_MISSING_PARAMETER(exec, index, DefaultIsUndefined).
Instead, we simply use exec->argument(index). We should remove
the redundant usage in CodeGeneratorJS.pm too. The long-name macro
has been making generated code less readable.
In addition, we can rename MAYBE_MISSING_PARAMETER() to argumentOrNull().
c.f. corresponding V8 bug: https://bugs.webkit.org/show_bug.cgi?id=109899
No tests. No change in behavior.
* bindings/js/JSDOMBinding.h:
(WebCore):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
* bindings/scripts/test/JS/JSFloat64Array.cpp:
(WebCore::jsFloat64ArrayPrototypeFunctionFoo):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetPrototypeFunctionItem):
(WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionSerializedValue):
(WebCore::jsTestObjPrototypeFunctionOptionsObject):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
(WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
(WebCore::jsTestObjPrototypeFunctionConvert1):
(WebCore::jsTestObjPrototypeFunctionConvert2):
(WebCore::jsTestObjPrototypeFunctionConvert4):
(WebCore::jsTestObjPrototypeFunctionConvert5):
(WebCore::jsTestObjPrototypeFunctionStrictFunction):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors1):
(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors2):
(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors3):
(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors4):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
(WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionAcceptTransferList):
(WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionMultiTransferList):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
(WebCore::jsTestTypedefsPrototypeFunctionFunc):
(WebCore::jsTestTypedefsPrototypeFunctionMultiTransferList):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
2013-02-18 Hayato Ito <hayato@chromium.org>
Make EventDispatcher take an Event object in its constructor.
https://bugs.webkit.org/show_bug.cgi?id=109898
Reviewed by Dimitri Glazkov.
Re-landing r143145, which caused a crash when deltaX and deltaY of a PlatformWheelEvent are both zero.
Fixed a crash by early exiting in EventDispatcher::dispatchEvent(Node*, PassRefPtr<EventDispatcher*>)
if mediator's event() returns null.
Also Added a layout test to catch this kind of crash in the future.
Test: fast/events/platform-wheelevent-with-delta-zero-crash.html
* dom/EventDispatchMediator.cpp:
(WebCore::EventDispatchMediator::dispatchEvent):
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEvent):
(WebCore::EventDispatcher::EventDispatcher):
(WebCore::EventDispatcher::ensureEventPath):
(WebCore::EventDispatcher::dispatchSimulatedClick):
(WebCore::EventDispatcher::dispatch):
(WebCore::EventDispatcher::dispatchEventPreProcess):
(WebCore::EventDispatcher::dispatchEventAtCapturing):
(WebCore::EventDispatcher::dispatchEventAtTarget):
(WebCore::EventDispatcher::dispatchEventAtBubbling):
(WebCore::EventDispatcher::dispatchEventPostProcess):
* dom/EventDispatcher.h:
(EventDispatcher):
(WebCore::EventDispatcher::node):
(WebCore::EventDispatcher::event):
* dom/FocusEvent.cpp:
(WebCore::FocusEventDispatchMediator::dispatchEvent):
(WebCore::BlurEventDispatchMediator::dispatchEvent):
(WebCore::FocusInEventDispatchMediator::dispatchEvent):
(WebCore::FocusOutEventDispatchMediator::dispatchEvent):
* dom/GestureEvent.cpp:
(WebCore::GestureEventDispatchMediator::dispatchEvent):
* dom/MouseEvent.cpp:
(WebCore::MouseEventDispatchMediator::dispatchEvent):
* dom/WheelEvent.cpp:
(WebCore::WheelEventDispatchMediator::dispatchEvent):
Assert event() rather than an early exit since this code path should be hit only when event() is non-null.
2013-02-18 Takashi Sakamoto <tasak@google.com>
:before/:after pseudo elements do not always apply to the proper element
https://bugs.webkit.org/show_bug.cgi?id=93925
Reviewed by Dimitri Glazkov.
Disable sharing a style with siblings if :after or :before pseudo style
is unique.
Test: fast/css/before-after-pseudo-class.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithElement):
Added a new condition, hasUniquePseudoStyle.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::hasUniquePseudoStyle):
Added to check whether any pseudo style has unique bit or not.
(WebCore):
* rendering/style/RenderStyle.h:
2013-02-18 Andy Estes <aestes@apple.com>
Focusing a new frame (via window.focus()) should blur the active element in the current frame
https://bugs.webkit.org/show_bug.cgi?id=110172
Reviewed by Ryosuke Niwa.
When a change in the focused node crosses a frame boundary, WebKit
doesn't always succeed in blurring the old focused node before focusing
the new one.
Each document remembers its focused node, and a Page-scoped
FocusController remembers the focused frame. If a new focused node is
in a different frame than the focused frame, FocusController tells the
old frame's document to clear its focused node before focusing the new
one (and remembering the new frame).
Unfortunately, web content can confuse FocusController by calling
window.focus() at the wrong time. Since window.focus() changes
FocusController's focused frame without focusing a new node,
FocusController won't think that a frame boundary is being crossed if a
node in this frame is later focused. Therefore it won't clear the old
frame's focused node (it won't even know which frame contained the old
focused node), causing at least two bugs:
1) The node in the old frame will not receive a blur event.
2) Calling document.activeElement on the main frame will return the
previously focused node, but the HTML5 spec says it should return
the frame owner element if a subframe has focus.
Fix both of these bugs by explicitly clearing the current frame's
focused node if window.focus() changes the focused frame. This fix
carries some compatibility risk by changing a long-standing behavior
of the engine (we've had this bug since the beginning of the project,
AFAICT). On the upside, it matches the behavior of both Firefox and IE,
matches what HTML5 says about subframe focus, and fixes at least one
well-known enterprise web app.
Tests: fast/dom/HTMLDocument/active-element-frames.html
fast/frames/frame-focus-blurs-active-element.html
* page/DOMWindow.cpp:
(WebCore::DOMWindow::focus): If the frame being focused is not the same
as the currently focused frame, clear the currently focused frame's
focused node.
2013-02-18 Simon Fraser <simon.fraser@apple.com>
Clean up the boolean argument to visibleContentRect
https://bugs.webkit.org/show_bug.cgi?id=110167
Reviewed by Simon Fraser.
Replace the boolean argument to visibleContentRect() with
an enum.
No behavior change.
* WebCore.exp.in:
* dom/Document.cpp:
(WebCore::Document::viewportSize):
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::update):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::innerHeight):
(WebCore::DOMWindow::innerWidth):
* page/FrameView.cpp:
(WebCore::FrameView::calculateScrollbarModesForLayout):
(WebCore::FrameView::layout):
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::windowClipRect):
* page/SpatialNavigation.cpp:
(WebCore::canScrollInDirection):
* platform/ScrollView.cpp:
(WebCore::ScrollView::unscaledVisibleContentSize):
(WebCore::ScrollView::visibleContentRect):
(WebCore::ScrollView::layoutSize):
(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::paint):
* platform/ScrollView.h:
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::visibleContentRect):
* platform/ScrollableArea.h:
* rendering/RenderDialog.cpp:
(WebCore::RenderDialog::layout):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::maximumScrollPosition):
(WebCore::RenderLayer::visibleContentRect):
* rendering/RenderLayer.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::frameViewDidChangeSize):
(WebCore::RenderLayerCompositor::updateRootLayerPosition):
2013-02-18 Ryosuke Niwa <rniwa@webkit.org>
That didn't work either. Just make it public. This is why I hate nested classes. They just don't work.
* rendering/RenderBlock.h:
(RenderBlock):
2013-02-18 Ryosuke Niwa <rniwa@webkit.org>
Windows build fix. Apparently Visual Studio still has a lot of bugs with respect to nested classes.
Work around it by directly instantiating the class inside createFloatingObjects.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::createFloatingObjects): Directly instantiate FloatingObjects.
* rendering/RenderBlock.h:
(RenderBlock): Moved the declaration of createFloatingObjects up.
(FloatingObjects::FloatingObjects):
2013-02-18 Ryosuke Niwa <rniwa@webkit.org>
Merge handleSpecialChild into layoutBlockChildren
https://bugs.webkit.org/show_bug.cgi?id=110165
Reviewed by Darin Adler.
Merge handleSpecialChild, handlePositionedChild, and handleFloatingChild into layoutBlockChildren
to make the semantics of the code clear and to get rid of the outdated comment about how there are
four types of four types of special children.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlockChildren):
* rendering/RenderBlock.h:
(RenderBlock):
2013-02-18 Ryosuke Niwa <rniwa@webkit.org>
Encapsulate FloatingObject's constructor inside create
https://bugs.webkit.org/show_bug.cgi?id=110169
Reviewed by Darin Adler.
Added FloatingObject::create and made FloatingObject's constructor private.
Also added RenderBlock::ensureFloatingObjects to help lazily creating FloatingObjects.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::insertFloatingObject):
(WebCore::RenderBlock::addOverhangingFloats):
(WebCore::RenderBlock::addIntrudingFloats):
(WebCore::RenderBlock::ensureFloatingObjects):
(WebCore::RenderBlock::FloatingObjects::create):
(WebCore::RenderBlock::FloatingObjects::FloatingObjects):
* rendering/RenderBlock.h:
(FloatingObjects):
(RenderBlock):
2013-02-18 Anders Carlsson <andersca@apple.com>
Add a DefaultHash for RefPtr<SecurityOrigin>
https://bugs.webkit.org/show_bug.cgi?id=110170
Reviewed by Andreas Kling.
Remove all explicit uses of SecurityOriginHash.
* Modules/webdatabase/DatabaseTracker.h:
* Modules/webdatabase/OriginQuotaManager.h:
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::getOriginsWithCache):
* loader/cache/MemoryCache.h:
* page/SecurityOriginHash.h:
* storage/StorageNamespaceImpl.h:
(StorageNamespaceImpl):
2013-02-18 David Hyatt <hyatt@apple.com>
Padding and border changes don't trigger the relayout of children in some cases.
https://bugs.webkit.org/show_bug.cgi?id=109639.
Reviewed by Ryosuke Niwa.
The fix for this bug was way too general and involved putting code into RenderBox. Since
RenderBox makes no assumptions about what kind of layout system might derive from it, it
was incorrect to just mark all children as needing layout whenever borders and padding
changed widths.
This patch takes the two cases handled by the original code and makes them more
specialized down in subclasses, i.e., RenderBlock and RenderTableRow. RenderBlock has
been refined to only check if children aren't inline and to also not invalidate
floats or irrelevant positioned objects that might not even have this block as their
containing block.
The RenderTableRow code is specialized to only care about collapsing borders and
to only check borders rather than padding. It also requires that a child be a cell
in order to do the invalidation.
Covered by existing tests, since this is just specializing the code to more precisely
cover the test cases that have already been written.
Longer term, it should be layout code that figures this stuff out rather than style
change code, but that involves more dramatic changes that can wait.
Test: fast/block/positioning/border-change-relayout-test.html
* rendering/RenderBlock.cpp:
(WebCore::borderOrPaddingLogicalWidthChanged):
(WebCore):
(WebCore::RenderBlock::styleDidChange):
* rendering/RenderBox.cpp:
(WebCore):
(WebCore::RenderBox::styleDidChange):
* rendering/RenderTableRow.cpp:
(WebCore::borderLogicalWidthChanged):
(WebCore):
(WebCore::RenderTableRow::styleDidChange):
2013-02-18 Mark Lam <mark.lam@apple.com>
Small follow up to r143271: Fix SQLTransaction leak.
https://bugs.webkit.org/show_bug.cgi?id=110052.
Reviewed by Geoffrey Garen.
Applied Geoff's suggestion nullify m_frontend sooner for greater
code clarity. Also added some comments about m_frontend.
No new tests.
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::doCleanup):
* Modules/webdatabase/SQLTransactionBackend.h:
(SQLTransactionBackend):
2013-02-18 Geoffrey Garen <ggaren@apple.com>
Shrank the SourceProvider cache
https://bugs.webkit.org/show_bug.cgi?id=110158
Reviewed by Oliver Hunt.
Test: fast/js/regress/nested-function-parsing.html
No need to keep statistics on cache size, since we're going to throw it
away no matter what.
* WebCore.order:
* bindings/js/CachedScriptSourceProvider.h:
(CachedScriptSourceProvider):
(WebCore::CachedScriptSourceProvider::CachedScriptSourceProvider):
* loader/cache/CachedScript.cpp:
(WebCore::CachedScript::destroyDecodedData):
(WebCore):
(WebCore::CachedScript::reportMemoryUsage):
* loader/cache/CachedScript.h:
(CachedScript):
2013-02-18 peavo@outlook.com <peavo@outlook.com>
[Curl] The function cookiesForDOM() does not behave correctly.
https://bugs.webkit.org/show_bug.cgi?id=109923
Reviewed by Brent Fulgham.
The cookiesForDOM() function should return a list of matching cookies, both persistent and session cookies.
* platform/network/curl/CookieJarCurl.cpp:
(WebCore::readCurlCookieToken): Added function to read next token from Curl cookie string.
(WebCore::addMatchingCurlCookie): Added function to add matching cookies to cookie list.
(WebCore::setCookiesFromDOM): Add domain and path from url to cookie if not already set.
(WebCore::cookiesForDOM): Return a list of matching cookies, both session and persistent cookies.
2013-02-17 Mark Lam <mark.lam@apple.com>
Fix SQLTransaction leak.
https://bugs.webkit.org/show_bug.cgi?id=110052.
Reviewed by Geoffrey Garen.
With https://bugs.webkit.org/show_bug.cgi?id=104750, there is now a circular
reference between SQLTransaction and its backend. The clean up process needs
to be fixed to explicitly break this reference cycle.
The 5 phases of the SQLTransaction (and backend) phases and their clean up
actions are:
Phase 1. After Birth, before scheduling
- During shutdown, DatabaseThread::databaseThread() calls
DatabaseBackendAsync::close(). DatabaseBackendAsync::close() iterates
DatabaseBackendAsync::m_transactionQueue and calls
SQLtransactionBackend::notifyDatabaseThreadIsShuttingDown() on each
transaction there.
Phase 2. After scheduling, before state AcquireLock
- ~DatabaseTask() calls SQLtransactionBackend's
notifyDatabaseThreadIsShuttingDown().
Phase 3. After state AcquireLock, before "lockAcquired"
- During shutdown, DatabaseThread::databaseThread() calls
SQLTransactionCoordinator::shutdown(), which calls
SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown().
Phase 4: After "lockAcquired", before state CleanupAndTerminate
- Same as Phase 3.
Phase 5: After state CleanupAndTerminate
- state CleanupAndTerminate calls SQLTransactionBackend::doCleanup().
See comment at the top of SQLTransactionBackend.cpp for more details.
Other supporting changes:
- Moved Database::close() to the DatabaseBackendAsync.
- Moved the "if already cleaned up" check from SQLTransactionBackend's
notifyDatabaseThreadIsShuttingDown() to doCleanup().
- Added a check to prevent SQLTransactionCoordinator's releaseLock()
from running when it's shutting down.
No new tests.
* Modules/webdatabase/Database.cpp:
* Modules/webdatabase/Database.h:
* Modules/webdatabase/DatabaseBackendAsync.cpp:
(WebCore::DatabaseBackendAsync::close): Move from Database.cpp.
* Modules/webdatabase/DatabaseBackendAsync.h:
* Modules/webdatabase/DatabaseTask.cpp:
(WebCore::DatabaseBackendAsync::DatabaseTransactionTask::DatabaseTransactionTask):
(WebCore::DatabaseBackendAsync::DatabaseTransactionTask::~DatabaseTransactionTask):
(WebCore::DatabaseBackendAsync::DatabaseTransactionTask::doPerformTask):
* Modules/webdatabase/DatabaseTask.h:
(DatabaseBackendAsync::DatabaseTransactionTask):
* Modules/webdatabase/DatabaseThread.cpp:
(WebCore::DatabaseThread::databaseThread):
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::doCleanup):
(WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown):
(WebCore::SQLTransactionBackend::cleanupAndTerminate):
* Modules/webdatabase/SQLTransactionCoordinator.cpp:
(WebCore::SQLTransactionCoordinator::SQLTransactionCoordinator):
(WebCore::SQLTransactionCoordinator::acquireLock):
(WebCore::SQLTransactionCoordinator::releaseLock):
(WebCore::SQLTransactionCoordinator::shutdown):
* Modules/webdatabase/SQLTransactionCoordinator.h:
(SQLTransactionCoordinator):
2013-02-18 David Kilzer <ddkilzer@apple.com>
Fix WebCore Xcode project
* WebCore.xcodeproj/project.pbxproj: Fix path for CDMPrivate.h.
2013-02-18 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Refactor grid position resolution code to support an internal grid representation
https://bugs.webkit.org/show_bug.cgi?id=109718
Reviewed by Ojan Vafai.
In order to support auto placement (where we can't infer a grid item's position from its style),
we need to have 2 code paths:
- One that places the elements on the grid representation.
- One that reuse the grid representation to return the position.
This code path implements this split so that we can add auto placement in a follow-up patch(es).
Also in order to avoid a O(n^2) behavior [walking over our grid to find a grid item's position],
the cached position code path needed an efficient way to find the grid items -> position mapping.
Refactoring, covered by existing tests.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::cachedGridCoordinate):
(WebCore::RenderGrid::resolveGridPositionFromStyle):
These methods implements the above split. The first one
reuses our cached information whereas the other one is
used to build the cache.
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::layoutGridItems):
Added some code to clear the grid items' position.
(WebCore::RenderGrid::findChildLogicalPosition):
(WebCore::RenderGrid::logicalContentHeightForChild):
Updated these functions to use cachedGridPosition.
(WebCore::RenderGrid::maximumIndexInDirection):
Added a comment about why we don't use cachedGridPosition.
(WebCore::RenderGrid::insertItemIntoGrid):
Added this helper function to insert into the grid and
cache the position in the reverse lookup map.
(WebCore::RenderGrid::placeItemsOnGrid):
Updated to call insertItemIntoGrid. Also added an ASSERT
similar to m_grid.
(WebCore::RenderGrid::clearGrid):
Added this helper function to clear our grid structure.
* rendering/RenderGrid.h:
(GridCoordinate):
(WebCore::RenderGrid::GridCoordinate::GridCoordinate):
Added this POD to hold the coordinates in our reverse map.
2013-02-18 Stephen Chenney <schenney@chromium.org>
feFlood incorrectly applied color-interpolation-filters
https://bugs.webkit.org/show_bug.cgi?id=109985
Reviewed by Dirk Schulze.
The SVG spec defines the color-interpolation-filters property for all
filter effect elements in order to control cases where a color is
based on some arithmetic computation on other colors. For example,
when computing gradients or blending colors. feFlood simply fills a
region with the given color, and that given color is always defined to
be in sRGB space, so the feFlood result should always be sRGB.
The new behavior matches both Opera and Firefox.
Tests: svg/filters/feFlood-color-interpolation-expected.svg
svg/filters/feFlood-color-interpolation.svg
* platform/graphics/filters/FEFlood.cpp:
(WebCore::FEFlood::platformApplySoftware): Force the color mode to be
sRGB before returning.
2013-02-18 Mark Lam <mark.lam@apple.com>
Introduced AbstractSQLStatement and AbstractSQLStatementBackend.
https://bugs.webkit.org/show_bug.cgi?id=110148.
Reviewed by Geoff Garen.
This is part of the webdatabase refactoring for webkit2.
- Also changed the frontend and backend to only refer to the
abstract interface of each other.
No new tests.
* GNUmakefile.list.am:
* Modules/webdatabase/AbstractSQLStatement.h: Added.
(AbstractSQLStatement):
(WebCore::AbstractSQLStatement::~AbstractSQLStatement):
* Modules/webdatabase/AbstractSQLStatementBackend.h: Added.
(AbstractSQLStatementBackend):
(WebCore::AbstractSQLStatementBackend::~AbstractSQLStatementBackend):
* Modules/webdatabase/SQLStatement.cpp:
(WebCore::SQLStatement::setBackend):
* Modules/webdatabase/SQLStatement.h:
(SQLStatement):
* Modules/webdatabase/SQLStatementBackend.cpp:
(WebCore::SQLStatementBackend::create):
(WebCore::SQLStatementBackend::SQLStatementBackend):
(WebCore::SQLStatementBackend::frontend):
* Modules/webdatabase/SQLStatementBackend.h:
(SQLStatementBackend):
* Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::deliverStatementCallback):
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::currentStatement):
(WebCore::SQLTransactionBackend::executeSQL):
* Modules/webdatabase/SQLTransactionBackend.h:
(SQLTransactionBackend):
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
2013-02-18 David Kilzer <ddkilzer@apple.com>
BUILD FIX (r143230): Fix renamed header and implementation of -[WebAccessibilityObjectWrapper accessibilityPostedNotification:]
<http://webkit.org/b/110077>
Fixes the following build failures:
AccessibilityObjectIOS.mm:35:9: fatal error: 'AccessibilityObjectWrapperIOS.h' file not found
#import "AccessibilityObjectWrapperIOS.h"
^
1 error generated.
WebAccessibilityObjectWrapperIOS.mm:2051:35: error: use of undeclared identifier 'notificationString'; did you mean 'notificationType'?
if (AXNotificationCallback && notificationString)
^~~~~~~~~~~~~~~~~~
notificationType
WebAccessibilityObjectWrapperIOS.mm:2049:81: note: 'notificationType' declared here
- (void)accessibilityPostedNotification:(WebCore::AXObjectCache::AXNotification)notificationType
^
WebAccessibilityObjectWrapperIOS.mm:2052:38: error: use of undeclared identifier 'notificationString'; did you mean 'notificationType'?
AXNotificationCallback(self, notificationString, AXPostedNotificationContext);
^~~~~~~~~~~~~~~~~~
notificationType
WebAccessibilityObjectWrapperIOS.mm:2049:81: note: 'notificationType' declared here
- (void)accessibilityPostedNotification:(WebCore::AXObjectCache::AXNotification)notificationType
^
WebAccessibilityObjectWrapperIOS.mm:2052:38: error: cannot initialize a parameter of type 'NSString *' with an lvalue of type 'WebCore::AXObjectCache::AXNotification'
AXNotificationCallback(self, notificationString, AXPostedNotificationContext);
^~~~~~~~~~~~~~~~~~
WebAccessibilityObjectWrapperIOS.mm:2049:81: error: conflicting parameter types in implementation of 'accessibilityPostedNotification:': 'NSString *' vs 'WebCore::AXObjectCache::AXNotification' [-Werror,-Wmismatched-parameter-types]
- (void)accessibilityPostedNotification:(WebCore::AXObjectCache::AXNotification)notificationType
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
WebAccessibilityObjectWrapperBase.h:48:53: note: previous definition is here
- (void)accessibilityPostedNotification:(NSString *)notificationName;
~~~~~~~~~~ ^
4 errors generated.
* accessibility/ios/AccessibilityObjectIOS.mm: Fix name of
included header.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]):
Fix implementation to match declaration.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
* accessibility/ios/AXObjectCacheIOS.mm:
- Clean up #endif comments.
2013-02-18 Jer Noble <jer.noble@apple.com>
EME: Add a CDMPrivate implementation using AVFoundation.
https://bugs.webkit.org/show_bug.cgi?id=109739
Reviewed by Eric Carlson.
Add a CDMPrivate implementation using AVFoundation, similar to the EME v1 implementation
in MediaPlayerPrivateAVFoundationObjC. This requires passing the AVAssetResourceLoadingRequest
from the MediaPlayerPrivateAVFoundationObjC instance to CDMSessionAVFoundation. To do so
without adding platform-specific API to MediaPlayer, add a static map from MediaPlayer ->
MediaPlayerPrivateAVFoundationObjC instances to be used to vend the AVAssetResourceLoadingRequest
to CDMSessionAVFoundation.
* Modules/encryptedmedia/CDM.cpp:
(WebCore::installedCDMFactories): Add the factory for CDMPrivateAVFoundation.
* Modules/encryptedmedia/CDM.h:
* Modules/encryptedmedia/CDMPrivateAVFoundation.h: Added.
(WebCore::CDMPrivateAVFoundation::create): Simple factory method.
(WebCore::CDMPrivateAVFoundation::~CDMPrivateAVFoundation): Simple virtual destructor.
(WebCore::CDMPrivateAVFoundation::cdm): Simple getter.
(WebCore::CDMPrivateAVFoundation::CDMPrivateAVFoundation): Simple constructor.
* Modules/encryptedmedia/CDMPrivateAVFoundation.mm: Added.
(WebCore::CDMSessionAVFoundation::~CDMSessionAVFoundation): Simple destructor.
(WebCore::CDMPrivateAVFoundation::supportsKeySytem): Check whether the given key system is supported.
(WebCore::CDMPrivateAVFoundation::supportsMIMEType): Check whether the given MIME type is supported.
(WebCore::CDMPrivateAVFoundation::createSession): Return a new CDMSessionAVFoundation.
(WebCore::CDMSessionAVFoundation::CDMSessionAVFoundation): Simple constructor.
(WebCore::CDMSessionAVFoundation::generateKeyRequest): Retrieve the AVAssetResourceLoadingRequest
from the MediaPlayer, and use it to generate a key request.
(WebCore::CDMSessionAVFoundation::releaseKeys): No-op.
(WebCore::CDMSessionAVFoundation::update): Add the passed in key to the AVAssetResourceLoadingRequest.
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::playerToPrivateMap): Lazily instantiate static map.
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Register with the playerToPrivateMap.
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): Unregister from same.
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Also send keyNeeded event in ENCRYPTED_MEDIA_V2.
(WebCore::MediaPlayerPrivateAVFoundationObjC::extractKeyURIKeyIDAndCertificateFromInitData): Convert this
method from file-static to class static.
(WebCore::MediaPlayerPrivateAVFoundationObjC::takeRequestForPlayerAndKeyURI): Pull the AVAssetResourceLoadingRequest
from m_keyURIToRequestMap and return it, if present.
2013-02-18 Philip Rogers <pdr@google.com>
Fix scaling of tiled SVG backgrounds on high-dpi displays
https://bugs.webkit.org/show_bug.cgi?id=110047
Reviewed by Dirk Schulze.
This patch fixes the scaling of SVG when used for drawing patterns. Tiled/patterend SVG
images are first drawn into an image buffer and then the image buffer is used to stamp
out tiles. Because it is a raster source, the size of the image buffer needs to
be scaled to the final resolution of the device. After scaling the image buffer, the
source rect and pattern transforms need to be adjusted so they align in device pixel
coordinates. This adjustment was not done before this patch, causing pixelated rendering.
Additionally, a FIXME has been added due to webkit.org/b/110065 and the image buffer
has been manually scaled (using "zoomedAndScaledContainerRect") instead of relying
on the ImageBuffer's resolutionScale parameter.
Test: svg/as-background-image/tiled-background-image.html
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawPatternForContainer):
Note that fixing the FIXME does not change that the source rect and transform need
to be adjusted for page scale.
2013-02-18 David Hyatt <hyatt@apple.com>
Make seamless iframes paginate properly in their enclosing document's pagination context.
https://bugs.webkit.org/show_bug.cgi?id=106125
<rdar://problem/12922720> Text in iframe is clipped while printing
Reviewed by Simon Fraser.
Added new tests in fast/multicol and fast/region.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::clampToStartAndEndRegions):
Don't clamp when the RenderView is the containing block of an object in a RenderFlowThread.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containerForRepaint):
Don't attempt any repaint container antics when we're in a seamless iframe, since the ancestor
document will actually do the handoff into the flow thread.
* rendering/RenderView.cpp:
(WebCore::enclosingSeamlessRenderer):
Heper function to test for an enclosing seamless iframe.
(WebCore::RenderView::addChild):
Subclass addChild on RenderView to properly set the inRenderFlowThread state for a seamless
child document so thta it will check regions.
(WebCore::RenderView::initializeLayoutState):
New helper method for setting up the initial layout state of a RenderView. If inside a seamless
paginated ancestor, set up the appropriate pagination information so the child document
knows about it. This method will expand to inherit info about line grids and exclusions eventually
also.
(WebCore::RenderView::layout):
Now calls initializeLayoutState to set up the layout state.
* rendering/RenderView.h:
(WebCore::RenderView::pageLogicalHeight):
(WebCore::RenderView::setPageLogicalHeight):
(RenderView):
Fix the type of the page logical height methods to be LayoutUnit instead of unsigned.
2013-02-18 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143145.
http://trac.webkit.org/changeset/143145
https://bugs.webkit.org/show_bug.cgi?id=110143
Causes frequent crashes. (Requested by eric_carlson on
#webkit).
* dom/EventDispatchMediator.cpp:
(WebCore::EventDispatchMediator::dispatchEvent):
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEvent):
(WebCore::EventDispatcher::EventDispatcher):
(WebCore::EventDispatcher::ensureEventPath):
(WebCore::EventDispatcher::dispatchSimulatedClick):
(WebCore::EventDispatcher::dispatchEventPreProcess):
(WebCore::EventDispatcher::dispatchEventAtCapturing):
(WebCore::EventDispatcher::dispatchEventAtTarget):
(WebCore::EventDispatcher::dispatchEventAtBubbling):
(WebCore::EventDispatcher::dispatchEventPostProcess):
* dom/EventDispatcher.h:
(EventDispatcher):
(WebCore::EventDispatcher::node):
(WebCore):
* dom/FocusEvent.cpp:
(WebCore::FocusEventDispatchMediator::dispatchEvent):
(WebCore::BlurEventDispatchMediator::dispatchEvent):
(WebCore::FocusInEventDispatchMediator::dispatchEvent):
(WebCore::FocusOutEventDispatchMediator::dispatchEvent):
* dom/GestureEvent.cpp:
(WebCore::GestureEventDispatchMediator::dispatchEvent):
* dom/MouseEvent.cpp:
(WebCore::MouseEventDispatchMediator::dispatchEvent):
2013-02-18 Christophe Dumez <ch.dumez@sisa.samsung.com>
[Soup] Free cookies explicitly in loops instead of using GOwnPtr
https://bugs.webkit.org/show_bug.cgi?id=110103
Reviewed by Martin Robinson.
Free cookies explicitly in loops instead of using GOwnPtr for this.
Until now, the code was mixing both styles. This patch makes the
code consistent one way. Adopting list items with GOwnPtr for the
sole purpose to free them makes the freeing less obvious and may
lead to mistakes if someone refactors the code and calls "break;"
to abort loop iteration.
No new tests, no behavior change.
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::getRawCookies):
(WebCore::deleteCookie):
(WebCore::getHostnamesWithCookies):
2013-02-18 Joseph Pecoraro <pecoraro@apple.com>
[JSC]: ASSERT in KURL(ParsedURLStringTag) under sourceMapURLForScript
https://bugs.webkit.org/show_bug.cgi?id=109987
Reviewed by Pavel Feldman.
Improved an existing test to cover this.
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::dispatchDidParseSource):
Remove the sourceURL parsing and script.url replacement from the JSC
implementation of ScriptDebugServer. The WebCore inspector code that
this was added for already does this, at a more appropriate time.
2013-02-18 Mike West <mkwst@chromium.org>
compareDocumentPosition reports disconnected nodes as following each other
https://bugs.webkit.org/show_bug.cgi?id=108274
Reviewed by Dimitri Glazkov.
jQuery has had to implement their own sorting mechanism in Sizzle[1] due
to Node::compareDocumentPosition always reporting disconnected nodes
as following each other. According to spec[2], we should instead be
indicating that the result is (a) disconnected, (b) implementation
specific, and (c) deterministically ordered.
[1]: https://github.com/jquery/sizzle/commit/1c8aec91284af8d8c14447976235d5dd72b0d75e
[2]: http://dom.spec.whatwg.org/#dom-node-comparedocumentposition
Test: fast/dom/compare-document-position-disconnected-nodes.html
* dom/Node.cpp:
(WebCore::Node::compareDocumentPosition):
After walking the parentNode chain of both Nodes, compare the root.
If the Nodes don't share a root, they're in distinct trees, and
should return as described above. We determine which element
"preceeds" the other in an arbitrary fashion via pointer comparison.
2013-02-18 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] fix replay log grouping by frames
https://bugs.webkit.org/show_bug.cgi?id=110122
Reviewed by Pavel Feldman.
Bug: log grouping by frames did not work if a frame end call is not a draw call.
Drive-by: Last draw call group may not contain a draw call. In this case merge it into the previous group.
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView.prototype._appendCallNode):
(WebInspector.CanvasProfileView.prototype._maybeMergeLastDrawCallGroups):
2013-02-18 Christophe Dumez <ch.dumez@sisa.samsung.com>
[Soup] Superfluous HashMap check in SocketStreamHandleSoup::getHandleFromId()
https://bugs.webkit.org/show_bug.cgi?id=110107
Reviewed by Martin Robinson.
Remove Superfluous HashMap::contains() call in SocketStreamHandleSoup::getHandleFromId()
as HashMap::get() will already return 0 in this case anyway.
No new tests, no behavior change.
* platform/network/soup/SocketStreamHandleSoup.cpp:
(WebCore):
(WebCore::getHandleFromId):
2013-02-18 Zan Dobersek <zdobersek@igalia.com>
Stop placing std::isfinite and std::signbit inside the global scope
https://bugs.webkit.org/show_bug.cgi?id=109817
Reviewed by Darin Adler.
Prefix calls to the isfinite and signbit methods with std:: as the two
methods are no longer being imported into the global scope.
No new tests as there's no change in functionality.
* bindings/js/JSCanvasRenderingContext2DCustom.cpp:
(WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
* bindings/js/JSDOMBinding.cpp:
(WebCore::jsDateOrNull):
* bindings/js/JSDOMBinding.h:
(WebCore::finiteInt32Value):
* bindings/v8/V8Binding.h:
(WebCore::v8DateOrNull):
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::parseToNumber):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setValueAsNumber):
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::setMin):
(WebCore::HTMLMeterElement::setMax):
(WebCore::HTMLMeterElement::setValue):
(WebCore::HTMLMeterElement::setLow):
(WebCore::HTMLMeterElement::setHigh):
(WebCore::HTMLMeterElement::setOptimum):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::value):
(WebCore::HTMLProgressElement::setValue):
(WebCore::HTMLProgressElement::max):
(WebCore::HTMLProgressElement::setMax):
* html/MonthInputType.cpp:
(WebCore::MonthInputType::valueAsDate):
(WebCore::MonthInputType::defaultValueForStepUp):
(WebCore::MonthInputType::parseToNumber):
* html/NumberInputType.cpp:
(WebCore::NumberInputType::typeMismatchFor):
(WebCore::NumberInputType::sanitizeValue):
(WebCore::NumberInputType::hasBadInput):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::typeMismatchFor):
* html/TimeInputType.cpp:
(WebCore::TimeInputType::defaultValueForStepUp):
* html/canvas/CanvasPathMethods.cpp:
(WebCore::CanvasPathMethods::moveTo):
(WebCore::CanvasPathMethods::lineTo):
(WebCore::CanvasPathMethods::quadraticCurveTo):
(WebCore::CanvasPathMethods::bezierCurveTo):
(WebCore::CanvasPathMethods::arcTo):
(WebCore::CanvasPathMethods::arc):
(WebCore::CanvasPathMethods::rect):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setLineWidth):
(WebCore::CanvasRenderingContext2D::setMiterLimit):
(WebCore::CanvasRenderingContext2D::setShadowOffsetX):
(WebCore::CanvasRenderingContext2D::setShadowOffsetY):
(WebCore::CanvasRenderingContext2D::setShadowBlur):
(WebCore::lineDashSequenceIsValid):
(WebCore::CanvasRenderingContext2D::setLineDashOffset):
(WebCore::CanvasRenderingContext2D::scale):
(WebCore::CanvasRenderingContext2D::rotate):
(WebCore::CanvasRenderingContext2D::translate):
(WebCore::CanvasRenderingContext2D::transform):
(WebCore::CanvasRenderingContext2D::setTransform):
(WebCore::validateRectForCanvas):
(WebCore::CanvasRenderingContext2D::isPointInPath):
(WebCore::CanvasRenderingContext2D::isPointInStroke):
(WebCore::CanvasRenderingContext2D::drawImage):
(WebCore::CanvasRenderingContext2D::createLinearGradient):
(WebCore::CanvasRenderingContext2D::createRadialGradient):
(WebCore::CanvasRenderingContext2D::createImageData):
(WebCore::CanvasRenderingContext2D::getImageData):
(WebCore::CanvasRenderingContext2D::putImageData):
(WebCore::CanvasRenderingContext2D::drawTextInternal):
* html/parser/HTMLParserIdioms.cpp:
(WebCore::parseToDoubleForNumberType):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTimelineElement::setDuration):
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::reset):
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::reset):
* html/shadow/MediaControlsBlackBerry.cpp:
(WebCore::MediaControlFullscreenTimelineElement::setDuration):
(WebCore::MediaControlsBlackBerry::reset):
* inspector/InspectorValues.cpp:
(WebCore::InspectorBasicValue::writeJSON):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::currentAge):
(WebCore::CachedResource::freshnessLifetime):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::adjustWindowRect):
* platform/DateComponents.cpp:
(WebCore::DateComponents::setMillisecondsSinceEpochForDate):
(WebCore::DateComponents::setMillisecondsSinceEpochForDateTime):
(WebCore::DateComponents::setMillisecondsSinceEpochForMonth):
(WebCore::DateComponents::setMillisecondsSinceMidnight):
(WebCore::DateComponents::setMonthsSinceEpoch):
(WebCore::DateComponents::setMillisecondsSinceEpochForWeek):
* platform/Decimal.cpp:
(WebCore::Decimal::fromDouble):
* platform/FileSystem.h:
(WebCore::isValidFileTime):
* platform/LocalizedStrings.cpp:
(WebCore::localizedMediaTimeDescription):
* platform/graphics/cairo/CairoUtilities.cpp:
(WebCore::drawPatternToCairoContext):
* platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::addArc):
(WebCore::Path::contains):
* platform/graphics/cg/PathCG.cpp:
(WebCore::Path::addArc):
* platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp:
(WebCore::FullscreenVideoControllerGStreamer::timeToString):
* platform/graphics/openvg/PathOpenVG.cpp:
(WebCore::Path::addArc):
* platform/graphics/skia/SkiaUtils.h:
(WebCore::WebCoreFloatToSkScalar):
(WebCore::WebCoreDoubleToSkScalar):
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::maxTimeSeekable):
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::localizedMediaTimeDescription):
* platform/mac/WebVideoFullscreenHUDWindowController.mm:
(timeToString):
* platform/network/ResourceResponseBase.cpp:
(WebCore::parseDateValueInHeader):
* platform/qt/LocalizedStringsQt.cpp:
(WebCore::localizedMediaTimeDescription):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::resolveFlexibleLengths):
* rendering/RenderMediaControlsChromium.cpp:
(WebCore::formatChromiumMediaControlsTime):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::formatMediaControlsTime):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setFontSize):
* svg/SVGPathParser.cpp:
(WebCore::SVGPathParser::decomposeArcToCubic):
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunRound::round):
* xml/XPathValue.cpp:
(WebCore::XPath::Value::toString):
2013-02-18 Chris Fleizach <cfleizach@apple.com>
AX: Make iOS wrapper use the WebAccessibilityObjectBase wrapper
https://bugs.webkit.org/show_bug.cgi?id=110077
Reviewed by David Kilzer.
Make the iOS wrapper a subclass of the shared wrapper so that iOS can re-use code from the Mac.
Rename the iOS file to reflect the class name.
* WebCore.xcodeproj/project.pbxproj:
* accessibility/ios/AXObjectCacheIOS.mm:
(WebCore::AXObjectCache::attachWrapper):
(WebCore::AXObjectCache::postPlatformNotification):
* accessibility/ios/AccessibilityObjectWrapperIOS.h: Removed.
* accessibility/ios/AccessibilityObjectWrapperIOS.mm: Removed.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.h: Copied from Source/WebCore/accessibility/ios/AccessibilityObjectWrapperIOS.h.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: Copied from Source/WebCore/accessibility/ios/AccessibilityObjectWrapperIOS.mm.
(-[WebAccessibilityObjectWrapper initWithAccessibilityObject:]):
(-[WebAccessibilityObjectWrapper attachmentView]):
(-[WebAccessibilityObjectWrapper accessibilityPostedNotification:WebCore::AXObjectCache::]):
2013-02-18 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143210.
http://trac.webkit.org/changeset/143210
https://bugs.webkit.org/show_bug.cgi?id=110128
Still causing some test timeouts (Requested by anttik on
#webkit).
* platform/SharedTimer.h:
(SharedTimer):
(WebCore):
(WebCore::MainThreadSharedTimer::stop):
* platform/ThreadTimers.cpp:
(WebCore::ThreadTimers::fireTimersInNestedEventLoop):
* platform/mac/SharedTimerMac.mm:
(WebCore):
(WebCore::PowerObserver::restartSharedTimer):
(WebCore::setSharedTimerFireInterval):
(WebCore::stopSharedTimer):
2013-02-18 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Disable hiding the debugger when it is below the source code
https://bugs.webkit.org/show_bug.cgi?id=110106
Reviewed by Pavel Feldman.
When the "Split horizontally" option is checked in the Sources panel the button responsible for the sidebar
visibility is hidden and the sidebar is force-shown. Also set the "Split sidebar" option default to true.
No new tests.
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
* inspector/front-end/scriptsPanel.css:
(.split-view-horizontal #scripts-debug-sidebar-resizer-widget):
2013-02-18 Bear Travis <betravis@adobe.com>
[CSS Exclusions] Support outside-shape layout for shape-inside property
https://bugs.webkit.org/show_bug.cgi?id=102571
Reviewed by David Hyatt.
A shape-inside value of 'outside-shape' should resolve to the value of
the shape-outside property for layout. This patch introduces a helper
method to resolve shape-inside in RenderStyle, and replaces calls to
RenderStyle::shapeInside() when the resolved (layout) value should be
used.
Test: fast/exclusions/shape-inside/shape-inside-outside-shape.html
* rendering/ExclusionShapeInfo.cpp:
(WebCore::::computedShape): Use the resolved shape-inside getter.
* rendering/ExclusionShapeInsideInfo.h:
(WebCore::ExclusionShapeInsideInfo::isEnabledFor): Ditto.
(WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo): Ditto.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::styleDidChange): Ditto.
(WebCore::RenderBlock::exclusionShapeInsideInfo): Ditto.
* rendering/style/RenderStyle.h: Add the resolved shape inside getter.
2013-02-18 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: hide vertical-sidebar-split in dock-to-right mode behind single experimental flag.
https://bugs.webkit.org/show_bug.cgi?id=110119
Reviewed by Vsevolod Vlasov.
Removed context menus, made it toggle automatically upon dock orientation change.
* inspector/front-end/DockController.js:
(WebInspector.DockController.prototype._toggleDockState):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel):
(WebInspector.ElementsPanel.prototype._sidebarContextMenuEventFired):
(WebInspector.ElementsPanel.prototype._dockSideChanged):
(WebInspector.ElementsPanel.prototype._setVerticalSplit):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
(WebInspector.ScriptsPanel.prototype._dockSideChanged):
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/inspector.css:
* inspector/front-end/scriptsPanel.css:
(#scripts-sidebar-stack-pane):
(div.sidebar-pane-stack#scripts-debug-sidebar-contents):
* inspector/front-end/tabbedPane.css:
(.tabbed-pane):
2013-02-18 ChangSeok Oh <shivamidow@gmail.com>
[GTK] Fix nits for configuration
https://bugs.webkit.org/show_bug.cgi?id=110083
Reviewed by Martin Robinson.
Remove trailing white space. It has caused annoying warning while configuration.
No new tests since no funtionality change.
* GNUmakefile.list.am:
2013-02-18 Kondapally Kalyan <kalyan.kondapally@intel.com>
[WebGL][EFL] Refactor GraphicsContext3DPrivate to add support for SharedContext.
https://bugs.webkit.org/show_bug.cgi?id=109988
Reviewed by Kenneth Rohde Christiansen.
Covered by existing WebGL tests.
This patch refactors PlatformContext and GraphicsContext3DPrivate to
add support for Shared Context. This would help share GL resources
between transport surface and offscreen surface without having to worry
about the context state. So far, we used the same drawable as transport
surface and offscreen surface. After this patch we use pixmap surface as
offscreen surface and use shared context to render texture content to
transport surface. This would also align as to how shared surface is implemented
on EFL and Qt ports.
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
(WebCore):
(WebCore::GraphicsContext3DPrivate::initialize):
(WebCore::GraphicsContext3DPrivate::makeSharedContextCurrent):
(WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
* platform/graphics/efl/GraphicsContext3DPrivate.h:
(GraphicsContext3DPrivate):
* platform/graphics/opengl/GLPlatformContext.cpp:
(WebCore::GLPlatformContext::initialize):
* platform/graphics/opengl/GLPlatformContext.h:
Needed changes to take shared context into use.
* platform/graphics/opengl/GLPlatformSurface.cpp:
(WebCore::GLPlatformSurface::createOffScreenSurface):
(WebCore::GLPlatformSurface::updateContents):
* platform/graphics/opengl/GLPlatformSurface.h:
(GLPlatformSurface):
* platform/graphics/surfaces/glx/GLXConfigSelector.h:
(WebCore::GLXConfigSelector::GLXConfigSelector):
(WebCore::GLXConfigSelector::visualInfo):
(WebCore::GLXConfigSelector::pixmapContextConfig):
(GLXConfigSelector):
(WebCore::GLXConfigSelector::reset):
* platform/graphics/surfaces/glx/GLXContext.cpp:
Added support to query configiration supporting
pixmap surface.
(WebCore::GLXOffScreenContext::initialize):
* platform/graphics/surfaces/glx/GLXContext.h:
(GLXOffScreenContext):
* platform/graphics/surfaces/glx/GLXSurface.cpp:
(WebCore::GLXTransportSurface::GLXTransportSurface):
(WebCore::GLXTransportSurface::swapBuffers):
(WebCore::GLXOffScreenSurface::GLXOffScreenSurface):
(WebCore::GLXOffScreenSurface::~GLXOffScreenSurface):
(WebCore::GLXOffScreenSurface::initialize):
(WebCore::GLXOffScreenSurface::configuration):
(WebCore::GLXOffScreenSurface::destroy):
(WebCore::GLXOffScreenSurface::freeResources):
(WebCore::GLXOffScreenSurface::setGeometry):
Renamed GLXPBuffer surface as GLXOffScreenSurface.
* platform/graphics/surfaces/glx/GLXSurface.h:
(GLXTransportSurface):
(GLXOffScreenSurface):
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::createSurface):
* platform/graphics/surfaces/glx/X11Helper.cpp:
(WebCore::X11Helper::createPixmap):
(WebCore):
(WebCore::X11Helper::destroyPixmap):
(WebCore::X11Helper::createOffScreenWindow):
* platform/graphics/surfaces/glx/X11Helper.h:
(X11Helper):
Added functions to create and destroy pixmap.
2013-02-18 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: Generate meta information for HeapSnapshot parser.
https://bugs.webkit.org/show_bug.cgi?id=110104
Reviewed by Yury Semikhatsky.
The format of Native heap snapshot is slightly different so it should provide its own meta information.
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::HeapGraphSerializer):
(WebCore::HeapGraphSerializer::finish):
(WebCore::HeapGraphSerializer::reportMemoryUsage):
(WebCore::HeapGraphSerializer::registerTypeString):
(WebCore):
* inspector/HeapGraphSerializer.h:
(HeapGraphSerializer):
* inspector/Inspector.json:
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
* inspector/InspectorMemoryAgent.h:
(InspectorMemoryAgent):
* inspector/front-end/HeapSnapshot.js:
(WebInspector.HeapSnapshot.prototype._buildPostOrderIndex):
* inspector/front-end/NativeHeapSnapshot.js:
(WebInspector.NativeHeapSnapshot):
2013-02-18 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Force single header includes in GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=104676
Reviewed by Xan Lopez.
Only including <webkitdom/webkitdom.h> should be allowed from
apps.
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateHeader):
* bindings/scripts/gobject-generate-headers.pl:
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
* bindings/scripts/test/GObject/WebKitDOMTestException.h:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
* bindings/scripts/test/GObject/WebKitDOMTestNode.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
2013-02-16 Antti Koivisto <antti@apple.com>
Reschedule shared CFRunLoopTimer instead of reconstructing it
https://bugs.webkit.org/show_bug.cgi?id=109765
Reviewed by Andreas Kling.
Using CFRunLoopTimerSetNextFireDate is over 2x faster than deleting and reconstructing timers.
* platform/SharedTimer.h:
(WebCore::SharedTimer::willEnterNestedEventLoop):
(WebCore):
(MainThreadSharedTimer):
(WebCore::MainThreadSharedTimer::willEnterNestedEventLoop):
* platform/ThreadTimers.cpp:
(WebCore::ThreadTimers::fireTimersInNestedEventLoop):
* platform/mac/SharedTimerMac.mm:
(WebCore):
(WebCore::PowerObserver::clearSharedTimer):
(WebCore::ensurePowerObserver):
(WebCore::sharedTimer):
(WebCore::reinsertSharedTimer):
Before entering nested runloop (used for inspector debugger mostly) reconstruct and reinsert the timer. For some reason
the timer doesn't fire otherwise.
(WebCore::setSharedTimerFireInterval):
(WebCore::stopSharedTimer):
2013-02-18 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Resources] Only remember the tree element selection if explicitly made by user
https://bugs.webkit.org/show_bug.cgi?id=110105
Reviewed by Pavel Feldman.
This change instructs the Resources panel to remember the selected tree element only if it has been
selected by the user (not automatically, like selecting a parent when its child is removed).
All onselect() overrides pass the selectedByUser argument value
to BaseStorageTreeElement.prototype.onselect.
Drive-by: Use === comparisons everywhere.
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype._reset): Do not detach [immutable] category views.
(WebInspector.BaseStorageTreeElement.prototype.onselect): Remember itemURL on user gesture only.
(WebInspector.StorageCategoryTreeElement.prototype.onselect):
(WebInspector.FrameTreeElement.prototype.onselect):
(WebInspector.FrameResourceTreeElement.prototype.onselect):
(WebInspector.DatabaseTreeElement.prototype.onselect):
(WebInspector.DatabaseTableTreeElement.prototype.onselect):
(WebInspector.IDBDatabaseTreeElement.prototype.onselect):
(WebInspector.IDBObjectStoreTreeElement.prototype.onselect):
(WebInspector.IDBIndexTreeElement.prototype.onselect):
(WebInspector.DOMStorageTreeElement):
(WebInspector.DOMStorageTreeElement.prototype.onselect):
(WebInspector.CookieTreeElement.prototype.onselect):
(WebInspector.ApplicationCacheManifestTreeElement.prototype.onselect):
(WebInspector.ApplicationCacheFrameTreeElement.prototype.onselect):
(WebInspector.FileSystemTreeElement.prototype.onselect):
(WebInspector.FileSystemTreeElement.prototype.clear):
(WebInspector.ResourcesSearchController.prototype.nextSearchResult):
2013-02-18 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Color picker should not be available in Computed Styles pane
https://bugs.webkit.org/show_bug.cgi?id=109697
Reviewed by Pavel Feldman.
Refactored PropertiesSection and TreeElement inheritors in StylesSidebarPane.js for cleaner separation
of read-only and editable properties.
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertiesSection.prototype.onpopulate):
(WebInspector.StylePropertiesSection.prototype.addNewBlankProperty):
(WebInspector.ComputedStylePropertiesSection):
(WebInspector.ComputedStylePropertiesSection.prototype.onpopulate):
(WebInspector.BlankStylePropertiesSection):
(WebInspector.StylePropertyTreeElementBase):
(WebInspector.StylePropertyTreeElementBase.prototype.node):
(WebInspector.StylePropertyTreeElementBase.prototype.editablePane):
(WebInspector.StylePropertyTreeElementBase.prototype.onattach):
(WebInspector.StylePropertyTreeElementBase.prototype.updateTitle.linkifyURL):
(WebInspector.StylePropertyTreeElementBase.prototype.updateTitle.):
(WebInspector.StylePropertyTreeElementBase.prototype):
(.event):
(.isRevert):
2013-02-18 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] group replay log calls by frames
https://bugs.webkit.org/show_bug.cgi?id=110101
Reviewed by Pavel Feldman.
Group canvas replay log by frames, then by draw calls.
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
* inspector/Inspector.json:
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView):
(WebInspector.CanvasProfileView.prototype.dispose):
(WebInspector.CanvasProfileView.prototype._appendCallNode):
(WebInspector.CanvasProfileView.prototype._appendDrawCallGroup):
2013-02-18 Christophe Dumez <ch.dumez@sisa.samsung.com>
[Soup] CookieJarSoup::deleteCookie() should stop looking for the cookie after it is removed
https://bugs.webkit.org/show_bug.cgi?id=110100
Reviewed by Kenneth Rohde Christiansen.
CookieJarSoup::deleteCookie() retrieves the list of cookies that apply to a given URL, then
iterates through the cookies to find the one with the right name and delete it. However, the
current implementation keeps on comparing cookie names after the cookie was removed. This
patch introduces a "wasDeleted" boolean to stop comparing cookie names after the cookie was
deleted. Note that we cannot break as soon as the cookie is found as we need to keep iterating
so that the cookies get freed by GOwnPtr.
No new tests, no behavior change.
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::deleteCookie):
2013-02-18 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Create separate project for each domain for UISourceCode based on browser resources.
https://bugs.webkit.org/show_bug.cgi?id=109691
Reviewed by Pavel Feldman.
Separate project of certain type is now created for each domain.
UISourceCode path represents a path in the project now.
UISourceCode uri is now calculated based on project id and path.
It is also possible to calculate path based on projectId and URI, which is used for uiSourceCodeForURI() methods.
* inspector/front-end/FileSystemProjectDelegate.js:
(WebInspector.FileSystemProjectDelegate.prototype._filePathForPath):
(WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
(WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
(WebInspector.FileSystemProjectDelegate.prototype._populate):
(WebInspector.FileSystemProjectDelegate.prototype._removeFile):
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
* inspector/front-end/SimpleWorkspaceProvider.js:
(WebInspector.SimpleProjectDelegate):
(WebInspector.SimpleProjectDelegate.projectId):
(WebInspector.SimpleProjectDelegate.prototype.id):
(WebInspector.SimpleProjectDelegate.prototype.displayName):
(WebInspector.SimpleProjectDelegate.prototype.addFile):
(WebInspector.SimpleWorkspaceProvider):
(WebInspector.SimpleWorkspaceProvider.splitURL):
(WebInspector.SimpleWorkspaceProvider._pathForSplittedURL):
(WebInspector.SimpleWorkspaceProvider.uriForURL):
(WebInspector.SimpleWorkspaceProvider.prototype._projectDelegate):
(WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
(WebInspector.SimpleWorkspaceProvider.prototype.addFileByName):
(WebInspector.SimpleWorkspaceProvider.prototype._innerAddFile):
(WebInspector.SimpleWorkspaceProvider.prototype.removeFileByName):
(WebInspector.SimpleWorkspaceProvider.prototype.reset):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.uri):
(WebInspector.UISourceCode.path):
(WebInspector.UISourceCode.prototype.uri):
* inspector/front-end/Workspace.js:
(WebInspector.Project.prototype._fileAdded):
(WebInspector.Project.prototype._fileRemoved):
(WebInspector.Project.prototype.uiSourceCodeForURI):
2013-02-18 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL] Rebaseline failure media tests after r142947
https://bugs.webkit.org/show_bug.cgi?id=109904
Reviewed by Kenneth Rohde Christiansen.
* css/mediaControlsEfl.css: Align time text vertically.
(audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
2013-02-18 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Extract FileSystemUtils from FileSystemProjectDelegate as IsolatedFileSystem class.
https://bugs.webkit.org/show_bug.cgi?id=110086
Reviewed by Pavel Feldman.
Extracted IsolatedFileSystem class that could be mocked for tests now.
Renamed IsolatedFileSystemModel to IsolatedFileSystemManager.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/FileSystemProjectDelegate.js:
(WebInspector.FileSystemProjectDelegate):
(WebInspector.FileSystemProjectDelegate.prototype.id):
(WebInspector.FileSystemProjectDelegate.prototype.displayName):
(WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
(WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
(WebInspector.FileSystemProjectDelegate.prototype._populate):
* inspector/front-end/IsolatedFileSystem.js: Added.
(WebInspector.IsolatedFileSystem):
(WebInspector.IsolatedFileSystem.errorMessage):
(WebInspector.IsolatedFileSystem.prototype.id):
(WebInspector.IsolatedFileSystem.prototype.path):
(WebInspector.IsolatedFileSystem.prototype._requestFileSystem):
(WebInspector.IsolatedFileSystem.prototype.fileSystemLoaded):
(WebInspector.IsolatedFileSystem.prototype.innerCallback):
(WebInspector.IsolatedFileSystem.prototype.requestFilesRecursive):
(WebInspector.IsolatedFileSystem.prototype.fileEntryLoaded):
(WebInspector.IsolatedFileSystem.prototype.fileLoaded):
(WebInspector.IsolatedFileSystem.prototype.readerLoadEnd):
(WebInspector.IsolatedFileSystem.prototype.errorHandler):
(WebInspector.IsolatedFileSystem.prototype.requestFileContent):
(WebInspector.IsolatedFileSystem.prototype.fileWriterCreated.fileTruncated):
(WebInspector.IsolatedFileSystem.prototype.fileWriterCreated):
(WebInspector.IsolatedFileSystem.prototype.writerEnd):
(WebInspector.IsolatedFileSystem.prototype.setFileContent):
(WebInspector.IsolatedFileSystem.prototype.):
(WebInspector.IsolatedFileSystem.prototype.toArray):
(WebInspector.IsolatedFileSystem.prototype._readDirectory):
(WebInspector.IsolatedFileSystem.prototype._requestEntries):
* inspector/front-end/IsolatedFileSystemManager.js: Renamed from Source/WebCore/inspector/front-end/IsolatedFileSystemModel.js.
(WebInspector.IsolatedFileSystemManager):
(WebInspector.IsolatedFileSystemManager.prototype.mapping):
(WebInspector.IsolatedFileSystemManager.prototype.supportsFileSystems):
(WebInspector.IsolatedFileSystemManager.prototype._requestFileSystems):
(WebInspector.IsolatedFileSystemManager.prototype.addFileSystem):
(WebInspector.IsolatedFileSystemManager.prototype.removeFileSystem):
(WebInspector.IsolatedFileSystemManager.prototype._fileSystemsLoaded):
(WebInspector.IsolatedFileSystemManager.prototype._innerAddFileSystem):
(WebInspector.IsolatedFileSystemManager.prototype._fileSystemPaths):
(WebInspector.IsolatedFileSystemManager.prototype._processPendingFileSystemRequests):
(WebInspector.IsolatedFileSystemManager.prototype._fileSystemAdded):
(WebInspector.IsolatedFileSystemManager.prototype._fileSystemRemoved):
(WebInspector.IsolatedFileSystemManager.prototype._isolatedFileSystem):
(WebInspector.IsolatedFileSystemManager.prototype.requestDOMFileSystem):
(WebInspector.IsolatedFileSystemDispatcher):
(WebInspector.IsolatedFileSystemDispatcher.prototype.fileSystemsLoaded):
(WebInspector.IsolatedFileSystemDispatcher.prototype.fileSystemRemoved):
(WebInspector.IsolatedFileSystemDispatcher.prototype.fileSystemAdded):
* inspector/front-end/SettingsScreen.js:
(WebInspector.WorkspaceSettingsTab.prototype._createFileSystemsEditor):
(WebInspector.WorkspaceSettingsTab.prototype._addFileSystemRow.removeFileSystemClicked):
(WebInspector.WorkspaceSettingsTab.prototype._addFileSystemClicked):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
2013-02-18 Huang Dongsung <luxtella@company100.net>
[EFL][WK2] compositing/layer-creation/fixed-position-out-of-view-scaled.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=110059
Reviewed by Kenneth Rohde Christiansen.
Remove the ASSERT check in TextureMapperLayer. This assertion seems
valid because CoordinatedGraphicsScene::adjustPositionForFixedLayers() calls
TextureMapperLayer::setScrollPositionDeltaIfNeeded() when the graphics
layer is a fixed position layer. However, the assertion can be failed
because it is possible that TextureMapperLayer is a non-fixed position
layer when the graphics layer that holds the TextureMapperLayer is a
fixed position layer. When CoordinatedGraphicsScene flushes,
TextureMapperLayer becomes a fixed position layer.
No new tests. No change in behavior.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):
2013-02-18 Grzegorz Czajkowski <g.czajkowski@samsung.com>
[WK2][EFL] Unified text checker implementation
https://bugs.webkit.org/show_bug.cgi?id=107682
Reviewed by Anders Carlsson.
No new tests, covered by editing/spelling tests.
* platform/text/TextChecking.h:
(WebCore):
Enabling unified text checker feature for WebKit-EFL.
2013-02-18 Nico Weber <thakis@chromium.org>
[chromium/clang] Remove -Wno-return-type-c-linkage
https://bugs.webkit.org/show_bug.cgi?id=110098
Reviewed by Jochen Eisinger.
The one instance where this triggered was removed in
http://trac.webkit.org/changeset/141184 . A clang that has this
warning landed in chromium r182694, so it should be safe to turn
the warning on now.
* WebCore.gyp/WebCore.gyp:
2013-02-18 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: provide basic console.table implementation (no [,columns] support)
https://bugs.webkit.org/show_bug.cgi?id=109453
Reviewed by Vsevolod Vlasov.
Test: inspector/console/console-format-table.html
Using console preview infrastructure to support console.table.
* English.lproj/localizedStrings.js:
* inspector/ConsoleAPITypes.h:
* inspector/ConsoleMessage.cpp:
(WebCore::messageTypeValue):
(WebCore::ConsoleMessage::addToFrontend):
* inspector/InjectedScript.cpp:
(WebCore::InjectedScript::wrapObject):
(WebCore):
(WebCore::InjectedScript::wrapTable):
* inspector/InjectedScript.h:
(InjectedScript):
* inspector/InjectedScriptSource.js:
(.):
* inspector/Inspector.json:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl):
(WebInspector.ConsoleMessageImpl.prototype.willHide):
(WebInspector.ConsoleMessageImpl.prototype._format):
(WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
(WebInspector.ConsoleMessageImpl.prototype._renderPropertyPreview):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
* inspector/front-end/ConsoleModel.js:
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype._appendConsoleMessage):
(WebInspector.ConsoleView.prototype._consoleCleared):
(WebInspector.ConsoleView.prototype._updateMessageList):
(WebInspector.ConsoleCommand.prototype.wasShown):
(WebInspector.ConsoleCommand.prototype.willHide):
(WebInspector.ConsoleGroup.prototype.addMessage):
* inspector/front-end/DataGrid.js:
(.sortDataGrid.comparator):
(.sortDataGrid):
(WebInspector.DataGrid.createSortableDataGrid):
(WebInspector.DataGrid.prototype.renderInline):
* inspector/front-end/DatabaseQueryView.js:
(WebInspector.DatabaseQueryView.prototype._queryFinished):
* inspector/front-end/dataGrid.css:
(.data-grid.inline):
(.data-grid.inline td.corner):
* inspector/front-end/resourcesPanel.css:
(.storage-view > .data-grid):
* page/Console.cpp:
(WebCore::Console::table):
(WebCore):
* page/Console.h:
(Console):
* page/Console.idl:
2013-02-18 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: JavaScriptSourceFrame should inherit UISourceCodeFrame
https://bugs.webkit.org/show_bug.cgi?id=110091
Reviewed by Pavel Feldman.
Removed duplicated code from JavaScriptSourceFrame and made it inherit UISourceCodeFrame.
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame):
(WebInspector.JavaScriptSourceFrame.prototype.onUISourceCodeContentChanged):
(WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
* inspector/front-end/ScriptsPanel.js:
* inspector/front-end/UISourceCodeFrame.js:
(WebInspector.UISourceCodeFrame.prototype.canEditSource):
(WebInspector.UISourceCodeFrame.prototype.onTextChanged):
(WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
(WebInspector.UISourceCodeFrame.prototype.onUISourceCodeContentChanged):
(WebInspector.UISourceCodeFrame.prototype._innerSetContent):
2013-02-18 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Remove unused _files field in FileSystemProjectDelegate
https://bugs.webkit.org/show_bug.cgi?id=110082
Reviewed by Pavel Feldman.
* inspector/front-end/FileSystemProjectDelegate.js:
(WebInspector.FileSystemProjectDelegate):
(WebInspector.FileSystemProjectDelegate.prototype._addFile):
(WebInspector.FileSystemProjectDelegate.prototype._removeFile):
2013-02-18 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: allow 0 as a formatted parameter in console message.
https://bugs.webkit.org/show_bug.cgi?id=110096
Reviewed by Vsevolod Vlasov.
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype.append):
(WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
2013-02-18 Ilya Tikhonovsky <loislo@chromium.org>
Unreviewed speculative fix for Chromium Mac.
* WebCore.gypi:
2013-02-13 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: reportLeaf method doesn't report the leaf node properly.
https://bugs.webkit.org/show_bug.cgi?id=109554
In some cases leaves have no pointer so with the old schema we can't generate nodeId for them because we
can't insert 0 into hashmap. It happens when we call addPrivateBuffer method.
Drive by fix: I introduced a client interface for the HeapGraphSerializer.
It helps me to do the tests for the serializer.
Reviewed by Yury Semikhatsky.
It is covered by newly added tests in TestWebKitAPI.
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::HeapGraphSerializer):
(WebCore::HeapGraphSerializer::pushUpdate):
(WebCore::HeapGraphSerializer::reportNode):
(WebCore::HeapGraphSerializer::toNodeId):
(WebCore::HeapGraphSerializer::addRootNode):
* inspector/HeapGraphSerializer.h:
(HeapGraphSerializer):
(Client):
(WebCore::HeapGraphSerializer::Client::~Client):
* inspector/InspectorMemoryAgent.cpp:
(WebCore):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
2013-02-18 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143100.
http://trac.webkit.org/changeset/143100
https://bugs.webkit.org/show_bug.cgi?id=110088
Breaks file system support in workspace. (Requested by vsevik
on #webkit).
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
* inspector/front-end/SimpleWorkspaceProvider.js:
(WebInspector.SimpleProjectDelegate):
(WebInspector.SimpleProjectDelegate.prototype.id):
(WebInspector.SimpleProjectDelegate.prototype.displayName):
(WebInspector.SimpleProjectDelegate.prototype.addFile):
(WebInspector.SimpleWorkspaceProvider):
(WebInspector.SimpleWorkspaceProvider.uriForURL):
(WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
(WebInspector.SimpleWorkspaceProvider.prototype.removeFile):
(WebInspector.SimpleWorkspaceProvider.prototype.reset):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.uri):
* inspector/front-end/Workspace.js:
(WebInspector.Project.prototype._fileAdded):
(WebInspector.Project.prototype._fileRemoved):
(WebInspector.Project.prototype.uiSourceCodeForURI):
(WebInspector.Workspace.prototype.projectForUISourceCode):
2013-02-15 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Introduce ProfilesPanelDescriptor.
https://bugs.webkit.org/show_bug.cgi?id=109906
Reviewed by Pavel Feldman.
Some constants/methods should be accesible before ProfilesPanel
is instantiated.
Extracted methods to check if profile is "user-initiated" and what is
its index.
Also profile URL regexp moved to ProfilesPanelDescriptor.
* inspector/front-end/ProfilesPanelDescriptor.js: Added.
* WebCore.gypi: Added ProfilesPanelDescriptor.js
* WebCore.vcproj/WebCore.vcproj: Ditto.
* inspector/compile-front-end.py: Ditto.
* inspector/front-end/WebKit.qrc: Ditto.
* inspector/front-end/inspector.html: Ditto.
* inspector/front-end/HeapSnapshotView.js: Adopted changes.
* inspector/front-end/ProfilesPanel.js: Ditto.
* inspector/front-end/externs.js: Ditto.
* inspector/front-end/inspector.js: Ditto.
2013-02-17 Dimitri Glazkov <dglazkov@chromium.org>
Stop passing around SelectorChecker in SelectorQuery, now that it's stack-allocated.
https://bugs.webkit.org/show_bug.cgi?id=110038
Reviewed by Andreas Kling.
No functional changes, covered by existing tests.
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::matches): Moved instantiation of SelectorChecker in here.
(WebCore::SelectorDataList::queryAll): Got rid of unneeded SelectorChecker arg.
(WebCore::SelectorDataList::queryFirst): Ditto.
(WebCore::SelectorDataList::execute): Moved instantiation of SelectorChecker in here.
(WebCore::SelectorQuery::matches): Removed instantiation of SelectorChecker here.
(WebCore::SelectorQuery::queryAll): Ditto.
(WebCore::SelectorQuery::queryFirst): Ditto.
* dom/SelectorQuery.h:
(WebCore): Tweaked headers to make SelectorChecker just an implementation detail.
(SelectorDataList): Tweaked decls to remove SelectorChecker args.
2013-02-17 Dimitri Glazkov <dglazkov@chromium.org>
Stop passing around SelectorChecker in ContentSelectorQuery.
https://bugs.webkit.org/show_bug.cgi?id=110041
Now that SelectorChecker has no interesting state, we can simplify ContentSelectorQuery and get rid of a class.
Reviewed by Andreas Kling.
No functional changes, covered by existing tests.
* html/shadow/ContentSelectorQuery.cpp:
(WebCore::ContentSelectorDataList::checkContentSelector): Zapped ContentSelectorChecker and moved its only remaining method here.
(WebCore::ContentSelectorDataList::matches): Removed SelectorChecker argument.
(WebCore::ContentSelectorQuery::ContentSelectorQuery): Removed an unnecessary member.
(WebCore::ContentSelectorQuery::matches): Removed unnecessary argument.
* html/shadow/ContentSelectorQuery.h:
(WebCore): Cleaned up the file.
(ContentSelectorDataList): Updated decls.
(ContentSelectorQuery): Ditto.
2013-02-17 Mike West <mkwst@chromium.org>
WheelEvent should not target text nodes.
https://bugs.webkit.org/show_bug.cgi?id=109939
Reviewed by Darin Adler.
WheelEvent, like other mouse events, should not target text nodes.
EventHandler correctly handles other mouse events by retargeting
events to text nodes' parents; this patch adds that logic to the
WheelEvent handler.
This should allow jQuery to stop working around WebKit's behavior[1].
[1]: https://github.com/jquery/jquery/commit/c61150427fc8ccc8e884df8f221a6c9bb5477929
Test: fast/events/wheelevent-in-text-node.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
If a WheelEvent's hit test lands on a text node, retarget the
event to the text node's parent. Do this before latching the node.
2013-02-17 Filip Pizlo <fpizlo@apple.com>
Move all Structure out-of-line inline methods to StructureInlines.h
https://bugs.webkit.org/show_bug.cgi?id=110024
Rubber stamped by Sam Weinig.
No new tests because no new behavior. Just rewiring includes.
* ForwardingHeaders/parser/SourceProviderCache.h: Added.
* loader/cache/CachedScript.cpp:
2013-02-17 Hayato Ito <hayato@chromium.org>
Make EventDispatcher take an Event object in its constructor.
https://bugs.webkit.org/show_bug.cgi?id=109898
Reviewed by Dimitri Glazkov.
That makes EventDispatcher more RAII-like so that we can calculate
an EventPath in its constructor. I'll remove
EventDispatcher::ensureEventPath() in a following patch.
No tests. No change in behavior.
* dom/EventDispatchMediator.cpp:
(WebCore::EventDispatchMediator::dispatchEvent):
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEvent):
(WebCore::EventDispatcher::EventDispatcher):
(WebCore::EventDispatcher::ensureEventPath):
(WebCore::EventDispatcher::dispatchSimulatedClick):
(WebCore::EventDispatcher::dispatch):
(WebCore::EventDispatcher::dispatchEventPreProcess):
(WebCore::EventDispatcher::dispatchEventAtCapturing):
(WebCore::EventDispatcher::dispatchEventAtTarget):
(WebCore::EventDispatcher::dispatchEventAtBubbling):
(WebCore::EventDispatcher::dispatchEventPostProcess):
* dom/EventDispatcher.h:
(EventDispatcher):
(WebCore::EventDispatcher::node):
(WebCore::EventDispatcher::event):
* dom/FocusEvent.cpp:
(WebCore::FocusEventDispatchMediator::dispatchEvent):
(WebCore::BlurEventDispatchMediator::dispatchEvent):
(WebCore::FocusInEventDispatchMediator::dispatchEvent):
(WebCore::FocusOutEventDispatchMediator::dispatchEvent):
* dom/GestureEvent.cpp:
(WebCore::GestureEventDispatchMediator::dispatchEvent):
* dom/MouseEvent.cpp:
(WebCore::MouseEventDispatchMediator::dispatchEvent):
2013-02-17 Philip Rogers <pdr@google.com>
Fix non-root SVG viewport under zoom
https://bugs.webkit.org/show_bug.cgi?id=99453
Reviewed by Dirk Schulze.
The root SVG element handles zoom differently than other SVG nodes because it needs
to translate between CSS (where zoom is applied to all units) and SVG (where zoom is only
applied at the top level). A good description of this difference can be found here:
http://trac.webkit.org/browser/trunk/Source/WebCore/css/StyleResolver.cpp?rev=142855#L2598
SVG elements can appear as children in the SVG tree as well, and in this mode
SVGSVGElement should not consider the current zoom level. This patch fixes a bug
where non-root viewport calculations were removing zoom.
Test: svg/custom/symbol-zoom.html
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::currentViewportSize):
This change removes the unnecessary zoom calculation for non-root nodes. This is similar
to how zoom is handled elsewhere, e.g., SVGSVGElement::localCoordinateSpaceTransform.
2013-02-17 Chris Fleizach <cfleizach@apple.com>
AX: Upstream iOS Accessibility files
https://bugs.webkit.org/show_bug.cgi?id=110071
Reviewed by David Kilzer.
Upstream the iOS Accessibility files for WebCore.
* WebCore.xcodeproj/project.pbxproj:
* accessibility/ios: Added.
* accessibility/ios/AXObjectCacheIOS.mm: Added.
(WebCore):
(WebCore::AXObjectCache::detachWrapper):
(WebCore::AXObjectCache::attachWrapper):
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::nodeTextChangePlatformNotification):
(WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
(WebCore::AXObjectCache::handleFocusedUIElementChanged):
(WebCore::AXObjectCache::handleScrolledToAnchor):
* accessibility/ios/AccessibilityObjectIOS.mm: Added.
(-[WAKView accessibilityIsIgnored]):
(WebCore):
(WebCore::AccessibilityObject::detachFromParent):
(WebCore::AccessibilityObject::overrideAttachmentParent):
(WebCore::AccessibilityObject::accessibilityPasswordFieldLength):
(WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
* accessibility/ios/AccessibilityObjectWrapperIOS.h: Added.
(WAKView):
* accessibility/ios/AccessibilityObjectWrapperIOS.mm: Added.
(AccessibilityUnignoredAncestor):
(-[WebAccessibilityTextMarker initWithTextMarker:cache:]):
(-[WebAccessibilityTextMarker initWithData:cache:]):
(-[WebAccessibilityTextMarker initWithData:accessibilityObject:]):
(+[WebAccessibilityTextMarker textMarkerWithVisiblePosition:cache:]):
(-[WebAccessibilityTextMarker dataRepresentation]):
(-[WebAccessibilityTextMarker visiblePosition]):
(-[WebAccessibilityTextMarker description]):
(-[WebAccessibilityObjectWrapper initWithAccessibilityObject:]):
(-[WebAccessibilityObjectWrapper detach]):
(-[WebAccessibilityObjectWrapper dealloc]):
(-[WebAccessibilityObjectWrapper _prepareAccessibilityCall]):
(-[WebAccessibilityObjectWrapper accessibilityObject]):
(-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
(-[WebAccessibilityObjectWrapper accessibilityPostProcessHitTest:]):
(-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
(-[WebAccessibilityObjectWrapper accessibilityElementCount]):
(-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):
(-[WebAccessibilityObjectWrapper indexOfAccessibilityElement:]):
(-[WebAccessibilityObjectWrapper accessibilityLanguage]):
(-[WebAccessibilityObjectWrapper _accessibilityIsLandmarkRole:]):
(-[WebAccessibilityObjectWrapper _accessibilityListAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityLandmarkAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):
(-[WebAccessibilityObjectWrapper accessibilityTraits]):
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
(-[WebAccessibilityObjectWrapper isAccessibilityElement]):
(-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
(-[WebAccessibilityObjectWrapper accessibilityLabel]):
(-[WebAccessibilityObjectWrapper tableCellParent]):
(-[WebAccessibilityObjectWrapper tableParent]):
(-[WebAccessibilityObjectWrapper accessibilityTitleElement]):
(-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):
(-[WebAccessibilityObjectWrapper accessibilityElementForRow:andColumn:]):
(-[WebAccessibilityObjectWrapper accessibilityRowRange]):
(-[WebAccessibilityObjectWrapper accessibilityColumnRange]):
(-[WebAccessibilityObjectWrapper accessibilityPlaceholderValue]):
(-[WebAccessibilityObjectWrapper accessibilityValue]):
(-[WebAccessibilityObjectWrapper accessibilityIsComboBox]):
(-[WebAccessibilityObjectWrapper accessibilityHint]):
(-[WebAccessibilityObjectWrapper accessibilityURL]):
(-[WebAccessibilityObjectWrapper _convertIntRectToScreenCoordinates:]):
(-[WebAccessibilityObjectWrapper accessibilityElementRect]):
(-[WebAccessibilityObjectWrapper accessibilityActivationPoint]):
(-[WebAccessibilityObjectWrapper accessibilityFrame]):
(-[WebAccessibilityObjectWrapper containsUnnaturallySegmentedChildren]):
(-[WebAccessibilityObjectWrapper accessibilityContainer]):
(-[WebAccessibilityObjectWrapper accessibilityFocusedUIElement]):
(-[WebAccessibilityObjectWrapper _accessibilityWebDocumentView]):
(-[WebAccessibilityObjectWrapper _accessibilityNextElementsWithCount:]):
(-[WebAccessibilityObjectWrapper _accessibilityPreviousElementsWithCount:]):
(-[WebAccessibilityObjectWrapper accessibilityRequired]):
(-[WebAccessibilityObjectWrapper accessibilityFlowToElements]):
(-[WebAccessibilityObjectWrapper accessibilityLinkedElement]):
(-[WebAccessibilityObjectWrapper isAttachment]):
(-[WebAccessibilityObjectWrapper _accessibilityActivate]):
(-[WebAccessibilityObjectWrapper attachmentView]):
(rendererForView):
(-[WebAccessibilityObjectWrapper _accessibilityParentForSubview:]):
(-[WebAccessibilityObjectWrapper postFocusChangeNotification]):
(-[WebAccessibilityObjectWrapper postSelectedTextChangeNotification]):
(-[WebAccessibilityObjectWrapper postLayoutChangeNotification]):
(-[WebAccessibilityObjectWrapper postLiveRegionChangeNotification]):
(-[WebAccessibilityObjectWrapper postLoadCompleteNotification]):
(-[WebAccessibilityObjectWrapper postChildrenChangedNotification]):
(-[WebAccessibilityObjectWrapper postInvalidStatusChangedNotification]):
(-[WebAccessibilityObjectWrapper accessibilityElementDidBecomeFocused]):
(-[WebAccessibilityObjectWrapper accessibilityModifySelection:increase:]):
(-[WebAccessibilityObjectWrapper accessibilityIncreaseSelection:]):
(-[WebAccessibilityObjectWrapper accessibilityDecreaseSelection:]):
(-[WebAccessibilityObjectWrapper accessibilityMoveSelectionToMarker:]):
(-[WebAccessibilityObjectWrapper accessibilityIncrement]):
(-[WebAccessibilityObjectWrapper accessibilityDecrement]):
(-[WebAccessibilityObjectWrapper _addAccessibilityObject:toTextMarkerArray:]):
(-[WebAccessibilityObjectWrapper stringForTextMarkers:]):
(blockquoteLevel):
(AXAttributeStringSetBlockquoteLevel):
(AXAttributeStringSetHeadingLevel):
(AXAttributeStringSetFont):
(AXAttributeStringSetNumber):
(AXAttributeStringSetStyle):
(AXAttributedStringAppendText):
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
(-[WebAccessibilityObjectWrapper _convertToNSRange:]):
(-[WebAccessibilityObjectWrapper _convertToDOMRange:]):
(-[WebAccessibilityObjectWrapper positionForTextMarker:]):
(-[WebAccessibilityObjectWrapper textMarkerRange]):
(-[WebAccessibilityObjectWrapper elementTextRange]):
(-[WebAccessibilityObjectWrapper accessibilityObjectForTextMarker:]):
(-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]):
(-[WebAccessibilityObjectWrapper textMarkerForPosition:]):
(-[WebAccessibilityObjectWrapper _stringForRange:attributed:]):
(-[WebAccessibilityObjectWrapper stringForRange:]):
(-[WebAccessibilityObjectWrapper attributedStringForRange:]):
(-[WebAccessibilityObjectWrapper elementsForRange:]):
(-[WebAccessibilityObjectWrapper selectionRangeString]):
(-[WebAccessibilityObjectWrapper selectedTextMarker]):
(-[WebAccessibilityObjectWrapper lineEndMarkerForMarker:]):
(-[WebAccessibilityObjectWrapper lineStartMarkerForMarker:]):
(-[WebAccessibilityObjectWrapper nextMarkerForMarker:]):
(-[WebAccessibilityObjectWrapper previousMarkerForMarker:]):
(-[WebAccessibilityObjectWrapper frameForTextMarkers:]):
(-[WebAccessibilityObjectWrapper textMarkerForPoint:]):
(-[WebAccessibilityObjectWrapper accessibilityIdentifier]):
(-[WebAccessibilityObjectWrapper accessibilitySpeechHint]):
(-[WebAccessibilityObjectWrapper accessibilityARIAIsBusy]):
(-[WebAccessibilityObjectWrapper accessibilityARIALiveRegionStatus]):
(-[WebAccessibilityObjectWrapper accessibilityARIARelevantStatus]):
(-[WebAccessibilityObjectWrapper accessibilityARIALiveRegionIsAtomic]):
(-[WebAccessibilityObjectWrapper accessibilityInvalidStatus]):
(-[WebAccessibilityObjectWrapper accessibilityMathRootIndexObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathRadicandObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathNumeratorObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathDenominatorObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathBaseObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathSubscriptObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathSuperscriptObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathUnderObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathOverObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathFencedOpenString]):
(-[WebAccessibilityObjectWrapper accessibilityMathFencedCloseString]):
(-[WebAccessibilityObjectWrapper accessibilityIsMathTopObject]):
(-[WebAccessibilityObjectWrapper accessibilityMathType]):
(-[WebAccessibilityObjectWrapper accessibilitySetPostedNotificationCallback:withContext:]):
(-[WebAccessibilityObjectWrapper accessibilityPostedNotification:WebCore::AXObjectCache::]):
(-[WebAccessibilityObjectWrapper description]):
2013-02-17 Chris Fleizach <cfleizach@apple.com>
AX: rename WebAccessibilityObjectWrapper to WebAccessibilityObjectWrapperBase
https://bugs.webkit.org/show_bug.cgi?id=110061
Reviewed by David Kilzer.
Rename the base accessibility wrapper class so that the iOS class can share the same name.
* WebCore.xcodeproj/project.pbxproj:
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::attachWrapper):
* accessibility/mac/WebAccessibilityObjectWrapper.h: Replaced with Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.h.
* accessibility/mac/WebAccessibilityObjectWrapper.mm: Replaced with Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm.
* accessibility/mac/WebAccessibilityObjectWrapperBase.h: Copied from Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapper.h.
* accessibility/mac/WebAccessibilityObjectWrapperBase.mm: Copied from Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapper.mm.
* accessibility/mac/WebAccessibilityObjectWrapperMac.h: Removed.
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Removed.
2013-02-17 Andreas Kling <akling@apple.com>
REGRESSION(r143125): ~5% performance hit on Chromium's intl2 page cycler.
<http://webkit.org/b/108835>
Reviewed by Ojan Vafai.
Streamline the case where GlyphPage has a per-glyph SimpleFontData* lookup table to allow
taking earlier branches on pages with lots of mixed-font text.
We accomplish this by explicitly storing a null SimpleFontData* for glyph #0 in the per-glyph
lookup table instead of relying on "if (!glyph)" checks in getters.
This is a speculative optimization, I can't get stable enough numbers locally to tell if this
will resolve the issue on the bots.
* platform/graphics/GlyphPage.h:
(WebCore::GlyphPage::glyphDataForIndex):
(WebCore::GlyphPage::fontDataForCharacter):
(WebCore::GlyphPage::setGlyphDataForIndex):
2013-02-17 Chris Fleizach <cfleizach@apple.com>
WebSpeech: plumb through a method to generate fake speech jobs for testing
https://bugs.webkit.org/show_bug.cgi?id=107351
Reviewed by Adam Barth.
We can't reliably use the platforms synthesizer to test speech synthesis internals.
This patch adds an Internals method to enable a mock synthesizer, which is inherits
from the PlatformSpeechSythesizer.
The fake synthesizer goes through all the motions of a real synthesizer but doesn't do anything.
A bunch of changes were needed here to make PlatformSpeechSynthesizer subclassable so that the
right virtual are used.
The Mock synthesizer only lives in WebCoreTestSupport. Because PlatformSpeechSynthesizer uses
a RetainPtr, I needed to make WebCoreTestSupport link CoreFoundation
2013-02-17 Csaba Osztrogonác <ossy@webkit.org>
[Qt] Unreviewed buildfix for !USE(LIBXML) builds after r143112.
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::XMLDocumentParser):
2013-02-17 Andreas Kling <akling@apple.com>
Optimize GlyphPage for case where all glyphs are available in the same font.
<http://webkit.org/b/108835>
<rdar://problem/13157042>
Reviewed by Antti Koivisto.
Let GlyphPage begin optimistically assuming that all its glyphs will be represented in
the same SimpleFontData*. In this (very common) case, only keep a single SimpleFontData*.
If glyphs from multiple fonts are mixed in one page, an array of per-glyph SimpleFontData*
is allocated transparently.
This was landed before with some bogus branch prediction hints and didn't fare well on
page cyclers (intl2 specifically.) These have been removed this time around, and will
hopefully be regression-free.
4.98 MB progression on Membuster3.
* platform/graphics/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::initializePage):
* platform/graphics/GlyphPage.h:
(WebCore::GlyphPage::createUninitialized):
(WebCore::GlyphPage::createZeroedSystemFallbackPage):
(WebCore::GlyphPage::createCopiedSystemFallbackPage):
There are now three ways of constructing a GlyphPage, two of them are only used for
creating system fallback pages.
(WebCore::GlyphPage::setGlyphDataForIndex):
Hold off creating a SimpleFontData* array until we're sure there are two different
SimpleFontData* backing the glyphs in this page.
We don't store font data for glyph #0, instead we let the getters always return null for it.
(WebCore::GlyphPage::~GlyphPage):
Free the SimpleFontData* array if needed.
(WebCore::GlyphPage::glyphDataForCharacter):
(WebCore::GlyphPage::glyphDataForIndex):
(WebCore::GlyphPage::fontDataForCharacter):
The font data for glyph #0 is always a null pointer now.
(WebCore::GlyphPage::clearForFontData):
Updated for new storage format.
* rendering/svg/SVGTextRunRenderingContext.cpp:
(WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
Fix bug where non-zero glyph was temporarily associated with null font data,
which triggered the new assertion in setGlyphDataForIndex().
2013-02-16 Andreas Kling <akling@apple.com>
Remove multi-threading gunk from WebKit2's PluginInfoStore.
<http://webkit.org/b/110046>
Reviewed by Alexey Proskuryakov.
Remove now-unused code for making deep (isolated) copies of WebCore plugin structures.
* plugins/PluginData.h:
(MimeClassInfo):
(PluginInfo):
2013-02-16 Alexey Proskuryakov <ap@apple.com>
Identifier generated twice in FrameLoader::loadResourceSynchronously()
https://bugs.webkit.org/show_bug.cgi?id=110022
Reviewed by Darin Adler.
* loader/FrameLoader.cpp: (WebCore::FrameLoader::loadResourceSynchronously):
Fix an apparent refactoring mistake.
2013-02-16 Andreas Kling <akling@apple.com>
[JSC] Remove custom mark function for NamedNodeMap.
<http://webkit.org/b/110029>
Reviewed by Darin Adler.
NamedNodeMap refs and unrefs its Element owner, so there's no need for the wrapper to keep the Element alive.
Covered by fast/dom/Attr/access-after-element-destruction.html
* bindings/js/JSNamedNodeMapCustom.cpp:
* dom/NamedNodeMap.idl:
2013-02-16 Peter Nelson <peter@peterdn.com>
REGRESSION(r143076): Crash when calling removeNamedItem or removeNamedItemNS with a non-existent attribute of newly created element.
<http://webkit.org/b/110019>
Reviewed by Andreas Kling.
Now checks Element::hasAttributes() before calling Element::getAttributeItemIndex().
Test: http/tests/misc/acid3.html
* dom/NamedNodeMap.cpp:
(WebCore::NamedNodeMap::removeNamedItem):
(WebCore::NamedNodeMap::removeNamedItemNS):
2013-02-16 Andreas Kling <akling@apple.com>
Element: Devirtualize attribute synchronization functions.
<http://webkit.org/b/110033>
Reviewed by Darin Adler.
Devirtualize the functions that perform re-serialization of lazy attributes and give
them "synchronize"-style names:
- SVGElement::synchronizeAnimatedSVGAttribute()
- StyledElement::synchronizeStyleAttributeInternal()
* dom/Element.cpp:
(WebCore::Element::synchronizeAllAttributes):
(WebCore::Element::synchronizeAttribute):
* dom/Element.h:
* dom/StyledElement.cpp:
(WebCore::StyledElement::synchronizeStyleAttribute):
* dom/StyledElement.h:
(StyledElement):
* rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::RenderSVGResourceGradient::applyResource):
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::buildPattern):
* svg/SVGElement.cpp:
(WebCore::SVGElement::synchronizeAnimatedSVGAttribute):
* svg/SVGElement.h:
(SVGElement):
2013-02-16 Andreas Kling <akling@apple.com>
Element: Avoid unrelated attribute synchronization on other attribute access.
<http://webkit.org/b/110025>
Reviewed by Darin Adler.
We've been extremely trigger happy with re-serializing the style attribute (and SVG animatables)
whenever any Element attribute API was used. This patch narrows this down to (almost always)
only synchronizing an attribute when someone specifically wants to read/update it.
Also removed two more confusing ElementData accessors:
- Element::elementDataWithSynchronizedAttributes()
- Element::ensureElementDataWithSynchronizedAttributes()
* dom/Element.h:
* dom/Element.cpp:
(WebCore::Element::hasAttributes):
(WebCore::Element::hasEquivalentAttributes):
(WebCore::Element::cloneAttributesFromElement):
(WebCore::Element::synchronizeAllAttributes):
Renamed updateInvalidAttributes() to synchronizeAllAttributes().
This function should only be used when we need every single attribute to be up-to-date.
(WebCore::Element::synchronizeAttribute):
Broke out logic for synchronizing a specific attribute, given either a full QualifiedName
or a localName.
(WebCore::Element::setSynchronizedLazyAttribute):
Don't call ensureUniqueElementData() indisciminately here. This avoids converting the attribute
storage when re-serializing the inline style yields the same CSS text that was already in the
style attribute.
(WebCore::Element::hasAttribute):
(WebCore::Element::hasAttributeNS):
(WebCore::Element::getAttribute):
(WebCore::Element::getAttributeNode):
(WebCore::Element::getAttributeNodeNS):
(WebCore::Element::setAttribute):
(WebCore::Element::setAttributeNode):
(WebCore::Element::removeAttributeNode):
Only synchronize the attribute in question.
* dom/Node.cpp:
(WebCore::Node::compareDocumentPosition):
Call synchronizeAllAttributes() when comparing two Attr nodes on the same Element instead
of relying on the side-effects of another function doing this.
2013-02-16 Seokju Kwon <seokju.kwon@gmail.com>
Fix build warnings after r139853
https://bugs.webkit.org/show_bug.cgi?id=109929
Reviewed by Alexey Proskuryakov.
Use UNUSED_PARAM macro to fix build warning -Wunused-parameter
when INSPECTOR is disabled.
No new tests, no behavior change.
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::frameStartedLoading):
(WebCore::InspectorInstrumentation::frameStoppedLoading):
(WebCore::InspectorInstrumentation::frameScheduledNavigation):
(WebCore::InspectorInstrumentation::frameClearedScheduledNavigation):
2013-02-16 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r142734.
http://trac.webkit.org/changeset/142734
https://bugs.webkit.org/show_bug.cgi?id=110018
"Triggered crashes on lots of websites" (Requested by ggaren
on #webkit).
* bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::getOwnPropertySlotDelegate):
2013-02-16 Robert Hogan <robert@webkit.org>
percentage top value of position:relative element not calculated using parent's min-height unless height set
https://bugs.webkit.org/show_bug.cgi?id=14762
Reviewed by Julien Chaffraix.
Percentage height "is calculated with respect to the height of the generated box's containing block" says
http://www.w3.org/TR/CSS21/visudet.html#the-height-property and "If the height of the containing block is not
specified explicitly (i.e., it depends on content height), and this element is not absolutely positioned, the
value computes to 'auto'." So when calculating the used height of a replaced element do not crawl through ancestor
blocks except when traversing anonymous blocks. Ensure that anonymous table cells are not skipped through though.
http://www.w3.org/TR/CSS21/tables.html#height-layout adds "In CSS 2.1, the height of a cell box is the minimum
height required by the content." This height is decided by allowing table cells to report their height as auto.
It's not clear why http://trac.webkit.org/changeset/91242 decided it should no longer do this - doing so caused
us to regress in our rendering of computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor.html.
Tests: fast/block/percent-top-parent-respects-min-height.html
fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor-vertical-lr.html
fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor.html
fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor-vertical-lr.html
fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight):
(WebCore):
(WebCore::RenderBoxModelObject::relativePositionOffset):
* rendering/RenderBoxModelObject.h:
(RenderBoxModelObject):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::hasReplacedLogicalHeight):
2013-02-16 Stephen White <senorblanco@chromium.org>
[skia] FEOffset should have a Skia implementation.
https://bugs.webkit.org/show_bug.cgi?id=109831
Reviewed by James Robinson.
Covered by css3/filters/effect-reference.html and -hw.html.
* WebCore.gypi:
* platform/graphics/filters/FEOffset.h: Implement createImageFilter()
for the Skia path.
* platform/graphics/filters/skia/FEOffsetSkia.cpp: Added.
(WebCore::FEOffset::createImageFilter):
Instantiate an SkOffsetImageFilter when building the Skia DAG.
2013-02-16 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Create separate project for each domain for UISourceCode based on browser resources.
https://bugs.webkit.org/show_bug.cgi?id=109691
Reviewed by Pavel Feldman.
Separate project of certain type is now created for each domain.
UISourceCode path represents a path in the project now.
UISourceCode uri is now calculated based on project id and path.
It is also possible to calculate path based on projectId and URI, which is used for uiSourceCodeForURI() methods.
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
* inspector/front-end/SimpleWorkspaceProvider.js:
(WebInspector.SimpleProjectDelegate):
(WebInspector.SimpleProjectDelegate.projectId):
(WebInspector.SimpleProjectDelegate.prototype.id):
(WebInspector.SimpleProjectDelegate.prototype.displayName):
(WebInspector.SimpleProjectDelegate.prototype.addFile):
(WebInspector.SimpleWorkspaceProvider):
(WebInspector.SimpleWorkspaceProvider.splitURL):
(WebInspector.SimpleWorkspaceProvider._pathForSplittedURL):
(WebInspector.SimpleWorkspaceProvider.uriForURL):
(WebInspector.SimpleWorkspaceProvider.prototype._projectDelegate):
(WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
(WebInspector.SimpleWorkspaceProvider.prototype.addFileByName):
(WebInspector.SimpleWorkspaceProvider.prototype._innerAddFile):
(WebInspector.SimpleWorkspaceProvider.prototype.removeFileByName):
(WebInspector.SimpleWorkspaceProvider.prototype.reset):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.uri):
(WebInspector.UISourceCode.path):
(WebInspector.UISourceCode.prototype.uri):
* inspector/front-end/Workspace.js:
(WebInspector.Project.prototype._fileAdded):
(WebInspector.Project.prototype._fileRemoved):
(WebInspector.Project.prototype.uiSourceCodeForURI):
2013-02-15 Chris Fleizach <cfleizach@apple.com>
AX: Split WebAccessibilityObjectWrapper so code can be shared with iOS
https://bugs.webkit.org/show_bug.cgi?id=109849
Reviewed by David Kilzer.
Split up the WebAccessibilityObjectWrapper so that iOS can share more
code with MacOS. I imagine over time, more code will move into this base class,
but for now this will be a good start.
A base class called WebAccessibilityObjectWrapper now exists, and Mac has a subclass
of that. iOS will be able to do the same.
* WebCore.xcodeproj/project.pbxproj:
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::attachWrapper):
* accessibility/mac/WebAccessibilityObjectWrapper.h:
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper detach]):
(-[WebAccessibilityObjectWrapper attachmentView]):
(-[WebAccessibilityObjectWrapper accessibilityObject]):
(-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]):
(-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
(-[WebAccessibilityObjectWrapper accessibilityTitle]):
(-[WebAccessibilityObjectWrapper accessibilityDescription]):
(-[WebAccessibilityObjectWrapper accessibilityHelpText]):
* accessibility/mac/WebAccessibilityObjectWrapperMac.h: Added.
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Added.
(std):
(-[WebAccessibilityObjectWrapperMac detach]):
(-[WebAccessibilityObjectWrapperMac attachmentView]):
(CFAutoreleaseHelper):
(AXObjectIsTextMarker):
(AXObjectIsTextMarkerRange):
(AXTextMarkerRange):
(AXTextMarkerRangeStart):
(AXTextMarkerRangeEnd):
(SearchKeyEntry):
(createAccessibilitySearchKeyMap):
(accessibilitySearchKeyForString):
(textMarkerForVisiblePosition):
(-[WebAccessibilityObjectWrapperMac textMarkerForVisiblePosition:]):
(visiblePositionForTextMarker):
(-[WebAccessibilityObjectWrapperMac visiblePositionForTextMarker:]):
(visiblePositionForStartOfTextMarkerRange):
(visiblePositionForEndOfTextMarkerRange):
(textMarkerRangeFromMarkers):
(AXAttributedStringRangeIsValid):
(AXAttributeStringSetFont):
(CreateCGColorIfDifferent):
(AXAttributeStringSetColor):
(AXAttributeStringSetNumber):
(AXAttributeStringSetStyle):
(AXAttributeStringSetBlockquoteLevel):
(AXAttributeStringSetSpelling):
(AXAttributeStringSetHeadingLevel):
(AXAttributeStringSetElement):
(AXAttributedStringAppendText):
(nsStringForReplacedNode):
(-[WebAccessibilityObjectWrapperMac doAXAttributedStringForTextMarkerRange:]):
(textMarkerRangeFromVisiblePositions):
(-[WebAccessibilityObjectWrapperMac textMarkerRangeFromVisiblePositions:endPosition:]):
(-[WebAccessibilityObjectWrapperMac accessibilityActionNames]):
(-[WebAccessibilityObjectWrapperMac additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapperMac accessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapperMac visiblePositionRangeForTextMarkerRange:]):
(-[WebAccessibilityObjectWrapperMac renderWidgetChildren]):
(-[WebAccessibilityObjectWrapperMac remoteAccessibilityParentObject]):
(convertToVector):
(convertToNSArray):
(-[WebAccessibilityObjectWrapperMac textMarkerRangeForSelection]):
(-[WebAccessibilityObjectWrapperMac position]):
(createAccessibilityRoleMap):
(roleValueToNSString):
(-[WebAccessibilityObjectWrapperMac role]):
(-[WebAccessibilityObjectWrapperMac subrole]):
(-[WebAccessibilityObjectWrapperMac roleDescription]):
(-[WebAccessibilityObjectWrapperMac scrollViewParent]):
(-[WebAccessibilityObjectWrapperMac titleTagShouldBeUsedInDescriptionField]):
(-[WebAccessibilityObjectWrapperMac accessibilityTitle]):
(-[WebAccessibilityObjectWrapperMac accessibilityDescription]):
(-[WebAccessibilityObjectWrapperMac accessibilityHelpText]):
(-[WebAccessibilityObjectWrapperMac accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapperMac accessibilityFocusedUIElement]):
(-[WebAccessibilityObjectWrapperMac accessibilityHitTest:]):
(-[WebAccessibilityObjectWrapperMac accessibilityIsAttributeSettable:]):
(-[WebAccessibilityObjectWrapperMac accessibilityIsIgnored]):
(-[WebAccessibilityObjectWrapperMac accessibilityParameterizedAttributeNames]):
(-[WebAccessibilityObjectWrapperMac accessibilityPerformPressAction]):
(-[WebAccessibilityObjectWrapperMac accessibilityPerformIncrementAction]):
(-[WebAccessibilityObjectWrapperMac accessibilityPerformDecrementAction]):
(-[WebAccessibilityObjectWrapperMac accessibilityPerformShowMenuAction]):
(-[WebAccessibilityObjectWrapperMac accessibilityShowContextMenu]):
(-[WebAccessibilityObjectWrapperMac accessibilityPerformAction:]):
(-[WebAccessibilityObjectWrapperMac accessibilitySetValue:forAttribute:]):
(rendererForView):
(-[WebAccessibilityObjectWrapperMac _accessibilityParentForSubview:]):
(-[WebAccessibilityObjectWrapperMac accessibilityActionDescription:]):
(-[WebAccessibilityObjectWrapperMac doAXAttributedStringForRange:]):
(-[WebAccessibilityObjectWrapperMac _convertToNSRange:]):
(-[WebAccessibilityObjectWrapperMac _indexForTextMarker:]):
(-[WebAccessibilityObjectWrapperMac _textMarkerForIndex:]):
(-[WebAccessibilityObjectWrapperMac doAXRTFForRange:]):
(-[WebAccessibilityObjectWrapperMac accessibilityAttributeValue:forParameter:]):
(-[WebAccessibilityObjectWrapperMac accessibilitySupportsOverriddenAttributes]):
(-[WebAccessibilityObjectWrapperMac accessibilityShouldUseUniqueId]):
(-[WebAccessibilityObjectWrapperMac accessibilityIndexOfChild:]):
(-[WebAccessibilityObjectWrapperMac accessibilityArrayAttributeCount:]):
(-[WebAccessibilityObjectWrapperMac accessibilityArrayAttributeValues:index:maxCount:]):
([WebAccessibilityObjectWrapperMac accessibilitySetShouldRepostNotifications:]):
(-[WebAccessibilityObjectWrapperMac accessibilityPostedNotification:]):
2013-02-15 Eric Carlson <eric.carlson@apple.com>
[Mac] remove wkCaptionAppearance from WebKitSystemInterface
https://bugs.webkit.org/show_bug.cgi?id=109996
Reviewed by Simon Fraser.
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2013-02-15 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143088.
http://trac.webkit.org/changeset/143088
https://bugs.webkit.org/show_bug.cgi?id=110000
Breaks the build (Requested by dgorbik on #webkit).
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2013-02-15 Chris Rogers <crogers@google.com>
Enhance AudioBus copyFrom() and sumFrom() to be able to handle discrete and speakers up and down-mixing
https://bugs.webkit.org/show_bug.cgi?id=109983
Reviewed by Kenneth Russell.
The Web Audio spec has a more detailed explanation for how channels are to be up and down-mixed:
https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#UpMix
This patch adds the initial support for handling ChannelInterpretation, although no
new JS API is yet implemented.
No new tests since no new APIs have yet been exposed.
* platform/audio/AudioBus.cpp:
(WebCore::AudioBus::copyFrom):
(WebCore):
(WebCore::AudioBus::sumFrom):
(WebCore::AudioBus::speakersCopyFrom):
(WebCore::AudioBus::speakersSumFrom):
(WebCore::AudioBus::discreteCopyFrom):
(WebCore::AudioBus::discreteSumFrom):
* platform/audio/AudioBus.h:
(AudioBus):
2013-02-15 Tony Chang <tony@chromium.org>
Padding and border changes doesn't trigger relayout of children
https://bugs.webkit.org/show_bug.cgi?id=109639
Reviewed by Kent Tamura.
In RenderBlock::layoutBlock, we only relayout our children if our logical width
changes. This misses cases where our logical width doesn't change (i.e., padding
or border changes), but our content width does change.
Also convert the needsLayout ASSERT into the if statement. This is because
RenderScrollbarPart can change border widths and not need a layout if the scrollbar
doesn't have a parent. In this case, we don't need to set any children for layout.
This is a more general case of bug 104997.
Test: fast/block/dynamic-padding-border.html
* rendering/RenderBox.cpp:
(WebCore::borderOrPaddingLogicalWidthChanged): Only check if the logical width changed.
(WebCore::RenderBox::styleDidChange): Drop the border-box condition since this can happen
even without border-box box sizing.
2013-02-15 Mark Lam <mark.lam@apple.com>
Split SQLStatement work between the frontend and backend.
https://bugs.webkit.org/show_bug.cgi?id=104751.
Reviewed by Geoffrey Garen.
This is part of the webdatabase refactoring for webkit2.
1. Copied SQLTransaction to SQLTransactionBackend, and then reduce the
2 to only handle frontend and backend work respectively.
2. Changed how statements are created.
- SQLTransaction::executeSQL() first creates a SQLStatement frontend
which encapsulates the 2 script callbacks. It then passes the
SQLStatement to the backend database to create the
SQLStatementBackend.
- The SQLStatementBackend manages all sqlite work.
3. Remove the Database::reportExecuteStatementResult() wrapper because
it is only needed in the backend now.
4. Added new files to the build / project files.
5. Updated / added comments about how the SQLStatement life-cycle works.
No new tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/Database.cpp:
* Modules/webdatabase/Database.h:
(Database):
(WebCore::Database::reportCommitTransactionResult):
* Modules/webdatabase/DatabaseBackend.h:
(DatabaseBackend):
* Modules/webdatabase/SQLStatement.cpp:
(WebCore::SQLStatement::create):
(WebCore::SQLStatement::SQLStatement):
(WebCore::SQLStatement::setBackend):
(WebCore::SQLStatement::hasCallback):
(WebCore::SQLStatement::hasErrorCallback):
(WebCore::SQLStatement::performCallback):
* Modules/webdatabase/SQLStatement.h:
(SQLStatement):
* Modules/webdatabase/SQLStatementBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/SQLStatement.cpp.
(WebCore::SQLStatementBackend::create):
(WebCore::SQLStatementBackend::SQLStatementBackend):
(WebCore::SQLStatementBackend::frontend):
(WebCore::SQLStatementBackend::sqlError):
(WebCore::SQLStatementBackend::sqlResultSet):
(WebCore::SQLStatementBackend::execute):
(WebCore::SQLStatementBackend::setDatabaseDeletedError):
(WebCore::SQLStatementBackend::setVersionMismatchedError):
(WebCore::SQLStatementBackend::setFailureDueToQuota):
(WebCore::SQLStatementBackend::clearFailureDueToQuota):
(WebCore::SQLStatementBackend::lastExecutionFailedDueToQuota):
* Modules/webdatabase/SQLStatementBackend.h: Copied from Source/WebCore/Modules/webdatabase/SQLStatement.h.
(SQLStatementBackend):
(WebCore::SQLStatementBackend::hasStatementCallback):
(WebCore::SQLStatementBackend::hasStatementErrorCallback):
* Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::deliverStatementCallback):
(WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
(WebCore::SQLTransaction::executeSQL):
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::doCleanup):
(WebCore::SQLTransactionBackend::currentStatement):
(WebCore::SQLTransactionBackend::enqueueStatementBackend):
(WebCore::SQLTransactionBackend::executeSQL):
(WebCore::SQLTransactionBackend::runStatements):
(WebCore::SQLTransactionBackend::getNextStatement):
(WebCore::SQLTransactionBackend::runCurrentStatementAndGetNextState):
(WebCore::SQLTransactionBackend::nextStateForCurrentStatementError):
* Modules/webdatabase/SQLTransactionBackend.h:
(SQLTransactionBackend):
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
2013-02-15 Elliott Sprehn <esprehn@chromium.org>
Rename HasCustomCallbacks to HasCustomStyleCallbacks
https://bugs.webkit.org/show_bug.cgi?id=109982
Reviewed by Eric Seidel.
Now that inside ChildFrameDisconnector we only call isFrameOwnerElement()
on elements that report having descendants (or themselves) have connected
frames we don't need to be as agressive about avoiding the virtual call
to isFrameOwnerElement() which lets us rename hasCustomCallbacks to
hasCustomStyleCallbacks to better reflect it's purpose.
* dom/ContainerNodeAlgorithms.h:
(WebCore::ChildFrameDisconnector::collectFrameOwners):
* dom/Element.cpp:
(WebCore::Element::styleForRenderer):
(WebCore::Element::recalcStyle):
(WebCore::Element::willRecalcStyle):
(WebCore::Element::didRecalcStyle):
(WebCore::Element::customStyleForRenderer):
* dom/Node.h:
(WebCore::Node::pseudoId):
(WebCore::Node::hasCustomStyleCallbacks):
(WebCore::Node::customPseudoId):
(WebCore::Node::setHasCustomStyleCallbacks):
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::PseudoElement):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::recalcStyle):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::HTMLFormControlElement):
* html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement):
(WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::HTMLIFrameElement):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::HTMLInputElement):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::HTMLOptionElement):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditElement::DateTimeEditElement):
* html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerElement::TextControlInnerElement):
(WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
* html/shadow/TextFieldDecorationElement.cpp:
(WebCore::TextFieldDecorationElement::TextFieldDecorationElement):
* svg/SVGElement.cpp:
(WebCore::SVGElement::SVGElement):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::SVGUseElement):
2013-02-15 Eric Carlson <eric.carlson@apple.com>
[Mac] remove wkCaptionAppearance from WebKitSystemInterface
https://bugs.webkit.org/show_bug.cgi?id=109996
Reviewed by Simon Fraser.
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2013-02-15 Andreas Kling <akling@apple.com>
Calling DOM Element.attributes shouldn't force creation of ElementData.
<http://webkit.org/b/109976>
Reviewed by Darin Adler.
Don't create ElementData for an Element unnecessarily just because someone calls .attributes on it.
Previously, JS like this would create empty ElementData when 'element' has no attributes:
for (i = 0; i < element.attributes.length; ++i)
doStuff(element.attributes[i]);
Make NamedNodeMap::length() short-circuit and return 0 if !Element::hasAttributes().
* dom/Element.cpp:
(WebCore::Element::attributes):
* dom/NamedNodeMap.cpp:
(WebCore::NamedNodeMap::length):
2013-02-15 Kentaro Hara <haraken@chromium.org>
[V8] An "EvenTarget" type in IDL should be converted to EventTarget*, not to Node*
https://bugs.webkit.org/show_bug.cgi?id=109895
Reviewed by Adam Barth.
Currently an "EventTarget" type in IDL is converted to Node*.
This is wrong because there are non-Node interfaces that inherit
a EventTarget. We should convert an "EventTarget" type to EventTarget*.
This will fix FIXMEs in CodeGeneratorV8.pm.
* bindings/scripts/CodeGeneratorV8.pm:
(GetNativeType):
(JSValueToNative):
2013-02-15 Simon Fraser <simon.fraser@apple.com>
REGRESSION (r142505?): Crashes in WebCore::ScrollingStateNode::appendChild when using back/forward buttons
https://bugs.webkit.org/show_bug.cgi?id=109826
<rdar://problem/13216100>
Reviewed by Beth Dakin.
Fix a crash when going Back on some pages with fixed position elements.
When a page was being restored from the page cache, and a layout from
FrameLoader::commitProvisionalLoad() caused us to try to register the fixed
position layer before the main scrolling layer, we'd crash trying to dereference
the root node.
Fix by bailing from ScrollingStateTree::attachNode() if we can't find the parent
node.
Test: platform/mac-wk2/tiled-drawing/null-parent-back-crash.html
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::attachNode):
(WebCore::ScrollingStateTree::stateNodeForID):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
2013-02-15 Simon Fraser <simon.fraser@apple.com>
Constrain fixed layers to the viewport, not the document
https://bugs.webkit.org/show_bug.cgi?id=109646
Reviewed by Beth Dakin.
It's bad to constrain position:fixed compositing layers to the
document rect, because their bounds will change every time the scroll
position changes, and we're not good currently at synchronizing scrolling
thread layer updates with main thread layer updates, so jiggles ensue.
Fix by constraining position:fixed layers to the viewport.
Test: compositing/geometry/limit-layer-bounds-fixed.html
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateCompositedBounds):
2013-02-13 Jer Noble <jer.noble@apple.com>
Add a CDMClient class which allows the CDM to query for the currently attached MediaPlayer.
https://bugs.webkit.org/show_bug.cgi?id=109702
Reviewed by Eric Carlson.
Some CDM implementations will need to work closely with an associated
MediaPlayer in order to generate key requests and provide keys. Add a
client protocol to be implemented by the MediaKeys object which can
provide access to the associated MediaPlayer if present.
* Modules/encryptedmedia/CDM.cpp:
(WebCore::CDM::CDM): Initialize the m_client ivar.
(WebCore::CDM::mediaPlayer): Pass to the client, if present.
* Modules/encryptedmedia/CDM.h:
(WebCore::CDM::client): Simple getter.
(WebCore::CDM::setClient): Simple setter.
* Modules/encryptedmedia/MediaKeys.cpp:
(WebCore::MediaKeys::MediaKeys): Initialize the m_mediaElement ivar
and call setClient() on the passed in CDM.
(WebCore::MediaKeys::setMediaElement): Simple setter.
(WebCore::MediaKeys::cdmMediaPlayer): Retrieve the MediaPlayer from
the m_mediaElement if present.
* Modules/encryptedmedia/MediaKeys.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement): Call setMediaKeys(0)
to clear the mediaElement in any associated MediaKeys.
(WebCore::HTMLMediaElement::setMediaKeys): Clear the mediaElement on
any associated MediaKeys, and set the mediaElement on the newly
associated MediaKeys.
2013-02-15 Simon Fraser <simon.fraser@apple.com>
drop-shadow filter with overflow:hidden child misbehaves
https://bugs.webkit.org/show_bug.cgi?id=109783
Reviewed by Dean Jackson.
The change in r112745 was not sufficient; it failed to account
for descendant layers that needed to not clipping to avoid artefacts
with filters like drop-shadow.
Test: css3/filters/filter-repaint-shadow-layer-child.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents): Remove the useClipRect bool.
Replace it with a clipToDirtyRect member on the LayerPaintingInfo, which
gets passed to descendants. Remove some "Restore the clip" comments that added
nothing.
* rendering/RenderLayer.h:
(WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
(LayerPaintingInfo):
2013-02-15 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143066.
http://trac.webkit.org/changeset/143066
https://bugs.webkit.org/show_bug.cgi?id=109986
Broke the Apple Lion build (among others). (Requested by
ddkilzer on #webkit).
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::attachWrapper):
* accessibility/mac/WebAccessibilityObjectWrapper.h:
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper unregisterUniqueIdForUIElement]):
(-[WebAccessibilityObjectWrapper detach]):
(-[WebAccessibilityObjectWrapper accessibilityObject]):
(-[WebAccessibilityObjectWrapper attachmentView]):
(CFAutoreleaseHelper):
(AXObjectIsTextMarker):
(AXObjectIsTextMarkerRange):
(AXTextMarkerRange):
(AXTextMarkerRangeStart):
(AXTextMarkerRangeEnd):
(SearchKeyEntry):
(createAccessibilitySearchKeyMap):
(accessibilitySearchKeyForString):
(textMarkerForVisiblePosition):
(-[WebAccessibilityObjectWrapper textMarkerForVisiblePosition:]):
(visiblePositionForTextMarker):
(-[WebAccessibilityObjectWrapper visiblePositionForTextMarker:]):
(visiblePositionForStartOfTextMarkerRange):
(visiblePositionForEndOfTextMarkerRange):
(textMarkerRangeFromMarkers):
(AXAttributedStringRangeIsValid):
(AXAttributeStringSetFont):
(CreateCGColorIfDifferent):
(AXAttributeStringSetColor):
(AXAttributeStringSetNumber):
(AXAttributeStringSetStyle):
(AXAttributeStringSetBlockquoteLevel):
(AXAttributeStringSetSpelling):
(AXAttributeStringSetHeadingLevel):
(AXAttributeStringSetElement):
(AXAttributedStringAppendText):
(nsStringForReplacedNode):
(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]):
(textMarkerRangeFromVisiblePositions):
(-[WebAccessibilityObjectWrapper textMarkerRangeFromVisiblePositions:endPosition:]):
(-[WebAccessibilityObjectWrapper accessibilityActionNames]):
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper visiblePositionRangeForTextMarkerRange:]):
(-[WebAccessibilityObjectWrapper renderWidgetChildren]):
(-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]):
(convertToVector):
(convertToNSArray):
(-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]):
(-[WebAccessibilityObjectWrapper position]):
(createAccessibilityRoleMap):
(roleValueToNSString):
(-[WebAccessibilityObjectWrapper role]):
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper roleDescription]):
(-[WebAccessibilityObjectWrapper scrollViewParent]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityFocusedUIElement]):
(-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
(-[WebAccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
(-[WebAccessibilityObjectWrapper accessibilityIsIgnored]):
(-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityPerformPressAction]):
(-[WebAccessibilityObjectWrapper accessibilityPerformIncrementAction]):
(-[WebAccessibilityObjectWrapper accessibilityPerformDecrementAction]):
(-[WebAccessibilityObjectWrapper accessibilityPerformShowMenuAction]):
(-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):
(-[WebAccessibilityObjectWrapper accessibilityPerformAction:]):
(-[WebAccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
(rendererForView):
(-[WebAccessibilityObjectWrapper _accessibilityParentForSubview:]):
(-[WebAccessibilityObjectWrapper accessibilityActionDescription:]):
(-[WebAccessibilityObjectWrapper doAXAttributedStringForRange:]):
(-[WebAccessibilityObjectWrapper _convertToNSRange:]):
(-[WebAccessibilityObjectWrapper _indexForTextMarker:]):
(-[WebAccessibilityObjectWrapper _textMarkerForIndex:]):
(-[WebAccessibilityObjectWrapper doAXRTFForRange:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
(-[WebAccessibilityObjectWrapper accessibilitySupportsOverriddenAttributes]):
(-[WebAccessibilityObjectWrapper accessibilityShouldUseUniqueId]):
(-[WebAccessibilityObjectWrapper accessibilityIndexOfChild:]):
(-[WebAccessibilityObjectWrapper accessibilityArrayAttributeCount:]):
(-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
* accessibility/mac/WebAccessibilityObjectWrapperMac.h: Removed.
* accessibility/mac/WebAccessibilityObjectWrapperMac.m: Removed.
2013-02-15 Emil A Eklund <eae@chromium.org>
Change MouseRelatedEvent to use LayoutPoint::scale
https://bugs.webkit.org/show_bug.cgi?id=109979
Reviewed by Dimitri Glazkov.
Change MouseRelatedEvent::MouseRelatedEvent to use LayoutPoint::
scale to adjust location and scroll offset for scale factor and
zooming.
No new tests, no change in functionality.
* dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::MouseRelatedEvent):
2013-02-15 Chris Fleizach <cfleizach@apple.com>
AX: Split WebAccessibilityObjectWrapper so code can be shared with iOS
https://bugs.webkit.org/show_bug.cgi?id=109849
Reviewed by David Kilzer.
Split up the WebAccessibilityObjectWrapper so that iOS can share more
code with MacOS. I imagine over time, more code will move into this base class,
but for now this will be a good start.
A base class called WebAccessibilityObjectWrapper now exists, and Mac has a subclass
of that. iOS will be able to do the same.
* WebCore.xcodeproj/project.pbxproj:
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::attachWrapper):
* accessibility/mac/WebAccessibilityObjectWrapper.h:
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper detach]):
(-[WebAccessibilityObjectWrapper attachmentView]):
(-[WebAccessibilityObjectWrapper accessibilityObject]):
(-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]):
(-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
(-[WebAccessibilityObjectWrapper accessibilityTitle]):
(-[WebAccessibilityObjectWrapper accessibilityDescription]):
(-[WebAccessibilityObjectWrapper accessibilityHelpText]):
* accessibility/mac/WebAccessibilityObjectWrapperMac.h: Added.
* accessibility/mac/WebAccessibilityObjectWrapperMac.m: Added.
(std):
(-[WebAccessibilityObjectWrapperMac detach]):
(-[WebAccessibilityObjectWrapperMac attachmentView]):
(CFAutoreleaseHelper):
(AXObjectIsTextMarker):
(AXObjectIsTextMarkerRange):
(AXTextMarkerRange):
(AXTextMarkerRangeStart):
(AXTextMarkerRangeEnd):
(SearchKeyEntry):
(createAccessibilitySearchKeyMap):
(accessibilitySearchKeyForString):
(textMarkerForVisiblePosition):
(-[WebAccessibilityObjectWrapperMac textMarkerForVisiblePosition:]):
(visiblePositionForTextMarker):
(-[WebAccessibilityObjectWrapperMac visiblePositionForTextMarker:]):
(visiblePositionForStartOfTextMarkerRange):
(visiblePositionForEndOfTextMarkerRange):
(textMarkerRangeFromMarkers):
(AXAttributedStringRangeIsValid):
(AXAttributeStringSetFont):
(CreateCGColorIfDifferent):
(AXAttributeStringSetColor):
(AXAttributeStringSetNumber):
(AXAttributeStringSetStyle):
(AXAttributeStringSetBlockquoteLevel):
(AXAttributeStringSetSpelling):
(AXAttributeStringSetHeadingLevel):
(AXAttributeStringSetElement):
(AXAttributedStringAppendText):
(nsStringForReplacedNode):
(-[WebAccessibilityObjectWrapperMac doAXAttributedStringForTextMarkerRange:]):
(textMarkerRangeFromVisiblePositions):
(-[WebAccessibilityObjectWrapperMac textMarkerRangeFromVisiblePositions:endPosition:]):
(-[WebAccessibilityObjectWrapperMac accessibilityActionNames]):
(-[WebAccessibilityObjectWrapperMac additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapperMac accessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapperMac visiblePositionRangeForTextMarkerRange:]):
(-[WebAccessibilityObjectWrapperMac renderWidgetChildren]):
(-[WebAccessibilityObjectWrapperMac remoteAccessibilityParentObject]):
(convertToVector):
(convertToNSArray):
(-[WebAccessibilityObjectWrapperMac textMarkerRangeForSelection]):
(-[WebAccessibilityObjectWrapperMac position]):
(createAccessibilityRoleMap):
(roleValueToNSString):
(-[WebAccessibilityObjectWrapperMac role]):
(-[WebAccessibilityObjectWrapperMac subrole]):
(-[WebAccessibilityObjectWrapperMac roleDescription]):
(-[WebAccessibilityObjectWrapperMac scrollViewParent]):
(-[WebAccessibilityObjectWrapperMac titleTagShouldBeUsedInDescriptionField]):
(-[WebAccessibilityObjectWrapperMac accessibilityTitle]):
(-[WebAccessibilityObjectWrapperMac accessibilityDescription]):
(-[WebAccessibilityObjectWrapperMac accessibilityHelpText]):
(-[WebAccessibilityObjectWrapperMac accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapperMac accessibilityFocusedUIElement]):
(-[WebAccessibilityObjectWrapperMac accessibilityHitTest:]):
(-[WebAccessibilityObjectWrapperMac accessibilityIsAttributeSettable:]):
(-[WebAccessibilityObjectWrapperMac accessibilityIsIgnored]):
(-[WebAccessibilityObjectWrapperMac accessibilityParameterizedAttributeNames]):
(-[WebAccessibilityObjectWrapperMac accessibilityPerformPressAction]):
(-[WebAccessibilityObjectWrapperMac accessibilityPerformIncrementAction]):
(-[WebAccessibilityObjectWrapperMac accessibilityPerformDecrementAction]):
(-[WebAccessibilityObjectWrapperMac accessibilityPerformShowMenuAction]):
(-[WebAccessibilityObjectWrapperMac accessibilityShowContextMenu]):
(-[WebAccessibilityObjectWrapperMac accessibilityPerformAction:]):
(-[WebAccessibilityObjectWrapperMac accessibilitySetValue:forAttribute:]):
(rendererForView):
(-[WebAccessibilityObjectWrapperMac _accessibilityParentForSubview:]):
(-[WebAccessibilityObjectWrapperMac accessibilityActionDescription:]):
(-[WebAccessibilityObjectWrapperMac doAXAttributedStringForRange:]):
(-[WebAccessibilityObjectWrapperMac _convertToNSRange:]):
(-[WebAccessibilityObjectWrapperMac _indexForTextMarker:]):
(-[WebAccessibilityObjectWrapperMac _textMarkerForIndex:]):
(-[WebAccessibilityObjectWrapperMac doAXRTFForRange:]):
(-[WebAccessibilityObjectWrapperMac accessibilityAttributeValue:forParameter:]):
(-[WebAccessibilityObjectWrapperMac accessibilitySupportsOverriddenAttributes]):
(-[WebAccessibilityObjectWrapperMac accessibilityShouldUseUniqueId]):
(-[WebAccessibilityObjectWrapperMac accessibilityIndexOfChild:]):
(-[WebAccessibilityObjectWrapperMac accessibilityArrayAttributeCount:]):
(-[WebAccessibilityObjectWrapperMac accessibilityArrayAttributeValues:index:maxCount:]):
([WebAccessibilityObjectWrapperMac accessibilitySetShouldRepostNotifications:]):
(-[WebAccessibilityObjectWrapperMac accessibilityPostedNotification:]):
2013-02-15 Elliott Sprehn <esprehn@chromium.org>
RenderQuote should not mark renderers as needing layout during layout
https://bugs.webkit.org/show_bug.cgi?id=109876
Reviewed by Ojan Vafai.
Marking RenderQuotes as needing pref width recalcs and layouts during a
layout is dangerous since an ancestor may mark itself as having completed
layout, but then some subtree still thinks it needs layout.
Instead, since the only time we create RenderQuote instances is inside
PseudoElement, we can call attachQuote inside PseudoElement::attach during
the regular tree mutating cycle. We can then use RenderQuote::styleDidChange
to update the kind of quotes on normal style changes.
This makes RenderQuote behave much more similarly to DOM nodes and means
we no longer need to set dirty bits during layout.
Test: fast/css-generated-content/quote-layout-focus-crash.html
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::attach): Now call attachQuote().
* rendering/RenderQuote.cpp:
(WebCore::RenderQuote::~RenderQuote):
(WebCore::RenderQuote::willBeRemovedFromTree):
(WebCore::RenderQuote::styleDidChange):
(WebCore::RenderQuote::updateText):
(WebCore::RenderQuote::attachQuote):
(WebCore::RenderQuote::detachQuote):
(WebCore::RenderQuote::updateDepth):
* rendering/RenderQuote.h:
(RenderQuote):
2013-02-15 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r143044.
http://trac.webkit.org/changeset/143044
https://bugs.webkit.org/show_bug.cgi?id=109974
broke windows build (Requested by kling on #webkit).
* dom/DocumentSharedObjectPool.cpp:
(WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
* dom/Element.cpp:
(WebCore::sizeForShareableElementDataWithAttributeCount):
(WebCore::ShareableElementData::ShareableElementData):
(WebCore::ShareableElementData::~ShareableElementData):
(WebCore::UniqueElementData::UniqueElementData):
* dom/Element.h:
(WebCore::ShareableElementData::immutableAttributeArray):
(ShareableElementData):
(WebCore::ElementData::attributeItem):
2013-02-15 Adam Barth <abarth@webkit.org>
Enable the preload scanner on the background parser thread
https://bugs.webkit.org/show_bug.cgi?id=108027
Reviewed by Tony Gentilcore.
The patch causes us to pass all the fast/preloader tests with the
threaded parser enabled.
This patch wires up the BackgroundHTMLParser to the
TokenPreloadScanner. Currently, we bail out of preload scanning if we
encounter a document.write becaues we don't know how to rewind the
preload scanner, but that's something we can tune in the future.
The BackgroundHTMLParser delivers the preloads to the
HTMLDocumentParser together with the token stream. If the
HTMLDocumentParser isn't able to use the token stream immediately, it
kicks off the preloads.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::checkThatPreloadsAreSafeToSendToAnotherThread):
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::resumeFrom):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
* html/parser/BackgroundHTMLParser.h:
(Configuration):
- We need to add a struct for the create function because the
number of arguments exceeds the limits of Functional.h.
(BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::create):
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::scanCommon):
(WebCore::CSSPreloadScanner::scan):
(WebCore::CSSPreloadScanner::emitRule):
- We need to use a new string here so that the string is safe to
send to another thread.
* html/parser/CSSPreloadScanner.h:
(CSSPreloadScanner):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::startBackgroundParser):
- Following the example of the XSSAuditor, we create the
TokenPreloadScanner on the main thread and then send it to the
background thread for operation.
* html/parser/HTMLDocumentParser.h:
(WebCore):
(ParsedChunk):
* html/parser/HTMLParserOptions.h:
(HTMLParserOptions):
- We need to add a default constructor so that the
HTMLDocumentParser can create an empty
BackgroundHTMLParser::Configuration struct.
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::scan):
(WebCore::TokenPreloadScanner::scanCommon):
(WebCore::HTMLPreloadScanner::scan):
* html/parser/HTMLPreloadScanner.h:
(TokenPreloadScanner):
(WebCore::TokenPreloadScanner::isSafeToSendToAnotherThread):
* html/parser/HTMLResourcePreloader.cpp:
(WebCore::HTMLResourcePreloader::takeAndPreload):
(WebCore):
* html/parser/HTMLResourcePreloader.h:
(WebCore::PreloadRequest::PreloadRequest):
(WebCore):
(HTMLResourcePreloader):
2013-02-15 Ryosuke Niwa <rniwa@webkit.org>
Build fix after r143030. We need to keep updatedRange around until createMarkupInternal returns.
* editing/markup.cpp:
(WebCore::createMarkup):
2013-02-15 Rik Cabanier <cabanier@adobe.com>
Add platform support for -webkit-background-blend-mode to CG context
https://bugs.webkit.org/show_bug.cgi?id=108549
Reviewed by Dean Jackson.
Tests: css3/compositing/effect-background-blend-mode-stacking.html
css3/compositing/effect-background-blend-mode.html
This patch adds support for blending on background images to the Core Graphics port of WebKit.
* platform/graphics/CrossfadeGeneratedImage.cpp: Added interface change for blending.
(WebCore::CrossfadeGeneratedImage::drawPattern):
* platform/graphics/CrossfadeGeneratedImage.h: Added interface change for blending.
(CrossfadeGeneratedImage):
* platform/graphics/GeneratedImage.h: Added interface change for blending.
(GeneratedImage):
* platform/graphics/GeneratorGeneratedImage.cpp: Added interface change for blending.
(WebCore::GeneratorGeneratedImage::drawPattern):
* platform/graphics/GeneratorGeneratedImage.h: Added interface change for blending.
(GeneratorGeneratedImage):
* platform/graphics/GraphicsContext.cpp: Added interface change for blending and passes blend mode to image object.
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::blendModeOperation):
(WebCore):
* platform/graphics/GraphicsContext.h: Added interface change for blending.
(GraphicsContext):
* platform/graphics/Image.cpp: Added interface change for blending and passed it to graphics layer.
(WebCore::Image::drawTiled):
* platform/graphics/Image.h: Added interface change for blending.
(Image):
* platform/graphics/cg/ImageCG.cpp: Added interface change for blending and passed it to OS.
(WebCore::Image::drawPattern):
* rendering/RenderBoxModelObject.cpp: Passed blend mode when drawing background images.
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* platform/graphics/cairo/ImageCairo.cpp: Added interface change for blending.
(WebCore::Image::drawPattern):
* platform/graphics/qt/ImageQt.cpp: Added interface change for blending.
(WebCore::Image::drawPattern):
* platform/graphics/skia/ImageSkia.cpp: Added interface change for blending.
(WebCore::Image::drawPattern):
* rendering/RenderBoxModelObject.cpp: Added interface change for blending.
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* svg/graphics/SVGImageForContainer.cpp: Added interface change for blending.
(WebCore::SVGImageForContainer::drawPattern):
* svg/graphics/SVGImageForContainer.h: Added interface change for blending.
2013-02-14 Emil A Eklund <eae@chromium.org>
Clamp span value in RenderTableCell::parse[Col|Row]SpanFromDOM
https://bugs.webkit.org/show_bug.cgi?id=109878
Reviewed by Abhishek Arya.
Test: fast/table/colspan-huge-number.html
Clamp colspan and rowspan values to their respective maximum
supported values.
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::parseColSpanFromDOM):
(WebCore::RenderTableCell::parseRowSpanFromDOM):
2013-02-15 Andreas Kling <akling@apple.com>
ShareableElementData should use zero-length array for storage.
<http://webkit.org/b/109959>
Reviewed by Anders Carlsson.
Use a zero-length Attribute array instead of always casting from void* to an array.
It was done this way originally because I didn't know we could sidestep the MSVC
build error with some #pragma hackery.
* dom/DocumentSharedObjectPool.cpp:
(WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
* dom/Element.cpp:
(WebCore::sizeForShareableElementDataWithAttributeCount):
(WebCore::ShareableElementData::ShareableElementData):
(WebCore::ShareableElementData::~ShareableElementData):
(WebCore::UniqueElementData::UniqueElementData):
* dom/Element.h:
(ShareableElementData):
(WebCore::ElementData::attributeItem):
2013-02-14 Ojan Vafai <ojan@chromium.org>
Implement RenderGrid::computeIntrinsicLogicalWidths
https://bugs.webkit.org/show_bug.cgi?id=109881
Reviewed by Tony Chang.
For now this is not observable due to the FIXMEs for unimplemented bits
of computePreferredLogicalWidths. But, soon, I'll be removing the computePreferredLogicalWidths
override entirely and instead use RenderBlock's, which will also address the
RenderGrid FIXMEs.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
const_cast the usages of m_grid. Alternately, we could stack allocate it, but there's disagreement on
whether that's the right choice. See https://bugs.webkit.org/show_bug.cgi?id=109880.
(WebCore::RenderGrid::computePreferredLogicalWidths):
* rendering/RenderGrid.h:
2013-02-15 Xueqing Huang <huangxueqing@baidu.com>
Flexbox should ignore firstLine pseudo element.
https://bugs.webkit.org/show_bug.cgi?id=104485
Reviewed by Tony Chang.
Spec[1] said that "None of the properties defined in this module
apply to '::first-line' or '::first-letter' pseudo-elements." and
css2[2] define "The :first-line pseudo-element can only be attached
to a block container element."
[1]http://dev.w3.org/csswg/css3-flexbox/#display-flex
[2]http://www.w3.org/TR/CSS2/selector.html#first-line-pseudo
tests:
css3/flexbox/flexbox-ignore-firstLine.html
css3/flexbox/flexitem-firstLine-valid.html
css3/flexbox/inline-flexbox-ignore-firstLine.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::firstLineBlock):
2013-02-15 Alec Flett <alecflett@chromium.org>
IndexedDB: Implement SharedBuffer version of put()
https://bugs.webkit.org/show_bug.cgi?id=109092
Reviewed by Adam Barth.
Switch IDBDatabaseBackendInterface::put over
to SharedBuffer, to avoid buffer copies of the value.
No new tests, this is a refactor.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::putRecord):
* Modules/indexeddb/IDBBackingStore.h:
(WebCore):
(IDBBackingStore):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::PutOperation::create):
(WebCore::PutOperation::PutOperation):
(PutOperation):
(WebCore::IDBDatabaseBackendImpl::put):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(WebCore):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::put):
2013-02-15 Anders Carlsson <andersca@apple.com>
Implement StorageAreaProxy::length
https://bugs.webkit.org/show_bug.cgi?id=109962
Reviewed by Andreas Kling.
Export a symbol needed by WebKit2.
* WebCore.exp.in:
2013-02-15 Anders Carlsson <andersca@apple.com>
Remove const from a bunch of StorageArea member functions
https://bugs.webkit.org/show_bug.cgi?id=109957
Reviewed by Beth Dakin.
StorageArea is an abstract base class, and its subclasses might want to mutate the object
when certain member functions are called so remove const from all member functions.
* storage/StorageArea.h:
(WebCore):
(StorageArea):
(WebCore::StorageArea::~StorageArea):
(WebCore::StorageArea::incrementAccessCount):
(WebCore::StorageArea::decrementAccessCount):
(WebCore::StorageArea::closeDatabaseIfIdle):
* storage/StorageAreaImpl.cpp:
(WebCore::StorageAreaImpl::canAccessStorage):
(WebCore::StorageAreaImpl::length):
(WebCore::StorageAreaImpl::key):
(WebCore::StorageAreaImpl::getItem):
(WebCore::StorageAreaImpl::contains):
(WebCore::StorageAreaImpl::memoryBytesUsedByCache):
* storage/StorageAreaImpl.h:
(StorageAreaImpl):
2013-02-13 Ryosuke Niwa <rniwa@webkit.org>
DeleteButtonController::enable and disable should be called via a RAII object
https://bugs.webkit.org/show_bug.cgi?id=109550
Reviewed by Enrica Casucci.
Added DeleteButtonControllerDisableScope, a friend class of DeleteButtonController,
and made DeleteButtonController::enable/disable private.
* dom/ContainerNode.cpp:
* editing/CompositeEditCommand.cpp:
(WebCore::EditCommandComposition::unapply):
(WebCore::EditCommandComposition::reapply):
(WebCore::CompositeEditCommand::apply):
* editing/DeleteButtonController.h:
(WebCore):
(DeleteButtonController):
(DeleteButtonControllerDisableScope):
(WebCore::DeleteButtonControllerDisableScope::DeleteButtonControllerDisableScope):
(WebCore::DeleteButtonControllerDisableScope::~DeleteButtonControllerDisableScope):
* editing/markup.cpp:
(WebCore::createMarkup):
(WebCore::createFragmentFromNodes):
2013-02-15 Max Vujovic <mvujovic@adobe.com>
Add code from other branch.
[CSS Shaders] Parse src property in @-webkit-filter at-rules
https://bugs.webkit.org/show_bug.cgi?id=109770
Reviewed by Dean Jackson.
This patch implements the parsing for the CSS src property in @-webkit-filter at-rules.
The Filter Effects spec [1] specifies its syntax:
src: [ <uri> [format(<string>)]?]#
In practice, it can look like:
src: url(shader.vs) format('x-shader/x-vertex'),
url(shader.fs) format('x-shader/x-fragment');
This src property is similar to the src property in CSS font-face rules, but a little
different. The CSS Fonts spec [2] specifies:
src: [ <uri> [format(<string>#)]? | <font-face-name> ]#
The syntax for a <font-face-name> is a unique font face name enclosed by "local("
and ")".
Unlike the filter src property, the font face src property accepts the local function
[e.g. src: local("SomeFont");]. Also, the font face src property accepts a list of strings
instead of just one string in its format function.
[1]: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#custom-filter-src
[2]: http://www.w3.org/TR/css3-fonts/#src-desc
Tests: css3/filters/custom-with-at-rule-syntax/parsing-src-property-invalid.html
css3/filters/custom-with-at-rule-syntax/parsing-src-property-valid.html
* css/CSSGrammar.y.in:
Set (and unset) a flag called "m_inFilterRule", which tells us if we are in a
@-webkit-filter at-rule or in a @font-face at-rule when we encounter a src property.
We parse the two variants of the src property separately so that we can create different
objects (WebKitCSSShaderValue vs. CSSFontFaceSrcValue) and because their syntax is a
little different.
* css/CSSParser.cpp:
(WebCore::CSSParser::CSSParser):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFilterRuleSrcUriAndFormat):
Parses a URI and format pair found in the @-webkit-filter src property.
(WebCore::CSSParser::parseFilterRuleSrc):
Parse the @-webkit-filter src property.
* css/CSSParser.h:
(CSSParser):
* css/WebKitCSSShaderValue.cpp:
(WebCore::WebKitCSSShaderValue::customCssText):
WebKitCSSShaderValue now has an m_format member, which needs to be included in its
cssText.
(WebCore::WebKitCSSShaderValue::reportDescendantMemoryUsage):
* css/WebKitCSSShaderValue.h:
(WebCore::WebKitCSSShaderValue::format):
(WebCore::WebKitCSSShaderValue::setFormat):
(WebKitCSSShaderValue):
2013-02-15 Eric Carlson <eric.carlson@apple.com>
Crash occurs at WebCore::TextTrackList::length() when enabling closed captions in movie
https://bugs.webkit.org/show_bug.cgi?id=109886
Reviewed by Dean Jackson.
No new tests, media/media-captions.html does not crash with this change.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Early return when
m_textTracks is NULL.
2013-02-15 Adam Barth <abarth@webkit.org>
TokenPreloadScanner should be able to scan CompactHTMLTokens
https://bugs.webkit.org/show_bug.cgi?id=109861
Reviewed by Eric Seidel.
This patch moves the main scanning logic for the TokenPreloadScanner to
a templated scanCommon routine that can scan either an HTMLToken or a
CompactHTMLToken. This patch will let the BackgroundHTMLParser preload
scan its CompactHTMLTokens.
* html/parser/CSSPreloadScanner.cpp:
(WebCore):
(WebCore::CSSPreloadScanner::scanCommon):
(WebCore::CSSPreloadScanner::scan):
* html/parser/CSSPreloadScanner.h:
(CSSPreloadScanner):
- Tweak the CSSPreloadScanner API slightly to make it easier to
call from templated code.
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::tagIdFor):
(WebCore):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(TokenPreloadScanner::StartTagScanner):
(WebCore::TokenPreloadScanner::scan):
(WebCore::TokenPreloadScanner::scanCommon):
(WebCore::TokenPreloadScanner::updatePredictedBaseURL):
(WebCore::HTMLPreloadScanner::scan):
* html/parser/HTMLPreloadScanner.h:
(TokenPreloadScanner):
2013-02-15 Alexis Menard <alexis@webkit.org>
WebKit shouldn't accept "none, none" in transition shorthand property.
https://bugs.webkit.org/show_bug.cgi?id=108751
Reviewed by Dean Jackson.
http://dev.w3.org/csswg/css3-transitions/#transition-shorthand-property
specifies that if there is more than one transition defined in the
shorthand and any of them has a value of 'none' then the declaration is
invalid. This patch fixes the problem by passing a parsing context to
track if a keyword has been set for the transition-property and if so
then use it to invalidate or not the declaration.
Test: transitions/transitions-parsing.html
* css/CSSParser.cpp:
(AnimationParseContext):
(WebCore::AnimationParseContext::AnimationParseContext):
(WebCore::AnimationParseContext::commitFirstAnimation): track whether
it's the first <single-transition/animation> or not defined in the
shorthand.
(WebCore::AnimationParseContext::hasCommittedFirstAnimation):
(WebCore::AnimationParseContext::commitAnimationPropertyKeywordInShorthand):
In the shorthand as soon as a keyword has been found then the parsing
is 'finished', if any other animation/transition declaration part of
the shorthand are with a keyword then it's invalid.
(WebCore::AnimationParseContext::animationPropertyKeywordInShorthandAllowed):
(WebCore::AnimationParseContext::hasSeenAnimationPropertyKeyword):
(WebCore::AnimationParseContext::sawAnimationPropertyKeyword):
(WebCore):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseAnimationShorthand):
(WebCore::CSSParser::parseTransitionShorthand):
(WebCore::CSSParser::parseAnimationProperty):
* css/CSSParser.h:
(WebCore):
2013-02-15 Andreas Kling <akling@apple.com>
ElementData: Move leafy things out of the base class.
<http://webkit.org/b/109888>
Reviewed by Antti Koivisto.
- Moved functions for mutating/adding/removing attributes into UniqueElementData.
Attempts to modify shared element data will now fail at compile-time.
- Removed mutableAttributeVector() and have call sites access the vector directly.
- Move immutableAttributeArray() to ShareableElementData.
- Move some function bodies from Element.h to Element.cpp since all clients are in there.
* dom/Element.cpp:
(WebCore::Element::addAttributeInternal):
(WebCore::ShareableElementData::ShareableElementData):
(WebCore::UniqueElementData::makeShareableCopy):
(WebCore::UniqueElementData::addAttribute):
(WebCore::UniqueElementData::removeAttribute):
(WebCore::ElementData::reportMemoryUsage):
(WebCore::UniqueElementData::getAttributeItem):
(WebCore::UniqueElementData::attributeItem):
* dom/Element.h:
(ElementData):
(WebCore::ShareableElementData::immutableAttributeArray):
(ShareableElementData):
(UniqueElementData):
(WebCore::ElementData::length):
(WebCore::ElementData::attributeItem):
2013-02-15 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Enable shape-inside support for circles
https://bugs.webkit.org/show_bug.cgi?id=109713
Reviewed by Dirk Schulze.
Removed the test that disabled circle values for shape-inside.
The remaining support for circles, which is based on rounded rectangles
whose width/height is equal to their radiusX/radiusY, has not changed.
Test: fast/exclusions/shape-inside/shape-inside-circle.html
* rendering/ExclusionShapeInsideInfo.h:
(WebCore::ExclusionShapeInsideInfo::isEnabledFor): Now only disallows ellipse.
2013-02-15 Christophe Dumez <ch.dumez@sisa.samsung.com>
[Soup] Leverage new soup_cookie_jar_get_cookie_list() API
https://bugs.webkit.org/show_bug.cgi?id=109931
Reviewed by Kenneth Rohde Christiansen.
In several cases, the CookieJarSoup implementation was retrieving / copying ALL the
cookies using soup_cookie_jar_all_cookies() and then using soup_cookie_applies_to_uri()
to filter out cookies it is not interested in. This was inefficient.
In libsoup 2.40, soup_cookie_jar_get_cookie_list() was introduced to retrieve only the
cookies that apply to a given URI. This patch leverages this new API in CookieJarSoup's
getRawCookies() and deleteCookie(). This way, only the cookies we are interested in
are retrieved and copied. Libsoup does not need to iterate over all the cookies itself
because it keeps the cookies in a hash table using the host names as key.
No new tests, no behavior change.
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::getRawCookies):
(WebCore::deleteCookie):
2013-02-15 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Added an option to split Elements and Sources sidebars in two panes.
https://bugs.webkit.org/show_bug.cgi?id=109298.
Reviewed by Vsevolod Vlasov.
Introduced the "Split sidebar" context menu option that splits the horizontal sidebar into two panes.
The width split ratio is 1:1 by default and is preserved when the Inspector window is resized.
Elements sidebar is split into two tabbed panes, Sources sidebar is split into a pane stack and a tabbed pane.
No new tests.
* inspector/front-end/DOMBreakpointsSidebarPane.js:
(WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype._reattachBody):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.get this):
(WebInspector.ElementsPanel):
(WebInspector.ElementsPanel.prototype._sidebarContextMenuEventFired):
(WebInspector.ElementsPanel.prototype._populateContextMenuForSidebar.toggleSetting):
(WebInspector.ElementsPanel.prototype.get _arrangeSidebarPanes.get this):
(WebInspector.ElementsPanel.prototype.addExtensionSidebarPane):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype._onCreateSidebarPane):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
(WebInspector.ScriptsPanel.prototype._contextMenuEventFired):
(WebInspector.ScriptsPanel.prototype._sidebarContextMenuEventFired):
(WebInspector.ScriptsPanel.prototype._populateContextMenuForSidebar.toggleSetting):
(WebInspector.ScriptsPanel.prototype.get _arrangeSidebarPanes.get this):
* inspector/front-end/SidebarPane.js:
(WebInspector.SidebarPane):
(WebInspector.SidebarPane.prototype.expand):
(WebInspector.SidebarPane.prototype.onContentReady):
(WebInspector.SidebarPane.prototype._setExpandCallback):
(WebInspector.SidebarPane.prototype.wasShown):
(WebInspector.SidebarPaneTitle):
(WebInspector.SidebarPaneTitle.prototype._expand):
(WebInspector.SidebarPaneTitle.prototype._collapse):
(WebInspector.SidebarPaneTitle.prototype._toggleExpanded):
(WebInspector.SidebarPaneTitle.prototype._onTitleKeyDown):
(WebInspector.SidebarPaneStack):
(WebInspector.SidebarPaneStack.prototype.addPane):
(WebInspector.SidebarTabbedPane):
(WebInspector.SidebarTabbedPane.prototype.addPane):
* inspector/front-end/SidebarView.js:
* inspector/front-end/SplitView.js:
(WebInspector.SplitView):
(WebInspector.SplitView.prototype.get mainElement):
(WebInspector.SplitView.prototype.get sidebarElement):
2013-02-15 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Several consecutive Backspace or Delete strikes should not be marked as undoable state.
https://bugs.webkit.org/show_bug.cgi?id=109915
Reviewed by Pavel Feldman.
Extracted _isEditRangeUndoBoundary() and _isEditRangeAdjacentToLastCommand() in TextEditorModel
to detect if markUndoableState() call is needed before and after editRange.
* inspector/front-end/TextEditorModel.js:
(WebInspector.TextRange.prototype.immediatelyPrecedes):
(WebInspector.TextRange.prototype.immediatelyFollows):
(WebInspector.TextEditorModel.endsWithBracketRegex.):
2013-02-15 Andrey Adaikin <aandrey@chromium.org>
Fix inconsistency in WebGLRenderingContext.idl for getAttribLocation
https://bugs.webkit.org/show_bug.cgi?id=109892
Reviewed by Kentaro Hara.
* html/canvas/WebGLRenderingContext.idl:
2013-02-15 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] show replay log grouped by draw calls
https://bugs.webkit.org/show_bug.cgi?id=109592
Reviewed by Pavel Feldman.
Show canvas capturing log grouped by drawing calls.
Drive-by: extended Array.prototype with a handy peekLast function.
Drive-by: removed code dups in few places.
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView):
(WebInspector.CanvasProfileView.prototype.dispose):
(WebInspector.CanvasProfileView.prototype._onReplayStepClick):
(WebInspector.CanvasProfileView.prototype._onReplayDrawingCallClick):
(WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
(WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
(WebInspector.CanvasProfileView.prototype._replayTraceLog):
(WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
(WebInspector.CanvasProfileView.prototype._selectedCallIndex):
(WebInspector.CanvasProfileView.prototype._selectedDrawCallGroupIndex):
(WebInspector.CanvasProfileView.prototype._appendCallNode):
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid.prototype.setColumnVisible):
(WebInspector.DataGridNode.prototype.set hasChildren):
(WebInspector.DataGridNode.prototype.set revealed):
(WebInspector.DataGridNode.prototype.get leftPadding):
* inspector/front-end/externs.js:
(Array.prototype.peekLast):
* inspector/front-end/utilities.js:
2013-02-15 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: highlight record revealed in Timeline
https://bugs.webkit.org/show_bug.cgi?id=109930
Reviewed by Pavel Feldman.
Revealed timeline record is now highlighted with yellow background
that fades out in 2 seconds.
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._revealRecord):
(WebInspector.TimelinePanel.prototype._refreshRecords):
(WebInspector.TimelinePanel.prototype._clearRecordHighlight):
* inspector/front-end/timelinePanel.css:
(.highlighted-timeline-record):
(@-webkit-keyframes timeline_record_highlight):
(to):
2013-02-15 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Pass original selection to textModel to correctly restore it after undo.
https://bugs.webkit.org/show_bug.cgi?id=109911
Reviewed by Pavel Feldman.
We can distinguish backspace pressed with and without selection now.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
(WebInspector.DefaultTextEditor.WordMovementController.prototype._handleCtrlBackspace):
* inspector/front-end/TextEditorModel.js:
(WebInspector.TextEditorCommand):
(WebInspector.TextEditorModel.endsWithBracketRegex.):
2013-02-15 Joe Mason <jmason@rim.com>
[BlackBerry] Remove redundant requireAuth parameter of NetworkJob::notifyAuthReceived
https://bugs.webkit.org/show_bug.cgi?id=109855
Reviewed by Yong Li.
Internal PR: 296697
Internally Reviewed By: Leo Yang
Code cleanup: The requireAuth parameter of NetworkJob::notifyAuthReceived is redundant as its value
can be determined from "result" - if result is AuthResultRetry, requireAuth is false, otherwise it
is true.
No new tests as there is no behaviour change.
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::notifyAuthReceived):
* platform/network/blackberry/NetworkJob.h:
(NetworkJob):
2013-02-15 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Redo in text editor should always collapse selection to end.
https://bugs.webkit.org/show_bug.cgi?id=109907
Reviewed by Pavel Feldman.
* inspector/front-end/TextEditorModel.js:
(WebInspector.TextEditorModel.endsWithBracketRegex.):
2013-02-15 Dan Carney <dcarney@google.com>
[v8] persistent handle dispose before last use
https://bugs.webkit.org/show_bug.cgi?id=109927
Reviewed by Jochen Eisinger.
No new tests. No change in functionality.
* bindings/v8/ScriptWrappable.h:
(WebCore::ScriptWrappable::weakCallback):
2013-02-15 Keishi Hattori <keishi@webkit.org>
PagePopupController.formatMonth should support short month format
https://bugs.webkit.org/show_bug.cgi?id=109530
Reviewed by Kent Tamura.
PagePopupController.formatMonth should support short month format so we
can use it in the new calendar picker.
Tested by LocaleMacTest::formatMonth.
* page/PagePopupController.cpp:
(WebCore::PagePopupController::formatMonth): Take an extra bool argument to switch to short month format.
* page/PagePopupController.h:
(PagePopupController):
* page/PagePopupController.idl:
* platform/text/LocaleICU.cpp:
(WebCore::LocaleICU::shortMonthFormat):
(WebCore):
* platform/text/LocaleICU.h:
(LocaleICU):
* platform/text/LocaleNone.cpp:
(WebCore::shortMonthFormat):
(WebCore):
* platform/text/PlatformLocale.cpp:
(WebCore::DateTimeStringBuilder::visitField):
(WebCore::Locale::formatDateTime):
* platform/text/PlatformLocale.h:
(Locale):
* platform/text/mac/LocaleMac.h:
(LocaleMac):
* platform/text/mac/LocaleMac.mm:
(WebCore::LocaleMac::shortMonthFormat):
(WebCore):
* platform/text/win/LocaleWin.cpp:
(WebCore::LocaleWin::shortMonthFormat): Windows doesn't have a short
month format so we just replace MMMM with MMM.
(WebCore):
* platform/text/win/LocaleWin.h:
(LocaleWin):
2013-02-15 Keishi Hattori <keishi@webkit.org>
Add setValue and closePopup methods to PagePopupController
https://bugs.webkit.org/show_bug.cgi?id=109897
Reviewed by Kent Tamura.
The new calendar picker (Bug 109439) needs to set a value without
closing the popup. We can't do that with the existing
setValueAndClosePopup.
No new tests. Existing calendar picker and color suggestion picker tests
that closing and setting values work properly.
* Resources/pagepopups/pickerCommon.js:
(Picker.prototype.submitValue): Stop using setValueAndClosePopup.
(Picker.prototype.handleCancel): Ditto.
* page/PagePopupClient.h:
(PagePopupClient):
* page/PagePopupController.cpp:
(WebCore::PagePopupController::setValue): Sets value to element without closing popup.
(WebCore):
(WebCore::PagePopupController::closePopup): Just closes popup.
* page/PagePopupController.h:
(PagePopupController):
* page/PagePopupController.idl:
2013-02-15 Mihnea Ovidenie <mihnea@adobe.com>
[CSS Regions] RenderRegion should inherit from RenderBlock
https://bugs.webkit.org/show_bug.cgi?id=74132
Reviewed by Julien Chaffraix.
Change the base class for RenderRegion to be RenderBlock instead of RenderReplaced.
Per spec http://dev.w3.org/csswg/css3-regions/#the-flow-from-property, a region is a non-replaced block container.
This change is covered by the existing regions tests (in fast/region and fast/repaint).
The RenderFlowThread object is a self-painting layer (it requires layer and is positioned).
Because of that, the RenderFlowThread object is responsible for painting its children,
the collected objects. When the RenderRegion::paintObject is called during paint, it delegates painting
of content collected inside the flow thread to the associated RenderFlowThread object.
Since we do not want to paint the flow thread content multiple times (for each paint phase
in which the RenderRegion::paintObject is called), we allow RenderFlowThread painting only for
selection and foreground paint phases.
* rendering/RenderBox.cpp: Clean-up the code from regions specific stuff, now that the regions are render blocks.
(WebCore::RenderBox::computePositionedLogicalWidth):
(WebCore::RenderBox::computePositionedLogicalHeight):
* rendering/RenderLayerBacking.cpp: A region should always render content from its associated flow thread,
even when it does not have children of its own.
(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
* rendering/RenderMultiColumnSet.cpp: Make changes to match the new inheritance for RenderRegion.
(WebCore::RenderMultiColumnSet::paint):
(WebCore::RenderMultiColumnSet::paintColumnRules):
* rendering/RenderMultiColumnSet.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::RenderRegion):
(WebCore::RenderRegion::paintObject):
(WebCore::RenderRegion::styleDidChange):
(WebCore::RenderRegion::layoutBlock):
(WebCore::RenderRegion::insertedIntoTree):
(WebCore::RenderRegion::willBeRemovedFromTree):
(WebCore::RenderRegion::computePreferredLogicalWidths): Use this method instead of min/maxPreferredLogicalWidth.
(WebCore::RenderRegion::updateLogicalHeight):
* rendering/RenderRegion.h: For now, assume the region is not allowed to have children.
When we will implement the processing model for pseudo-elements http://dev.w3.org/csswg/css3-regions/#processing-model,
we will have to remove this function. By having this function return false i was able to leave some tests unchanged.
2013-02-15 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: implement smart braces functionality
https://bugs.webkit.org/show_bug.cgi?id=109200
Reviewed by Pavel Feldman.
- implement SmartBraceController which will handle character insertions
and override them if brace character was inserted. Additionally it
should handle Backspace key and override it if a cursor is located
inside of a bracket pair.
- guard smart brace functionality via experiment checkbox.
New test: inspector/editor/text-editor-smart-braces.html
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel):
(WebInspector.TextEditorMainPanel.prototype._registerShortcuts):
(WebInspector.TextEditorMainPanel.prototype._handleKeyPress):
(WebInspector.TextEditorMainPanel.SmartBraceController):
(WebInspector.TextEditorMainPanel.SmartBraceController.prototype.registerShortcuts):
(WebInspector.TextEditorMainPanel.SmartBraceController.prototype.registerCharOverrides):
(WebInspector.TextEditorMainPanel.SmartBraceController.prototype._handleBackspace):
(WebInspector.TextEditorMainPanel.SmartBraceController.prototype._handleBracePairInsertion):
(WebInspector.TextEditorMainPanel.SmartBraceController.prototype._handleClosingBraceOverride):
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
2013-02-15 Andrei Bucur <abucur@adobe.com>
[CSS Regions][Mac] fast/regions/full-screen-video-from-region.html hits an assertion in RenderFlowThread::removeRenderBoxRegionInfo
https://bugs.webkit.org/show_bug.cgi?id=106075
Reviewed by Tony Chang.
The crash is caused by two issues.
The first problem is how a block inside a flow thread determines if the children needs relayout or not.
When the region chain is invalidated, the information is lost so we need to return true, even for the
enclosing RenderFlowThread. Because the video renderer is the first child of the flow thread this doesn't
happen.
The patch implements this behaviour by inspecting both if the region chain has changed and
if the block has no range computed yet.
The second problem is RenderMedia not inheriting from RenderBlock. The logic of child relayout doesn't apply
to it. In the test case, when the full screen button is pressed, the region changes width to fill the viewport,
the chain is invalidated and the box info hash map is cleared. When the video is laid out again (after fixing
the first issue) it has the same size so the controls don't do a layout. They remain without box info inside
the flow thread, thus causing the assertion.
The patch forces the controls to relayout if the region chain was invalidated. We can't use the
logicalWidthChangedInRegions method because it is block specific. This will be fixed in a later patch.
Tests: No new tests. fast/regions/full-screen-video-from-region.html no longer crashes.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::checkForPaginationLogicalHeightChange):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::RenderFlowThread):
(WebCore::RenderFlowThread::layout):
(WebCore::RenderFlowThread::logicalWidthChangedInRegions):
* rendering/RenderFlowThread.h: Renamed pageLogicalHeightChanged to pageLogicalSizeChanged.
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::layout):
2013-02-13 Allan Sandfeld Jensen <allan.jensen@digia.com>
[CoordGfx] Regression from r135212: big layers with transform animations sometime fail to render tiles
https://bugs.webkit.org/show_bug.cgi?id=109179
Reviewed by Jocelyn Turcotte.
Fix adjustForContentsRect logic for AC layers that are higher or wider than the visible rect.
Force updates of the visible rect while it is animating, and until we have done one last update after
it stops animating.
Test: compositing/transitions/transform-on-large-layer.html
* platform/graphics/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::adjustForContentsRect):
(WebCore::TiledBackingStore::computeCoverAndKeepRect):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
(WebCore::CoordinatedGraphicsLayer::computePixelAlignment):
(WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
(CoordinatedGraphicsLayer):
2013-02-15 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r142876.
http://trac.webkit.org/changeset/142876
https://bugs.webkit.org/show_bug.cgi?id=109920
Broke relative URL linkification in the computed styles pane
(Requested by apavlov on #webkit).
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype._rebuildSectionsForStyleRules):
2013-02-15 Allan Sandfeld Jensen <allan.jensen@digia.com>
Simplify hitTestResultAtPoint and nodesFromRect APIs
https://bugs.webkit.org/show_bug.cgi?id=95720
Reviewed by Julien Chaffraix.
The existing API was overloaded and could be simplified by passing all the bool arguments in
a HitTestRequest argument. This should also help clarify the call as the enum values explicitely
state what they do.
* WebCore.exp.in:
* WebCore.order:
* dom/Document.cpp:
(WebCore::Document::nodesFromRect):
* dom/Document.h:
(Document):
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::createContextMenu):
* page/DragController.cpp:
(WebCore::DragController::canProcessDrag):
(WebCore::DragController::startDrag):
* page/EventHandler.cpp:
(WebCore::EventHandler::hitTestResultAtPoint):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleGestureEvent):
(WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
(WebCore::EventHandler::bestClickableNodeForTouchPoint):
(WebCore::EventHandler::bestContextMenuNodeForTouchPoint):
(WebCore::EventHandler::bestZoomableAreaForTouchPoint):
(WebCore::EventHandler::handleTouchEvent):
* page/EventHandler.h:
(WebCore):
(EventHandler):
* page/FocusController.cpp:
(WebCore::updateFocusCandidateIfNeeded):
* page/Frame.cpp:
(WebCore::Frame::visiblePositionForPoint):
(WebCore::Frame::documentAtPoint):
* page/TouchDisambiguation.cpp:
(WebCore::findGoodTouchTargets):
* rendering/HitTestRequest.h:
(WebCore::HitTestRequest::allowsFrameScrollbars):
* testing/Internals.cpp:
(WebCore::Internals::nodesFromRect):
2013-02-14 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: make component-based compile-front-end happy
https://bugs.webkit.org/show_bug.cgi?id=109798
Reviewed by Vsevolod Vlasov.
* inspector/Inspector.json:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::setVariableValue):
* inspector/InspectorDebuggerAgent.h:
(InspectorDebuggerAgent):
* inspector/compile-front-end.py:
* inspector/front-end/AuditResultView.js:
* inspector/front-end/CPUProfileView.js:
* inspector/front-end/DataGrid.js:
* inspector/front-end/InspectorFrontendAPI.js:
(InspectorFrontendAPI.loadTimelineFromURL):
2013-02-14 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Implement tracking of active stylesheets in the frontend
https://bugs.webkit.org/show_bug.cgi?id=105828
Reviewed by Pavel Feldman.
- This change introduces the CSS.styleSheetAdded() and CSS.styleSheetRemoved() events
that update the frontend with all active stylesheet changes in the inspected page.
As such, fetching stylesheet headers from the backend manually is no longer needed,
and many asynchronous methods have been turned into normal accessors.
- One notable change to the stylesheet binding process is that when a via-inspector stylesheet
is created, it is instantly reported through the instrumentation, and the viaInspectorStyleSheet() method
is [indirectly] called recursively from bindStyleSheet(). Thus, the actual creation and registration
of the respective InspectorStyleSheet have been moved into bindStyleSheet(),
which relies upon the m_creatingViaInspectorStyleSheet flag.
Test: inspector/styles/stylesheet-tracking.html
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets): Instrumented.
* inspector/Inspector.json: Add events, update the CSS domain description.
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::InspectorCSSAgent):
(WebCore::InspectorCSSAgent::clearFrontend):
(WebCore::InspectorCSSAgent::enable): Push all existing stylesheet headers into the frontend.
(WebCore::InspectorCSSAgent::activeStyleSheetsUpdated): Push added/removed stylesheet into the frontend.
(WebCore::InspectorCSSAgent::getAllStyleSheets): Slightly refactored to make use of collectAllStyleSheets().
(WebCore::InspectorCSSAgent::collectAllStyleSheets): Added to collect InspectorStyleSheets rather than headers.
(WebCore::InspectorCSSAgent::collectStyleSheets):
(WebCore::InspectorCSSAgent::bindStyleSheet): Binds via-inspector stylesheets, too.
(WebCore::InspectorCSSAgent::unbindStyleSheet): Now we can unbind stylesheets upon their removal from the document.
(WebCore::InspectorCSSAgent::viaInspectorStyleSheet): Modifies m_creatingViaInspectorStyleSheet when necessary.
(WebCore::InspectorCSSAgent::detectOrigin): Modified to make use of m_creatingViaInspectorStyleSheet.
(WebCore::InspectorCSSAgent::buildObjectForRule): Removed extraneous bound InspectorStyleSheet 0-check.
* inspector/InspectorCSSAgent.h:
* inspector/InspectorInstrumentation.cpp: Instrumentation of active stylesheet set updates.
(WebCore::InspectorInstrumentation::activeStyleSheetsUpdatedImpl):
* inspector/InspectorInstrumentation.h: Ditto.
(WebCore::InspectorInstrumentation::activeStyleSheetsUpdated):
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSStyleModel.prototype.styleSheetHeaders):
(WebInspector.CSSStyleModel.prototype._styleSheetAdded): Added.
(WebInspector.CSSStyleModel.prototype._styleSheetRemoved): Added.
(WebInspector.CSSStyleModel.prototype.viaInspectorResourceForRule):
(WebInspector.CSSStyleModelResourceBinding.prototype._setHeaderForStyleSheetId):
(WebInspector.CSSStyleModelResourceBinding.prototype.resourceURLForStyleSheetId):
(WebInspector.CSSStyleModelResourceBinding.prototype.styleSheetIdForResource):
(WebInspector.CSSStyleModelResourceBinding.prototype._headerKey): Calculate the (frameID + URL) key for CSSStyleSheetHeader.
(WebInspector.CSSStyleModelResourceBinding.prototype._createInspectorResource):
(WebInspector.CSSStyleModelResourceBinding.prototype._inspectorResource):
(WebInspector.CSSStyleModelResourceBinding.prototype._reset):
(WebInspector.CSSDispatcher.prototype.styleSheetAdded): Added.
(WebInspector.CSSDispatcher.prototype.styleSheetRemoved): Added.
* inspector/front-end/SASSSourceMapping.js: Get rid of async implementations.
(WebInspector.SASSSourceMapping.prototype._styleSheetChanged):
* inspector/front-end/StylesSidebarPane.js: Ditto.
(WebInspector.StylePropertiesSection.prototype._createRuleOriginNode):
* inspector/front-end/StylesSourceMapping.js: Ditto.
(WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
2013-02-15 Andrei Bucur <abucur@adobe.com>
Implement the -webkit-margin-collapse properties correct rendering
https://bugs.webkit.org/show_bug.cgi?id=108168
Reviewed by David Hyatt.
The patch implements the correct behavior for the -webkit-margin-collapse properties:
- a value of "discard" on a margin will truncate all the margins collapsing with it;
- a value of "separate" will prevent the margin to collapse;
- a value of "collapse" is the default collapse behavior.
The implementation is aware of multiple writing-modes:
- if the writing mode of a child is parallel with the writing mode of the container and has the same direction,
the -webkit-margin-collapse properties on the child are left as is;
- if the writing mode of a child is parallel with the writing mode of the container but has a different direction,
the -webkit-margin-collapse properties on the child are reversed;
- if the writing mode of a child is perpendicular on the writing mode of the container,
the -webkit-margin-collapse properties on the child are ignored;
I. The "discard" value implementation
There are two new bits (before and after) added on the RenderBlockRareData structure specifying if the margins
of the block will be discarded or not. We can't rely only on the value from style() because
it's possible a block to discard it's margins because it has collapsed with a children that
specified "discard" for -webkit-margin-collapse. However, the bits are set only if it is
required.
Another bit is added on the MarginInfo structure specifying if the margin has to be discarded or not. When
collapsing at the before side of a block it will hold information if the container block needs to discard
or not. If the collapsing happens between siblings/with after side of the container it will tell if the previous
child discards the margin or not. The self collapsing blocks are a special case. If any of its margins
discards then both its margins discard and all the other margins collapsing with it.
To ensure an optimal behavior it is asserted margin values can't be set on the MarginInfo object if the
discard flag is active. If this happens it may indicate someone ignored the possibility of the margin being
discarded altogether and incorrectly updated the margin values.
Float clearing also needs to change because it may force margins to stop collapsing. If this happens the discard
flags and margins needs to be restored to their values before the collapse.
II. The "separate" value implementation
The implementation for separate was not changed too much. I've added new accessor methods for the property
that take writing mode into consideration and I've removed some code that didn't work correctly in layoutBlockChild.
The problem was the marginInfo structure was cleared if the child was specifying the "separate" value for before.
This is wrong because you lose the margin information of the previous child/before side.
Tests: fast/block/margin-collapse/webkit-margin-collapse-container.html
fast/block/margin-collapse/webkit-margin-collapse-floats.html
fast/block/margin-collapse/webkit-margin-collapse-siblings-bt.html
fast/block/margin-collapse/webkit-margin-collapse-siblings.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::MarginInfo::MarginInfo):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::collapseMargins):
(WebCore::RenderBlock::clearFloatsIfNeeded):
(WebCore::RenderBlock::marginBeforeEstimateForChild):
(WebCore::RenderBlock::estimateLogicalTopPosition):
(WebCore::RenderBlock::setCollapsedBottomMargin):
(WebCore::RenderBlock::handleAfterSideOfBlock):
(WebCore::RenderBlock::layoutBlockChild):
(WebCore::RenderBlock::setMustDiscardMarginBefore):
(WebCore):
(WebCore::RenderBlock::setMustDiscardMarginAfter):
(WebCore::RenderBlock::mustDiscardMarginBefore):
(WebCore::RenderBlock::mustDiscardMarginAfter):
(WebCore::RenderBlock::mustDiscardMarginBeforeForChild):
(WebCore::RenderBlock::mustDiscardMarginAfterForChild):
(WebCore::RenderBlock::mustSeparateMarginBeforeForChild):
(WebCore::RenderBlock::mustSeparateMarginAfterForChild):
* rendering/RenderBlock.h:
(RenderBlock):
(WebCore::RenderBlock::initMaxMarginValues):
(MarginInfo):
(WebCore::RenderBlock::MarginInfo::setPositiveMargin):
(WebCore::RenderBlock::MarginInfo::setNegativeMargin):
(WebCore::RenderBlock::MarginInfo::setPositiveMarginIfLarger):
(WebCore::RenderBlock::MarginInfo::setNegativeMarginIfLarger):
(WebCore::RenderBlock::MarginInfo::setMargin):
(WebCore::RenderBlock::MarginInfo::setCanCollapseMarginAfterWithChildren):
(WebCore::RenderBlock::MarginInfo::setDiscardMargin):
(WebCore::RenderBlock::MarginInfo::discardMargin):
(WebCore::RenderBlock::RenderBlockRareData::RenderBlockRareData):
(WebCore::RenderBlock::RenderBlockRareData::positiveMarginBeforeDefault):
(RenderBlockRareData):
* rendering/style/RenderStyle.h:
2013-02-14 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: always show memory size in Mb on the native memory graph
https://bugs.webkit.org/show_bug.cgi?id=109813
Reviewed by Pavel Feldman.
Memory size vlue is alway shown in Mb on the native memory graph.
* inspector/front-end/NativeMemoryGraph.js:
(WebInspector.NativeMemoryCounterUI.prototype.updateCurrentValue):
2013-02-14 Andrey Adaikin <aandrey@chromium.org>
Use GL typedefs in WebGLRenderingContext.idl
https://bugs.webkit.org/show_bug.cgi?id=109060
Reviewed by Kenneth Russell.
Use GL typedefs in WebGLRenderingContext.idl according to the specs.
Added a FIXME about inconsistency with the current WebGL spec for getAttribLocation.
Tested manually that generators V8, JS, ObjC, GObject, CPP produce same output.
* html/canvas/WebGLRenderingContext.idl:
2013-02-14 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Copy-pasting selected text over itself should be an undoable state.
https://bugs.webkit.org/show_bug.cgi?id=109830
Reviewed by Pavel Feldman.
* inspector/front-end/TextEditorModel.js:
(WebInspector.TextEditorModel.endsWithBracketRegex.):
2013-02-14 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r142889.
http://trac.webkit.org/changeset/142889
https://bugs.webkit.org/show_bug.cgi?id=109891
It caused an assertion failure in scrollbars/overflow-
scrollbar-combinations.html (Requested by tkent on #webkit).
* rendering/RenderBox.cpp:
(WebCore::borderWidthChanged):
(WebCore::RenderBox::styleDidChange):
2013-02-14 Arpita Bahuguna <arpitabahuguna@gmail.com>
Caret positioned at the end of a text line (followed by an empty block) in vertical writing mode disappears when pressing the right/down arrow key.
https://bugs.webkit.org/show_bug.cgi?id=106452
Reviewed by Ryosuke Niwa.
Pressing the down or the right arrow key at the end of a text line in
vertical writing mode would make the caret dissapear. This occurs only
when the text line is followed by an empty block.
When trying to compute the next position for placing the caret (for
down/right key), we try to ascertain whether the renderer (in this
case the empty block) is a valid candidate or not. For blockFlow
elements we check against their height.
In vertical writing mode though we would fail such a check since we
should instead be comparing against the renderer's width and not
it's height. Thus, a valid position for the placement of the caret
was not found in such a case.
Test: editing/selection/caret-at-end-of-text-line-followed-by-empty-block-in-vertical-mode.html
* dom/Position.cpp:
(WebCore::Position::isCandidate):
* dom/PositionIterator.cpp:
(WebCore::PositionIterator::isCandidate):
Instead of checking against the height(), check against the
logicalHeight() of the renderer has been added. logicalHeight()
on blockFlow renderer's returns a value in accordance with
the writing mode.
2013-02-14 Ryosuke Niwa <rniwa@webkit.org>
Windows build fix after r142957.
* dom/DOMAllInOne.cpp:
2013-02-14 Ryosuke Niwa <rniwa@webkit.org>
Fix a typo introduced in r142705.
Without this fix, text-input-controller.html can fail when DeleteButtonController is enabled.
e.g. "run-webkit-tests platform/mac/editing/deleting/deletionUI-single-instance.html
platform/mac/editing/input/text-input-controller.html --child-processes=1"
* editing/Editor.cpp:
(WebCore::Editor::avoidIntersectionWithDeleteButtonController):
2013-02-14 Hayato Ito <hayato@chromium.org>
Factor Event retargeting code.
https://bugs.webkit.org/show_bug.cgi?id=109156
Reviewed by Dimitri Glazkov.
To supoort Touch event retargeting (bug 107800), we have to factor
event retargeting code so that it can support not only MouseEvent,
but also other events.
New class, EventRetargeter, was introduced. From now,
EventDispatchMediator (and its subclasses) should call, if event
retargeting is required, an appropriate function provided in
EventRetargeter rather than calling
EventDispatcher::adjustRelatedTarget(), which was removed in this
patch.
No tests. No change in behavior.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* dom/EventDispatchMediator.cpp:
* dom/EventDispatcher.cpp:
(WebCore):
(WebCore::EventDispatcher::ensureEventPath): Changed to return an EventPath, which will be used by EventRetargeter.
(WebCore::EventDispatcher::dispatchScopedEvent):
(WebCore::EventDispatcher::dispatchEvent):
(WebCore::EventDispatcher::dispatchEventPostProcess):
* dom/EventDispatcher.h:
(WebCore):
(EventDispatcher):
* dom/EventRetargeter.cpp: Added.
(WebCore):
(WebCore::inTheSameScope):
(WebCore::determineDispatchBehavior):
(WebCore::EventRetargeter::calculateEventPath): Factored out from EventDispatcher::ensureEventPath().
(WebCore::EventRetargeter::adjustForMouseEvent):
(WebCore::EventRetargeter::adjustForFocusEvent):
(WebCore::EventRetargeter::adjustForRelatedTarget):
(WebCore::EventRetargeter::calculateAdjustedNodes): Factored out from EventRelatedTargetAjuster::adjustRelatedTarget().
(WebCore::EventRetargeter::buildRelatedNodeMap): Factored out from EventRelatedTargetAjuster::adjustRelatedTarget().
(WebCore::EventRetargeter::findRelatedNode):
* dom/EventRetargeter.h: Added.
(WebCore):
(EventRetargeter):
(WebCore::EventRetargeter::eventTargetRespectingTargetRules):
* dom/FocusEvent.cpp:
(WebCore::FocusEventDispatchMediator::dispatchEvent): Changed to call EventRetargeter::adjustForFocusEvent().
(WebCore::BlurEventDispatchMediator::dispatchEvent): Ditto.
(WebCore::FocusInEventDispatchMediator::dispatchEvent): Ditto.
(WebCore::FocusOutEventDispatchMediator::dispatchEvent): Ditto.
* dom/MouseEvent.cpp:
(WebCore::MouseEventDispatchMediator::dispatchEvent): Changed to call EventRetargeter::adjustForMouseEvent().
2013-02-14 Simon Fraser <simon.fraser@apple.com>
Reverting r142861. Hit testing inside of style recalc is fundamentally wrong
* page/EventHandler.cpp:
(WebCore::EventHandler::selectCursor):
(WebCore::EventHandler::handleMouseMoveEvent):
* page/EventHandler.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setStyle):
(WebCore::areNonIdenticalCursorListsEqual):
(WebCore::areCursorsEqual):
(WebCore::RenderObject::styleDidChange):
2013-02-14 Florin Malita <fmalita@chromium.org>
[SVG] Cached filter results are not invalidated on repaint rect change
https://bugs.webkit.org/show_bug.cgi?id=106221
Reviewed by Dean Jackson.
Since the cached filter results are not invalidated for different repaint rects, we need
to render the content of the whole filter region upfront (otherwise elements not visible
during the initial paint due to scrolling/window size/etc. are never redrawn).
Tests: svg/filters/filter-hidden-content-expected.svg
svg/filters/filter-hidden-content.svg
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::drawingRegion):
(WebCore):
* rendering/svg/RenderSVGResourceFilter.h:
(FilterData):
(RenderSVGResourceFilter):
Track the filter drawing region in FilterData.
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::~SVGRenderingContext):
(WebCore::SVGRenderingContext::prepareToRenderSVGContent):
* rendering/svg/SVGRenderingContext.h:
Update paintInfo.rect to cover the whole drawing region while rendering filter content, and
restore it when done.
2013-02-14 Jinwoo Song <jinwoo7.song@samsung.com>
[EFL] Correct the mismatched cursor map
https://bugs.webkit.org/show_bug.cgi?id=109655
Reviewed by Laszlo Gombos.
Correct the mismatched ECORE_X_CURSOR values in the cursor map.
* platform/efl/EflScreenUtilities.cpp:
(WebCore::CursorMap::CursorMap):
2013-02-14 Kentaro Hara <haraken@chromium.org>
Unreviewed. Rebaselined run-bindings-tests.
* bindings/scripts/test/CPP/WebDOMTestObj.cpp:
(WebDOMTestObj::anyAttribute):
(WebDOMTestObj::setAnyAttribute):
* bindings/scripts/test/CPP/WebDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_get_any_attribute):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
* bindings/scripts/test/V8/V8TestTypedefs.cpp:
(WebCore::TestTypedefsV8Internal::funcWithClampCallback):
2013-02-14 Christian Biesinger <cbiesinger@chromium.org>
Convert media controls from DeprecatedFlexibleBox to FlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=109775
Reviewed by Ojan Vafai.
Covered by existing tests in media/.
* css/mediaControls.css:
* css/mediaControlsBlackBerry.css:
* css/mediaControlsChromium.css:
* css/mediaControlsChromiumAndroid.css:
* css/mediaControlsEfl.css:
* css/mediaControlsGtk.css:
* css/mediaControlsQt.css:
* css/mediaControlsQuickTime.css:
Automated search and replace of old flexbox CSS rules to new ones.
Minor tuning of the chromium rules.
* rendering/RenderMediaControlElements.cpp:
(WebCore::RenderMediaControlTimeDisplay::RenderMediaControlTimeDisplay):
(WebCore::RenderMediaControlTimeDisplay::layout):
* rendering/RenderMediaControlElements.h:
Make media controls inherit from RenderFlexibleBox
2013-02-14 Roger Fong <roger_fong@apple.com>
Build fix for Windows.
* Modules/webdatabase/SQLTransactionStateMachine.cpp:
(WebCore::nameForSQLTransactionState):
2013-02-14 Dean Jackson <dino@apple.com>
Inspector doesn't show rules from pluginsStyleSheet
https://bugs.webkit.org/show_bug.cgi?id=109872
Reviewed by Darin Adler.
Make sure getWrapperForRuleInSheets collects the rules
from CSSDefaultStyleSheets::plugInsStyleSheet.
Making a test for this is difficult because the rules in
this sheet only apply to snapshotted plugins at the moment,
which are disabled in DRT, and would require a fairly long
timeout in the test.
* css/InspectorCSSOMWrappers.cpp:
(WebCore::InspectorCSSOMWrappers::getWrapperForRuleInSheets):
2013-02-14 Hayato Ito <hayato@chromium.org>
Recover edge names used in MemoryInstrumentation for DocumentRuleSets.
https://bugs.webkit.org/show_bug.cgi?id=109800
Reviewed by Hajime Morita.
This is a following patch for r142573.
r142563 accidentally removes edge names for MemoryInstrumentation. We should recover edge names.
No tests. No change in behavior.
* css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::reportMemoryUsage):
2013-02-14 Hajime Morrita <morrita@google.com>
[V8] Assertion failure on an exception is thrown
https://bugs.webkit.org/show_bug.cgi?id=109129
An assertion in V8AbstractEventListener is wrong. This change turns it into an error check.
Reviewed by Kentaro Hara.
Test: fast/events/onerror-no-constructor.html
* bindings/v8/V8AbstractEventListener.cpp:
(WebCore::V8AbstractEventListener::handleEvent):
2013-02-14 Kentaro Hara <haraken@chromium.org>
[V8] CodeGeneratorV8.pm can assume that DOMWindow has [CheckSecurity]
https://bugs.webkit.org/show_bug.cgi?id=109788
Reviewed by Adam Barth.
There is code like this:
if ($extendedAttr{"CheckSecurity"} || $interfaceName eq "DOMWindow")
This check is redundant. DOMWindow has [CheckSecurity]. We can remove the
DOMWindow check.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateReplaceableAttrSetter):
(GenerateFunctionCallback):
(GenerateNonStandardFunction):
(GenerateImplementation):
2013-02-14 Joshua Bell <jsbell@chromium.org>
[V8] IndexedDB: Remove unused creationContext paramter from idbKeyToV8Value
https://bugs.webkit.org/show_bug.cgi?id=109870
Reviewed by Kentaro Hara.
This parameter was left over from when the function was toV8(IDBKey). Remove it.
No new tests - just removing dead code.
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::idbKeyToV8Value): Remove unused parameter.
(WebCore::injectIDBKeyIntoScriptValue): No need for dummy handle.
(WebCore::idbKeyToScriptValue): No need for dummy handle.
2013-02-14 Kondapally Kalyan <kalyan.kondapally@intel.com>
[WebGL][Qt] regression:r142786 Qt Build fix for Arm and Windows.
https://bugs.webkit.org/show_bug.cgi?id=109797
Reviewed by Csaba Osztrogonác.
After r142786, we use OpenGLShims to load necessary GL functions
exposed by ARB_vertex_array_object extension. Qt uses OpenGLShims
to load functions with GLES too. This patch adds support for loading the
equivalent functions on GLES exposed by OES_vertex_array_object.
* platform/graphics/OpenGLShims.cpp:
(WebCore::initializeOpenGLShims):
* platform/graphics/OpenGLShims.h:
2013-02-14 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/13210723> CORS preflight broken with NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=109753
Reviewed by Brady Eidson.
* loader/DocumentThreadableLoader.h:
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::cancel):
(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::dataReceived):
(WebCore::DocumentThreadableLoader::didReceiveData):
(WebCore::DocumentThreadableLoader::notifyFinished):
(WebCore::DocumentThreadableLoader::didFinishLoading):
(WebCore::DocumentThreadableLoader::didFail):
(WebCore::DocumentThreadableLoader::preflightFailure): Notify InspectorInstrumentation
immediately. In addition to keeping up eith other changes, this means that an accurate
error will be passed now, not a cancellation.
(WebCore::DocumentThreadableLoader::loadRequest):
Get rid of m_preflightRequestIdentifier. Every loader has an identifier, and tracking
identifiers twice is wrong.
Pass identifier explicitly to more internal functions, so that they would not have to
second-guess callers.
* loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willSendRequest):
Create an identifier for all loaders, not just those that we expect to have client
callbacks about. Both Inspector and NetworkProcess need identifiers everywhere.
* loader/TextTrackLoader.cpp: (WebCore::TextTrackLoader::deprecatedDidReceiveCachedResource):
* loader/TextTrackLoader.h:
* loader/cache/CachedResourceClient.h:
(WebCore::CachedResourceClient::deprecatedDidReceiveCachedResource):
* loader/cache/CachedTextTrack.cpp: (WebCore::CachedTextTrack::data):
Renamed didReceiveData to avoid conflict with the new DocumentThreadableLoader::didReceiveData.
And we should really get rid of this CachedResourceClient function anyway.
2013-02-14 Kentaro Hara <haraken@chromium.org>
Replace 'DOMObject' with 'any'
https://bugs.webkit.org/show_bug.cgi?id=109793
Reviewed by Dimitri Glazkov.
In the Web IDL spec, there is no type named 'DOMObject'.
It should be 'any'. We should replace all 'DOMObject's in WebKit IDLs with 'any's.
* Modules/webdatabase/SQLResultSetRowList.idl:
* bindings/scripts/CodeGeneratorCPP.pm:
(GetClassName):
(AddIncludesForType):
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateFunction):
* bindings/scripts/CodeGeneratorJS.pm:
(AddIncludesForType):
(GenerateImplementation):
(JSValueToNative):
(NativeToJSValue):
* bindings/scripts/CodeGeneratorV8.pm:
(GetNativeType):
(JSValueToNative):
(GetV8HeaderName):
* dom/CustomEvent.idl:
* dom/MessageEvent.idl:
* dom/PopStateEvent.idl:
* fileapi/FileReader.idl:
* html/HTMLCanvasElement.idl:
* html/HTMLElement.idl:
* html/canvas/DataView.idl:
* inspector/InjectedScriptHost.idl:
* inspector/InspectorFrontendHost.idl:
* inspector/JavaScriptCallFrame.idl:
* page/DOMWindow.idl:
* page/Location.idl:
2013-02-14 Kentaro Hara <haraken@chromium.org>
[V8] Remove GenerateEventListenerCallback() from CodeGeneratorV8.pm
https://bugs.webkit.org/show_bug.cgi?id=109786
Reviewed by Adam Barth.
Some code is duplicated between GenerateEventListenerCallback()
and GenerateFunctionCallback(). By inlining GenerateEventListenerCallback()
into GenerateFunctionCallback(), we can remove the duplication.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateFunctionCallback):
2013-02-14 Ojan Vafai <ojan@chromium.org>
Intrinsic and preferred widths on replaced elements are wrong in many cases
https://bugs.webkit.org/show_bug.cgi?id=109859
Reviewed by Levi Weintraub.
Test: fast/replaced/preferred-widths.html
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeIntrinsicLogicalWidths):
Separate out computing the intrinsic widths. Eventually,
we should be able to share computePreferredLogicalWidth implementations
for all replaced elements and form controls since only the intrinsic width
changes.
(WebCore::RenderReplaced::computePreferredLogicalWidths):
-Apply min-width and max-width constraints and then add borderAndPaddingLogicalWidth
at the end to make sure it's always applied. This matches all our other
computePreferredLogicalWidths override and makes use match Gecko's/Opera's rendering.
-Only set the minPreferredLogicalWidth to 0 if the width or max-width is a percent value.
Doing it for height values and for min-width doesn't make any sense and doesn't
match other browsers. Doing this for max-width still doesn't match other browsers,
but it sounds like Gecko at least would like to change that.
* rendering/RenderReplaced.h:
(WebCore::RenderReplaced::hasRelativeIntrinsicLogicalWidth):
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::hasRelativeIntrinsicLogicalWidth):
Add a way to check if the logicalWidth is relative so that we only check
the width in computePreferredLogicalWidths instead of also checking the height.
* rendering/svg/RenderSVGRoot.h:
2013-02-14 Stephen Chenney <schenney@chromium.org>
Crash when selecting a HarfBuzz text run with SVG fonts included
https://bugs.webkit.org/show_bug.cgi?id=109833
Reviewed by Tony Chang.
There is an assert in SimpleFontData::applyTransforms that should not
be there, as the code is valid for SVG fonts. If we get past this,
then the HarfBuzz text run shaping code assumes that font data has a
SkTypeface member, and SVG fonts do not. So we crash there too.
For now, we fix the crashes. This still leaves incorrect selection
rectangles in this situation, on all platforms, tracked in
https://bugs.webkit.org/show_bug.cgi?id=108133
Test: svg/css/font-face-crash.html
* platform/graphics/SimpleFontData.h:
(WebCore::SimpleFontData::applyTransforms): Remove ASSERT_NOT_REACHED as the code can legally be reached for SVG fonts.
* platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Check for SVG fonts in the text run, and abort if we find them.
2013-02-13 Joe Mason <jmason@rim.com>
[BlackBerry] Notify platform layer of failing to get authentication credentials
https://bugs.webkit.org/show_bug.cgi?id=109751
Reviewed by Yong Li.
Reviewed internally by Leo Yang
Internal PR: 181302
The BlackBerry platform network layer needs to know if a stream failed to get authentication credentials.
This patch is using newly added stream API to do it.
No functionality changed no new tests.
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::notifyAuthReceived):
(WebCore::NetworkJob::sendRequestWithCredentials):
(WebCore::NetworkJob::notifyChallengeResult):
* platform/network/blackberry/NetworkJob.h:
* platform/network/blackberry/NetworkManager.cpp:
(WebCore::protectionSpaceToPlatformAuth):
(WebCore):
(WebCore::setAuthCredentials):
* platform/network/blackberry/NetworkManager.h:
(WebCore):
2013-02-14 Kondapally Kalyan <kalyan.kondapally@intel.com>
[GTK] Fix indentation in GNUmakefile.list.am.
https://bugs.webkit.org/show_bug.cgi?id=109854
Reviewed by Martin Robinson.
This patch fixes indentation in GNUmakefile.list.am.
* GNUmakefile.list.am:
2013-02-14 Tony Chang <tony@chromium.org>
Unreviewed, set svn:eol-style native for .sln, .vcproj, and .vsprops files.
https://bugs.webkit.org/show_bug.cgi?id=96934
* WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
* WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.
2013-02-14 Abhishek Arya <inferno@chromium.org>
Bad cast in RenderBlock::splitBlocks.
https://bugs.webkit.org/show_bug.cgi?id=108691
Reviewed by Levi Weintraub.
Test: fast/multicol/remove-child-split-flow-crash.html
* rendering/RenderBlock.cpp:
(WebCore):
(WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): rename gIsInColumnFlowSplit to gColumnFlowSplitEnabled
and use it to decide when to do the column flow split or not.
(WebCore::RenderBlock::removeChild): Do not allow column flow split inside removeChild
since we might be merging anonymous blocks.
2013-02-14 Mark Lam <mark.lam@apple.com>
Split SQLTransaction work between the frontend and backend.
https://bugs.webkit.org/show_bug.cgi?id=104750.
Reviewed by Sam Weinig.
This is part of the webdatabase refactoring for webkit2.
1. Changed how transactions are created.
- Database::runTransaction() first creates a SQLTransaction frontend
which encapsulates the 3 script callbacks. It then passes the
SQLTransaction to the backend database to create the
SQLTransactionBackend.
- The SQLTransactionBackend manages all SQLiteTransaction work.
2. Introduced SQLTransactionState and SQLTransactionStateMachine.
- Instead of tracking the transaction phases as "steps" in m_nextStep,
we now use m_nextState which is of enum class SQLTransactionState.
Unlike m_nextStep which is a pointer to a "step" function,
m_nextState is a state variable which is used to index into a
state dispatch table.
- Both SQLTransaction and SQLTransactionBackend now extends
SQLTransactionStateMachine, and uses its dispatch mechanism based on
the SQLTransactionState.
- Instead of having 1 state machine instances, there are 2: 1 in the
frontend, and 1 in the backend. The 2 have mirrored states, and
transfers work to the other state machine when needed.
- Previously, state functions can be called inline from other states.
They are now only called from the state machines runStateMachine()
method. This makes it possible to isolate the state transition
mechanism going between the sides (frontend and backend) to 2
functions only: SQLTransaction::sendToBackendState() and
SQLTransactionBackend::sendToFrontendState().
3. Consolidated cleanup work (mostly) to a unified cleanup function.
4. Changed the frontend Database::runTransaction() to use a
ChangeVersionData* (instead of a ChangeVersionWrapper ref ptr).
- This is necessary because ChangeVersionWrapper contains functionality
used in processing a transaction (to be invoked in the backend).
Instead, what we want is to simply pass the 2 old and new version
strings to the backend. The new ChangeVersionData simply packages up
these 2 strings.
- This makes ChangeVersionData easy to serialize for IPC messaging later.
5. Moved some transaction functions back to the frontend SQLTransaction
because they belong there.
6. Moved some Database functions to its DatabaseBackendAsync backend
now that the transaction has been split up.
- This is driven naturally by those functions being used exclusively
in the backend for transaction work.
- SQLTransactionClient, SQLTransactionCoordinator, and
SQLTransactionWrapper are now exclusively backend data structures.
SQLTransactionClient still has some frontend "pollution" that I'll
fix later.
7. Made the few database report functions used only by Chromium conditional
on PLATFORM(chromium).
- The report functions gets re-routed to Chromium's DatabaseObserver
which further routes them elsewhere. It is unclear how Chromium uses
these routed messages, and I am therefore not able to determine how
they should work in a frontend/backend world. So, I'm #ifdef'ing
them out. They still work like in the old way for Chromium.
8. Added new files to the build / project files.
9. Updated / added comments about how the transaction and its states work.
No new tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/AbstractDatabaseServer.h:
* Modules/webdatabase/ChangeVersionData.h: Added.
(ChangeVersionData):
(WebCore::ChangeVersionData::ChangeVersionData):
(WebCore::ChangeVersionData::oldVersion):
(WebCore::ChangeVersionData::newVersion):
* Modules/webdatabase/ChangeVersionWrapper.cpp:
(WebCore::ChangeVersionWrapper::performPreflight):
(WebCore::ChangeVersionWrapper::performPostflight):
(WebCore::ChangeVersionWrapper::handleCommitFailedAfterPostflight):
* Modules/webdatabase/ChangeVersionWrapper.h:
(ChangeVersionWrapper):
* Modules/webdatabase/Database.cpp:
(WebCore::Database::Database):
(WebCore::Database::close):
(WebCore::Database::changeVersion):
(WebCore::Database::transaction):
(WebCore::Database::readTransaction):
(WebCore::Database::runTransaction):
(WebCore::Database::reportStartTransactionResult):
(WebCore::Database::reportCommitTransactionResult):
(WebCore::Database::reportExecuteStatementResult):
* Modules/webdatabase/Database.h:
(WebCore::Database::databaseContext):
(Database):
(WebCore::Database::reportStartTransactionResult):
(WebCore::Database::reportCommitTransactionResult):
(WebCore::Database::reportExecuteStatementResult):
* Modules/webdatabase/DatabaseBackend.cpp:
* Modules/webdatabase/DatabaseBackend.h:
(DatabaseBackend):
(WebCore::DatabaseBackend::reportOpenDatabaseResult):
(WebCore::DatabaseBackend::reportChangeVersionResult):
(WebCore::DatabaseBackend::reportStartTransactionResult):
(WebCore::DatabaseBackend::reportCommitTransactionResult):
(WebCore::DatabaseBackend::reportExecuteStatementResult):
(WebCore::DatabaseBackend::reportVacuumDatabaseResult):
* Modules/webdatabase/DatabaseBackendAsync.cpp:
(WebCore::DatabaseBackendAsync::DatabaseBackendAsync):
(WebCore::DatabaseBackendAsync::runTransaction):
(WebCore::DatabaseBackendAsync::inProgressTransactionCompleted): Moved from frontend.
(WebCore::DatabaseBackendAsync::scheduleTransaction): Moved from frontend.
(WebCore::DatabaseBackendAsync::scheduleTransactionStep): Moved from frontend.
(WebCore::DatabaseBackendAsync::transactionClient): Moved from frontend.
(WebCore::DatabaseBackendAsync::transactionCoordinator): Moved from frontend.
* Modules/webdatabase/DatabaseBackendAsync.h:
(DatabaseBackendAsync):
* Modules/webdatabase/DatabaseBackendContext.cpp:
(WebCore::DatabaseBackendContext::frontend):
* Modules/webdatabase/DatabaseBackendContext.h:
(DatabaseBackendContext):
* Modules/webdatabase/DatabaseManager.cpp:
* Modules/webdatabase/DatabaseManager.h:
(DatabaseManager):
* Modules/webdatabase/DatabaseServer.cpp:
* Modules/webdatabase/DatabaseServer.h:
* Modules/webdatabase/DatabaseTask.cpp:
(WebCore::DatabaseBackendAsync::DatabaseTransactionTask::doPerformTask):
* Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::create):
(WebCore::SQLTransaction::SQLTransaction):
(WebCore::SQLTransaction::setBackend):
(WebCore::SQLTransaction::stateFunctionFor):
(WebCore::SQLTransaction::requestTransitToState):
(WebCore::SQLTransaction::nextStateForTransactionError):
- was handleTransactionError(). There's also a backend version.
(WebCore::SQLTransaction::deliverTransactionCallback): Moved from backend.
(WebCore::SQLTransaction::deliverTransactionErrorCallback): Moved from backend.
(WebCore::SQLTransaction::deliverStatementCallback): Moved from backend.
(WebCore::SQLTransaction::deliverQuotaIncreaseCallback): Moved from backend.
(WebCore::SQLTransaction::deliverSuccessCallback): Moved from backend.
(WebCore::SQLTransaction::unreachableState):
(WebCore::SQLTransaction::sendToBackendState):
(WebCore::SQLTransaction::performPendingCallback): Moved from backend.
(WebCore::SQLTransaction::executeSQL): Moved from backend.
(WebCore::SQLTransaction::checkAndHandleClosedOrInterruptedDatabase):
(WebCore::SQLTransaction::clearCallbackWrappers):
* Modules/webdatabase/SQLTransaction.h:
(SQLTransaction):
(WebCore::SQLTransaction::database):
(WebCore::SQLTransaction::hasCallback):
(WebCore::SQLTransaction::hasSuccessCallback):
(WebCore::SQLTransaction::hasErrorCallback):
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::create):
(WebCore::SQLTransactionBackend::SQLTransactionBackend):
(WebCore::SQLTransactionBackend::doCleanup):
(WebCore::SQLTransactionBackend::transactionError):
(WebCore::SQLTransactionBackend::setShouldRetryCurrentStatement):
(WebCore::SQLTransactionBackend::stateFunctionFor):
(WebCore::SQLTransactionBackend::enqueueStatement):
(WebCore::SQLTransactionBackend::checkAndHandleClosedOrInterruptedDatabase):
(WebCore::SQLTransactionBackend::performNextStep):
(WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown):
(WebCore::SQLTransactionBackend::acquireLock):
(WebCore::SQLTransactionBackend::lockAcquired):
(WebCore::SQLTransactionBackend::openTransactionAndPreflight):
(WebCore::SQLTransactionBackend::runStatements):
(WebCore::SQLTransactionBackend::runCurrentStatementAndGetNextState):
- was runCurrentStatement().
(WebCore::SQLTransactionBackend::nextStateForCurrentStatementError):
- was handleCurrentStatementError().
(WebCore::SQLTransactionBackend::postflightAndCommit):
(WebCore::SQLTransactionBackend::cleanupAndTerminate):
(WebCore::SQLTransactionBackend::nextStateForTransactionError):
- was handleTransactionError(). There's also a frontend version.
(WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
(WebCore::SQLTransactionBackend::requestTransitToState):
(WebCore::SQLTransactionBackend::unreachableState):
(WebCore::SQLTransactionBackend::sendToFrontendState):
* Modules/webdatabase/SQLTransactionBackend.h:
(SQLTransactionWrapper):
(SQLTransactionBackend):
(WebCore::SQLTransactionBackend::database):
* Modules/webdatabase/SQLTransactionClient.cpp:
(WebCore::SQLTransactionClient::didCommitWriteTransaction):
(WebCore::SQLTransactionClient::didExecuteStatement):
* Modules/webdatabase/SQLTransactionCoordinator.cpp:
(WebCore::getDatabaseIdentifier):
* Modules/webdatabase/SQLTransactionState.h: Added.
* Modules/webdatabase/SQLTransactionStateMachine.cpp: Added.
(WebCore::nameForSQLTransactionState):
- was debugStepName().
* Modules/webdatabase/SQLTransactionStateMachine.h: Added.
(SQLTransactionStateMachine):
(WebCore::SQLTransactionStateMachine::~SQLTransactionStateMachine):
(WebCore::::SQLTransactionStateMachine):
(WebCore::::setStateToRequestedState):
(WebCore::::runStateMachine):
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorDatabaseAgent.cpp:
2013-02-14 Jer Noble <jer.noble@apple.com>
EME: replace MediaKeySession.addKey() -> update()
https://bugs.webkit.org/show_bug.cgi?id=109461
Reviewed by Eric Carlson.
No new tests; updated media/encrypted-media/encrypted-media-v2-syntax.html test.
In the latest draft of the Encrypted Media Spec, the addKeys() method has been replaced
with update().
* Modules/encryptedmedia/CDM.h:
* Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::update):
(WebCore::MediaKeySession::addKeyTimerFired):
* Modules/encryptedmedia/MediaKeySession.h:
* Modules/encryptedmedia/MediaKeySession.idl:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::webkitAddKey):
* testing/MockCDM.cpp:
(WebCore::MockCDMSession::update):
2013-02-14 Tony Chang <tony@chromium.org>
Unreviewed, set svn:eol-style CRLF for .sln files.
* WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
* WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.
2013-02-14 Eric Carlson <eric.carlson@apple.com>
[Mac] adjust caption color user preference calculation
https://bugs.webkit.org/show_bug.cgi?id=109840
Reviewed by Dean Jackson.
No new tests, it isn't possible to test this with DRT.
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::captionsWindowCSS): The color is "important" if either the
color or opacity are supposed to override.
(WebCore::CaptionUserPreferencesMac::captionsBackgroundCSS): Ditto.
(WebCore::CaptionUserPreferencesMac::captionsTextColor): Ditto.
* WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
* WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.
2013-02-14 Cosmin Truta <ctruta@rim.com>
Numeric identifiers of events are not guaranteed to be unique
https://bugs.webkit.org/show_bug.cgi?id=103259
Reviewed by Alexey Proskuryakov.
The results of setTimeout, setInterval and navigator.geolocation.watchPosition
are positive integer values extracted from a simple circular sequential number
generator, whose uniqueness can be guaranteed for no more than 2^31 calls to
any of these functions. In order to provide this guarantee beyond this limit,
we repeatedly ask for the next sequential id until we get one that's not used
already.
This solution works instantly under normal circumstances, when there are few
live timeout ids or geolocation ids at any given moment. Handling millions of
live ids will require another solution.
No new tests. Brief tests of uniqueness already exist.
Moreover, reproducing this particular issue would require 2^31 set/clear
function calls, which is prohibitively expensive.
* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::Watchers::add): Rename from Watchers::set; return false if watch id already exists.
(WebCore::Geolocation::watchPosition): Repeat until the new watch id is unique.
* Modules/geolocation/Geolocation.h:
(Watchers): Rename Watchers::set to Watchers::add.
* Modules/geolocation/Geolocation.idl: Rename the argument of Geolocation::clearWatch to WatchID.
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::ScriptExecutionContext): Update initialization.
(WebCore::ScriptExecutionContext::circularSequentialID): Rename from newUniqueID; remove FIXME note.
* dom/ScriptExecutionContext.h:
(ScriptExecutionContext): Rename ScriptExecutionContext::newUniqueID to ScriptExecutionContext::circularSequentialID.
(WebCore::ScriptExecutionContext::addTimeout): Return false (do not assert) if timeout id already exists.
* page/DOMTimer.cpp:
(WebCore::DOMTimer::DOMTimer): Repeat until the new timeout id is unique.
2013-02-14 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r142825.
http://trac.webkit.org/changeset/142825
https://bugs.webkit.org/show_bug.cgi?id=109856
Causes some inspector tests to time out (Requested by anttik
on #webkit).
* platform/mac/SharedTimerMac.mm:
(WebCore):
(WebCore::PowerObserver::restartSharedTimer):
(WebCore::setSharedTimerFireInterval):
(WebCore::stopSharedTimer):
2013-02-14 Lamarque V. Souza <Lamarque.Souza@basyskom.com>
Support the ch unit from css3-values
https://bugs.webkit.org/show_bug.cgi?id=85755
Reviewed by David Hyatt.
Original patch by Sumedha Widyadharma <sumedha.widyadharma@basyskom.com>.
Test: fast/css/css3-ch-unit.html
* css/CSSCalculationValue.cpp:
(WebCore::unitCategory):
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::validUnit):
(WebCore::CSSParser::createPrimitiveNumericValue):
(WebCore::CSSParser::parseValidPrimitive):
(WebCore::CSSParser::detectNumberToken):
* css/CSSParserValues.cpp:
(WebCore::CSSParserValue::createCSSValue):
* css/CSSPrimitiveValue.cpp:
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::computeLengthDouble):
(WebCore::CSSPrimitiveValue::customCssText):
(WebCore::CSSPrimitiveValue::cloneForCSSOM):
* css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::isFontRelativeLength):
(WebCore::CSSPrimitiveValue::isLength):
* platform/graphics/FontMetrics.h:
(WebCore::FontMetrics::FontMetrics):
(WebCore::FontMetrics::zeroWidth):
(WebCore::FontMetrics::setZeroWidth):
(FontMetrics):
(WebCore::FontMetrics::hasZeroWidth):
(WebCore::FontMetrics::setHasZeroWidth):
* platform/graphics/SimpleFontData.cpp:
(WebCore::SimpleFontData::platformGlyphInit):
* platform/graphics/SimpleFontData.h:
(WebCore::SimpleFontData::zeroGlyph):
(WebCore::SimpleFontData::setZeroGlyph):
(SimpleFontData):
* platform/graphics/qt/SimpleFontDataQt.cpp:
(WebCore::SimpleFontData::platformInit):
2013-02-14 David Kilzer <ddkilzer@apple.com>
[Mac] Clean up WARNING_CFLAGS
<http://webkit.org/b/109747>
<rdar://problem/13208373>
Reviewed by Mark Rowe.
* Configurations/Base.xcconfig: Use
GCC_WARN_64_TO_32_BIT_CONVERSION to enable and disable
-Wshorten-64-to-32 rather than WARNING_CFLAGS.
2013-02-14 Christophe Dumez <ch.dumez@sisa.samsung.com>
Add addHTTPHeaderField() method to ResourceResponse
https://bugs.webkit.org/show_bug.cgi?id=109844
Reviewed by Adam Barth.
ResourceRequestBase provides both setHTTPHeaderField() and addHTTPHeaderField(). However,
ResourceResponseBase only provides setHTTPHeaderField(). This is a bit inconsistent. As a
result, the addHTTPHeaderField() functionality's implementation is duplicated in several
ports (at least chromium and soup).
This patch introduces addHTTPHeaderField() to ResourceResponseBase and makes use of it
in Chromium and Soup backends.
No new tests, no behavior change.
* platform/chromium/support/WebURLResponse.cpp:
(WebKit::WebURLResponse::addHTTPHeaderField): Use ResourceResponseBase::addHTTPHeaderField().
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::updateHeaderParsedState): Move headers' parsed state update code
from setHTTPHeaderField() to a new updateHeaderParsedState() method to avoid code duplication.
(WebCore):
(WebCore::ResourceResponseBase::setHTTPHeaderField):
(WebCore::ResourceResponseBase::addHTTPHeaderField):
* platform/network/ResourceResponseBase.h:
(ResourceResponseBase):
* platform/network/soup/ResourceResponseSoup.cpp:
(WebCore::ResourceResponse::updateFromSoupMessageHeaders): Use ResourceResponseBase::addHTTPHeaderField().
2013-02-14 Philip Rogers <pdr@google.com>
Prevent inconsistent firstChild during document destruction
https://bugs.webkit.org/show_bug.cgi?id=106530
Reviewed by Abhishek Arya.
During document destruction, addChildNodesToDeletionQueue can allow a container
node to have an invalid first child, causing a crash. This patch updates
addChildNodesToDeletionQueue to maintain a valid value for firstChild() even
while updating its children.
Test: svg/custom/animateMotion-path-change-crash.svg
* dom/ContainerNodeAlgorithms.h:
(WebCore::Private::addChildNodesToDeletionQueue):
To ensure prevoiusSibling() is also valid, this code was slightly refactored
to call setPreviousSibling(0) on the next node instead of the current node.
2013-02-14 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Add an internal 2D grid representation to RenderGrid
https://bugs.webkit.org/show_bug.cgi?id=109714
Reviewed by Ojan Vafai.
This change introduces a 2D grid representation of the grid areas. Our implementation
is a straight Vector of Vectors for the grid areas, each grid area able to hold an
arbitrary number of RenderBox* so they hold a Vector of RenderBoxes. As an optimization,
each grid area has enough inline storage to hold one grid item which should cover
most cases.
In order to keep the code readable, a GridIterator was introduced to hide the new grid.
Refactoring, covered by existing tests.
* rendering/RenderGrid.cpp:
(RenderGrid::GridIterator):
(WebCore::RenderGrid::GridIterator::GridIterator):
(WebCore::RenderGrid::GridIterator::nextGridItem):
Added a mono-directional iterator. In order to be more aligned with the rest of the code,
this iterator actually walks orthogonally to the |direction| (ie fixing the |direction|'s track).
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computePreferredLogicalWidths):
(WebCore::RenderGrid::layoutGridItems):
Updated these 2 functions to place the items on the grid and clear it at the end.
(WebCore::RenderGrid::computePreferredTrackWidth):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
Updated to use the GridIterator to walk over the rows / columns.
(WebCore::RenderGrid::placeItemsOnGrid):
Added this function that inserts the grid items into the right grid area.
* rendering/RenderGrid.h:
(WebCore::RenderGrid::gridColumnCount):
(WebCore::RenderGrid::gridRowCount):
Added these helper functions.
2013-02-14 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r141990.
http://trac.webkit.org/changeset/141990
https://bugs.webkit.org/show_bug.cgi?id=109850
~5% regression on intl2 page cycler (Requested by kling on
#webkit).
* platform/graphics/GlyphPage.h:
(WebCore::GlyphPage::create):
(WebCore::GlyphPage::glyphDataForCharacter):
(WebCore::GlyphPage::glyphDataForIndex):
(WebCore::GlyphPage::fontDataForCharacter):
(WebCore::GlyphPage::setGlyphDataForIndex):
(GlyphPage):
(WebCore::GlyphPage::copyFrom):
(WebCore::GlyphPage::clear):
(WebCore::GlyphPage::clearForFontData):
(WebCore::GlyphPage::GlyphPage):
* platform/graphics/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::initializePage):
* rendering/svg/SVGTextRunRenderingContext.cpp:
(WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
2013-02-14 Mark Pilgrim <pilgrim@chromium.org>
[Chromium] Move PlatformMessagePortChannel to WebCore
https://bugs.webkit.org/show_bug.cgi?id=109845
Reviewed by Adam Barth.
Part of a larger refactoring series; see tracking bug 106829.
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* dom/default/chromium: Added.
* dom/default/chromium/PlatformMessagePortChannelChromium.cpp: Added.
(WebCore):
(WebCore::MessagePortChannel::create):
(WebCore::MessagePortChannel::createChannel):
(WebCore::MessagePortChannel::MessagePortChannel):
(WebCore::MessagePortChannel::~MessagePortChannel):
(WebCore::MessagePortChannel::entangleIfOpen):
(WebCore::MessagePortChannel::disentangle):
(WebCore::MessagePortChannel::postMessageToRemote):
(WebCore::MessagePortChannel::tryGetMessageFromRemote):
(WebCore::MessagePortChannel::close):
(WebCore::MessagePortChannel::isConnectedTo):
(WebCore::MessagePortChannel::hasPendingActivity):
(WebCore::MessagePortChannel::locallyEntangledPort):
(WebCore::PlatformMessagePortChannel::create):
(WebCore::PlatformMessagePortChannel::PlatformMessagePortChannel):
(WebCore::PlatformMessagePortChannel::~PlatformMessagePortChannel):
(WebCore::PlatformMessagePortChannel::createChannel):
(WebCore::PlatformMessagePortChannel::messageAvailable):
(WebCore::PlatformMessagePortChannel::entangleIfOpen):
(WebCore::PlatformMessagePortChannel::disentangle):
(WebCore::PlatformMessagePortChannel::postMessageToRemote):
(WebCore::PlatformMessagePortChannel::tryGetMessageFromRemote):
(WebCore::PlatformMessagePortChannel::close):
(WebCore::PlatformMessagePortChannel::isConnectedTo):
(WebCore::PlatformMessagePortChannel::hasPendingActivity):
(WebCore::PlatformMessagePortChannel::setEntangledChannel):
(WebCore::PlatformMessagePortChannel::webChannelRelease):
* dom/default/chromium/PlatformMessagePortChannelChromium.h: Added.
(WebKit):
(WebCore):
(PlatformMessagePortChannel):
2013-02-14 Chris Fleizach <cfleizach@apple.com>
Remove Leopard Accessibility support from WebCore (now that no port builds on Leopard)
https://bugs.webkit.org/show_bug.cgi?id=90250
Reviewed by Eric Seidel.
The Leopard era checks for accessibility lists and accessibility tables can be removed now.
* accessibility/AccessibilityARIAGrid.cpp:
(WebCore):
* accessibility/AccessibilityARIAGrid.h:
(AccessibilityARIAGrid):
(WebCore::AccessibilityARIAGrid::isTableExposableThroughAccessibility):
* accessibility/AccessibilityList.cpp:
(WebCore::AccessibilityList::computeAccessibilityIsIgnored):
* accessibility/AccessibilityList.h:
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::AccessibilityTable):
(WebCore::AccessibilityTable::init):
* accessibility/AccessibilityTable.h:
(AccessibilityTable):
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(createAccessibilityRoleMap):
2013-02-14 Bear Travis <betravis@adobe.com>
Make outside-shape the default value for shape-inside
https://bugs.webkit.org/show_bug.cgi?id=109605
Reviewed by Levi Weintraub.
Creating a single reference outside-shape value and setting it as the default
for shape-inside.
Existing tests cover the default value, just updating them to use outside-shape.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::initialShapeInside): Define a local static outside-shape
value.
(WebCore):
* rendering/style/RenderStyle.h: Move the initialShapeInside method to the .cpp
file.
2013-02-14 Min Qin <qinmin@chromium.org>
Passing alpha to DeferredImageDecoder once decoding completes
https://bugs.webkit.org/show_bug.cgi?id=108892
Reviewed by Stephen White.
We should pass hasAlpha value back to the DeferredImageDecoder once decoding is completed
Added unit tests in ImageFrameGeneratorTest.
* platform/graphics/chromium/DeferredImageDecoder.cpp:
(WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
* platform/graphics/chromium/ImageFrameGenerator.cpp:
(WebCore::ImageFrameGenerator::tryToScale):
(WebCore::ImageFrameGenerator::decode):
* platform/graphics/chromium/LazyDecodingPixelRef.cpp:
(WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
(WebCore::LazyDecodingPixelRef::onUnlockPixels):
* platform/graphics/chromium/LazyDecodingPixelRef.h:
(WebCore::LazyDecodingPixelRef::hasAlpha):
(LazyDecodingPixelRef):
* platform/graphics/chromium/ScaledImageFragment.cpp:
(WebCore::ScaledImageFragment::ScaledImageFragment):
* platform/graphics/chromium/ScaledImageFragment.h:
(WebCore::ScaledImageFragment::create):
(ScaledImageFragment):
(WebCore::ScaledImageFragment::hasAlpha):
2013-02-14 David Grogan <dgrogan@chromium.org>
IndexedDB: Add a few more histogram calls
https://bugs.webkit.org/show_bug.cgi?id=109762
Reviewed by Tony Chang.
A few places where commits could fail weren't being logged.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::deleteDatabase):
(WebCore::IDBBackingStore::Transaction::commit):
2013-02-14 Tony Chang <tony@chromium.org>
Padding and border changes doesn't trigger relayout of children
https://bugs.webkit.org/show_bug.cgi?id=109639
Reviewed by Kent Tamura.
In RenderBlock::layoutBlock, we only relayout our children if our logical width
changes. This misses cases where our logical width doesn't change (i.e., padding
or border changes), but our content width does change.
This is a more general case of bug 104997.
Test: fast/block/dynamic-padding-border.html
* rendering/RenderBox.cpp:
(WebCore::borderOrPaddingLogicalWidthChanged): Only check if the logical width changed.
(WebCore::RenderBox::styleDidChange): Drop the border-box condition since this can happen
even without border-box box sizing.
2013-02-14 Peter Rybin <prybin@chromium.org>
Web Inspector: fix closure compilation warnings caused by setVariableValue change
https://bugs.webkit.org/show_bug.cgi?id=109488
Reviewed by Pavel Feldman.
Annotations are fixed as required by closure compiler.
Parameters in Inspector.json are reordered as required.
* inspector/InjectedScriptExterns.js:
(InjectedScriptHost.prototype.setFunctionVariableValue):
(JavaScriptCallFrame.prototype.setVariableValue):
* inspector/InjectedScriptSource.js:
(.):
* inspector/Inspector.json:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::setVariableValue):
* inspector/InspectorDebuggerAgent.h:
(InspectorDebuggerAgent):
2013-02-14 Tommy Widenflycht <tommyw@google.com>
MediaStream API: RTCDataChannel triggers a use-after-free
https://bugs.webkit.org/show_bug.cgi?id=109806
Reviewed by Adam Barth.
Making sure RTCPeerConnection::stop() is always called at least once.
Also making sure that RTCDataChannels state gets set to Closed correctly.
Hard to test in WebKit but covered by Chromium tests.
* Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::stop):
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::~RTCPeerConnection):
(WebCore::RTCPeerConnection::stop):
2013-02-14 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: [Regression] When several consecutive characters are typed each of them is marked as undoable state.
https://bugs.webkit.org/show_bug.cgi?id=109823
Reviewed by Pavel Feldman.
* inspector/front-end/TextEditorModel.js:
(WebInspector.TextEditorModel.endsWithBracketRegex.):
2013-02-14 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r142820.
http://trac.webkit.org/changeset/142820
https://bugs.webkit.org/show_bug.cgi?id=109839
Causing crashes on chromium canaries (Requested by atwilson_
on #webkit).
* dom/Document.cpp:
(WebCore::Document::updateLayout):
(WebCore::Document::implicitClose):
* rendering/RenderQuote.h:
(RenderQuote):
* rendering/RenderView.cpp:
* rendering/RenderView.h:
2013-02-14 Mario Sanchez Prada <mario.prada@samsung.com>
[GTK] Missing call to g_object_ref while retrieving accessible table cells
https://bugs.webkit.org/show_bug.cgi?id=106903
Reviewed by Martin Robinson.
Add missing extra ref to implementation of atk_table_ref_at().
Test: accessibility/table-cell-for-column-and-row-crash.html
* accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
(webkitAccessibleTableRefAt): This method transfers full ownership
over the returned AtkObject, so an extra reference is needed here.
2013-02-14 Mike Fenton <mifenton@rim.com>
[BlackBerry] Update keyboard event details to match platform details.
https://bugs.webkit.org/show_bug.cgi?id=109693
Reviewed by Yong Li.
PR 220170.
Update the keyboard event details to match the
platform details available.
Rename helper function to better describe the conversion.
Reviewed Internally by Nima Ghanavatian and Gen Mak.
* platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
(WebCore::windowsKeyCodeForBlackBerryKeycode):
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2013-02-08 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: expose did{Begin,Cancel}Frame() and {will,did}Composite() on WebDebToolsAgent
https://bugs.webkit.org/show_bug.cgi?id=109192
Reviewed by Pavel Feldman.
- remove frame and compositing instrumentation methods from InspectorInstrumentation;
- expose those methods on InspectorController instead.
* WebCore.exp.in:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::didBeginFrame):
(WebCore):
(WebCore::InspectorController::didCancelFrame):
(WebCore::InspectorController::willComposite):
(WebCore::InspectorController::didComposite):
* inspector/InspectorController.h:
(InspectorController):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
* testing/Internals.cpp:
(WebCore::Internals::emitInspectorDidBeginFrame):
(WebCore::Internals::emitInspectorDidCancelFrame):
2013-02-14 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Fixed a layout regression in CanvasProfileView.
https://bugs.webkit.org/show_bug.cgi?id=109835
Reviewed by Pavel Feldman.
Changed splitView.css to supported nested SplitView instances.
* inspector/front-end/splitView.css:
(.split-view-vertical > .split-view-contents):
(.split-view-vertical > .split-view-contents-first):
(.split-view-vertical > .split-view-contents-first.maximized):
(.split-view-vertical > .split-view-contents-second):
(.split-view-vertical > .split-view-contents-second.maximized):
(.split-view-horizontal > .split-view-contents):
(.split-view-horizontal > .split-view-contents-first):
(.split-view-horizontal > .split-view-contents-first.maximized):
(.split-view-horizontal > .split-view-contents-second):
(.split-view-horizontal > .split-view-contents-second.maximized):
(.split-view-vertical > .split-view-sidebar.split-view-contents-first:not(.maximized)):
(.split-view-vertical > .split-view-sidebar.split-view-contents-second:not(.maximized)):
(.split-view-horizontal > .split-view-sidebar.split-view-contents-first:not(.maximized)):
(.split-view-horizontal > .split-view-sidebar.split-view-contents-second:not(.maximized)):
(.split-view-vertical > .split-view-resizer):
(.split-view-horizontal > .split-view-resizer):
2013-02-14 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Color picker should not be available in Computed Styles pane.
https://bugs.webkit.org/show_bug.cgi?id=109697
Reviewed by Alexander Pavlov.
Changed the parentPane parameter of WebInspector.ComputedStylePropertiesSection to the correct value
(the ComputedStyleSidebarPane instance).
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype._rebuildSectionsForStyleRules):
2013-02-14 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: don't create static local string for program literal in InspectorTimelineAgent
https://bugs.webkit.org/show_bug.cgi?id=109811
Reviewed by Pavel Feldman.
Use const char* constant value instead of creating String from it in thread-unsafe
static local variable.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
2013-02-14 Pan Deng <pan.deng@intel.com>
[Web Inspector] Fix initiator name issue in reload scenario for Network Panel.
https://bugs.webkit.org/show_bug.cgi?id=108746.
Reviewed by Vsevolod Vlasov.
WebInspector.displayNameForURL() does not work as expected in the reload scenario,
for example, "http://www.yahoo.com/" was trimed to "/" at one time, but at another,
the full host name will be displayed.
This fix return host + "/" in the issue scenario, and keep with get displayName() in ParsedURL.
No new tests.
* inspector/front-end/ParsedURL.js:
(WebInspector.ParsedURL.prototype.get displayName): append "/" in the display host scenario.
* inspector/front-end/ResourceUtils.js:
(WebInspector.displayNameForURL): add host in the head if url trimed as a "/".
2013-02-14 Alexei Filippov <alph@chromium.org>
Web Inspector: fix to record button remaining red after heap snapshot is taken
https://bugs.webkit.org/show_bug.cgi?id=109804
Reviewed by Yury Semikhatsky.
Revert part of r142243 fix. Namely heap snapshot taking button made
stateless as it was before.
* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel.prototype.toggleRecordButton):
2013-02-14 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Consistently use SecurityOrigin::toRawString() for serialization across the backend code
https://bugs.webkit.org/show_bug.cgi?id=109801
Reviewed by Yury Semikhatsky.
No new tests, as existing tests cover the change.
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::didClearWindowObjectInWorld):
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::buildObjectForFrame):
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::notifyContextCreated):
2013-02-14 Sergio Villar Senin <svillar@igalia.com>
Add logging support to IndexedDB for non-Chromium platforms
https://bugs.webkit.org/show_bug.cgi?id=109809
Reviewed by Kentaro Hara.
Enable logging of IndexedDB through the StorageAPI log channel for
non-Chromium architectures.
No new tests required, we're just enabling logging for IndexedDB
using the currently available logging framework.
* Modules/indexeddb/IDBTracing.h:
2013-02-14 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Remove uriForFile and fileForURI methods from FileSystemMapping.
https://bugs.webkit.org/show_bug.cgi?id=109704
Reviewed by Alexander Pavlov.
Replaced this methods with one line implementation on the only call site.
* inspector/front-end/FileSystemMapping.js:
* inspector/front-end/FileSystemProjectDelegate.js:
(WebInspector.FileSystemProjectDelegate.prototype._filePathForURI):
(WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
(WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
(WebInspector.FileSystemProjectDelegate.prototype._populate):
2013-02-14 Anton Vayvod <avayvod@chromium.org>
[Text Autosizing] Process narrow descendants with the same multiplier for the font size.
https://bugs.webkit.org/show_bug.cgi?id=109573
Reviewed by Julien Chaffraix.
Combine narrow descendants of the same autosizing cluster into a group that is autosized
with the same multiplier.
For example, on sites with a sidebar, sometimes the paragraphs next to the sidebar will have
a large margin individually applied (via a CSS selector), causing them all to individually
appear narrower than their enclosing blockContainingAllText. Rather than making each of
these paragraphs into a separate cluster, we want them all to share the same multiplier, as
if they were a single cluster.
Test: fast/text-autosizing/narrow-descendants-combined.html
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::processClusterInternal):
Common implementation for processCluster() and processCompositeCluster that accepts the
text width and whether the cluster should be autosized as parameters instead of
calculating it inline.
(WebCore::TextAutosizer::processCluster):
Calculates the text width for a single cluster and whether it should be autosized, then
calls processClusterInternal() to apply the multiplier and process the cluster's
descendants.
(WebCore::TextAutosizer::processCompositeCluster):
Calculates the text width for a group of renderers and if the group should be autosized,
then calls processClusterInternal() repeatedly with the same multiplier to apply it and
process all the descendants of the group.
(WebCore::TextAutosizer::clusterShouldBeAutosized):
Calls the multiple renderers version to avoid code duplication.
(WebCore::TextAutosizer::compositeClusterShouldBeAutosized):
The multiple renderers version of clusterShouldBeAutosized.
* rendering/TextAutosizer.h:
Updated method declarations.
2013-02-14 Andrey Adaikin <aandrey@chromium.org>
Look into possibilities of typedef in webkit idl files
https://bugs.webkit.org/show_bug.cgi?id=52340
Reviewed by Kentaro Hara.
Add typedef support for WebKit IDL parser.
Drive by: fixed a bug of generating "unrestrictedfloat" without a space.
Added a new IDL test TestTypedefs.idl. The results were generated without typedefs.
* bindings/scripts/IDLParser.pm:
(assertNoExtendedAttributesInTypedef):
(parseDefinitions):
(applyTypedefs):
(applyTypedefsForSignature):
(parseTypedef):
(parseUnrestrictedFloatType):
* bindings/scripts/test/CPP/WebDOMTestTypedefs.cpp: Added.
(WebDOMTestTypedefs::WebDOMTestTypedefsPrivate::WebDOMTestTypedefsPrivate):
(WebDOMTestTypedefs::WebDOMTestTypedefsPrivate):
(WebDOMTestTypedefs::WebDOMTestTypedefs):
(WebDOMTestTypedefs::operator=):
(WebDOMTestTypedefs::impl):
(WebDOMTestTypedefs::~WebDOMTestTypedefs):
(WebDOMTestTypedefs::unsignedLongLongAttr):
(WebDOMTestTypedefs::setUnsignedLongLongAttr):
(WebDOMTestTypedefs::immutableSerializedScriptValue):
(WebDOMTestTypedefs::setImmutableSerializedScriptValue):
(WebDOMTestTypedefs::func):
(WebDOMTestTypedefs::multiTransferList):
(WebDOMTestTypedefs::setShadow):
(WebDOMTestTypedefs::nullableArrayArg):
(WebDOMTestTypedefs::immutablePointFunction):
(toWebCore):
(toWebKit):
* bindings/scripts/test/CPP/WebDOMTestTypedefs.h: Added.
(WebCore):
(WebDOMTestTypedefs):
* bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp: Added.
(_WebKitDOMTestTypedefsPrivate):
(WebKit):
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestTypedefs):
(webkit_dom_test_typedefs_finalize):
(webkit_dom_test_typedefs_set_property):
(webkit_dom_test_typedefs_get_property):
(webkit_dom_test_typedefs_constructor):
(webkit_dom_test_typedefs_class_init):
(webkit_dom_test_typedefs_init):
(webkit_dom_test_typedefs_func):
(webkit_dom_test_typedefs_multi_transfer_list):
(webkit_dom_test_typedefs_set_shadow):
(webkit_dom_test_typedefs_nullable_array_arg):
(webkit_dom_test_typedefs_immutable_point_function):
(webkit_dom_test_typedefs_string_array_function):
(webkit_dom_test_typedefs_get_unsigned_long_long_attr):
(webkit_dom_test_typedefs_set_unsigned_long_long_attr):
(webkit_dom_test_typedefs_get_immutable_serialized_script_value):
(webkit_dom_test_typedefs_set_immutable_serialized_script_value):
* bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h: Added.
(_WebKitDOMTestTypedefs):
(_WebKitDOMTestTypedefsClass):
* bindings/scripts/test/GObject/WebKitDOMTestTypedefsPrivate.h: Added.
(WebKit):
* bindings/scripts/test/JS/JSTestTypedefs.cpp: Added.
(WebCore):
(WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
(WebCore::JSTestTypedefsConstructor::JSTestTypedefsConstructor):
(WebCore::JSTestTypedefsConstructor::finishCreation):
(WebCore::JSTestTypedefsConstructor::getOwnPropertySlot):
(WebCore::JSTestTypedefsConstructor::getOwnPropertyDescriptor):
(WebCore::JSTestTypedefsConstructor::getConstructData):
(WebCore::JSTestTypedefsPrototype::self):
(WebCore::JSTestTypedefsPrototype::getOwnPropertySlot):
(WebCore::JSTestTypedefsPrototype::getOwnPropertyDescriptor):
(WebCore::JSTestTypedefs::JSTestTypedefs):
(WebCore::JSTestTypedefs::finishCreation):
(WebCore::JSTestTypedefs::createPrototype):
(WebCore::JSTestTypedefs::destroy):
(WebCore::JSTestTypedefs::~JSTestTypedefs):
(WebCore::JSTestTypedefs::getOwnPropertySlot):
(WebCore::JSTestTypedefs::getOwnPropertyDescriptor):
(WebCore::jsTestTypedefsUnsignedLongLongAttr):
(WebCore::jsTestTypedefsImmutableSerializedScriptValue):
(WebCore::jsTestTypedefsConstructorTestSubObj):
(WebCore::jsTestTypedefsConstructor):
(WebCore::JSTestTypedefs::put):
(WebCore::setJSTestTypedefsUnsignedLongLongAttr):
(WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
(WebCore::JSTestTypedefs::getConstructor):
(WebCore::jsTestTypedefsPrototypeFunctionFunc):
(WebCore::jsTestTypedefsPrototypeFunctionMultiTransferList):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
(WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
(WebCore::isObservable):
(WebCore::JSTestTypedefsOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestTypedefsOwner::finalize):
(WebCore::toJS):
(WebCore::toTestTypedefs):
* bindings/scripts/test/JS/JSTestTypedefs.h: Added.
(WebCore):
(JSTestTypedefs):
(WebCore::JSTestTypedefs::create):
(WebCore::JSTestTypedefs::createStructure):
(WebCore::JSTestTypedefs::impl):
(WebCore::JSTestTypedefs::releaseImpl):
(WebCore::JSTestTypedefs::releaseImplIfNotNull):
(JSTestTypedefsOwner):
(WebCore::wrapperOwner):
(WebCore::wrapperContext):
(JSTestTypedefsPrototype):
(WebCore::JSTestTypedefsPrototype::create):
(WebCore::JSTestTypedefsPrototype::createStructure):
(WebCore::JSTestTypedefsPrototype::JSTestTypedefsPrototype):
(JSTestTypedefsConstructor):
(WebCore::JSTestTypedefsConstructor::create):
(WebCore::JSTestTypedefsConstructor::createStructure):
* bindings/scripts/test/ObjC/DOMTestTypedefs.h: Added.
* bindings/scripts/test/ObjC/DOMTestTypedefs.mm: Added.
(-[DOMTestTypedefs dealloc]):
(-[DOMTestTypedefs finalize]):
(-[DOMTestTypedefs unsignedLongLongAttr]):
(-[DOMTestTypedefs setUnsignedLongLongAttr:]):
(-[DOMTestTypedefs immutableSerializedScriptValue]):
(-[DOMTestTypedefs setImmutableSerializedScriptValue:]):
(-[DOMTestTypedefs multiTransferList:tx:second:txx:]):
(-[DOMTestTypedefs setShadow:height:blur:color:alpha:]):
(-[DOMTestTypedefs immutablePointFunction]):
(core):
(kit):
* bindings/scripts/test/ObjC/DOMTestTypedefsInternal.h: Added.
(WebCore):
* bindings/scripts/test/TestTypedefs.idl: Added.
* bindings/scripts/test/V8/V8TestTypedefs.cpp: Added.
(WebCore):
(WebCore::checkTypeOrDieTrying):
(TestTypedefsV8Internal):
(WebCore::TestTypedefsV8Internal::V8_USE):
(WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrGetter):
(WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrSetter):
(WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrGetter):
(WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrSetter):
(WebCore::TestTypedefsV8Internal::TestTypedefsConstructorGetter):
(WebCore::TestTypedefsV8Internal::TestTypedefsReplaceableAttrSetter):
(WebCore::TestTypedefsV8Internal::funcCallback):
(WebCore::TestTypedefsV8Internal::multiTransferListCallback):
(WebCore::TestTypedefsV8Internal::setShadowCallback):
(WebCore::TestTypedefsV8Internal::methodWithSequenceArgCallback):
(WebCore::TestTypedefsV8Internal::nullableArrayArgCallback):
(WebCore::TestTypedefsV8Internal::funcWithClampCallback):
(WebCore::TestTypedefsV8Internal::immutablePointFunctionCallback):
(WebCore::TestTypedefsV8Internal::stringArrayFunctionCallback):
(WebCore::V8TestTypedefs::constructorCallback):
(WebCore::ConfigureV8TestTypedefsTemplate):
(WebCore::V8TestTypedefs::GetRawTemplate):
(WebCore::V8TestTypedefs::GetTemplate):
(WebCore::V8TestTypedefs::HasInstance):
(WebCore::V8TestTypedefs::createWrapper):
(WebCore::V8TestTypedefs::derefObject):
* bindings/scripts/test/V8/V8TestTypedefs.h: Added.
(WebCore):
(V8TestTypedefs):
(WebCore::V8TestTypedefs::toNative):
(WebCore::V8TestTypedefs::installPerContextProperties):
(WebCore::V8TestTypedefs::installPerContextPrototypeProperties):
(WebCore::wrap):
(WebCore::toV8):
(WebCore::toV8Fast):
2013-02-13 Kentaro Hara <haraken@chromium.org>
[V8] Rename XXXAccessorGetter() to XXXAttrGetterCustom(),
and XXXAccessorSetter() to XXXAttrSetterCustom()
https://bugs.webkit.org/show_bug.cgi?id=109679
Reviewed by Adam Barth.
For naming consistency and clarification.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateHeaderCustomCall):
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateImplementation):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
(WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::customAttrAttrGetter):
(WebCore::TestObjV8Internal::customAttrAttrSetter):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
(WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
* bindings/v8/custom/V8BiquadFilterNodeCustom.cpp:
(WebCore::V8BiquadFilterNode::typeAttrSetterCustom):
* bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
(WebCore::V8CanvasRenderingContext2D::strokeStyleAttrGetterCustom):
(WebCore::V8CanvasRenderingContext2D::strokeStyleAttrSetterCustom):
(WebCore::V8CanvasRenderingContext2D::fillStyleAttrGetterCustom):
(WebCore::V8CanvasRenderingContext2D::fillStyleAttrSetterCustom):
* bindings/v8/custom/V8ClipboardCustom.cpp:
(WebCore::V8Clipboard::typesAttrGetterCustom):
* bindings/v8/custom/V8CoordinatesCustom.cpp:
(WebCore::V8Coordinates::altitudeAttrGetterCustom):
(WebCore::V8Coordinates::altitudeAccuracyAttrGetterCustom):
(WebCore::V8Coordinates::headingAttrGetterCustom):
(WebCore::V8Coordinates::speedAttrGetterCustom):
* bindings/v8/custom/V8CustomEventCustom.cpp:
(WebCore::V8CustomEvent::detailAttrGetterCustom):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::eventAttrGetterCustom):
(WebCore::V8DOMWindow::eventAttrSetterCustom):
(WebCore::V8DOMWindow::locationAttrSetterCustom):
(WebCore::V8DOMWindow::openerAttrSetterCustom):
* bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
(WebCore::V8DeviceMotionEvent::accelerationAttrGetterCustom):
(WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAttrGetterCustom):
(WebCore::V8DeviceMotionEvent::rotationRateAttrGetterCustom):
(WebCore::V8DeviceMotionEvent::intervalAttrGetterCustom):
* bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
(WebCore::V8DeviceOrientationEvent::alphaAttrGetterCustom):
(WebCore::V8DeviceOrientationEvent::betaAttrGetterCustom):
(WebCore::V8DeviceOrientationEvent::gammaAttrGetterCustom):
(WebCore::V8DeviceOrientationEvent::absoluteAttrGetterCustom):
* bindings/v8/custom/V8DocumentLocationCustom.cpp:
(WebCore::V8Document::locationAttrGetterCustom):
(WebCore::V8Document::locationAttrSetterCustom):
* bindings/v8/custom/V8EventCustom.cpp:
(WebCore::V8Event::dataTransferAttrGetterCustom):
(WebCore::V8Event::clipboardDataAttrGetterCustom):
* bindings/v8/custom/V8FileReaderCustom.cpp:
(WebCore::V8FileReader::resultAttrGetterCustom):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::allAttrSetterCustom):
* bindings/v8/custom/V8HTMLElementCustom.cpp:
(WebCore::V8HTMLElement::itemValueAttrGetterCustom):
(WebCore::V8HTMLElement::itemValueAttrSetterCustom):
* bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
(WebCore::V8HTMLFrameElement::locationAttrSetterCustom):
* bindings/v8/custom/V8HTMLInputElementCustom.cpp:
(WebCore::V8HTMLInputElement::selectionStartAttrGetterCustom):
(WebCore::V8HTMLInputElement::selectionStartAttrSetterCustom):
(WebCore::V8HTMLInputElement::selectionEndAttrGetterCustom):
(WebCore::V8HTMLInputElement::selectionEndAttrSetterCustom):
(WebCore::V8HTMLInputElement::selectionDirectionAttrGetterCustom):
(WebCore::V8HTMLInputElement::selectionDirectionAttrSetterCustom):
* bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
(WebCore::V8HTMLLinkElement::sizesAttrGetterCustom):
(WebCore::V8HTMLLinkElement::sizesAttrSetterCustom):
* bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
(WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::lengthAttrSetterCustom):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::stateAttrGetterCustom):
* bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
(WebCore::V8JavaScriptCallFrame::scopeChainAttrGetterCustom):
(WebCore::V8JavaScriptCallFrame::thisObjectAttrGetterCustom):
(WebCore::V8JavaScriptCallFrame::typeAttrGetterCustom):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::hashAttrSetterCustom):
(WebCore::V8Location::hostAttrSetterCustom):
(WebCore::V8Location::hostnameAttrSetterCustom):
(WebCore::V8Location::hrefAttrSetterCustom):
(WebCore::V8Location::pathnameAttrSetterCustom):
(WebCore::V8Location::portAttrSetterCustom):
(WebCore::V8Location::protocolAttrSetterCustom):
(WebCore::V8Location::searchAttrSetterCustom):
(WebCore::V8Location::reloadAttrGetterCustom):
(WebCore::V8Location::replaceAttrGetterCustom):
(WebCore::V8Location::assignAttrGetterCustom):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::dataAttrGetterCustom):
(WebCore::V8MessageEvent::portsAttrGetterCustom):
* bindings/v8/custom/V8OscillatorNodeCustom.cpp:
(WebCore::V8OscillatorNode::typeAttrSetterCustom):
* bindings/v8/custom/V8PannerNodeCustom.cpp:
(WebCore::V8PannerNode::panningModelAttrSetterCustom):
(WebCore::V8PannerNode::distanceModelAttrSetterCustom):
* bindings/v8/custom/V8PopStateEventCustom.cpp:
(WebCore::V8PopStateEvent::stateAttrGetterCustom):
* bindings/v8/custom/V8SVGLengthCustom.cpp:
(WebCore::V8SVGLength::valueAttrGetterCustom):
(WebCore::V8SVGLength::valueAttrSetterCustom):
* bindings/v8/custom/V8TrackEventCustom.cpp:
(WebCore::V8TrackEvent::trackAttrGetterCustom):
* bindings/v8/custom/V8WebKitAnimationCustom.cpp:
(WebCore::V8WebKitAnimation::iterationCountAttrGetterCustom):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::V8XMLHttpRequest::responseTextAttrGetterCustom):
(WebCore::V8XMLHttpRequest::responseAttrGetterCustom):
2013-02-14 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: extract DOM counters graph implementation into its own class
https://bugs.webkit.org/show_bug.cgi?id=109796
Reviewed by Alexander Pavlov.
Extracted DOM counters graph implementation into DOMCountersGraph.js leaving
in MemoryStatistics.js only common parts shared with NativeMemoryGraph.js
Added some closure annotations and converted object literals into classes
with named constructors.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/DOMCountersGraph.js: Added.
(WebInspector.DOMCountersGraph):
(WebInspector.DOMCounterUI):
(WebInspector.DOMCountersGraph.Counter):
(WebInspector.DOMCounterUI.prototype.setRange):
(WebInspector.DOMCounterUI.prototype.updateCurrentValue):
(WebInspector.DOMCounterUI.prototype.clearCurrentValueAndMarker):
(WebInspector.DOMCounterUI.prototype.saveImageUnderMarker):
(WebInspector.DOMCounterUI.prototype.restoreImageUnderMarker):
(WebInspector.DOMCounterUI.prototype.discardImageUnderMarker):
(WebInspector.DOMCountersGraph.prototype._createCurrentValuesBar):
(WebInspector.DOMCountersGraph.prototype._createCounterUIList):
(WebInspector.DOMCountersGraph.prototype._createCounterUIList.getNodeCount):
(WebInspector.DOMCountersGraph.prototype._createCounterUIList.getListenerCount):
(WebInspector.DOMCountersGraph.prototype._canvasHeight):
(WebInspector.DOMCountersGraph.prototype._onRecordAdded):
(WebInspector.DOMCountersGraph.prototype._draw):
(WebInspector.DOMCountersGraph.prototype._restoreImageUnderMarker):
(WebInspector.DOMCountersGraph.prototype._saveImageUnderMarker):
(WebInspector.DOMCountersGraph.prototype._drawMarker):
(WebInspector.DOMCountersGraph.prototype._drawGraph):
(WebInspector.DOMCountersGraph.prototype._discardImageUnderMarker):
* inspector/front-end/MemoryStatistics.js:
(WebInspector.MemoryStatistics):
(WebInspector.MemoryStatistics.Counter):
(WebInspector.MemoryStatistics.prototype._createCurrentValuesBar):
(WebInspector.MemoryStatistics.prototype._createCounterUIList):
(WebInspector.MemoryStatistics.prototype.setTopPosition):
(WebInspector.MemoryStatistics.prototype._canvasHeight):
(WebInspector.MemoryStatistics.prototype._onRecordAdded):
(WebInspector.MemoryStatistics.prototype._draw):
(WebInspector.MemoryStatistics.prototype._onClick):
(WebInspector.MemoryStatistics.prototype._onMouseOut):
(WebInspector.MemoryStatistics.prototype._onMouseOver):
(WebInspector.MemoryStatistics.prototype._onMouseMove):
(WebInspector.MemoryStatistics.prototype._restoreImageUnderMarker):
(WebInspector.MemoryStatistics.prototype._drawMarker):
(WebInspector.MemoryStatistics.prototype._discardImageUnderMarker):
* inspector/front-end/NativeMemoryGraph.js:
(WebInspector.NativeMemoryGraph.Counter):
(WebInspector.NativeMemoryGraph.prototype._onRecordAdded.addStatistics):
(WebInspector.NativeMemoryGraph.prototype._onRecordAdded):
(WebInspector.NativeMemoryGraph.prototype._draw):
* inspector/front-end/TimelinePanel.js:
* inspector/front-end/WebKit.qrc:
2013-02-13 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: Report child nodes as direct members of a container node to make them look like a tree in the snapshot.
https://bugs.webkit.org/show_bug.cgi?id=109703
Also we need to traverse the tree from the top root element down to the leaves.
Reviewed by Yury Semikhatsky.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::reportMemoryUsage):
* dom/Node.cpp:
(WebCore::Node::reportMemoryUsage):
* inspector/InspectorMemoryAgent.cpp:
(WebCore):
2013-02-13 Hayato Ito <hayato@chromium.org>
[Shadow DOM] Implements a '::distributed()' pseudo element.
https://bugs.webkit.org/show_bug.cgi?id=82169
Reviewed by Dimitri Glazkov.
Implements a '::distributed()' pseudo element.
See the Shadow DOM specification and the filed bug for the detail.
- http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#selecting-nodes-distributed-to-insertion-points
- https://www.w3.org/Bugs/Public/show_bug.cgi?id=19684
For example, suppose we are given the following DOM tree and shadow tree:
- <A>
- <B>
- <C>
[A's ShadowRoot]
<D>
- <style>
E content::distributed(B C) { color: green; }
- <E>
- <content> (Node B is distributed to this insertion point.)
In this case, the style rule defined in the shadow tree matches node 'C'.
A '::distributed()' pseudo element can not be a pseudo class since
an intersection between matched_elements(some_selector) and
matched_elements(some_selector::distributed(...)) is always an
empty set. A '::distributed()' pseudo element is the first-ever
*functional* pseudo element which takes a parameter, which can be
a selector.
This rule crosses the shadow boundary from a shadow tree to the
tree of its shadow host. That means a rule which includes
'::distributed()' pseudo element is defined in shadow tree, but
the node which is matched in the rule, the subject of the
selector, is outside of the shadow tree. Therefore, we cannot
predict where the subject of the selector will be beforehand.
Current CSS implementation assumes the subject of the selector
must exist in the current scope.
To overcome this issue, DocumentRuleSets now has a instance of
ShadowDistributedRules class. A style rule will be stored in this
instance if the rule includes a '::distributed()' pseudo element.
This class also keeps track of each RuleSet by mapping it with a
scope where the rule was originally defined. In the example, the
scope is A's ShadowRoot. The scope is used to check whether the
left-most matched element (in the example, it's a node 'E') exists
in the scope.
Internally, a '::distributed' pseudo element is represented by a
newly introduced 'ShadowDistributed' relation. That makes an
implementation of SelectorChecker::checkSelector() much simpler.
A transformation from a distributed pseudo element to a
ShadowDistributed is done in parsing stage of CSS.
Since '::distributed()' is an experimental feature, it's actually
prefixed with '-webkit-' and guarded by SHADOW_DOM flag.
Tests: fast/dom/shadow/distributed-pseudo-element-for-shadow-element.html
fast/dom/shadow/distributed-pseudo-element-match-all.html
fast/dom/shadow/distributed-pseudo-element-match-descendant.html
fast/dom/shadow/distributed-pseudo-element-nested.html
fast/dom/shadow/distributed-pseudo-element-no-match.html
fast/dom/shadow/distributed-pseudo-element-reprojection.html
fast/dom/shadow/distributed-pseudo-element-scoped.html
fast/dom/shadow/distributed-pseudo-element-support-selector.html
fast/dom/shadow/distributed-pseudo-element-used-in-selector-list.html
fast/dom/shadow/distributed-pseudo-element-with-any.html
fast/dom/shadow/distributed-pseudo-element.html
* css/CSSGrammar.y.in:
CSS Grammar was updated to support '::distrbuted(selector)'.
This pseudo element is the first pseudo element which can take a selector as a parameter.
* css/CSSParser.cpp:
(WebCore::CSSParser::detectDashToken):
(WebCore::CSSParser::rewriteSpecifiersWithNamespaceIfNeeded):
(WebCore::CSSParser::rewriteSpecifiersWithElementName):
Here we are converting a '::distributed' pseudo element into a
ShadowDistributed relation internally. To support the conversion,
these rewriteSpecifiersXXX functions (formally called
updateSpecifiersXXX) now return the specifiers which may be
converted.
(WebCore::CSSParser::rewriteSpecifiers):
* css/CSSParser.h:
* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::CSSParserSelector):
* css/CSSParserValues.h:
(CSSParserSelector):
(WebCore::CSSParserSelector::functionArgumentSelector):
To hold an intermediate selector which appears at the position of an argument in
functional pseudo element when parsing CSS.
(WebCore::CSSParserSelector::setFunctionArgumentSelector):
(WebCore::CSSParserSelector::isDistributedPseudoElement):
* css/CSSSelector.cpp:
Add new pseudo element, PseudoDistributed, and its internal representation, ShadowDistributed relation.
(WebCore::CSSSelector::pseudoId):
(WebCore::nameToPseudoTypeMap):
(WebCore::CSSSelector::extractPseudoType):
(WebCore::CSSSelector::selectorText):
* css/CSSSelector.h:
(CSSSelector):
(WebCore):
(WebCore::CSSSelector::isDistributedPseudoElement):
(WebCore::CSSSelector::isShadowDistributed):
* css/CSSSelectorList.cpp:
(WebCore):
(SelectorHasShadowDistributed):
(WebCore::SelectorHasShadowDistributed::operator()):
(WebCore::CSSSelectorList::hasShadowDistributedAt):
* css/CSSSelectorList.h:
(CSSSelectorList):
* css/DocumentRuleSets.cpp:
(WebCore):
(WebCore::ShadowDistributedRules::addRule):
Every CSS rule which includes '::distributed(...)' should be managed by calling this function.
(WebCore::ShadowDistributedRules::collectMatchRequests):
(WebCore::DocumentRuleSets::resetAuthorStyle):
* css/DocumentRuleSets.h:
(WebCore):
(ShadowDistributedRules):
(WebCore::ShadowDistributedRules::clear):
(DocumentRuleSets):
(WebCore::DocumentRuleSets::shadowDistributedRules)
DocumentRuleSets owns an instance of ShadowDistributedRules.
* css/RuleSet.cpp:
(WebCore::RuleSet::addChildRules):
Updated to check whether the rule contains '::distributed()' or not.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::match):
Support ShadowDistributed relation. Check all possible insertion points where a node is distributed.
* css/SelectorChecker.h:
(WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
Adds enum of BehaviorAtBoundary. '::distributed()' is the only
rule which uses 'CrossedBoundary' since it is the only rule which
crosses shadow boundaries.
(SelectorCheckingContext):
* css/SelectorFilter.cpp:
(WebCore::SelectorFilter::collectIdentifierHashes):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRules):
(WebCore::StyleResolver::matchAuthorRules):
(WebCore::StyleResolver::collectMatchingRulesForList):
(WebCore::StyleResolver::ruleMatches):
* css/StyleResolver.h:
(MatchRequest):
(WebCore::MatchRequest::MatchRequest): Add behaviorAtBoundary field.
(WebCore):
(StyleResolver):
* html/shadow/InsertionPoint.cpp:
(WebCore::collectInsertionPointsWhereNodeIsDistributed):
(WebCore):
* html/shadow/InsertionPoint.h:
(WebCore):
2013-02-13 Kentaro Hara <haraken@chromium.org>
[V8] Generate wrapper methods for custom methods
https://bugs.webkit.org/show_bug.cgi?id=109678
Reviewed by Adam Barth.
Currently V8 directly calls back custom methods written
in custom binding files. This makes it impossible for code
generators to hook custom methods (e.g. Code generators cannot
insert a code for FeatureObservation into custom methods).
To solve the problem, we should generate wrapper methods for
custom methods.
No tests. No change in behavior.
* page/DOMWindow.idl: Removed overloaded methods. The fact that methods in an IDL
file are overloaded but they are not overloaded in custom bindings confuses code
generators. (For some reason, this problem hasn't appeared before this change.)
* xml/XMLHttpRequest.idl: Ditto.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateDomainSafeFunctionGetter):
(GenerateEventListenerCallback):
(GenerateFunctionCallback):
(GenerateNonStandardFunction):
(GenerateImplementation):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalMethod3Callback):
(TestInterfaceV8Internal):
(WebCore):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::customMethodCallback):
(TestObjV8Internal):
(WebCore::TestObjV8Internal::customMethodWithArgsCallback):
(WebCore::TestObjV8Internal::classMethod2Callback):
(WebCore):
(WebCore::ConfigureV8TestObjTemplate):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/v8/custom/V8ClipboardCustom.cpp:
(WebCore::V8Clipboard::clearDataCallbackCustom):
(WebCore::V8Clipboard::setDragImageCallbackCustom):
* bindings/v8/custom/V8ConsoleCustom.cpp:
(WebCore::V8Console::traceCallbackCustom):
(WebCore::V8Console::assertCallbackCustom):
(WebCore::V8Console::profileCallbackCustom):
(WebCore::V8Console::profileEndCallbackCustom):
* bindings/v8/custom/V8CryptoCustom.cpp:
(WebCore::V8Crypto::getRandomValuesCallbackCustom):
* bindings/v8/custom/V8DOMFormDataCustom.cpp:
(WebCore::V8DOMFormData::appendCallbackCustom):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::addEventListenerCallbackCustom):
(WebCore::V8DOMWindow::removeEventListenerCallbackCustom):
(WebCore::V8DOMWindow::postMessageCallbackCustom):
(WebCore::V8DOMWindow::toStringCallbackCustom):
(WebCore::V8DOMWindow::releaseEventsCallbackCustom):
(WebCore::V8DOMWindow::captureEventsCallbackCustom):
(WebCore::V8DOMWindow::showModalDialogCallbackCustom):
(WebCore::V8DOMWindow::openCallbackCustom):
(WebCore::V8DOMWindow::setTimeoutCallbackCustom):
(WebCore::V8DOMWindow::setIntervalCallbackCustom):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::V8DataView::getInt8CallbackCustom):
(WebCore::V8DataView::getUint8CallbackCustom):
(WebCore::V8DataView::setInt8CallbackCustom):
(WebCore::V8DataView::setUint8CallbackCustom):
* bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
(WebCore::V8DedicatedWorkerContext::postMessageCallbackCustom):
* bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
(WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallbackCustom):
* bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
(WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallbackCustom):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::evaluateCallbackCustom):
(WebCore::V8Document::createTouchListCallbackCustom):
* bindings/v8/custom/V8GeolocationCustom.cpp:
(WebCore::V8Geolocation::getCurrentPositionCallbackCustom):
(WebCore::V8Geolocation::watchPositionCallbackCustom):
* bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
(WebCore::V8HTMLAllCollection::itemCallbackCustom):
(WebCore::V8HTMLAllCollection::namedItemCallbackCustom):
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::V8HTMLCanvasElement::getContextCallbackCustom):
(WebCore::V8HTMLCanvasElement::toDataURLCallbackCustom):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::writeCallbackCustom):
(WebCore::V8HTMLDocument::writelnCallbackCustom):
(WebCore::V8HTMLDocument::openCallbackCustom):
* bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
(WebCore::V8HTMLFormControlsCollection::namedItemCallbackCustom):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::v8HTMLImageElementConstructorCallbackCustom):
(WebCore::V8HTMLImageElementConstructor::GetTemplate):
* bindings/v8/custom/V8HTMLInputElementCustom.cpp:
(WebCore::V8HTMLInputElement::setSelectionRangeCallbackCustom):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::namedItemCallbackCustom):
(WebCore::V8HTMLOptionsCollection::removeCallbackCustom):
(WebCore::V8HTMLOptionsCollection::addCallbackCustom):
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
(WebCore::V8HTMLSelectElement::removeCallbackCustom):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::pushStateCallbackCustom):
(WebCore::V8History::replaceStateCallbackCustom):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::V8InjectedScriptHost::inspectedObjectCallbackCustom):
(WebCore::V8InjectedScriptHost::internalConstructorNameCallbackCustom):
(WebCore::V8InjectedScriptHost::isHTMLAllCollectionCallbackCustom):
(WebCore::V8InjectedScriptHost::typeCallbackCustom):
(WebCore::V8InjectedScriptHost::functionDetailsCallbackCustom):
(WebCore::V8InjectedScriptHost::getInternalPropertiesCallbackCustom):
(WebCore::V8InjectedScriptHost::getEventListenersCallbackCustom):
(WebCore::V8InjectedScriptHost::inspectCallbackCustom):
(WebCore::V8InjectedScriptHost::databaseIdCallbackCustom):
(WebCore::V8InjectedScriptHost::storageIdCallbackCustom):
(WebCore::V8InjectedScriptHost::evaluateCallbackCustom):
(WebCore::V8InjectedScriptHost::setFunctionVariableValueCallbackCustom):
* bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
(WebCore::V8InspectorFrontendHost::platformCallbackCustom):
(WebCore::V8InspectorFrontendHost::portCallbackCustom):
(WebCore::V8InspectorFrontendHost::showContextMenuCallbackCustom):
(WebCore::V8InspectorFrontendHost::recordActionTakenCallbackCustom):
(WebCore::V8InspectorFrontendHost::recordPanelShownCallbackCustom):
(WebCore::V8InspectorFrontendHost::recordSettingChangedCallbackCustom):
* bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
(WebCore::V8JavaScriptCallFrame::evaluateCallbackCustom):
(WebCore::V8JavaScriptCallFrame::restartCallbackCustom):
(WebCore::V8JavaScriptCallFrame::setVariableValueCallbackCustom):
(WebCore::V8JavaScriptCallFrame::scopeTypeCallbackCustom):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::reloadAccessorGetter):
(WebCore::V8Location::replaceAccessorGetter):
(WebCore::V8Location::assignAccessorGetter):
(WebCore::V8Location::reloadCallbackCustom):
(WebCore::V8Location::replaceCallbackCustom):
(WebCore::V8Location::assignCallbackCustom):
(WebCore::V8Location::valueOfCallbackCustom):
(WebCore::V8Location::toStringCallbackCustom):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::initMessageEventCallbackCustom):
(WebCore::V8MessageEvent::webkitInitMessageEventCallbackCustom):
* bindings/v8/custom/V8MessagePortCustom.cpp:
(WebCore::V8MessagePort::postMessageCallbackCustom):
* bindings/v8/custom/V8NodeCustom.cpp:
(WebCore::V8Node::insertBeforeCallbackCustom):
(WebCore::V8Node::replaceChildCallbackCustom):
(WebCore::V8Node::removeChildCallbackCustom):
(WebCore::V8Node::appendChildCallbackCustom):
* bindings/v8/custom/V8NotificationCenterCustom.cpp:
(WebCore::V8NotificationCenter::requestPermissionCallbackCustom):
* bindings/v8/custom/V8NotificationCustom.cpp:
(WebCore::V8Notification::requestPermissionCallbackCustom):
* bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
(WebCore::V8SQLResultSetRowList::itemCallbackCustom):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::V8SQLTransaction::executeSqlCallbackCustom):
* bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
(WebCore::V8SQLTransactionSync::executeSqlCallbackCustom):
* bindings/v8/custom/V8SVGLengthCustom.cpp:
(WebCore::V8SVGLength::convertToSpecifiedUnitsCallbackCustom):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::V8WebGLRenderingContext::getAttachedShadersCallbackCustom):
(WebCore::V8WebGLRenderingContext::getBufferParameterCallbackCustom):
(WebCore::V8WebGLRenderingContext::getExtensionCallbackCustom):
(WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallbackCustom):
(WebCore::V8WebGLRenderingContext::getParameterCallbackCustom):
(WebCore::V8WebGLRenderingContext::getProgramParameterCallbackCustom):
(WebCore::V8WebGLRenderingContext::getRenderbufferParameterCallbackCustom):
(WebCore::V8WebGLRenderingContext::getShaderParameterCallbackCustom):
(WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallbackCustom):
(WebCore::V8WebGLRenderingContext::getTexParameterCallbackCustom):
(WebCore::V8WebGLRenderingContext::getUniformCallbackCustom):
(WebCore::V8WebGLRenderingContext::getVertexAttribCallbackCustom):
(WebCore::V8WebGLRenderingContext::uniform1fvCallbackCustom):
(WebCore::V8WebGLRenderingContext::uniform1ivCallbackCustom):
(WebCore::V8WebGLRenderingContext::uniform2fvCallbackCustom):
(WebCore::V8WebGLRenderingContext::uniform2ivCallbackCustom):
(WebCore::V8WebGLRenderingContext::uniform3fvCallbackCustom):
(WebCore::V8WebGLRenderingContext::uniform3ivCallbackCustom):
(WebCore::V8WebGLRenderingContext::uniform4fvCallbackCustom):
(WebCore::V8WebGLRenderingContext::uniform4ivCallbackCustom):
(WebCore::V8WebGLRenderingContext::uniformMatrix2fvCallbackCustom):
(WebCore::V8WebGLRenderingContext::uniformMatrix3fvCallbackCustom):
(WebCore::V8WebGLRenderingContext::uniformMatrix4fvCallbackCustom):
(WebCore::V8WebGLRenderingContext::vertexAttrib1fvCallbackCustom):
(WebCore::V8WebGLRenderingContext::vertexAttrib2fvCallbackCustom):
(WebCore::V8WebGLRenderingContext::vertexAttrib3fvCallbackCustom):
(WebCore::V8WebGLRenderingContext::vertexAttrib4fvCallbackCustom):
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::V8WorkerContext::importScriptsCallbackCustom):
(WebCore::V8WorkerContext::setTimeoutCallbackCustom):
(WebCore::V8WorkerContext::setIntervalCallbackCustom):
* bindings/v8/custom/V8WorkerCustom.cpp:
(WebCore::V8Worker::postMessageCallbackCustom):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::V8XMLHttpRequest::openCallbackCustom):
(WebCore::V8XMLHttpRequest::sendCallbackCustom):
* bindings/v8/custom/V8XSLTProcessorCustom.cpp:
(WebCore::V8XSLTProcessor::setParameterCallbackCustom):
(WebCore::V8XSLTProcessor::getParameterCallbackCustom):
(WebCore::V8XSLTProcessor::removeParameterCallbackCustom):
2013-02-13 Praveen R Jadhav <praveen.j@samsung.com>
JSObject for ChannelSplitterNode and ChannelMergerNode are not created.
https://bugs.webkit.org/show_bug.cgi?id=109542
Reviewed by Kentaro Hara.
"JSGenerateToJSObject" should be included in IDL files
of ChannelSplitterNode and ChannelMergerNode in WebAudio.
This ensures html files to access corresponding objects.
* Modules/webaudio/ChannelMergerNode.idl:
* Modules/webaudio/ChannelSplitterNode.idl:
2013-02-13 Vineet Chaudhary <rgf748@motorola.com>
[Regression] After r142831 collection-null-like-arguments.html layout test failing
https://bugs.webkit.org/show_bug.cgi?id=109780
Reviewed by Kentaro Hara.
No new tests. LayoutTests/fast/dom/collection-null-like-arguments.html
Should pass now.
* bindings/js/JSHTMLAllCollectionCustom.cpp: Return null for namedItem() only.
(WebCore::getNamedItems):
(WebCore::JSHTMLAllCollection::namedItem):
* bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Ditto.
(WebCore::getNamedItems):
(WebCore::JSHTMLFormControlsCollection::namedItem):
* bindings/js/JSHTMLOptionsCollectionCustom.cpp: Ditto.
(WebCore::getNamedItems):
(WebCore::JSHTMLOptionsCollection::namedItem):
2013-02-13 Soo-Hyun Choi <sh9.choi@samsung.com>
Fix indentation error in MediaPlayerPrivateGStreamer.h
https://bugs.webkit.org/show_bug.cgi?id=109768
Reviewed by Kentaro Hara.
No new tests as this patch just changes indentation style.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::hasVideo):
(WebCore::MediaPlayerPrivateGStreamer::hasAudio):
(WebCore::MediaPlayerPrivateGStreamer::engineDescription):
(WebCore::MediaPlayerPrivateGStreamer::isLiveStream):
2013-02-13 Adam Barth <abarth@webkit.org>
TokenPreloadScanner should be (mostly!) thread-safe
https://bugs.webkit.org/show_bug.cgi?id=109760
Reviewed by Eric Seidel.
This patch makes the bulk of TokenPreloadScanner thread-safe. The one
remaining wart is processPossibleBaseTag because it wants to grub
around in the base tag's attributes. I have a plan for that, but it's
going to need to wait for the next patch.
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::isStartTag):
(WebCore::isStartOrEndTag):
(WebCore::TokenPreloadScanner::identifierFor):
(WebCore::TokenPreloadScanner::inititatorFor):
(WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(TokenPreloadScanner::StartTagScanner):
(WebCore::TokenPreloadScanner::processPossibleTemplateTag):
(WebCore::TokenPreloadScanner::processPossibleStyleTag):
(WebCore::TokenPreloadScanner::processPossibleBaseTag):
(WebCore::TokenPreloadScanner::scan):
(WebCore::HTMLPreloadScanner::scan):
* html/parser/HTMLPreloadScanner.h:
(WebCore):
2013-02-13 Adam Barth <abarth@webkit.org>
StartTagScanner should be thread-safe
https://bugs.webkit.org/show_bug.cgi?id=109750
Reviewed by Eric Seidel.
This patch weens the StartTagScanner off AtomicString using two
techniques:
1) This patch creates an enum to represent the four tag names that the
StartTagScanner needs to understand. Using an enum is better than
using an AtomicString because we can use the enum on both the main
thread and on the background thread.
2) For attributes, this patch uses threadSafeMatch. We're not able to
use threadSafeMatch everywhere due to performance, but using it for
attributes appears to be ok becaues we only call threadSafeMatch on
the attributes of "interesting" tags.
I tested the performance of this patch using
PerformanceTests/Parser/html-parser.html and did not see any slowdown.
(There actually appeared to be a <1% speedup, but I'm attributing that
to noise.)
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::identifierFor):
(WebCore):
(WebCore::inititatorFor):
(WebCore::StartTagScanner::StartTagScanner):
(WebCore::StartTagScanner::processAttributes):
(StartTagScanner):
(WebCore::StartTagScanner::createPreloadRequest):
(WebCore::StartTagScanner::processAttribute):
(WebCore::StartTagScanner::charset):
(WebCore::StartTagScanner::resourceType):
(WebCore::StartTagScanner::shouldPreload):
(WebCore::HTMLPreloadScanner::processToken):
2013-02-13 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: a long page is scaled vertically while loading.
https://bugs.webkit.org/show_bug.cgi?id=109645
Reviewed by Noam Rosenthal.
When loading http://www.w3.org/TR/xpath-datamodel/, Coordinated Graphics draws
vertically scaled contents. It is because there is the difference between the
size of a layer and the size of CoordinatedBackingStore.
Currently, CoordinatedGraphicsScene notifies the size to CoordinatedBackingStore
at the moment of creating, updating and removing a tile. However, it is not
necessary to send tile-related messages when the size of layer is changed.
So this patch resets the size of CoordinatedBackingStore when receiving the
message that is created when the size is changed: SyncLayerState.
There is no current way to reliably test flicker issues.
* platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
Add m_pendingSize to set m_size at the moment of flushing.
After http://webkit.org/b/108294, m_pendingSize will be removed
because the bug makes CoordinatedGraphicsScene execute all messages at
the moment of flushing.
(WebCore::CoordinatedBackingStore::setSize):
(WebCore::CoordinatedBackingStore::commitTileOperations):
* platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
(CoordinatedBackingStore):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::prepareContentBackingStore):
(WebCore::CoordinatedGraphicsScene::createBackingStoreIfNeeded):
(WebCore::CoordinatedGraphicsScene::resetBackingStoreSizeToLayerSize):
(WebCore::CoordinatedGraphicsScene::createTile):
(WebCore::CoordinatedGraphicsScene::removeTile):
(WebCore::CoordinatedGraphicsScene::updateTile):
2013-02-13 Kentaro Hara <haraken@chromium.org>
[V8] Rename XXXAccessorGetter() to XXXAttrGetterCustom(),
and XXXAccessorSetter() to XXXAttrSetterCustom()
https://bugs.webkit.org/show_bug.cgi?id=109679
Reviewed by Adam Barth.
For naming consistency and clarification.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateHeaderCustomCall):
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateImplementation):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
(WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::customAttrAttrGetter):
(WebCore::TestObjV8Internal::customAttrAttrSetter):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
(WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
* bindings/v8/custom/V8BiquadFilterNodeCustom.cpp:
(WebCore::V8BiquadFilterNode::typeAttrSetterCustom):
* bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
(WebCore::V8CanvasRenderingContext2D::strokeStyleAttrGetterCustom):
(WebCore::V8CanvasRenderingContext2D::strokeStyleAttrSetterCustom):
(WebCore::V8CanvasRenderingContext2D::fillStyleAttrGetterCustom):
(WebCore::V8CanvasRenderingContext2D::fillStyleAttrSetterCustom):
* bindings/v8/custom/V8ClipboardCustom.cpp:
(WebCore::V8Clipboard::typesAttrGetterCustom):
* bindings/v8/custom/V8CoordinatesCustom.cpp:
(WebCore::V8Coordinates::altitudeAttrGetterCustom):
(WebCore::V8Coordinates::altitudeAccuracyAttrGetterCustom):
(WebCore::V8Coordinates::headingAttrGetterCustom):
(WebCore::V8Coordinates::speedAttrGetterCustom):
* bindings/v8/custom/V8CustomEventCustom.cpp:
(WebCore::V8CustomEvent::detailAttrGetterCustom):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::eventAttrGetterCustom):
(WebCore::V8DOMWindow::eventAttrSetterCustom):
(WebCore::V8DOMWindow::locationAttrSetterCustom):
(WebCore::V8DOMWindow::openerAttrSetterCustom):
* bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
(WebCore::V8DeviceMotionEvent::accelerationAttrGetterCustom):
(WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAttrGetterCustom):
(WebCore::V8DeviceMotionEvent::rotationRateAttrGetterCustom):
(WebCore::V8DeviceMotionEvent::intervalAttrGetterCustom):
* bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
(WebCore::V8DeviceOrientationEvent::alphaAttrGetterCustom):
(WebCore::V8DeviceOrientationEvent::betaAttrGetterCustom):
(WebCore::V8DeviceOrientationEvent::gammaAttrGetterCustom):
(WebCore::V8DeviceOrientationEvent::absoluteAttrGetterCustom):
* bindings/v8/custom/V8DocumentLocationCustom.cpp:
(WebCore::V8Document::locationAttrGetterCustom):
(WebCore::V8Document::locationAttrSetterCustom):
* bindings/v8/custom/V8EventCustom.cpp:
(WebCore::V8Event::dataTransferAttrGetterCustom):
(WebCore::V8Event::clipboardDataAttrGetterCustom):
* bindings/v8/custom/V8FileReaderCustom.cpp:
(WebCore::V8FileReader::resultAttrGetterCustom):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::allAttrSetterCustom):
* bindings/v8/custom/V8HTMLElementCustom.cpp:
(WebCore::V8HTMLElement::itemValueAttrGetterCustom):
(WebCore::V8HTMLElement::itemValueAttrSetterCustom):
* bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
(WebCore::V8HTMLFrameElement::locationAttrSetterCustom):
* bindings/v8/custom/V8HTMLInputElementCustom.cpp:
(WebCore::V8HTMLInputElement::selectionStartAttrGetterCustom):
(WebCore::V8HTMLInputElement::selectionStartAttrSetterCustom):
(WebCore::V8HTMLInputElement::selectionEndAttrGetterCustom):
(WebCore::V8HTMLInputElement::selectionEndAttrSetterCustom):
(WebCore::V8HTMLInputElement::selectionDirectionAttrGetterCustom):
(WebCore::V8HTMLInputElement::selectionDirectionAttrSetterCustom):
* bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
(WebCore::V8HTMLLinkElement::sizesAttrGetterCustom):
(WebCore::V8HTMLLinkElement::sizesAttrSetterCustom):
* bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
(WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::lengthAttrSetterCustom):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::stateAttrGetterCustom):
* bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
(WebCore::V8JavaScriptCallFrame::scopeChainAttrGetterCustom):
(WebCore::V8JavaScriptCallFrame::thisObjectAttrGetterCustom):
(WebCore::V8JavaScriptCallFrame::typeAttrGetterCustom):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::hashAttrSetterCustom):
(WebCore::V8Location::hostAttrSetterCustom):
(WebCore::V8Location::hostnameAttrSetterCustom):
(WebCore::V8Location::hrefAttrSetterCustom):
(WebCore::V8Location::pathnameAttrSetterCustom):
(WebCore::V8Location::portAttrSetterCustom):
(WebCore::V8Location::protocolAttrSetterCustom):
(WebCore::V8Location::searchAttrSetterCustom):
(WebCore::V8Location::reloadAttrGetterCustom):
(WebCore::V8Location::replaceAttrGetterCustom):
(WebCore::V8Location::assignAttrGetterCustom):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::dataAttrGetterCustom):
(WebCore::V8MessageEvent::portsAttrGetterCustom):
* bindings/v8/custom/V8OscillatorNodeCustom.cpp:
(WebCore::V8OscillatorNode::typeAttrSetterCustom):
* bindings/v8/custom/V8PannerNodeCustom.cpp:
(WebCore::V8PannerNode::panningModelAttrSetterCustom):
(WebCore::V8PannerNode::distanceModelAttrSetterCustom):
* bindings/v8/custom/V8PopStateEventCustom.cpp:
(WebCore::V8PopStateEvent::stateAttrGetterCustom):
* bindings/v8/custom/V8SVGLengthCustom.cpp:
(WebCore::V8SVGLength::valueAttrGetterCustom):
(WebCore::V8SVGLength::valueAttrSetterCustom):
* bindings/v8/custom/V8TrackEventCustom.cpp:
(WebCore::V8TrackEvent::trackAttrGetterCustom):
* bindings/v8/custom/V8WebKitAnimationCustom.cpp:
(WebCore::V8WebKitAnimation::iterationCountAttrGetterCustom):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::V8XMLHttpRequest::responseTextAttrGetterCustom):
(WebCore::V8XMLHttpRequest::responseAttrGetterCustom):
2013-02-12 Kentaro Hara <haraken@chromium.org>
[V8] Generate wrapper methods for custom getters/setters
https://bugs.webkit.org/show_bug.cgi?id=109666
Reviewed by Adam Barth.
Currently V8 directly calls back custom getters/setters written
in custom binding files. This makes it impossible for code generators
to hook custom getters/setters (e.g. Code generators cannot insert a code
for FeatureObservation into custom getters/setters). To solve the problem,
we should generate wrapper methods for custom getters/setters.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateSingleBatchedAttribute):
(GenerateImplementation):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
(TestInterfaceV8Internal):
(WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
(WebCore):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::customAttrAttrGetter):
(TestObjV8Internal):
(WebCore::TestObjV8Internal::customAttrAttrSetter):
(WebCore):
2013-02-13 Vineet Chaudhary <rgf748@motorola.com>
HTMLCollections namedItem() methods should return null than undefined for empty collections.
https://bugs.webkit.org/show_bug.cgi?id=104096
Reviewed by Kentaro Hara.
As per specification namedItem() should return null if collection is empty.
Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmlallcollection
Test: fast/dom/htmlcollection-namedItem.html
* bindings/js/JSHTMLAllCollectionCustom.cpp: Returning null.
(WebCore::getNamedItems):
* bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Ditto.
(WebCore::getNamedItems):
* bindings/js/JSHTMLOptionsCollectionCustom.cpp: Ditto.
(WebCore::getNamedItems):
* bindings/v8/custom/V8HTMLAllCollectionCustom.cpp: Ditto.
(WebCore::V8HTMLAllCollection::namedItemCallback):
* bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp: Ditto.
(WebCore::V8HTMLFormControlsCollection::namedItemCallback):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp: Ditto.
(WebCore::V8HTMLOptionsCollection::namedItemCallback):
2013-02-13 Tony Gentilcore <tonyg@chromium.org>
Fix svg/in-html/script-write.html with threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=109495
Reviewed by Eric Seidel.
This patch makes the background parser's simulateTreeBuilder() more realistic.
1. The HTMLTreeBuilder does not call the updateStateFor() setState()s when in foreign content mode so we shouldn't do it when simulating the tree builder.
2. HTMLTreeBuilder::processTokenInForeignContent has a list of tags which exit foreign content mode. We need to respect those.
3. Support the <foreignObject> tag which enters and leaves foreign content mode.
4. The tree builder sets state to DataState upon a </script> tag when not in foreign content mode. We need to do the same.
This involved creating a namespace stack where we push upon entering each namespace and pop upon leaving.
We are in foreign content if the topmost namespace is SVG or MathML.
This fixes svg/in-html/script-write.html and likely others.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::simulateTreeBuilder):
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):
* html/parser/CompactHTMLToken.cpp:
(WebCore::CompactHTMLToken::getAttributeItem): Returns the attribute of the given name. Necessary to test for <font> attributes in simulateTreeBuilder.
(WebCore):
* html/parser/CompactHTMLToken.h:
(WebCore):
(CompactHTMLToken):
2013-02-13 Andreas Kling <akling@apple.com>
Remove Element::getAttributeItem() overload that returned a mutable Attribute*.
<http://webkit.org/b/109756>
Reviewed by Antti Koivisto.
Remove this to prevent callers from accidentally causing elements to convert to UniqueElementData.
There are two call sites (Attr and HTMLSelectElement) that legitimately need to mutate Attribute
objects in-place, they now use Element::ensureUniqueElementData()->getAttributeItem() directly instead.
Small progression on Membuster3, mostly for peace of mind.
* dom/Attr.cpp:
(WebCore::Attr::elementAttribute):
* dom/Element.h:
(Element):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseAttribute):
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::getPresentationAttribute):
2013-02-13 Andreas Kling <akling@apple.com>
Stronger ElementData pointer typing.
<http://webkit.org/b/109752>
Reviewed by Antti Koivisto.
Use ShareableElementData/UniqueElementData pointers instead of generic ElementData pointers
where possible. Moved some methods from base class into leaf classes that don't make sense
for both classes.
* dom/DocumentSharedObjectPool.cpp:
(WebCore::ShareableElementDataCacheEntry::ShareableElementDataCacheEntry):
(ShareableElementDataCacheEntry):
(WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
* dom/DocumentSharedObjectPool.h:
(DocumentSharedObjectPool):
* dom/Element.cpp:
(WebCore::Element::parserSetAttributes):
(WebCore::Element::setAttributeNode):
(WebCore::Element::removeAttributeInternal):
(WebCore::Element::cloneAttributesFromElement):
(WebCore::Element::createUniqueElementData):
(WebCore::ShareableElementData::createWithAttributes):
(WebCore::UniqueElementData::create):
(WebCore::ElementData::makeUniqueCopy):
(WebCore::UniqueElementData::makeShareableCopy):
* dom/Element.h:
(ElementData):
(ShareableElementData):
(UniqueElementData):
(Element):
(WebCore::Element::ensureUniqueElementData):
* dom/StyledElement.cpp:
(WebCore::StyledElement::rebuildPresentationAttributeStyle):
2013-02-13 Antti Koivisto <antti@apple.com>
Reschedule shared CFRunLoopTimer instead of reconstructing it
https://bugs.webkit.org/show_bug.cgi?id=109765
Reviewed by Andreas Kling and Anders Carlsson.
Using CFRunLoopTimerSetNextFireDate is over 2x faster than deleting and reconstructing timers.
* platform/mac/SharedTimerMac.mm:
(WebCore):
(WebCore::PowerObserver::restartSharedTimer):
(WebCore::sharedTimer):
(WebCore::setSharedTimerFireInterval):
(WebCore::stopSharedTimer):
2013-02-13 Emil A Eklund <eae@chromium.org>
getComputedStyle returns truncated value for margin-right
https://bugs.webkit.org/show_bug.cgi?id=109759
Reviewed by Tony Chang.
Due to an unfortunate cast in CSSComputedStyleDeclaration::
getPropertyCSSValue getComputedStyle returns truncated styles
for margin-right in cases where it isn't set to a specific pixel
value.
Test: fast/sub-pixel/computedstylemargin.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
Change type of temporary value variable to float to prevent loss of precision.
2013-02-13 Max Vujovic <mvujovic@adobe.com>
[CSS Filters] Refactor filter outsets into a class
https://bugs.webkit.org/show_bug.cgi?id=109330
Reviewed by Dean Jackson.
In filters related code, we're often operating on 4 ints representing the top, right,
bottom, and left filter outsets. These outsets come from a filter like blur or drop-shadow.
This patch packages those ints and their related operations into a class called
IntRectExtent.
Here are some signs that we should make a class to hold those 4 ints:
1) In RenderLayer.cpp, we have a expandRectForFilterOutsets function, which looks like
feature envy.
2) RenderStyle and other classes have methods like getFilterOutsets which set the 4 ints by
reference. The calling code has to define 4 ints, which looks bloated.
3) To fix bug 109098, we will need to check if filter outsets changed, which sounds like a
nice job for an inequality operator. (https://bugs.webkit.org/show_bug.cgi?id=109098)
No new tests. No change in behavior. Just refactoring.
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/IntRectExtent.h: Added.
(WebCore):
(IntRectExtent):
(WebCore::IntRectExtent::IntRectExtent):
(WebCore::IntRectExtent::top):
(WebCore::IntRectExtent::setTop):
(WebCore::IntRectExtent::right):
(WebCore::IntRectExtent::setRight):
(WebCore::IntRectExtent::bottom):
(WebCore::IntRectExtent::setBottom):
(WebCore::IntRectExtent::left):
(WebCore::IntRectExtent::setLeft):
(WebCore::IntRectExtent::expandRect):
(WebCore::IntRectExtent::isZero):
(WebCore::operator==):
(WebCore::operator!=):
(WebCore::operator+=):
* platform/graphics/filters/FilterOperations.cpp:
(WebCore::FilterOperations::outsets):
* platform/graphics/filters/FilterOperations.h:
(FilterOperations):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::intermediateSurfaceRect):
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::FilterEffectRenderer):
(WebCore::FilterEffectRenderer::build):
(WebCore::FilterEffectRenderer::computeSourceImageRectForDirtyRect):
* rendering/FilterEffectRenderer.h:
(FilterEffectRenderer):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
(WebCore::transparencyClipBox):
(WebCore::RenderLayer::calculateLayerBounds):
* rendering/style/RenderStyle.h:
2013-02-13 Adam Barth <abarth@webkit.org>
Factor HTMLTokenScanner out of HTMLPreloadScanner
https://bugs.webkit.org/show_bug.cgi?id=109754
Reviewed by Eric Seidel.
This patch is just a mechanical separation of the per-token "scanning"
logic from HTMLPreloadScanner into a separate class.
HTMLPreloadScanner's job is now to keep track of the input stream and
to pump the tokenizer.
This factorization class will let us use HTMLTokenScanner on the
background thread (once we finish making it thread-safe). In a follow
up patch, I'll move HTMLTokenScanner to its own file.
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::HTMLTokenScanner::HTMLTokenScanner):
(WebCore::HTMLTokenScanner::~HTMLTokenScanner):
(WebCore::HTMLTokenScanner::processPossibleTemplateTag):
(WebCore::HTMLTokenScanner::processPossibleStyleTag):
(WebCore::HTMLTokenScanner::processPossibleBaseTag):
(WebCore::HTMLTokenScanner::scan):
(WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
(WebCore):
(WebCore::HTMLPreloadScanner::~HTMLPreloadScanner):
(WebCore::HTMLPreloadScanner::appendToEnd):
(WebCore::HTMLPreloadScanner::scan):
* html/parser/HTMLPreloadScanner.h:
(HTMLTokenScanner):
(WebCore::HTMLTokenScanner::setPredictedBaseElementURL):
(HTMLPreloadScanner):
(WebCore):
2013-02-13 Elliott Sprehn <esprehn@chromium.org>
ASSERT(!renderer()->needsLayout()) when calling Element::focus() with generated content
https://bugs.webkit.org/show_bug.cgi?id=109616
Reviewed by Julien Chaffraix.
Test: fast/css-generated-content/quote-layout-focus-crash.html
In some cases RenderQuote may mark itself and containing blocks as needing layout
during a layout, but then one of it's containing blocks will mark itself as having
finished layout so the RenderQuote and potentially some of it's ancestor renderers
needLayout(), but the ancestors above those do not.
Until we have proper pre-layout tasks we should just walk the list of quotes
right before layout and mark all their ancestors as needing layout if the quote
needs layout.
* dom/Document.cpp:
(WebCore::Document::updateLayout): Call markQuoteContainingBlocksForLayoutIfNeeded.
(WebCore::Document::implicitClose): Call markQuoteContainingBlocksForLayoutIfNeeded.
* rendering/RenderQuote.h:
(WebCore::RenderQuote::next): Added.
* rendering/RenderView.cpp:
(WebCore::RenderView::markQuoteContainingBlocksForLayoutIfNeeded): Added.
* rendering/RenderView.h:
(RenderView):
2013-02-13 Jer Noble <jer.noble@apple.com>
EME: MediaPlayer::keyNeede() should return a bool indicating whether an event listener was triggered.
https://bugs.webkit.org/show_bug.cgi?id=109701
Reviewed by Eric Carlson.
Clients of MediaPlayer may need to do cleanup if calling keyNeeded()
results in no event listener being triggered. Return a bool (like the
v1 equivalent keyNeeded method) to indicate this.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::keyNeeded):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):
2013-02-13 Abhishek Arya <inferno@chromium.org>
ASSERTION FAILED: !object || object->isBox(), Bad cast in RenderBox::computeLogicalHeight
https://bugs.webkit.org/show_bug.cgi?id=107748
Reviewed by Levi Weintraub.
Make sure that body renderer is not an inline-block display
when determining that it stretches to viewport or when paginated
content needs base height.
Test: fast/block/body-inline-block-crash.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalHeight):
* rendering/RenderBox.h:
(WebCore::RenderBox::stretchesToViewport):
2013-02-13 Shawn Singh <shawnsingh@chromium.org>
Fix debug assertion being triggered because we may access dirty normalFlowList.
https://bugs.webkit.org/show_bug.cgi?id=109740
A debug assertion in RenderLayer.h is being hit when trying to
access the normalFlowList when it is dirty. This is caused by a
new recursion that I added in RenderLayerBacking::hasVisibleNonCompositingDescendant(),
but I overlooked the need to call updateLayerListsIfNeeded()
recursively as well.
Reviewed by Simon Fraser.
No test, because there's no reliable way to test this (same as bug 85512).
* rendering/RenderLayerBacking.cpp:
(WebCore::hasVisibleNonCompositingDescendant):
(WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers):
2013-02-13 Antti Koivisto <antti@apple.com>
Don't restart shared timer if both the current and the new fire time are in the past
https://bugs.webkit.org/show_bug.cgi?id=109731
Reviewed by Andreas Kling.
In 40-50% of cases we reschedule the shared timer both the old and the new fire time have already passed. This can happen at least when rescheduling
a zero duration timer and when stopping a timer that was ready to fire.
We can skip rescheduling in this case, the shared timer will fire immediately anyway.
Scheduling timers calls into platform layer and can be slow. This about halves the time under setSharedTimerFireInterval in PLT3
for ~0.1% total CPU time reduction.
* platform/ThreadTimers.cpp:
(WebCore::ThreadTimers::ThreadTimers):
(WebCore::ThreadTimers::setSharedTimer):
(WebCore::ThreadTimers::updateSharedTimer):
(WebCore::ThreadTimers::sharedTimerFiredInternal):
* platform/ThreadTimers.h:
(ThreadTimers):
2013-02-13 Zan Dobersek <zdobersek@igalia.com>
The 'global isinf/isnan' compiler quirk required when using clang with libstdc++
https://bugs.webkit.org/show_bug.cgi?id=109325
Reviewed by Anders Carlsson.
Prefix calls to the isinf and isnan methods with std::, declaring we want to use the
two methods as they're provided by the C++ standard library being used.
No new tests as there's no change in functionality.
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::setDuration):
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::totalPitchRate):
* Modules/webaudio/AudioParam.cpp:
(WebCore::AudioParam::setValue):
* Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::isValidNumber):
* Modules/webaudio/PannerNode.cpp:
(WebCore::fixNANs):
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromValue):
* bindings/js/JSDataViewCustom.cpp:
(WebCore::getDataViewMember):
* bindings/js/JSGeolocationCustom.cpp:
(WebCore::setTimeout):
(WebCore::setMaximumAge):
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::JSHTMLOptionsCollection::setLength):
* bindings/js/JSWebKitPointCustom.cpp:
(WebCore::JSWebKitPointConstructor::constructJSWebKitPoint):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateParametersCheck):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateParametersCheck):
* bindings/scripts/test/JS/JSFloat64Array.cpp:
(WebCore::JSFloat64Array::getByIndex):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::classMethodWithClampCallback):
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromValue):
* bindings/v8/V8Binding.cpp:
(WebCore::toInt32):
(WebCore::toUInt32):
* bindings/v8/custom/V8GeolocationCustom.cpp:
(WebCore::createPositionOptions):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::lengthAccessorSetter):
* bindings/v8/custom/V8WebKitPointCustom.cpp:
(WebCore::V8WebKitPoint::constructorCallbackCustom):
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::convertValueToQVariant):
* css/WebKitCSSMatrix.cpp:
(WebCore::WebKitCSSMatrix::translate):
(WebCore::WebKitCSSMatrix::scale):
(WebCore::WebKitCSSMatrix::rotate):
(WebCore::WebKitCSSMatrix::rotateAxisAngle):
(WebCore::WebKitCSSMatrix::skewX):
(WebCore::WebKitCSSMatrix::skewY):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::percentLoaded):
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
(WebCore::HTMLMediaElement::endedPlayback):
* html/MediaController.cpp:
(MediaController::duration):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::clearColor):
* html/track/TextTrack.cpp:
(WebCore::TextTrack::addCue):
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::setStartTime):
(WebCore::TextTrackCue::setEndTime):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::adjustWindowRect):
* page/WindowFeatures.cpp:
(WebCore::WindowFeatures::floatFeature): Also include an opportunistic style fix.
* platform/CalculationValue.cpp:
(WebCore::CalculationValue::evaluate):
* platform/Decimal.cpp:
(WebCore::Decimal::fromDouble):
* platform/Length.cpp:
(WebCore::Length::nonNanCalculatedValue):
* platform/audio/AudioResampler.cpp:
(WebCore::AudioResampler::setRate):
* platform/audio/DynamicsCompressorKernel.cpp:
(WebCore::DynamicsCompressorKernel::process):
* platform/audio/Reverb.cpp:
(WebCore::calculateNormalizationScale):
* platform/graphics/Font.cpp:
(WebCore::Font::width):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
(WebCore::MediaPlayerPrivateAVFoundation::isLiveStream):
* platform/graphics/gpu/LoopBlinnMathUtils.cpp:
(LoopBlinnMathUtils):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::buffered):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::maxTimeSeekable):
* platform/graphics/opentype/OpenTypeVerticalData.cpp:
(WebCore::OpenTypeVerticalData::getVerticalTranslationsForGlyphs):
* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::clampEdgeValue):
(WebCore::TransformationMatrix::clampedBoundsOfProjectedQuad):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::parseCacheControlDirectives):
* rendering/RenderMediaControlsChromium.cpp:
(WebCore::paintMediaSlider):
(WebCore::paintMediaVolumeSlider):
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintMediaSliderTrack):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::beginElementAt):
(WebCore::SVGAnimationElement::endElementAt):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::setCurrentTime):
* svg/animation/SMILTime.h:
(WebCore::SMILTime::SMILTime):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::addBeginTime):
(WebCore::SVGSMILElement::addEndTime):
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunSubstring::evaluate):
(WebCore::XPath::FunRound::round):
* xml/XPathValue.cpp:
(WebCore::XPath::Value::toBoolean): Also include an opportunistic style fix.
(WebCore::XPath::Value::toString):
2013-02-13 Eric Carlson <eric.carlson@apple.com>
[Mac] Caption menu should have only one item selected
https://bugs.webkit.org/show_bug.cgi?id=109730
Reviewed by Dean Jackson.
No new tests, media/track/track-user-preferences.html was modified to test the changes.
* CMakeLists.txt: Add CaptionUserPreferences.cpp.
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_processingPreferenceChange.
(WebCore::HTMLMediaElement::configureTextTrackGroup): Only end up with one selected track when
called because of a preferences change.
(WebCore::HTMLMediaElement::captionPreferencesChanged): Call setClosedCaptionsVisible instead
of calling markCaptionAndSubtitleTracksAsUnconfigured directly.
(WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Process all tracks,
not just track elements.
* html/HTMLMediaElement.h:
* page/CaptionUserPreferences.cpp: Added so the functionality can be tested in DRT.
(WebCore::CaptionUserPreferences::registerForPreferencesChangedCallbacks):
(WebCore::CaptionUserPreferences::unregisterForPreferencesChangedCallbacks):
(WebCore::CaptionUserPreferences::setUserPrefersCaptions):
(WebCore::CaptionUserPreferences::captionPreferencesChanged):
(WebCore::CaptionUserPreferences::preferredLanguages):
(WebCore::CaptionUserPreferences::setPreferredLanguage):
(WebCore::CaptionUserPreferences::displayNameForTrack):
* page/CaptionUserPreferences.h:
* page/CaptionUserPreferencesMac.h:
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::registerForPreferencesChangedCallbacks): Moved some logic
to base class.
(WebCore::CaptionUserPreferencesMac::captionPreferencesChanged): Ditto.
2013-02-13 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] ExclusionPolygon reflex vertices should constrain the first fit location.
https://bugs.webkit.org/show_bug.cgi?id=107568
Reviewed by Dirk Schulze.
The ExclusionPolygon::firstIncludedIntervalLogicalTop() method now includes offset edges
for each of the polygon's reflex vertices. The motivation for this change is explained
here: http://hansmuller-webkit.blogspot.com/2013/01/getting-to-point-reflex-vertices.html.
Test: fast/exclusions/shape-inside/shape-inside-first-fit-reflex.html
* rendering/ExclusionPolygon.cpp:
(WebCore::isReflexVertex): Given three vertices that represent a pair of connected polygon edges, return true if the second vertex is a reflex vertex.
(WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): This method now includes offset edges for reflex vertices.
* rendering/ExclusionPolygon.h:
(WebCore::OffsetPolygonEdge::OffsetPolygonEdge): Added a constructor for creating an OffsetPolygonEdge given a reflex vertex.
(WebCore::OffsetPolygonEdge::edgeIndex): Changed this property from unsigned to int. Now using -1 to indicate that the offset edge doesn't correspond to a single polygon edge.
2013-02-13 Adam Barth <abarth@webkit.org>
CSSPreloadScanner should not depend on HTMLToken
https://bugs.webkit.org/show_bug.cgi?id=109742
Reviewed by Eric Seidel.
There's no need for the CSSPreloadScanner to depend on HTMLToken. On
the background thread, we'll likely want to use a CompactHTMLToken for
preload scanning, so this dependency is problematic. This patch also
teaches the CSSPreloadScanner how to scan LChars.
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::~CSSPreloadScanner):
(WebCore):
(WebCore::CSSPreloadScanner::scan):
* html/parser/CSSPreloadScanner.h:
(CSSPreloadScanner):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::HTMLPreloadScanner::processToken):
2013-02-13 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Adding or removing grid items doesn't properly recompute the track sizes
https://bugs.webkit.org/show_bug.cgi?id=109100
Reviewed by Ojan Vafai.
Test: fast/css-grid-layout/grid-item-removal-track-breadth-update.html
The test uncovered several bugs in our implementation that is fixed as part
of this change. They will be detailed below.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::logicalContentHeightForChild):
Added this function to share the code between minContentForChild and maxContentForChild.
Also forced a relayout in this case to avoid getting a wrong answer (e.g. the logical height
constrained by the previous layout's grid breadth).
(WebCore::RenderGrid::minContentForChild):
(WebCore::RenderGrid::maxContentForChild):
Updated to use logicalContentHeightForChild.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
Updated to match the specification and set max breadth to current breadth per the specification.
This made us over-grow some cases in the test.
(WebCore::RenderGrid::distributeSpaceToTracks):
Updated to match the specification and use an extra variable to do the intermediate spreading. Also removed
a now unneeded max. This fixes the case of multiple grid items in the same grid area that was completely broken.
(WebCore::RenderGrid::layoutGridItems):
Added a FIXME about always relaying out content sized tracks' children.
* rendering/RenderGrid.h:
Added logicalContentHeightForChild.
2013-02-13 Adam Barth <abarth@webkit.org>
Clean up some style nits in HTMLPreloadScanner
https://bugs.webkit.org/show_bug.cgi?id=109738
Reviewed by Tony Gentilcore.
This patch just fixes a few style nits I noticed when reading through
the code.
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::StartTagScanner::StartTagScanner):
(WebCore::HTMLPreloadScanner::processPossibleStyleTag):
(WebCore::HTMLPreloadScanner::processPossibleBaseTag):
* html/parser/HTMLResourcePreloader.cpp:
(WebCore::PreloadRequest::isSafeToSendToAnotherThread):
* html/parser/HTMLResourcePreloader.h:
(PreloadRequest):
(WebCore::PreloadRequest::PreloadRequest):
(WebCore::HTMLResourcePreloader::HTMLResourcePreloader):
2013-02-13 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r142747.
http://trac.webkit.org/changeset/142747
https://bugs.webkit.org/show_bug.cgi?id=109746
broke component build (Requested by alecf_gardening on
#webkit).
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::HeapGraphSerializer):
(WebCore::HeapGraphSerializer::pushUpdate):
(WebCore::HeapGraphSerializer::reportNode):
(WebCore::HeapGraphSerializer::toNodeId):
(WebCore::HeapGraphSerializer::addRootNode):
* inspector/HeapGraphSerializer.h:
(WebCore):
(HeapGraphSerializer):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
2013-02-13 Levi Weintraub <leviw@chromium.org>
Bidi-Isolated inlines can cause subsequent content to not be rendered
https://bugs.webkit.org/show_bug.cgi?id=108137
Reviewed by Eric Seidel.
First step in fixing how inline isolates behave with collapsed spaces.
webkit.org/b/109624 tracks the overarching issue.
Test: fast/text/content-following-inline-isolate-with-collapsed-whitespace.html
* rendering/InlineIterator.h:
(WebCore::IsolateTracker::addFakeRunIfNecessary): If we enter an isolate while
ignoring spaces, ensure we leave it considering them again. This can result in
including spaces that should be ignored following the isolate on the line, but
failing to do so results in those contents not being rendered at all.
2013-02-13 Andreas Kling <akling@apple.com>
Better names for ElementAttributeData & subclasses.
<http://webkit.org/b/109529>
Reviewed by Antti Koivisto.
- ElementAttributeData => ElementData
Because ElementAttributeData won't be a good name once we move some non-attribute related
things to this structure.
- ImmutableElementAttributeData => ShareableElementData
These objects can be shared with other Elements that have the same attribute name/value pairs.
- MutableElementAttributeData => UniqueElementData
These objects contain data that is unique to a specific Element, and cannot be shared with
other Elements. This is what's important about it, not that its underlying storage is mutable.
- attributeData() -> elementData()
- updatedAttributeData() -> elementDataWithSynchronizedAttributes()
- ensureUpdatedAttributeData() -> ensureElementDataWithSynchronizedAttributes()
- mutableAttributeData() -> ensureUniqueElementData()
Ride-along renames. Much less vague than previous names IMO.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithControl):
(WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
* dom/Attr.cpp:
(WebCore::Attr::elementAttribute):
* dom/DocumentSharedObjectPool.cpp:
(WebCore::ShareableElementDataCacheKey::ShareableElementDataCacheKey):
(WebCore::ShareableElementDataCacheKey::operator!=):
(WebCore::ShareableElementDataCacheEntry::ShareableElementDataCacheEntry):
(ShareableElementDataCacheEntry):
(WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
* dom/DocumentSharedObjectPool.h:
(DocumentSharedObjectPool):
* dom/Element.cpp:
(WebCore::Element::detachAttribute):
(WebCore::Element::removeAttribute):
(WebCore::Element::attributes):
(WebCore::Element::getAttribute):
(WebCore::Element::setAttribute):
(WebCore::Element::setSynchronizedLazyAttribute):
(WebCore::Element::setAttributeInternal):
(WebCore::Element::attributeChanged):
(WebCore::Element::classAttributeChanged):
(WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
(WebCore::Element::parserSetAttributes):
(WebCore::Element::hasAttributes):
(WebCore::Element::hasEquivalentAttributes):
(WebCore::Element::setAttributeNode):
(WebCore::Element::removeAttributeNode):
(WebCore::Element::removeAttributeInternal):
(WebCore::Element::addAttributeInternal):
(WebCore::Element::getAttributeNode):
(WebCore::Element::getAttributeNodeNS):
(WebCore::Element::hasAttribute):
(WebCore::Element::hasAttributeNS):
(WebCore::Element::computeInheritedLanguage):
(WebCore::Element::getURLAttribute):
(WebCore::Element::getNonEmptyURLAttribute):
(WebCore::Element::cloneAttributesFromElement):
(WebCore::Element::createUniqueElementData):
(WebCore::Element::reportMemoryUsage):
(WebCore::ElementData::deref):
(WebCore::ElementData::ElementData):
(WebCore::sizeForShareableElementDataWithAttributeCount):
(WebCore::ElementData::createShareableWithAttributes):
(WebCore::ElementData::createUnique):
(WebCore::ShareableElementData::ShareableElementData):
(WebCore::ShareableElementData::~ShareableElementData):
(WebCore::UniqueElementData::UniqueElementData):
(WebCore::ElementData::makeMutableCopy):
(WebCore::ElementData::makeImmutableCopy):
(WebCore::ElementData::setPresentationAttributeStyle):
(WebCore::ElementData::addAttribute):
(WebCore::ElementData::removeAttribute):
(WebCore::ElementData::isEquivalent):
(WebCore::ElementData::reportMemoryUsage):
(WebCore::ElementData::getAttributeItemIndexSlowCase):
* dom/Element.h:
(ElementData):
(WebCore::ElementData::isUnique):
(ShareableElementData):
(UniqueElementData):
(WebCore::Element::getAttributeItemIndex):
(WebCore::Element::elementData):
(Element):
(WebCore::Element::elementDataWithSynchronizedAttributes):
(WebCore::Element::ensureElementDataWithSynchronizedAttributes):
(WebCore::Element::fastHasAttribute):
(WebCore::Element::fastGetAttribute):
(WebCore::Element::hasAttributesWithoutUpdate):
(WebCore::Element::idForStyleResolution):
(WebCore::Element::classNames):
(WebCore::Element::attributeCount):
(WebCore::Element::attributeItem):
(WebCore::Element::getAttributeItem):
(WebCore::Element::updateInvalidAttributes):
(WebCore::Element::hasID):
(WebCore::Element::hasClass):
(WebCore::Element::ensureUniqueElementData):
(WebCore::ElementData::mutableAttributeVector):
(WebCore::ElementData::immutableAttributeArray):
(WebCore::ElementData::length):
(WebCore::ElementData::presentationAttributeStyle):
(WebCore::ElementData::getAttributeItem):
(WebCore::ElementData::getAttributeItemIndex):
(WebCore::ElementData::attributeItem):
* dom/Node.cpp:
(WebCore::Node::dumpStatistics):
(WebCore::Node::compareDocumentPosition):
* dom/StyledElement.cpp:
(WebCore::StyledElement::updateStyleAttribute):
(WebCore::StyledElement::ensureMutableInlineStyle):
(WebCore::StyledElement::attributeChanged):
(WebCore::StyledElement::inlineStyleCSSOMWrapper):
(WebCore::StyledElement::setInlineStyleFromString):
(WebCore::StyledElement::styleAttributeChanged):
(WebCore::StyledElement::inlineStyleChanged):
(WebCore::StyledElement::addSubresourceAttributeURLs):
(WebCore::StyledElement::rebuildPresentationAttributeStyle):
* dom/StyledElement.h:
(WebCore::StyledElement::inlineStyle):
(WebCore::StyledElement::invalidateStyleAttribute):
(WebCore::StyledElement::presentationAttributeStyle):
* html/ClassList.cpp:
(WebCore::ClassList::classNames):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
* svg/SVGElement.cpp:
(WebCore::SVGElement::updateAnimatedSVGAttribute):
* svg/SVGElement.h:
(WebCore::SVGElement::invalidateSVGAttributes):
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::XMLDocumentParser):
2013-02-13 Christian Biesinger <cbiesinger@chromium.org>
Crash when encountering <object style="resize:both;">
https://bugs.webkit.org/show_bug.cgi?id=109728
See also https://code.google.com/p/chromium/issues/detail?id=175535
This bug can be reproduced on
http://dramalink.net/tudou.y/?xink=162601060
Reviewed by Eric Seidel.
Test: fast/css/resize-object-crash.html
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paint):
Only call paintResizer() if we have a layer and canResize() is true
2013-02-13 Arko Saha <arko@motorola.com>
[Microdata] HTMLPropertiesCollection code cleanup
https://bugs.webkit.org/show_bug.cgi?id=109721
Reviewed by Ryosuke Niwa.
Removed forward declaration of DOMStringList class.
Removed unused findRefElements() method declaration.
Also Removed unused parameter Element* from updatePropertyCache() method.
No new test since no change in behavior.
* html/HTMLPropertiesCollection.cpp:
(WebCore::HTMLPropertiesCollection::updateNameCache):
* html/HTMLPropertiesCollection.h:
(WebCore):
(HTMLPropertiesCollection):
(WebCore::HTMLPropertiesCollection::updatePropertyCache):
2013-02-13 Kondapally Kalyan <kalyan.kondapally@intel.com>
[WebGL][EFL][GTK][Qt]Add support for OES_vertex_array_object.
https://bugs.webkit.org/show_bug.cgi?id=109382
Reviewed by Kenneth Russell.
Covered by fast/canvas/webgl/oes-vertex-array-object.html
This patch adds support for using Vertex Array Object with OpenGl.
The patch adds support for loading necessary opengl functions
and support for checking GL_ARB_vertex_array_object. The support
for OES_vertex_array_object is advertised if GL_ARB_vertex_array_object is
supported.
* platform/graphics/OpenGLShims.cpp:
(WebCore::initializeOpenGLShims):
* platform/graphics/OpenGLShims.h:
(_OpenGLFunctionTable):
Added support for loading the necessary functions.
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::createVertexArrayOES):
(WebCore::Extensions3DOpenGL::deleteVertexArrayOES):
(WebCore::Extensions3DOpenGL::isVertexArrayOES):
(WebCore::Extensions3DOpenGL::bindVertexArrayOES):
(WebCore::Extensions3DOpenGL::supportsExtension):
(WebCore):
(WebCore::Extensions3DOpenGL::isVertexArrayObjectSupported):
* platform/graphics/opengl/Extensions3DOpenGL.h:
(Extensions3DOpenGL):
2013-02-13 Eberhard Graether <egraether@google.com>
chromium: remove CompositorHUDFontAtlas
https://bugs.webkit.org/show_bug.cgi?id=109328
Reviewed by James Robinson.
After switching the HudLayer to use skia's font rendering the
CompositorHUDFontAtlas has become obsolete. This change removes
this class and the related WebLayerTreeView API.
No new tests.
* WebCore.gypi:
* platform/graphics/chromium/CompositorHUDFontAtlas.cpp: Removed.
* platform/graphics/chromium/CompositorHUDFontAtlas.h: Removed.
2013-02-13 Dean Jackson <dino@apple.com>
Small update to speech bubble for captions menu [Mac]
https://bugs.webkit.org/show_bug.cgi?id=109641
Reviewed by Eric Carlson
Small adjustment to the embedded SVG that draws a speech bubble
for the captions button. Remove a polygon that was so small
it looked like a rendering error.
* css/mediaControlsQuickTime.css:
(video::-webkit-media-controls-toggle-closed-captions-button):
2013-02-13 Dean Jackson <dino@apple.com>
Clicking outside captions menu should dismiss it
https://bugs.webkit.org/show_bug.cgi?id=109648
Reviewed by Eric Carlson.
Add a virtual override to the platform-specific
defaultEventHandler to intercept any click in the controls,
and hide the captions menu if it is showing.
Test: media/video-controls-captions-trackmenu-hide-on-click.html
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::defaultEventHandler): Override from MediaControls. Hide
captions menu if a click event comes in.
* html/shadow/MediaControlsApple.h:
2013-02-13 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Use the source id when creating new tracks
https://bugs.webkit.org/show_bug.cgi?id=109688
Reviewed by Adam Barth.
This patch reuses the ids from the source when creating tracks instead of creating a new one.
This was requested by the chromium port to greatly simplify their implementation.
In the longer run the API should be rewritten to only use tracks instead of sources.
Covered by existing tests.
* platform/chromium/support/WebMediaStream.cpp:
(WebKit::WebMediaStream::audioTracks):
(WebKit::WebMediaStream::videoTracks):
(WebKit::WebMediaStream::initialize):
(WebKit):
* platform/chromium/support/WebMediaStreamTrack.cpp:
(WebKit::WebMediaStreamTrack::initialize):
(WebKit):
* platform/mediastream/MediaStreamComponent.h:
(WebCore::MediaStreamComponent::create):
(MediaStreamComponent):
(WebCore::MediaStreamComponent::MediaStreamComponent):
(WebCore):
* platform/mediastream/MediaStreamDescriptor.h:
(WebCore::MediaStreamDescriptor::create):
(MediaStreamDescriptor):
(WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
2013-02-13 Eric Seidel <eric@webkit.org>
Use fancy new Vector-based String constructors in the WebVTT parser
https://bugs.webkit.org/show_bug.cgi?id=109619
Reviewed by Benjamin Poulain.
No change in behavior. Added some FIXMEs for future perf optimization.
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::constructTreeFromToken):
2013-02-13 Morten Stenshorne <mstensho@opera.com>
WebKit ignores column-rules wider than column-gap
https://bugs.webkit.org/show_bug.cgi?id=15553
Paint column rules even if they are wider than the gap.
Rules wider than the gap should just overlap with column contents.
Reviewed by Eric Seidel.
Test: fast/multicol/rule-thicker-than-gap.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintColumnRules):
2013-02-13 Philip Rogers <pdr@google.com>
Replace SVG bitmap cache with directly-rendered SVG
https://bugs.webkit.org/show_bug.cgi?id=106159
Reviewed by Tim Horton.
This patch removes the caching of SVG bitmaps so SVG images are rendered directly. This
enables WebKit to pass the IE Chalkboard demo in 10s on a Z620:
http://ie.microsoft.com/testdrive/Performance/Chalkboard/
On a simple scaled SVG benchmark similar to the IE10 Chalkboard demo
(http://philbit.com/SvgImagePerformance/viewport.html):
without patch: ~20FPS
with patch: ~55FPS
The bitmap SVG image cache had several shortcomings:
- The bitmap cache prevented viewport rendering. (WK104693)
- Bitmap memory usage was high. (WK106484)
- Caching animating images was expensive.
This change removes almost all of the SVGImageCache implementation, replacing it with
directly-rendered SVG. Instead of caching bitmaps, an SVGImageForContainer is cached which
is a thin wrapper around an SVG image with the associated container size and scale.
When rendering patterns (e.g., tiled backgrounds), a temporary bitmap is used for
performance. This change also removes the redraw timer of the old cache, instead relying
on the SVG image to notify clients if the image changes (e.g., during animations).
This patch fixes two existing bugs (WK99481 and WK104189) that were due to caching bitmaps
at a fixed size. A test has been added for each of these bugs.
Tests: svg/as-image/svg-image-scaled.html
svg/as-image/svg-image-viewbox.html
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::lookupOrCreateImageForRenderer):
(WebCore::CachedImage::setContainerSizeForRenderer):
(WebCore::CachedImage::clear):
(WebCore::CachedImage::changedInRect):
SVG images are no longer special-cased here. When the SVG image changes, users are
notified through this function, and users can then request their content to be redrawn.
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::setContainerSize):
(WebCore::SVGImage::drawForContainer):
drawForContainer lays out the SVG content for a specific container size and renders it.
The logic is fairly straightforward but a note about the scales and zooms here:
the destination rect parameter is zoomed but not scaled
the source rect parameter is zoomed but not scaled
the context is scaled but not zoomed
SVGImage::draw(...) only accepts a source and destination rect but does not consider
scale or zoom. Therefore, drawForContainer removes the zoom component from the source
so SVGImage::draw(...) will draw from the pre-zoom source to the post-zoom destination.
(WebCore::SVGImage::drawPatternForContainer):
For performance, drawPatternForContainer renders the SVG content onto a bitmap, then
has the bitmap image draw the pattern. This is necessary because drawPattern is used
for tiling.
(WebCore):
(WebCore::SVGImage::startAnimation):
(WebCore::SVGImage::stopAnimation):
(WebCore::SVGImage::resetAnimation):
(WebCore::SVGImage::reportMemoryUsage):
* svg/graphics/SVGImage.h:
(WebCore):
(SVGImage):
* svg/graphics/SVGImageCache.cpp:
Instead of storing a SizeAndScales values for each renderer, a SVGImageForContainer
is stored which is just a thin wrapper around an SVG image that contains container
sizing information. By combining the image and size information, the two maps of
SVGImageCache have been merged into one.
To make this patch easier to review, SVGImageCache still exists and works similar to
how it did before the patch. Now, SVGImageCache simply stores the SVGImageForContainers.
In a followup patch it will be removed.
Note: the redraw timer of SVGImageCache has been removed because animation
invalidation is now properly propagated back to the image clients.
(WebCore):
(WebCore::SVGImageCache::SVGImageCache):
(WebCore::SVGImageCache::~SVGImageCache):
(WebCore::SVGImageCache::removeClientFromCache):
(WebCore::SVGImageCache::setContainerSizeForRenderer):
(WebCore::SVGImageCache::imageSizeForRenderer):
Previously, this function returned the scaled image size which was incorrect. The image
size is used by clients such as GraphicsContext2D to determine the source size
for drawing the image. draw() accepts zoomed but not scaled values, so this has been
changed.
(WebCore::SVGImageCache::imageForRenderer):
A FIXME has been added here to not set the scale on every lookup. This can be improved
by setting the page scale factor in setContainerSizeForRenderer() in a future patch.
* svg/graphics/SVGImageCache.h:
(WebCore):
(SVGImageCache):
* svg/graphics/SVGImageForContainer.cpp: Added.
(WebCore):
SVGImageForContainer is a thin wrapper around an SVG image. The lifetime of the
SVGImage will be longer than the image cache.
(WebCore::SVGImageForContainer::size):
This is the only logic in SVGImageForContainer. The size returned needs to be zoomed
but not scaled because it is used (e.g., by RenderImage) to pass back into draw() which
takes zoomed but not scaled values.
(WebCore::SVGImageForContainer::draw):
(WebCore::SVGImageForContainer::drawPattern):
* svg/graphics/SVGImageForContainer.h: Added.
(WebCore):
(SVGImageForContainer):
In a future patch SVGImageForContainer can be made immutable but without a refactoring
for not setting the page scale factor in SVGImageCache::lookupOrCreateImageForRenderer,
setters are needed.
(WebCore::SVGImageForContainer::create):
(WebCore::SVGImageForContainer::containerSize):
(WebCore::SVGImageForContainer::pageScale):
(WebCore::SVGImageForContainer::zoom):
(WebCore::SVGImageForContainer::setSize):
(WebCore::SVGImageForContainer::setZoom):
(WebCore::SVGImageForContainer::setPageScale):
(WebCore::SVGImageForContainer::SVGImageForContainer):
(WebCore::SVGImageForContainer::destroyDecodedData):
(WebCore::SVGImageForContainer::decodedSize):
2013-02-12 Antti Koivisto <antti@apple.com>
Avoid updating timer heap when nothing changes
https://bugs.webkit.org/show_bug.cgi?id=109630
Reviewed by Andreas Kling.
When the fire time of a Timer is changed we remove it from the timer heap and reinsert it. This is pretty slow.
Turns out that in ~80% of cases we are already in the heap and the insertion position is the same as the
original position. We can check if anything is actually going to change before doing this work.
This makes starting a timer ~30% faster in average, ~0.1% progression in PLT3.
* platform/Timer.cpp:
(TimerHeapLessThanFunction):
(WebCore::TimerHeapLessThanFunction::operator()):
(WebCore::parentHeapPropertyHolds):
(WebCore):
(WebCore::childHeapPropertyHolds):
(WebCore::TimerBase::hasValidHeapPosition):
The code here assumes that STL heap is a normal binary heap. If there is a different implementation
somewhere the assertions will catch it.
(WebCore::TimerBase::updateHeapIfNeeded):
Skip updating the heap if it is already valid.
(WebCore::TimerBase::setNextFireTime):
* platform/Timer.h:
(TimerBase):
2013-02-13 Martin Robinson <mrobinson@igalia.com>
[GTK] Remove remaining dead code from the GLib unicode backend
https://bugs.webkit.org/show_bug.cgi?id=109707
Reviewed by Philippe Normand.
* platform/KURL.cpp:
(WebCore::appendEncodedHostname):
* platform/text/TextEncoding.cpp:
(WebCore::TextEncoding::encode):
* platform/text/TextEncodingRegistry.cpp:
(WebCore::buildBaseTextCodecMaps):
(WebCore::extendTextCodecMaps):
2013-02-13 Xianzhu Wang <wangxianzhu@chromium.org>
Heap-use-after-free in WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects
https://bugs.webkit.org/show_bug.cgi?id=108695
See comments of RenderLayerModelObject::willBeDestroyed() below for details.
Reviewed by Abhishek Arya.
Test: ManulTests/scrolling-coordinator-viewport-constrained-crash.html
Unable to write a normal layout test because
1) must waitUntilDone() to reproduce the crash but the redirected URL can't notifyDone();
2) Can't use a frame to contain the test because ScrollingCoordinator handles only the main frame.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::willBeDestroyed): Moved removeViewportConstrainedObject() call into RenderLayerModelObject::willBeDestroyed() because only RenderLayerModelObjects can be added as viewportConstrainedObjects.
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::willBeDestroyed): Changed this->view() (then view->frameView()) to this->frame() (then frame->view()) because when willBeDestroyed() is called, the document has set its renderView to 0 thus this->view() will return 0, causing removeViewportConstrainedObject() not called and a deleted RenderLayerModelObject in FrameView's viewportConstrainedObjects.
2013-02-13 Florin Malita <fmalita@chromium.org>
[SVG] OOB access in SVGListProperty::replaceItemValues()
https://bugs.webkit.org/show_bug.cgi?id=109293
Replacing a list property item with itself should be a no-op. This patch updates the related
APIs and logic to detect the self-replace case and prevent removal of the item from the list.
To avoid scanning the list multiple times, removeItemFromList() is updated to operate on
indices and a findItem() method is added to resolve an item to an index.
Reviewed by Dirk Schulze.
No new tests: updated existing tests cover the change.
* svg/properties/SVGAnimatedListPropertyTearOff.h:
(WebCore::SVGAnimatedListPropertyTearOff::findItem):
(SVGAnimatedListPropertyTearOff):
(WebCore::SVGAnimatedListPropertyTearOff::removeItemFromList):
* svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
(WebCore::SVGAnimatedPathSegListPropertyTearOff::findItem):
(SVGAnimatedPathSegListPropertyTearOff):
(WebCore::SVGAnimatedPathSegListPropertyTearOff::removeItemFromList):
Add a findItem() delegating method, and update removeItemFromList() to use the new
index-based API.
* svg/properties/SVGListProperty.h:
(WebCore::SVGListProperty::insertItemBeforeValues):
(WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
(WebCore::SVGListProperty::replaceItemValues):
(WebCore::SVGListProperty::replaceItemValuesAndWrappers):
(SVGListProperty):
Updated to handle the no-op case for insertItemBefore() & replaceItem().
* svg/properties/SVGListPropertyTearOff.h:
(WebCore::SVGListPropertyTearOff::findItem):
(WebCore::SVGListPropertyTearOff::removeItemFromList):
Index-based API updates.
(WebCore::SVGListPropertyTearOff::processIncomingListItemValue):
(WebCore::SVGListPropertyTearOff::processIncomingListItemWrapper):
* svg/properties/SVGPathSegListPropertyTearOff.cpp:
(WebCore::SVGPathSegListPropertyTearOff::processIncomingListItemValue):
Detect the self-replace case and return without removing the item from the list.
* svg/properties/SVGPathSegListPropertyTearOff.h:
(WebCore::SVGPathSegListPropertyTearOff::findItem):
(WebCore::SVGPathSegListPropertyTearOff::removeItemFromList):
(SVGPathSegListPropertyTearOff):
(WebCore::SVGPathSegListPropertyTearOff::processIncomingListItemWrapper):
* svg/properties/SVGStaticListPropertyTearOff.h:
(WebCore::SVGStaticListPropertyTearOff::processIncomingListItemValue):
(WebCore::SVGStaticListPropertyTearOff::processIncomingListItemWrapper):
Index-based API updates.
2013-02-13 Takashi Sakamoto <tasak@google.com>
[Refactoring] StyleResolver::State should have methods to access its member variables.
https://bugs.webkit.org/show_bug.cgi?id=108563
Reviewed by Antti Koivisto.
Made all member variables private and added methods to access the
variables, because most of the member variables are read-only.
We don't need to update those read-only variables while resolving
styles.
No new tests, because just refactoring.
* css/SVGCSSStyleSelector.cpp:
(WebCore::StyleResolver::applySVGProperty):
* css/StyleResolver.cpp:
(WebCore):
(WebCore::StyleResolver::collectMatchingRules):
(WebCore::StyleResolver::collectMatchingRulesForRegion):
(WebCore::StyleResolver::sortAndTransferMatchedRules):
(WebCore::StyleResolver::matchScopedAuthorRules):
(WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
(WebCore::StyleResolver::matchHostRules):
(WebCore::StyleResolver::matchAuthorRules):
(WebCore::StyleResolver::matchUserRules):
(WebCore::StyleResolver::matchUARules):
(WebCore::StyleResolver::collectMatchingRulesForList):
(WebCore::StyleResolver::sortMatchedRules):
(WebCore::StyleResolver::matchAllRules):
(WebCore::StyleResolver::State::initElement):
(WebCore::StyleResolver::initElement):
Modified to invoke m_state.initElement if a given element is
different from current m_state's element.
(WebCore::StyleResolver::State::initForStyleResolve):
Moved from StyleResolver.
(WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
(WebCore::StyleResolver::canShareStyleWithControl):
(WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
(WebCore::StyleResolver::canShareStyleWithElement):
(WebCore::StyleResolver::locateSharedStyle):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::keyframeStylesForAnimation):
(WebCore::StyleResolver::pseudoStyleForElement):
Changed ASSERT in the first line. ASSERT(m_state.parentStyle) would be
wrong, because it depends on previous resolving. However,
initForStyleResolve will also update m_state.parentStyle. No code in
pseudoStyleForElement depends on previous resolving state.
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::defaultStyleForElement):
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::updateFont):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::ruleMatches):
Added one more parameter, dynamicPseudo, because dynamicPseudo in
State class is just used for returning matched pseudo style from
this ruleMatches to collectMatchingRulesForList. No need to keep
dynamicPseudo while resolving styles.
(WebCore::StyleResolver::checkRegionSelector):
Removed m_pseudoStyle = NOPSEUDO, because this method uses just
SelectorChecker::matched. SelectorChecker doesn't see StyleResolver's
m_pseudoStyle directly. Need to use SelectorCheckerContext. So no
need to set m_pseudoStyle to be NOPSEUDO.
(WebCore::StyleResolver::applyProperties):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::isLeftPage):
(WebCore::StyleResolver::applyPropertyToStyle):
(WebCore::StyleResolver::useSVGZoomRules):
(WebCore::createGridTrackBreadth):
(WebCore::StyleResolver::resolveVariables):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::cachedOrPendingFromValue):
(WebCore::StyleResolver::generatedOrPendingFromValue):
(WebCore::StyleResolver::setOrPendingFromValue):
(WebCore::StyleResolver::cursorOrPendingFromValue):
(WebCore::StyleResolver::checkForTextSizeAdjust):
(WebCore::StyleResolver::initializeFontStyle):
(WebCore::StyleResolver::setFontSize):
(WebCore::StyleResolver::colorFromPrimitiveValue):
(WebCore::StyleResolver::loadPendingSVGDocuments):
(WebCore::StyleResolver::cachedOrPendingStyleShaderFromValue):
(WebCore::StyleResolver::loadPendingShaders):
(WebCore::StyleResolver::parseCustomFilterTransformParameter):
(WebCore::StyleResolver::createFilterOperations):
(WebCore::StyleResolver::loadPendingImage):
(WebCore::StyleResolver::loadPendingImages):
* css/StyleResolver.h:
(WebCore::StyleResolver::style):
(WebCore::StyleResolver::parentStyle):
(WebCore::StyleResolver::rootElementStyle):
(WebCore::StyleResolver::element):
(WebCore::StyleResolver::hasParentNode):
(StyleResolver):
(WebCore::StyleResolver::State::State):
(State):
(WebCore::StyleResolver::State::clear):
Modified to use clear at the end of styleForElement.
(WebCore::StyleResolver::State::document):
(WebCore::StyleResolver::State::element):
(WebCore::StyleResolver::State::styledElement):
(WebCore::StyleResolver::State::setStyle):
(WebCore::StyleResolver::State::style):
(WebCore::StyleResolver::State::takeStyle):
(WebCore::StyleResolver::State::ensureRuleList):
(WebCore::StyleResolver::State::takeRuleList):
(WebCore::StyleResolver::State::parentNode):
(WebCore::StyleResolver::State::setParentStyle):
(WebCore::StyleResolver::State::parentStyle):
(WebCore::StyleResolver::State::rootElementStyle):
(WebCore::StyleResolver::State::regionForStyling):
(WebCore::StyleResolver::State::setSameOriginOnly):
(WebCore::StyleResolver::State::isSameOriginOnly):
(WebCore::StyleResolver::State::pseudoStyle):
(WebCore::StyleResolver::State::elementLinkState):
(WebCore::StyleResolver::State::distributedToInsertionPoint):
(WebCore::StyleResolver::State::setElementAffectedByClassRules):
(WebCore::StyleResolver::State::elementAffectedByClassRules):
(WebCore::StyleResolver::State::setApplyPropertyToRegularStyle):
(WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle):
(WebCore::StyleResolver::State::applyPropertyToRegularStyle):
(WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle):
(WebCore::StyleResolver::State::pendingImageProperties):
(WebCore::StyleResolver::State::pendingSVGDocuments):
(WebCore::StyleResolver::State::setHasPendingShaders):
(WebCore::StyleResolver::State::hasPendingShaders):
(WebCore::StyleResolver::State::setLineHeightValue):
(WebCore::StyleResolver::State::lineHeightValue):
(WebCore::StyleResolver::State::setFontDirty):
(WebCore::StyleResolver::State::fontDirty):
(WebCore::StyleResolver::State::cacheBorderAndBackground):
(WebCore::StyleResolver::State::hasUAAppearance):
(WebCore::StyleResolver::State::borderData):
(WebCore::StyleResolver::State::backgroundData):
(WebCore::StyleResolver::State::backgroundColor):
(WebCore::StyleResolver::State::fontDescription):
(WebCore::StyleResolver::State::parentFontDescription):
(WebCore::StyleResolver::State::setFontDescription):
(WebCore::StyleResolver::State::setZoom):
(WebCore::StyleResolver::State::setEffectiveZoom):
(WebCore::StyleResolver::State::setTextSizeAdjust):
(WebCore::StyleResolver::State::setWritingMode):
(WebCore::StyleResolver::State::setTextOrientation):
fontDescription, ... and setTextOrientation were moved from
StyleResolver.
(WebCore::StyleResolver::State::matchedRules):
(WebCore::StyleResolver::State::addMatchedRule):
Moved from StyleResolver.
(WebCore::StyleResolver::applyPropertyToRegularStyle):
(WebCore::StyleResolver::applyPropertyToVisitedLinkStyle):
(WebCore::StyleResolver::fontDescription):
(WebCore::StyleResolver::parentFontDescription):
(WebCore::StyleResolver::setFontDescription):
(WebCore::StyleResolver::setZoom):
(WebCore::StyleResolver::setEffectiveZoom):
(WebCore::StyleResolver::setTextSizeAdjust):
(WebCore::StyleResolver::setWritingMode):
(WebCore::StyleResolver::setTextOrientation):
These fontDescription, ..., setTextOrientation are wrappers to
invoke State's methods. StyleBuilder still depends on StyleResolver
and invokes these methods. So we need these wrappers.
2013-02-13 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] window.open passes height and width parameters even if not defined in a page
https://bugs.webkit.org/show_bug.cgi?id=107705
Reviewed by Kenneth Rohde Christiansen.
Do not override width or height of 0, as that indicates default size, and not minimum size.
Tested by tst_qwebpage.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::adjustWindowRect):
2013-02-13 Rashmi Shyamasundar <rashmi.s2@samsung.com>
The 2D Canvas functions fillText()/strokeText() should display nothing when maxWidth is less then or equal to zero
https://bugs.webkit.org/show_bug.cgi?id=102656
Reviewed by Dirk Schulze.
The functions fillText()/strokeText() should not display anything when
maxWidth is less than or equal to zero, according to spec :
http://www.w3.org/TR/2dcontext/#text-preparation-algorithm
Test: fast/canvas/canvas-fillText-maxWidth-zero.html
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawTextInternal):
2013-02-13 ChangSeok Oh <shivamidow@gmail.com>
[GTK][AC] Implement basic transform animations with clutter ac backend
https://bugs.webkit.org/show_bug.cgi?id=109363
Reviewed by Gustavo Noronha Silva.
Implement basic transform animation with clutter ac backend.
GraphicsLayerClutter is almost same with GraphicsLayerCA. And PlatformClutterAnimation
interfaces are also similar with PlatformCAAnimation, but they are implemented
with native clutter APIs. Clutter backend AC supports a basic single transform animation
with this patch now, but additive animation combination and keyframe animation
are not supported yet.
Covered by existing animation tests.
* platform/graphics/clutter/GraphicsLayerActor.cpp:
(graphicsLayerActorSetTransform):
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::isTransformTypeTransformationMatrix):
(WebCore):
(WebCore::isTransformTypeFloatPoint3D):
(WebCore::isTransformTypeNumber):
(WebCore::getTransformFunctionValue):
(WebCore::getValueFunctionNameForTransformOperation):
(WebCore::GraphicsLayerClutter::setTransformAnimationEndpoints):
(WebCore::GraphicsLayerClutter::appendToUncommittedAnimations):
(WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
* platform/graphics/clutter/GraphicsLayerClutter.h:
(GraphicsLayerClutter):
* platform/graphics/clutter/PlatformClutterAnimation.cpp:
(WebCore::toClutterActorPropertyString):
(WebCore):
(WebCore::PlatformClutterAnimation::supportsValueFunction):
(WebCore::PlatformClutterAnimation::duration):
(WebCore::PlatformClutterAnimation::setDuration):
(WebCore::PlatformClutterAnimation::setAdditive):
(WebCore::PlatformClutterAnimation::valueFunction):
(WebCore::PlatformClutterAnimation::setValueFunction):
(WebCore::PlatformClutterAnimation::setFromValue):
(WebCore::PlatformClutterAnimation::setToValue):
(WebCore::PlatformClutterAnimation::timeline):
(WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
(WebCore::PlatformClutterAnimation::addOpacityTransition):
(WebCore::PlatformClutterAnimation::addTransformTransition):
(WebCore::PlatformClutterAnimation::addAnimationForKey):
* platform/graphics/clutter/PlatformClutterAnimation.h:
(PlatformClutterAnimation):
2013-02-13 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: reportLeaf method doesn't report the leaf node properly.
https://bugs.webkit.org/show_bug.cgi?id=109554
In some cases leaves have no pointer so with the old schema we can't generate nodeId for them because we
can't insert 0 into hashmap. It happens when we call addPrivateBuffer method.
Drive by fix: I introduced a client interface for the HeapGraphSerializer.
It helps me to do the tests for the serializer.
Reviewed by Yury Semikhatsky.
It is covered by newly added tests in TestWebKitAPI.
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::HeapGraphSerializer):
(WebCore::HeapGraphSerializer::pushUpdate):
(WebCore::HeapGraphSerializer::reportNode):
(WebCore::HeapGraphSerializer::toNodeId):
(WebCore::HeapGraphSerializer::addRootNode):
* inspector/HeapGraphSerializer.h:
(HeapGraphSerializer):
(Client):
(WebCore::HeapGraphSerializer::Client::~Client):
* inspector/InspectorMemoryAgent.cpp:
(WebCore):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
2013-02-13 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: add experimental native heap graph to Timeline panel
https://bugs.webkit.org/show_bug.cgi?id=109687
Reviewed by Alexander Pavlov.
Added experimentatl support for native heap graph on the Timeline panel.
Native memory usage data is collected after each top level task and can
be displayed instead of DOM counters graph on the Timeline panel if
corresponding experiment is enabled in the inspector settings.
* inspector/Inspector.json:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorTimelineAgent.cpp:
(TimelineAgentState):
(WebCore::InspectorTimelineAgent::setIncludeDomCounters):
(WebCore):
(WebCore::InspectorTimelineAgent::setIncludeNativeMemoryStatistics):
(WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
(WebCore::InspectorTimelineAgent::setDOMCounters):
(WebCore::InspectorTimelineAgent::setNativeHeapStatistics):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
* inspector/InspectorTimelineAgent.h:
(WebCore):
(WebCore::InspectorTimelineAgent::create):
(InspectorTimelineAgent):
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
* inspector/front-end/MemoryStatistics.js:
(WebInspector.MemoryStatistics):
* inspector/front-end/NativeMemoryGraph.js:
(WebInspector.NativeMemoryGraph):
(WebInspector.NativeMemoryGraph.prototype._onRecordAdded.addStatistics):
(WebInspector.NativeMemoryGraph.prototype._onRecordAdded):
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/TimelinePanel.js:
2013-02-13 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Fixed colorpicker editing and scrolling.
https://bugs.webkit.org/show_bug.cgi?id=109434.
Reviewed by Alexander Pavlov.
The color picker scrolling logic relied on the fixed DOM structure which changed with the introduction of
SidebarPaneStack (https://bugs.webkit.org/show_bug.cgi?id=108183).
Added a special CSS class to mark the scroll target.
No new tests.
* inspector/front-end/SplitView.js:
(WebInspector.SplitView):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
* inspector/front-end/TabbedPane.js:
(WebInspector.TabbedPane):
2013-02-13 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: fix js compilation warnings in TextPrompt
https://bugs.webkit.org/show_bug.cgi?id=109685
Reviewed by Alexander Pavlov.
Mark last argument of _applySuggestion function as optional.
No new tests: no change in behaviour.
* inspector/front-end/TextPrompt.js:
2013-02-13 Pablo Flouret <pablof@motorola.com>
Implement css-conditional's CSS.supports()
https://bugs.webkit.org/show_bug.cgi?id=100324
Reviewed by Antti Koivisto.
http://dev.w3.org/csswg/css3-conditional/#the-css-interface
The supports() method provides the css @supports rule's corresponding
dom api.
The patch also adds the CSS interface on DOMWindow, which holds "useful
CSS-related functions that do not belong elsewhere". This is where
supports() lives.
Test: css3/supports-dom-api.html
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/gobject/GNUmakefile.am:
* bindings/scripts/CodeGeneratorGObject.pm:
(SkipFunction):
Add DOMWindowCSS.* to the build systems.
* bindings/scripts/CodeGenerator.pm:
(WK_lcfirst):
Handle CSS prefixes correctly (s/cSS/css/).
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::CSSParser):
(WebCore::CSSParser::parseSupportsCondition):
(WebCore::CSSParser::detectAtToken):
* css/CSSParser.h:
webkit_supports_condition parses just the condition part of an
@supports rule and evaluates it, outputting whether the condition
is supported or not.
* css/CSSAllInOne.cpp:
* css/DOMWindowCSS.cpp: Added.
* css/DOMWindowCSS.h: Added.
* css/DOMWindowCSS.idl: Added.
The CSS interface object.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::css):
* page/DOMWindow.h:
* page/DOMWindow.idl:
window.CSS
2013-02-13 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Simplify SplitView to rely more on CSS
https://bugs.webkit.org/show_bug.cgi?id=109426
Reviewed by Vsevolod Vlasov.
Simplified Javascript code by moving large part of the layout logic into CSS rules. The patch is larger than it
should be because one of the clients (TimelinePanel) is breaking SplitView incapsulation by reparenting its
resizer.
No new tests.
* inspector/front-end/SidebarView.js:
(WebInspector.SidebarView):
* inspector/front-end/SplitView.js:
(WebInspector.SplitView):
(WebInspector.SplitView.prototype._innerSetVertical):
(WebInspector.SplitView.prototype.setSecondIsSidebar):
(WebInspector.SplitView.prototype._showOnly):
(WebInspector.SplitView.prototype._removeAllLayoutProperties):
* inspector/front-end/TimelinePanel.js:
* inspector/front-end/cssNamedFlows.css:
(.css-named-flow-collections-view .split-view-sidebar):
(.css-named-flow-collections-view .split-view-sidebar .sidebar-content):
(.css-named-flow-collections-view .split-view-sidebar .selection):
(.css-named-flow-collections-view .split-view-sidebar .named-flow-overflow::before, .css-named-flow-collections-view .region-empty:before, .css-named-flow-collections-view .region-fit::before, .css-named-flow-collections-view .region-overset::before):
(.css-named-flow-collections-view .split-view-sidebar .named-flow-overflow::before):
* inspector/front-end/splitView.css:
(.split-view-contents.maximized):
(.split-view-vertical .split-view-contents):
(.split-view-vertical .split-view-contents-first):
(.split-view-vertical .split-view-contents-first.maximized):
(.split-view-vertical .split-view-contents-second):
(.split-view-vertical .split-view-contents-second.maximized):
(.split-view-horizontal .split-view-contents):
(.split-view-horizontal .split-view-contents-first):
(.split-view-horizontal .split-view-contents-first.maximized):
(.split-view-horizontal .split-view-contents-second):
(.split-view-horizontal .split-view-contents-second.maximized):
(.split-view-vertical .split-view-sidebar.split-view-contents-first:not(.maximized)):
(.split-view-vertical .split-view-sidebar.split-view-contents-second:not(.maximized)):
(.split-view-horizontal .split-view-sidebar.split-view-contents-first:not(.maximized)):
(.split-view-horizontal .split-view-sidebar.split-view-contents-second:not(.maximized)):
(.split-view-vertical .split-view-resizer):
(.split-view-horizontal .split-view-resizer):
* inspector/front-end/timelinePanel.css:
(.timeline.split-view-vertical .split-view-resizer):
(#timeline-container .split-view-sidebar):
2013-02-13 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r142730.
http://trac.webkit.org/changeset/142730
https://bugs.webkit.org/show_bug.cgi?id=109666
chromium browser tests are failing
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateSingleBatchedAttribute):
(GenerateImplementation):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(TestInterfaceV8Internal):
(WebCore):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore):
2013-02-13 Tamas Czene <tczene@inf.u-szeged.hu>
OpenCL implementation of Flood SVG filters.
https://bugs.webkit.org/show_bug.cgi?id=109580
Reviewed by Zoltan Herczeg.
* Target.pri:
* platform/graphics/filters/FEFlood.h:
(FEFlood):
* platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
(WebCore):
(WebCore::PROGRAM_STR):
(WebCore::FilterContextOpenCL::compileFill):
(WebCore::FilterContextOpenCL::fill):
* platform/graphics/gpu/opencl/FilterContextOpenCL.h:
(WebCore::FilterContextOpenCL::FilterContextOpenCL):
(FilterContextOpenCL):
* platform/graphics/gpu/opencl/OpenCLFEFlood.cpp: Added.
(WebCore):
(WebCore::FEFlood::platformApplyOpenCL):
2013-02-13 Mike West <mkwst@chromium.org>
location.href does not throw SECURITY_ERR when accessed across origins with JSC bindings
https://bugs.webkit.org/show_bug.cgi?id=43891
Reviewed by Adam Barth.
Other browsers (IE, Firefox, and Opera) throw an exception when accessing
properties of a Location object across origins, as the spec suggests[1].
WebKit is currently the outlier.
This has a few negative effects: developers are forced to hack around
access violations in two ways rather than having a single code path, and
(more annoyingly) developers are unable to avoid generating the error
message. See every ad on the internet for the effect on the console. :)
This patch adds a SECURITY_ERR exception to these access violations,
which is the first step towards getting rid of the console spam. Getting
rid of the message entirely will require a solution to
http://wkbug.com/98050.
A fairly inconclusive thread[2] on webkit-dev popped up in 2010 and
trailed off without reaching conclusion. A more recent thread reached
agreement that this patch seems like a reasonable thing to do[3].
This is the JSC half of the patch. V8 is coming in http://wkbug.com/43892
[1]: http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#security-location
[2]: https://lists.webkit.org/pipermail/webkit-dev/2010-August/013880.html
[2]: https://lists.webkit.org/pipermail/webkit-dev/2012-February/023636.html
* bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::getOwnPropertySlotDelegate):
2013-02-13 Andrew Wilson <atwilson@chromium.org>
Unreviewed Chromium gyp-file cleanup after glib backend removal.
https://bugs.webkit.org/show_bug.cgi?id=109672
Removed references to GLib unicode backend:
* WebCore.gypi:
2013-02-12 Kentaro Hara <haraken@chromium.org>
[V8] Generate wrapper methods for custom getters/setters
https://bugs.webkit.org/show_bug.cgi?id=109666
Reviewed by Adam Barth.
Currently V8 directly calls back custom getters/setters written
in custom binding files. This makes it impossible for code generators
to hook custom getters/setters (e.g. Code generators cannot insert a code
for FeatureObservation into custom getters/setters). We should generate
wrapper methods for custom getters/setters.
In the future, I will insert TRACE_EVENT() macros into these wrapper methods
to profile DOM getters/setters/methods.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateSingleBatchedAttribute):
(GenerateImplementation):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
(TestInterfaceV8Internal):
(WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
(WebCore):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::customAttrAttrGetter):
(TestObjV8Internal):
(WebCore::TestObjV8Internal::customAttrAttrSetter):
(WebCore):
2013-02-13 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r142611.
http://trac.webkit.org/changeset/142611
https://bugs.webkit.org/show_bug.cgi?id=109668
Suggest box is not shown anymore when user types "window." in
inspector console. (Requested by vsevik on #webkit).
* inspector/front-end/TextPrompt.js:
(WebInspector.TextPrompt.prototype.complete):
2013-02-13 Kentaro Hara <haraken@chromium.org>
[V8] There is no XXXConstructor that requires a custom getter
https://bugs.webkit.org/show_bug.cgi?id=109667
Reviewed by Adam Barth.
Currently '[Custom] attribute XXXConstructor xxx' generates
XXXAttrGetter(). However, there is no XXXConstructor with [Custom].
In addition, it does make no sense to generate XXXAttrGetter() for such cases.
We can remove the logic from CodeGeneratorV8.pm.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateSingleBatchedAttribute):
2013-02-12 Hajime Morrita <morrita@google.com>
[Internals] setShadowDOMEnabled() shouldn't be used except a few tests.
https://bugs.webkit.org/show_bug.cgi?id=109642
Reviewed by Kent Tamura.
InternalSettings.setShadowDOMEnabled() shouldn't be called after
any relevant DOM bindings are touched. However for fuzzers, it
isn't trivial to regulate its behavior.
This change whitelists the URL of running test for prevent
unintended API calls. This doesn't hurt the Internals usability
since the API is called from just a couple of tests and the number
isn't expected to grow.
Test: fast/dom/shadow/shadow-dom-enabled-flag-whitelist.html
* testing/InternalSettings.cpp:
(WebCore::urlIsWhitelisted):
(WebCore):
(WebCore::InternalSettings::setShadowDOMEnabled):
2013-02-12 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Introduce version controller to migrate settings versions.
https://bugs.webkit.org/show_bug.cgi?id=109553
Reviewed by Yury Semikhatsky.
This patch introduces version controller that could be used to migrate inspector settings.
Test: inspector/version-controller.html
* inspector/front-end/Settings.js:
(WebInspector.Settings):
(WebInspector.VersionController):
(WebInspector.VersionController.prototype.set _methodsToRunToUpdateVersion):
(WebInspector.VersionController.prototype._updateVersionFrom0To1):
* inspector/front-end/inspector.js:
2013-02-12 Martin Robinson <mrobinson@igalia.com>
[GTK] Remove the GLib unicode backend
https://bugs.webkit.org/show_bug.cgi?id=109627
Reviewed by Benjamin Poulain.
Remove references to the GLib unicode backend from WebCore.
* GNUmakefile.list.am: Update the source list.
* platform/text/gtk/TextBreakIteratorGtk.cpp: Removed.
* platform/text/gtk/TextCodecGtk.cpp: Removed.
* platform/text/gtk/TextCodecGtk.h: Removed.
2013-02-12 Chris Fleizach <cfleizach@apple.com>
AX: crash when accessing AccessibilityScrollbar after page has been unloaded
https://bugs.webkit.org/show_bug.cgi?id=109524
Reviewed by Ryosuke Niwa.
AX clients can hold onto AccesibilityScrollbar references that reference parent
AccessibilityScrollViews that have already gone away.
AccessibilityScrollView is not calling detachFromParent after it is removed, which
leads to a crash. The fix is to clearChildren() when an object is deallocated.
I could not create a test because the crash only manifests over multiple page loads.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::detach):
2013-02-12 Hayato Ito <hayato@chromium.org>
Use FocusEvent.relatedTarget in {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator.
https://bugs.webkit.org/show_bug.cgi?id=109650
Reviewed by Dimitri Glazkov.
Set FocusEvent.relatedTarget in its constructor so that each
EventDispatchMediator can use FocusEvent.relatedTarget rather than
its redundant m_{old,new}FocusedNode member variable.
I've also removed FIXME comments, mentioning bug 109261, since I
can not reproduce the issue.
No new tests. No change in functionality.
* dom/FocusEvent.cpp:
(WebCore::FocusEventDispatchMediator::create):
(WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
(WebCore::FocusEventDispatchMediator::dispatchEvent):
(WebCore::BlurEventDispatchMediator::create):
(WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
(WebCore::BlurEventDispatchMediator::dispatchEvent):
(WebCore::FocusInEventDispatchMediator::create):
(WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
(WebCore::FocusInEventDispatchMediator::dispatchEvent):
(WebCore::FocusOutEventDispatchMediator::create):
(WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
(WebCore::FocusOutEventDispatchMediator::dispatchEvent):
* dom/FocusEvent.h:
(FocusEventDispatchMediator):
(BlurEventDispatchMediator):
(FocusInEventDispatchMediator):
(FocusOutEventDispatchMediator):
* dom/Node.cpp:
(WebCore::Node::dispatchFocusInEvent):
(WebCore::Node::dispatchFocusOutEvent):
(WebCore::Node::dispatchFocusEvent):
(WebCore::Node::dispatchBlurEvent):
2013-02-12 Takashi Sakamoto <tasak@google.com>
[Refactoring] Make SelectorChecker::mode a constructor parameter.
https://bugs.webkit.org/show_bug.cgi?id=109653
Reviewed by Dimitri Glazkov.
No new tests, because just refactoring.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::SelectorChecker):
Made mode a constructor parameter.
* css/SelectorChecker.h:
Removed setMode.
(SelectorChecker):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::ruleMatches):
(WebCore::StyleResolver::checkRegionSelector):
* dom/SelectorQuery.cpp:
(WebCore::SelectorQuery::matches):
(WebCore::SelectorQuery::queryAll):
(WebCore::SelectorQuery::queryFirst):
* html/shadow/ContentSelectorQuery.cpp:
(WebCore::ContentSelectorChecker::ContentSelectorChecker):
2013-02-12 Andreas Kling <akling@apple.com>
Remove Element::ensureAttributeData().
<http://webkit.org/b/109643>
Reviewed by Anders Carlsson.
* dom/Element.h:
* dom/Element.cpp:
(WebCore::Element::classAttributeChanged):
(WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
Use attributeData() instead of ensureAttributeData(), it's already guaranteed to exist in
both these functions as they are called in response to attribute changes.
* svg/SVGElement.h:
(WebCore::SVGElement::invalidateSVGAttributes):
Use mutableAttributeData() instead of ensureAttributeData() when invalidating animated
SVG attributes. While I can't find any bugs caused by this, an element with property animations
shouldn't share attribute data with other elements.
2013-02-12 Hayato Ito <hayato@chromium.org>
Make {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator type safe.
https://bugs.webkit.org/show_bug.cgi?id=109561
Reviewed by Dimitri Glazkov.
Use FocusEvent rather than Event in {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator.
No new tests. No change in functionality.
* dom/FocusEvent.cpp:
(WebCore::FocusEventDispatchMediator::create):
(WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
(WebCore::BlurEventDispatchMediator::create):
(WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
(WebCore::FocusInEventDispatchMediator::create):
(WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
(WebCore::FocusOutEventDispatchMediator::create):
(WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
* dom/FocusEvent.h:
(FocusEventDispatchMediator):
(WebCore::FocusEventDispatchMediator::event):
(BlurEventDispatchMediator):
(WebCore::BlurEventDispatchMediator::event):
(FocusInEventDispatchMediator):
(WebCore::FocusInEventDispatchMediator::event):
(FocusOutEventDispatchMediator):
(WebCore::FocusOutEventDispatchMediator::event):
2013-02-12 Eric Seidel <eric@webkit.org>
Fix HTMLToken::Attribute member naming and update callsites to use Vector-based String functions
https://bugs.webkit.org/show_bug.cgi?id=109638
Reviewed by Adam Barth.
Darin Adler noted in:
https://bugs.webkit.org/show_bug.cgi?id=109408#c4
that HTMLToken::Attribute (then MarkupTokenBase::Attribute)
was a struct, yet incorrectly used m_ for its public members.
This patch fixes the members to not have the m_, and since I was
touching all callers, I also updated all callers to use modern
Vector-based String creation/append functions instead of manually
calling UChar*, size_t versions.
There should be no behavior change to this patch. Where I saw
performance/memory bugs, I noted them with FIXMEs to keep
this change simple.
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::processTagToken):
* html/parser/AtomicHTMLToken.h:
(WebCore::AtomicHTMLToken::publicIdentifier):
(WebCore::AtomicHTMLToken::systemIdentifier):
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
(WebCore::AtomicHTMLToken::initializeAttributes):
* html/parser/CompactHTMLToken.cpp:
(WebCore::CompactHTMLToken::CompactHTMLToken):
* html/parser/HTMLMetaCharsetParser.cpp:
(WebCore::HTMLMetaCharsetParser::processMeta):
(WebCore::HTMLMetaCharsetParser::checkForMetaCharset):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::StartTagScanner::processAttributes):
(WebCore::HTMLPreloadScanner::scan):
(WebCore::HTMLPreloadScanner::processPossibleBaseTag):
(WebCore::HTMLPreloadScanner::processToken):
* html/parser/HTMLToken.h:
(Range):
(Attribute):
(WebCore::HTMLToken::clear):
(WebCore::HTMLToken::startIndex):
(WebCore::HTMLToken::endIndex):
(WebCore::HTMLToken::end):
(WebCore::HTMLToken::nameString):
(WebCore::HTMLToken::addNewAttribute):
(WebCore::HTMLToken::beginAttributeName):
(WebCore::HTMLToken::endAttributeName):
(WebCore::HTMLToken::beginAttributeValue):
(WebCore::HTMLToken::endAttributeValue):
(WebCore::HTMLToken::appendToAttributeName):
(WebCore::HTMLToken::appendToAttributeValue):
(WebCore::HTMLToken::eraseValueOfAttribute):
* html/parser/HTMLTokenizer.cpp:
(WebCore::AtomicHTMLToken::nameForAttribute):
* html/parser/HTMLViewSourceParser.cpp:
(WebCore::HTMLViewSourceParser::updateTokenizerState):
* html/parser/XSSAuditor.cpp:
(WebCore::findAttributeWithName):
(WebCore::XSSAuditor::filterParamToken):
(WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):
(WebCore::XSSAuditor::eraseAttributeIfInjected):
(WebCore::XSSAuditor::decodedSnippetForAttribute):
2013-02-12 Ryosuke Niwa <rniwa@webkit.org>
Build fix.
* editing/Editor.h:
(WebCore::Editor::avoidIntersectionWithDeleteButtonController):
2013-02-12 Nate Chapin <japhet@chromium.org>
REGRESSION: Reloading a local file doesn't pick up changes
https://bugs.webkit.org/show_bug.cgi?id=109344
Reviewed by Alexey Proskuryakov.
Test: http/tests/cache/reload-main-resource.php
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::determineRevalidationPolicy):
(WebCore::CachedResourceLoader::cachePolicy): Don't use subresourceCachePolicy()
for main resources.
* loader/cache/CachedResourceLoader.h:
(CachedResourceLoader):
2013-02-12 Ryosuke Niwa <rniwa@webkit.org>
Turn avoidIntersectionWithNode into Editor member functions to encapsulate delete button controller
https://bugs.webkit.org/show_bug.cgi?id=109549
Reviewed by Tony Chang.
Renamed avoidIntersectionWithNode to Editor::avoidIntersectionWithDeleteButtonController and added trivial
implementations when delete button controllers are disabled (ENABLE_DELETION_UI is 0).
* editing/DeleteButtonController.cpp:
* editing/EditCommand.cpp:
(WebCore::EditCommand::EditCommand):
* editing/Editor.cpp:
(WebCore::Editor::avoidIntersectionWithDeleteButtonController): Moved from htmlediting.cpp and renamed.
The version that takes VisibleSelection has been updated to use updatePositionForNodeRemoval to share
mode code with that function.
(WebCore::Editor::rangeForPoint):
* editing/Editor.h:
(WebCore::Editor::avoidIntersectionWithDeleteButtonController): Added; trivial implementations.
* editing/htmlediting.cpp:
* editing/htmlediting.h:
* editing/markup.cpp:
(WebCore::createMarkupInternal): Extracted from createMarkup.
(WebCore::createMarkup):
2013-02-12 Joseph Pecoraro <pecoraro@apple.com>
[iOS] Enable PAGE_VISIBILITY_API
https://bugs.webkit.org/show_bug.cgi?id=109399
Reviewed by David Kilzer.
* Configurations/FeatureDefines.xcconfig:
2013-02-12 Andreas Kling <akling@apple.com>
Move ElementAttributeData into Element.cpp/h
<http://webkit.org/b/109610>
Reviewed by Anders Carlsson.
Removed ElementAttributeData.cpp/h and moved the class itself into Element headquarters.
In the near future, Element should be the only client of this class, and thus it won't
be necessary for other classes to know anything about it.
* dom/ElementAttributeData.cpp: Removed.
* dom/ElementAttributeData.h: Removed.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* dom/DOMAllInOne.cpp:
* dom/DocumentSharedObjectPool.cpp:
* dom/Element.cpp:
* dom/Element.h:
* workers/SharedWorker.cpp:
* Modules/webdatabase/DatabaseManager.cpp: Add ExceptionCode.h since Element.h doesn't pull it in anymore.
2013-02-12 Simon Fraser <simon.fraser@apple.com>
Crash when scrolling soon after page starts loading
https://bugs.webkit.org/show_bug.cgi?id=109631
<rdar://problem/13157533&13159627&13196727>
Reviewed by Anders Carlsson.
Make the scrolling tree more robust when the root state node,
and/or scrolling node are null. This can happen if we try to
handle a wheel event before we've done the first scrolling
tree commit.
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::commit): Handle the case where
m_rootStateNode is null. We'll still commit, but the state tree
will have no state nodes.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::handleWheelEvent): Null-check m_rootNode.
(WebCore::ScrollingTree::commitNewTreeState): Handle a null root node.
(WebCore::ScrollingTree::updateTreeFromStateNode): If the rood state node
is null, just clear the map and null out the root scrolling node.
* page/scrolling/ScrollingTree.h: m_debugInfoLayer was unused.
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView): It may be possible
to get here before we've registered the root scroll layer, in which case scrollLayerID()
will be 0. Assert to see if this can ever happen.
(WebCore::ScrollingCoordinatorMac::scrollingStateTreeAsText): Handle case of rootStateNode()
being null.
2013-02-12 Raymond Toy <rtoy@google.com>
Synchronize setting of panner node model and processing
https://bugs.webkit.org/show_bug.cgi?id=109599
Reviewed by Chris Rogers.
No new tests.
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::process):
(WebCore::PannerNode::setPanningModel):
* Modules/webaudio/PannerNode.h:
2013-02-12 Dean Jackson <dino@apple.com>
Add class name for snapshotted plugin based on dimensions
https://bugs.webkit.org/show_bug.cgi?id=108369
Reviewed by Simon Fraser.
As the size of the plugin changes, the Shadow Root for the snapshot
might want to toggle different interfaces. Expose "tiny", "small",
"medium" and "large" classes on the Shadow. (The dimensions are
currently chosen fairly arbitrarily).
Because we only know the dimensions after layout, we set up
a post layout task to add the class. Luckily there already was
a post layout task for plugins - I just updated it to handle
both real and snapshotted plugins. This involved modifying
the list of RenderEmbeddedObjects in FrameView to take generic
RenderObjects, and decide which type they are when calling
the update method.
* html/HTMLPlugInImageElement.cpp: Some new dimensions for the various size thresholds.
(WebCore::classNameForShadowRootSize): New static function that returns a class name
after examining the size of the object.
(WebCore::HTMLPlugInImageElement::updateSnapshotInfo): Sets the class name for
the shadow root. This is called in the post layout task.
(WebCore::shouldPlugInShowLabelAutomatically): Use new size names.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Ditto.
* html/HTMLPlugInImageElement.h:
(HTMLPlugInImageElement): New method updateSnapshotInfo.
* page/FrameView.cpp:
(WebCore::FrameView::addWidgetToUpdate): Change RenderEmbeddedObject* to RenderObject*.
(WebCore::FrameView::removeWidgetToUpdate): Ditto
(WebCore::FrameView::updateWidget): Branch based on EmbeddedObject vs SnapshottedPlugIn. Call
plugin snapshot update if necessary.
(WebCore::FrameView::updateWidgets): Handle both EmbeddedObject and SnapshottedPlugIn cases.
* page/FrameView.h: Change RenderEmbeddedObject* to RenderObject* for post layout widget updates.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::layout): New virtual override. If size has changed, ask the
FrameView to recalculate size after layout.
* rendering/RenderSnapshottedPlugIn.h: New layout() method.
2013-02-12 Mike West <mkwst@chromium.org>
Implement script MIME restrictions for X-Content-Type-Options: nosniff
https://bugs.webkit.org/show_bug.cgi?id=71851
Reviewed by Adam Barth.
This patch adds support for 'X-Content-Type-Options: nosniff' when
deciding whether or not to execute a given chunk of JavaScript. If the
header is present, script will only execute if it matches a predefined
set of MIME types[1] that are deemed "executable". Scripts served with
types that don't match the list will not execute.
IE introduced this feature, and Gecko is working on an implementation[2]
now. There's been some discussion on the WHATWG list about formalizing
the specification for this feature[3], but nothing significant has been
decided.
This implementation's list of acceptible MIME types differs from IE's:
it matches the list of supported JavaScript MIME types defined in
MIMETypeRegistry::initializeSupportedJavaScriptMIMETypes()[4]. In
particular, the VBScript types are not accepted, and
'text/javascript1.{1,2,3}' are accepted, along with 'text/livescript'.
This feature is locked tightly behind the ENABLE_NOSNIFF flag, which is
currently only enabled on the Chromium port.
[1]: http://msdn.microsoft.com/en-us/library/gg622941(v=vs.85).aspx
[2]: https://bugzilla.mozilla.org/show_bug.cgi?id=471020
[3]: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-November/037974.html
[4]: http://trac.webkit.org/browser/trunk/Source/WebCore/platform/MIMETypeRegistry.cpp?rev=142086#L307
Tests: http/tests/security/contentTypeOptions/invalid-content-type-options-allowed.html
http/tests/security/contentTypeOptions/nosniff-script-allowed.html
http/tests/security/contentTypeOptions/nosniff-script-blocked.html
http/tests/security/contentTypeOptions/nosniff-script-without-content-type-allowed.html
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::executeScript):
Before executing script, ensure that it shouldn't be blocked due to
its MIME type. If it is blocked, write an error message to the
console.
* loader/cache/CachedScript.cpp:
(WebCore::CachedScript::mimeType):
Make scripts' MIME type available outside the context of
CachedScript in order to correctly populate error messages we write
to the console in ScriptElement::executeScript
(WebCore):
(WebCore::CachedScript::mimeTypeAllowedByNosniff):
* loader/cache/CachedScript.h:
(CachedScript):
A new method which checks the resource's HTTP headers to set the
'nosniff' disposition, and compares the resource's MIME type against
the list of allowed executable types. Returns true iff the script
is allowed.
* platform/network/HTTPParsers.cpp:
(WebCore):
(WebCore::parseContentTypeOptionsHeader):
* platform/network/HTTPParsers.h:
Adds a new enum which relates the sniffable status of the resource,
and a method to parse the HTTP header.
2013-02-12 Adam Barth <abarth@webkit.org>
Threaded HTML parser should pass the remaining fast/tokenizer tests
https://bugs.webkit.org/show_bug.cgi?id=109607
Reviewed by Eric Seidel.
This patch fixes some edge cases involving document.write. Previously,
we would drop input characters on the floor if the tokenizer wasn't
able to consume them synchronously. In this patch, we send the unparsed
characters to the background thread for consumption after rewinding the
input stream.
* html/parser/BackgroundHTMLInputStream.cpp:
(WebCore::BackgroundHTMLInputStream::rewindTo):
* html/parser/BackgroundHTMLInputStream.h:
(BackgroundHTMLInputStream):
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::resumeFrom):
* html/parser/BackgroundHTMLParser.h:
(Checkpoint):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::canTakeNextToken):
(WebCore::HTMLDocumentParser::didFailSpeculation):
(WebCore::HTMLDocumentParser::pumpTokenizer):
(WebCore::HTMLDocumentParser::finish):
* html/parser/HTMLInputStream.h:
(WebCore::HTMLInputStream::closeWithoutMarkingEndOfFile):
(HTMLInputStream):
2013-02-12 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed buildfix for !ENABLE(INSPECTOR) platforms after r142654.
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::scriptsEnabled):
2013-02-12 Christophe Dumez <ch.dumez@sisa.samsung.com>
Remove remaining traces of Web Intents
https://bugs.webkit.org/show_bug.cgi?id=109586
Reviewed by Eric Seidel.
Remove remaining traces of Web Intents as the functionality was
removed in r142549.
No new tests, no behavior change for layout tests.
* GNUmakefile.features.am.in:
* html/HTMLTagNames.in:
2013-02-12 Robert Hogan <robert@webkit.org>
REGRESSION(r136967): Combination of float and clear yields to bad layout
https://bugs.webkit.org/show_bug.cgi?id=109476
Reviewed by Levi Weintraub.
Test: fast/block/margin-collapse/self-collapsing-block-with-float-children.html
The change made at http://trac.webkit.org/changeset/136967 only needs to worry about the first floated
child of a self-collapsing block. The ones that follow are not affected by its margins.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
2013-02-12 Levi Weintraub <leviw@chromium.org>
ASSERTION FAILED: !object || object->isBox(), UNKNOWN in WebCore::RenderListItem::positionListMarker
https://bugs.webkit.org/show_bug.cgi?id=108699
Reviewed by Abhishek Arya.
RenderListItems performs special management of its children to maintain list markers. Splitting a flow
through a list item results in assumptions made inside RenderListItem failing, so for now, avoid splitting
flows when inside one.
Test: fast/multicol/span/list-multi-column-crash.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::containingColumnsBlock):
2013-02-12 Roger Fong <roger_fong@apple.com>
Unreviewed Windows build fix.
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::Internals):
2013-02-12 Vivek Galatage <vivek.vg@samsung.com>
Web Inspector: JavaScript execution disabled by browser/UA should be notified to the front-end
https://bugs.webkit.org/show_bug.cgi?id=109402
Reviewed by Yury Semikhatsky.
Whenever the UA/Browser changes the Script Execution state of a page, it should notify the
inspector front-end. Added the InspectorInstrumentation method didScriptExecutionStateChange
to achieve this. Also the state change triggered by the inspector should be ignored to avoid
infinite loop.
Test: inspector/script-execution-state-change-notification.html
* inspector/Inspector.json:
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::scriptsEnabledImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::scriptsEnabled):
(WebCore):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::InspectorPageAgent):
(WebCore::InspectorPageAgent::setScriptExecutionDisabled):
(WebCore::InspectorPageAgent::scriptsEnabled):
(WebCore):
* inspector/InspectorPageAgent.h:
(InspectorPageAgent):
* inspector/front-end/ResourceTreeModel.js:
(WebInspector.PageDispatcher.prototype.javascriptDialogClosed):
(WebInspector.PageDispatcher.prototype.scriptsEnabled):
* page/Settings.cpp:
(WebCore::Settings::setScriptEnabled):
2013-02-12 Antti Koivisto <antti@apple.com>
Cache timer heap pointer to timers
https://bugs.webkit.org/show_bug.cgi?id=109597
Reviewed by Andreas Kling.
Accessing timer heap through thread global storage is slow (~0.1% in PLT3). We can cache the heap pointer to
each TimerBase. There are not huge numbers of timers around so memory is not an issue and many timers are heavily reused.
* platform/Timer.cpp:
(WebCore::threadGlobalTimerHeap):
(WebCore::TimerHeapReference::operator=):
(WebCore::TimerHeapIterator::checkConsistency):
(WebCore::TimerBase::TimerBase):
(WebCore::TimerBase::checkHeapIndex):
(WebCore::TimerBase::setNextFireTime):
* platform/Timer.h:
(WebCore::TimerBase::timerHeap):
(TimerBase):
2013-02-12 Adam Barth <abarth@webkit.org>
BackgroundHTMLParser::resumeFrom should take a struct
https://bugs.webkit.org/show_bug.cgi?id=109598
Reviewed by Eric Seidel.
This patch is purely a syntatic change that paves the way for fixing
the partial-entity document.write tests. To fix those tests, we'll need
to pass more information to resumeFrom, but we're hitting the argument
limits in Functional.h. Rather than adding yet more arguments, this
patch moves to a single argument that's a struct.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::resumeFrom):
* html/parser/BackgroundHTMLParser.h:
(Checkpoint):
(BackgroundHTMLParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didFailSpeculation):
2013-02-12 Elliott Sprehn <esprehn@chromium.org>
rootRenderer in FrameView is really RenderView
https://bugs.webkit.org/show_bug.cgi?id=109510
Reviewed by Eric Seidel.
The global function rootRenderer(FrameView*) is really just a way
to get the RenderView from the Frame so replace it with a renderView()
method and replace usage of the word "root" with renderView so it's
obvious the root we're talking about is the renderView. This is an
important distinction to make since we also have rootRenderer in the code
for the documentElement()'s renderer and we also have a "layout root" which
is entirely different.
No new tests, just refactoring.
* page/FrameView.cpp:
(WebCore::FrameView::rootRenderer): Removed.
(WebCore::FrameView::setFrameRect):
(WebCore::FrameView::adjustViewSize):
(WebCore::FrameView::updateCompositingLayersAfterStyleChange):
(WebCore::FrameView::updateCompositingLayersAfterLayout):
(WebCore::FrameView::clearBackingStores):
(WebCore::FrameView::restoreBackingStores):
(WebCore::FrameView::usesCompositedScrolling):
(WebCore::FrameView::layerForHorizontalScrollbar):
(WebCore::FrameView::layerForVerticalScrollbar):
(WebCore::FrameView::layerForScrollCorner):
(WebCore::FrameView::tiledBacking):
(WebCore::FrameView::scrollLayerID):
(WebCore::FrameView::layerForOverhangAreas):
(WebCore::FrameView::flushCompositingStateForThisFrame):
(WebCore::FrameView::hasCompositedContent):
(WebCore::FrameView::enterCompositingMode):
(WebCore::FrameView::isSoftwareRenderable):
(WebCore::FrameView::didMoveOnscreen):
(WebCore::FrameView::willMoveOffscreen):
(WebCore::FrameView::layout):
(WebCore::FrameView::embeddedContentBox):
(WebCore::FrameView::contentsInCompositedLayer):
(WebCore::FrameView::scrollContentsFastPath):
(WebCore::FrameView::scrollContentsSlowPath):
(WebCore::FrameView::maintainScrollPositionAtAnchor):
(WebCore::FrameView::scrollPositionChanged):
(WebCore::FrameView::repaintFixedElementsAfterScrolling):
(WebCore::FrameView::updateFixedElementsAfterScrolling):
(WebCore::FrameView::visibleContentsResized):
(WebCore::FrameView::scheduleRelayoutOfSubtree):
(WebCore::FrameView::needsLayout):
(WebCore::FrameView::setNeedsLayout):
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::updateControlTints):
(WebCore::FrameView::paintContents):
(WebCore::FrameView::forceLayoutForPagination):
(WebCore::FrameView::adjustPageHeightDeprecated):
(WebCore::FrameView::resetTrackedRepaints):
(WebCore::FrameView::isVerticalDocument):
(WebCore::FrameView::isFlippedDocument):
* page/FrameView.h:
(WebCore::FrameView::renderView): Added.
2013-02-12 Tomas Popela <tpopela@redhat.com>
[GTK][Introspection] GObject bindings for DataTransferItemList - one add() method must be removed from .idl
https://bugs.webkit.org/show_bug.cgi?id=109180
Reviewed by Xan Lopez.
When compiling WebKit with --enable-introspection and generating GObject bindings
for DataTransferItemList we must disable one add() method, because GObject is
based on C and C does not allow two functions with the same name.
No tests needed.
* bindings/scripts/CodeGeneratorGObject.pm:
2013-02-12 Uday Kiran <udaykiran@motorola.com>
Background size width specified in viewport percentage units not working
https://bugs.webkit.org/show_bug.cgi?id=109536
Reviewed by Antti Koivisto.
Corrected the check for viewport percentage unit while calculating
background image width.
Test: fast/backgrounds/size/backgroundSize-viewportPercentage-width.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateFillTileSize):
2013-02-12 Abhishek Arya <inferno@chromium.org>
Heap-use-after-free in WebCore::DeleteButtonController::enable
https://bugs.webkit.org/show_bug.cgi?id=109447
Reviewed by Ryosuke Niwa.
RefPtr frame pointer since it can get deleted due to mutation events
fired inside AppendNodeCommand::doUnapply.
No new tests. Testcase is hard to minimize due to recursive
calls with DOMNodeRemovedFromDocument mutation event.
* editing/CompositeEditCommand.cpp:
(WebCore::EditCommandComposition::unapply):
(WebCore::EditCommandComposition::reapply):
2013-02-12 Eric Seidel <eric@webkit.org>
Remove HTMLTokenTypes header (and split out AtomicHTMLToken.h from HTMLToken.h)
https://bugs.webkit.org/show_bug.cgi?id=109525
Reviewed by Adam Barth.
We no longer need a separate HTMLTokenTypes class now that NEW_XML is gone.
However, to remove HTMLTokenTypes, I had to split AtomicHTMLToken.h from
HTMLToken.h (to fix a circular dependancy).
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::addSource):
* html/parser/AtomicHTMLToken.h: Added.
(WebCore):
(AtomicHTMLToken):
(WebCore::AtomicHTMLToken::create):
(WebCore::AtomicHTMLToken::forceQuirks):
(WebCore::AtomicHTMLToken::type):
(WebCore::AtomicHTMLToken::name):
(WebCore::AtomicHTMLToken::setName):
(WebCore::AtomicHTMLToken::selfClosing):
(WebCore::AtomicHTMLToken::getAttributeItem):
(WebCore::AtomicHTMLToken::attributes):
(WebCore::AtomicHTMLToken::characters):
(WebCore::AtomicHTMLToken::charactersLength):
(WebCore::AtomicHTMLToken::isAll8BitData):
(WebCore::AtomicHTMLToken::comment):
(WebCore::AtomicHTMLToken::publicIdentifier):
(WebCore::AtomicHTMLToken::systemIdentifier):
(WebCore::AtomicHTMLToken::clearExternalCharacters):
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
(WebCore::AtomicHTMLToken::initializeAttributes):
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::simulateTreeBuilder):
* html/parser/CompactHTMLToken.cpp:
(WebCore::CompactHTMLToken::CompactHTMLToken):
* html/parser/CompactHTMLToken.h:
(WebCore::CompactHTMLToken::type):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertDoctype):
(WebCore::HTMLConstructionSite::insertComment):
(WebCore::HTMLConstructionSite::insertCommentOnDocument):
(WebCore::HTMLConstructionSite::insertCommentOnHTMLHtmlElement):
(WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
(WebCore::HTMLConstructionSite::insertForeignElement):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::constructTreeFromHTMLToken):
* html/parser/HTMLDocumentParser.h:
* html/parser/HTMLMetaCharsetParser.cpp:
(WebCore::HTMLMetaCharsetParser::checkForMetaCharset):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::isStartTag):
(WebCore::isStartOrEndTag):
(WebCore::HTMLPreloadScanner::processToken):
* html/parser/HTMLSourceTracker.cpp:
(WebCore::HTMLSourceTracker::start):
(WebCore::HTMLSourceTracker::sourceForToken):
* html/parser/HTMLStackItem.h:
(WebCore::HTMLStackItem::HTMLStackItem):
* html/parser/HTMLToken.h:
(WebCore::HTMLToken::clear):
(WebCore::HTMLToken::isUninitialized):
(WebCore::HTMLToken::type):
(WebCore::HTMLToken::makeEndOfFile):
(WebCore::HTMLToken::data):
(WebCore::HTMLToken::name):
(WebCore::HTMLToken::appendToName):
(WebCore::HTMLToken::forceQuirks):
(WebCore::HTMLToken::setForceQuirks):
(WebCore::HTMLToken::beginDOCTYPE):
(WebCore::HTMLToken::publicIdentifier):
(WebCore::HTMLToken::systemIdentifier):
(WebCore::HTMLToken::setPublicIdentifierToEmptyString):
(WebCore::HTMLToken::setSystemIdentifierToEmptyString):
(WebCore::HTMLToken::appendToPublicIdentifier):
(WebCore::HTMLToken::appendToSystemIdentifier):
(WebCore::HTMLToken::selfClosing):
(WebCore::HTMLToken::setSelfClosing):
(WebCore::HTMLToken::beginStartTag):
(WebCore::HTMLToken::beginEndTag):
(WebCore::HTMLToken::addNewAttribute):
(WebCore::HTMLToken::appendToAttributeName):
(WebCore::HTMLToken::appendToAttributeValue):
(WebCore::HTMLToken::attributes):
(WebCore::HTMLToken::eraseValueOfAttribute):
(WebCore::HTMLToken::ensureIsCharacterToken):
(WebCore::HTMLToken::characters):
(WebCore::HTMLToken::appendToCharacter):
(WebCore::HTMLToken::comment):
(WebCore::HTMLToken::beginComment):
(WebCore::HTMLToken::appendToComment):
(WebCore::HTMLToken::eraseCharacters):
(HTMLToken):
* html/parser/HTMLTokenTypes.h: Removed.
* html/parser/HTMLTokenizer.cpp:
(WebCore::AtomicHTMLToken::usesName):
(WebCore::AtomicHTMLToken::usesAttributes):
(WebCore::HTMLTokenizer::flushBufferedEndTag):
(WebCore::HTMLTokenizer::nextToken):
* html/parser/HTMLTokenizer.h:
(WebCore::HTMLTokenizer::saveEndTagNameIfNeeded):
(WebCore::HTMLTokenizer::haveBufferedCharacterToken):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processToken):
(WebCore::HTMLTreeBuilder::processDoctypeToken):
(WebCore::HTMLTreeBuilder::processFakeStartTag):
(WebCore::HTMLTreeBuilder::processFakeEndTag):
(WebCore::HTMLTreeBuilder::processFakePEndTagIfPInButtonScope):
(WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
(WebCore):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
(WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
(WebCore::HTMLTreeBuilder::processEndTagForInRow):
(WebCore::HTMLTreeBuilder::processEndTagForInCell):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTagForInTable):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processComment):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
(WebCore::HTMLTreeBuilder::defaultForBeforeHead):
(WebCore::HTMLTreeBuilder::defaultForInHead):
(WebCore::HTMLTreeBuilder::defaultForInHeadNoscript):
(WebCore::HTMLTreeBuilder::defaultForAfterHead):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
(WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
(WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
(WebCore::HTMLTreeBuilder::processScriptStartTag):
(WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
(WebCore::HTMLTreeBuilder::processTokenInForeignContent):
* html/parser/HTMLViewSourceParser.cpp:
(WebCore::HTMLViewSourceParser::updateTokenizerState):
* html/parser/TextDocumentParser.cpp:
(WebCore::TextDocumentParser::insertFakePreElement):
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::filterToken):
(WebCore::XSSAuditor::filterScriptToken):
(WebCore::XSSAuditor::filterObjectToken):
(WebCore::XSSAuditor::filterParamToken):
(WebCore::XSSAuditor::filterEmbedToken):
(WebCore::XSSAuditor::filterAppletToken):
(WebCore::XSSAuditor::filterIframeToken):
(WebCore::XSSAuditor::filterMetaToken):
(WebCore::XSSAuditor::filterBaseToken):
(WebCore::XSSAuditor::filterFormToken):
2013-02-12 Pablo Flouret <pablof@motorola.com>
Handle error recovery in @supports
https://bugs.webkit.org/show_bug.cgi?id=103934
Reviewed by Antti Koivisto.
Tests 021, 024, 031, and 033 in
http://hg.csswg.org/test/file/5f94e4b03ed9/contributors/opera/submitted/css3-conditional
fail because there's no explicit error recovery in @support's grammar.
Opera and Firefox pass the tests.
No new tests, modified css3/supports{,-cssom}.html
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::createSupportsRule):
(WebCore::CSSParser::markSupportsRuleHeaderEnd):
(WebCore::CSSParser::popSupportsRuleData):
* css/CSSParser.h:
2013-02-12 Eric Carlson <eric.carlson@apple.com>
[Mac] guard against NULL languages array
https://bugs.webkit.org/show_bug.cgi?id=109595
Reviewed by Dean Jackson.
No new tests, existing tests won't crash if this is correct.
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::preferredLanguages):
2013-02-12 Emil A Eklund <eae@chromium.org>
TransformState::move should not round offset to int
https://bugs.webkit.org/show_bug.cgi?id=108266
Reviewed by Simon Fraser.
Currently TransformState::move rounds the offset to the nearest
integer values, this results in operations using TransformState
to compute a position to misreport the location, specifically
Element:getBoundingClientRect and repaint rects. Sizes are
handled correctly and do not have the same problem.
Tests: fast/sub-pixel/boundingclientrect-subpixel-margin.html
fast/sub-pixel/clip-rect-box-consistent-rounding.html
* page/FrameView.cpp:
(WebCore::FrameView::convertFromRenderer):
Change to use pixel snapping instead of enclosing box. All other
code paths use pixelSnappedIntRect to align the rects to device
pixels however this used enclosingIntRect (indirectly through
the FloatQuad::enclosingBoundingBox call).
Without the rounding in TransformState this causes repaint rects
for elements on subpixel bounds to be too large by up to one
pixel on each axis. For normal repaints this isn't really a
problem but in scrollContentsSlowPath it can result in moving
too large a rect.
* platform/graphics/transforms/TransformState.cpp:
(WebCore::TransformState::translateTransform):
(WebCore::TransformState::translateMappedCoordinates):
Change to take a LayoutSize instead of an IntSize.
(WebCore::TransformState::move):
(WebCore::TransformState::applyAccumulatedOffset):
* platform/graphics/transforms/TransformState.h:
Remove rounding logic and use original, more precise, value.
* rendering/RenderGeometryMap.cpp:
(WebCore::RenderGeometryMap::mapToContainer):
Remove rounding logic and use original, more precise, value.
2013-02-12 Jessie Berlin <jberlin@apple.com>
Rollout r142618, it broke all the Mac builds.
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::HeapGraphSerializer):
(WebCore::HeapGraphSerializer::pushUpdate):
(WebCore::HeapGraphSerializer::reportNode):
(WebCore::HeapGraphSerializer::toNodeId):
(WebCore::HeapGraphSerializer::addRootNode):
* inspector/HeapGraphSerializer.h:
(WebCore):
(HeapGraphSerializer):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
2013-02-12 Rafael Weinstein <rafaelw@chromium.org>
[HTMLTemplateElement] <template> inside of <head> may not create <body> if EOF is hit
https://bugs.webkit.org/show_bug.cgi?id=109338
Reviewed by Adam Barth.
This patch adds the logic to clear the stack of open elements back to the first <template> when EOF
is hit. This allows a <body> to be generated if the initial <template> was opened inside of <head>.
Tests added to html5lib.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore):
(WebCore::HTMLTreeBuilder::popAllTemplates):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processEndOfFile):
* html/parser/HTMLTreeBuilder.h:
(HTMLTreeBuilder):
2013-02-12 Dominic Mazzoni <dmazzoni@google.com>
ASSERTION FAILED: i < size(), UNKNOWN in WebCore::AccessibilityMenuListPopup::didUpdateActiveOption
https://bugs.webkit.org/show_bug.cgi?id=109452
Reviewed by Chris Fleizach.
Send the accessibility childrenChanged notification in
HTMLSelectElement::setRecalcListItems instead of in childrenChanged
so that all possible codepaths are caught.
Test: accessibility/insert-selected-option-into-select-causes-crash.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::childrenChanged):
(WebCore::HTMLSelectElement::setRecalcListItems):
2013-02-12 Peter Rybin <prybin@chromium.org>
Web Inspector: for event listener provide handler function value in protocol and in UI
https://bugs.webkit.org/show_bug.cgi?id=109284
Reviewed by Yury Semikhatsky.
The feature implies that we include a real handler function value into event listener description.
Protocol description, inspector DOM agent (with V8 and JSC backends) and front-end is patched accordingly.
* bindings/js/ScriptEventListener.cpp:
(WebCore::eventListenerHandler):
(WebCore):
(WebCore::eventListenerHandlerScriptState):
* bindings/js/ScriptEventListener.h:
(WebCore):
* bindings/v8/ScriptEventListener.cpp:
(WebCore::eventListenerHandler):
(WebCore):
(WebCore::eventListenerHandlerScriptState):
* bindings/v8/ScriptEventListener.h:
(WebCore):
* inspector/Inspector.json:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::getEventListenersForNode):
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
* inspector/InspectorDOMAgent.h:
(InspectorDOMAgent):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode.prototype.eventListeners):
* inspector/front-end/EventListenersSidebarPane.js:
(WebInspector.EventListenersSidebarPane.prototype.update):
(.):
2013-02-12 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: add initial implementation of native memory graph to Timeline
https://bugs.webkit.org/show_bug.cgi?id=109578
Reviewed by Alexander Pavlov.
This change adds inital implementation of native memory graph UI. The graph
will be shown in the same place as DOM counters graph on the Timeline panel.
Added NativeMemoryGraph.js that reuses parts of DOM counters graph
implementation. MemoryStatistics.js was refactor to allow sharing
more code between DOM counters and native memory graph.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/MemoryStatistics.js:
(WebInspector.MemoryStatistics):
(WebInspector.MemoryStatistics.prototype._createCurrentValuesBar):
(WebInspector.MemoryStatistics.prototype._createCounterUIList):
(WebInspector.MemoryStatistics.prototype._createCounterUIList.getNodeCount):
(WebInspector.MemoryStatistics.prototype._createCounterUIList.getListenerCount):
(WebInspector.MemoryStatistics.prototype._canvasHeight):
(WebInspector.MemoryStatistics.prototype._updateSize):
(WebInspector.MemoryStatistics.prototype._highlightCurrentPositionOnGraphs):
(WebInspector.MemoryStatistics.prototype._drawMarker):
* inspector/front-end/NativeMemoryGraph.js: Added.
(WebInspector.NativeMemoryGraph):
(WebInspector.NativeMemoryCounterUI):
(WebInspector.NativeMemoryCounterUI.prototype._hslToString):
(WebInspector.NativeMemoryCounterUI.prototype.updateCurrentValue):
(WebInspector.NativeMemoryCounterUI.prototype.clearCurrentValueAndMarker):
(WebInspector.NativeMemoryGraph.prototype._createCurrentValuesBar):
(WebInspector.NativeMemoryGraph.prototype._createCounterUIList.getCounterValue):
(WebInspector.NativeMemoryGraph.prototype._createCounterUIList):
(WebInspector.NativeMemoryGraph.prototype._canvasHeight):
(WebInspector.NativeMemoryGraph.prototype._onRecordAdded.addStatistics):
(WebInspector.NativeMemoryGraph.prototype._onRecordAdded):
(WebInspector.NativeMemoryGraph.prototype._draw):
(WebInspector.NativeMemoryGraph.prototype._clearCurrentValueAndMarker):
(WebInspector.NativeMemoryGraph.prototype._updateCurrentValue):
(WebInspector.NativeMemoryGraph.prototype._restoreImageUnderMarker):
(WebInspector.NativeMemoryGraph.prototype._saveImageUnderMarker):
(WebInspector.NativeMemoryGraph.prototype._drawMarker):
(WebInspector.NativeMemoryGraph.prototype._maxCounterValue):
(WebInspector.NativeMemoryGraph.prototype._resetTotalValues):
(WebInspector.NativeMemoryGraph.prototype.valueGetter):
(WebInspector.NativeMemoryGraph.prototype._drawGraph):
(WebInspector.NativeMemoryGraph.prototype._discardImageUnderMarker):
* inspector/front-end/TimelinePanel.js:
* inspector/front-end/WebKit.qrc:
* inspector/front-end/timelinePanel.css:
(#memory-graphs-canvas-container.dom-counters .resources-dividers):
(.memory-category-value):
2013-02-12 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: refactor some reusable functionality from BraceHighlighter
https://bugs.webkit.org/show_bug.cgi?id=109574
Reviewed by Pavel Feldman.
New test: inspector/editor/text-editor-brace-highlighter.html
Extract functionality which, for given line and cursor position, will
return position for a brace that should be highlighted. Add a layout
test to verify brace highlighter funcionality.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.BraceHighlightController.prototype.activeBraceColumnForCursorPosition):
(WebInspector.TextEditorMainPanel.BraceHighlightController.prototype.handleSelectionChange):
* inspector/front-end/TextUtils.js:
(WebInspector.TextUtils.isOpeningBraceChar):
(WebInspector.TextUtils.isClosingBraceChar):
(WebInspector.TextUtils.isBraceChar):
2013-02-12 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: reportLeaf method doesn't report the leaf node properly.
https://bugs.webkit.org/show_bug.cgi?id=109554
In some cases leaves have no pointer so with the old schema we can't generate nodeId for them because we
can't insert 0 into hashmap. It happens when we call addPrivateBuffer method.
Drive by fix: I introduced a client interface for the HeapGraphSerializer.
It helps me to do the tests for the serializer.
Reviewed by Yury Semikhatsky.
It is covered by newly added tests in TestWebKitAPI.
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::HeapGraphSerializer):
(WebCore::HeapGraphSerializer::pushUpdate):
(WebCore::HeapGraphSerializer::reportNode):
(WebCore::HeapGraphSerializer::toNodeId):
(WebCore::HeapGraphSerializer::addRootNode):
* inspector/HeapGraphSerializer.h:
(HeapGraphSerializerClient):
(WebCore::HeapGraphSerializerClient::~HeapGraphSerializerClient):
(HeapGraphSerializer):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
2013-02-12 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Introduce version controller to migrate settings versions.
https://bugs.webkit.org/show_bug.cgi?id=109553
Reviewed by Yury Semikhatsky.
This patch introduces version controller that could be used to migrate inspector settings.
Test: inspector/version-controller.html
* inspector/front-end/Settings.js:
(WebInspector.Settings):
(WebInspector.VersionController):
(WebInspector.VersionController.prototype.set _methodsToRunToUpdateVersion):
(WebInspector.VersionController.prototype._updateVersionFrom0To1):
* inspector/front-end/inspector.js:
2013-02-12 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: File system should produce more verbose error messages and recover from errors
https://bugs.webkit.org/show_bug.cgi?id=109571
Reviewed by Alexander Pavlov.
Error handler prints original file system call params now.
Added callbacks to error handler to recover from errors.
* inspector/front-end/FileSystemProjectDelegate.js:
(WebInspector.FileSystemProjectDelegate.prototype.contentCallback):
(WebInspector.FileSystemProjectDelegate.prototype.searchInFileContent):
(WebInspector.FileSystemUtils.errorMessage):
(.fileSystemLoaded):
(.fileEntryLoaded):
(.errorHandler):
(WebInspector.FileSystemUtils.requestFileContent):
(WebInspector.FileSystemUtils.setFileContent):
(WebInspector.FileSystemUtils._readDirectory):
(.innerCallback):
(WebInspector.FileSystemUtils._requestEntries):
2013-02-12 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Get rid of unnecessary complexity in FileSystemUtil: remove _getDirectory() method.
https://bugs.webkit.org/show_bug.cgi?id=109567
Reviewed by Alexander Pavlov.
The code in this method was redundant as the same result could be achieved by using File System API directly.
* inspector/front-end/FileSystemProjectDelegate.js:
2013-02-12 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [SuggestBox] SuggestBox not hidden when prefix is empty and there is preceding input
https://bugs.webkit.org/show_bug.cgi?id=109568
Reviewed by Vsevolod Vlasov.
The suggestbox would get hidden in the case of empty input, yet it should get hidden
in the case of empty user-entered prefix (which is a wider notion.)
* inspector/front-end/TextPrompt.js:
(WebInspector.TextPrompt.prototype.complete):
2013-02-12 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: separate SuggestBox from TextPrompt
https://bugs.webkit.org/show_bug.cgi?id=109430
Reviewed by Alexander Pavlov.
Create WebInspector.SuggestBoxDelegate interface and
refactor TextPrompt to use this interface. Separate SuggestBox into
WebInspector.SuggestBox namespace and put it into its own file.
No new tests: no change in behaviour.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/SuggestBox.js: Added.
(WebInspector.SuggestBoxDelegate):
(WebInspector.SuggestBoxDelegate.prototype.applySuggestion):
(WebInspector.SuggestBoxDelegate.prototype.acceptSuggestion):
(WebInspector.SuggestBoxDelegate.prototype.userEnteredText):
(WebInspector.SuggestBox):
(WebInspector.SuggestBox.prototype.get visible):
(WebInspector.SuggestBox.prototype.get hasSelection):
(WebInspector.SuggestBox.prototype._onscrollresize):
(WebInspector.SuggestBox.prototype._updateBoxPositionWithExistingAnchor):
(WebInspector.SuggestBox.prototype._updateBoxPosition):
(WebInspector.SuggestBox.prototype._onboxmousedown):
(WebInspector.SuggestBox.prototype.hide):
(WebInspector.SuggestBox.prototype.removeFromElement):
(WebInspector.SuggestBox.prototype._applySuggestion):
(WebInspector.SuggestBox.prototype.acceptSuggestion):
(WebInspector.SuggestBox.prototype._selectClosest):
(WebInspector.SuggestBox.prototype.updateSuggestions):
(WebInspector.SuggestBox.prototype._onItemMouseDown):
(WebInspector.SuggestBox.prototype._createItemElement):
(WebInspector.SuggestBox.prototype._updateItems):
(WebInspector.SuggestBox.prototype._selectItem):
(WebInspector.SuggestBox.prototype._canShowBox):
(WebInspector.SuggestBox.prototype._rememberRowCountPerViewport):
(WebInspector.SuggestBox.prototype._completionsReady):
(WebInspector.SuggestBox.prototype.upKeyPressed):
(WebInspector.SuggestBox.prototype.downKeyPressed):
(WebInspector.SuggestBox.prototype.pageUpKeyPressed):
(WebInspector.SuggestBox.prototype.pageDownKeyPressed):
(WebInspector.SuggestBox.prototype.enterKeyPressed):
(WebInspector.SuggestBox.prototype.tabKeyPressed):
* inspector/front-end/TextPrompt.js:
(WebInspector.TextPrompt.prototype.userEnteredText):
(WebInspector.TextPrompt.prototype._attachInternal):
(WebInspector.TextPrompt.prototype._completionsReady):
(WebInspector.TextPrompt.prototype.applySuggestion):
(WebInspector.TextPrompt.prototype._applySuggestion):
(WebInspector.TextPrompt.prototype.enterKeyPressed):
(WebInspector.TextPrompt.prototype.upKeyPressed):
(WebInspector.TextPrompt.prototype.downKeyPressed):
(WebInspector.TextPrompt.prototype.pageUpKeyPressed):
(WebInspector.TextPrompt.prototype.pageDownKeyPressed):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2013-02-12 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
[TexMap] Apply frames-per-second debug counter to WK1.
https://bugs.webkit.org/show_bug.cgi?id=109540
Reviewed by Noam Rosenthal.
Adds basysKom copyright info to TextureMapperFPSCounter header.
* platform/graphics/texmap/TextureMapperFPSCounter.cpp:
* platform/graphics/texmap/TextureMapperFPSCounter.h:
2013-02-12 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r142531.
http://trac.webkit.org/changeset/142531
https://bugs.webkit.org/show_bug.cgi?id=109569
Causes html5lib/run-template layout test to crash. (Requested
by atwilson_ on #webkit).
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processTemplateEndTag):
(WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
(WebCore::HTMLTreeBuilder::processEndOfFile):
* html/parser/HTMLTreeBuilder.h:
(HTMLTreeBuilder):
2013-02-12 Zan Dobersek <zdobersek@igalia.com>
[GTK] Enable CSS image-set support in development builds
https://bugs.webkit.org/show_bug.cgi?id=109475
Reviewed by Martin Robinson.
No new tests - majority of the related tests now passes.
* GNUmakefile.features.am.in: Add the feature define for the CSS image-set feature
with the define value defaulting to 0. The value gets overridden with 1 in development
builds, meaning the feature is enabled under that configuration.
2013-02-12 Zan Dobersek <zdobersek@igalia.com>
[GTK] Enable DOM4 events constructors in development builds
https://bugs.webkit.org/show_bug.cgi?id=109471
Reviewed by Martin Robinson.
No new tests - the related tests now pass.
* GNUmakefile.features.am.in: Add the feature define for the DOM4 events
constructors feature, its value defaulting to 0. This value is overridden
with 1 in development builds, effectively enabling the feature.
2013-02-12 Zan Dobersek <zdobersek@igalia.com>
Unreviewed build fix for the GTK port after r142595.
Adding the TextureMapperFPSCounter files to the list of build targets
in case of using the OpenGL texture mapper.
* GNUmakefile.list.am:
2013-02-12 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: fix closure compiler warnings in extension server and API
https://bugs.webkit.org/show_bug.cgi?id=109563
Reviewed by Vsevolod Vlasov.
* inspector/front-end/ExtensionAPI.js: drive-by: make sure we fail if extensionServer is not defined in outer scope.
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype.):
(WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
* inspector/front-end/externs.js: add extensionServer
2013-02-12 Zoltan Arvai <zarvai@inf.u-szeged.hu>
Unreviewed. Fix !ENABLE(INSPECTOR) builds after r142575
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::willDispatchEvent):
2013-02-12 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: move showWhitespace option into experiments
https://bugs.webkit.org/show_bug.cgi?id=109552
Reviewed by Vsevolod Vlasov.
Remove "show whitespace" setting and add it to experiments.
No new tests: fixed an existing test to verify changes.
* English.lproj/localizedStrings.js:
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel):
(WebInspector.TextEditorMainPanel.prototype.wasShown):
(WebInspector.TextEditorMainPanel.prototype.willHide):
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/SettingsScreen.js:
(WebInspector.GenericSettingsTab):
2013-02-12 Tamas Czene <tczene@inf.u-szeged.hu>
Add error checking into OpenCL version of SVG filters.
https://bugs.webkit.org/show_bug.cgi?id=107444
Reviewed by Zoltan Herczeg.
In case of an error the program runs through all the remaining filters by doing nothing.
After that deletes the results of every filter and starts software rendering.
* platform/graphics/filters/FilterEffect.cpp:
(WebCore):
(WebCore::FilterEffect::applyAll): At software rendering this is a simple inline methode, but at OpenCL rendering it releases OpenCL things. If we have an error remove filter's results and start software rendering.
(WebCore::FilterEffect::clearResultsRecursive):
(WebCore::FilterEffect::openCLImageToImageBuffer):
(WebCore::FilterEffect::createOpenCLImageResult):
(WebCore::FilterEffect::transformResultColorSpace):
* platform/graphics/filters/FilterEffect.h:
(FilterEffect):
(WebCore::FilterEffect::applyAll):
* platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
(WebCore::FilterContextOpenCL::isFailed):
(WebCore):
(WebCore::FilterContextOpenCL::freeResources):
(WebCore::FilterContextOpenCL::destroyContext):
(WebCore::FilterContextOpenCL::compileTransformColorSpaceProgram):
(WebCore::FilterContextOpenCL::openCLTransformColorSpace):
(WebCore::FilterContextOpenCL::compileProgram):
(WebCore::FilterContextOpenCL::freeResource):
* platform/graphics/gpu/opencl/FilterContextOpenCL.h:
(WebCore::FilterContextOpenCL::FilterContextOpenCL):
(WebCore::FilterContextOpenCL::setInError):
(WebCore::FilterContextOpenCL::inError):
(FilterContextOpenCL):
(WebCore::FilterContextOpenCL::RunKernel::RunKernel):
(WebCore::FilterContextOpenCL::RunKernel::addArgument):
(WebCore::FilterContextOpenCL::RunKernel::run):
(RunKernel):
* platform/graphics/gpu/opencl/OpenCLFEColorMatrix.cpp:
(WebCore::FilterContextOpenCL::compileFEColorMatrix):
(WebCore::FEColorMatrix::platformApplyOpenCL):
* platform/graphics/gpu/opencl/OpenCLFETurbulence.cpp:
(WebCore::FilterContextOpenCL::compileFETurbulence):
(WebCore::FETurbulence::platformApplyOpenCL):
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::postApplyResource):
2013-02-12 Huang Dongsung <luxtella@company100.net>
[TexMap] Apply frames-per-second debug counter to WK1.
https://bugs.webkit.org/show_bug.cgi?id=109540
Reviewed by Noam Rosenthal.
r142524 implemented frames-per-second debug counter on WK2. This patch
applies frames-per-second debug counter to WK1 also.
Visual debugging feature, no need for new tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* platform/graphics/texmap/TextureMapper.h:
* platform/graphics/texmap/TextureMapperFPSCounter.cpp: Added.
(WebCore):
(WebCore::TextureMapperFPSCounter::TextureMapperFPSCounter):
(WebCore::TextureMapperFPSCounter::updateFPSAndDisplay):
* platform/graphics/texmap/TextureMapperFPSCounter.h: Added.
(WebCore):
(TextureMapperFPSCounter):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore):
(WebCore::TextureMapperGL::drawNumber):
Rename from drawRepaintCounter to drawNumber.
* platform/graphics/texmap/TextureMapperGL.h:
* platform/graphics/texmap/TextureMapperImageBuffer.cpp:
(WebCore::TextureMapperImageBuffer::drawNumber):
* platform/graphics/texmap/TextureMapperImageBuffer.h:
(TextureMapperImageBuffer):
* platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
(WebCore::TextureMapperTiledBackingStore::drawRepaintCounter):
* platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
(WebCore::CoordinatedBackingStore::drawRepaintCounter):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
Move frames-per-second debug counter code to TextureMapperFPSCounter.
(WebCore::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
(WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebCore::CoordinatedGraphicsScene::paintToGraphicsContext):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
2013-02-11 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: stack trace is cut at native bind if inspector is closed
https://bugs.webkit.org/show_bug.cgi?id=109427
Reviewed by Pavel Feldman.
Only top frame is collected instead of full stack trace when inspector
front-end is closed to avoid expensive operations when exceptions are
thrown.
Test: http/tests/inspector-enabled/console-exception-while-no-inspector.html
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::addMessageToConsole):
2013-02-12 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Mouse click not on sub-fields in multiple fields input should not move focus
https://bugs.webkit.org/show_bug.cgi?id=109544
Reviewed by Kentaro Hara.
This is similar to Bug 108914, "Should not move focus if the element
already has focus." We fixed a focus() case in Bug 108914. However we
still have the problem in a case of focusing by mouse click.
The fix for Bug 108914 intercepted focus() function to change the
behavior. However focus-by-click doesn't call focus(), but calls
FocusController::setFocusedNode. To fix this problem, we introduce
oldFocusedNode argument to handleFocusEvent, and
BaseMultipleFieldsDateAndTimeInputType::handleFocusEvent restores the
focus to oldFocusedNode if oldFocusedNode is one of sub-fields.
handleFocusEvent is called whenever the focused node is changed.
We don't need InputType::willCancelFocus any more because the new code
in handleFocusEvent covers it.
Tests: Update fast/forms/time-multiple-fields/time-multiple-fields-focus.html.
* html/HTMLTextFormControlElement.h:
(WebCore::HTMLTextFormControlElement::handleFocusEvent):
Add oldFocusedNode argument.
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::dispatchFocusEvent):
Pass oldFocusedNode to handleFocusEvent.
* html/HTMLInputElement.h:
(HTMLInputElement):
- Add oldFocusedNode argument to handleFocusEvent.
- Remove focus() override.
* html/HTMLInputElement.cpp: Remove focus() override.
(WebCore::HTMLInputElement::handleFocusEvent):
Pass oldFocusedNode to InputType::handleFocusEvent.
* html/InputType.cpp: Remove willCancelFocus.
(WebCore::InputType::handleFocusEvent):
Add oldFocusedNode argument.
* html/InputType.h:
(InputType): Ditto.
* html/PasswordInputType.cpp:
(WebCore::PasswordInputType::handleFocusEvent): Ditto.
* html/PasswordInputType.h:
(PasswordInputType): Ditto.
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType):
Remove willCancelFocus, and add oldFocusedNode argument to handleFocusEvent.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::handleFocusEvent):
Pass oldFocusedNode to DateTimeEditElement::focusByOwner if the
direction is FocusDirectionNone.
* html/shadow/DateTimeEditElement.h:
(DateTimeEditElement): Add oldFocusedNode argument to focusByOwner.
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditElement::focusByOwner):
If oldFocusedNode is one of sub-fields, focus on it again.
2013-02-12 Takashi Sakamoto <tasak@google.com>
[Refactoring] Make m_selectorChecker in StyleResolver an on-stack object.
https://bugs.webkit.org/show_bug.cgi?id=108595
Reviewed by Eric Seidel.
StyleResolver uses SelectorChecker's mode to change its resolving mode.
However it is a state of StyleResolver. StyleResolver should have the
mode and make SelectorChecker instance on a stack while required.
No new tests, just refactoring.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::fastCheckRightmostSelector):
(WebCore::SelectorChecker::fastCheck):
(WebCore::SelectorChecker::commonPseudoClassSelectorMatches):
(WebCore::SelectorChecker::matchesFocusPseudoClass):
Changed to static class function, because these methods never use
"this".
(WebCore):
* css/SelectorChecker.h:
(SelectorChecker):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::collectMatchingRules):
Now, matchesFocusPseudoClass is not a static method of
SelectorChecker, so replaced "m_selectorChecker." with
"SelectorChecker::".
(WebCore::StyleResolver::sortAndTransferMatchedRules):
(WebCore::StyleResolver::collectMatchingRulesForList):
(WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
(WebCore::StyleResolver::matchUARules):
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
Use m_mode instead of m_selectorChecker.mode().
Also use document()->inQuirksMode() instead of
m_selectoChecker.strictParsing().
(WebCore::StyleResolver::ruleMatches):
(WebCore::StyleResolver::checkRegionSelector):
Created an on-stack SelectorChecker object and used it to check
selectors.
* css/StyleResolver.h:
(WebCore::StyleResolver::State::State):
Added m_mode, this keeps m_selectorChecker's mode.
(State):
(StyleResolver):
Removed m_selectorChecker.
2013-02-11 Viatcheslav Ostapenko <sl.ostapenko@samsung.com>
[Qt][EFL][WebGL] Minor refactoring of GraphicsSurface/GraphicsSurfaceGLX
https://bugs.webkit.org/show_bug.cgi?id=108686
Reviewed by Noam Rosenthal.
Remove unused platformSurface()/m_platformSurface from GraphicsSurface.
Move m_texture from GraphicsSurface to GLX GraphicsSurfacePrivate to match
Win and Mac implementations.
No new tests, refactoring only.
* platform/graphics/surfaces/GraphicsSurface.cpp:
(WebCore::GraphicsSurface::GraphicsSurface):
* platform/graphics/surfaces/GraphicsSurface.h:
(GraphicsSurface):
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::swapBuffers):
(WebCore::GraphicsSurfacePrivate::surface):
(GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::textureID):
(WebCore::GraphicsSurfacePrivate::clear):
(WebCore::GraphicsSurface::platformExport):
(WebCore::GraphicsSurface::platformGetTextureID):
(WebCore::GraphicsSurface::platformSwapBuffers):
(WebCore::GraphicsSurface::platformCreate):
(WebCore::GraphicsSurface::platformImport):
(WebCore::GraphicsSurface::platformDestroy):
2013-02-11 Viatcheslav Ostapenko <sl.ostapenko@samsung.com>
[EFL][WebGL] WebGL content is not painted after resizing the viewport.
https://bugs.webkit.org/show_bug.cgi?id=106358
Reviewed by Noam Rosenthal.
When page size changes and layer parameters get updated LayerTreeRenderer::setLayerState
clears the layer backing store and detaches the canvas surface from the layer. If the layer
size is not changed then the canvas is not recreated. This leaves the canvas detached from
the layer, but still referenced from m_surfaceBackingStores.
Don't assign layer backing store to layer in assignImageBackingToLayer if there is a canvas
surface already attached to the layer.
Test: fast/canvas/webgl/webgl-layer-update.html
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::setLayerState):
(WebCore::CoordinatedGraphicsScene::assignImageBackingToLayer):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
2013-02-11 Eric Carlson <eric.carlson@apple.com>
[Mac] Track language selection should be sticky
https://bugs.webkit.org/show_bug.cgi?id=109466
Reviewed by Dean Jackson.
Choosing a text track from the caption menu should make that track's language the
preferred caption language. Turning captions off from the menu should disable captions
in videos loaded subsequently.
OS X has system support for these settings, so changes made by DRT should not change the
settings on the user's system. Add support for all other ports in DRT only.
Test: media/track/track-user-preferences.html
* WebCore.exp.in: Export PageGroup::captionPreferences().
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Use page()->group().captionPreferences().
(WebCore::HTMLMediaElement::attach): Ditto.
(WebCore::HTMLMediaElement::detach): Ditto.
(WebCore::HTMLMediaElement::userPrefersCaptions): Ditto.
(WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto. Update for
preferredLanguageFromList change.
(WebCore::HTMLMediaElement::toggleTrackAtIndex): Set user prefs for captions visible and
caption language as appropriate.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler): Remove unneeded comment.
(WebCore::MediaControlTextTrackContainerElement::updateSizes): Use page()->group().captionPreferences().
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::closedCaptionTracksChanged): Update caption menu button visibility.
* page/CaptionUserPreferences.h:
(WebCore::CaptionUserPreferences::userPrefersCaptions): Support "testing" mode.
(WebCore::CaptionUserPreferences::setUserPrefersCaptions): Ditto.
(WebCore::CaptionUserPreferences::registerForPreferencesChangedCallbacks): Ditto.
(WebCore::CaptionUserPreferences::unregisterForPreferencesChangedCallbacks): Ditto.
(WebCore::CaptionUserPreferences::setPreferredLanguage): Ditto.
(WebCore::CaptionUserPreferences::preferredLanguages): Ditto.
(WebCore::CaptionUserPreferences::testingMode): Ditto.
(WebCore::CaptionUserPreferences::setTestingMode): Ditto.
(WebCore::CaptionUserPreferences::CaptionUserPreferences): Ditto.
* page/CaptionUserPreferencesMac.h:
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Support "testing" mode.
(WebCore::CaptionUserPreferencesMac::setUserPrefersCaptions): Ditto.
(WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): Ditto.
(WebCore::CaptionUserPreferencesMac::registerForPreferencesChangedCallbacks): Change name from
registerForCaptionPreferencesChangedCallbacks. Support "testing" mode.
(WebCore::CaptionUserPreferencesMac::unregisterForPreferencesChangedCallbacks): Change name from
unregisterForCaptionPreferencesChangedCallbacks. Support "testing" mode.
(WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Support "testing" mode.
(WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Ditto.
(WebCore::CaptionUserPreferencesMac::setPreferredLanguage): Ditto.
(WebCore::CaptionUserPreferencesMac::preferredLanguages): Ditto. Return the platform override when set.
* page/PageGroup.cpp:
(WebCore::PageGroup::registerForCaptionPreferencesChangedCallbacks): Remove because it is already
available from the caption preference object.
(WebCore::PageGroup::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
(WebCore::PageGroup::userPrefersCaptions): Ditto.
(WebCore::PageGroup::userHasCaptionPreferences): Ditto.
(WebCore::PageGroup::captionFontSizeScale): Ditto.
* page/PageGroup.h:
* platform/Language.cpp:
(WebCore::preferredLanguageFromList): Take the list of preferred languages instead of assuming
the system list.
* platform/Language.h:
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState): Disable caption testing mode.
(WebCore::Internals::Internals): Enable caption testing mode so the user's system
preferences are not modified.
2013-02-11 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: Make CoordinatedGraphicsScene not know contents size.
https://bugs.webkit.org/show_bug.cgi?id=108922
Reviewed by Noam Rosenthal.
Currently, CoordinatedGraphicsScene has two methods to know contents
size: setContentsSize() and setVisibleContentsRect(). Contents size is
used when adjusting a scroll position, but adjustment is not needed
because EFL and Qt platform code (currently PageViewportController)
already adjusts a scroll position, and it is natural for each platform
to be in charge of adjusting. So this patch makes CoordinatedGraphicsScene
not know contents size.
In addition, now DrawingAreaProxy::coordinatedLayerTreeHostProxy() is only used
to get CoordinatedGraphicsScene.
This patch can only be tested manually since there is no automated
testing facilities for in-motion touch.
Test: ManualTests/fixed-position.html
ManualTests/nested-fixed-position.html
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::setScrollPosition):
(WebCore::CoordinatedGraphicsScene::adjustPositionForFixedLayers):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
(CoordinatedGraphicsScene):
2013-02-11 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: remove the DidChangeScrollPosition message.
https://bugs.webkit.org/show_bug.cgi?id=108051
Reviewed by Noam Rosenthal.
Signed off for WebKit2 by Benjamin Poulain.
Currently, we use the DidChangeScrollPosition message to send the scroll
position that WebCore used in this frame to UI Process. We had to have
some member variables for the DidChangeScrollPosition message.
However, we can send a scroll position via the DidRenderFrame message,
because CoordinatedGraphicsScene::m_renderedContentsScrollPosition is
updated at the moment of flushing. So we can remove the
DidChangeScrollPosition message and some redundant member variables.
No tests. No change in behavior.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::flushLayerChanges):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
(CoordinatedGraphicsScene):
2013-02-11 Ryosuke Niwa <rniwa@webkit.org>
Disable delete button controller on non-Mac ports and delete EditorClient::shouldShowDeleteInterface
https://bugs.webkit.org/show_bug.cgi?id=109534
Reviewed by Anders Carlsson.
* editing/DeleteButtonController.cpp:
(WebCore::DeleteButtonController::show):
* editing/Editor.cpp:
(WebCore):
* editing/Editor.h:
(Editor):
* loader/EmptyClients.h:
(WebCore::EmptyEditorClient::shouldDeleteRange):
(EmptyEditorClient):
(WebCore::EmptyEditorClient::shouldShowDeleteInterface):
* page/EditorClient.h:
(EditorClient):
2013-02-11 Hayato Ito <hayato@chromium.org>
Factor EventContext and introduces MouseOrFocusEventContext.
https://bugs.webkit.org/show_bug.cgi?id=109278
Reviewed by Dimitri Glazkov.
To supoort Touch event retargeting (bug 107800), we have to factor
event retargeting code so that it can support not only MouseEvent or FocusEvent,
but also other events.
This is the first attempt to refactor event retargeting code, a
separated patch from bug 109156. EventContext is now factored and
MouseOrFocusEventContext was introduced to support MouseEvent or
FocusEvent separately.
In following patches, I'll introduce TouchEventContext and
TouchEventDispatchMediator to support Touch event retargeting.
No new tests. No change in functionality.
* dom/EventContext.cpp:
(WebCore::EventContext::EventContext): Factor relatedTarget out from EventContext into MouseOrFocusEventContext.
(WebCore::EventContext::~EventContext):
(WebCore):
(WebCore::EventContext::handleLocalEvents):
(WebCore::EventContext::isMouseOrFocusEventContext):
(WebCore::MouseOrFocusEventContext::MouseOrFocusEventContext): New. Handles MouseEvent's (or FocusEvent's) relatedTarget retargeting.
(WebCore::MouseOrFocusEventContext::~MouseOrFocusEventContext):
(WebCore::MouseOrFocusEventContext::handleLocalEvents):
(WebCore::MouseOrFocusEventContext::isMouseOrFocusEventContext):
* dom/EventContext.h:
(EventContext):
(WebCore::EventContext::node):
(WebCore::EventContext::target):
(WebCore::EventContext::currentTargetSameAsTarget):
(WebCore):
(MouseOrFocusEventContext):
(WebCore::MouseOrFocusEventContext::relatedTarget):
(WebCore::MouseOrFocusEventContext::setRelatedTarget):
* dom/EventDispatcher.cpp:
(WebCore::EventRelatedTargetAdjuster::adjust):
(WebCore::EventDispatcher::adjustRelatedTarget):
(WebCore::EventDispatcher::ensureEventPath): Renamad from ensureEventAncestors. Use the DOM Core terminology.
(WebCore::EventDispatcher::dispatchEvent):
(WebCore::EventDispatcher::dispatchEventAtCapturing):
(WebCore::EventDispatcher::dispatchEventAtTarget):
(WebCore::EventDispatcher::dispatchEventAtBubbling):
(WebCore::EventDispatcher::dispatchEventPostProcess):
(WebCore::EventDispatcher::topEventContext):
* dom/EventDispatcher.h:
(EventRelatedTargetAdjuster):
(EventDispatcher):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::eventHasListeners):
(WebCore::InspectorInstrumentation::willDispatchEventImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::willDispatchEvent):
2013-02-11 peavo@outlook.com <peavo@outlook.com>
[Curl] setCookiesFromDOM function does not save cookies to disk.
https://bugs.webkit.org/show_bug.cgi?id=109285
Reviewed by Brent Fulgham.
Write cookies to disk by using the Curl easy api.
* platform/network/curl/CookieJarCurl.cpp:
(WebCore::setCookiesFromDOM):Write cookie to disk.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::getCurlShareHandle): Added method to get Curl share handle.
(WebCore::ResourceHandleManager::getCookieJarFileName): Added method to get cookie file name.
* platform/network/curl/ResourceHandleManager.h: Added methods to get cookie file name, and Curl share handle.
2013-02-11 Hayato Ito <hayato@chromium.org>
Split each RuleSet and feature out from StyleResolver into its own class.
https://bugs.webkit.org/show_bug.cgi?id=107777
Reviewed by Dimitri Glazkov.
Re-landing r141964, which was reverted in r141973, since r141964 seem to be innocent.
No tests. No change in behavior.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSAllInOne.cpp:
* css/DocumentRuleSets.cpp: Added.
(WebCore):
(WebCore::DocumentRuleSets::DocumentRuleSets):
(WebCore::DocumentRuleSets::~DocumentRuleSets):
(WebCore::DocumentRuleSets::initUserStyle): New helper to initialize each RuleSets.
(WebCore::DocumentRuleSets::collectRulesFromUserStyleSheets): Factored out from StyleResolver.
(WebCore::makeRuleSet): Ditto.
(WebCore::DocumentRuleSets::resetAuthorStyle): Ditto.
(WebCore::DocumentRuleSets::appendAuthorStyleSheets): Ditto.
(WebCore::DocumentRuleSets::collectFeatures): Ditto.
(WebCore::DocumentRuleSets::reportMemoryUsage): New methods to report memory usage. Factored out from StyleResolver.
* css/DocumentRuleSets.h: Added.
(WebCore):
(DocumentRuleSets):
(WebCore::DocumentRuleSets::authorStyle): Moved from StyleResolver.
(WebCore::DocumentRuleSets::userStyle): Ditto.
(WebCore::DocumentRuleSets::features): Ditto.
(WebCore::DocumentRuleSets::sibling): Ditto.
(WebCore::DocumentRuleSets::uncommonAttribute): Ditto.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::appendAuthorStyleSheets): Now calls DocumentRuleSets::appendAuthorStyleSheets.
(WebCore::StyleResolver::matchAuthorRules): Use m_ruleSets.
(WebCore::StyleResolver::matchUserRules): Ditto.
(WebCore::StyleResolver::classNamesAffectedByRules): Ditto.
(WebCore::StyleResolver::locateCousinList): Ditto.
(WebCore::StyleResolver::canShareStyleWithElement): Ditto.
(WebCore::StyleResolver::locateSharedStyle): Ditto.
(WebCore::StyleResolver::styleForPage): Ditto.
(WebCore::StyleResolver::checkRegionStyle): Ditto.
(WebCore::StyleResolver::applyProperty): Ditto.
(WebCore::StyleResolver::reportMemoryUsage): Now calls DocumentRuleSets::reportMemoryUsage.
* css/StyleResolver.h:
(WebCore::StyleResolver::scopeResolver):
(StyleResolver):
(WebCore::StyleResolver::ruleSets): accessor r to DocumentRuleSets.
(WebCore::StyleResolver::usesSiblingRules): Use m_ruleSets.
(WebCore::StyleResolver::usesFirstLineRules): Ditto.
(WebCore::StyleResolver::usesBeforeAfterRules): Ditto.
(WebCore::StyleResolver::hasSelectorForAttribute): Ditto.
(WebCore::StyleResolver::hasSelectorForClass): Ditto.
(WebCore::StyleResolver::hasSelectorForId): Ditto.
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
2013-02-11 Keishi Hattori <keishi@webkit.org>
REGRESSION (r140778):Calendar Picker buttons are wrong when rtl
https://bugs.webkit.org/show_bug.cgi?id=109158
Reviewed by Kent Tamura.
The calendar picker button's icon and position where wrong when rtl.
Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ar.html
* Resources/pagepopups/calendarPicker.css:
(.year-month-button-left .year-month-button): Use -webkit-margin-end so the margin is applide to the right side.
(.year-month-button-right .year-month-button): Use -webkit-margin-start so the margin is applide to the right side.
(.today-clear-area .today-button): Use -webkit-margin-end so the margin is applide to the right side.
* Resources/pagepopups/calendarPicker.js:
(YearMonthController.prototype._attachLeftButtonsTo): Flip icon image when rtl.
(YearMonthController.prototype._attachRightButtonsTo): Ditto.
2013-02-11 KwangYong Choi <ky0.choi@samsung.com>
REGRESSION (r142549): Remove web intents code
https://bugs.webkit.org/show_bug.cgi?id=109532
Reviewed by Nico Weber.
Remove remaning code related to web intents.
No new tests, no change on behavior.
* UseJSC.cmake:
* bindings/js/JSIntentConstructor.cpp: Removed.
2013-02-11 Kenneth Russell <kbr@google.com>
Add temporary typedef to ANGLEWebKitBridge to support incompatible API upgrade
https://bugs.webkit.org/show_bug.cgi?id=109127
Reviewed by Dean Jackson.
No new tests. Built and tested WebKit and Chromium with this change.
* platform/graphics/ANGLEWebKitBridge.cpp:
(WebCore):
Define temporary typedef spanning int -> size_t change.
(WebCore::getValidationResultValue):
(WebCore::getSymbolInfo):
Use temporary typedef.
2013-02-11 Kentaro Hara <haraken@chromium.org>
[V8] ScheduledAction::m_context can be empty, so we shouldn't
retrieve an Isolate by using m_context->GetIsolate()
https://bugs.webkit.org/show_bug.cgi?id=109523
Reviewed by Adam Barth.
Chromium bug: https://code.google.com/p/chromium/issues/detail?id=175307#makechanges
Currently ScheduledAction is retrieving an Isolate by using m_context->GetIsolate().
This can crash because ScheduledAction::m_context can be empty. Specifically,
ScheduledAction::m_context is set to ScriptController::currentWorldContext(),
which can return an empty handle when a frame does not exist. In addition,
'if(context.IsEmpty())' in ScheduledAction.cpp implies that it can be empty.
Alternately, we should pass an Isolate explicitly when a ScheduledAction is instantiated.
No tests. The Chromium crash report doesn't provide enough information
to reproduce the bug.
* bindings/v8/ScheduledAction.cpp:
(WebCore::ScheduledAction::ScheduledAction):
(WebCore):
(WebCore::ScheduledAction::~ScheduledAction):
* bindings/v8/ScheduledAction.h:
(ScheduledAction):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::WindowSetTimeoutImpl):
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::SetTimeoutOrInterval):
2013-02-11 Adenilson Cavalcanti <cavalcantii@gmail.com>
Build fix: r142549 broke EFL build
https://bugs.webkit.org/show_bug.cgi?id=109527
Reviewed by Kentaro Hara.
No new tests, no change on behavior.
* CMakeLists.txt:
2013-02-11 Simon Fraser <simon.fraser@apple.com>
REGRESSION (r142520?): Space no longer scrolls the page
https://bugs.webkit.org/show_bug.cgi?id=109526
Reviewed by Tim Horton.
ScrollingTree::updateTreeFromStateNode() used to bail early when it had
no children (no fixed or sticky elements), but that left updateAfterChildren()
uncalled. Fix by always calling updateAfterChildren(), which updates the scroll
position.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::updateTreeFromStateNode):
2013-02-11 Tim Horton <timothy_horton@apple.com>
Remove extra early-return in FrameView::setScrollPosition
Rubber-stamped by Simon Fraser.
* page/FrameView.cpp:
(WebCore::FrameView::setScrollPosition):
2013-02-11 Arko Saha <arko@motorola.com>
[Microdata] Fix crash after r141034 in chromuim port
https://bugs.webkit.org/show_bug.cgi?id=109514
Reviewed by Ryosuke Niwa.
Added V8SkipVTableValidation extended attribute to skip
VTable validation check for DOMSettableTokenList interface.
This patch fixes below test failures:
Tests: fast/dom/MicroData/domsettabletokenlist-attributes-add-token.html
fast/dom/MicroData/domsettabletokenlist-attributes-out-of-range-index.html
fast/dom/MicroData/element-with-empty-itemprop.html
fast/dom/MicroData/itemprop-add-remove-tokens.html
fast/dom/MicroData/itemprop-for-an-element-must-be-correct.html
fast/dom/MicroData/itemprop-must-be-read-only.html
fast/dom/MicroData/itemprop-reflected-by-itemProp-property.html
fast/dom/MicroData/itemref-add-remove-tokens.html
fast/dom/MicroData/itemref-attribute-reflected-by-itemRef-property.html
fast/dom/MicroData/itemref-for-an-element-must-be-correct.html
fast/dom/MicroData/itemref-must-be-read-only.html
fast/dom/MicroData/itemtype-add-remove-tokens.html
fast/dom/MicroData/itemtype-attribute-test.html
fast/dom/MicroData/microdata-domtokenlist-attribute-add-remove-tokens.html
fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html
fast/dom/MicroData/propertynodelist-add-remove-itemprop-tokens.html
fast/dom/MicroData/propertynodelist-add-remove-itemref-tokens.html
* html/DOMSettableTokenList.idl:
2013-02-11 Adam Barth <abarth@webkit.org>
Load event fires too early with threaded HTML parser (take 2)
https://bugs.webkit.org/show_bug.cgi?id=109485
Reviewed by Eric Seidel.
This patch restores the code that was removed in
http://trac.webkit.org/changeset/142492 and adds code to
DocumentLoader.cpp to avoid the regression.
* dom/Document.cpp:
(WebCore::Document::hasActiveParser):
(WebCore::Document::decrementActiveParserCount):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoadingInAPISense):
2013-02-11 Eric Seidel <eric@webkit.org>
Fold HTMLTokenizerState back into HTMLTokenizer now that MarkupTokenizerBase is RFG
https://bugs.webkit.org/show_bug.cgi?id=109502
Reviewed by Tony Gentilcore.
Just a search replace of HTMLTokenizerState with HTMLTokenizer and moving the enum.
This restores us to the peacefull world pre-NEW_XML.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::forcePlaintextForTextDocument):
(WebCore::BackgroundHTMLParser::simulateTreeBuilder):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::tokenizerStateForContextElement):
(WebCore::HTMLDocumentParser::forcePlaintextForTextDocument):
(WebCore::HTMLDocumentParser::pumpTokenizer):
* html/parser/HTMLTokenizer.cpp:
(WebCore::isEndTagBufferingState):
(WebCore):
(WebCore::HTMLTokenizer::reset):
(WebCore::HTMLTokenizer::flushEmitAndResumeIn):
(WebCore::HTMLTokenizer::nextToken):
(WebCore::HTMLTokenizer::updateStateFor):
* html/parser/HTMLTokenizer.h:
(HTMLTokenizer):
(WebCore::HTMLTokenizer::create):
(WebCore::HTMLTokenizer::shouldSkipNullCharacters):
(WebCore::HTMLTokenizer::emitEndOfFile):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
(WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
(WebCore::HTMLTreeBuilder::processScriptStartTag):
* html/parser/TextViewSourceParser.cpp:
(WebCore::TextViewSourceParser::TextViewSourceParser):
2013-02-11 Kentaro Hara <haraken@chromium.org>
Build fix after r142528
https://bugs.webkit.org/show_bug.cgi?id=109520
Reviewed by Eric Seidel.
r142528 changed GIFImageReader from a struct to a class.
We also need to fix a forward declaration.
No tests.
* platform/image-decoders/gif/GIFImageDecoder.h:
2013-02-11 Nico Weber <thakis@chromium.org>
Remove web intents code
https://bugs.webkit.org/show_bug.cgi?id=109501
Reviewed by Eric Seidel.
See thread "Removing ENABLE(WEB_INTENTS) code" on webkit-dev.
* DerivedSources.make:
* Modules/intents/DOMWindowIntents.cpp: Removed.
* Modules/intents/DOMWindowIntents.h: Removed.
* Modules/intents/DOMWindowIntents.idl: Removed.
* Modules/intents/DeliveredIntent.cpp: Removed.
* Modules/intents/DeliveredIntent.h: Removed.
* Modules/intents/DeliveredIntent.idl: Removed.
* Modules/intents/Intent.cpp: Removed.
* Modules/intents/Intent.h: Removed.
* Modules/intents/Intent.idl: Removed.
* Modules/intents/IntentRequest.cpp: Removed.
* Modules/intents/IntentRequest.h: Removed.
* Modules/intents/IntentResultCallback.h: Removed.
* Modules/intents/IntentResultCallback.idl: Removed.
* Modules/intents/NavigatorIntents.cpp: Removed.
* Modules/intents/NavigatorIntents.h: Removed.
* Modules/intents/NavigatorIntents.idl: Removed.
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures):
* bindings/v8/custom/V8IntentCustom.cpp: Removed.
* html/HTMLElementsAllInOne.cpp:
* html/HTMLIntentElement.cpp: Removed.
* html/HTMLIntentElement.h: Removed.
* html/HTMLIntentElement.idl: Removed.
* loader/EmptyClients.cpp:
* loader/EmptyClients.h:
(EmptyFrameLoaderClient):
* loader/FrameLoaderClient.h:
(WebCore):
* page/DOMWindow.idl:
2013-02-11 Eric Seidel <eric@webkit.org>
Fix Mac build after http://trac.webkit.org/changeset/142535.
Unreviewed build fix.
* html/parser/HTMLTokenizer.h:
(WebCore::HTMLTokenizer::emitAndReconsumeIn):
2013-02-11 David Farler <dfarler@apple.com>
Make WebCore Derived Sources work with SDK identifiers too
https://bugs.webkit.org/show_bug.cgi?id=109324
Reviewed by Sam Weinig.
* WebCore.xcodeproj/project.pbxproj: Pass SDKROOT to make for DerivedSources.make
2013-02-11 Zhenyao Mo <zmo@google.com>
WEBGL_compressed_texture_s3tc extension can be enabled even when not supported
https://bugs.webkit.org/show_bug.cgi?id=109508
Reviewed by Kenneth Russell.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::getExtension): Check whether the extension support is there before returning the extension pointer.
2013-02-11 Emil A Eklund <eae@chromium.org>
Change RenderFrameSet::paint to use m-rows/m_cols directly.
https://bugs.webkit.org/show_bug.cgi?id=108503
Reviewed by Eric Seidel.
Test: fast/frames/invalid-frameset.html
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::paint):
2013-02-11 Yong Li <yoli@rim.com>
XMLHttpRequestProgressEventThrottle::resume() always schedules timer even when unnecessary
https://bugs.webkit.org/show_bug.cgi?id=105348
Reviewed by Alexey Proskuryakov.
Let resume() clear the defer flag and return if there is deferred events to dispatch.
No new tests as this should not affect existing cross-platform behavior. It should be
OK as long as it doesn't break anything.
* xml/XMLHttpRequestProgressEventThrottle.cpp:
(WebCore::XMLHttpRequestProgressEventThrottle::resume):
2013-02-11 Eric Seidel <eric@webkit.org>
Fold MarkupTokenizerBase into HTMLTokenizer now that it is the only subclass
https://bugs.webkit.org/show_bug.cgi?id=109499
Reviewed by Adam Barth.
For great justice. And sanity.
Epic amount of template code deleted.
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::HTMLTokenizer):
* html/parser/HTMLTokenizer.h:
(HTMLTokenizer):
(Checkpoint):
(WebCore::HTMLTokenizer::state):
(WebCore::HTMLTokenizer::setState):
(WebCore::HTMLTokenizer::shouldSkipNullCharacters):
(WebCore::HTMLTokenizer::bufferCharacter):
(WebCore::HTMLTokenizer::emitAndResumeIn):
(WebCore::HTMLTokenizer::emitAndReconsumeIn):
(WebCore::HTMLTokenizer::emitEndOfFile):
(WebCore::HTMLTokenizer::haveBufferedCharacterToken):
* xml/parser/MarkupTokenizerBase.h: Removed.
2013-02-11 Anton Vayvod <avayvod@chromium.org>
[Text Autosizing] Collect narrow descendants and process them separately. Refactoring for
a change to follow.
https://bugs.webkit.org/show_bug.cgi?id=109054
Preparational change to combine narrow descendants of the same autosizing cluster into
groups by the width difference between the descendant and the block containing all text of
the parent autosizing cluster. The groups will be autosized with the same multiplier.
For example, on sites with a sidebar, sometimes the paragraphs next to the sidebar will have
a large margin individually applied (via a CSS selector), causing them all to individually
appear narrower than their enclosing blockContainingAllText. Rather than making each of
these paragraphs into a separate cluster, we eventually want to be able to merge them back
together into one (or a few) descendant clusters.
Reviewed by Julien Chaffraix.
No behavioral changes thus no new tests or test changes.
* rendering/TextAutosizer.cpp:
(TextAutosizingClusterInfo): Vector of narrow descendants.
(WebCore::TextAutosizer::processCluster): Process narrow descendants separately.
(WebCore::TextAutosizer::processContainer):
Remember narrow descendants of the parent cluster for later processing.
2013-02-11 Enrica Casucci <enrica@apple.com>
Add ENABLE_DELETION_UI to control the use of the deletion UI.
https://bugs.webkit.org/show_bug.cgi?id=109463.
Reviewed by Ryosuke Niwa.
This patch adds #if ENABLE(DELETION_UI) in every spot where
DeleteButtonController is used. This class is now only instantiated
if the feature is enabled. I've also done some cleanup in the
DeleteButtonController class, removing unused methods and making
private some methods only used internally to the class.
Both DeleteButtonController and DeleteButton classes are now excluded
from the compilation if the feature is not enabled.
No new tests, no change of functionality.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::cloneChildNodes):
* editing/CompositeEditCommand.cpp:
(WebCore::EditCommandComposition::unapply):
(WebCore::EditCommandComposition::reapply):
(WebCore::CompositeEditCommand::apply):
* editing/DeleteButton.cpp:
* editing/DeleteButtonController.cpp:
* editing/DeleteButtonController.h: Some cleanup.
(WebCore::DeleteButtonController::enabled): Made private.
* editing/EditCommand.cpp:
(WebCore::EditCommand::EditCommand):
* editing/Editor.cpp:
(WebCore::Editor::notifyComponentsOnChangedSelection):
(WebCore::Editor::Editor):
(WebCore::Editor::rangeForPoint):
(WebCore::Editor::deviceScaleFactorChanged):
* editing/Editor.h:
* editing/htmlediting.cpp: avoidIntersectionWithNode is
used only if the feature is enabled.
* editing/htmlediting.h:
* editing/markup.cpp:
(WebCore::createMarkup):
(WebCore::createFragmentFromNodes):
* rendering/RenderTable.cpp: Removed unnecessary include
fo DeleteButtonController.h
2013-02-11 Rafael Weinstein <rafaelw@chromium.org>
[HTMLTemplateElement] <template> inside of <head> may not create <body> if EOF is hit
https://bugs.webkit.org/show_bug.cgi?id=109338
Reviewed by Adam Barth.
This patch adds the logic to clear the stack of open elements back to the first <template> when EOF
is hit. This allows a <body> to be generated if the initial <template> was opened inside of <head>.
Tests added to html5lib.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore):
(WebCore::HTMLTreeBuilder::popAllTemplates):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processEndOfFile):
* html/parser/HTMLTreeBuilder.h:
(HTMLTreeBuilder):
2013-02-11 Andreas Kling <akling@apple.com>
RenderText::isAllCollapsibleWhitespace() shouldn't upconvert string to 16-bit.
<http://webkit.org/b/109354>
Reviewed by Eric Seidel.
254 KB progression on Membuster3.
* rendering/RenderText.cpp:
(WebCore::RenderText::isAllCollapsibleWhitespace):
2013-02-11 Alpha Lam <hclam@chromium.org>
Fix code style violations in GIFImageReader.{cc|h}
https://bugs.webkit.org/show_bug.cgi?id=109007
Reviewed by Stephen White.
This is just a style clean up for GIFImageReader.{cc|h}.
There's going to be a lot changes in these two files and style check
will add a lot of noise in later reviews. Fix style problems first.
There is no change in logic at all. Just style fixes.
No new tests.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::frameCount):
(WebCore::GIFImageDecoder::repetitionCount):
(WebCore::GIFImageDecoder::haveDecodedRow):
(WebCore::GIFImageDecoder::initFrameBuffer):
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::outputRow):
(GIFImageReader::doLZW):
(GIFImageReader::read):
* platform/image-decoders/gif/GIFImageReader.h:
(GIFFrameContext):
(GIFFrameContext::GIFFrameContext):
(GIFFrameContext::~GIFFrameContext):
(GIFImageReader::GIFImageReader):
(GIFImageReader::~GIFImageReader):
(GIFImageReader):
(GIFImageReader::imagesCount):
(GIFImageReader::loopCount):
(GIFImageReader::globalColormap):
(GIFImageReader::globalColormapSize):
(GIFImageReader::frameContext):
2013-02-11 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Exclusions] Handle shape-outside changing a float's overhang behavior
https://bugs.webkit.org/show_bug.cgi?id=106927
Reviewed by Julien Chaffraix.
When the position on a shape outside causes a float to spill out into
another block than it's container, it was not being drawn correctly. It
became apparent that in order to fix this properly, the approach to
positioning shape outsides and floats needed to be changed. The new
approach also fixes some other outstanding issues, like hit detection.
When a float has a shape outside, inline and float layout happens
using the exclusion shape bounds instead of the float's box. The
effect of this is that the float itself no longer has any effect on
layout, both with respect to positioning of the float's siblings as
well as positioning the float's box. This means that when the float is
positioned, it is the shape's box that must obey the positioning rules
for floats. When the shape is given a position relative to the float's
box, the rules for float positioning determine where the shape sits
in the parent, causing the float's box to be offset by the position of
the shape. Since the float's box does not affect layout (due to the
shape), this is similar to relative positioning in that the offset is
a paint time occurrence.
So the new approach is to implement positioning of shape outside on
floats similar to how relative positioning is implemented, using a
RenderLayer.
This is also tested by the existing tests for shape outside on floats positioning.
Test: fast/exclusions/shape-outside-floats/shape-outside-floats-overhang.html
* rendering/ExclusionShapeOutsideInfo.h:
(WebCore::ExclusionShapeOutsideInfo::shapeLogicalOffset): Utility method to create a LayoutSize for computing the layer offset.
(ExclusionShapeOutsideInfo):
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState): Check for floats with shape outside as well as in flow positioning.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::flipFloatForWritingModeForChild): Remove old positioning implementation.
(WebCore::RenderBlock::paintFloats): Remove old positioning implementation.
(WebCore::RenderBlock::blockSelectionGaps): Check for floats with shape outside as well as in flow positioning.
(WebCore::RenderBlock::positionNewFloats): Remove old positioning implementation.
(WebCore::RenderBlock::addOverhangingFloats): Remove FIXME.
(WebCore::positionForPointRespectingEditingBoundaries): Check for floats with shape outside as well as in flow positioning.
* rendering/RenderBlock.h:
(RenderBlock): Remove old positioning implementation.
(WebCore::RenderBlock::xPositionForFloatIncludingMargin): Remove old positioning implementation.
(WebCore::RenderBlock::yPositionForFloatIncludingMargin): Remove old positioning implementation.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::mapLocalToContainer): Check for floats with shape outside as well as in flow positioning.
(WebCore::RenderBox::offsetFromContainer): Check for floats with shape outside as well as in flow positioning.
(WebCore::RenderBox::computeRectForRepaint): Check for floats with shape outside as well as in flow positioning.
(WebCore::RenderBox::layoutOverflowRectForPropagation): Check for floats with shape outside as well as in flow positioning.
* rendering/RenderBox.h: Make floats with shape outside get a layer.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintOffset): Method to return in flow
positioning offset + offset from shape outside on floats.
* rendering/RenderBoxModelObject.h:
(RenderBoxModelObject): Add paintOffset method.
* rendering/RenderInline.cpp:
(WebCore::RenderInline::clippedOverflowRectForRepaint): Check for floats with shape outside as well as in flow positioning.
(WebCore::RenderInline::computeRectForRepaint): Check for floats with shape outside as well as in flow positioning.
(WebCore::RenderInline::mapLocalToContainer): Check for floats with shape outside as well as in flow positioning.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPosition): Check for floats with shape outside as well as in flow positioning.
(WebCore::RenderLayer::calculateClipRects): Check for floats with shape outside as well as in flow positioning.
* rendering/RenderLayer.h:
(WebCore::RenderLayer::paintOffset): Rename offsetForInFlowPosition to reflect that it's not just for
in flow positioning, it also reflects shape outside position on floats.
(RenderLayer):
* rendering/RenderObject.h:
(WebCore::RenderObject::hasPaintOffset): Determines if this object is in flow positioined or is a float with shape outside.
* rendering/style/RenderStyle.h: Add hasPaintOffset method, analagous to method with same name on RenderObject.
2013-02-11 Tim Horton <timothy_horton@apple.com>
FrameView::setScrollPosition should clamp scroll position before handing it to
ScrollingCoordinator instead of depending on ScrollView to do this
https://bugs.webkit.org/show_bug.cgi?id=109497
<rdar://problem/12631789>
Reviewed by Simon Fraser.
Clamp scroll position before handing it to ScrollingCoordinator. Also, like ScrollView does,
bail out if we've already scrolled to the clamped scroll position.
Test: platform/mac-wk2/tiled-drawing/clamp-out-of-bounds-scrolls.html
* page/FrameView.cpp:
(WebCore::FrameView::setScrollPosition):
2013-02-11 Adam Barth <abarth@webkit.org>
The threaded HTML parser should pass all the fast/parser tests
https://bugs.webkit.org/show_bug.cgi?id=109486
Reviewed by Tony Gentilcore.
This patch fixes the last two test failures in fast/parser, which were
crashes caused by not having a tokenizer when document.close() was
called. (The tokenizer is created lazily by calls to document.write,
which might not happen before document.close).
fast/parser/document-close-iframe-load.html
fast/parser/document-close-nested-iframe-load.html
In addition, I've added a new test to make sure we flush the tokenizer
properly in these cases.
Test: fast/parser/document-close-iframe-load-partial-entity.html
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::prepareToStopParsing):
(WebCore::HTMLDocumentParser::pumpTokenizer):
2013-02-11 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
[texmap] Implement frames-per-second debug counter
https://bugs.webkit.org/show_bug.cgi?id=107942
Reviewed by Noam Rosenthal.
Adds FPS counter via WEBKIT_SHOW_FPS=<interval> environment variable,
where <interval> is the period in seconds (i.e. =1.5) between FPS
updates on screen. It is measured by counting
CoordinatedGraphicsScene::paintTo* calls and is painted using
drawRepaintCounter() after TextureMapperLayer has finished painting its
contents.
Visual debugging feature, no need for new tests.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
(WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebCore::CoordinatedGraphicsScene::paintToGraphicsContext):
(WebCore::CoordinatedGraphicsScene::updateFPS):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
2013-02-11 Eric Seidel <eric@webkit.org>
Fold MarkupTokenBase into HTMLToken now that it has no other subclasses
https://bugs.webkit.org/show_bug.cgi?id=109483
Reviewed by Adam Barth.
This deletes an epic amount of template yuck, as well as removes
a vtable !?! from HTMLToken.
This paves the way for further cleanup of HTMLToken now that we
can see the whole object at once.
We'll also probably re-create an HTMLToken.cpp again, now that we're
free from the chains of template nonsense.
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/HTMLToken.h:
(WebCore::findAttributeInVector):
(WebCore):
(HTMLToken):
(Attribute):
(Range):
(WebCore::HTMLToken::HTMLToken):
(WebCore::HTMLToken::clear):
(WebCore::HTMLToken::isUninitialized):
(WebCore::HTMLToken::type):
(WebCore::HTMLToken::makeEndOfFile):
(WebCore::HTMLToken::startIndex):
(WebCore::HTMLToken::endIndex):
(WebCore::HTMLToken::setBaseOffset):
(WebCore::HTMLToken::end):
(WebCore::HTMLToken::data):
(WebCore::HTMLToken::isAll8BitData):
(WebCore::HTMLToken::name):
(WebCore::HTMLToken::appendToName):
(WebCore::HTMLToken::nameString):
(WebCore::HTMLToken::selfClosing):
(WebCore::HTMLToken::setSelfClosing):
(WebCore::HTMLToken::beginStartTag):
(WebCore::HTMLToken::beginEndTag):
(WebCore::HTMLToken::addNewAttribute):
(WebCore::HTMLToken::beginAttributeName):
(WebCore::HTMLToken::endAttributeName):
(WebCore::HTMLToken::beginAttributeValue):
(WebCore::HTMLToken::endAttributeValue):
(WebCore::HTMLToken::appendToAttributeName):
(WebCore::HTMLToken::appendToAttributeValue):
(WebCore::HTMLToken::attributes):
(WebCore::HTMLToken::eraseValueOfAttribute):
(WebCore::HTMLToken::ensureIsCharacterToken):
(WebCore::HTMLToken::characters):
(WebCore::HTMLToken::appendToCharacter):
(WebCore::HTMLToken::comment):
(WebCore::HTMLToken::beginComment):
(WebCore::HTMLToken::appendToComment):
(WebCore::HTMLToken::eraseCharacters):
* html/parser/HTMLTokenTypes.h:
* html/parser/XSSAuditor.h:
* xml/parser/MarkupTokenBase.h: Removed.
2013-02-11 Gavin Barraclough <barraclough@apple.com>
PluginProcess should quit immediately if idle in response to low-memory notifications
https://bugs.webkit.org/show_bug.cgi?id=109103
<rdar://problem/12679827>
Reviewed by Brady Eidson.
This patch allows a process to set a custom callback for low memory warnings
(defaulting to the current behaviour, as implemented in releaseMemory).
* platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::MemoryPressureHandler):
- Initialize m_lowMemoryHandler to releaseMemory.
(WebCore::MemoryPressureHandler::install):
(WebCore::MemoryPressureHandler::uninstall):
(WebCore::MemoryPressureHandler::holdOff):
- Cleaned up spacing.
(WebCore::MemoryPressureHandler::releaseMemory):
- Added null implementation for non-Mac builds.
* platform/MemoryPressureHandler.h:
(WebCore::MemoryPressureHandler::setLowMemoryHandler):
- Added method to set m_lowMemoryHandler.
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::respondToMemoryPressure):
- Changed to call releaseMemory via m_lowMemoryHandler.
2013-02-11 Simon Fraser <simon.fraser@apple.com>
REGRESSION (r133807): Sticky-position review bar on bugzilla review page is jumpy
https://bugs.webkit.org/show_bug.cgi?id=104276
<rdar://problem/12827187>
Reviewed by Tim Horton.
When committing new scrolling tree state, if the root node has a scroll
position update, we would handle that before updating the state of child
nodes (with possibly new viewport constraints). That would cause incorrect
child layer updates.
Fix by adding a second 'update' phase that happens after child nodes,
and moving the scroll position update into that.
Scrolling tests only dump the state tree, so cannot test the bug.
* page/FrameView.cpp:
(WebCore::FrameView::setScrollPosition): If the scroll position didn't
actually change, don't request a scroll position update from the ScrollingCoordinator.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::updateTreeFromStateNode): Keep track of the scrolling node so
that we can call updateAfterChildren() on it.
* page/scrolling/ScrollingTreeNode.h:
(ScrollingTreeNode):
(WebCore::ScrollingTreeNode::updateAfterChildren):
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
* page/scrolling/ScrollingTreeScrollingNode.h:
(ScrollingTreeScrollingNode):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
In the current bug the scrolling tree was scheduled for commit because of a
scroll position request, but if only the viewport constraints change, we also need
to commit the tree.
* page/scrolling/mac/ScrollingTreeFixedNode.h:
(ScrollingTreeFixedNode):
* page/scrolling/mac/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::updateBeforeChildren):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
(ScrollingTreeScrollingNodeMac):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
(WebCore::ScrollingTreeScrollingNodeMac::updateAfterChildren): Move code here
that updates things that have to happen after children.
* page/scrolling/mac/ScrollingTreeStickyNode.h:
(ScrollingTreeStickyNode):
* page/scrolling/mac/ScrollingTreeStickyNode.mm:
(WebCore::ScrollingTreeStickyNode::updateBeforeChildren):
2013-02-11 Roger Fong <roger_fong@apple.com>
Unreviewed. Build fix for Win7 Release.
Because of InspectorAllInOne.cpp static globals must be named differently in files included by InspectorAllInOne.
This was the case for UserInitiatedProfileName. Also removed the repeated HeapProfileType definition in
InspectorHeapProfilerAgent.cpp since it wasn't being used anyways.
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore):
(WebCore::InspectorHeapProfilerAgent::takeHeapSnapshot):
2013-02-11 Tony Gentilcore <tonyg@chromium.org>
SegmentedString's copy ctor should copy all fields
https://bugs.webkit.org/show_bug.cgi?id=109477
Reviewed by Adam Barth.
This fixes http/tests/inspector-enabled/document-write.html (and likely others) for the threaded HTML parser.
No new tests because covered by existing tests.
* platform/text/SegmentedString.cpp:
(WebCore::SegmentedString::SegmentedString):
2013-02-11 Joshua Bell <jsbell@chromium.org>
IndexedDB: database connections don't close after versionchange transaction aborts
https://bugs.webkit.org/show_bug.cgi?id=102298
Reviewed by Tony Chang.
Per spec, close the database if the "versionchange" transaction aborts.
Tests: storage/indexeddb/aborted-versionchange-closes.html
storage/indexeddb/lazy-index-population.html
storage/objectstore-basics.html
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::onAbort): Tell the IDBDatabase (connection) to close if
this was a "versionchange" transaction.
2013-02-11 Christophe Dumez <ch.dumez@sisa.samsung.com>
[EFL] fast/forms/number/number-l10n-input.html is failing
https://bugs.webkit.org/show_bug.cgi?id=109440
Reviewed by Laszlo Gombos.
Use LocaleICU instead of LocaleNone on EFL port. The EFL
port already depends on ICU library and we get additional
functionality this way.
No new tests, already covered by existing tests.
* CMakeLists.txt:
* PlatformBlackBerry.cmake:
* PlatformEfl.cmake:
* PlatformWinCE.cmake:
2013-02-11 Benjamin Poulain <benjamin@webkit.org>
Kill TestRunner::setMinimumTimerInterval; implement the feature with InternalSettings
https://bugs.webkit.org/show_bug.cgi?id=109349
Reviewed by Sam Weinig.
Expose setMinimumTimerInterval() and implement the backup/restore to keep
a consistent state between tests.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setMinimumTimerInterval):
(WebCore):
* testing/InternalSettings.h:
(Backup):
(InternalSettings):
* testing/InternalSettings.idl:
2013-02-11 Dean Jackson <dino@apple.com>
Source/WebCore: Snapshotted plug-in should use shadow root
https://bugs.webkit.org/show_bug.cgi?id=108284
Reviewed by Simon Fraser.
Take three - relanding after rollout in r142400 that was caused by a global
selector interfering with CSS Instrumentation in the Inspector.
A snapshotted plugin needs to indicate to the user that it can be clicked
to be restarted. Previously this was done with an image that had embedded
text. Instead, we now use an internal shadow root to embed some markup that
will display instructions that can be localised.
The UA stylesheet for plug-ins provides a default styling for the label, which
can be overridden by ports.
In the process, RenderSnapshottedPlugIn no longer inherits from RenderEmbeddedObject,
since it is only responsible for drawing a paused plug-in. The snapshot creation
can work with the default renderer, but a shadow root requires something like
RenderBlock in order to draw its children. We swap from one renderer to another when
necessary either by creating the shadow root or by explicitly detaching and attaching
the plugin element.
Unfortunately this is difficult to test, because the snapshotting requires
time to execute, and also a PluginView to be instantiated.
* css/plugIns.css:
(object::-webkit-snapshotted-plugin-content): New rules for a default label style.
* platform/LocalizedStrings.cpp: Make sure all ports have plugin strings, now it is called.
* platform/LocalizedStrings.h:
* platform/blackberry/LocalizedStringsBlackBerry.cpp:
* platform/chromium/LocalizedStringsChromium.cpp:
* platform/efl/LocalizedStringsEfl.cpp:
* platform/gtk/LocalizedStringsGtk.cpp:
* platform/qt/LocalizedStringsQt.cpp:
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::defaultEventHandler): Take into account the fact
that RenderSnapshottedPlugIn no longer is an embedded object.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): New default values in constructor.
(WebCore::HTMLPlugInElement::defaultEventHandler): Make sure to call base class.
(WebCore::HTMLPlugInElement::willRecalcStyle): No need to reattach if we're a snapshot.
(WebCore::HTMLPlugInImageElement::createRenderer): If we're showing a snapshot, create such
a renderer, otherwise use the typical plug-in path.
(WebCore::HTMLPlugInImageElement::updateSnapshot): Keep a record of the snapshot, since we'll
need to give it to the renderer.
(WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Build a subtree that will display a label.
* html/HTMLPlugInImageElement.h:
(HTMLPlugInImageElement): New member variable to record the snapshot image and whether the label
should show immediately.
(WebCore::HTMLPlugInImageElement::swapRendererTimerFired): The callback function triggered when we need
to swap to the Shadow Root.
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot): The user has tapped on the snapshot so the plugin
in being recreated. Make sure we reattach so that a plugin renderer will be created.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Make sure we set the right
displayState for snapshots.
* html/HTMLPlugInImageElement.h:
(HTMLPlugInImageElement): The new methods listed above.
(WebCore::HTMLPlugInImageElement::setShouldShowSnapshotLabelAutomatically): Indicates whether or not
a snapshot should be immediately labeled.
* page/ChromeClient.h: No need for plugInStartLabelImage any more.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): New inheritance.
(WebCore::RenderSnapshottedPlugIn::paint): If we're in the background paint phase, render the snapshot image.
(WebCore::RenderSnapshottedPlugIn::paintSnapshotImage): Rename.
(WebCore::RenderSnapshottedPlugIn::paintSnapshot): Rename.
(WebCore::RenderSnapshottedPlugIn::paintSnapshotWithLabel): Rename. No need for label sizes.
(WebCore::RenderSnapshottedPlugIn::getCursor):
(WebCore::RenderSnapshottedPlugIn::handleEvent): The renderer doesn't restart the plug-in any more. Tell the element and it will do it.
* rendering/RenderSnapshottedPlugIn.h:
(RenderSnapshottedPlugIn): New inheritance. Some method renaming.
2013-02-11 Mike West <mkwst@chromium.org>
CSP reports for blocked 'data:' URLs should report the scheme only.
https://bugs.webkit.org/show_bug.cgi?id=109429
Reviewed by Adam Barth.
https://dvcs.w3.org/hg/content-security-policy/rev/001dc8e8bcc3 changed
the CSP 1.1 spec to require that blocked URLs that don't refer to
generally resolvable schemes (e.g. 'data:', 'javascript:', etc.) be
stripped down to their scheme in violation reports.
Test: http/tests/security/contentSecurityPolicy/report-blocked-data-uri.html
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::reportViolation):
If the blocked URL is a web-resolvable scheme, apply the current
stripping logic to it, otherwise, strip it to the scheme only.
* platform/KURL.h:
(KURL):
Move KURL::isHierarchical() out into KURL's public API.
2013-02-11 Simon Fraser <simon.fraser@apple.com>
ScrollingTree node maps keep getting larger
https://bugs.webkit.org/show_bug.cgi?id=109348
Reviewed by Sam Weinig.
When navigating between pages, nodes would get left in the ScrollingTree's
node map, and the ScrollingStateTree's node map, so these would get larger
and larger as you browse.
Simplify map maintenance by clearing the map when setting a new root node
(which happens on the first commit of a new page). Also, don't keep root nodes
around, but create them afresh for each page, which simplifies their ID
management.
This is closer to the original behavior; keeping the root nodes around was
a fix for bug 99668, but we avoid regressing that fix by bailing early
from frameViewLayoutUpdated() if there is no root state node (we'll get
called again anyway).
This now allows state nodeIDs to be purely read-only.
* page/scrolling/ScrollingStateNode.h:
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::ScrollingStateTree):
(WebCore::ScrollingStateTree::attachNode):
(WebCore::ScrollingStateTree::clear):
(WebCore::ScrollingStateTree::removeNode):
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::updateTreeFromStateNode):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
2013-02-11 Simon Fraser <simon.fraser@apple.com>
Move m_stateNodeMap from ScrollingCoordinatorMac to ScrollingStateTree
https://bugs.webkit.org/show_bug.cgi?id=109361
Reviewed by Sam Weinig.
The map of scrolling node IDs to ScollingStateNodes was maintained by
ScrollingCoordinatorMac, rather than ScrollingStateTree. This is different
from the ScrollingTree (which owns its node map), and added some amount
of to-and-fro between ScrollingStateTree and ScrollingCoordinatorMac.
Having ScrollingCoordinatorMac maintain the map of IDs to state nodes
simplifies things.
No behavior change.
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::attachNode):
(WebCore::ScrollingStateTree::detachNode):
(WebCore::ScrollingStateTree::clear):
(WebCore::ScrollingStateTree::removeNode):
(WebCore::ScrollingStateTree::stateNodeForID):
* page/scrolling/ScrollingStateTree.h:
(ScrollingStateTree): Remove some stale comments.
(WebCore::ScrollingStateTree::removedNodes):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
(ScrollingCoordinatorMac):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
(WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
(WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
(WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
(WebCore::ScrollingCoordinatorMac::attachToStateTree):
(WebCore::ScrollingCoordinatorMac::detachFromStateTree):
(WebCore::ScrollingCoordinatorMac::clearStateTree):
(WebCore::ScrollingCoordinatorMac::updateScrollingNode):
(WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
2013-02-11 Mark Rowe <mrowe@apple.com>
Build fix.
* platform/mac/PlatformSpeechSynthesizerMac.mm: Fix the case in the include.
2013-02-11 Julien Chaffraix <jchaffraix@webkit.org>
Regression(r131539): Heap-use-after-free in WebCore::RenderBlock::willBeDestroyed
https://bugs.webkit.org/show_bug.cgi?id=107189
Reviewed by Abhishek Arya.
Test: fast/dynamic/continuation-detach-crash.html
This patch reverts r131539 and the following changes (r132591 and r139664).
This means we redo detaching from the bottom-up which solves the regression.
It fixes the attached test case as we re-attach child nodes before detaching
the parent. It seems wrong to do but this avoid a stale continuation.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::detach): Detach the children first, then ourself.
* dom/Node.cpp:
(WebCore::Node::detach): Clear the renderer instead of ASSERT'ing.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::willBeDestroyed): Removed the code to clear the associated node's renderer.
(WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::removeChildNode):
Moved the repainting logic back into removeChildNode from destroyAndCleanupAnonymousWrappers.
(WebCore::RenderObjectChildList::destroyLeftoverChildren): Re-added the code to clear the associated node's
renderer.
* rendering/RenderTextFragment.cpp:
(WebCore::RenderTextFragment::setText): Re-added the code to set the associated node's renderer.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::detach):
* dom/Node.cpp:
(WebCore::Node::detach):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::willBeDestroyed):
(WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::destroyLeftoverChildren):
(WebCore::RenderObjectChildList::removeChildNode):
* rendering/RenderTextFragment.cpp:
(WebCore::RenderTextFragment::setText):
2013-02-11 Eric Seidel <eric@webkit.org>
Make WebVTTTokenizer stop inheriting from MarkupTokenizerBase
https://bugs.webkit.org/show_bug.cgi?id=109411
Reviewed by Adam Barth.
Moved InputStreamPreprocessor into its own header file so it can be
used by both WebVTTTokenizer and HTMLTokenizer.
Also split out kEndOfFileMarker from InputStreamPreprocessor<T> so that
it can be used w/o a specific instantiation of the template class.
This also made it possible to fix three old fixmes about wanting to share
that constant.
Again, separating WebVTT code from Markup* base classes made it simpler
at the cost of a little copy/paste code. WebVTT tokenization is remarkably
simple compared to HTML.
This will make it immediately possible to pull MarkupTokenizerBase up into
HTMLTokenizer and further simplify the code.
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::markEndOfFile):
* html/parser/HTMLInputStream.h:
(WebCore::HTMLInputStream::markEndOfFile):
* html/parser/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::nextToken):
* html/parser/InputStreamPreprocessor.h: Added.
(WebCore):
(InputStreamPreprocessor):
(WebCore::InputStreamPreprocessor::InputStreamPreprocessor):
(WebCore::InputStreamPreprocessor::nextInputCharacter):
(WebCore::InputStreamPreprocessor::peek):
(WebCore::InputStreamPreprocessor::advance):
(WebCore::InputStreamPreprocessor::skipNextNewLine):
(WebCore::InputStreamPreprocessor::reset):
(WebCore::InputStreamPreprocessor::shouldTreatNullAsEndOfFileMarker):
* html/track/WebVTTTokenizer.cpp:
(WebCore::WebVTTTokenizer::WebVTTTokenizer):
(WebCore::WebVTTTokenizer::nextToken):
* html/track/WebVTTTokenizer.h:
(WebVTTTokenizer):
(WebCore::WebVTTTokenizer::haveBufferedCharacterToken):
(WebCore::WebVTTTokenizer::bufferCharacter):
(WebCore::WebVTTTokenizer::emitAndResumeIn):
(WebCore::WebVTTTokenizer::emitEndOfFile):
(WebCore::WebVTTTokenizer::shouldSkipNullCharacters):
* xml/parser/MarkupTokenizerBase.h:
(MarkupTokenizerBase):
(WebCore::MarkupTokenizerBase::bufferCharacter):
2013-02-11 Adam Barth <abarth@webkit.org>
document.write during window.onload can trigger DumpRenderTree to dump the render tree
https://bugs.webkit.org/show_bug.cgi?id=109465
Reviewed by Eric Seidel.
This patch is a partial revert of
http://trac.webkit.org/changeset/142378. It's not safe to call
checkComplete during the load event. We'll need to find another way of
calling checkComplete at the right time.
Test: fast/parser/document-write-during-load.html
* dom/Document.cpp:
(WebCore::Document::decrementActiveParserCount):
2013-02-11 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: Timeline: invalidate and force locations are same for Layout records caused by style recalculaiton
https://bugs.webkit.org/show_bug.cgi?id=109294
Reviewed by Pavel Feldman.
Use the stack that caused style recalculation as a cause for relayout performed due to
layout invalidation caused by style recalculation.
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.prototype.reset):
(WebInspector.TimelinePresentationModel.Record):
2013-02-01 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: [Extension API] adjust inspectedWindow.eval() callback parameters to expose non-exceptional error
https://bugs.webkit.org/show_bug.cgi?id=108640
Reviewed by Vsevolod Vlasov.
- only set first parameter to eval() callback iff expression successfully evaluates;
- use object, not bool as second parameter;
- pass exceptions and extension errors as second parameter if evaluate failed;
- minor drive-by changes in ExtensionAPI utilities.
* inspector/front-end/ExtensionAPI.js:
(injectedExtensionAPI.ExtensionSidebarPaneImpl.prototype.setExpression):
(injectedExtensionAPI.InspectedWindow.prototype.):
(injectedExtensionAPI.InspectedWindow.prototype.eval):
(injectedExtensionAPI.extractCallbackArgument):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype.):
(WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
(WebInspector.ExtensionStatus):
2013-02-11 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: [Extensions API] expose ExtensionServerClient to tests so tests use same port as extensions API
https://bugs.webkit.org/show_bug.cgi?id=109443
Reviewed by Vsevolod Vlasov.
Promote extensionServer var to the outer closure, so it may be accessed by platform-specific (or test) code.
* inspector/front-end/ExtensionAPI.js:
(buildExtensionAPIInjectedScript):
2013-02-11 Eric Seidel <eric@webkit.org>
Move WebVTTToken off of MarkupTokenBase
https://bugs.webkit.org/show_bug.cgi?id=109410
Reviewed by Tony Gentilcore.
This introduces a small amount of "copy/paste" code
but actually makes WebVTTToken much smaller and simpler!
This also frees the HTMLParser to have its Token class
back to itself so we can tune it to make HTML faster.
* html/track/WebVTTToken.h:
(WebVTTToken):
(WebCore::WebVTTToken::WebVTTToken):
(WebCore::WebVTTToken::appendToName):
(WebCore::WebVTTToken::type):
(WebCore::WebVTTToken::name):
(WebCore::WebVTTToken::ensureIsCharacterToken):
(WebCore::WebVTTToken::appendToCharacter):
(WebCore::WebVTTToken::beginEmptyStartTag):
(WebCore::WebVTTToken::beginStartTag):
(WebCore::WebVTTToken::beginEndTag):
(WebCore::WebVTTToken::beginTimestampTag):
(WebCore::WebVTTToken::makeEndOfFile):
(WebCore::WebVTTToken::clear):
2013-02-11 Joshua Bell <jsbell@chromium.org>
[V8] IndexedDB: Minor GC can collect IDBDatabase wrapper with versionchange handler
https://bugs.webkit.org/show_bug.cgi?id=108670
Reviewed by Kentaro Hara.
Prevent IDBDatabase's wrapper from being GC'd while the database is open if it has
listeners, as those listeners may close the database in response to events.
Also, removed extraneous super-calls from hasPendingActivity() overrides.
Test: storage/indexeddb/database-wrapper.html
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::hasPendingActivity): Implemented.
* Modules/indexeddb/IDBDatabase.h: Declared.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::hasPendingActivity): Simplified.
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::hasPendingActivity): Simplified.
2013-02-11 Eric Seidel <eric@webkit.org>
Remove AttributeBase now that NEW_XML is gone
https://bugs.webkit.org/show_bug.cgi?id=109408
Reviewed by Adam Barth.
Just deleting code. HTMLToken::Attribute is now just
the real class and not a typedef.
* html/parser/CompactHTMLToken.cpp:
(WebCore::CompactHTMLToken::CompactHTMLToken):
* html/parser/HTMLTokenizer.cpp:
(WebCore::AtomicHTMLToken::nameForAttribute):
* xml/parser/MarkupTokenBase.h:
(WebCore):
(MarkupTokenBase):
(Attribute):
(Range):
2013-02-11 Eric Seidel <eric@webkit.org>
Rename PreloadTask to StartTagScanner to match its purpose
https://bugs.webkit.org/show_bug.cgi?id=109406
Reviewed by Sam Weinig.
As discussed in bug 107807.
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::StartTagScanner::StartTagScanner):
(WebCore::StartTagScanner::processAttributes):
(WebCore::HTMLPreloadScanner::processToken):
2013-02-11 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: WebInspector.Project refactorings.
https://bugs.webkit.org/show_bug.cgi?id=109433
Reviewed by Alexander Pavlov.
This change prepares Workspace and Project to migration to project-per-domain mode for network based projects.
Renamed WebInspector.WorkspaceProvider to WebInspector.ProjectDelegate.
Renamed Project.name() to Project.id() and delegated it to project delegate.
Added Project.displayName() method that is delegated to project delegate.
SimpleWorkspaceProvider is now responsible for creation of SimpleWorkspaceDelegates and
isolates various mappings from Project/ProjectDelegate concept.
UISourceCode is now created based on path in the project.
UISourceCode uri is now calculated based on project and path (right now uri is equal to path).
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/FileSystemProjectDelegate.js: Renamed from Source/WebCore/inspector/front-end/FileSystemWorkspaceProvider.js.
(WebInspector.FileSystemProjectDelegate):
(WebInspector.FileSystemProjectDelegate.prototype.id):
(WebInspector.FileSystemProjectDelegate.prototype.type):
(WebInspector.FileSystemProjectDelegate.prototype.displayName):
(WebInspector.FileSystemProjectDelegate.prototype.innerCallback):
(WebInspector.FileSystemProjectDelegate.prototype.requestFileContent):
(WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
(WebInspector.FileSystemProjectDelegate.prototype.contentCallback):
(WebInspector.FileSystemProjectDelegate.prototype.searchInFileContent):
(WebInspector.FileSystemProjectDelegate.prototype._contentTypeForPath):
(WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
(WebInspector.FileSystemProjectDelegate.prototype._populate):
(WebInspector.FileSystemProjectDelegate.prototype._addFile):
(WebInspector.FileSystemProjectDelegate.prototype._removeFile):
(WebInspector.FileSystemProjectDelegate.prototype.reset):
(WebInspector.FileSystemUtils):
(WebInspector.FileSystemUtils.errorHandler):
(WebInspector.FileSystemUtils.requestFileSystem):
(.fileSystemLoaded):
(.innerCallback):
(WebInspector.FileSystemUtils.requestFilesRecursive):
(.fileEntryLoaded):
(.fileLoaded):
(.readerLoadEnd):
(WebInspector.FileSystemUtils.requestFileContent):
(.fileWriterCreated.fileTruncated):
(.fileWriterCreated):
(.writerEnd):
(WebInspector.FileSystemUtils.setFileContent):
(WebInspector.FileSystemUtils._getDirectory):
(.toArray):
(WebInspector.FileSystemUtils._readDirectory):
(WebInspector.FileSystemUtils._requestEntries):
* inspector/front-end/IsolatedFileSystemModel.js:
(WebInspector.IsolatedFileSystemModel.prototype._innerAddFileSystem):
* inspector/front-end/SimpleWorkspaceProvider.js:
(WebInspector.SimpleProjectDelegate):
(WebInspector.SimpleProjectDelegate.prototype.id):
(WebInspector.SimpleProjectDelegate.prototype.displayName):
(WebInspector.SimpleProjectDelegate.prototype.requestFileContent):
(WebInspector.SimpleProjectDelegate.prototype.setFileContent):
(WebInspector.SimpleProjectDelegate.prototype.searchInFileContent):
(WebInspector.SimpleProjectDelegate.prototype.addFile):
(WebInspector.SimpleProjectDelegate.prototype._uniquePath):
(WebInspector.SimpleProjectDelegate.prototype.removeFile):
(WebInspector.SimpleProjectDelegate.prototype.reset):
(WebInspector.SimpleWorkspaceProvider):
(WebInspector.SimpleWorkspaceProvider.uriForURL):
(WebInspector.SimpleWorkspaceProvider.prototype.addFileForURL):
(WebInspector.SimpleWorkspaceProvider.prototype.addUniqueFileForURL):
(WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
(WebInspector.SimpleWorkspaceProvider.prototype.removeFile):
(WebInspector.SimpleWorkspaceProvider.prototype.reset):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode):
(WebInspector.UISourceCode.prototype.path):
(WebInspector.UISourceCode.prototype.uri):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/Workspace.js:
(WebInspector.FileDescriptor):
(WebInspector.ProjectDelegate):
(WebInspector.ProjectDelegate.prototype.id):
(WebInspector.ProjectDelegate.prototype.displayName):
(WebInspector.ProjectDelegate.prototype.requestFileContent):
(WebInspector.ProjectDelegate.prototype.setFileContent):
(WebInspector.ProjectDelegate.prototype.searchInFileContent):
(WebInspector.Project):
(WebInspector.Project.prototype.id):
(WebInspector.Project.prototype.type):
(WebInspector.Project.prototype.displayName):
(WebInspector.Project.prototype.isServiceProject):
(WebInspector.Project.prototype._fileAdded):
(WebInspector.Project.prototype._fileRemoved):
(WebInspector.Project.prototype._reset):
(WebInspector.Project.prototype.uiSourceCode):
(WebInspector.Project.prototype.uiSourceCodeForOriginURL):
(WebInspector.Project.prototype.uiSourceCodeForURI):
(WebInspector.Project.prototype.uiSourceCodes):
(WebInspector.Project.prototype.requestFileContent):
(WebInspector.Project.prototype.setFileContent):
(WebInspector.Project.prototype.searchInFileContent):
(WebInspector.Project.prototype.dispose):
(WebInspector.Workspace.prototype.uiSourceCode):
(WebInspector.Workspace.prototype.uiSourceCodeForURI):
(WebInspector.Workspace.prototype.addProject):
(WebInspector.Workspace.prototype.removeProject):
(WebInspector.Workspace.prototype.project):
(WebInspector.Workspace.prototype.uiSourceCodes):
(WebInspector.Workspace.prototype.projectForUISourceCode):
* inspector/front-end/inspector.html:
2013-02-11 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: fix closure compiler warnings in the profiler code
https://bugs.webkit.org/show_bug.cgi?id=109432
Reviewed by Pavel Feldman.
Updated type annotations to match the code.
* inspector/front-end/NativeMemorySnapshotView.js:
* inspector/front-end/ProfilesPanel.js:
2013-02-11 Alexander Shalamov <alexander.shalamov@intel.com>
[QT] Regression (r142444): Broke qt linux minimal build
https://bugs.webkit.org/show_bug.cgi?id=109423
Reviewed by Kenneth Rohde Christiansen.
Test: cssom/cssvalue-comparison.html
* css/CSSValue.cpp:
(WebCore::CSSValue::equals):
2013-02-11 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: introduce WebInspector.TextUtils
https://bugs.webkit.org/show_bug.cgi?id=109289
Reviewed by Pavel Feldman.
Add new WebInspector.TextUtils file and extract commonly used
text-operation subroutines from DefaultTextEditor into it.
No new tests: no change in behaviour.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._isWord):
(WebInspector.DefaultTextEditor.WordMovementController.prototype._rangeForCtrlArrowMove):
(WebInspector.TextEditorMainPanel.BraceHighlightController.prototype.handleSelectionChange):
* inspector/front-end/TextUtils.js: Added.
(WebInspector.TextUtils.isStopChar):
(WebInspector.TextUtils.isWordChar):
(WebInspector.TextUtils.isSpaceChar):
(WebInspector.TextUtils.isWord):
(WebInspector.TextUtils.isBraceChar):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2013-02-11 Zan Dobersek <zdobersek@igalia.com>
[GTK][Clang] Build errors in LocalizedStringsGtk.cpp
https://bugs.webkit.org/show_bug.cgi?id=109418
Reviewed by Philippe Normand.
Use the C++ isfinite(float) and abs(float) (instead of fabsf(float))
methods by including the WTF MathExtras.h header. Use a static cast to
an integer type on the float return value of the abs(float) method call
instead of the C-style cast.
No new tests - no new functiolnality.
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::localizedMediaTimeDescription):
2013-02-11 Zan Dobersek <zdobersek@igalia.com>
Unreviewed build fix for the WTFURL backend of KURL.
* platform/KURL.cpp:
(WebCore::KURL::isSafeToSendToAnotherThread): m_urlImpl is of RefPtr type so use
the appropriate operator on it when calling the isSafeToSendToAnotherThread method.
2013-02-11 Mike West <mkwst@chromium.org>
Range::collapsed callers should explicitly ASSERT_NO_EXCEPTION.
https://bugs.webkit.org/show_bug.cgi?id=108921
Reviewed by Jochen Eisinger.
For clarity and consistency, this patch adjusts Range::collapsed() to
drop the default value of the ExceptionCode parameter it accepts. The
three call sites that called the method with no arguments (all part of
Editor::rangeOfString) will now explicitly ASSERT_NO_EXCEPTION.
* dom/Range.h:
(Range):
* editing/Editor.cpp:
(WebCore::Editor::rangeOfString):
2013-02-11 Alexei Filippov <alph@chromium.org>
Web Inspector: Split Profiler domain in protocol into Profiler and HeapProfiler
https://bugs.webkit.org/show_bug.cgi?id=108653
Reviewed by Yury Semikhatsky.
Currently CPU and heap profilers share the same domain 'Profiler' in the protocol.
In fact these two profile types have not too much in common. So put each into its own domain.
It should also help when Profiles panel gets split into several tools.
This is the phase 1 which adds InspectorHeapProfilerAgent but doesn't
change the original InspectorProfilerAgent.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/Inspector.json:
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorHeapProfilerAgent.cpp: Added.
(WebCore):
(WebCore::InspectorHeapProfilerAgent::create):
(WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
(WebCore::InspectorHeapProfilerAgent::~InspectorHeapProfilerAgent):
(WebCore::InspectorHeapProfilerAgent::resetState):
(WebCore::InspectorHeapProfilerAgent::resetFrontendProfiles):
(WebCore::InspectorHeapProfilerAgent::setFrontend):
(WebCore::InspectorHeapProfilerAgent::clearFrontend):
(WebCore::InspectorHeapProfilerAgent::restore):
(WebCore::InspectorHeapProfilerAgent::collectGarbage):
(WebCore::InspectorHeapProfilerAgent::createSnapshotHeader):
(WebCore::InspectorHeapProfilerAgent::hasHeapProfiler):
(WebCore::InspectorHeapProfilerAgent::getProfileHeaders):
(WebCore::InspectorHeapProfilerAgent::getHeapSnapshot):
(WebCore::InspectorHeapProfilerAgent::removeProfile):
(WebCore::InspectorHeapProfilerAgent::takeHeapSnapshot):
(WebCore::InspectorHeapProfilerAgent::getObjectByHeapObjectId):
(WebCore::InspectorHeapProfilerAgent::getHeapObjectId):
(WebCore::InspectorHeapProfilerAgent::reportMemoryUsage):
* inspector/InspectorHeapProfilerAgent.h: Added.
(WebCore):
(InspectorHeapProfilerAgent):
(WebCore::InspectorHeapProfilerAgent::clearProfiles):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
* inspector/InstrumentingAgents.h:
(WebCore):
(InstrumentingAgents):
(WebCore::InstrumentingAgents::inspectorHeapProfilerAgent):
(WebCore::InstrumentingAgents::setInspectorHeapProfilerAgent):
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
* inspector/front-end/HeapSnapshotDataGrids.js:
* inspector/front-end/HeapSnapshotGridNodes.js:
(WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent):
* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapProfileHeader.prototype.startSnapshotTransfer):
(WebInspector.HeapProfileHeader.prototype.saveToFile.onOpen):
(WebInspector.HeapProfileHeader.prototype.saveToFile):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel):
(WebInspector.ProfilesPanel.prototype._clearProfiles):
(WebInspector.ProfilesPanel.prototype._garbageCollectButtonClicked):
(WebInspector.ProfilesPanel.prototype._removeProfileHeader):
(WebInspector.ProfilesPanel.prototype._populateProfiles.var):
(WebInspector.ProfilesPanel.prototype._populateProfiles.populateCallback):
(WebInspector.ProfilesPanel.prototype._populateProfiles):
(WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
(WebInspector.ProfilesPanel.prototype.revealInView):
(WebInspector.HeapProfilerDispatcher):
(WebInspector.HeapProfilerDispatcher.prototype.addProfileHeader):
(WebInspector.HeapProfilerDispatcher.prototype.addHeapSnapshotChunk):
(WebInspector.HeapProfilerDispatcher.prototype.finishHeapSnapshot):
(WebInspector.HeapProfilerDispatcher.prototype.resetProfiles):
(WebInspector.HeapProfilerDispatcher.prototype.reportHeapSnapshotProgress):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._garbageCollectButtonClicked):
* inspector/front-end/inspector.js:
(WebInspector.doLoadedDone):
2013-02-11 Mike West <mkwst@chromium.org>
Use IGNORE_EXCEPTION for Editor::countMatchesForText's ignored exceptions.
https://bugs.webkit.org/show_bug.cgi?id=109372
Reviewed by Jochen Eisinger.
Rather than implicitly ignoring exceptions, we should use the
IGNORE_EXCEPTION macro for clarity.
* editing/Editor.cpp:
(WebCore::Editor::countMatchesForText):
2013-02-11 Zoltan Arvai <zarvai@inf.u-szeged.hu>
[Qt] Unreviewed. Fix minimal build after r142444.
* css/CSSValue.cpp:
(WebCore::CSSValue::equals):
2013-02-11 Christophe Dumez <ch.dumez@sisa.samsung.com>
[EFL] Stop using smart pointers for Ecore_Timer
https://bugs.webkit.org/show_bug.cgi?id=109409
Reviewed by Kenneth Rohde Christiansen.
Stop using a smart pointer for Ecore_Timer in RunLoop::TimerBase. This
is a bad idea because the timer handle becomes invalid as soon as the
timer callback returns ECORE_CALLBACK_CANCEL. This may lead to crashes
on destruction because OwnPtr calls ecore_timer_del() on an invalid
handle.
No new tests, already covered by exiting tests.
* platform/RunLoop.h:
(TimerBase):
* platform/efl/RunLoopEfl.cpp:
(WebCore::RunLoop::TimerBase::timerFired):
(WebCore::RunLoop::TimerBase::start):
(WebCore::RunLoop::TimerBase::stop):
2013-02-11 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Allow SplitView to keep the sidebar size as a fraction of the container size
https://bugs.webkit.org/show_bug.cgi?id=109414
Reviewed by Vsevolod Vlasov.
SplitView now interprets defaultSidebarWidth and defaultSidebarHeight values between 0 and 1 as
fractions of the total container size. The sidebar then will grow or shrink along with the container.
When the sidebar is resized manually the updated ratio is stored in the settings.
* inspector/front-end/SplitView.js:
(WebInspector.SplitView):
(WebInspector.SplitView.prototype._removeAllLayoutProperties):
(WebInspector.SplitView.prototype._updateTotalSize):
(WebInspector.SplitView.prototype._innerSetSidebarSize):
(WebInspector.SplitView.prototype._saveSidebarSize):
2013-02-11 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: highlight DOM nodes on hover while debugging
https://bugs.webkit.org/show_bug.cgi?id=109355
Reviewed by Vsevolod Vlasov.
Along with showing the popover, highlight the remote object as node.
* inspector/front-end/ObjectPopoverHelper.js:
(WebInspector.ObjectPopoverHelper.prototype.):
(WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
(WebInspector.ObjectPopoverHelper.prototype._onHideObjectPopover):
2013-02-11 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: displaying whitespace characters is broken
https://bugs.webkit.org/show_bug.cgi?id=109412
Reviewed by Vsevolod Vlasov.
Add "pointer-events: none" rule for pseudo-class "before", which
maintains rendering of whitespace characters.
No new tests.
* inspector/front-end/inspectorSyntaxHighlight.css:
(.webkit-whitespace::before):
2013-02-11 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Implement position-based sourcemapping for stylesheets
https://bugs.webkit.org/show_bug.cgi?id=109168
Reviewed by Vsevolod Vlasov.
This change introduces support for position-based source maps for CSS stylesheets.
Sourcemaps and originating resources (sass, scss, etc.) are loaded synchronously
upon the CSS UISourceCode addition. RangeBasedSourceMap is removed as it is not used.
Test: http/tests/inspector/stylesheet-source-mapping.html
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSStyleModel):
(WebInspector.CSSStyleModel.prototype.setSourceMapping):
(WebInspector.CSSStyleModel.prototype.rawLocationToUILocation):
(WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
(WebInspector.CSSLocation):
(WebInspector.CSSProperty):
(WebInspector.CSSProperty.parsePayload):
* inspector/front-end/CompilerScriptMapping.js:
(WebInspector.CompilerScriptMapping):
(WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
(WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
* inspector/front-end/SASSSourceMapping.js:
(WebInspector.SASSSourceMapping):
(WebInspector.SASSSourceMapping.prototype._styleSheetChanged.callback):
(WebInspector.SASSSourceMapping.prototype._styleSheetChanged):
(WebInspector.SASSSourceMapping.prototype._reloadCSS):
(WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
(WebInspector.SASSSourceMapping.prototype._resourceAdded):
(WebInspector.SASSSourceMapping.prototype._loadAndProcessSourceMap):
(WebInspector.SASSSourceMapping.prototype.loadSourceMapForStyleSheet):
(WebInspector.SASSSourceMapping.prototype._bindUISourceCode):
(WebInspector.SASSSourceMapping.prototype.rawLocationToUILocation):
(WebInspector.SASSSourceMapping.prototype.uiLocationToRawLocation):
(WebInspector.SASSSourceMapping.prototype._reset):
* inspector/front-end/SourceMap.js:
(WebInspector.SourceMap):
(WebInspector.SourceMap.load):
(WebInspector.SourceMap.prototype.findEntry):
(WebInspector.SourceMap.prototype.findEntryReversed):
(WebInspector.SourceMap.prototype._parseMap):
* inspector/front-end/StylesSourceMapping.js:
(WebInspector.StylesSourceMapping):
(WebInspector.StylesSourceMapping.prototype._bindUISourceCode):
* inspector/front-end/inspector.js:
2013-02-11 Alexander Shalamov <alexander.shalamov@intel.com>
Implement CSSValue::equals(const CSSValue&) to optimise CSSValue comparison
https://bugs.webkit.org/show_bug.cgi?id=102901
Reviewed by Antti Koivisto.
Added comparison method to CSSValue and its children, so that the
css values could be compared efficiently. Before this patch, CSSValue
objects were compared using strings that were generated by the cssText() method.
Test: cssom/cssvalue-comparison.html
* css/CSSAspectRatioValue.cpp:
(WebCore::CSSAspectRatioValue::equals):
(WebCore):
* css/CSSAspectRatioValue.h:
(CSSAspectRatioValue):
* css/CSSBasicShapes.cpp:
(WebCore::CSSBasicShapeRectangle::equals):
(WebCore):
(WebCore::CSSBasicShapeCircle::equals):
(WebCore::CSSBasicShapeEllipse::equals):
(WebCore::CSSBasicShapePolygon::equals):
* css/CSSBasicShapes.h:
(CSSBasicShapeRectangle):
(CSSBasicShapeCircle):
(CSSBasicShapeEllipse):
(CSSBasicShapePolygon):
* css/CSSBorderImageSliceValue.cpp:
(WebCore::CSSBorderImageSliceValue::equals):
(WebCore):
* css/CSSBorderImageSliceValue.h:
(CSSBorderImageSliceValue):
* css/CSSCalculationValue.cpp:
(WebCore::CSSCalcValue::equals):
(WebCore):
(WebCore::CSSCalcPrimitiveValue::equals):
(CSSCalcPrimitiveValue):
(WebCore::CSSCalcPrimitiveValue::type):
(WebCore::CSSCalcBinaryOperation::equals):
(CSSCalcBinaryOperation):
(WebCore::CSSCalcBinaryOperation::type):
* css/CSSCalculationValue.h:
(WebCore::CSSCalcExpressionNode::equals):
(CSSCalcExpressionNode):
(CSSCalcValue):
* css/CSSCanvasValue.cpp:
(WebCore::CSSCanvasValue::equals):
(WebCore):
* css/CSSCanvasValue.h:
(CSSCanvasValue):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
(WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
(WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForSidesShorthand):
* css/CSSCrossfadeValue.cpp:
(WebCore::CSSCrossfadeValue::equals):
(WebCore):
* css/CSSCrossfadeValue.h:
(CSSCrossfadeValue):
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::equals):
(WebCore):
* css/CSSCursorImageValue.h:
(CSSCursorImageValue):
* css/CSSFontFaceSrcValue.cpp:
(WebCore::CSSFontFaceSrcValue::equals):
(WebCore):
* css/CSSFontFaceSrcValue.h:
(CSSFontFaceSrcValue):
* css/CSSFunctionValue.cpp:
(WebCore::CSSFunctionValue::equals):
(WebCore):
* css/CSSFunctionValue.h:
(CSSFunctionValue):
* css/CSSGradientValue.cpp:
(WebCore::CSSLinearGradientValue::equals):
(WebCore):
(WebCore::CSSRadialGradientValue::equals):
* css/CSSGradientValue.h:
(WebCore::CSSGradientColorStop::operator==):
(CSSLinearGradientValue):
(CSSRadialGradientValue):
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::equals):
(WebCore):
* css/CSSImageValue.h:
(CSSImageValue):
* css/CSSInheritedValue.h:
(WebCore::CSSInheritedValue::equals):
(CSSInheritedValue):
* css/CSSInitialValue.h:
(WebCore::CSSInitialValue::equals):
(CSSInitialValue):
* css/CSSLineBoxContainValue.h:
(WebCore::CSSLineBoxContainValue::equals):
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::equals):
(WebCore):
* css/CSSPrimitiveValue.h:
(CSSPrimitiveValue):
* css/CSSReflectValue.cpp:
(WebCore::CSSReflectValue::equals):
(WebCore):
* css/CSSReflectValue.h:
(CSSReflectValue):
* css/CSSTimingFunctionValue.cpp:
(WebCore::CSSCubicBezierTimingFunctionValue::equals):
(WebCore):
(WebCore::CSSStepsTimingFunctionValue::equals):
* css/CSSTimingFunctionValue.h:
(WebCore::CSSLinearTimingFunctionValue::equals):
(CSSLinearTimingFunctionValue):
(CSSCubicBezierTimingFunctionValue):
(CSSStepsTimingFunctionValue):
* css/CSSUnicodeRangeValue.cpp:
(WebCore::CSSUnicodeRangeValue::equals):
(WebCore):
* css/CSSUnicodeRangeValue.h:
(CSSUnicodeRangeValue):
* css/CSSValue.cpp:
(WebCore):
(WebCore::compareCSSValues):
(WebCore::CSSValue::equals):
* css/CSSValue.h:
(CSSValue):
(WebCore):
(WebCore::compareCSSValueVector):
(WebCore::compareCSSValuePtr):
* css/CSSValueList.cpp:
(WebCore::CSSValueList::removeAll):
(WebCore::CSSValueList::hasValue):
(WebCore::CSSValueList::equals):
(WebCore):
* css/CSSValueList.h:
(CSSValueList):
* css/CSSVariableValue.h:
(WebCore::CSSVariableValue::equals):
(CSSVariableValue):
* css/Counter.h:
(Counter):
(WebCore::Counter::equals):
* css/DashboardRegion.h:
(WebCore::DashboardRegion::equals):
* css/FontFeatureValue.cpp:
(WebCore::FontFeatureValue::equals):
(WebCore):
* css/FontFeatureValue.h:
(FontFeatureValue):
* css/FontValue.cpp:
(WebCore::FontValue::equals):
(WebCore):
* css/FontValue.h:
(FontValue):
* css/MediaQueryExp.h:
(WebCore::MediaQueryExp::operator==):
* css/Pair.h:
(WebCore::Pair::equals):
(Pair):
* css/Rect.h:
(WebCore::RectBase::equals):
(RectBase):
* css/ShadowValue.cpp:
(WebCore::ShadowValue::equals):
(WebCore):
* css/ShadowValue.h:
(ShadowValue):
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::get4Values):
(WebCore::StylePropertySet::propertyMatches):
* css/WebKitCSSArrayFunctionValue.cpp:
(WebCore::WebKitCSSArrayFunctionValue::equals):
(WebCore):
* css/WebKitCSSArrayFunctionValue.h:
(WebKitCSSArrayFunctionValue):
* css/WebKitCSSFilterValue.cpp:
(WebCore::WebKitCSSFilterValue::equals):
(WebCore):
* css/WebKitCSSFilterValue.h:
(WebKitCSSFilterValue):
* css/WebKitCSSMixFunctionValue.cpp:
(WebCore::WebKitCSSMixFunctionValue::equals):
(WebCore):
* css/WebKitCSSMixFunctionValue.h:
(WebKitCSSMixFunctionValue):
* css/WebKitCSSSVGDocumentValue.cpp:
(WebCore::WebKitCSSSVGDocumentValue::equals):
(WebCore):
* css/WebKitCSSSVGDocumentValue.h:
(WebKitCSSSVGDocumentValue):
* css/WebKitCSSShaderValue.cpp:
(WebCore::WebKitCSSShaderValue::equals):
(WebCore):
* css/WebKitCSSShaderValue.h:
(WebKitCSSShaderValue):
* css/WebKitCSSTransformValue.h:
(WebCore::WebKitCSSTransformValue::equals):
* editing/EditingStyle.cpp:
(WebCore::HTMLAttributeEquivalent::valueIsPresentInStyle):
* svg/SVGColor.cpp:
(WebCore::SVGColor::equals):
(WebCore):
* svg/SVGColor.h:
(SVGColor):
* svg/SVGPaint.cpp:
(WebCore::SVGPaint::equals):
(WebCore):
* svg/SVGPaint.h:
(SVGPaint):
2013-02-11 Pan Deng <pan.deng@intel.com>
[Web Inspector] Network panel, sort by "transferSize" instead of "resourceSize".
https://bugs.webkit.org/show_bug.cgi?id=109142.
Reviewed by Vsevolod Vlasov.
Sort by "transferSize" as it is the primary rather than "resoureSize".
No new tests.
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkDataGridNode.SizeComparator):
2013-02-11 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Resources] Prefactorings in DataGrid and CookieTable
https://bugs.webkit.org/show_bug.cgi?id=109141
Reviewed by Vsevolod Vlasov.
1) Make deleteCookie method static and move to WebInspector.Cookie
2) Replace resfreshCallback getter/setter in DataGrid with
constructor parameter
* inspector/front-end/CookieItemsView.js: Adopt changes.
* inspector/front-end/CookieParser.js:
(WebInspector.Cookie.prototype.remove): Moved from CookiesTable.
* inspector/front-end/CookiesTable.js: Adopt changes.
* inspector/front-end/DataGrid.js:
Replace setter with constructor parameter.
2013-02-11 John J. Barton <johnjbarton@chromium.org>
Web Inspector: Don't throw exceptions in WebInspector.Color
https://bugs.webkit.org/show_bug.cgi?id=104835
Reviewed by Vsevolod Vlasov.
WebInspector.Color.parse() returns a Color from a string, or null;
Ctor calls now call parse();
In the StylesSideBarPane, test null rather than catch(e).
Added case to inspector/styles/styles-invalid-color-values.html
* inspector/front-end/Color.js:
(WebInspector.Color):
(WebInspector.Color.parse):
(WebInspector.Color.fromRGBA):
(WebInspector.Color.fromRGB):
(WebInspector.Color.prototype.toString):
(WebInspector.Color.prototype._parse.this.alpha.set 0):
(WebInspector.Color.prototype._parse.this.nickname.set 2):
(WebInspector.Color.prototype._parse.this.hsla.set 1):
(WebInspector.Color.prototype._parse.this.rgba.set 0):
(WebInspector.Color.prototype._parse.set WebInspector):
(WebInspector.Color.prototype._parse):
* inspector/front-end/Spectrum.js:
(WebInspector.Spectrum.prototype.get color):
* inspector/front-end/StylesSidebarPane.js:
2013-02-11 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: home button behaviour is wrong in DTE
https://bugs.webkit.org/show_bug.cgi?id=109154
Reviewed by Vsevolod Vlasov.
Handle home key shortcut explicitly in TextEditorMainPanel.
New test: inspector/editor/text-editor-home-button.html
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._registerShortcuts):
(WebInspector.TextEditorMainPanel.prototype._handleHomeKey):
2013-02-11 Abhishek Arya <inferno@chromium.org>
Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
https://bugs.webkit.org/show_bug.cgi?id=108981
Reviewed by Eric Seidel.
* Modules/mediastream/RTCStatsResponse.cpp:
(WebCore::RTCStatsResponse::addElement):
(WebCore::RTCStatsResponse::addStatistic):
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::skipBuffer):
* css/CSSCalculationValue.cpp:
(WebCore::CSSCalcExpressionNodeParser::parseValueMultiplicativeExpression):
(WebCore::CSSCalcExpressionNodeParser::parseAdditiveValueExpression):
* css/WebKitCSSTransformValue.cpp:
(WebCore::transformValueToCssString):
* editing/TextIterator.cpp:
(WebCore::SearchBuffer::search):
* html/HTMLElement.cpp:
(WebCore::parseColorStringWithCrazyLegacyRules):
* html/ImageData.cpp:
(WebCore::ImageData::ImageData):
* html/shadow/DateTimeSymbolicFieldElement.cpp:
(WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
* html/track/TextTrackCueList.cpp:
(WebCore::TextTrackCueList::add):
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::getSomeData):
* platform/SharedBufferChunkReader.cpp:
(WebCore::SharedBufferChunkReader::nextChunk):
* platform/audio/HRTFDatabase.cpp:
(WebCore::HRTFDatabase::getKernelsFromAzimuthElevation):
* platform/graphics/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::initializePage):
* platform/graphics/Region.cpp:
(WebCore::Region::Shape::segments_end):
* platform/graphics/filters/FEComponentTransfer.cpp:
(WebCore::FEComponentTransfer::getValues):
* platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::inputEffect):
* platform/text/TextCodecUTF8.cpp:
(WebCore::TextCodecUTF8::decode):
* platform/text/mac/TextCodecMac.cpp:
(WebCore::TextCodecMac::decode):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::checkFloatsInCleanLine):
* svg/SVGAnimatedTypeAnimator.h:
(WebCore::SVGAnimatedTypeAnimator::executeAction):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::calculatePercentForSpline):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::findInstanceTime):
2013-02-10 Chris Fleizach <cfleizach@apple.com>
WebSpeech: Implement basic speaking/finished speaking behavior
https://bugs.webkit.org/show_bug.cgi?id=107135
Reviewed by Sam Weinig.
Implements the basic functionality of speaking utterances.
In the WebCore side, it manages the speech queue the way the spec defines
(that is, new jobs are appended to a queue and wait for other jobs to finish).
On the Mac side, it instantiates a synthesizer and handles the callbacks for when
jobs are finished. It sends those jobs back to WebCore to dispatch the right events.
Test: platform/mac/fast/speechsynthesis/speech-synthesis-speak.html
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::SpeechSynthesis):
(WebCore::SpeechSynthesis::paused):
(WebCore::SpeechSynthesis::startSpeakingImmediately):
(WebCore::SpeechSynthesis::speak):
(WebCore):
(WebCore::SpeechSynthesis::fireEvent):
(WebCore::SpeechSynthesis::handleSpeakingCompleted):
(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didFinishSpeaking):
(WebCore::SpeechSynthesis::speakingErrorOccurred):
* Modules/speech/SpeechSynthesis.h:
(WebCore):
(WebCore::SpeechSynthesis::speaking):
(SpeechSynthesis):
* Modules/speech/SpeechSynthesisEvent.cpp:
(WebCore::SpeechSynthesisEvent::create):
(WebCore):
(WebCore::SpeechSynthesisEvent::SpeechSynthesisEvent):
* Modules/speech/SpeechSynthesisEvent.h:
(SpeechSynthesisEvent):
(WebCore::SpeechSynthesisEvent::interfaceName):
* Modules/speech/SpeechSynthesisUtterance.h:
(WebCore::SpeechSynthesisUtterance::startTime):
(WebCore::SpeechSynthesisUtterance::setStartTime):
(SpeechSynthesisUtterance):
* platform/PlatformSpeechSynthesisUtterance.cpp:
(WebCore::PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance):
* platform/PlatformSpeechSynthesisUtterance.h:
(PlatformSpeechSynthesisUtterance):
(WebCore::PlatformSpeechSynthesisUtterance::setVolume):
(WebCore::PlatformSpeechSynthesisUtterance::setRate):
(WebCore::PlatformSpeechSynthesisUtterance::setPitch):
(WebCore::PlatformSpeechSynthesisUtterance::startTime):
(WebCore::PlatformSpeechSynthesisUtterance::setStartTime):
(WebCore::PlatformSpeechSynthesisUtterance::client):
* platform/PlatformSpeechSynthesizer.cpp:
(WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
* platform/PlatformSpeechSynthesizer.h:
(PlatformSpeechSynthesizerClient):
(WebCore::PlatformSpeechSynthesizer::client):
(PlatformSpeechSynthesizer):
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper initWithSpeechSynthesizer:WebCore::]):
(-[WebSpeechSynthesisWrapper dealloc]):
(-[WebSpeechSynthesisWrapper convertRateToWPM:]):
(-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
(WebCore::PlatformSpeechSynthesizer::speak):
2013-02-10 Eric Seidel <eric@webkit.org>
Make the existing HTMLPreloadScanner threading-aware
https://bugs.webkit.org/show_bug.cgi?id=107807
Reviewed by Adam Barth.
The HTMLPreloadScanner and CSSPreloadScanner do a number of things.
CSSPreloadScanner is mostly just a helper class for HTMLPreloadScanner.
HTMLPreloadScanner runs its own copy of the HTMLTokenizer and uses
HTMLTokenizer::updateStateFor to emulate enough of the TreeBuilder
to get a realistic stream of tokens. It does some additional TreeBuilder
emulation, including tracking template tags and base tags, but mostly
just scans the token stream for start-tags and looks for URLs in them.
It tracks when it has seen a <style> tag and starts sending all character tokens
to the CSSPreloadScanner until a </style> tag is seen.
It also (unfortunately) knows some about the loader guts and how to construct
a proper CachedResourcRequest and issue a preload.
This patch changes the model so that the preload scanners only know how to produce
PreloadRequest objects and append them to a passed-in vector.
This changes the preload-scanner behavior so that preloads are now all issued in one large
batch at the end of scanning, instead of as we hit each resource. It's possible that
we'll wait to instead check for preload requests more often, at a possible tradeoff
to tokenizing speed.
An alternate approach might be to pass in a preload-delegate of sorts which knew how
to either build a vector, or send requests immediately. For now the build-a-vector-always
approach seems clean, and does not seem to slow down our PerformanceTest microbenchmarks at least.
This patch has 2 main pieces:
- Remove Document and (and loader) dependencies from HTMLPreloadScanner/CSSPreloadScanner
This is done through introduction of a new HTMLResourcePreloader class which holds
a Document* and knows how to talk to the CachedResourceLoader.
- Clean-up HTMLPreloadScanners token-loop to not be tied to having a Tokenizer.
(On a background thead, the HTMLPreloadScanner won't own the tokenizer, it will just
be passed in tokens and expected to issue loads if necessary.)
This passes all of the LayoutTests using the main thread parser.
This patch does not make the HTMLPreloadScanner 100% ready for threading
(it still uses AtomicString which is currently not-OK on the parser thread)
but it's very close. Two further (already written) patches will complete this.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::CSSPreloadScanner):
(WebCore::CSSPreloadScanner::scan):
(WebCore::CSSPreloadScanner::emitRule):
* html/parser/CSSPreloadScanner.h:
(CSSPreloadScanner):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::pumpTokenizer):
(WebCore::HTMLDocumentParser::insert):
(WebCore::HTMLDocumentParser::append):
(WebCore::HTMLDocumentParser::appendCurrentInputStreamToPreloadScannerAndScan):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::isStartTag):
(WebCore):
(WebCore::isStartOrEndTag):
(WebCore::PreloadTask::processAttributes):
(WebCore::PreloadTask::charset):
(PreloadTask):
(WebCore::PreloadTask::resourceType):
(WebCore::PreloadTask::shouldPreload):
(WebCore::PreloadTask::createPreloadRequest):
(WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
(WebCore::HTMLPreloadScanner::scan):
(WebCore::HTMLPreloadScanner::processPossibleTemplateTag):
(WebCore::HTMLPreloadScanner::processPossibleStyleTag):
(WebCore::HTMLPreloadScanner::processPossibleBaseTag):
(WebCore::HTMLPreloadScanner::processToken):
* html/parser/HTMLPreloadScanner.h:
(HTMLPreloadScanner):
* html/parser/HTMLResourcePreloader.cpp: Added.
(WebCore):
(WebCore::isStringSafeToSendToAnotherThread):
(WebCore::PreloadRequest::isSafeToSendToAnotherThread):
(WebCore::PreloadRequest::completeURL):
(WebCore::PreloadRequest::resourceRequest):
(WebCore::HTMLResourcePreloader::preload):
* html/parser/HTMLResourcePreloader.h: Added.
(WebCore):
(PreloadRequest):
(WebCore::PreloadRequest::create):
(WebCore::PreloadRequest::PreloadRequest):
(HTMLResourcePreloader):
(WebCore::HTMLResourcePreloader::HTMLResourcePreloader):
(WebCore::HTMLResourcePreloader::createWeakPtr):
* loader/cache/CachedResourceRequest.h:
2013-02-06 Kentaro Hara <haraken@chromium.org>
[V8] Rename isolated() to getWorld(), rename worldForEnteredContextIfIsolated() to worldForEnteredContext()
https://bugs.webkit.org/show_bug.cgi?id=109039
Reviewed by Adam Barth.
This is a follow-up patch for r141983.
Rename methods for consistency.
No tests. No change in behavior.
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
* bindings/v8/DOMWrapperWorld.h:
(WebCore::DOMWrapperWorld::getWorld):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
(WebCore::ScriptController::currentWorldContext):
* bindings/v8/V8Binding.h:
(WebCore::worldForEnteredContext):
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::WorldContextHandle):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8SVGDocumentCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::V8XMLHttpRequest::constructorCallbackCustom):
2013-02-10 Alexandre Elias <aelias@chromium.org>
[chromium] Fix Android scrollbar size
https://bugs.webkit.org/show_bug.cgi?id=109374
Reviewed by James Robinson.
This shrinks scrollbars to 3 device-independent pixels (usually 6
physical pixels) and deletes the edge fade. Although the Android
system theme does have an edge fade, it's a much sharper cliff
than we had (against black, the colors go 64 -> 64 -> 52 -> 21 -> 0)
and I can't perceive any difference compared with no fade at all.
No new tests (due for rewrite in a week anyway).
* platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
(WebCore):
(WebCore::ScrollbarThemeChromiumAndroid::paintThumb):
2013-02-04 Kentaro Hara <haraken@chromium.org>
[V8] Remove V8GCController::m_edenNodes and make minor DOM GC more precise
https://bugs.webkit.org/show_bug.cgi?id=108579
Reviewed by Adam Barth.
Currently V8GCController::m_edenNodes stores a list of nodes whose
wrappers have been created since the latest GC. The reason why we
needed m_edenNodes is that there was no way to know a list of wrappers
in the new space of V8. By using m_edenNodes, we had been approximating
'wrappers in the new space' by 'wrappers that have been created since
the latest GC'.
Now V8 provides VisitHandlesForPartialDependence(), with which WebKit
can know a list of wrappers in the new space. By using the API, we can
remove V8GCController::m_edenNodes. The benefit is that (1) we no longer
need to keep m_edenNodes and that (2) it enables more precise minor
DOM GC (Remember that m_edenNodes was just an approximation).
Performance benchmark: https://bugs.webkit.org/attachment.cgi?id=185940
The benchmark runs 300 iterations, each of which creates 100000 elements.
The benchmark measures average, min, median, max and stdev of execution times
of the 300 iterations. This will tell us the worst-case overhead of this change.
Before:
mean=59.91ms, min=39ms, median=42ms, max=258ms, stdev=47.48ms
After:
mean=58.75ms, min=35ms, median=41ms, max=250ms, stdev=47.32ms
As shown above, I couldn't observe any performance regression.
No tests. No change in behavior.
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::setWrapperInObject):
* bindings/v8/DOMWrapperWorld.h:
(DOMWrapperWorld):
(WebCore::DOMWrapperWorld::getWorldWithoutContextCheck):
* bindings/v8/V8Binding.h:
(WebCore):
(WebCore::worldForEnteredContextIfIsolated):
(WebCore::worldForEnteredContextWithoutContextCheck):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initializeIfNeeded):
* bindings/v8/V8GCController.cpp:
(WebCore::gcTree):
(WebCore):
(MinorGCWrapperVisitor):
(WebCore::MinorGCWrapperVisitor::MinorGCWrapperVisitor):
(WebCore::MinorGCWrapperVisitor::notifyFinished):
(WebCore::MajorGCWrapperVisitor::MajorGCWrapperVisitor):
(WebCore::V8GCController::gcPrologue):
(WebCore::V8GCController::minorGCPrologue):
(WebCore::V8GCController::majorGCPrologue):
* bindings/v8/V8GCController.h:
(V8GCController):
2013-02-10 Tim Horton <timothy_horton@apple.com>
REGRESSION (r132422): Page content and scrollbars are incorrectly offset after restoring a page from the page cache
https://bugs.webkit.org/show_bug.cgi?id=109317
<rdar://problem/12649131>
Reviewed by Simon Fraser.
Mark all scrolling that occurs beneath FrameView::layout as programmatic.
Test: platform/mac-wk2/tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration.html
* page/FrameView.cpp:
(WebCore::FrameView::layout):
2013-02-10 Kent Tamura <tkent@chromium.org>
[Mac] Fix release build failure by recent reverts
* WebCore.exp.in:
2013-02-10 Philippe Normand <pnormand@igalia.com>
[GStreamer] media/video-controls-fullscreen-volume.html crashes
https://bugs.webkit.org/show_bug.cgi?id=108682
Reviewed by Martin Robinson.
Clean up various signal handlers and avoid bad interaction between
the FullscreenVideoControllerGStreamer and its subclasses,
especially when the platform video window is created.
* platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp:
(WebCore::FullscreenVideoControllerGStreamer::enterFullscreen):
Initialize the window before connecting to the volume/mute
signals. This ensures that the signals won't ever interfere with
an inexisting window.
* platform/graphics/gstreamer/GStreamerGWorld.cpp:
(WebCore::GStreamerGWorld::~GStreamerGWorld): Remove GstBus
synchronous handler function.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
Disconnect from volume/mute signals.
(WebCore::MediaPlayerPrivateGStreamerBase::setStreamVolumeElement):
Keep a trace of volume/mute signal handlers.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
Various forward type declarations to avoid un-necessary header includes.
(MediaPlayerPrivateGStreamerBase):
* platform/graphics/gtk/FullscreenVideoControllerGtk.cpp:
(WebCore::FullscreenVideoControllerGtk::FullscreenVideoControllerGtk):
(WebCore::FullscreenVideoControllerGtk::volumeChanged): Bail out
if volume button hasn't been created yet.
(WebCore::FullscreenVideoControllerGtk::muteChanged): Ditto.
2013-02-10 Andreas Kling <akling@apple.com>
RenderStyle should use copy-on-write inheritance for NinePieceImage.
<http://webkit.org/b/109366>
Reviewed by Antti Koivisto.
Refactor NinePieceImage to hold a copy-on-write DataRef like other RenderStyle substructures.
This allows us to avoids copying the NinePieceImageData when one RenderStyle inherits from another
but modifies something in the substructure holding the NinePieceImage (typically StyleSurroundData.)
Also made RenderStyle not copy-on-write its StyleSurroundData prematurely when doing a no-op write
to a border-image related value.
1.23 MB progression on Membuster3.
* rendering/style/NinePieceImage.cpp:
(WebCore::defaultData):
(WebCore::NinePieceImage::NinePieceImage):
(WebCore::NinePieceImageData::NinePieceImageData):
(WebCore::NinePieceImageData::operator==):
* rendering/style/NinePieceImage.h:
(WebCore::NinePieceImageData::create):
(WebCore::NinePieceImageData::copy):
(NinePieceImageData):
(NinePieceImage):
(WebCore::NinePieceImage::operator==):
(WebCore::NinePieceImage::operator!=):
(WebCore::NinePieceImage::hasImage):
(WebCore::NinePieceImage::image):
(WebCore::NinePieceImage::setImage):
(WebCore::NinePieceImage::imageSlices):
(WebCore::NinePieceImage::setImageSlices):
(WebCore::NinePieceImage::fill):
(WebCore::NinePieceImage::setFill):
(WebCore::NinePieceImage::borderSlices):
(WebCore::NinePieceImage::setBorderSlices):
(WebCore::NinePieceImage::outset):
(WebCore::NinePieceImage::setOutset):
(WebCore::NinePieceImage::horizontalRule):
(WebCore::NinePieceImage::setHorizontalRule):
(WebCore::NinePieceImage::verticalRule):
(WebCore::NinePieceImage::setVerticalRule):
(WebCore::NinePieceImage::copyImageSlicesFrom):
(WebCore::NinePieceImage::copyBorderSlicesFrom):
(WebCore::NinePieceImage::copyOutsetFrom):
(WebCore::NinePieceImage::copyRepeatFrom):
(WebCore::NinePieceImage::setMaskDefaults):
(WebCore::NinePieceImage::computeOutset):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setBorderImageSource):
(WebCore::RenderStyle::setBorderImageSlices):
(WebCore::RenderStyle::setBorderImageWidth):
(WebCore::RenderStyle::setBorderImageOutset):
* rendering/style/RenderStyle.h:
2013-02-10 Kent Tamura <tkent@chromium.org>
Unreviewed, rolling out r142343.
http://trac.webkit.org/changeset/142343
https://bugs.webkit.org/show_bug.cgi?id=108284
It might make inspector/profiler/selector-profiler-url.html
crashy.
* WebCore.exp.in:
* css/plugIns.css:
(p):
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::defaultEventHandler):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
(WebCore::HTMLPlugInImageElement::createRenderer):
(WebCore::HTMLPlugInImageElement::willRecalcStyle):
(WebCore::HTMLPlugInImageElement::updateSnapshot):
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot):
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn):
* html/HTMLPlugInImageElement.h:
(WebCore):
(HTMLPlugInImageElement):
* page/ChromeClient.h:
(WebCore::ChromeClient::plugInStartLabelImage):
* platform/LocalizedStrings.cpp:
* platform/LocalizedStrings.h:
* platform/blackberry/LocalizedStringsBlackBerry.cpp:
* platform/chromium/LocalizedStringsChromium.cpp:
* platform/efl/LocalizedStringsEfl.cpp:
(WebCore):
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore):
* platform/qt/LocalizedStringsQt.cpp:
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore):
(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
(WebCore::RenderSnapshottedPlugIn::paint):
(WebCore::RenderSnapshottedPlugIn::paintReplaced):
(WebCore::RenderSnapshottedPlugIn::paintSnapshot):
(WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot):
(WebCore::RenderSnapshottedPlugIn::startLabelImage):
(WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshotWithLabel):
(WebCore::RenderSnapshottedPlugIn::getCursor):
(WebCore::RenderSnapshottedPlugIn::handleEvent):
(WebCore::RenderSnapshottedPlugIn::tryToFitStartLabel):
* rendering/RenderSnapshottedPlugIn.h:
2013-02-10 Andreas Kling <akling@apple.com>
RenderText: Access characters through m_text instead of caching data pointers separately.
<http://webkit.org/b/109357>
Reviewed by Antti Koivisto.
Go through RenderText::m_text.impl() instead of caching the character data pointer.
RenderText should never have a null String in m_text so it's safe to access impl() directly.
We have assertions for this since before.
Removing this pointer shrinks RenderText by 8 bytes, allowing it to fit into a snugger size class.
749 KB progression on Membuster3.
* rendering/RenderText.cpp:
(SameSizeAsRenderText):
(WebCore::RenderText::RenderText):
(WebCore::RenderText::setTextInternal):
* rendering/RenderText.h:
(WebCore::RenderText::is8Bit):
(WebCore::RenderText::characters8):
(WebCore::RenderText::characters16):
(WebCore::RenderText::characterAt):
(WebCore::RenderText::operator[]):
(RenderText):
2013-02-10 Jae Hyun Park <jae.park08@gmail.com>
Rename ENABLE(GLIB_SUPPORT) to USE(GLIB)
https://bugs.webkit.org/show_bug.cgi?id=104266
Reviewed by Philippe Normand.
Using USE(GLIB) instead of ENABLE(GLIB_SUPPORT) is more consistent with
the existing macro naming conventions.
From Platform.h
USE() - use a particular third-party library or optional OS service
ENABLE() - turn on a specific feature of WebKit
No new tests, no new functionality.
* WebCore.pri:
2013-02-10 Zan Dobersek <zdobersek@igalia.com>
[GTK] Build errors in TextureMapperShaderProgram.cpp when compiling with Clang
https://bugs.webkit.org/show_bug.cgi?id=109321
Reviewed by Noam Rosenthal.
Clang is reporting errors due to non-constant expressions that cannot be narrowed
from double to float type in initializer list when constructing a matrix of GC3Dfloat
numbers. To avoid this every parameter is passed through an explicit GC3Dfloat constructor.
No new tests - no new functionality.
* platform/graphics/texmap/TextureMapperShaderProgram.cpp:
(WebCore::TextureMapperShaderProgram::setMatrix):
2013-02-10 Philippe Normand <pnormand@igalia.com>
[GStreamer] audio is muted when playback rate is between 0.8 and 2.0
https://bugs.webkit.org/show_bug.cgi?id=109362
Reviewed by Martin Robinson.
Don't mute sound if the audio pitch is preserved. If this is not
the case mute it if it's too extreme, as the HTML5 spec recommends.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::setRate):
2013-02-09 Dominic Mazzoni <dmazzoni@google.com>
fast/encoding/parser-tests-*.html tests sometimes crash
https://bugs.webkit.org/show_bug.cgi?id=108058
Reviewed by Chris Fleizach.
To avoid calling accessibilityIsIgnored while the render
tree is unstable, call accessibilityIsIgnored in the
notification timer handler, only for childrenChanged
notifications.
This exposed a problem where notifications queued on
objects can fire after the object has been deleted; fix that
by checking the object's id, which is always set to 0 when
removed from the tree.
Covered by existing tests.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::childrenChanged):
(WebCore::AXObjectCache::notificationPostTimerFired):
2013-02-09 Eric Carlson <eric.carlson@apple.com>
[Mac] Do not assume MediaAccessibility framework is installed
https://bugs.webkit.org/show_bug.cgi?id=109365
Reviewed by Sam Weinig.
* page/CaptionUserPreferencesMac.h:
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Call the base class if the framework
is not available.
(WebCore::CaptionUserPreferencesMac::setUserPrefersCaptions): Ditto.
(WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): Ditto.
(WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Ditto.
(WebCore::CaptionUserPreferencesMac::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
(WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Ditto.
(WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Ditto.
(WebCore::CaptionUserPreferencesMac::setPreferredLanguage): Ditto.
(WebCore::CaptionUserPreferencesMac::preferredLanguages): Ditto.
2013-02-09 Dominic Mazzoni <dmazzoni@google.com>
AX: move isIgnored caching to AXObject
https://bugs.webkit.org/show_bug.cgi?id=109322
Reviewed by Chris Fleizach.
There's some benefit to caching accessibilityIsIgnored
(using AXComputedObjectAttributeCache) for more than just
AXRenderObject, so move the caching code to AXObject.
AXObject now has a protected virtual method
computeAccessibilityIsIgnored, and all subclasses
override that instead.
No new tests.
* accessibility/AccessibilityImageMapLink.h:
(AccessibilityImageMapLink):
(WebCore::AccessibilityImageMapLink::computeAccessibilityIsIgnored):
* accessibility/AccessibilityList.cpp:
(WebCore::AccessibilityList::computeAccessibilityIsIgnored):
* accessibility/AccessibilityList.h:
(AccessibilityList):
* accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::computeAccessibilityIsIgnored):
* accessibility/AccessibilityListBox.h:
(AccessibilityListBox):
* accessibility/AccessibilityListBoxOption.cpp:
(WebCore::AccessibilityListBoxOption::computeAccessibilityIsIgnored):
* accessibility/AccessibilityListBoxOption.h:
(AccessibilityListBoxOption):
* accessibility/AccessibilityMediaControls.cpp:
(WebCore::AccessibilityMediaControl::computeAccessibilityIsIgnored):
(WebCore::AccessibilityMediaTimeDisplay::computeAccessibilityIsIgnored):
* accessibility/AccessibilityMediaControls.h:
(AccessibilityMediaControl):
(WebCore::AccessibilityMediaControlsContainer::computeAccessibilityIsIgnored):
(AccessibilityMediaTimeDisplay):
* accessibility/AccessibilityMenuList.h:
(WebCore::AccessibilityMenuList::computeAccessibilityIsIgnored):
* accessibility/AccessibilityMenuListOption.cpp:
(WebCore::AccessibilityMenuListOption::computeAccessibilityIsIgnored):
* accessibility/AccessibilityMenuListOption.h:
(AccessibilityMenuListOption):
* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::computeAccessibilityIsIgnored):
* accessibility/AccessibilityMenuListPopup.h:
(AccessibilityMenuListPopup):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored):
* accessibility/AccessibilityNodeObject.h:
(AccessibilityNodeObject):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::accessibilityIsIgnored):
(WebCore):
* accessibility/AccessibilityObject.h:
(AccessibilityObject):
(WebCore::AccessibilityObject::computeAccessibilityIsIgnored):
* accessibility/AccessibilityProgressIndicator.cpp:
(WebCore::AccessibilityProgressIndicator::computeAccessibilityIsIgnored):
* accessibility/AccessibilityProgressIndicator.h:
(AccessibilityProgressIndicator):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::computeAccessibilityIsIgnored):
* accessibility/AccessibilityScrollView.h:
(AccessibilityScrollView):
* accessibility/AccessibilityScrollbar.h:
(WebCore::AccessibilityScrollbar::computeAccessibilityIsIgnored):
* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::computeAccessibilityIsIgnored):
(WebCore::AccessibilitySliderThumb::computeAccessibilityIsIgnored):
* accessibility/AccessibilitySlider.h:
(AccessibilitySlider):
(AccessibilitySliderThumb):
* accessibility/AccessibilitySpinButton.h:
(WebCore::AccessibilitySpinButton::computeAccessibilityIsIgnored):
(WebCore::AccessibilitySpinButtonPart::computeAccessibilityIsIgnored):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::computeAccessibilityIsIgnored):
* accessibility/AccessibilityTable.h:
(AccessibilityTable):
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::computeAccessibilityIsIgnored):
* accessibility/AccessibilityTableCell.h:
(AccessibilityTableCell):
* accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::computeAccessibilityIsIgnored):
* accessibility/AccessibilityTableColumn.h:
(AccessibilityTableColumn):
* accessibility/AccessibilityTableHeaderContainer.cpp:
(WebCore::AccessibilityTableHeaderContainer::computeAccessibilityIsIgnored):
* accessibility/AccessibilityTableHeaderContainer.h:
(AccessibilityTableHeaderContainer):
* accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::computeAccessibilityIsIgnored):
* accessibility/AccessibilityTableRow.h:
(AccessibilityTableRow):
2013-02-09 David Farler <dfarler@apple.com>
Make TestWebKitAPI work for iOS
https://bugs.webkit.org/show_bug.cgi?id=108978
Reviewed by David Kilzer.
Tests already exist - refactor only.
* WebCore.exp.in: Lumped __ZNK7WebCore4KURL7hasPathEv with related methods.
* platform/KURL.cpp: Inlined hasPath() into the header
* platform/KURL.h: Inlined hasPath() into the header
2013-02-09 Adam Barth <abarth@webkit.org>
Load event fires too early with threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=108984
Reviewed by Eric Seidel.
Previously, the DocumentLoader would always be on the stack when the
HTMLDocumentParser was processing data from the network. The
DocumentLoader would then tell isLoadingInAPISense not to fire the load
event. Now that we process data asynchronously with the threaded
parser, the DocumentLoader is not always on the stack, which means we
need to delay the load event using the clause that asks the parser
whether it is processing data.
Unfortunately, that clause is fragile because we can check for load
completion while we're switching parsers between the network-created
parser and a script-created parser. To avoid accidentially triggerin
the load event during these "gaps," this patch introduces a counter on
document to record how many parsers are active on the stack. While
that numer is non-zero, we'll delay the load event. When that number
reaches zero, we'll check for load complete.
That last step is required because the DocumentLoader::finishLoading
method is no longer guarunteed to check for load complete after calling
finish on the parser because the finish operation might complete
asynchronously.
After this patch, the threaded parser passes all but four fast/parser
tests.
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::hasActiveParser):
(WebCore):
(WebCore::Document::decrementActiveParserCount):
* dom/Document.h:
(Document):
(WebCore::Document::incrementActiveParserCount):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::pumpTokenizer):
* html/parser/HTMLParserScheduler.cpp:
(WebCore::ActiveParserSession::ActiveParserSession):
(WebCore):
(WebCore::ActiveParserSession::~ActiveParserSession):
(WebCore::PumpSession::PumpSession):
(WebCore::PumpSession::~PumpSession):
* html/parser/HTMLParserScheduler.h:
(WebCore):
(ActiveParserSession):
(PumpSession):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoadingInAPISense):
2013-02-09 Mike West <mkwst@chromium.org>
Use IGNORE_EXCEPTION for initialized, but unused, ExceptionCodes.
https://bugs.webkit.org/show_bug.cgi?id=109295
Reviewed by Darin Adler.
The monster patch in http://wkbug.com/108771 missed an entire class of
ignored exceptions. It only dealt with call sites that never initialized
the ExceptionCode variable, on the assumption that only such call sites
would ignore the variable's value.
That was a flawed assumption: a large number of sites that initialize the
ExceptionCode to 0 ignore it regardless. This patch deals with the
almost-as-large set of callsites that initialize the variable, pass it to
a function, and then never touch it again.
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::forceClose):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::ariaSelectedTextRange):
(WebCore::AccessibilityRenderObject::visiblePositionForIndex):
(WebCore::AccessibilityRenderObject::indexForVisiblePosition):
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(getSelectionOffsetsForObject):
* accessibility/atk/WebKitAccessibleUtil.cpp:
(selectionBelongsToObject):
* dom/Node.cpp:
(WebCore::Node::textRects):
* editing/DeleteButtonController.cpp:
(WebCore::DeleteButtonController::hide):
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::styleAtSelectionStart):
* editing/Editor.cpp:
(WebCore::Editor::canDeleteRange):
(WebCore::Editor::pasteAsPlainText):
(WebCore::Editor::pasteAsFragment):
(WebCore::Editor::shouldDeleteRange):
(WebCore::Editor::dispatchCPPEvent):
(WebCore::Editor::setComposition):
(WebCore::Editor::advanceToNextMisspelling):
(WebCore::isFrameInRange):
* editing/EditorCommand.cpp:
(WebCore::expandSelectionToGranularity):
* editing/MergeIdenticalElementsCommand.cpp:
(WebCore::MergeIdenticalElementsCommand::doApply):
* editing/SplitElementCommand.cpp:
(WebCore::SplitElementCommand::doUnapply):
* editing/SplitTextNodeCommand.cpp:
(WebCore::SplitTextNodeCommand::doApply):
* editing/TextCheckingHelper.cpp:
(WebCore::expandToParagraphBoundary):
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
(WebCore::TextCheckingHelper::isUngrammatical):
(WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange):
* editing/TextInsertionBaseCommand.cpp:
(WebCore::dispatchBeforeTextInsertedEvent):
(WebCore::canAppendNewLineFeedToSelection):
* editing/TextIterator.cpp:
(WebCore::findPlainText):
* editing/htmlediting.cpp:
(WebCore::extendRangeToWrappingNodes):
(WebCore::isNodeVisiblyContainedWithin):
* editing/visible_units.cpp:
(WebCore::nextBoundary):
* html/FileInputType.cpp:
(WebCore::FileInputType::createShadowSubtree):
* html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::HTMLKeygenElement):
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::setText):
* html/HTMLTitleElement.cpp:
(WebCore::HTMLTitleElement::setText):
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::didCompleteLoad):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::createShadowSubtree):
* html/SearchInputType.cpp:
(WebCore::SearchInputType::createShadowSubtree):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::createShadowSubtree):
* html/track/TextTrackList.cpp:
(TextTrackList::asyncEventTimerFired):
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::patchDocument):
* inspector/InspectorDatabaseAgent.cpp:
(WebCore):
* inspector/InspectorFileSystemAgent.cpp:
(WebCore):
* page/DOMSelection.cpp:
(WebCore::DOMSelection::addRange):
* page/DragController.cpp:
(WebCore::DragController::dispatchTextInputEventFor):
* page/EventHandler.cpp:
(WebCore::EventHandler::dispatchMouseEvent):
(WebCore::EventHandler::handleTouchEvent):
* page/FrameActionScheduler.cpp:
(WebCore::EventFrameAction::fire):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
* svg/SVGDocument.cpp:
(WebCore::SVGDocument::dispatchZoomEvent):
(WebCore::SVGDocument::dispatchScrollEvent):
* svg/SVGLength.cpp:
(WebCore::SVGLength::SVGLength):
(WebCore::SVGLength::value):
* xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::exitText):
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::parse):
(WebCore::XMLDocumentParser::startDocument):
(WebCore::XMLDocumentParser::parseCharacters):
2013-02-09 Stephen White <senorblanco@chromium.org>
[skia] Fix memory management in SkiaImageFilterBuilder and friends.
https://bugs.webkit.org/show_bug.cgi?id=109326
Sadly, skia has no official ref-counted pointers, so we must make do
with SkAutoTUnref.
Reviewed by James Robinson.
Correctness covered by existing tests in css3/filters.
* platform/graphics/filters/skia/FEBlendSkia.cpp:
(WebCore::FEBlend::createImageFilter):
* platform/graphics/filters/skia/FEComponentTransferSkia.cpp:
(WebCore::FEComponentTransfer::createImageFilter):
* platform/graphics/filters/skia/FELightingSkia.cpp:
(WebCore::FELighting::createImageFilter):
Adopt refs produced by the build() pass with SkAutoTUnref.
* platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:
(WebCore::SkiaImageFilterBuilder::~SkiaImageFilterBuilder):
Unref the builder's hashmap effect pointers.
(WebCore::SkiaImageFilterBuilder::build):
Ref the pointer returned to the caller, and use SkAutoTUnref
internally while building the tree.
* platform/graphics/filters/skia/SkiaImageFilterBuilder.h:
(SkiaImageFilterBuilder):
Add a destructor to SkiaImageFilterBuilder.
2013-02-09 Dominic Mazzoni <dmazzoni@google.com>
AX: Rename AXObject::cachedIsIgnoredValue to lastKnownIsIgnoredValue
https://bugs.webkit.org/show_bug.cgi?id=108238
Reviewed by Chris Fleizach.
Simple refactoring, no new tests.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::childrenChanged):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::AccessibilityObject):
(WebCore::AccessibilityObject::lastKnownIsIgnoredValue):
(WebCore::AccessibilityObject::setLastKnownIsIgnoredValue):
(WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
* accessibility/AccessibilityObject.h:
(AccessibilityObject):
2013-02-09 Anton Vayvod <avayvod@chromium.org>
[Text Autosizing] Cleanup change: converter the pointer argument to be a reference since
non-null pointer is always expected.
https://bugs.webkit.org/show_bug.cgi?id=109079
Reviewed by Kenneth Rohde Christiansen.
Cleanup change, no need to add new tests or modify the existing ones.
* rendering/TextAutosizer.cpp:
Changed parameter from a pointer to a reference in the methods below.
(WebCore::TextAutosizer::processSubtree):
(WebCore::TextAutosizer::processCluster):
(WebCore::TextAutosizer::processContainer):
(WebCore::TextAutosizer::isNarrowDescendant):
(WebCore::TextAutosizer::isWiderDescendant):
(WebCore::TextAutosizer::isAutosizingCluster):
(WebCore::TextAutosizer::clusterShouldBeAutosized):
(WebCore::TextAutosizer::measureDescendantTextWidth):
* rendering/TextAutosizer.h: updated method prototypes.
2013-02-09 Rafael Brandao <rafael.lobo@openbossa.org>
[TexMap] Separate classes per file in TextureMapperBackingStore.h
https://bugs.webkit.org/show_bug.cgi?id=109333
Reviewed by Noam Rosenthal.
TextureMapperBackingStore.h had the classes TextureMapperBackingStore,
TextureMapperTiledBackingStore, TextureMapperSurfaceBackingStore and
TextureMapperTile which was quite confusing. Now each one has its
own header and its own source file.
No new tests needed, refactoring only.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
* platform/graphics/texmap/TextureMapperBackingStore.cpp:
* platform/graphics/texmap/TextureMapperBackingStore.h:
* platform/graphics/texmap/TextureMapperSurfaceBackingStore.cpp: Added.
(WebCore):
(WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
(WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
(WebCore::TextureMapperSurfaceBackingStore::texture):
(WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
* platform/graphics/texmap/TextureMapperSurfaceBackingStore.h: Added.
(WebCore):
(TextureMapperSurfaceBackingStore):
(WebCore::TextureMapperSurfaceBackingStore::create):
(WebCore::TextureMapperSurfaceBackingStore::~TextureMapperSurfaceBackingStore):
(WebCore::TextureMapperSurfaceBackingStore::TextureMapperSurfaceBackingStore):
* platform/graphics/texmap/TextureMapperTile.cpp: Added.
(WebCore):
(WebCore::TextureMapperTile::updateContents):
(WebCore::TextureMapperTile::paint):
* platform/graphics/texmap/TextureMapperTile.h: Added.
(WebCore):
(TextureMapperTile):
(WebCore::TextureMapperTile::texture):
(WebCore::TextureMapperTile::rect):
(WebCore::TextureMapperTile::setTexture):
(WebCore::TextureMapperTile::setRect):
(WebCore::TextureMapperTile::~TextureMapperTile):
(WebCore::TextureMapperTile::TextureMapperTile):
* platform/graphics/texmap/TextureMapperTiledBackingStore.cpp: Copied from Source/WebCore/platform/graphics/texmap/TextureMapperBackingStore.cpp.
(WebCore):
(WebCore::TextureMapperTiledBackingStore::TextureMapperTiledBackingStore):
(WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
(WebCore::TextureMapperTiledBackingStore::adjustedTransformForRect):
(WebCore::TextureMapperTiledBackingStore::paintToTextureMapper):
(WebCore::TextureMapperTiledBackingStore::drawBorder):
(WebCore::TextureMapperTiledBackingStore::drawRepaintCounter):
(WebCore::TextureMapperTiledBackingStore::createOrDestroyTilesIfNeeded):
(WebCore::TextureMapperTiledBackingStore::updateContents):
(WebCore::TextureMapperTiledBackingStore::texture):
* platform/graphics/texmap/TextureMapperTiledBackingStore.h: Added.
(WebCore):
(TextureMapperTiledBackingStore):
(WebCore::TextureMapperTiledBackingStore::create):
(WebCore::TextureMapperTiledBackingStore::~TextureMapperTiledBackingStore):
(WebCore::TextureMapperTiledBackingStore::setContentsToImage):
(WebCore::TextureMapperTiledBackingStore::rect):
* platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
2013-02-09 Philip Rogers <pdr@google.com>
Sanitize m_keyTimes for paced value animations
https://bugs.webkit.org/show_bug.cgi?id=108828
Reviewed by Dirk Schulze.
SVG animations with calcMode=paced calculate new m_keyTimes in
SVGAnimationElement::calculateKeyTimesForCalcModePaced() because paced animations do not
specify keyTimes. If an error occurs while calculating m_keyTimes, and there exists
user-specified values, a crash could occur because the user-specified values were not
sanitized.
This change clears user-specified keyTimes before calculating new ones.
Test: svg/animations/animate-keytimes-crash.html
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::calculateKeyTimesForCalcModePaced):
2013-02-09 Eric Seidel <eric@webkit.org>
Fix TextDocumentParser to play nice with threading
https://bugs.webkit.org/show_bug.cgi?id=109240
Reviewed by Adam Barth.
Before the HTML5 parser re-write the text document parser
was completely custom. With the HTML5 parser, we just made
the TextDocumentParser use the HTMLDocumentParser with an
artificial script tag.
However, our solution was slightly over-engineered to avoid
lying about the column numbers of the first line of the text document
during parsing. :)
This change makes us use a simpler (and threading-compatible)
solution by just inserting a real "<pre>" tag into the
input stream instead of hacking one together with the treebuilder
and manually setting the Tokenizer state.
fast/parser/empty-text-resource.html covers this case.
* html/parser/TextDocumentParser.cpp:
(WebCore::TextDocumentParser::TextDocumentParser):
(WebCore::TextDocumentParser::insertFakePreElement):
2013-02-09 Kent Tamura <tkent@chromium.org>
Add missing copyright header
https://bugs.webkit.org/show_bug.cgi?id=107507
* Resources/pagepopups/chromium/calendarPickerChromium.css:
* Resources/pagepopups/chromium/pickerCommonChromium.css:
2013-02-09 Kent Tamura <tkent@chromium.org>
Fix crash by img[ismap] with content property
https://bugs.webkit.org/show_bug.cgi?id=108702
Reviewed by Adam Barth.
Test: fast/dom/HTMLAnchorElement/anchor-ismap-crash.html
* html/HTMLAnchorElement.cpp:
(WebCore::appendServerMapMousePosition):
Check if the renderer of an img element is RenderImage.
2013-02-09 Mike West <mkwst@chromium.org>
Drop ExceptionCode from IDB's directionToString and modeToString.
https://bugs.webkit.org/show_bug.cgi?id=109143
Reviewed by Jochen Eisinger.
No caller of either IDBCursor::directionToString or
IDBTransaction::modeToString makes use of the ExceptionCode these
methods require. This patch removes the 'ExceptionCode&' parameter from
both methods and their callsites.
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::direction):
(WebCore::IDBCursor::directionToString):
Drop the 'ExceptionCode&' parameter, and replace the 'TypeError'
exception previously generated with ASSERT_NOT_REACHED.
* Modules/indexeddb/IDBCursor.h:
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::mode):
(WebCore::IDBTransaction::modeToString):
Drop the 'ExceptionCode&' parameter, and replace the 'TypeError'
exception previously generated with ASSERT_NOT_REACHED.
* Modules/indexeddb/IDBTransaction.h:
2013-02-09 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][Qt][WebGL] Share the common code between GraphicsSurfaceGLX and X11WindowResources.
https://bugs.webkit.org/show_bug.cgi?id=106666
Reviewed by Kenneth Rohde Christiansen.
Covered by existing WebGL tests.
This patch removes any duplicate code in X11WindowResources and
GraphicsSurfaceGLX. No new functionality is added.
* PlatformEfl.cmake:
* Target.pri:
* platform/graphics/surfaces/egl/EGLConfigSelector.cpp:
(WebCore::EGLConfigSelector::pixmapContextConfig):
* platform/graphics/surfaces/egl/EGLConfigSelector.h:
(EGLConfigSelector):
* platform/graphics/surfaces/egl/EGLSurface.cpp:
(WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
(WebCore::EGLWindowTransportSurface::destroy):
(WebCore::EGLWindowTransportSurface::setGeometry):
* platform/graphics/surfaces/egl/EGLSurface.h:
(WebCore):
(EGLWindowTransportSurface):
* platform/graphics/surfaces/glx/GLXConfigSelector.h:
(WebCore::GLXConfigSelector::GLXConfigSelector):
(WebCore::GLXConfigSelector::visualInfo):
(WebCore::GLXConfigSelector::pBufferContextConfig):
(WebCore::GLXConfigSelector::createSurfaceConfig):
(GLXConfigSelector):
* platform/graphics/surfaces/glx/GLXContext.cpp:
(WebCore::initializeARBExtensions):
(WebCore::GLXOffScreenContext::GLXOffScreenContext):
(WebCore::GLXOffScreenContext::initialize):
(WebCore::GLXOffScreenContext::platformReleaseCurrent):
(WebCore::GLXOffScreenContext::freeResources):
* platform/graphics/surfaces/glx/GLXContext.h:
(GLXOffScreenContext):
* platform/graphics/surfaces/glx/GLXSurface.cpp:
(WebCore::GLXTransportSurface::GLXTransportSurface):
(WebCore::GLXTransportSurface::setGeometry):
(WebCore::GLXTransportSurface::destroy):
(WebCore::GLXPBuffer::initialize):
* platform/graphics/surfaces/glx/GLXSurface.h:
(GLXTransportSurface):
(GLXPBuffer):
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore):
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::initialize):
(GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createSurface):
(WebCore::GraphicsSurfacePrivate::createPixmap):
(WebCore::GraphicsSurfacePrivate::display):
(WebCore::GraphicsSurfacePrivate::flags):
(WebCore::GraphicsSurfacePrivate::clear):
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
No new functionality added. Made changes to take the common code into use.
* platform/graphics/surfaces/glx/X11WindowResources.h: Removed.
* platform/graphics/surfaces/glx/X11Helper.cpp: Renamed from Source/WebCore/platform/graphics/surfaces/glx/X11WindowResources.cpp.
(WebCore):
(WebCore::DisplayConnection::DisplayConnection):
(DisplayConnection):
(WebCore::DisplayConnection::~DisplayConnection):
(WebCore::DisplayConnection::display):
(OffScreenRootWindow):
(WebCore::OffScreenRootWindow::OffScreenRootWindow):
(WebCore::OffScreenRootWindow::~OffScreenRootWindow):
(WebCore::OffScreenRootWindow::rootWindow):
(WebCore::X11Helper::resizeWindow):
(WebCore::X11Helper::createOffScreenWindow):
(WebCore::X11Helper::destroyWindow):
(WebCore::X11Helper::isXRenderExtensionSupported):
(WebCore::X11Helper::nativeDisplay):
(WebCore::X11Helper::offscreenRootWindow):
* platform/graphics/surfaces/glx/X11Helper.h: Added.
(WebCore):
(WebCore::handleXPixmapCreationError):
(X11Helper):
(ScopedXPixmapCreationErrorHandler):
(WebCore::ScopedXPixmapCreationErrorHandler::ScopedXPixmapCreationErrorHandler):
(WebCore::ScopedXPixmapCreationErrorHandler::~ScopedXPixmapCreationErrorHandler):
(WebCore::ScopedXPixmapCreationErrorHandler::isValidOperation):
Moved common code from GraphicsSurfaceGLX to X11Helper.
2013-02-09 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: show whitespace characters in DTE
https://bugs.webkit.org/show_bug.cgi?id=108947
Reviewed by Pavel Feldman.
New test: inspector/editor/text-editor-show-whitespaces.html
Split consecutive whitespace characters into groups of 16, 8, 4, 2 and 1 and
add ::before pseudoclass for this groups which contains necessary
amount of "dots" (u+00b7). Add a setting "Show whitespace" for this
option in "Sources" section of "General" tab.
* English.lproj/localizedStrings.js:
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype.wasShown):
(WebInspector.TextEditorMainPanel.prototype.willHide):
(WebInspector.TextEditorMainPanel.prototype._renderRanges):
(WebInspector.TextEditorMainPanel.prototype._renderWhitespaceCharsWithFixedSizeSpans):
(WebInspector.TextEditorMainPanel.prototype._paintLine):
* inspector/front-end/Settings.js:
* inspector/front-end/SettingsScreen.js:
(WebInspector.GenericSettingsTab):
* inspector/front-end/inspectorSyntaxHighlight.css:
(.webkit-whitespace-1::before):
(.webkit-whitespace-2::before):
(.webkit-whitespace-4::before):
(.webkit-whitespace-8::before):
(.webkit-whitespace-16::before):
(.webkit-whitespace::before):
2013-02-08 Eric Carlson <eric.carlson@apple.com>
[Mac] respect in-band caption color
https://bugs.webkit.org/show_bug.cgi?id=109203
Reviewed by Dean Jackson.
Test: media/track/track-in-band-style.html
* WebCore.xcodeproj/project.pbxproj: Add HTMLDivElement.h to private headers because it is
included by HTMLTextElement, which is included by HTMLMediaElement.h, which is included
by files in WebKit/WebKit2.
* html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::addGenericCue): Set cue colors if necessary.
* html/track/TextTrackCue.h:
(WebCore::TextTrackCue::element): New, accessor for the cue element so it can be styled.
* html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties): Set container and cue background
color if necessary.
(WebCore::TextTrackCueGeneric::operator==): Compare cue colors.
* html/track/TextTrackCueGeneric.h:
(WebCore::TextTrackCueGeneric::foregroundColor): Add color accessors.
(WebCore::TextTrackCueGeneric::setForegroundColor):
(WebCore::TextTrackCueGeneric::backgroundColor):
(WebCore::TextTrackCueGeneric::setBackgroundColor):
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Always
regenerate override CSS when an element registers for callbacks.
(WebCore::CaptionUserPreferencesMac::captionsWindowCSS): Drive by fix of "window color" padding.
(WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Log the stylesheet generated
for easier debugging.
* platform/graphics/InbandTextTrackPrivateClient.h:
(WebCore::GenericCueData::foregroundColor): Add color getters/setters.
(WebCore::GenericCueData::setForegroundColor):
(WebCore::GenericCueData::backgroundColor):
(WebCore::GenericCueData::setBackgroundColor):
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::makeRGBA32FromARGBCFArray): Initialize a RGBA32 from a CFArray of color values.
(WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Process cue colors.
2013-02-08 Benjamin Poulain <bpoulain@apple.com>
Move workerThreadCount from TestRunner to WebCore Internals
https://bugs.webkit.org/show_bug.cgi?id=109239
Reviewed by Darin Adler.
Add the new read-only property workerThreadCount.
* testing/Internals.cpp:
(WebCore::Internals::workerThreadCount):
(WebCore):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2013-02-08 Dean Jackson <dino@apple.com>
Snapshotted plug-in should use shadow root
https://bugs.webkit.org/show_bug.cgi?id=108284
Reviewed by Simon Fraser.
Take two! This time with updated exports file.
A snapshotted plugin needs to indicate to the user that it can be clicked
to be restarted. Previously this was done with an image that had embedded
text. Instead, we now use an internal shadow root to embed some markup that
will display instructions that can be localised.
The UA stylesheet for plug-ins provides a default styling for the label, which
can be overridden by ports.
In the process, RenderSnapshottedPlugIn no longer inherits from RenderEmbeddedObject,
since it is only responsible for drawing a paused plug-in. The snapshot creation
can work with the default renderer, but a shadow root requires something like
RenderBlock in order to draw its children. We swap from one renderer to another when
necessary either by creating the shadow root or by explicitly detaching and attaching
the plugin element.
Unfortunately this is difficult to test, because the snapshotting requires
time to execute, and also a PluginView to be instantiated.
* WebCore.exp.in: Export the InlineBox interface.
* css/plugIns.css:
(object::-webkit-snapshotted-plugin-content): New rules for a default label style.
* platform/LocalizedStrings.cpp: Make sure all ports have plugin strings, now it is called.
* platform/LocalizedStrings.h:
* platform/blackberry/LocalizedStringsBlackBerry.cpp:
* platform/chromium/LocalizedStringsChromium.cpp:
* platform/efl/LocalizedStringsEfl.cpp:
* platform/gtk/LocalizedStringsGtk.cpp:
* platform/qt/LocalizedStringsQt.cpp:
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::defaultEventHandler): Take into account the fact
that RenderSnapshottedPlugIn no longer is an embedded object.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): New default values in constructor.
(WebCore::HTMLPlugInElement::defaultEventHandler): Make sure to call base class.
(WebCore::HTMLPlugInElement::willRecalcStyle): No need to reattach if we're a snapshot.
(WebCore::HTMLPlugInImageElement::createRenderer): If we're showing a snapshot, create such
a renderer, otherwise use the typical plug-in path.
(WebCore::HTMLPlugInImageElement::updateSnapshot): Keep a record of the snapshot, since we'll
need to give it to the renderer.
(WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Build a subtree that will display a label.
* html/HTMLPlugInImageElement.h:
(HTMLPlugInImageElement): New member variable to record the snapshot image and whether the label
should show immediately.
(WebCore::HTMLPlugInImageElement::swapRendererTimerFired): The callback function triggered when we need
to swap to the Shadow Root.
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot): The user has tapped on the snapshot so the plugin
in being recreated. Make sure we reattach so that a plugin renderer will be created.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Make sure we set the right
displayState for snapshots.
* html/HTMLPlugInImageElement.h:
(HTMLPlugInImageElement): The new methods listed above.
(WebCore::HTMLPlugInImageElement::setShouldShowSnapshotLabelAutomatically): Indicates whether or not
a snapshot should be immediately labeled.
* page/ChromeClient.h: No need for plugInStartLabelImage any more.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): New inheritance.
(WebCore::RenderSnapshottedPlugIn::paint): If we're in the background paint phase, render the snapshot image.
(WebCore::RenderSnapshottedPlugIn::paintSnapshotImage): Rename.
(WebCore::RenderSnapshottedPlugIn::paintSnapshot): Rename.
(WebCore::RenderSnapshottedPlugIn::paintSnapshotWithLabel): Rename. No need for label sizes.
(WebCore::RenderSnapshottedPlugIn::getCursor):
(WebCore::RenderSnapshottedPlugIn::handleEvent): The renderer doesn't restart the plug-in any more. Tell the element and it will do it.
* rendering/RenderSnapshottedPlugIn.h:
(RenderSnapshottedPlugIn): New inheritance. Some method renaming.
2013-02-08 Dean Jackson <dino@apple.com>
Rolling out r142333 and r142337 which broke Mac Release builds.
2013-02-08 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r142337.
http://trac.webkit.org/changeset/142337
https://bugs.webkit.org/show_bug.cgi?id=109339
Breaking Mac release builds (Requested by dino_ on #webkit).
* rendering/RenderSnapshottedPlugIn.h:
2013-02-08 Dean Jackson <dino@apple.com>
Attempted Mac and GTK build fix after r142333.
* rendering/RenderSnapshottedPlugIn.h: Include InlineBox.h.
2013-02-08 Andy Estes <aestes@apple.com>
Restore pre-r118852 behavior for EllipsisBox::nodeAtPoint()
https://bugs.webkit.org/show_bug.cgi?id=109277
Reviewed by Simon Fraser.
Test: fast/flexbox/line-clamp-link-after-ellipsis.html
Roll out r118852. Enough time has passed that this can't be done
mechanically, so transcribe the old method definition to current
WebCore interfaces.
* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::markupBox): EllipsisBox no longer has
m_markupBox, so break the logic for finding the markup box from
paintMarkupBox() into its own function.
(WebCore::EllipsisBox::paintMarkupBox): Call markupBox().
(WebCore::EllipsisBox::nodeAtPoint): Transcribe the pre-r118852 implementation.
* rendering/EllipsisBox.h:
(EllipsisBox): Declare markupBox().
2013-02-08 Eric Carlson <eric.carlson@apple.com>
[Mac] In-band closed caption tracks are not always initialized correctly
https://bugs.webkit.org/show_bug.cgi?id=109323
Reviewed by Dean Jackson.
No new tests, this fix makes existing tests less flakey.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Create and configure legible output
here instad of in tracksChanged.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setClosedCaptionsVisible): Do nothing in a build with
in-band track support.
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Move legible output creation to
createAVPlayerItem, don't set look at track media type to see if the movie has captions
when we have support for in-band captions.
2013-02-08 Dean Jackson <dino@apple.com>
Snapshotted plug-in should use shadow root
https://bugs.webkit.org/show_bug.cgi?id=108284
Reviewed by Simon Fraser.
A snapshotted plugin needs to indicate to the user that it can be clicked
to be restarted. Previously this was done with an image that had embedded
text. Instead, we now use an internal shadow root to embed some markup that
will display instructions that can be localised.
The UA stylesheet for plug-ins provides a default styling for the label, which
can be overridden by ports.
In the process, RenderSnapshottedPlugIn no longer inherits from RenderEmbeddedObject,
since it is only responsible for drawing a paused plug-in. The snapshot creation
can work with the default renderer, but a shadow root requires something like
RenderBlock in order to draw its children. We swap from one renderer to another when
necessary either by creating the shadow root or by explicitly detaching and attaching
the plugin element.
Unfortunately this is difficult to test, because the snapshotting requires
time to execute, and also a PluginView to be instantiated.
* css/plugIns.css:
(object::-webkit-snapshotted-plugin-content): New rules for a default label style.
* platform/LocalizedStrings.cpp: Make sure all ports have plugin strings, now it is called.
* platform/LocalizedStrings.h:
* platform/blackberry/LocalizedStringsBlackBerry.cpp:
* platform/chromium/LocalizedStringsChromium.cpp:
* platform/efl/LocalizedStringsEfl.cpp:
* platform/gtk/LocalizedStringsGtk.cpp:
* platform/qt/LocalizedStringsQt.cpp:
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::defaultEventHandler): Take into account the fact
that RenderSnapshottedPlugIn no longer is an embedded object.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): New default values in constructor.
(WebCore::HTMLPlugInElement::defaultEventHandler): Make sure to call base class.
(WebCore::HTMLPlugInElement::willRecalcStyle): No need to reattach if we're a snapshot.
(WebCore::HTMLPlugInImageElement::createRenderer): If we're showing a snapshot, create such
a renderer, otherwise use the typical plug-in path.
(WebCore::HTMLPlugInImageElement::updateSnapshot): Keep a record of the snapshot, since we'll
need to give it to the renderer.
(WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Build a subtree that will display a label.
* html/HTMLPlugInImageElement.h:
(HTMLPlugInImageElement): New member variable to record the snapshot image and whether the label
should show immediately.
(WebCore::HTMLPlugInImageElement::swapRendererTimerFired): The callback function triggered when we need
to swap to the Shadow Root.
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot): The user has tapped on the snapshot so the plugin
in being recreated. Make sure we reattach so that a plugin renderer will be created.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Make sure we set the right
displayState for snapshots.
* html/HTMLPlugInImageElement.h:
(HTMLPlugInImageElement): The new methods listed above.
(WebCore::HTMLPlugInImageElement::setShouldShowSnapshotLabelAutomatically): Indicates whether or not
a snapshot should be immediately labeled.
* page/ChromeClient.h: No need for plugInStartLabelImage any more.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): New inheritance.
(WebCore::RenderSnapshottedPlugIn::paint): If we're in the background paint phase, render the snapshot image.
(WebCore::RenderSnapshottedPlugIn::paintSnapshotImage): Rename.
(WebCore::RenderSnapshottedPlugIn::paintSnapshot): Rename.
(WebCore::RenderSnapshottedPlugIn::paintSnapshotWithLabel): Rename. No need for label sizes.
(WebCore::RenderSnapshottedPlugIn::getCursor):
(WebCore::RenderSnapshottedPlugIn::handleEvent): The renderer doesn't restart the plug-in any more. Tell the element and it will do it.
* rendering/RenderSnapshottedPlugIn.h:
(RenderSnapshottedPlugIn): New inheritance. Some method renaming.
2013-02-08 Kentaro Hara <haraken@chromium.org>
{FocusIn,FocusOut,Focus,Blur}EventDispatchMediator should be in FocusEvent.cpp
https://bugs.webkit.org/show_bug.cgi?id=109265
Reviewed by Dimitri Glazkov.
Conventionally we put XXXEventDispatchMediator to XXXEvent.cpp.
We should move {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator to FocusEvent.cpp.
No tests. No change in behavior.
* dom/EventDispatchMediator.cpp:
* dom/EventDispatchMediator.h:
* dom/FocusEvent.cpp:
(WebCore::FocusEventDispatchMediator::create):
(WebCore):
(WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
(WebCore::FocusEventDispatchMediator::dispatchEvent):
(WebCore::BlurEventDispatchMediator::create):
(WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
(WebCore::BlurEventDispatchMediator::dispatchEvent):
(WebCore::FocusInEventDispatchMediator::create):
(WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
(WebCore::FocusInEventDispatchMediator::dispatchEvent):
(WebCore::FocusOutEventDispatchMediator::create):
(WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
(WebCore::FocusOutEventDispatchMediator::dispatchEvent):
* dom/FocusEvent.h:
(WebCore):
(FocusEventDispatchMediator):
(BlurEventDispatchMediator):
(FocusInEventDispatchMediator):
(FocusOutEventDispatchMediator):
* dom/UIEvent.cpp:
* dom/UIEvent.h:
2013-02-08 Jer Noble <jer.noble@apple.com>
Unreviewed build fix. MSVC (and other compilers) need a default: case in switch statement.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::notificationName):
2013-02-08 Jer Noble <jer.noble@apple.com>
Bring WebKit up to speed with latest Encrypted Media spec.
https://bugs.webkit.org/show_bug.cgi?id=97037
Reviewed by Eric Carlson.
The most recent version of the Encrypted Media Extensions spec breaks functionality out of the
HTMLMediaElement and into new MediaKeys and MediaKeySession classes. Since the CDM functionality
has been pulled out of the media element, we create a proxy CDM class and factory system for
creating specific CDM key system implementations. The spec also breaks out MediaKeyEvent
into distinct event classes, MediaKeyNeededEvent and MediaKeyMessageEvent, for needkey and
keymessage events, respectively.
Tests: media/encrypted-media/encrypted-media-v2-events.html
media/encrypted-media/encrypted-media-v2-syntax.html
CDM is a proxy class (a la MediaPlayer) for a specific CDMPrivateInterface implementation. A CDM
implementation is registered with the CDMFactory and will be created if that implementation supports
the key system passed into the MediaKeys constructor. CDMSession is a pure-virtual interface exposed
by concrete CDMPrivate subclasses. Its lifetime is owned by MediaKeySession.
* Modules/encryptedmedia/CDM.cpp: Added.
(WebCore::installedCDMFactories): Initialize all the known CDM subtypes. Ports will add CDM implementations here.
(WebCore::CDM::registerCDMFactory): Registers a new CDMFactory using the passed in function pointers.
(WebCore::CDMFactoryForKeySystem): Return the first CDM factory which supports the requested key system.
(WebCore::CDM::supportsKeySystem): Walk the installed CDMs and ask if the given key system is supported.
(WebCore::CDM::supportsKeySystemMIMETypeAndCodec): Ditto, with an additional MIME type and codec string.
(WebCore::CDM::create): Simple constructor wrapper.
(WebCore::CDM::CDM): Simple constructor; calls bestCDMForKeySystem() to create it's private implementation.
(WebCore::CDM::~CDM): Simple destructor.
(WebCore::CDM::createSession): Creates a new CDMSession.
* Modules/encryptedmedia/CDM.h: Added.
(WebCore::CDM::keySystem): Simple accessor for m_keySystem.
(WebCore::CDMSession::CDMSession): Simple constructor.
(WebCore::CDMSession::~CDMSession): Simple destructor.
* Modules/encryptedmedia/CDMPrivate.h: Added.
(WebCore::CDMPrivateInterface::CDMPrivateInterface): Simple constructor.
(WebCore::CDMPrivateInterface::~CDMPrivateInterface): Simple destructor.
The new classes, MediaKeyMessageEvent and MediaKeyNeededEvent, take distinct subsets of the initializers of
the original MediaKeyMessageEvent.
* Modules/encryptedmedia/MediaKeyMessageEvent.cpp: Copied from Source/WebCore/html/MediaKeyEvent.cpp.
(WebCore::MediaKeyMessageEventInit::MediaKeyMessageEventInit): Initializer now only takes message and destinationURL
parameters.
(WebCore::MediaKeyMessageEvent::MediaKeyMessageEvent): Simple constructor.
(WebCore::MediaKeyMessageEvent::~MediaKeyMessageEvent): Simple destructor.
(WebCore::MediaKeyMessageEvent::interfaceName): Standard interfaceName.
* Modules/encryptedmedia/MediaKeyMessageEvent.h: Copied from Source/WebCore/html/MediaKeyEvent.h.
(WebCore::MediaKeyMessageEvent::create): Simple construction wrapper.
(WebCore::MediaKeyMessageEvent::message): Simple accessor for m_message.
(WebCore::MediaKeyMessageEvent::destinationURL): Simple accessor for m_destinationURL.
* Modules/encryptedmedia/MediaKeyMessageEvent.idl: Copied from Source/WebCore/html/MediaKeyEvent.idl.
* Modules/encryptedmedia/MediaKeyNeededEvent.cpp: Copied from Source/WebCore/html/MediaKeyEvent.h.
(WebCore::MediaKeyNeededEventInit::MediaKeyNeededEventInit): Initializer now only takes initData parameter.
(WebCore::MediaKeyNeededEvent::MediaKeyNeededEvent): Simple constructor.
(WebCore::MediaKeyNeededEvent::~MediaKeyNeededEvent): Simple destructor.
(WebCore::MediaKeyNeededEvent::interfaceName): Standard interfaceName.
* Modules/encryptedmedia/MediaKeyNeededEvent.h: Copied from Source/WebCore/html/MediaKeyEvent.h.
(WebCore::MediaKeyNeededEvent::create): Simple construction wrapper.
(WebCore::MediaKeyNeededEvent::initData): Simple accessor for m_initData.
* Modules/encryptedmedia/MediaKeyNeededEvent.idl: Copied from Source/WebCore/html/MediaKeyEvent.idl.
MediaKeySession is a new class that maps keys and key requests to a given session ID:
* Modules/encryptedmedia/MediaKeySession.cpp: Added.
(WebCore::MediaKeySession::create): Simple construction wrapper.
(WebCore::MediaKeySession::MediaKeySession): Simple constructor.
(WebCore::MediaKeySession::~MediaKeySession): Simple destructor; calls close().
(WebCore::MediaKeySession::setError): Simple setter for m_error;
(WebCore::MediaKeySession::close): Tell the CDM to clear any saved session keys.
(WebCore::MediaKeySession::generateKeyRequest): Start a one-shot timer, handled in keyRequestTimerFired.
(WebCore::MediaKeySession::keyRequestTimerFired): Follow the steps in the spec; ask the CDM to generate a key request.
(WebCore::MediaKeySession::addKey): Start a one-shot timer, handled in addKeyTimerFired.
(WebCore::MediaKeySession::addKeyTimerFired): Follow the steps in the spec; provide the key data to the CDM.
* Modules/encryptedmedia/MediaKeySession.h: Added.
(WebCore::MediaKeySession::keySystem): Simple accessor for m_keySystem.
(WebCore::MediaKeySession::sessionId): Simple accessor for m_sessionId.
(WebCore::MediaKeySession::error): Simple accessor for m_error;
* Modules/encryptedmedia/MediaKeySession.idl:
MediaKeySession inherits from EventTarget, and must override the pure virtual functions in that class:
* Modules/encryptedmedia/MediaKeySession.cpp: Added.
(WebCore::MediaKeySession::interfaceName):
* Modules/encryptedmedia/MediaKeySession.h: Added.
(WebCore::MediaKeySession::refEventTarget):
(WebCore::MediaKeySession::derefEventTarget):
(WebCore::MediaKeySession::eventTargetData):
(WebCore::MediaKeySession::ensureEventTargetData):
(WebCore::MediaKeySession::scriptExecutionContext):
MediaKeys is a new class that encapsulates a CDM and a number of key sessions:
* Modules/encryptedmedia/MediaKeys.cpp: Added.
(WebCore::MediaKeys::create): Throw an exception if the key system parameter is unsupported; create a CDM object
and a new MediaKeys session.
(WebCore::MediaKeys::MediaKeys): Simple constructor.
(WebCore::MediaKeys::~MediaKeys): Simple destructor.
(WebCore::MediaKeys::createSession): Follow the spec and create a new key session.
* Modules/encryptedmedia/MediaKeys.h: Added.
* Modules/encryptedmedia/MediaKeys.idl: Copied from Source/WebCore/html/MediaError.idl.
Provide a new interface to HTMLMediaElement for MediaPlayer which does not require a sessionId or a key system:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::keyNeeded):
MediaKeyError now has a systemCode parameter and member variable.
* html/MediaKeyError.h:
(WebCore::MediaKeyError::create): Take a systemCode parameter with a default (0) value.
(WebCore::MediaKeyError::MediaKeyError): Ditto.
(WebCore::MediaKeyError::systemCode): Simple accessor for m_systemCode.
* html/MediaKeyError.idl:
Add new methods to HTMLMediaElement to support MediaKeys. Support different initializer
for the MediaKeyNeededEvent.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setMediaKeys): Simple setter for m_mediaKeys.
(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): This version takes fewer parameters
than the deprecated version.
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::mediaKeys): Simple accessor for m_mediaKeys.
* html/HTMLMediaElement.idl: Add the mediaKeys attribute.
Add an ENABLE(ENCRYPTED_MEDIA_V2) check to the existing ENABLE(ENCRYPTED_MEDIA) one:
* html/MediaError.h:
* html/MediaError.idl:
* platform/graphics/MediaPlayer.cpp:
(WebCore::bestMediaEngineForTypeAndCodecs):
(WebCore::MediaPlayer::supportsType):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayer::keyNeeded): This version takes fewer parameters than the
deprecated version.
Support the new version of canPlayType which takes an extra parameter:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):
(WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType):
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::registerMediaEngine):
(WebCore::MediaPlayerPrivateQTKit::extendedSupportsType):
Add a mock CDM for use within DRT and WKTR to test the MediaKeys and MediaKeySession
APIs and events:
* testing/Internals.cpp:
(WebCore::Internals::initializeMockCDM): Add the MockCDM class to the CDM factories.
* testing/Internals.h:
* testing/Internals.idl: Add the initializeMockCDM() method.
* testing/MockCDM.cpp: Added.
(WebCore::MockCDM::supportsKeySystem): Only supports the 'com.webcore.mock' key system.
(WebCore::MockCDM::supportsMIMEType): Only supports the 'video/mock' mime type.
(WebCore::initDataPrefix): Static method which returns a Uint8Array containing 'mock'.
(WebCore::keyPrefix): Static method which returns a Uint8Array containing 'key'.
(WebCore::keyRequest): Static method which returns a Uint8Array containing 'request'.
(WebCore::generateSessionId): Return a monotonically increasing number.
(WebCore::MockCDMSession::MockCDMSession): Simple constructor.
(WebCore::MockCDMSession::generateKeyRequest): Ignores the parameters and returns a keyRequest() array.
(WebCore::MockCDMSession::releaseKeys): No-op.
(WebCore::MockCDMSession::addKey): Checks that the key starts with the keyPrefix() array.
* testing/MockCDM.h: Added.
(WebCore::MockCDM::create):
(WebCore::MockCDM::~MockCDM): Simple destructor.
(WebCore::MockCDM::MockCDM): Simple constructor.
Add the new classes to the built system:
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.make:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
Miscelaneous changes:
* dom/EventNames.in: Add the two new event types, MediaKeyMessageEvent and MediaKeyNeededEvent.
* dom/EventTargetFactory.in: Add the new EventTarget, MediaKeySession.
* page/DOMWindow.idl: Add constructors for the new classes to the window object.
2013-02-08 Chris Fleizach <cfleizach@apple.com>
Refactor platform-specific code in SpeechSynthesis
https://bugs.webkit.org/show_bug.cgi?id=107414
Reviewed by Sam Weinig.
Refactor WebSpeech code to use a platform mechanism to provide access to platform resources.
* Modules/speech/DOMWindowSpeechSynthesis.cpp:
(WebCore::DOMWindowSpeechSynthesis::from):
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::SpeechSynthesis):
(WebCore):
(WebCore::SpeechSynthesis::voicesDidChange):
(WebCore::SpeechSynthesis::getVoices):
(WebCore::SpeechSynthesis::pending):
(WebCore::SpeechSynthesis::speaking):
(WebCore::SpeechSynthesis::paused):
(WebCore::SpeechSynthesis::speak):
(WebCore::SpeechSynthesis::cancel):
(WebCore::SpeechSynthesis::pause):
(WebCore::SpeechSynthesis::resume):
* Modules/speech/SpeechSynthesis.h:
(WebCore):
(SpeechSynthesis):
(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didFinishSpeaking):
(WebCore::SpeechSynthesis::speakingErrorOccurred):
* Modules/speech/SpeechSynthesisUtterance.cpp:
(WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
* Modules/speech/SpeechSynthesisUtterance.h:
(WebCore::SpeechSynthesisUtterance::text):
(WebCore::SpeechSynthesisUtterance::setText):
(WebCore::SpeechSynthesisUtterance::lang):
(WebCore::SpeechSynthesisUtterance::setLang):
(WebCore::SpeechSynthesisUtterance::voiceURI):
(WebCore::SpeechSynthesisUtterance::setVoiceURI):
(WebCore::SpeechSynthesisUtterance::volume):
(WebCore::SpeechSynthesisUtterance::setVolume):
(WebCore::SpeechSynthesisUtterance::rate):
(WebCore::SpeechSynthesisUtterance::setRate):
(WebCore::SpeechSynthesisUtterance::pitch):
(WebCore::SpeechSynthesisUtterance::setPitch):
(SpeechSynthesisUtterance):
(WebCore::SpeechSynthesisUtterance::platformUtterance):
* Modules/speech/SpeechSynthesisVoice.cpp:
(WebCore::SpeechSynthesisVoice::create):
(WebCore::SpeechSynthesisVoice::SpeechSynthesisVoice):
* Modules/speech/SpeechSynthesisVoice.h:
(SpeechSynthesisVoice):
(WebCore::SpeechSynthesisVoice::voiceURI):
(WebCore::SpeechSynthesisVoice::name):
(WebCore::SpeechSynthesisVoice::lang):
(WebCore::SpeechSynthesisVoice::localService):
(WebCore::SpeechSynthesisVoice::isDefault):
* Modules/speech/mac/SpeechSynthesisMac.mm:
* WebCore.xcodeproj/project.pbxproj:
* platform/PlatformSpeechSynthesis.h: Added.
(WebCore):
(PlatformSpeechSynthesis):
* platform/PlatformSpeechSynthesisUtterance.cpp: Added.
(WebCore):
(WebCore::PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance):
* platform/PlatformSpeechSynthesisUtterance.h: Added.
(WebCore):
(PlatformSpeechSynthesisUtteranceClient):
(WebCore::PlatformSpeechSynthesisUtteranceClient::~PlatformSpeechSynthesisUtteranceClient):
(PlatformSpeechSynthesisUtterance):
(WebCore::PlatformSpeechSynthesisUtterance::text):
(WebCore::PlatformSpeechSynthesisUtterance::setText):
(WebCore::PlatformSpeechSynthesisUtterance::lang):
(WebCore::PlatformSpeechSynthesisUtterance::setLang):
(WebCore::PlatformSpeechSynthesisUtterance::voiceURI):
(WebCore::PlatformSpeechSynthesisUtterance::setVoiceURI):
(WebCore::PlatformSpeechSynthesisUtterance::volume):
(WebCore::PlatformSpeechSynthesisUtterance::setVolume):
(WebCore::PlatformSpeechSynthesisUtterance::rate):
(WebCore::PlatformSpeechSynthesisUtterance::setRate):
(WebCore::PlatformSpeechSynthesisUtterance::pitch):
(WebCore::PlatformSpeechSynthesisUtterance::setPitch):
* platform/PlatformSpeechSynthesisVoice.cpp: Added.
(WebCore):
(WebCore::PlatformSpeechSynthesisVoice::create):
(WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
* platform/PlatformSpeechSynthesisVoice.h: Added.
(WebCore):
(PlatformSpeechSynthesisVoice):
(WebCore::PlatformSpeechSynthesisVoice::voiceURI):
(WebCore::PlatformSpeechSynthesisVoice::name):
(WebCore::PlatformSpeechSynthesisVoice::lang):
(WebCore::PlatformSpeechSynthesisVoice::localService):
(WebCore::PlatformSpeechSynthesisVoice::isDefault):
* platform/PlatformSpeechSynthesizer.cpp: Added.
(WebCore):
(WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
* platform/PlatformSpeechSynthesizer.h: Added.
(WebCore):
(PlatformSpeechSynthesizerClient):
(WebCore::PlatformSpeechSynthesizerClient::~PlatformSpeechSynthesizerClient):
(PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::voiceList):
* platform/mac/PlatformSpeechSynthesisMac.mm: Added.
(WebCore):
(WebCore::PlatformSpeechSynthesis::create):
(WebCore::PlatformSpeechSynthesis::PlatformSpeechSynthesis):
(WebCore::PlatformSpeechSynthesis::platformSpeak):
* platform/mac/PlatformSpeechSynthesizerMac.mm: Added.
(WebCore):
(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
(WebCore::PlatformSpeechSynthesizer::speak):
2013-02-08 Dean Jackson <dino@apple.com>
Put snapshotting label text into localizable strings
https://bugs.webkit.org/show_bug.cgi?id=108268
Reviewed by Simon Fraser.
In preparation for a snapshotted plug-in using a ShadowRoot, allow
its label to be localized.
* English.lproj/Localizable.strings:
* platform/LocalizedStrings.cpp:
(WebCore::snapshottedPlugInLabelTitle): New method for returning title.
(WebCore::snapshottedPlugInLabelSubtitle): New method for returning subtitle.
* platform/LocalizedStrings.h:
2013-02-08 Dean Jackson <dino@apple.com>
Do not register autostart for plugins from file:// (or nowhere)
https://bugs.webkit.org/show_bug.cgi?id=108271
Reviewed by Tim Horton.
If the page url origin is treated as a local URL, don't attempt
to add it to the auto-start list.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot):
2013-02-08 Adam Barth <abarth@webkit.org>
Use WeakPtrs to communicate between the HTMLDocumentParser and the BackgroundHTMLParser
https://bugs.webkit.org/show_bug.cgi?id=107190
Reviewed by Eric Seidel.
This patch replaces the parser map with WeakPtr. We now use WeakPtrs to
communicate from the main thread to the background thread. (We were
already using WeakPtrs to communicate from the background thread to the
main thread.) This change lets us remove a bunch of boilerplate code.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::stop):
(WebCore):
* html/parser/BackgroundHTMLParser.h:
(WebCore::BackgroundHTMLParser::create):
(BackgroundHTMLParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didFailSpeculation):
(WebCore::HTMLDocumentParser::startBackgroundParser):
(WebCore::HTMLDocumentParser::stopBackgroundParser):
(WebCore::HTMLDocumentParser::append):
(WebCore::HTMLDocumentParser::finish):
* html/parser/HTMLDocumentParser.h:
(WebCore):
(HTMLDocumentParser):
2013-02-07 Roger Fong <roger_fong@apple.com>
VS2010 WebCore TestSupport project.
https://bugs.webkit.org/show_bug.cgi?id=107034.
Reviewed by Brent Fulgham.
* WebCore.vcxproj/WebCoreTestSupport.vcxproj: Added.
* WebCore.vcxproj/WebCoreTestSupport.vcxproj.filters: Added.
2013-02-08 ChangSeok Oh <shivamidow@gmail.com>
[GTK][AC] GraphicsLayerActor code clean up after clutter version up.
https://bugs.webkit.org/show_bug.cgi?id=109304
Reviewed by Gustavo Noronha Silva.
This patch cleans up GraphicsLayerActor functions by using new clutter apis
and makes existing functions simple & readable.
No new tests since no change in functionality
* platform/graphics/clutter/GraphicsLayerActor.cpp:
(_GraphicsLayerActorPrivate):
(graphicsLayerActorApplyTransform):
(graphicsLayerActorPaint):
(graphicsLayerActorDraw):
(graphicsLayerActorUpdateTexture):
(drawLayerContents):
(graphicsLayerActorNew):
(graphicsLayerActorInvalidateRectangle):
(graphicsLayerActorSetTransform):
(graphicsLayerActorSetAnchorPoint):
(graphicsLayerActorGetAnchorPoint):
(graphicsLayerActorSetScrollPosition):
* platform/graphics/clutter/PlatformClutterAnimation.h:
2013-02-08 Harald Alvestrand <hta@google.com>
Fix and test for missing return statement
RTCPeerConnection.getStats() failed when remote stats were instantiated.
https://bugs.webkit.org/show_bug.cgi?id=109292
Reviewed by Adam Barth.
Tested by extending the existing mock's behaviour.
* Modules/mediastream/RTCStatsReport.cpp:
(WebCore::RTCStatsReport::addElement):
2013-02-08 Anton Vayvod <avayvod@chromium.org>
[Text Autosizing] Split isAutosizingCluster into three independent checks
https://bugs.webkit.org/show_bug.cgi?id=109093
Refactoring to create more flexible version of isAutosizingCluster since there're more types
of autosizing cluster now: narrower than the parent cluster, wider than the parent cluster
and the one that doesn't depend on the parent cluster.
Reviewed by Kenneth Rohde Christiansen.
Refactoring, no test changes.
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::isNarrowDescendant):
Separate check for the container to be of the narrow-descendant type. Was a part of
isAutosizingCluster().
(WebCore::TextAutosizer::isWiderDescendant):
Separate check for the container to be of the wider-descendant type. Was a part of
isAutosizingCluster().
(WebCore::TextAutosizer::isIndependentDescendant):
Separate check for the container to be autosized separately from the ancestor cluster.
Checks for conditions independent of the aforementioned cluster.
(WebCore::TextAutosizer::isAutosizingCluster):
Handy method to check all separate conditions together.
(WebCore::TextAutosizer::processSubtree):
(WebCore::TextAutosizer::processCluster):
(WebCore::TextAutosizer::processContainer):
(WebCore::TextAutosizer::clusterShouldBeAutosized):
(WebCore::TextAutosizer::measureDescendantTextWidth):
(WebCore::TextAutosizer::findFirstTextLeafNotInCluster):
The methods above were updated to use new functions/arguments.
* rendering/TextAutosizer.h:
Updated/added method definitions.
2013-02-08 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Extension sever should use Workspace.projectForType() instead of Workspace.project()
https://bugs.webkit.org/show_bug.cgi?id=109301
Reviewed by Alexander Pavlov.
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype._onGetPageResources):
2013-02-04 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: simplify Memory.getDOMNodeCount implementation
https://bugs.webkit.org/show_bug.cgi?id=108821
Reviewed by Alexander Pavlov.
Removed Memory.getDOMNodeCount command from the protocol. Memory.getDOMCounters
should be used instead.
* inspector/Inspector.json:
* inspector/InspectorMemoryAgent.cpp:
* inspector/InspectorMemoryAgent.h:
(InspectorMemoryAgent):
2013-02-08 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: refactor MemoryStatistics.js
https://bugs.webkit.org/show_bug.cgi?id=109299
Reviewed by Vsevolod Vlasov.
Extracted functionality specific to DOM counter graphs drawing into
separate methods on MemoryStatistics class.
Introduced CounterUIBase base class for DOMCounterUI that contains
functionality which can be shared with native memory graph.
* inspector/front-end/MemoryStatistics.js:
(WebInspector.MemoryStatistics):
(WebInspector.CounterUIBase):
(WebInspector.CounterUIBase.prototype.updateCurrentValue):
(WebInspector.CounterUIBase.prototype.clearCurrentValueAndMarker):
(WebInspector.CounterUIBase.prototype.get visible):
(WebInspector.DOMCounterUI):
(WebInspector.DOMCounterUI.prototype.discardImageUnderMarker):
(WebInspector.MemoryStatistics.prototype._onMouseOut):
(WebInspector.MemoryStatistics.prototype._clearCurrentValueAndMarker):
(WebInspector.MemoryStatistics.prototype._refreshCurrentValues):
(WebInspector.MemoryStatistics.prototype._updateCurrentValue):
(WebInspector.MemoryStatistics.prototype._highlightCurrentPositionOnGraphs):
(WebInspector.MemoryStatistics.prototype._restoreImageUnderMarker):
(WebInspector.MemoryStatistics.prototype._saveImageUnderMarker):
(WebInspector.MemoryStatistics.prototype._drawMarker):
(WebInspector.MemoryStatistics.prototype._clear):
(WebInspector.MemoryStatistics.prototype._discardImageUnderMarker):
2013-02-08 Mike West <mkwst@chromium.org>
Add a new IGNORE_EXCEPTION helper to ignore ExceptionCodes when they are expected but uninteresting
https://bugs.webkit.org/show_bug.cgi?id=108771
Reviewed by Eric Seidel.
In cases where the ExceptionCode passed into a function is completely
ignored, this patch replaces it with a new IGNORE_EXCEPTION macro. This
makes our expectations about possible exceptions (or lack thereof)
explicit, rather than relying on implicit assumptions about whether a
variable is intentionally uninitialized or not. It also removes
knowledge about the internals of ExceptionCodes (that they're currently
ints, for instance) from code that shouldn't care, which will help with
future refactorings.
The implementation is entirely based upon ASSERT_NO_EXCEPTION, and
shouldn't have any visible effect on the web. As long as all the
current tests pass, we're good.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::dispatchEvent):
(WebCore::IDBRequest::uncaughtExceptionInEventHandler):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::stop):
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::processBuffer):
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
* dom/ExceptionCodePlaceholder.h:
(WebCore):
* dom/Node.cpp:
(WebCore::Node::normalize):
* dom/Text.cpp:
(WebCore::Text::replaceWholeText):
* editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::insertDictatedText):
* editing/AppendNodeCommand.cpp:
(WebCore::AppendNodeCommand::doApply):
(WebCore::AppendNodeCommand::doUnapply):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt):
* editing/DeleteFromTextNodeCommand.cpp:
(WebCore::DeleteFromTextNodeCommand::doUnapply):
* editing/Editor.cpp:
(WebCore::dispatchEditableContentChangedEvents):
(WebCore::Editor::applyEditingStyleToElement):
* editing/EditorCommand.cpp:
(WebCore::executeFormatBlock):
* editing/FormatBlockCommand.cpp:
(WebCore::FormatBlockCommand::elementForFormatBlockCommand):
* editing/InsertIntoTextNodeCommand.cpp:
(WebCore::InsertIntoTextNodeCommand::doApply):
(WebCore::InsertIntoTextNodeCommand::doUnapply):
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApplyForSingleParagraph):
* editing/InsertNodeBeforeCommand.cpp:
(WebCore::InsertNodeBeforeCommand::doApply):
(WebCore::InsertNodeBeforeCommand::doUnapply):
* editing/RemoveCSSPropertyCommand.cpp:
(WebCore::RemoveCSSPropertyCommand::doApply):
(WebCore::RemoveCSSPropertyCommand::doUnapply):
* editing/RemoveNodeCommand.cpp:
(WebCore::RemoveNodeCommand::doApply):
(WebCore::RemoveNodeCommand::doUnapply):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
* editing/TextIterator.cpp:
(WebCore::TextIterator::getLocationAndLengthFromRange):
* editing/WrapContentsInDummySpanCommand.cpp:
(WebCore::WrapContentsInDummySpanCommand::executeApply):
(WebCore::WrapContentsInDummySpanCommand::doUnapply):
* editing/htmlediting.cpp:
(WebCore::comparePositions):
* editing/markup.cpp:
(WebCore::highestAncestorToWrapMarkup):
* html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::appendEntry):
(WebCore::FTPDirectoryDocumentParser::createTDForFilename):
(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
(WebCore::FTPDirectoryDocumentParser::createBasicDocument):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::rewind):
(WebCore::HTMLMediaElement::returnToRealtime):
(WebCore::HTMLMediaElement::playInternal):
(WebCore::HTMLMediaElement::percentLoaded):
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
(WebCore::HTMLMediaElement::mediaPlayerDurationChanged):
(WebCore::HTMLMediaElement::applyMediaFragmentURI):
* html/HTMLOutputElement.cpp:
(WebCore::HTMLOutputElement::setTextContentInternal):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::remove):
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::createTHead):
(WebCore::HTMLTableElement::deleteTHead):
(WebCore::HTMLTableElement::createTFoot):
(WebCore::HTMLTableElement::deleteTFoot):
(WebCore::HTMLTableElement::createCaption):
(WebCore::HTMLTableElement::deleteCaption):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::setDefaultValue):
* html/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure):
* html/InputType.cpp:
(WebCore::InputType::stepUpFromRenderer):
* html/MediaController.cpp:
(MediaController::bringElementUpToSpeed):
(MediaController::asyncEventTimerFired):
* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
(WebCore::MediaDocument::replaceMediaElementTimerFired):
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::handleKeydownEvent):
* html/TimeRanges.cpp:
(TimeRanges::contain):
(TimeRanges::nearest):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImageFromRect):
* html/shadow/MediaControlElementTypes.cpp:
(WebCore::MediaControlSeekButtonElement::seekTimerFired):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlPanelElement::setPosition):
(WebCore::MediaControlPanelElement::resetPosition):
(WebCore::MediaControlStatusDisplayElement::update):
(WebCore::MediaControlRewindButtonElement::defaultEventHandler):
(WebCore::MediaControlTimelineElement::defaultEventHandler):
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::updateCurrentTimeDisplay):
(WebCore::MediaControls::createTextTrackDisplay):
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::updateCurrentTimeDisplay):
* html/shadow/MediaControlsBlackBerry.cpp:
(WebCore::MediaControlEmbeddedPanelElement::setPosition):
(WebCore::MediaControlEmbeddedPanelElement::resetPosition):
(WebCore::MediaControlFullscreenTimelineElement::defaultEventHandler):
(WebCore::MediaControlsBlackBerry::updateCurrentTimeDisplay):
* html/shadow/MediaControlsChromium.cpp:
(WebCore::MediaControlsChromium::updateCurrentTimeDisplay):
* html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::addGenericCue):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
* inspector/InspectorHistory.cpp:
(WebCore::InspectorHistory::markUndoableState):
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::replayXHR):
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
* page/DOMWindow.cpp:
(WebCore::didAddStorageEventListener):
* page/DragController.cpp:
(WebCore::documentFragmentFromDragData):
* page/EventHandler.cpp:
(WebCore::EventHandler::dispatchDragEvent):
(WebCore::EventHandler::keyEvent):
(WebCore::EventHandler::handleTextInputEvent):
* page/Page.cpp:
(WebCore::Page::findStringMatchingRanges):
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::paintMediaSliderTrack):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::percentLoaded):
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::paintMediaSliderTrack):
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::getDataSelection):
(WebCore::documentFragmentWithImageResource):
(WebCore::Pasteboard::documentFragment):
* platform/mac/WebVideoFullscreenHUDWindowController.mm:
(-[WebVideoFullscreenHUDWindowController setCurrentTime:]):
(-[WebVideoFullscreenHUDWindowController setVolume:]):
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::paintMediaSliderTrack):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::getRanges):
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintMediaSliderTrack):
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::detachTarget):
* xml/XMLTreeViewer.cpp:
(WebCore::XMLTreeViewer::transformDocumentToTreeView):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::endElementNs):
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::parseEndElement):
2013-02-08 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Introduce workspace provider/project type, encapsulate uri creation in SimpleWorkspaceProvider.
https://bugs.webkit.org/show_bug.cgi?id=109282
Reviewed by Alexander Pavlov.
SimpleWorkspaceProvider now fully takes care of creating uri based on project/workspace provider type.
This is the first step on the way to project-per-domain mode for non file system project types.
Workspace is now partly aware of the possibility that several projects with the same type exist.
Drive-by: ScriptsPanel now uses FileMapping to show anchor location properly.
* inspector/front-end/DefaultScriptMapping.js:
(WebInspector.DefaultScriptMapping):
(WebInspector.DefaultScriptMapping.prototype.addScript):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype._onGetPageResources):
* inspector/front-end/FileMapping.js:
(WebInspector.FileMapping.prototype.uriForURL):
* inspector/front-end/FileSystemWorkspaceProvider.js:
(WebInspector.FileSystemWorkspaceProvider.prototype.type):
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
* inspector/front-end/LiveEditSupport.js:
(WebInspector.LiveEditSupport):
(WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.ScriptSnippetModel):
(WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
* inspector/front-end/ScriptsNavigator.js:
(WebInspector.ScriptsNavigator.prototype._navigatorViewForUISourceCode):
(WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
(WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
(WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._addUISourceCode):
(WebInspector.ScriptsPanel.prototype._projectWillReset):
(WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
(WebInspector.ScriptsPanel.prototype._createSourceFrame):
(WebInspector.ScriptsPanel.prototype.set _fileRenamed):
* inspector/front-end/SimpleWorkspaceProvider.js:
(WebInspector.SimpleWorkspaceProvider):
(WebInspector.SimpleWorkspaceProvider.uriForURL):
(WebInspector.SimpleWorkspaceProvider.prototype.type):
(WebInspector.SimpleWorkspaceProvider.prototype.addFileForURL):
(WebInspector.SimpleWorkspaceProvider.prototype.addUniqueFileForURL):
(WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
(WebInspector.SimpleWorkspaceProvider.prototype._uniqueURI):
* inspector/front-end/Workspace.js:
(WebInspector.WorkspaceProvider.prototype.type):
(WebInspector.Project.prototype.type):
(WebInspector.Project.prototype.isServiceProject):
(WebInspector.Workspace.prototype.uiSourceCodeForOriginURL):
(WebInspector.Workspace.prototype.uiSourceCodesForProjectType):
(WebInspector.Workspace.prototype.projectsForType):
* inspector/front-end/inspector.js:
2013-02-08 ChangSeok Oh <shivamidow@gmail.com>
[GTK][AC] GraphicsLayerClutter doesn't need to recalculate its position after changing anchor position.
https://bugs.webkit.org/show_bug.cgi?id=109226
Reviewed by Gustavo Noronha Silva.
Clutter has a different coordinate system from mac port's, so we don't need to
recalulate GraphicsLayer position after changing its anchor position.
Covered by existing ac tests.
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::GraphicsLayerClutter::updateGeometry):
2013-02-08 Mike West <mkwst@chromium.org>
Migrate ExceptionCode ASSERTs in IDB to ASSERT_NO_EXCEPTION.
https://bugs.webkit.org/show_bug.cgi?id=109266
Reviewed by Jochen Eisinger.
The pattern:
ExceptionCode ec = 0;
methodThatGeneratesException(ec);
ASSERT(!ec);
is more clearly and succinctly written as:
methodThatGeneratesException(ASSERT_NO_EXCEPTION);
This patch replaces the occurances of the former in IDB code that never
touch 'ec' again with the latter. No change in behavior should result
from this refactoring.
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::advance):
(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::deleteFunction):
These methods checked the value of the ExceptionCode without first
initializing it to 0. Now the ExceptionCode is explicitly set to 0
before doing potentially exception-generating work.
(WebCore::IDBCursor::direction):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::mode):
Replace the above pattern with ASSERT_NO_EXCEPTION.
2013-02-08 Mike West <mkwst@chromium.org>
Migrate ExceptionCode ASSERTs in SVG to ASSERT_NO_EXCEPTION.
https://bugs.webkit.org/show_bug.cgi?id=109267
Reviewed by Jochen Eisinger.
The pattern:
ExceptionCode ec = 0;
methodThatGeneratesException(ec);
ASSERT(!ec);
is more clearly and succinctly written as:
methodThatGeneratesException(ASSERT_NO_EXCEPTION);
This patch replaces the occurances of the former in SVG code that never
touch 'ec' again with the latter. No change in behavior should result
from this refactoring.
* svg/SVGLength.cpp:
(WebCore::SVGLength::SVGLength):
(WebCore::SVGLength::setValue):
This method checked the value of the ExceptionCode without first
initializing it to 0. Now it initializes before doing potentially
exception-generating work.
* rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::initialBaselineShiftValue):
(WebCore::SVGRenderStyle::initialKerning):
(WebCore::SVGRenderStyle::initialStrokeDashOffset):
(WebCore::SVGRenderStyle::initialStrokeWidth):
* svg/SVGAnimatedLength.cpp:
(WebCore::sharedSVGLength):
(WebCore::SVGAnimatedLengthAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
* svg/SVGAnimatedLengthList.cpp:
(WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::textLengthAnimated):
* svg/animation/SVGSMILElement.cpp:
(WebCore::constructQualifiedName):
Replace the above pattern with ASSERT_NO_EXCEPTION.
2013-02-08 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Replace workspace with project in UISourceCode constructor.
https://bugs.webkit.org/show_bug.cgi?id=109256
Reviewed by Alexander Pavlov.
Replaced workspace with project in UISourceCode constructor since every UISourceCode
operation is delegated to project anyway.
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode):
(WebInspector.UISourceCode.prototype.project):
(WebInspector.UISourceCode.prototype.requestContent):
(WebInspector.UISourceCode.prototype.requestOriginalContent):
(WebInspector.UISourceCode.prototype._commitContent):
(WebInspector.UISourceCode.prototype.searchInContent):
* inspector/front-end/Workspace.js:
(WebInspector.Project.prototype._fileAdded):
(WebInspector.Project.prototype.requestFileContent):
(WebInspector.Project.prototype.setFileContent):
(WebInspector.Project.prototype.searchInFileContent):
2013-02-08 Patrick Gansterer <paroga@webkit.org>
Build fix for Windows after r141981.
* platform/network/win/ResourceHandleWin.cpp:
(WebCore::ResourceHandle::loadResourceSynchronously):
2013-02-08 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r141695 and r141697.
http://trac.webkit.org/changeset/141695
http://trac.webkit.org/changeset/141697
https://bugs.webkit.org/show_bug.cgi?id=109279
broke on-disk buffering for http(s) media (Requested by philn
on #webkit).
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::load):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(MediaPlayerPrivateGStreamer):
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcGetProtocols):
(webKitWebSrcSetUri):
2013-02-08 Dan Carney <dcarney@google.com>
[v8] isolate parameter added to all v8::peristent calls
https://bugs.webkit.org/show_bug.cgi?id=109268
Reviewed by Kentaro Hara.
No new tests. No change in functionality.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateDomainSafeFunctionGetter):
(GenerateNamedConstructorCallback):
(GenerateImplementation):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::V8Float64Array::GetRawTemplate):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
(WebCore::V8TestActiveDOMObject::GetRawTemplate):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::GetRawTemplate):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::GetRawTemplate):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::V8TestEventTarget::GetRawTemplate):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::GetRawTemplate):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::V8TestInterface::GetRawTemplate):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::GetRawTemplate):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructor::GetTemplate):
(WebCore::V8TestNamedConstructor::GetRawTemplate):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::GetRawTemplate):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::V8TestObj::GetRawTemplate):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::GetRawTemplate):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
* bindings/v8/DOMWrapperMap.h:
(WebCore::DOMWrapperMap::clear):
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore::isolatedWorldWeakCallback):
(WebCore::DOMWrapperWorld::makeContextWeak):
* bindings/v8/NPV8Object.cpp:
(WebCore::freeV8NPObject):
(WebCore::npCreateV8ScriptObject):
* bindings/v8/ScheduledAction.cpp:
(WebCore::ScheduledAction::ScheduledAction):
(WebCore::ScheduledAction::~ScheduledAction):
* bindings/v8/ScopedPersistent.h:
(WebCore::ScopedPersistent::ScopedPersistent):
(WebCore::ScopedPersistent::set):
(WebCore::ScopedPersistent::clear):
* bindings/v8/ScriptWrappable.h:
(WebCore::ScriptWrappable::setWrapper):
(WebCore::ScriptWrappable::disposeWrapper):
(WebCore::ScriptWrappable::weakCallback):
* bindings/v8/V8Binding.cpp:
(WebCore::createRawTemplate):
* bindings/v8/V8Binding.h:
(WebCore):
* bindings/v8/V8GCController.cpp:
(WebCore::gcTree):
(WebCore::V8GCController::gcPrologue):
(WebCore::V8GCController::minorGCPrologue):
* bindings/v8/V8GCController.h:
(V8GCController):
* bindings/v8/V8HiddenPropertyName.cpp:
(WebCore::V8HiddenPropertyName::createString):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::prepareListenerObject):
* bindings/v8/V8NPObject.cpp:
(WebCore::V8NPTemplateMap::dispose):
(WebCore::npObjectGetProperty):
(WebCore::createV8ObjectForNPObject):
* bindings/v8/V8PerContextData.cpp:
(WebCore::V8PerContextData::dispose):
(WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
(WebCore::V8PerContextData::constructorForTypeSlowCase):
* bindings/v8/V8ValueCache.cpp:
(WebCore::makeExternalString):
* bindings/v8/WrapperTypeInfo.h:
(WebCore::WrapperConfiguration::configureWrapper):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::wrapInShadowObject):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::V8HTMLImageElementConstructor::GetTemplate):
* bindings/v8/custom/V8InjectedScriptManager.cpp:
(WebCore::WeakReferenceCallback):
(WebCore::createInjectedScriptHostV8Wrapper):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::reloadAccessorGetter):
(WebCore::V8Location::replaceAccessorGetter):
(WebCore::V8Location::assignAccessorGetter):
2013-02-08 Kent Tamura <tkent@chromium.org>
Adjust usage of ENABLE flags to enable whole content
https://bugs.webkit.org/show_bug.cgi?id=109270
Reviewed by Eric Seidel.
Our common usage of ENABLE flags to enable whole content of files is:
For .cpp files:
#include "config.h"
#if ENABLE(FOOBAR)
#include "FooBar.h"
For .h files:
#ifndef FooBar_h
#define FooBar_h
#if ENABLE(FOOBAR)
Fix files which have uncommon usage, and fix CodeGeneratorV8.pm so that
it generates the common pattern. Note that CodeGeneratorJS.pm already
generates code in this order.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeaderContentHeader):
(GenerateImplementationContentHeader):
* bindings/scripts/test/V8/V8TestCallback.cpp:
* bindings/scripts/test/V8/V8TestCallback.h:
* bindings/scripts/test/V8/V8TestInterface.cpp:
* bindings/scripts/test/V8/V8TestInterface.h:
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
* html/BaseMultipleFieldsDateAndTimeInputType.h:
* html/ColorInputType.cpp:
* html/ColorInputType.h:
* html/DateInputType.cpp:
* html/DateTimeInputType.cpp:
* html/DateTimeInputType.h:
* html/DateTimeLocalInputType.cpp:
* html/HTMLAudioElement.cpp:
* html/HTMLAudioElement.h:
* html/HTMLDataListElement.cpp:
* html/HTMLDialogElement.cpp:
* html/HTMLDialogElement.h:
* html/HTMLMediaElement.cpp:
* html/HTMLMediaElement.h:
* html/HTMLMeterElement.cpp:
* html/HTMLProgressElement.cpp:
* html/HTMLSourceElement.cpp:
* html/HTMLSourceElement.h:
* html/HTMLTrackElement.cpp:
* html/HTMLTrackElement.h:
* html/HTMLVideoElement.cpp:
* html/HTMLVideoElement.h:
* html/MonthInputType.cpp:
* html/TimeInputType.cpp:
* html/WeekInputType.cpp:
* html/shadow/DateTimeFieldElement.h:
* html/shadow/DetailsMarkerControl.cpp:
* html/shadow/MeterShadowElement.cpp:
* html/shadow/ProgressShadowElement.cpp:
* rendering/RenderDetailsMarker.cpp:
* rendering/RenderInputSpeech.cpp:
* rendering/RenderMeter.cpp:
* rendering/RenderProgress.cpp:
2013-02-08 Mike West <mkwst@chromium.org>
Replace ExceptionCode assertions with ASSERT_NO_EXCEPTION macro.
https://bugs.webkit.org/show_bug.cgi?id=109044
Reviewed by Darin Adler.
The pattern:
ExceptionCode ec = 0;
methodThatGeneratesException(ec);
ASSERT(!ec);
is more clearly and succinctly written as:
methodThatGeneratesException(ASSERT_NO_EXCEPTION);
This patch replaces the occurances of the former that never touch 'ec'
again with the latter. It does the same for 'ASSERT(ec == 0);' (and, as
a drive-by, replaces 'ASSERT(ec == 0)' with 'ASSERT(!ec)' in places
where it does indeed matter that 'ec' get set properly.
No change in behavior should result from this refactoring.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::takeAllChildrenFrom):
* dom/Document.cpp:
(WebCore::Document::setTitle):
* dom/MessagePort.cpp:
(WebCore::MessagePort::dispatchMessages):
(WebCore::MessagePort::disentanglePorts):
* editing/DeleteButtonController.cpp:
(WebCore::enclosingDeletableElement):
(WebCore::DeleteButtonController::createDeletionUI):
Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
(WebCore::DeleteButtonController::show):
Replaced 'ASSERT(ec == 0)' with 'ASSERT(!ec)' to match the style guide.
* editing/EditorCommand.cpp:
(WebCore::unionDOMRanges):
* editing/ReplaceNodeWithSpanCommand.cpp:
(WebCore::swapInNodePreservingAttributesAndChildren):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::ReplacementFragment):
(WebCore::ReplacementFragment::removeNode):
(WebCore::ReplacementFragment::insertNodeBefore):
(WebCore::ReplacementFragment::insertFragmentForTestRendering):
(WebCore::ReplacementFragment::restoreAndRemoveTestRenderingNodesToFragment):
(WebCore::ReplaceSelectionCommand::insertAsListItems):
* editing/SplitTextNodeCommand.cpp:
(WebCore::SplitTextNodeCommand::doUnapply):
* editing/TextIterator.cpp:
(WebCore::CharacterIterator::range):
(WebCore::BackwardsCharacterIterator::range):
(WebCore::TextIterator::rangeFromLocationAndLength):
(WebCore::collapsedToBoundary):
* editing/htmlediting.cpp:
(WebCore::createTabSpanElement):
* editing/mac/EditorMac.mm:
(WebCore::Editor::fontForSelection):
(WebCore::Editor::fontAttributesForSelectionStart):
* editing/markup.cpp:
(WebCore::createMarkup):
(WebCore::trimFragment):
(WebCore::createFragmentFromMarkupWithContext):
(WebCore::fillContainerFromString):
(WebCore::createFragmentFromText):
(WebCore::createFragmentFromNodes):
* html/ColorInputType.cpp:
(WebCore::ColorInputType::createShadowSubtree):
Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
* html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::add):
Replaced 'ASSERT(ec == 0)' with 'ASSERT(!ec)' to match the style guide.
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::updatePlaceholderText):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::indexForVisiblePosition):
(WebCore::HTMLTextFormControlElement::setInnerTextValue):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::updatePlaceholderText):
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::buildBubbleTree):
* html/shadow/MediaControlElementTypes.cpp:
(WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::getCookies):
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::addRule):
* loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::dispatchDOMEvent):
* page/DOMSelection.cpp:
(WebCore::DOMSelection::deleteFromDocument):
* page/DragController.cpp:
(WebCore::prepareClipboardForImageDrag):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::visiblePositionForIndex):
Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
2013-02-08 Alexei Filippov <alph@chromium.org>
Web Inspector: disable profile type switching while profile in progress
https://bugs.webkit.org/show_bug.cgi?id=109178
Reviewed by Yury Semikhatsky.
Disables profile type selection controls when a profiling session
is in progress.
* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
* inspector/front-end/ProfileLauncherView.js:
(WebInspector.ProfileLauncherView.prototype._updateControls):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel.prototype.toggleRecordButton):
2013-02-08 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: adjust chunk transfer size for better speed.
https://bugs.webkit.org/show_bug.cgi?id=109263
Reviewed by Yury Semikhatsky.
The chunk size is changed from 100 to 10000.
addString counts only first 256 symbols of the string.o
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::pushUpdateIfNeeded):
(WebCore::HeapGraphSerializer::addString):
* inspector/front-end/NativeMemorySnapshotView.js:
2013-02-08 Kentaro Hara <haraken@chromium.org>
Support a relatedTarget attribute on focus/blur events
https://bugs.webkit.org/show_bug.cgi?id=109176
Reviewed by Ojan Vafai.
In bug 76216, we supported a relatedTarget attribute on
focusin/focusout events. We should also support it on focus/blur events.
See http://lists.w3.org/Archives/Public/www-dom/2012OctDec/0061.html
for the www-dom discussion.
Test: fast/dom/shadow/shadow-boundary-events.html
fast/events/related-target-focusevent.html
* dom/EventDispatchMediator.cpp:
(WebCore::FocusEventDispatchMediator::create):
(WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
(WebCore::BlurEventDispatchMediator::create):
(WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
* dom/EventDispatchMediator.h:
(FocusEventDispatchMediator):
(BlurEventDispatchMediator):
* dom/Node.cpp:
(WebCore::Node::dispatchFocusInEvent):
(WebCore::Node::dispatchFocusOutEvent):
(WebCore::Node::dispatchFocusEvent):
(WebCore::Node::dispatchBlurEvent):
2013-02-07 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: reduce number of native memory instrumentation categories
https://bugs.webkit.org/show_bug.cgi?id=109146
Reviewed by Pavel Feldman.
Merged some of memory instrumentation categories.
* dom/WebCoreMemoryInstrumentation.cpp:
(WebCore):
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.MemoryBlockViewProperties._initialize):
* platform/PlatformMemoryInstrumentation.cpp:
(WebCore):
2013-02-07 Mike West <mkwst@chromium.org>
<iframe seamless> should avoid vertical scrollbars during the initial layout passes.
https://bugs.webkit.org/show_bug.cgi?id=87707
Reviewed by Eric Seidel.
Seamless documents currently render incorrectly when their content fills
the width of the container into which they're placed. Because FrameView
assumes that the container's size is properly set before the first pass
of layout, vertical scrollbars are incorrectly forced onto seamless
content, because seamless sets the container's height to 0 before
handing it off to FrameView for layout. The scrollbars make the
available width for the seamless document ~15px smaller than it should
be, resulting in content getting bumped to the next line.
This patch special-cases FrameView::calculateScrollbarModesForLayout in
order to force scrollbars off for seamless documents with a full visible
height of 0px. Once the layout pass has grabbed the content height and
applied it to the visible height, scrollbars will again be applicable.
The change should be covered by rebaselines for the newly-passing
results in fast/frame/seamless-{float,inline}.html
* page/FrameView.cpp:
(WebCore::FrameView::calculateScrollbarModesForLayout):
If we're rendering a seamless document, and the full visible height
is 0, and the vertical scrollbar would otherwise be ScrollbarAuto,
then force ScrollbarAlwaysOff.
2013-02-07 Kent Tamura <tkent@chromium.org>
document.activeElement should not return a non-focusable element
https://bugs.webkit.org/show_bug.cgi?id=86707
Reviewed by Hajime Morita.
This is based on a patch by Arpita Bahuguna.
Test: fast/dom/HTMLDocument/set-focus-on-valid-element.html
* dom/Document.cpp:
(WebCore::Document::setFocusedNode):
Added check for verifying that the node to be focused is
focusable. However, this check should be skipped for HTMLPlugInElement
because it has special behavior.
2013-02-07 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Fix front-end compilation warnings related to WebInspector.SidebarPane
https://bugs.webkit.org/show_bug.cgi?id=109259
Reviewed by Vsevolod Vlasov.
* inspector/front-end/DOMBreakpointsSidebarPane.js:
(WebInspector.DOMBreakpointsSidebarPane.Proxy):
* inspector/front-end/SidebarPane.js:
2013-02-07 Kentaro Hara <haraken@chromium.org>
[V8] enum V8HiddenPropertyCreationType is not used
https://bugs.webkit.org/show_bug.cgi?id=109250
Reviewed by Adam Barth.
V8HiddenPropertyCreationType is always NewSymbol. We can remove the enum.
No tests. No change in behavior.
* bindings/v8/V8HiddenPropertyName.cpp:
(WebCore::hiddenReferenceName):
* bindings/v8/V8HiddenPropertyName.h:
(WebCore):
2013-02-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r142212.
http://trac.webkit.org/changeset/142212
https://bugs.webkit.org/show_bug.cgi?id=109255
Causes ASSERT(!m_installed) on launch (Requested by smfr on
#webkit).
* WebCore.exp.in:
* platform/MemoryPressureHandler.cpp:
(WebCore):
(WebCore::MemoryPressureHandler::respondToMemoryPressure):
* platform/MemoryPressureHandler.h:
(MemoryPressureHandler):
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::respondToMemoryPressure):
2013-02-07 Hanyee Kim <choco@company100.net>
NamedFlowCollection should be a ContextDestructionObserver
https://bugs.webkit.org/show_bug.cgi?id=99239
Reviewed by Adam Barth
This patch removes the raw pointer of Document in NamedFlowCollection.
It could be replaced with ContextDestructionObserver.
ContextDestructionObserver has the pointer and clears the pointer
automatically when the document is destroyed.
* dom/Document.cpp:
(WebCore::Document::~Document):
* dom/NamedFlowCollection.cpp:
(WebCore::NamedFlowCollection::NamedFlowCollection):
(WebCore::NamedFlowCollection::ensureFlowWithName):
(WebCore::NamedFlowCollection::discardNamedFlow):
(WebCore::NamedFlowCollection::document):
(WebCore):
* dom/NamedFlowCollection.h:
(NamedFlowCollection):
2013-02-07 Dean Jackson <dino@apple.com>
Followup review suggestions from Alexey Proskuryakov on
https://bugs.webkit.org/show_bug.cgi?id=109215
Don't provide a charset on embedded SVG, especially
with incorrect syntax :)
* css/mediaControlsQuickTime.css:
(video::-webkit-media-controls-toggle-closed-captions-button):
(video::-webkit-media-controls-closed-captions-track-list li.selected):
(video::-webkit-media-controls-closed-captions-track-list li.selected:hover):
2013-02-07 Seulgi Kim <seulgikim@company100.net>
[Gtk] RunLoop::run shuold run current thread's run loop.
https://bugs.webkit.org/show_bug.cgi?id=107887
Reviewed by Martin Robinson.
Currently, RunLoop in Gtk can use just main thread's event loop.
But the other ports are implemented to use RunLoop in sub threads.
This patch makes RunLoop constructor create new context, not use default
context.
But in the main thread still uses default context to use main event loop
since there is some codes using glib directly (e.g. in
LayerTreeHostGtk::scheduleLayerFlush).
No new tests. There is no case that uses RunLoop in off the main thread
yet.
* platform/gtk/RunLoopGtk.cpp:
(WebCore::RunLoop::RunLoop):
(WebCore::RunLoop::run):
2013-02-07 Kentaro Hara <haraken@chromium.org>
[V8] Move V8DOMWrapper::setNamedHiddenReference() to V8HiddenPropertyName.h
https://bugs.webkit.org/show_bug.cgi?id=109186
Reviewed by Adam Barth.
V8HiddenPropertyName.h is a right place for setNamedHiddenReference().
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrGetter):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
* bindings/v8/V8HiddenPropertyName.cpp:
(WebCore::V8HiddenPropertyName::hiddenReferenceName):
(WebCore::V8HiddenPropertyName::setNamedHiddenReference):
(WebCore):
* bindings/v8/V8HiddenPropertyName.h:
(V8HiddenPropertyName):
(WebCore::V8HiddenPropertyName::V8HiddenPropertyName):
* bindings/v8/custom/V8MessageChannelCustom.cpp:
(WebCore::V8MessageChannel::constructorCallbackCustom):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toV8Object):
2013-02-07 Elliott Sprehn <esprehn@chromium.org>
getComputedStyle() doesn't report intermediate values during a transition of a pseudo element
https://bugs.webkit.org/show_bug.cgi?id=106535
Reviewed by Ojan Vafai.
Element::computedStyle and CSSComputedStyleDeclaration::getPropertyCSSValue
should use the PseudoElement and it's renderer if they exist so that
querying the computed style while an animation is running returns
the intermediate values.
No new tests, updated existing tests.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::styledNode): Added, returns either the PseudoElement or the Node.
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Updated to use styledNode.
* css/CSSComputedStyleDeclaration.h:
(CSSComputedStyleDeclaration):
* dom/Element.cpp:
(WebCore::Element::computedStyle): Check the PseudoElement, not just the cached pseudo style.
* dom/ElementRareData.h:
(WebCore::ElementRareData::pseudoElement): Remove ASSERT_NOT_REACHED so passing other pseudos returns 0.
2013-02-07 Mark Lam <mark.lam@apple.com>
Add a comment about how the SQLTransaction state machine works.
https://bugs.webkit.org/show_bug.cgi?id=109243.
Rubber stamped by Anders Carlsson.
No new tests.
* Modules/webdatabase/SQLTransactionBackend.cpp:
2013-02-06 Gavin Barraclough <barraclough@apple.com>
PluginProcess should quit immediately if idle in response to low-memory notifications
https://bugs.webkit.org/show_bug.cgi?id=109103
<rdar://problem/12679827>
Reviewed by Darin Adler.
This patch allows a process to set a custom callback for low memory warnings
(defaulting to the current behaviour, as implemented in releaseMemory).
MemoryPressureHandler::install is currently used for two purposes - it is
called when first initializing a low memory handler for a process, and also
used to reinstall the handler (on a delay) after the notification has occured.
Since reinstallation doesn't change the callback, split these behaviours out -
MemoryPressureHandler::initialize is added to initialization, and accepts a
custom callback, install in made private.
* WebCore.exp.in:
- Added export for releaseMemory.
* platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::releaseMemory):
- Added null implementation for non-Mac builds.
* platform/MemoryPressureHandler.h:
(WebCore::MemoryPressureHandler::initialize):
- distinguish initialization from reinstallations, allow handler to be set.
(MemoryPressureHandler):
- Added m_lowMemoryHandler function pointer member variable.
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::respondToMemoryPressure):
- Call m_lowMemoryHandler instead of releaseMemory.
2013-02-07 Kentaro Hara <haraken@chromium.org>
[V8] #ifndef NDEBUG is redundant for assertContextHasCorrectPrototype()
https://bugs.webkit.org/show_bug.cgi?id=109167
Reviewed by Andreas Kling.
Given that assertContextHasCorrectPrototype() is anyway empty in a release
build, we don't need to surround it with #ifndef NDEBUG.
No tests. No change in behavior.
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore::DOMWrapperWorld::assertContextHasCorrectPrototype):
* bindings/v8/DOMWrapperWorld.h:
(DOMWrapperWorld):
(WebCore::DOMWrapperWorld::isolated):
2013-02-07 Alexei Svitkine <asvitkine@chromium.org>
Chromium: Hang parsing bidi control chars on Mac OS X 10.6
https://bugs.webkit.org/show_bug.cgi?id=108877
This was broken a while ago by:
https://bugs.webkit.org/show_bug.cgi?id=83045
On 10.6, CoreText will not produce any runs covering the
Unicode BiDi RTL mark control char, which causes an infinite
loop in ComplexTextController::indexOfCurrentRun() due to no
run covering the character at offset 0.
This patch fixes that issue by finding the earliest run
explicitly via the minimum stringBegin() index instead of
relying on a run existing that covers offset 0.
Fixes hang on many BiDi wikipedia pages on Chromium/Mac10.6.
Chromium bug: http://crbug.com/167844
New test in the same style as the harfbuzz-buffer-overrun.html
test (in the same folder).
Reviewed by Eric Seidel.
Test: fast/text/international/rtl-mark.html
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::indexOfCurrentRun):
2013-02-07 Kentaro Hara <haraken@chromium.org>
Implement FocusEvent constructor
https://bugs.webkit.org/show_bug.cgi?id=109170
Reviewed by Adam Barth.
Editor's draft: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm
FocusEvent constructor should be implemented under a DOM4_EVENTS_CONSTRUCTOR
flag, which is enabled on Chromium and Safari.
Test: fast/events/constructors/focus-event-constructor.html
* dom/FocusEvent.cpp:
(WebCore::FocusEventInit::FocusEventInit):
(WebCore):
(WebCore::FocusEvent::FocusEvent):
* dom/FocusEvent.h:
(FocusEventInit):
(WebCore):
(WebCore::FocusEvent::create):
(FocusEvent):
* dom/FocusEvent.idl:
* page/DOMWindow.idl:
2013-02-07 Elliott Sprehn <esprehn@chromium.org>
HTML parser should queue MutationRecords for its operations
https://bugs.webkit.org/show_bug.cgi?id=89351
Reviewed by Eric Seidel.
Generate mutation records inside the parser. This is done by using a
ChildListMutationScope in the ContainerNode::parser* methods and then
adding delivery before each <script> element would be processed by
the parser.
Test: fast/dom/MutationObserver/parser-mutations.html
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::takeAllChildrenFrom):
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::parserRemoveChild):
(WebCore::ContainerNode::parserAppendChild):
* html/parser/HTMLScriptRunner.cpp:
(WebCore::HTMLScriptRunner::executeParsingBlockingScript):
(WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
(WebCore::HTMLScriptRunner::execute):
(WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
(WebCore::HTMLScriptRunner::executeScriptsWaitingForStylesheets):
(WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
(WebCore::HTMLScriptRunner::runScript):
2013-02-07 Kentaro Hara <haraken@chromium.org>
Fix FIXMEs in WindowFeatures.h
https://bugs.webkit.org/show_bug.cgi?id=109151
Reviewed by Adam Barth.
1. // FIXME: We can delete this constructor once V8 showModalDialog is
// changed to use DOMWindow.
This FIXME is not right. The WindowFeatures() constructor is used by
other ports too (e.g. WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp).
So we should remove the FIXME.
2. // FIXME: We can make these functions private non-member functions
// once V8 showModalDialog is changed to use DOMWindow.
Given that V8 now uses DOMWindow in showModalDialog(), we can make the
methods private.
No tests. No change in behavior.
* page/WindowFeatures.h:
(WebCore):
(WebCore::WindowFeatures::WindowFeatures):
(WindowFeatures):
2013-02-07 Adam Barth <abarth@webkit.org>
fast/parser/document-write-noscript.html fails for threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=109237
Reviewed by Eric Seidel.
If there are multiple calls to document.write in an external script, we
need to wait for them all to complete before invalidating the
speculative tokens. Instead of doing this when we unwind the
document.write call stack, we do this when we're about to resume
parsing after script execution.
Test: fast/parser/document-write-basic.html
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::insert):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
2013-02-07 Lamarque V. Souza <Lamarque.Souza@basyskom.com>
Fix build when compiling with css3-text and css3-conditional-rules feature flags enabled.
https://bugs.webkit.org/show_bug.cgi?id=109217
Reviewed by Benjamin Poulain.
* css/InspectorCSSOMWrappers.cpp:
(WebCore::InspectorCSSOMWrappers::collect):
2013-02-07 Keishi Hattori <keishi@webkit.org>
REGRESSION (r140778): Calendar Picker doesn't open when the element has the required attribute
https://bugs.webkit.org/show_bug.cgi?id=109136
Reviewed by Kent Tamura.
Calendar picker was using the "Clear" button to calculate the window width.
Since it doesn't exist when the input element has a required attribute,
it was throwing an error. This patch fixes the width calculating logic.
Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-required-ar.html
platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-required.html
* Resources/pagepopups/calendarPicker.css:
(.today-clear-area):
* Resources/pagepopups/calendarPicker.js:
(CalendarPicker.prototype.fixWindowSize): Fixing the logic to calculate
the width. We don't want to use clear button because it doesn't exist
when a value is required.
2013-02-07 Terry Anderson <tdanderson@chromium.org>
Non-scrollable divs and non-scrollable iframes can scroll with touch
https://bugs.webkit.org/show_bug.cgi?id=109087
Reviewed by Eric Seidel.
Tests: fast/events/touch/gesture/touch-gesture-noscroll-div.html
fast/events/touch/gesture/touch-gesture-noscroll-iframe.html
When finding a candidate for a scrollable node in
EventHandler::handleGestureScrollUpdate(), select the document node
if it is reached before any scrollable element when walking up the DOM
tree. Also ensure that calling RenderLayer::scrollBy() for a document
node does not result in scrolling if the element is not scrollable.
* page/EventHandler.cpp:
(WebCore::closestScrollableNodeCandidate):
(WebCore::EventHandler::handleGestureScrollUpdate):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollBy):
2013-02-07 Mark Lam <mark.lam@apple.com>
Introduce SQLTransactionBackend and SQLTransactionBackendSync [Part 2].
https://bugs.webkit.org/show_bug.cgi?id=109109.
Reviewed by Anders Carlsson.
Adding back the new SQLTransaction and SQLTransactionSync files.
No new tests.
* Modules/webdatabase/SQLTransaction.cpp: Added.
(WebCore::SQLTransaction::create):
(WebCore::SQLTransaction::SQLTransaction):
(WebCore::SQLTransaction::from):
* Modules/webdatabase/SQLTransaction.h: Added.
(SQLTransaction):
* Modules/webdatabase/SQLTransactionSync.cpp: Added.
(WebCore::SQLTransactionSync::create):
(WebCore::SQLTransactionSync::SQLTransactionSync):
(WebCore::SQLTransactionSync::from):
* Modules/webdatabase/SQLTransactionSync.h: Added.
(SQLTransactionSync):
2013-02-07 Mark Lam <mark.lam@apple.com>
Introduce SQLTransactionBackend and SQLTransactionBackendSync.
https://bugs.webkit.org/show_bug.cgi?id=109109.
Reviewed by Anders Carlsson.
- Renamed SQLTransaction and SQLTransactionSync to SQLTransactionBackend
and SQLTransactionBackendSync respectively.
- Added back SQLTransaction and SQLTransactionSync as new files, and have
their classes extends their respective backends. This is a stop gap
measure to keep things working until the front-end and back-end can be
properly split.
Note: these files will be committed in a subsequent commit to ensure
that the patching goes smoothly.
- Where needed, I made use of new SQLTransaction::from() and
SQLTransactionSync::from() static methods that "get" the front-end
transactions from the back-ends. This is also a stop gap measure to
keep things working until the proper refactoring is complete.
- Fixed up pre-existing style checker violations that are now detected
on code that were touched during my renaming.
- Added the back-end files to all the build files.
No new tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/Database.cpp:
(WebCore::Database::scheduleTransactionStep):
* Modules/webdatabase/Database.h:
(Database):
* Modules/webdatabase/DatabaseBackend.h:
(DatabaseBackend):
* Modules/webdatabase/DatabaseTask.cpp:
(WebCore::DatabaseBackendAsync::DatabaseTransactionTask::DatabaseTransactionTask):
* Modules/webdatabase/DatabaseTask.h:
(WebCore::DatabaseBackendAsync::DatabaseTransactionTask::create):
(WebCore::DatabaseBackendAsync::DatabaseTransactionTask::transaction):
(DatabaseBackendAsync::DatabaseTransactionTask):
* Modules/webdatabase/SQLTransaction.cpp: Removed.
* Modules/webdatabase/SQLTransaction.h: Removed.
* Modules/webdatabase/SQLTransactionBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/SQLTransaction.cpp.
(WebCore::SQLTransactionBackend::SQLTransactionBackend):
(WebCore::SQLTransactionBackend::~SQLTransactionBackend):
(WebCore::SQLTransactionBackend::executeSQL):
(WebCore::SQLTransactionBackend::enqueueStatement):
(WebCore::SQLTransactionBackend::debugStepName):
(WebCore::SQLTransactionBackend::checkAndHandleClosedOrInterruptedDatabase):
(WebCore::SQLTransactionBackend::performNextStep):
(WebCore::SQLTransactionBackend::performPendingCallback):
(WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown):
(WebCore::SQLTransactionBackend::acquireLock):
(WebCore::SQLTransactionBackend::lockAcquired):
(WebCore::SQLTransactionBackend::openTransactionAndPreflight):
(WebCore::SQLTransactionBackend::deliverTransactionCallback):
(WebCore::SQLTransactionBackend::scheduleToRunStatements):
(WebCore::SQLTransactionBackend::runStatements):
(WebCore::SQLTransactionBackend::getNextStatement):
(WebCore::SQLTransactionBackend::runCurrentStatement):
(WebCore::SQLTransactionBackend::handleCurrentStatementError):
(WebCore::SQLTransactionBackend::deliverStatementCallback):
(WebCore::SQLTransactionBackend::deliverQuotaIncreaseCallback):
(WebCore::SQLTransactionBackend::postflightAndCommit):
(WebCore::SQLTransactionBackend::deliverSuccessCallback):
(WebCore::SQLTransactionBackend::cleanupAfterSuccessCallback):
(WebCore::SQLTransactionBackend::handleTransactionError):
(WebCore::SQLTransactionBackend::deliverTransactionErrorCallback):
(WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
* Modules/webdatabase/SQLTransactionBackend.h: Copied from Source/WebCore/Modules/webdatabase/SQLTransaction.h.
(SQLTransactionBackend):
* Modules/webdatabase/SQLTransactionBackendSync.cpp: Copied from Source/WebCore/Modules/webdatabase/SQLTransactionSync.cpp.
(WebCore::SQLTransactionBackendSync::SQLTransactionBackendSync):
(WebCore::SQLTransactionBackendSync::~SQLTransactionBackendSync):
(WebCore::SQLTransactionBackendSync::executeSQL):
(WebCore::SQLTransactionBackendSync::begin):
(WebCore::SQLTransactionBackendSync::execute):
(WebCore::SQLTransactionBackendSync::commit):
(WebCore::SQLTransactionBackendSync::rollback):
* Modules/webdatabase/SQLTransactionBackendSync.h: Copied from Source/WebCore/Modules/webdatabase/SQLTransactionSync.h.
(SQLTransactionBackendSync):
* Modules/webdatabase/SQLTransactionCoordinator.cpp:
(WebCore::getDatabaseIdentifier):
(WebCore::SQLTransactionCoordinator::processPendingTransactions):
(WebCore::SQLTransactionCoordinator::acquireLock):
(WebCore::SQLTransactionCoordinator::releaseLock):
(WebCore::SQLTransactionCoordinator::shutdown):
* Modules/webdatabase/SQLTransactionCoordinator.h:
(SQLTransactionCoordinator):
(WebCore::SQLTransactionCoordinator::SQLTransactionCoordinator):
(CoordinationInfo):
* Modules/webdatabase/SQLTransactionSync.cpp: Removed.
* Modules/webdatabase/SQLTransactionSync.h: Removed.
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
2013-02-07 Dean Jackson <dino@apple.com>
Use new speech bubble artwork for captions menu button
https://bugs.webkit.org/show_bug.cgi?id=109215
Reviewed by Eric Carlson.
Rather than call into RenderTheme to display this button, embed artwork
into the CSS. This means we can remove some uncalled methods in
RenderTheme.
* css/mediaControlsQuickTime.css:
(video::-webkit-media-controls-toggle-closed-captions-button): New background image using SVG.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paint): Don't call the specific painter for the CC button.
* rendering/RenderTheme.h: Remove unused function.
* rendering/RenderThemeMac.h: Ditto.
* rendering/RenderThemeMac.mm: Ditto.
2013-02-07 Michelangelo De Simone <michelangelo@webkit.org>
[CSS Shaders] Add the last blending step
https://bugs.webkit.org/show_bug.cgi?id=104012
The resulting blended color in mix() is now weighted according to
the original element's backdrop alpha value.
Reviewed by Dean Jackson.
Test: css3/filters/custom/custom-filter-blend-fractional-destination-alpha.html
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
2013-02-07 Benjamin Poulain <bpoulain@apple.com>
Fix two exports of WebCore symbols on iOS
https://bugs.webkit.org/show_bug.cgi?id=109238
Reviewed by David Kilzer.
* WebCore.exp.in: Export wkCTFontTransformGlyphs but not
wkCGContextDrawsWithCorrectShadowOffsets on iOS.
2013-02-07 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Ignore ExclusionPolygon edges above minLogicalIntervalTop
https://bugs.webkit.org/show_bug.cgi?id=107566
Reviewed by David Hyatt.
Improve ExclusionPolygon::firstIncludedIntervalLogicalTop() performance by only
creating offset edges for polygon edges that are below the horizontal minLogicalIntervalTop
line. In other words, don't bother creating offset edges that can't define the polygon's
first fit location.
Test: fast/exclusions/shape-inside/shape-inside-first-fit-004.html
* rendering/ExclusionPolygon.cpp:
(WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): Don't create offset edges for polygon edges above minLogicalIntervalTop.
2013-02-07 Jer Noble <jer.noble@apple.com>
Improve logging of MediaPlayerPrivateAVFoundation Notifications.
https://bugs.webkit.org/show_bug.cgi?id=109223
Reviewed by Eric Carlson.
Convert the existing Notification enum to an expandable macro. Then add a
Logging-only function which stringifies the enums.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore):
(WebCore::notificationName):
(WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
2013-02-07 Martin Robinson <mrobinson@igalia.com>
[GTK] Cleanup command-line defines
https://bugs.webkit.org/show_bug.cgi?id=109213
Reviewed by Xan Lopez.
* GNUmakefile.am: Remove references to flags that are now handled
via autotoolsconfig.h.
2013-02-07 Tom Sepez <tsepez@chromium.org>
[V8] Binding Integrity crash in V8MediaStream::createWrapper
https://bugs.webkit.org/show_bug.cgi?id=109211
Reviewed by Adam Barth.
Patch suppresses a chrome crasher.
* Modules/mediastream/MediaStream.idl:
2013-02-07 Eric Carlson <eric.carlson@apple.com>
[Mac] decrease in-band caption advance notice interval
https://bugs.webkit.org/show_bug.cgi?id=109190
Reviewed by Simon Fraser.
No new tests, no observable change in behavior.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Request cues 2 seconds in advance.
2013-02-07 ChangSeok Oh <shivamidow@gmail.com>
[GTK][AC] Clutter required version up to 1.12
https://bugs.webkit.org/show_bug.cgi?id=109037
Reviewed by Martin Robinson.
Replace deprecated clutter apis with new ones.
No new tests, since this patch is minor refactoring.
* platform/graphics/clutter/GraphicsLayerActor.cpp:
(graphicsLayerActorSetAnchorPoint):
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::idleDestroy):
(WebCore::GraphicsLayerClutter::updateSublayerList):
2013-02-07 Benjamin Poulain <bpoulain@apple.com>
Move pauseAnimation/pauseTransition from TestRunner to Internals
https://bugs.webkit.org/show_bug.cgi?id=109107
Reviewed by Anders Carlsson.
Tests: animations/animation-internals-api-multiple-keyframes.html
animations/animation-internals-api.html
* testing/Internals.cpp:
(WebCore::Internals::pauseAnimationAtTimeOnElement):
(WebCore):
(WebCore::Internals::pauseTransitionAtTimeOnElement):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2013-02-07 Gavin Peters <gavinp@chromium.org>
Unreviewed, rolling out r142155.
http://trac.webkit.org/changeset/142155
https://bugs.webkit.org/show_bug.cgi?id=82888
cr/win build broke.
* bindings/js/JSClipboardCustom.cpp:
(WebCore::JSClipboard::types):
* bindings/v8/custom/V8ClipboardCustom.cpp:
(WebCore::V8Clipboard::typesAccessorGetter):
* dom/Clipboard.h:
(Clipboard):
* platform/blackberry/ClipboardBlackBerry.cpp:
(WebCore::ClipboardBlackBerry::types):
* platform/blackberry/ClipboardBlackBerry.h:
(ClipboardBlackBerry):
* platform/chromium/ChromiumDataObject.cpp:
(WebCore::ChromiumDataObject::types):
* platform/chromium/ChromiumDataObject.h:
(ChromiumDataObject):
* platform/chromium/ClipboardChromium.cpp:
(WebCore::ClipboardChromium::types):
* platform/chromium/ClipboardChromium.h:
(ClipboardChromium):
* platform/efl/ClipboardEfl.cpp:
(WebCore::ClipboardEfl::types):
* platform/efl/ClipboardEfl.h:
(ClipboardEfl):
* platform/gtk/ClipboardGtk.cpp:
(WebCore::ClipboardGtk::types):
* platform/gtk/ClipboardGtk.h:
(ClipboardGtk):
* platform/mac/ClipboardMac.h:
(ClipboardMac):
* platform/mac/ClipboardMac.mm:
(WebCore::addHTMLClipboardTypesForCocoaType):
(WebCore::ClipboardMac::types):
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::types):
* platform/qt/ClipboardQt.h:
(ClipboardQt):
* platform/win/ClipboardWin.cpp:
(WebCore::addMimeTypesForFormat):
(WebCore::ClipboardWin::types):
* platform/win/ClipboardWin.h:
(ClipboardWin):
2013-02-07 Rik Cabanier <cabanier@adobe.com>
Add support for parsing of -webkit-background-blend-mode
https://bugs.webkit.org/show_bug.cgi?id=108547
Reviewed by David Hyatt.
Added parsing and general CSS handling of -webkit-background-blend-mode per
https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#background-blend-mode
Tests: css3/compositing/background-blend-mode-property-parsing.html
css3/compositing/background-blend-mode-property.html
* css/CSSComputedStyleDeclaration.cpp: Built value for getComputedStyle.
(WebCore):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp: Parsed and stored value of -webkit-background-blend-mode.
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFillProperty):
* css/CSSProperty.cpp: Listed -webkit-background-blend-mode as a non-inherited property.
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in: Added -webkit-background-blend-mode as a CSS property.
* css/CSSToStyleMap.cpp: Mapped background blend mode from CSS value to enum.
(WebCore::CSSToStyleMap::mapFillBlendMode):
(WebCore):
* css/CSSToStyleMap.h: Added function declaration 'mapFillBlendMode'.
(CSSToStyleMap):
* css/StyleBuilder.cpp: Set up propery handler for -webkit-background-blend-mode.
(WebCore::StyleBuilder::StyleBuilder):
* rendering/style/FillLayer.cpp: Added code to store and retrieve the blend mode from a layer.
(WebCore::FillLayer::FillLayer):
(WebCore::FillLayer::operator=):
(WebCore::FillLayer::operator==):
(WebCore::FillLayer::fillUnsetProperties):
* rendering/style/FillLayer.h: Added function definitions to manage blend mode in a layer.
(WebCore::FillLayer::blendMode):
(WebCore::FillLayer::isBlendModeSet):
(WebCore::FillLayer::setBlendMode):
(WebCore::FillLayer::clearBlendMode):
(WebCore::FillLayer::initialFillBlendMode):
(FillLayer):
2013-02-07 Gavin Peters <gavinp@chromium.org>
Unreviewed, rolling out r142142.
http://trac.webkit.org/changeset/142142
https://bugs.webkit.org/show_bug.cgi?id=109154
Mac expectations were not right. See http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector-protocol%2Fnmi-webaudio-leak-test.html and http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector-protocol%2Fnmi-webaudio.html .
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._registerShortcuts):
2013-02-07 Gavin Peters <gavinp@chromium.org>
Unreviewed, rolling out r142081.
http://trac.webkit.org/changeset/142081
https://bugs.webkit.org/show_bug.cgi?id=109146
The patch caused a crash in inspector-protocol/nmi-webaudio*.html .
See http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector-protocol%2Fnmi-webaudio-leak-test.html and http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector-protocol%2Fnmi-webaudio.html .
* dom/WebCoreMemoryInstrumentation.cpp:
(WebCore):
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.MemoryBlockViewProperties._initialize):
* platform/PlatformMemoryInstrumentation.cpp:
(WebCore):
2013-02-07 Bear Travis <betravis@adobe.com>
[CSS Exclusions] shape-inside does not properly handle padding or border
https://bugs.webkit.org/show_bug.cgi?id=102715
Reviewed by David Hyatt.
This patch positions the exclusion shape based on the value of the css box sizing
property. Geometry calculations happen in the shape coordinate space. For layout,
these coordinates are translated to the border-box coordinate system by adding
the appropriate offsets.
Test: fast/exclusions/shape-inside/shape-inside-box-sizing.html
* rendering/ExclusionShapeInfo.cpp:
(WebCore::::computedShape): Pass m_shapeLogicalWidth to the exclusion shape
geometry code.
* rendering/ExclusionShapeInfo.h:
(WebCore::ExclusionShapeInfo::setShapeSize): Adjust block layout dimensions to
shape dimensions when checking to see if the shape geometry must be recalculated.
(WebCore::ExclusionShapeInfo::shapeLogicalTop): Account for layout offsets.
(WebCore::ExclusionShapeInfo::shapeLogicalBottom): Ditto.
(WebCore::ExclusionShapeInfo::shapeLogicalLeft): Ditto.
(WebCore::ExclusionShapeInfo::shapeLogicalRight): Ditto.
(WebCore::ExclusionShapeInfo::logicalTopOffset): Return the offset from the logical
top of the border box to the logical top of the shape.
(WebCore::ExclusionShapeInfo::logicalLeftOffset): Return the offset from the logical
left of the border box to the logical left of the shape.
(ExclusionShapeInfo):
* rendering/ExclusionShapeInsideInfo.cpp:
(WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine): Adjust line top to
be in shape coordinates.
(WebCore::ExclusionShapeInsideInfo::adjustLogicalLineTop): Ditto.
* rendering/ExclusionShapeInsideInfo.h:
(WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Use consistent
coordinate system (border box) to test for whether a line overlaps a shape.
(WebCore::ExclusionShapeInsideInfo::logicalLineTop): Include the logical offset
from the border box.
(WebCore::ExclusionShapeInsideInfo::logicalLineBottom): Ditto.
2013-02-07 Benjamin Poulain <bpoulain@apple.com>
Upstream iOS isWebThread() and isUIThread()
https://bugs.webkit.org/show_bug.cgi?id=109130
Reviewed by Sam Weinig.
* bindings/objc/WebScriptObject.mm:
(+[WebScriptObject initialize]):
* platform/mac/SharedBufferMac.mm:
(+[WebCoreSharedBufferData initialize]):
#ifdef out the legacy initialization as it is not correct when
using a WebThread.
2013-02-07 Vivek Galatage <vivek.vg@samsung.com>
Web Inspector: CPU pegged when inspecting LocalStorage that mutates.
https://bugs.webkit.org/show_bug.cgi?id=107937
Reviewed by Yury Semikhatsky.
The DOM storage agent will fire an event to the frontend based on the action
performed on the storage. Based on this action, the front-end will just add/update/remove
the entry in the view. This enhances the front-end responsiveness as the round trip
for fetching the storage entries has been eliminated.
Existing test: LayoutTests/inspector/storage-panel-dom-storage-update.html should verify the change
* inspector/Inspector.json:
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
* inspector/front-end/DOMStorage.js:
(WebInspector.DOMStorageModel.prototype._domStorageItemsCleared):
(WebInspector.DOMStorageModel.prototype._domStorageItemRemoved):
(WebInspector.DOMStorageModel.prototype._domStorageItemAdded):
(WebInspector.DOMStorageModel.prototype._domStorageItemUpdated):
(WebInspector.DOMStorageDispatcher.prototype.domStorageItemsCleared):
(WebInspector.DOMStorageDispatcher.prototype.domStorageItemRemoved):
(WebInspector.DOMStorageDispatcher.prototype.domStorageItemAdded):
(WebInspector.DOMStorageDispatcher.prototype.domStorageItemUpdated):
* inspector/front-end/DOMStorageItemsView.js:
(WebInspector.DOMStorageItemsView):
(WebInspector.DOMStorageItemsView.prototype.wasShown):
(WebInspector.DOMStorageItemsView.prototype._domStorageItemsCleared):
(WebInspector.DOMStorageItemsView.prototype._domStorageItemRemoved):
(WebInspector.DOMStorageItemsView.prototype._domStorageItemAdded):
(WebInspector.DOMStorageItemsView.prototype._domStorageItemUpdated):
(WebInspector.DOMStorageItemsView.prototype._update):
(WebInspector.DOMStorageItemsView.prototype._showDOMStorageEntries):
(WebInspector.DOMStorageItemsView.prototype._refreshButtonClicked):
(WebInspector.DOMStorageItemsView.prototype._editingCallback):
(WebInspector.DOMStorageItemsView.prototype._deleteCallback):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel):
(WebInspector.ResourcesPanel.prototype._showDOMStorage.get if):
(WebInspector.ResourcesPanel.prototype._showDOMStorage):
2013-02-07 Dan Carney <dcarney@google.com>
[v8] move persistent::new and ::dispose into same class
https://bugs.webkit.org/show_bug.cgi?id=109065
Reviewed by Adam Barth.
No new tests. No change in functionality.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateSingleConstructorCallback):
(GenerateEventConstructorCallback):
(GenerateNamedConstructorCallback):
(GenerateToV8Converters):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::V8Float64Array::createWrapper):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::V8TestActiveDOMObject::createWrapper):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::createWrapper):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::constructorCallback):
(WebCore::V8TestEventConstructor::createWrapper):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::V8TestEventTarget::createWrapper):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::createWrapper):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::V8TestInterface::constructorCallback):
(WebCore::V8TestInterface::createWrapper):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::createWrapper):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructorCallback):
(WebCore::V8TestNamedConstructor::createWrapper):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::constructorCallback):
(WebCore::V8TestNode::createWrapper):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::V8TestObj::constructorCallback):
(WebCore::V8TestObj::createWrapper):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::constructor1Callback):
(WebCore::V8TestOverloadedConstructors::constructor2Callback):
(WebCore::V8TestOverloadedConstructors::constructor3Callback):
(WebCore::V8TestOverloadedConstructors::constructor4Callback):
(WebCore::V8TestOverloadedConstructors::createWrapper):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
(WebCore::V8TestSerializedScriptValueInterface::createWrapper):
* bindings/v8/DOMDataStore.cpp:
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::setWrapper):
(DOMDataStore):
(WebCore::DOMDataStore::set):
(WebCore::DOMDataStore::setWrapperInObject):
* bindings/v8/DOMWrapperMap.h:
(WebCore::DOMWrapperMap::get):
(WebCore::DOMWrapperMap::set):
(WebCore::DOMWrapperMap::removeAndDispose):
(WebCore::DOMWrapperMap::defaultWeakCallback):
* bindings/v8/ScriptWrappable.h:
(WebCore::ScriptWrappable::wrapper):
(WebCore::ScriptWrappable::setWrapper):
(WebCore::ScriptWrappable::reportMemoryUsage):
(ScriptWrappable):
(WebCore::ScriptWrappable::disposeWrapper):
(WebCore::ScriptWrappable::weakCallback):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::installDOMWindow):
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
(WebCore::V8DOMWrapper::associateObjectWithWrapper):
* bindings/v8/V8NPObject.cpp:
(WebCore::weakNPObjectCallback):
(WebCore::createV8ObjectForNPObject):
(WebCore::forgetV8ObjectForNPObject):
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::initializeContextIfNeeded):
* bindings/v8/WrapperTypeInfo.h:
(WebCore):
(WrapperConfiguration):
(WebCore::WrapperConfiguration::configureWrapper):
(WebCore::buildWrapperConfiguration):
* bindings/v8/custom/V8ArrayBufferCustom.cpp:
(WebCore::V8ArrayBuffer::constructorCallbackCustom):
* bindings/v8/custom/V8ArrayBufferViewCustom.h:
(WebCore::wrapArrayBufferView):
(WebCore::constructWebGLArray):
* bindings/v8/custom/V8AudioContextCustom.cpp:
(WebCore::V8AudioContext::constructorCallbackCustom):
* bindings/v8/custom/V8DOMFormDataCustom.cpp:
(WebCore::V8DOMFormData::constructorCallbackCustom):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::V8DataView::constructorCallbackCustom):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::v8HTMLImageElementConstructorCallback):
* bindings/v8/custom/V8IntentCustom.cpp:
(WebCore::V8Intent::constructorCallbackCustom):
* bindings/v8/custom/V8MessageChannelCustom.cpp:
(WebCore::V8MessageChannel::constructorCallbackCustom):
* bindings/v8/custom/V8MutationObserverCustom.cpp:
(WebCore::V8MutationObserver::constructorCallbackCustom):
* bindings/v8/custom/V8WebKitPointCustom.cpp:
(WebCore::V8WebKitPoint::constructorCallbackCustom):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::V8XMLHttpRequest::constructorCallbackCustom):
2013-02-07 Zan Dobersek <zdobersek@igalia.com>
[Autotools] Remove uses of Automake FARSTREAM_(CFLAGS|LIBS) variables, USE_FARSTREAM conditional
https://bugs.webkit.org/show_bug.cgi?id=109198
Reviewed by Martin Robinson.
* GNUmakefile.am: Remove FARSTREAM_CFLAGS variable, it's not set to anything.
2013-02-07 Vineet Chaudhary <rgf748@motorola.com>
Consider replacing return type of Clipboard::types() from ListHashSet<String> to Vector<String>
https://bugs.webkit.org/show_bug.cgi?id=82888
Reviewed by Kentaro Hara.
As part of removing custom bindings of types Array Clipboard::types() needs to return
Vector<String> than ListHashSet<String>
No new tests. Existing test should pass with this change as no behavoural changes.
* bindings/js/JSClipboardCustom.cpp: Replace data type from ListHashSet<> to Vector<>.
(WebCore::JSClipboard::types):
* bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
(WebCore::V8Clipboard::typesAccessorGetter): Ditto.
* dom/Clipboard.h: Ditto.
* platform/blackberry/ClipboardBlackBerry.cpp: Ditto.
(WebCore::ClipboardBlackBerry::types):
* platform/blackberry/ClipboardBlackBerry.h: Ditto.
* platform/chromium/ChromiumDataObject.cpp: Ditto.
(WebCore::ChromiumDataObject::types):
* platform/chromium/ChromiumDataObject.h: Ditto.
* platform/chromium/ClipboardChromium.cpp: Ditto.
(WebCore::ClipboardChromium::types):
* platform/chromium/ClipboardChromium.h: Ditto.
* platform/efl/ClipboardEfl.cpp: Ditto.
(WebCore::ClipboardEfl::types):
* platform/efl/ClipboardEfl.h: Ditto.
* platform/gtk/ClipboardGtk.cpp: Ditto.
(WebCore::ClipboardGtk::types):
* platform/gtk/ClipboardGtk.h: Ditto.
* platform/mac/ClipboardMac.h: Ditto.
* platform/mac/ClipboardMac.mm: Ditto.
(WebCore::addHTMLClipboardTypesForCocoaType):
(WebCore::ClipboardMac::types):
* platform/qt/ClipboardQt.cpp: Ditto.
(WebCore::ClipboardQt::types):
* platform/qt/ClipboardQt.h: Ditto.
* platform/win/ClipboardWin.cpp: Ditto.
(WebCore::addMimeTypesForFormat):
(WebCore::ClipboardWin::types):
* platform/win/ClipboardWin.h: Ditto.
2013-02-07 Kentaro Hara <haraken@chromium.org>
[V8] StringCache::m_stringCache should be HashMap<StringImpl*, Persistent<String>>
https://bugs.webkit.org/show_bug.cgi?id=109123
Reviewed by Adam Barth.
Currently StringCache::m_stringCache is implemented as
HashMap<StringImpl*, v8::String*>. Given that v8::String*
can change when a GC is triggered, it is dangerous to store a raw pointer.
We should use HashMap<StringImpl*, v8::Persistent<v8::String>> instead.
This is a possible fix for an IndexedDB crash (https://bugs.webkit.org/show_bug.cgi?id=105363),
although I'm not sure if this patch fixes the crash. (I couldn't reproduce the crash.)
No tests. This change highly depends on GC behavior and thus it is
difficult to make a reliable test case.
* bindings/v8/V8ValueCache.cpp:
(WebCore::makeExternalString):
* bindings/v8/V8ValueCache.h:
(StringCache):
2013-01-27 Robert Hogan <robert@webkit.org>
CSS 2.1 failure: floats-149 fails
https://bugs.webkit.org/show_bug.cgi?id=95772
Reviewed by David Hyatt.
Treat inlines that contain nothing but empty inlines as empty too so that they get a linebox.
Tests: fast/inline/inline-with-empty-inline-children.html
css2.1/20110323/floats-149.htm
* rendering/InlineIterator.h:
(WebCore::isEmptyInline):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange): Now that empty inlines get a linebox any out-of-flow
objects inside an empty inline (on a line that is otherwise empty) won't get positioned while skipping
through leading whitespace.
2013-02-07 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Compile fix after r141981
https://bugs.webkit.org/show_bug.cgi?id=109184
Reviewed by Brent Fulgham.
* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::loadResourceSynchronously):
2013-02-07 Otto Derek Cheung <otcheung@rim.com>
[BlackBerry] Cookie database isn't loaded into memory in some rare cases
https://bugs.webkit.org/show_bug.cgi?id=109202
PR 286189
Reviewed by Yong Li.
Internally Reviewed by Konrad Piascik.
If a get/setCookie call is made before the database is loaded, or if there's some
kind of error that causes the loading of the database to fail in the constructor
of CookieManager, the browser will get into a state where it seems like cookie is
permanenty disabled.
Instead of logging the errors and redispatching the setCookie, we should do a force sync
to load the cookie database before continuing.
Since the bug is so difficult to reproduce (I never did so myself), I did the follow test
to make sure the code path is correct:
1) Make sure original implementation is retained - open and loading done in the constructor
2) Removed opening and loading in constructor, the new calls in get/setcookies loaded the db just fine (although with
an initial lag because we are blocking WKT while performing SQLite options).
3) Removed loading in constructor, the new calls loaded the db just fine.
* platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
(WebCore::CookieDatabaseBackingStore::openAndLoadDatabaseSynchronously):
(WebCore):
* platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
(CookieDatabaseBackingStore):
* platform/blackberry/CookieManager.cpp:
(WebCore::CookieManager::setCookies):
(WebCore::CookieManager::getCookie):
(WebCore::CookieManager::generateHtmlFragmentForCookies):
(WebCore::CookieManager::getRawCookies):
2013-02-07 Max Vujovic <mvujovic@adobe.com>
[CSS Shaders] Add WebKitCSSFilterRule to DOMWindow.idl
https://bugs.webkit.org/show_bug.cgi?id=109082
Reviewed by Dean Jackson.
Add an entry for WebKitCSSFilterRuleConstructor in DOMWindow.idl.
Tests: css3/filters/custom-with-at-rule-syntax/parsing-at-rule-invalid.html
css3/filters/custom-with-at-rule-syntax/parsing-at-rule-valid.html
* page/DOMWindow.idl:
2013-02-07 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Remove unused workspace field from NetworkUISourceCodeProvider
https://bugs.webkit.org/show_bug.cgi?id=109201
Reviewed by Pavel Feldman.
* inspector/front-end/NetworkUISourceCodeProvider.js:
(WebInspector.NetworkUISourceCodeProvider):
* inspector/front-end/inspector.js:
2013-02-07 Jessie Berlin <jberlin@apple.com>
REGRESSION(r142003): Duplicate "Unknown" strings in LocalizedStrings.cpp not distinguished
by key
https://bugs.webkit.org/show_bug.cgi?id=109196
Reviewed by Eric Carlson.
* English.lproj/Localizable.strings:
Updated for the changes.
* platform/LocalizedStrings.cpp:
(WebCore::unknownFileSizeText):
Add a key.
(WebCore::textTrackNoLabelText):
Ditto.
2013-02-07 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: linkifyResourceAsNode produced anchor should not prefer resources to scripts panel.
https://bugs.webkit.org/show_bug.cgi?id=109197
Reviewed by Pavel Feldman.
Javascript syntax errors in console are now linkified so that they show sources panel by default.
* inspector/front-end/ResourceUtils.js:
(WebInspector.linkifyResourceAsNode):
2013-02-07 Eberhard Graether <egraether@google.com>
Web Inspector: Add settings checkbox for composited layer borders
https://bugs.webkit.org/show_bug.cgi?id=109096
Reviewed by Pavel Feldman.
This change adds a checkbox to show composited layer borders to the WebInspector's
rendering settings and plumbs the setting to Chromium's WebLayerTreeView. The setting
is visible if InspectorClient::canShowDebugBorders() returns true.
No new tests.
* English.lproj/localizedStrings.js:
* inspector/Inspector.json:
* inspector/InspectorClient.h:
(WebCore::InspectorClient::canShowDebugBorders):
(WebCore::InspectorClient::setShowDebugBorders):
(InspectorClient):
* inspector/InspectorPageAgent.cpp:
(PageAgentState):
(WebCore::InspectorPageAgent::restore):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::canShowDebugBorders):
(WebCore):
(WebCore::InspectorPageAgent::setShowDebugBorders):
* inspector/InspectorPageAgent.h:
* inspector/front-end/Settings.js:
* inspector/front-end/SettingsScreen.js:
(WebInspector.GenericSettingsTab):
(WebInspector.GenericSettingsTab.prototype.get _showDebugBordersChanged):
* inspector/front-end/inspector.js:
(WebInspector.doLoadedDone):
2013-02-07 Gavin Peters <gavinp@chromium.org>
Unreviewed, rolling out r142141.
http://trac.webkit.org/changeset/142141
https://bugs.webkit.org/show_bug.cgi?id=108990
Reland r142112, will update Chromium expectations and create a
Chromium bug instead for the crash.
* CMakeLists.txt:
* Target.pri:
* WebCore.pri:
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::create):
* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp: Added.
(WebCore):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::setLayerIsFixedToContainerLayer):
* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h: Added.
(WebCore):
(ScrollingCoordinatorCoordinatedGraphics):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::setFixedToViewport):
(WebCore):
(WebCore::CoordinatedGraphicsLayer::flushCompositingState):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
(CoordinatedGraphicsLayerClient):
(CoordinatedGraphicsLayer):
2013-02-07 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: home button behaviour is wrong in DTE
https://bugs.webkit.org/show_bug.cgi?id=109154
Reviewed by Vsevolod Vlasov.
Handle home key shortcut explicitly in TextEditorMainPanel.
New test: inspector/editor/text-editor-home-button.html
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._registerShortcuts):
(WebInspector.TextEditorMainPanel.prototype._handleHomeKey):
2013-02-07 Gavin Peters <gavinp@chromium.org>
Unreviewed, rolling out r142112.
http://trac.webkit.org/changeset/142112
https://bugs.webkit.org/show_bug.cgi?id=108990
The new test scrollingcoordinator/non-fast-scrollable-region-transformed- iframe.html crashes on Lion.
See http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=scrollingcoordinator%2Fnon-fast-scrollable-region-transformed-iframe.html
* CMakeLists.txt:
* Target.pri:
* WebCore.pri:
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::create):
* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp: Removed.
* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h: Removed.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::flushCompositingState):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
(CoordinatedGraphicsLayerClient):
(WebCore::CoordinatedGraphicsLayer::setFixedToViewport):
2013-02-07 Allan Sandfeld Jensen <allan.jensen@digia.com>
Scrollbars misplaced with accelerated compositing for overflow scroll
https://bugs.webkit.org/show_bug.cgi?id=108625
Reviewed by Simon Fraser.
Scrollbars require their own layer if overflow scroll is composited,
otherwise the scrollbars would be rendered on the content layer and
not fixed to the viewport.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::requiresHorizontalScrollbarLayer):
(WebCore::RenderLayerBacking::requiresVerticalScrollbarLayer):
(WebCore::RenderLayerBacking::requiresScrollCornerLayer):
2013-02-07 Mike West <mkwst@chromium.org>
Don't ASSERT things about uninitialized variables.
https://bugs.webkit.org/show_bug.cgi?id=109187
Reviewed by Jochen Eisinger.
Rather than ASSERTing that an uninitialized ExceptionCode is non-zero
after some method executes, we should use the ASSERT_NO_EXCEPTION macro.
* editing/markup.cpp:
(WebCore::removeElementPreservingChildren):
2013-02-07 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: [Regression] breakpoint condition not editable
https://bugs.webkit.org/show_bug.cgi?id=109183
Reviewed by Vsevolod Vlasov.
Improve TextEditorMainPanel.selection() method to return null if the
selection is set inside of decoration element.
No new tests.
* inspector/front-end/DOMExtension.js:
(Node.prototype.enclosingNodeOrSelfWithClass): Improve to add iteration boundary.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype.selection):
2013-02-07 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
[WK2][EFL][QT]REGRESSION(r142045): Scrolling is broken
https://bugs.webkit.org/show_bug.cgi?id=109185
Reviewed by Kenneth Rohde Christiansen.
This patch is disabling paints clipping logic added at r142045 for the case
when the view should render the entire contents (case of using tiled backing store).
No new tests, covered by plenty of existing manual tests that allow scrolling
(for example fixed-position.html).
* platform/ScrollView.cpp:
(WebCore::ScrollView::paint):
2013-02-07 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Show elements and sources sidebar panes in a tabbed pane when they are below the main pane
https://bugs.webkit.org/show_bug.cgi?id=107552
Reviewed by Pavel Feldman.
Removed the aspect ratio detection logic and implemented explicit user action "Split Horizontally" available
in Elements and Sources panels. When split horizontally the sidebar panes are organized into a tabbed pane.
This user action is behind an experimental flag.
No new tests.
* inspector/front-end/ContextMenu.js:
(WebInspector.ContextMenu.prototype.show):
* inspector/front-end/DOMBreakpointsSidebarPane.js:
(WebInspector.DOMBreakpointsSidebarPane.prototype.createProxy):
(WebInspector.DOMBreakpointsSidebarPane.prototype.onContentReady):
(WebInspector.DOMBreakpointsSidebarPane.Proxy):
(WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype.expanded):
(WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype.expand):
(WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype.collapse):
(WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype.onContentReady):
(WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype.wasShown):
(WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype._reattachBody):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel):
(WebInspector.ElementsPanel.prototype._populateContextMenu):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._clearInterface):
(WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
(WebInspector.ScriptsPanel.prototype._contextMenuEventFired):
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/SidebarPane.js:
(WebInspector.SidebarPane):
(WebInspector.SidebarPane.prototype.prepareContent):
(WebInspector.SidebarPane.prototype.expanded):
(WebInspector.SidebarPane.prototype.expand):
(WebInspector.SidebarPane.prototype.collapse):
(WebInspector.SidebarPane.prototype.onContentReady):
(WebInspector.SidebarPane.prototype._setExpandCallback):
(WebInspector.SidebarPaneStack.prototype.addPane):
(WebInspector.SidebarPaneStack.prototype.activePaneId):
(WebInspector.SidebarPaneStack.prototype.setActivePaneId):
(WebInspector.SidebarPaneStack.prototype._setExpanded):
(WebInspector.SidebarPaneStack.prototype._onPaneExpanded):
(WebInspector.SidebarPaneStack.prototype._collapsePane):
(WebInspector.SidebarTabbedPane):
(WebInspector.SidebarTabbedPane.prototype.addPane):
(WebInspector.SidebarTabbedPane.prototype.activePaneId):
(WebInspector.SidebarTabbedPane.prototype.setActivePaneId):
(WebInspector.SidebarPaneGroup):
(WebInspector.SidebarPaneGroup.prototype.setStacked):
(WebInspector.SidebarPaneGroup.prototype.addPane):
(WebInspector.SidebarPaneGroup.prototype.attachToPanel):
(WebInspector.SidebarPaneGroup.prototype.populateContextMenu.toggleSplitDirection):
(WebInspector.SidebarPaneGroup.prototype.get _contextMenuEventFired):
(WebInspector.SidebarPaneGroup.prototype._onSplitDirectionSettingChanged):
* inspector/front-end/SidebarView.js:
(WebInspector.SidebarView):
(WebInspector.SidebarView.prototype._updateSidebarElementStyle):
(WebInspector.SidebarView.prototype.setVertical):
(WebInspector.SidebarView.prototype.onResize):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.ComputedStyleSidebarPane.prototype.wasShown):
(WebInspector.ComputedStyleSidebarPane.prototype.prepareContent):
* inspector/front-end/inspector.css:
(.sidebar-pane .section .properties, .event-bar .event-properties):
(.pane-title):
(.sidebar-pane-toolbar):
(.sidebar-pane-toolbar > *):
(.sidebar-pane-toolbar > select):
(.sidebar-pane-toolbar > select:hover):
(.sidebar-pane-toolbar > select:active):
(.sidebar-pane-toolbar > select.select-settings):
(.sidebar-pane-toolbar > select.select-filter):
(.sidebar-pane-toolbar > select > option, .sidebar-pane-toolbar > select > hr):
(.sidebar-pane-toolbar > .pane-title-button):
(.sidebar-pane-toolbar > .pane-title-button:hover):
(.sidebar-pane-toolbar > .pane-title-button:active, .sidebar-pane-toolbar > .pane-title-button.toggled):
(.sidebar-pane-toolbar > .pane-title-button.add):
(.sidebar-pane-toolbar > .pane-title-button.element-state):
(.sidebar-pane-toolbar > .pane-title-button.refresh):
(.sidebar-pane):
(.sidebar-pane > .body):
(.sidebar-pane > .body .info):
(.sidebar-pane > .body .placard + .info):
(.sidebar-pane.visible > .body):
(.sidebar-pane > .body .breakpoint-condition):
(.sidebar-pane.visible:nth-last-of-type(1)):
(.sidebar-pane-subtitle):
(.sidebar-pane-subtitle input, .section .header input[type=checkbox]):
(.sidebar-pane .breakpoint-hit):
2013-02-07 Gavin Peters <gavinp@chromium.org>
Unreviewed, rolling out r142111.
http://trac.webkit.org/changeset/142111
https://bugs.webkit.org/show_bug.cgi?id=108055
win7 bot didn't display Arabic, see http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=platform%2Fchromium%2Ffast%2Fforms%2Fcalendar-picker%2Fcalendar-picker-appearance-required-ar.html
* Resources/pagepopups/calendarPicker.css:
(.today-clear-area .today-button):
* Resources/pagepopups/calendarPicker.js:
(CalendarPicker.prototype.fixWindowSize):
2013-02-07 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: [Regression] Map.size() returns negative values.
https://bugs.webkit.org/show_bug.cgi?id=109174
Reviewed by Yury Semikhatsky.
* inspector/front-end/utilities.js:
2013-02-07 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: break details are only rendered upon first debugger pause.
https://bugs.webkit.org/show_bug.cgi?id=109193
Reviewed by Vsevolod Vlasov.
* inspector/front-end/CallStackSidebarPane.js:
(WebInspector.CallStackSidebarPane.prototype.update):
2013-02-07 Gavin Peters <gavinp@chromium.org>
Unreviewed, rolling out r142118.
http://trac.webkit.org/changeset/142118
https://bugs.webkit.org/show_bug.cgi?id=109044
Broke SVG! Oh noes!
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::direction):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::mode):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::takeAllChildrenFrom):
* dom/Document.cpp:
(WebCore::Document::setTitle):
* dom/MessagePort.cpp:
(WebCore::MessagePort::dispatchMessages):
(WebCore::MessagePort::disentanglePorts):
* editing/DeleteButtonController.cpp:
(WebCore::enclosingDeletableElement):
(WebCore::DeleteButtonController::createDeletionUI):
(WebCore::DeleteButtonController::show):
* editing/EditorCommand.cpp:
(WebCore::unionDOMRanges):
* editing/ReplaceNodeWithSpanCommand.cpp:
(WebCore::swapInNodePreservingAttributesAndChildren):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::ReplacementFragment):
(WebCore::ReplacementFragment::removeNode):
(WebCore::ReplacementFragment::insertNodeBefore):
(WebCore::ReplacementFragment::insertFragmentForTestRendering):
(WebCore::ReplacementFragment::restoreAndRemoveTestRenderingNodesToFragment):
(WebCore::ReplaceSelectionCommand::insertAsListItems):
* editing/SplitTextNodeCommand.cpp:
(WebCore::SplitTextNodeCommand::doUnapply):
* editing/TextIterator.cpp:
(WebCore::CharacterIterator::range):
(WebCore::BackwardsCharacterIterator::range):
(WebCore::TextIterator::rangeFromLocationAndLength):
(WebCore::collapsedToBoundary):
* editing/htmlediting.cpp:
(WebCore::createTabSpanElement):
* editing/mac/EditorMac.mm:
(WebCore::Editor::fontForSelection):
(WebCore::Editor::fontAttributesForSelectionStart):
* editing/markup.cpp:
(WebCore::createMarkup):
(WebCore::trimFragment):
(WebCore::createFragmentFromMarkupWithContext):
(WebCore::fillContainerFromString):
(WebCore::createFragmentFromText):
(WebCore::createFragmentFromNodes):
* html/ColorInputType.cpp:
(WebCore::ColorInputType::createShadowSubtree):
* html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::add):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::updatePlaceholderText):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::indexForVisiblePosition):
(WebCore::HTMLTextFormControlElement::setInnerTextValue):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::updatePlaceholderText):
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::buildBubbleTree):
* html/shadow/MediaControlElementTypes.cpp:
(WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::getCookies):
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::addRule):
* loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::dispatchDOMEvent):
* page/DOMSelection.cpp:
(WebCore::DOMSelection::deleteFromDocument):
* page/DragController.cpp:
(WebCore::prepareClipboardForImageDrag):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::visiblePositionForIndex):
* rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::initialBaselineShiftValue):
(WebCore::SVGRenderStyle::initialKerning):
(WebCore::SVGRenderStyle::initialStrokeDashOffset):
(WebCore::SVGRenderStyle::initialStrokeWidth):
* svg/SVGAnimatedLength.cpp:
(WebCore::sharedSVGLength):
(WebCore::SVGAnimatedLengthAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
* svg/SVGAnimatedLengthList.cpp:
(WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
* svg/SVGLength.cpp:
(WebCore::SVGLength::SVGLength):
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::textLengthAnimated):
* svg/animation/SVGSMILElement.cpp:
(WebCore::constructQualifiedName):
2013-02-07 Kentaro Hara <haraken@chromium.org>
Remove #if USE(V8) from IDBRequest.h
https://bugs.webkit.org/show_bug.cgi?id=109163
Reviewed by Andreas Kling.
The header included inside the #if USE(V8) macro is not used.
We can simply remove it.
No tests. No change in behavior.
* Modules/indexeddb/IDBRequest.h:
2013-02-07 Stephen Chenney <schenney@chromium.org>
GraphicsContext::drawImageBuffer is inefficient
https://bugs.webkit.org/show_bug.cgi?id=104367
Reviewed by Dirk Schulze.
This patch converts all of the drawImage and drawImageBuffer
convenience methods (those that take parameters of various types) to
invoke the implementing method (that takes FloatRect src and dest)
directly, rather than through the next-most-convenient method as was
done previously. This will knock some layers off the stack compared
to the existing code, and may remove one or two constructor invocations.
This may be slightly more efficient, and also makes debugging simpler.
Also removes the unused drawImage method that takes and IntRect source
area and IntRect destination. It is not invoked anywhere in a standard
WebKit checkout.
No new tests. No change in functionality, just refactoring.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage): Modify all the convenience versions to call
the implementing version directly.
(WebCore::GraphicsContext::drawImageBuffer): Modify all the convenience versions
to call the implementing version directly.
* platform/graphics/GraphicsContext.h:
(GraphicsContext): Remove IntRect, IntRect version of drawImage.
2013-02-07 Kent Tamura <tkent@chromium.org>
Conversion from localized numbers to HTML numbers should accept not only localized numbers but also HTML numbers
https://bugs.webkit.org/show_bug.cgi?id=109160
Reviewed by Kentaro Hara.
For example, A French user needs to specify a number to a number input
field. He might use a local decimal point, like 3,141592, or he might
use the standard decimal point like 3.141592. We had better accept both
of them.
We accepted both last year, but we changed the behavior so that we
accept only localized numbers because we had some cases where an input
string can be recognized as both of a localized number and the standard
number. e.g. 3.141 is 3141 in French locale and 3.141 in the
standard. Now we introduce a simple rule that we don't accept group
separator at all. So users won't confuse even if we accept both of
decimal points.
Test: fast/forms/number/number-l10n-input.html
* platform/text/PlatformLocale.cpp:
(WebCore::Locale::convertFromLocalizedNumber):
If the specified string contains invalid characters including group
separators, just return the specified string.
2013-02-07 Xiaobo Wang <xbwang@torchmobile.com.cn>
[BlackBerry] CHHW - Characters that are using 32 bits encoding get trunked to 16bits
https://bugs.webkit.org/show_bug.cgi?id=109126
PR 292540
Reviewed by Yong Li.
Change char code to 4 bytes.
Need to convert UTF32 key char to UTF16 before constructing a WTF::String.
* platform/PlatformKeyboardEvent.h:
(WebCore::PlatformKeyboardEvent::unmodifiedCharacter):
(PlatformKeyboardEvent):
* platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
(WebCore::keyIdentifierForBlackBerryCharacter):
(WebCore::windowsKeyCodeForBlackBerryCharacter):
(WebCore::adjustCharacterFromOS):
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2013-02-07 Mike West <mkwst@chromium.org>
Replace ExceptionCode assertions with ASSERT_NO_EXCEPTION macro.
https://bugs.webkit.org/show_bug.cgi?id=109044
Reviewed by Darin Adler.
The pattern:
ExceptionCode ec = 0;
methodThatGeneratesException(ec);
ASSERT(!ec);
is more clearly and succinctly written as:
methodThatGeneratesException(ASSERT_NO_EXCEPTION);
This patch replaces the occurances of the former that never touch 'ec'
again with the latter. It does the same for 'ASSERT(ec == 0);' (and, as
a drive-by, replaces 'ASSERT(ec == 0)' with 'ASSERT(!ec)' in places
where it does indeed matter that 'ec' get set properly.
No change in behavior should result from this refactoring.
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::direction):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::mode):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::takeAllChildrenFrom):
* dom/Document.cpp:
(WebCore::Document::setTitle):
* dom/MessagePort.cpp:
(WebCore::MessagePort::dispatchMessages):
(WebCore::MessagePort::disentanglePorts):
* editing/DeleteButtonController.cpp:
(WebCore::enclosingDeletableElement):
(WebCore::DeleteButtonController::createDeletionUI):
Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
(WebCore::DeleteButtonController::show):
Replaced 'ASSERT(ec == 0)' with 'ASSERT(!ec)' to match the style guide.
* editing/EditorCommand.cpp:
(WebCore::unionDOMRanges):
* editing/ReplaceNodeWithSpanCommand.cpp:
(WebCore::swapInNodePreservingAttributesAndChildren):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::ReplacementFragment):
(WebCore::ReplacementFragment::removeNode):
(WebCore::ReplacementFragment::insertNodeBefore):
(WebCore::ReplacementFragment::insertFragmentForTestRendering):
(WebCore::ReplacementFragment::restoreAndRemoveTestRenderingNodesToFragment):
(WebCore::ReplaceSelectionCommand::insertAsListItems):
* editing/SplitTextNodeCommand.cpp:
(WebCore::SplitTextNodeCommand::doUnapply):
* editing/TextIterator.cpp:
(WebCore::CharacterIterator::range):
(WebCore::BackwardsCharacterIterator::range):
(WebCore::TextIterator::rangeFromLocationAndLength):
(WebCore::collapsedToBoundary):
* editing/htmlediting.cpp:
(WebCore::createTabSpanElement):
* editing/mac/EditorMac.mm:
(WebCore::Editor::fontForSelection):
(WebCore::Editor::fontAttributesForSelectionStart):
* editing/markup.cpp:
(WebCore::createMarkup):
(WebCore::trimFragment):
(WebCore::createFragmentFromMarkupWithContext):
(WebCore::fillContainerFromString):
(WebCore::createFragmentFromText):
(WebCore::createFragmentFromNodes):
* html/ColorInputType.cpp:
(WebCore::ColorInputType::createShadowSubtree):
Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
* html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::add):
Replaced 'ASSERT(ec == 0)' with 'ASSERT(!ec)' to match the style guide.
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::updatePlaceholderText):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::indexForVisiblePosition):
(WebCore::HTMLTextFormControlElement::setInnerTextValue):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::updatePlaceholderText):
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::buildBubbleTree):
* html/shadow/MediaControlElementTypes.cpp:
(WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::getCookies):
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::addRule):
* loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::dispatchDOMEvent):
* page/DOMSelection.cpp:
(WebCore::DOMSelection::deleteFromDocument):
* page/DragController.cpp:
(WebCore::prepareClipboardForImageDrag):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::visiblePositionForIndex):
* rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::initialBaselineShiftValue):
(WebCore::SVGRenderStyle::initialKerning):
(WebCore::SVGRenderStyle::initialStrokeDashOffset):
(WebCore::SVGRenderStyle::initialStrokeWidth):
* svg/SVGAnimatedLength.cpp:
(WebCore::sharedSVGLength):
(WebCore::SVGAnimatedLengthAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
* svg/SVGAnimatedLengthList.cpp:
(WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
* svg/SVGLength.cpp:
(WebCore::SVGLength::SVGLength):
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::textLengthAnimated):
* svg/animation/SVGSMILElement.cpp:
(WebCore::constructQualifiedName):
Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
2013-02-07 Mary Wu <mary.wu@torchmobile.com.cn>
[BlackBerry] Export mimeType in NetworkJob
https://bugs.webkit.org/show_bug.cgi?id=109002
Reviewed by Yong Li.
NetworkJob will analysize resource mimetype and set it to resourceResponse,
we will pass it on to be used by other Streams like download stream.
RIM bug# 284408, internally reviewed by Liam Quinn.
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::mimeType):
(WebCore):
* platform/network/blackberry/NetworkJob.h:
(NetworkJob):
2013-02-07 Peter Rybin <prybin@chromium.org>
Web Inspector: support JavaScript variable mutation in protocol and V8 bindings
https://bugs.webkit.org/show_bug.cgi?id=107829
A new command is added to protocol description and the call is passed through
debugger agent through injected script and debugger script down to V8 mirror
API. JSC bindings got a thorw exception stub.
Only declarative JavaScript scopes are supported (local, closure, catch). Other
scopes (global, with) are not supported by V8 and not supported by protocol, because
manual approach (direct property assigment) is available for them in form of evaluate
commands and is more desirable because of a complex nature of operation (it can throw
exception in several cases such as exception in setter function).
Reviewed by Pavel Feldman.
Test: inspector-protocol/debugger-setVariableValue.html
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::setFunctionVariableValue):
(WebCore):
* bindings/js/JSJavaScriptCallFrameCustom.cpp:
(WebCore::JSJavaScriptCallFrame::setVariableValue):
(WebCore):
* bindings/v8/DebuggerScript.js:
(.):
* bindings/v8/JavaScriptCallFrame.cpp:
(WebCore::JavaScriptCallFrame::setVariableValue):
(WebCore):
* bindings/v8/JavaScriptCallFrame.h:
(JavaScriptCallFrame):
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::setFunctionVariableValue):
(WebCore):
* bindings/v8/ScriptDebugServer.h:
(ScriptDebugServer):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::V8InjectedScriptHost::setFunctionVariableValueCallback):
(WebCore):
* bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
(WebCore::V8JavaScriptCallFrame::setVariableValueCallback):
(WebCore):
* inspector/InjectedScript.cpp:
(WebCore::InjectedScript::setVariableValue):
(WebCore):
* inspector/InjectedScript.h:
(InjectedScript):
* inspector/InjectedScriptHost.idl:
* inspector/InjectedScriptSource.js:
(.):
* inspector/Inspector.json:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::getFunctionDetails):
(WebCore::InspectorDebuggerAgent::setVariableValue):
(WebCore):
* inspector/InspectorDebuggerAgent.h:
(InspectorDebuggerAgent):
* inspector/JavaScriptCallFrame.idl:
2013-02-07 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
[CoordinatedGraphics] Use ScrollingCoordinator to track fixed layers
https://bugs.webkit.org/show_bug.cgi?id=108990
Reviewed by Noam Rosenthal.
WebCore keeps ScrollingCoordinator up-to-date about whether layers are fixed or not, so we
don't need to traverse the tree every frame to get this information.
The function ScrollingCoordinator::setLayerIsFixedToContainerLayer() is called when
RenderLayerBacking is updating its graphics layers.
The new code also works in new situations where the previous was broken: if a layer changed
from being fixed to not fixed (but still kept as a layer for other reasons), the layer will
be correctly updated. Previous implementation only had logic to mark layers as fixed, but
not the other way round. A manual test was added to illustrate the solved problem.
Testing was done with the existing manual tests that make use of "position:fixed". Automatic
tests are mostly not affected by this because usage of this information affects only the
UseFixedLayout mode, not used by default in WebKitTestRunner. Work to improve this situation
will be tracked in bug https://bugs.webkit.org/show_bug.cgi?id=109175.
* CMakeLists.txt:
* Target.pri:
* WebCore.pri:
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::create): create specific version of ScrollingCoordinator.
* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp: Added.
(WebCore):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::setLayerIsFixedToContainerLayer):
update layer information using existing hook in ScrollingCoordinator.
* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h: Added.
(WebCore):
(ScrollingCoordinatorCoordinatedGraphics):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::setFixedToViewport): now that setting viewport is not
embedded in the synchronization work, we need to mark the layer so it is updated in the
next frame.
(WebCore):
(WebCore::CoordinatedGraphicsLayer::flushCompositingState): remove call to syncFixedLayers().
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
(CoordinatedGraphicsLayerClient): remove now unused syncFixedLayers() from client.
(CoordinatedGraphicsLayer):
2013-02-07 Keishi Hattori <keishi@webkit.org>
REGRESSION (r140778): Calendar Picker doesn't open when the element has the required attribute
https://bugs.webkit.org/show_bug.cgi?id=109136
Reviewed by Kent Tamura.
Calendar picker was using the "Clear" button to calculate the window width.
Since it doesn't exist when the input element has a required attribute,
it was throwing an error. This patch fixes the width calculating logic.
Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-required-ar.html
platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-required.html
* Resources/pagepopups/calendarPicker.css:
(.today-clear-area):
* Resources/pagepopups/calendarPicker.js:
(CalendarPicker.prototype.fixWindowSize): Fixing the logic to calculate
the width. We don't want to use clear button because it doesn't exist
when a value is required.
2013-02-07 Gustavo Noronha Silva <gns@gnome.org>
Unreviewed build fix. libWebCore.la needs to be relinked when
symbols.filter changes.
* GNUmakefile.am: add symbols.filter as a dependency for the
libWebCore.la library.
2013-02-07 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Closure compilation fixes
https://bugs.webkit.org/show_bug.cgi?id=109131
Reviewed by Yury Semikhatsky.
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel):
* inspector/front-end/FileSystemMapping.js:
(WebInspector.FileSystemMappingImpl.prototype.uriPrefixForPathPrefix):
* inspector/front-end/IsolatedFileSystemModel.js:
(WebInspector.IsolatedFileSystemModel.prototype._fileSystemRemoved):
* inspector/front-end/SidebarPane.js:
2013-02-07 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r142077.
http://trac.webkit.org/changeset/142077
https://bugs.webkit.org/show_bug.cgi?id=108579
fast/filesystem/workers/file-writer-empty-blob.html is broken
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::setWrapperInObject):
* bindings/v8/DOMWrapperWorld.h:
(DOMWrapperWorld):
(WebCore::DOMWrapperWorld::isolated):
* bindings/v8/V8Binding.h:
(WebCore):
(WebCore::worldForEnteredContextIfIsolated):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initializeIfNeeded):
* bindings/v8/V8GCController.cpp:
(WebCore::WrapperVisitor::WrapperVisitor):
(WebCore):
(WebCore::gcTree):
(WebCore::V8GCController::didCreateWrapperForNode):
(WebCore::V8GCController::gcPrologue):
(WebCore::V8GCController::minorGCPrologue):
(WebCore::V8GCController::majorGCPrologue):
* bindings/v8/V8GCController.h:
(V8GCController):
2013-02-07 Tony Gentilcore <tonyg@chromium.org>
Call XSSAuditor.filterToken() from threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=107603
Reviewed by Adam Barth.
With this patch we now pass 180 of 182 tests in http/tests/security/xssAuditor.
We do this by creating aan XSSAuditor on the main thread and passing ownership of them to the BackgroundHTMLParser upon its creation.
Then the background thread calls filterToken() and stores the resulting XSSInfo (if any) on the CompactHTMLToken for the main thread to handle.
This involved trimming the XSSAuditor to only depend on the TextEncoding instead of the whole TextResourceDecoder.
No new tests because covered by existing tests.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(WebCore::BackgroundHTMLParser::createPartial):
* html/parser/BackgroundHTMLParser.h:
(WebCore):
(WebCore::BackgroundHTMLParser::create):
(BackgroundHTMLParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::pumpTokenizer):
(WebCore::HTMLDocumentParser::startBackgroundParser):
* html/parser/HTMLSourceTracker.cpp:
(WebCore::HTMLSourceTracker::start):
(WebCore::HTMLSourceTracker::end):
* html/parser/HTMLSourceTracker.h: Change the HTMLInputStream args to SegmentedString because the background thread only has a BackgroundHTMLInputStream.
(HTMLSourceTracker):
* html/parser/HTMLViewSourceParser.cpp:
(WebCore::HTMLViewSourceParser::pumpTokenizer):
* html/parser/XSSAuditor.cpp:
(WebCore::fullyDecodeString):
(WebCore::XSSAuditor::XSSAuditor):
(WebCore::XSSAuditor::init): Copies necessary to make isSafeToSendToAnotherThread() happy.
(WebCore::XSSAuditor::decodedSnippetForName):
(WebCore::XSSAuditor::decodedSnippetForAttribute):
(WebCore::XSSAuditor::decodedSnippetForJavaScript):
(WebCore::XSSAuditor::isSafeToSendToAnotherThread): Check that all String and KURL members are safe to send to another thread.
(WebCore):
* html/parser/XSSAuditor.h:
(WebCore):
(WebCore::FilterTokenRequest::FilterTokenRequest):
(FilterTokenRequest):
(XSSAuditor):
2013-02-07 ChangSeok Oh <shivamidow@gmail.com>
[GTK][AC] Implement opacity animation with clutter ac backend
https://bugs.webkit.org/show_bug.cgi?id=108961
Reviewed by Gustavo Noronha Silva.
Implement opacity animation with clutter ac backend.
Almost all implementations of GraphicsLayerClutter are based on mac port's one.
PlatformClutterAnimation interfaces are also similar with mac port, but they are implemented
with native clutter APIs.
This patch includes only opacity animation related changes, so many APIs might be empty.
Remained animations like rotation and translate will be dealt in another patches.
Covered by existing animation tests.
* GNUmakefile.list.am:
* platform/graphics/clutter/GraphicsLayerActor.cpp:
(graphicsLayerActorGetAnimationForKey):
* platform/graphics/clutter/GraphicsLayerActor.h:
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore):
(WebCore::propertyIdToString):
(WebCore::animationIdentifier):
(WebCore::animationHasStepsTimingFunction):
(WebCore::GraphicsLayerClutter::setOpacity):
(WebCore::GraphicsLayerClutter::updateAnimations):
(WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerClutter::setupAnimation):
(WebCore::GraphicsLayerClutter::timingFunctionForAnimationValue):
(WebCore::GraphicsLayerClutter::createBasicAnimation):
(WebCore::GraphicsLayerClutter::createKeyframeAnimation):
(WebCore::GraphicsLayerClutter::setTransformAnimationKeyframes):
(WebCore::GraphicsLayerClutter::setTransformAnimationEndpoints):
(WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
(WebCore::GraphicsLayerClutter::createAnimationFromKeyframes):
(WebCore::GraphicsLayerClutter::addAnimation):
(WebCore::GraphicsLayerClutter::removeClutterAnimationFromLayer):
(WebCore::GraphicsLayerClutter::pauseClutterAnimationOnLayer):
(WebCore::GraphicsLayerClutter::setAnimationOnLayer):
(WebCore::GraphicsLayerClutter::setAnimationEndpoints):
(WebCore::GraphicsLayerClutter::setAnimationKeyframes):
(WebCore::GraphicsLayerClutter::animatedLayer):
* platform/graphics/clutter/GraphicsLayerClutter.h:
(GraphicsLayerClutter):
(WebCore::GraphicsLayerClutter::LayerPropertyAnimation::LayerPropertyAnimation):
(LayerPropertyAnimation):
(WebCore::GraphicsLayerClutter::AnimationProcessingAction::AnimationProcessingAction):
(AnimationProcessingAction):
* platform/graphics/clutter/PlatformClutterAnimation.cpp: Added.
(WebCore):
(WebCore::timelineStartedCallback):
(WebCore::toClutterAnimationMode):
(WebCore::PlatformClutterAnimation::stringToAnimatedPropertyType):
(WebCore::PlatformClutterAnimation::create):
(WebCore::PlatformClutterAnimation::PlatformClutterAnimation):
(WebCore::PlatformClutterAnimation::~PlatformClutterAnimation):
(WebCore::PlatformClutterAnimation::supportsValueFunction):
(WebCore::PlatformClutterAnimation::beginTime):
(WebCore::PlatformClutterAnimation::setBeginTime):
(WebCore::PlatformClutterAnimation::duration):
(WebCore::PlatformClutterAnimation::setDuration):
(WebCore::PlatformClutterAnimation::speed):
(WebCore::PlatformClutterAnimation::setSpeed):
(WebCore::PlatformClutterAnimation::timeOffset):
(WebCore::PlatformClutterAnimation::setTimeOffset):
(WebCore::PlatformClutterAnimation::repeatCount):
(WebCore::PlatformClutterAnimation::setRepeatCount):
(WebCore::PlatformClutterAnimation::autoreverses):
(WebCore::PlatformClutterAnimation::setAutoreverses):
(WebCore::PlatformClutterAnimation::fillMode):
(WebCore::PlatformClutterAnimation::setFillMode):
(WebCore::PlatformClutterAnimation::setTimingFunction):
(WebCore::PlatformClutterAnimation::copyTimingFunctionFrom):
(WebCore::PlatformClutterAnimation::isRemovedOnCompletion):
(WebCore::PlatformClutterAnimation::setRemovedOnCompletion):
(WebCore::PlatformClutterAnimation::isAdditive):
(WebCore::PlatformClutterAnimation::setAdditive):
(WebCore::PlatformClutterAnimation::valueFunction):
(WebCore::PlatformClutterAnimation::setValueFunction):
(WebCore::PlatformClutterAnimation::setFromValue):
(WebCore::PlatformClutterAnimation::copyFromValueFrom):
(WebCore::PlatformClutterAnimation::setToValue):
(WebCore::PlatformClutterAnimation::copyToValueFrom):
(WebCore::PlatformClutterAnimation::setValues):
(WebCore::PlatformClutterAnimation::copyValuesFrom):
(WebCore::PlatformClutterAnimation::setKeyTimes):
(WebCore::PlatformClutterAnimation::copyKeyTimesFrom):
(WebCore::PlatformClutterAnimation::setTimingFunctions):
(WebCore::PlatformClutterAnimation::copyTimingFunctionsFrom):
(WebCore::PlatformClutterAnimation::animationDidStart):
(WebCore::PlatformClutterAnimation::timeline):
(WebCore::PlatformClutterAnimation::addOpacityTransition):
(WebCore::PlatformClutterAnimation::addAnimationForKey):
(WebCore::PlatformClutterAnimation::removeAnimationForKey):
* platform/graphics/clutter/PlatformClutterAnimation.h: Added.
(WebCore):
(PlatformClutterAnimation):
(WebCore::PlatformClutterAnimation::animationType):
2013-02-07 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: highlight matching braces in DTE.
https://bugs.webkit.org/show_bug.cgi?id=108697
Reviewed by Pavel Feldman.
Implement BraceMatcher class which for given position in textModel
will respond with enclosing brace pair for that position.
Make use of this class in DefaultTextEditor by handling
selectionChange event. Make use of this class in "_closingBlockOffset"
method of TextEditorMainPanel as this method implements similar
functionality.
New test: inspector/editor/brace-matcher.html
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel):
(WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
(WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
(WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
(WebInspector.TextEditorMainPanel.BraceHighlightController):
(WebInspector.TextEditorMainPanel.BraceHighlightController.prototype.handleSelectionChange):
* inspector/front-end/TextEditorHighlighter.js:
(WebInspector.TextEditorHighlighter.prototype._highlightLines):
* inspector/front-end/TextEditorModel.js:
(WebInspector.TextEditorModel.endsWithBracketRegex):
(WebInspector.TextEditorModel.endsWithBracketRegex.):
* inspector/front-end/textEditor.css:
(.text-editor-brace-match):
2013-02-05 Eunmi Lee <eunmi15.lee@samsung.com> and Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
[EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries.
https://bugs.webkit.org/show_bug.cgi?id=97173
Reviewed by Kenneth Rohde Christiansen, signed-off by Benjamin Poulain.
Remove codes to initialize and shutdown the EFL libraries from
RunLoopEfl.cpp. Initialization and shutdown will be done in the
ewk_main.cpp for ui process and WebProcessMainEfl.cpp for web
process.
No new tests. This patch doesn't change behavior.
* platform/efl/RunLoopEfl.cpp:
(WebCore::RunLoop::RunLoop):
(WebCore::RunLoop::~RunLoop):
2013-02-07 Ilya Tikhonovsky <loislo@chromium.org>
Unreviewed fix for inspector tests in debug.
m_frontend should be initialized in constructor.
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
2013-02-07 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: reduce number of native memory instrumentation categories
https://bugs.webkit.org/show_bug.cgi?id=109146
Reviewed by Pavel Feldman.
Merged some of memory instrumentation categories.
* dom/WebCoreMemoryInstrumentation.cpp:
(WebCore):
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.MemoryBlockViewProperties._initialize):
* platform/PlatformMemoryInstrumentation.cpp:
(WebCore):
2013-02-04 Kentaro Hara <haraken@chromium.org>
[V8] Remove V8GCController::m_edenNodes and make minor DOM GC more precise
https://bugs.webkit.org/show_bug.cgi?id=108579
Reviewed by Adam Barth.
Currently V8GCController::m_edenNodes stores a list of nodes whose
wrappers have been created since the latest GC. The reason why we
needed m_edenNodes is that there was no way to know a list of wrappers
in the new space of V8. By using m_edenNodes, we had been approximating
'wrappers in the new space' by 'wrappers that have been created since
the latest GC'.
Now V8 provides VisitHandlesForPartialDependence(), with which WebKit
can know a list of wrappers in the new space. By using the API, we can
remove V8GCController::m_edenNodes. The benefit is that (1) we no longer
need to keep m_edenNodes and that (2) it enables more precise minor
DOM GC (Remember that m_edenNodes was just an approximation).
Performance benchmark: https://bugs.webkit.org/attachment.cgi?id=185940
The benchmark runs 300 iterations, each of which creates 100000 elements.
The benchmark measures average, min, median, max and stdev of execution times
of the 300 iterations. This will tell us the worst-case overhead of this change.
Before:
mean=59.91ms, min=39ms, median=42ms, max=258ms, stdev=47.48ms
After:
mean=58.75ms, min=35ms, median=41ms, max=250ms, stdev=47.32ms
As shown above, I couldn't observe any performance regression.
No tests. No change in behavior.
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::setWrapperInObject):
* bindings/v8/DOMWrapperWorld.h:
(DOMWrapperWorld):
(WebCore::DOMWrapperWorld::getWorldWithoutContextCheck):
* bindings/v8/V8Binding.h:
(WebCore):
(WebCore::worldForEnteredContextIfIsolated):
(WebCore::worldForEnteredContextWithoutContextCheck):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initializeIfNeeded):
* bindings/v8/V8GCController.cpp:
(WebCore::gcTree):
(WebCore):
(MinorGCWrapperVisitor):
(WebCore::MinorGCWrapperVisitor::MinorGCWrapperVisitor):
(WebCore::MinorGCWrapperVisitor::notifyFinished):
(WebCore::MajorGCWrapperVisitor::MajorGCWrapperVisitor):
(WebCore::V8GCController::gcPrologue):
(WebCore::V8GCController::minorGCPrologue):
(WebCore::V8GCController::majorGCPrologue):
* bindings/v8/V8GCController.h:
(V8GCController):
2013-02-06 Kent Tamura <tkent@chromium.org>
REGRESSION(r141195): INPUT_MULTIPLE_FIELDS_UI: Space in a placeholder string is removed
https://bugs.webkit.org/show_bug.cgi?id=109132
Reviewed by Hajime Morita.
<input type=date> should be shown in Japanese UI as:
[ 年 /月/日]
But it is shown wrongly since r141195:
[年 /月/日]
We should use white-space:pre.
No new tests. This change is not testable in WebKit because this
requires a Japanese-localized UI string of Chromium.
* css/html.css:
(input::-webkit-datetime-edit-fields-wrapper):
Use white-space:pre instead of nowrap.
2013-02-06 Kentaro Hara <haraken@chromium.org>
Remove DOMWindow::parseModalDialogFeatures()
https://bugs.webkit.org/show_bug.cgi?id=109139
Reviewed by Kent Tamura.
No one uses the method. FIXME is saying:
// FIXME: We can remove this function once V8 showModalDialog is changed to use DOMWindow.
Given that V8's showModalDialog() is now using DOMWindow, we can remove it.
No tests. No change in behavior.
* page/DOMWindow.cpp:
* page/DOMWindow.h:
(DOMWindow):
2013-02-06 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: reduce native heap snapshot runtime memory footprint
https://bugs.webkit.org/show_bug.cgi?id=108824
Reviewed by Yury Semikhatsky.
New event was added into Memory domain addNativeSnapshotChunk.
The content of HeapGraphSerializer is completely rewritten according to new API.
Now it collects strings, nodes, edges and id2id map and pushes when the collected items count exceed a limit.
On the frontend side I added new method for the new event and fixed the postprocessing step.
MemoryInstrumentation was slightly changed. Now it reports base to real address map only after reporting the node with real address.
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::HeapGraphSerializer):
(WebCore::HeapGraphSerializer::pushUpdateIfNeed):
(WebCore):
(WebCore::HeapGraphSerializer::pushUpdate):
(WebCore::HeapGraphSerializer::reportNode):
(WebCore::HeapGraphSerializer::reportNodeImpl):
(WebCore::HeapGraphSerializer::reportEdge):
(WebCore::HeapGraphSerializer::reportEdgeImpl):
(WebCore::HeapGraphSerializer::reportLeaf):
(WebCore::HeapGraphSerializer::reportBaseAddress):
(WebCore::HeapGraphSerializer::finish):
(WebCore::HeapGraphSerializer::reportMemoryUsage):
(WebCore::HeapGraphSerializer::addString):
(WebCore::HeapGraphSerializer::toNodeId):
(WebCore::HeapGraphSerializer::addRootNode):
* inspector/HeapGraphSerializer.h:
(HeapGraphSerializer):
* inspector/Inspector.json:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::processMemoryDistribution):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistributionMap):
(WebCore):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
(WebCore::InspectorMemoryAgent::setFrontend):
(WebCore::InspectorMemoryAgent::clearFrontend):
* inspector/InspectorMemoryAgent.h:
(InspectorMemoryAgent):
* inspector/front-end/NativeHeapSnapshot.js:
(WebInspector.NativeHeapSnapshot):
(WebInspector.NativeHeapSnapshotNode.prototype.classIndex):
(WebInspector.NativeHeapSnapshotNode.prototype.id):
(WebInspector.NativeHeapSnapshotNode.prototype.name):
(WebInspector.NativeHeapSnapshotNode.prototype.serialize):
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeSnapshotProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
(WebInspector.NativeSnapshotProfileType.prototype.buttonClicked):
(WebInspector.NativeSnapshotProfileHeader):
(WebInspector.NativeSnapshotProfileHeader.prototype.startSnapshotTransfer):
(WebInspector.NativeSnapshotProfileHeader.prototype.addNativeSnapshotChunk):
(WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
(WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
(WebInspector.NativeMemoryBarChart.prototype._updateStats):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel):
(WebInspector.MemoryDispatcher):
(WebInspector.MemoryDispatcher.prototype.addNativeSnapshotChunk):
2013-02-03 Kentaro Hara <haraken@chromium.org>
WebKit's focus events are UIEvents (instead of FocusEvent) and thus don't expose .relatedTarget
https://bugs.webkit.org/show_bug.cgi?id=76216
Reviewed by Eric Seidel.
Spec: http://www.w3.org/TR/DOM-Level-3-Events/#events-FocusEvent
This patch creates a new FocusEvent class with a relatedTarget attribute.
Now when focusin or focusout events are dispatched, a FocusEvent is created with
the relatedTarget attribute set accordingly.
Test: fast/events/related-target-focusevent.html
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* dom/DOMAllInOne.cpp:
* dom/Event.cpp:
(WebCore::Event::isFocusEvent):
(WebCore):
* dom/Event.h:
(Event):
* dom/EventContext.cpp:
(WebCore::EventContext::handleLocalEvents):
* dom/EventNames.in:
* dom/FocusEvent.h: Added.
(WebCore):
(FocusEvent):
(WebCore::FocusEvent::create):
(WebCore::FocusEvent::relatedTarget):
(WebCore::FocusEvent::setRelatedTarget):
(WebCore::toFocusEvent):
* dom/FocusEvent.idl: Added.
* dom/Node.cpp:
(WebCore::Node::dispatchFocusInEvent):
(WebCore::Node::dispatchFocusOutEvent):
2013-02-06 Kent Tamura <tkent@chromium.org>
Fix style of RenderTheme.cpp and RenderThemeChromiumWin.h
https://bugs.webkit.org/show_bug.cgi?id=109137
Reviewed by Kentaro Hara.
No new tests. Just style fix.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintBorderOnly):
(WebCore::RenderTheme::paintDecorations):
(WebCore::RenderTheme::isControlStyled):
(WebCore::RenderTheme::adjustButtonStyle):
(WebCore::RenderTheme::systemColor):
* rendering/RenderThemeChromiumWin.h:
(WebCore::ThemeData::ThemeData):
(ThemeData):
(RenderThemeChromiumWin):
(WebCore::RenderThemeChromiumWin::RenderThemeChromiumWin):
(WebCore::RenderThemeChromiumWin::~RenderThemeChromiumWin):
2013-02-06 Kent Tamura <tkent@chromium.org>
Fix style of Chrome.h and Page.h
https://bugs.webkit.org/show_bug.cgi?id=109138
Reviewed by Ryosuke Niwa.
No new tests. Just style fixes.
* page/Chrome.h:
(WebCore):
(Chrome):
(WebCore::Chrome::client):
* page/Page.h:
(JSC):
(WebCore):
(WebCore::ArenaSize::ArenaSize):
(ArenaSize):
(Page):
(PageClients):
(WebCore::Page::theme):
(WebCore::Page::canStartMedia):
(WebCore::Page::editorClient):
(WebCore::Page::plugInClient):
(WebCore::Page::mainFrame):
(WebCore::Page::groupPtr):
(WebCore::Page::incrementSubframeCount):
(WebCore::Page::decrementSubframeCount):
(WebCore::Page::subframeCount):
(WebCore::Page::chrome):
(WebCore::Page::dragCaretController):
(WebCore::Page::dragController):
(WebCore::Page::focusController):
(WebCore::Page::contextMenuController):
(WebCore::Page::inspectorController):
(WebCore::Page::pointerLockController):
(WebCore::Page::validationMessageClient):
(WebCore::Page::settings):
(WebCore::Page::progress):
(WebCore::Page::backForward):
(WebCore::Page::featureObserver):
(WebCore::Page::viewMode):
(WebCore::Page::setTabKeyCyclesThroughElements):
(WebCore::Page::tabKeyCyclesThroughElements):
(WebCore::Page::scheduledRunLoopPairs):
(WebCore::Page::defersLoading):
(WebCore::Page::mediaVolume):
(WebCore::Page::pageScaleFactor):
(WebCore::Page::deviceScaleFactor):
(WebCore::Page::shouldSuppressScrollbarAnimations):
(WebCore::Page::pagination):
(WebCore::Page::isOnscreen):
(WebCore::Page::scriptedAnimationsSuspended):
(WebCore::Page::debugger):
(WebCore::Page::hasCustomHTMLTokenizerTimeDelay):
(WebCore::Page::customHTMLTokenizerTimeDelay):
(WebCore::Page::hasCustomHTMLTokenizerChunkSize):
(WebCore::Page::customHTMLTokenizerChunkSize):
(WebCore::Page::areMemoryCacheClientCallsEnabled):
(WebCore::Page::setEditable):
(WebCore::Page::isEditable):
(WebCore::Page::displayID):
(WebCore::Page::layoutMilestones):
(WebCore::Page::setIsPainting):
(WebCore::Page::isPainting):
(WebCore::Page::alternativeTextClient):
(WebCore::Page::checkSubframeCountConsistency):
(WebCore::Page::group):
2013-02-06 Mike West <mkwst@chromium.org>
Entity-header extension headers honored on 304 responses.
https://bugs.webkit.org/show_bug.cgi?id=72414
Reviewed by Alexey Proskuryakov.
This patch ports Chromium's network stack logic governing header
updates after resource revalidation. Generally, headers sent with 304
responses ought to update the original cached resource's headers.
Certain headers should never be sent with 304 responses, and we should
ignore them if a misconfigured server sends them anyway.
Currently, WebCore ignores all headers prefixed with 'content-'. This
patch adds 'x-content-' and 'x-webkit-' to the list, as well as specific
headers like 'upgrade', 'trailer', and others that the Chromium network
stack currently ignores.
The tests verify that those headers with visible effect are correctly
handled: 'x-frame-options', 'content-security-policy', and
'x-xss-protection'.
Tests: http/tests/security/XFrameOptions/x-frame-options-cached.html
http/tests/security/contentSecurityPolicy/cached-frame-csp.html
http/tests/security/xssAuditor/cached-frame.html
* loader/cache/CachedResource.cpp:
(WebCore):
(WebCore::CachedResource::updateResponseAfterRevalidation):
This patch adds two arrays containing the specific headers to
ignore and the prefixes to ignore. These lists are processed in
shouldUpdateHeaderAfterRevalidation.
CachedResource::updateResponseAfterRevalidation relies on this new
method when processing revalidated resources.
* loader/cache/CachedResource.cpp:
(WebCore):
(WebCore::shouldUpdateHeaderAfterRevalidation):
(WebCore::CachedResource::updateResponseAfterRevalidation):
2013-02-06 Tom Sepez <tsepez@chromium.org>
document.referrer leakage with XSS Auditor page block
https://bugs.webkit.org/show_bug.cgi?id=109089
Reviewed by Adam Barth.
Pass "about:blank" as referrer instead of "" so that the actual page
is not leaked when empty referrers are replaced later on in the
request.
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::XSSAuditorDelegate::didBlockScript):
2013-02-06 Kentaro Hara <haraken@chromium.org>
[V8] Make an Isolate parameter mandatory in GetTemplate() and GetRawTemplate()
https://bugs.webkit.org/show_bug.cgi?id=109026
Reviewed by Adam Barth.
Now it's time to kill an optional Isolate parameter.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNamedConstructorCallback):
(GenerateImplementation):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::V8Float64Array::GetRawTemplate):
(WebCore::V8Float64Array::GetTemplate):
* bindings/scripts/test/V8/V8Float64Array.h:
(V8Float64Array):
(WebCore::V8Float64Array::installPerContextPrototypeProperties):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::V8TestActiveDOMObject::GetRawTemplate):
(WebCore::V8TestActiveDOMObject::GetTemplate):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(V8TestActiveDOMObject):
(WebCore::V8TestActiveDOMObject::installPerContextPrototypeProperties):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::GetRawTemplate):
(WebCore::V8TestCustomNamedGetter::GetTemplate):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(V8TestCustomNamedGetter):
(WebCore::V8TestCustomNamedGetter::installPerContextPrototypeProperties):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::GetRawTemplate):
(WebCore::V8TestEventConstructor::GetTemplate):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(V8TestEventConstructor):
(WebCore::V8TestEventConstructor::installPerContextPrototypeProperties):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::V8TestEventTarget::GetRawTemplate):
(WebCore::V8TestEventTarget::GetTemplate):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(V8TestEventTarget):
(WebCore::V8TestEventTarget::installPerContextPrototypeProperties):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::GetRawTemplate):
(WebCore::V8TestException::GetTemplate):
* bindings/scripts/test/V8/V8TestException.h:
(V8TestException):
(WebCore::V8TestException::installPerContextPrototypeProperties):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::V8TestInterface::GetRawTemplate):
(WebCore::V8TestInterface::GetTemplate):
* bindings/scripts/test/V8/V8TestInterface.h:
(V8TestInterface):
(WebCore::V8TestInterface::installPerContextPrototypeProperties):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::GetRawTemplate):
(WebCore::V8TestMediaQueryListListener::GetTemplate):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(V8TestMediaQueryListListener):
(WebCore::V8TestMediaQueryListListener::installPerContextPrototypeProperties):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructor::GetTemplate):
(WebCore::V8TestNamedConstructor::GetRawTemplate):
(WebCore::V8TestNamedConstructor::GetTemplate):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(V8TestNamedConstructor):
(WebCore::V8TestNamedConstructor::installPerContextPrototypeProperties):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::GetRawTemplate):
(WebCore::V8TestNode::GetTemplate):
* bindings/scripts/test/V8/V8TestNode.h:
(V8TestNode):
(WebCore::V8TestNode::installPerContextPrototypeProperties):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::V8TestObj::GetRawTemplate):
(WebCore::V8TestObj::GetTemplate):
(WebCore::V8TestObj::installPerContextPrototypeProperties):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::GetRawTemplate):
(WebCore::V8TestOverloadedConstructors::GetTemplate):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(V8TestOverloadedConstructors):
(WebCore::V8TestOverloadedConstructors::installPerContextPrototypeProperties):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
(WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(V8TestSerializedScriptValueInterface):
(WebCore::V8TestSerializedScriptValueInterface::installPerContextPrototypeProperties):
* bindings/v8/V8PerContextData.cpp:
(WebCore::V8PerContextData::constructorForTypeSlowCase):
* bindings/v8/WrapperTypeInfo.h:
(WebCore):
(WebCore::WrapperTypeInfo::installPerContextPrototypeProperties):
2013-02-06 Terry Anderson <tdanderson@chromium.org>
Add support for gesture scroll events that do not propagate to enclosing scrollables
https://bugs.webkit.org/show_bug.cgi?id=108849
Reviewed by Antonio Gomes.
Tests: fast/events/touch/gesture/touch-gesture-scroll-div-not-propagated.html
fast/events/touch/gesture/touch-gesture-scroll-iframe-not-propagated.html
fast/events/touch/gesture/touch-gesture-scroll-page-not-propagated.html
Rename RenderLayer::scrollByRecursively() to RenderLayer::scrollBy() and add a parameter
of type RenderLayer::ScrollPropagation to specify whether or not the scroll should
propagate to its parent by recursing. Implement RenderLayer::scrollByRecursively() as a
call to RenderLayer::scrollBy() with argument RenderLayer::ShouldPropagateScroll so
that all existing calls to the function still produce the correct behavior.
In EventHandler::handleGestureScrollUpdate(), call RenderLayer::scrollBy() with
argument RenderLayer::ShouldPropagateScroll if |gestureEvent| is a GestureScrollUpdate
or instead with argument RenderLayer::DontPropagateScroll if |gestureEvent| is a
GestureScrollUpdateWithoutPropagation.
* dom/GestureEvent.cpp:
(WebCore::GestureEvent::create):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureEvent):
(WebCore::EventHandler::handleGestureScrollUpdate):
* platform/PlatformEvent.h:
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::gestureEvent):
* platform/chromium/PopupContainer.cpp:
(WebCore::PopupContainer::handleGestureEvent):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollByRecursively):
(WebCore):
(WebCore::RenderLayer::scrollBy):
* rendering/RenderLayer.h:
2013-02-06 Ojan Vafai <ojan@chromium.org>
[Chromium] table-section-overflow-clip-crash.html hits an assert
https://bugs.webkit.org/show_bug.cgi?id=108594
Reviewed by Levi Weintraub.
When a counter calls setNeedsLayout, it also marks it's containing blocks
as needing layout, so we need to clear the setNeedsLayoutIsForbidden bit on the
containing blocks as well as the counter itself.
Also, use RAII objects for all the places where we clear this bit and make
the setter/getter for it private to RenderObject.
* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::computePreferredLogicalWidths):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope):
(WebCore::RenderObject::markContainingBlocksForLayout):
* rendering/RenderObject.h:
(SetLayoutNeededForbiddenScope):
(RenderObject):
(WebCore::RenderObject::isSetNeedsLayoutForbidden):
(WebCore::RenderObject::setNeedsLayoutIsForbidden):
* rendering/RenderQuote.cpp:
(WebCore::RenderQuote::computePreferredLogicalWidths):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::calcRowLogicalHeight):
(WebCore::RenderTableSection::layoutRows):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::computePreferredLogicalWidths):
2013-02-06 Ojan Vafai <ojan@chromium.org>
display:none file upload button crashes
https://bugs.webkit.org/show_bug.cgi?id=109102
Reviewed by Levi Weintraub.
Test: fast/forms/file/display-none-upload-button.html
* rendering/RenderFileUploadControl.cpp:
(WebCore::nodeWidth):
(WebCore::RenderFileUploadControl::paintObject):
Having an upload button doesn't mean we have a rendered upload button.
Null check the renderer before trying to access it.
2013-02-06 Dirk Schulze <dschulze@adobe.com>
Context's currentPath should check for passed type
https://bugs.webkit.org/show_bug.cgi?id=109097
Reviewed by Dean Jackson.
Add check for passed pointer and return earlier.
Test: fast/canvas/canvas-currentPath-crash.html
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setCurrentPath):
2013-02-06 Rafael Weinstein <rafaelw@chromium.org>
[HTMLTemplateElement] Non </template> end tags should be ignored in "template contents" insertion mode.
https://bugs.webkit.org/show_bug.cgi?id=109090
Reviewed by Adam Barth.
https://dvcs.w3.org/hg/webcomponents/raw-file/38536d37fb82/spec/templates/index.html#template-contents-insertion-mode.
Test added to html5lib suite.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTag):
2013-02-06 Alexandre Elias <aelias@chromium.org>
Make ScrollView::paint() clip by visibleContentRect
https://bugs.webkit.org/show_bug.cgi?id=108888
Reviewed by Levi Weintraub.
When applyPageScaleFactorInCompositor or fixedVisibleContentRect
are used, frameRect() and visibleContentRect(true).size() are
no longer synonyms, and the latter is the one that should be
used for clipping paints.
New WebFrameTest: pageScaleFactorScalesPaintClip.
* platform/ScrollView.cpp:
(WebCore::ScrollView::paint):
2013-02-06 Dima Gorbik <dgorbik@apple.com>
Store the language internally instead of using lang attribute for WebVTT nodes
https://bugs.webkit.org/show_bug.cgi?id=108858
Reviewed by Eric Carlson.
Only language webvtt elements should have a lang attribute so we have to store
the language internally in the element. Refactored the code to make
computeInheritedLanguage virtual.
Existing tests were modified to cover this case.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* html/track/WebVTTElement.cpp:
(WebCore::WebVTTElement::WebVTTElement):
(WebCore::WebVTTElement::cloneElementWithoutAttributesAndChildren):
(WebCore::WebVTTElement::createEquivalentHTMLElement): clone the internal language property.
* html/track/WebVTTElement.h:
(WebCore::WebVTTElement::language):
(WebCore::WebVTTElement::setLanguage):
* html/track/WebVTTParser.cpp: only set the lang attribute for language objects.
(WebCore::WebVTTParser::constructTreeFromToken):
2013-02-06 Levi Weintraub <leviw@chromium.org>
Negative text indents can break RenderBlock's inline maximum preferred width calculation
https://bugs.webkit.org/show_bug.cgi?id=108973
Reviewed by Emil A Eklund.
Change two quirks about to how we calculate a block's inline preferred width with
text-indent.
First, re-use text-indent that's first applied to floats on text that follows it.
This matches Layout, as otherwise we can prematurely wrap text when there's a negative
margin on a block starting with a float. This also matches FireFox.
Second, correct how the max preferred width is calculated in the presence of a negative
text-indent. If the text-indent is more negative than the first text line break, we
update the value to be the remainder. Previously, we added this remaining negative value
to subsequent minimum and maximum preferred width calculations (until the remainder was
gone). This is wrong for the max preferred width, as we're adding the negative value more
than once, and leads to a max preferred width that's smaller than our line.
Test: fast/css/negative-text-indent-in-inline-block.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
2013-02-06 Mark Lam <mark.lam@apple.com>
Fix broken release builds, greening the bots.
https://bugs.webkit.org/show_bug.cgi?id=107475.
Not reviewed.
No new tests.
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::logOpenDatabaseError):
2013-02-06 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r142025.
http://trac.webkit.org/changeset/142025
https://bugs.webkit.org/show_bug.cgi?id=109091
broke the build (Requested by tdanderson on #webkit).
* dom/GestureEvent.cpp:
(WebCore::GestureEvent::create):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureEvent):
(WebCore::EventHandler::handleGestureScrollUpdate):
* platform/PlatformEvent.h:
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::gestureEvent):
* platform/chromium/PopupContainer.cpp:
(WebCore::PopupContainer::handleGestureEvent):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollByRecursively):
* rendering/RenderLayer.h:
2013-02-06 Mark Lam <mark.lam@apple.com>
Split openDatabase() between front and back end work.
https://bugs.webkit.org/show_bug.cgi?id=107475.
Reviewed by Anders Carlsson.
The main work of splitting DatabaseManager::openDatabase() is in
refactoring how DatabaseTracker::canEstablishDatabase() works. It used
to check for adequate space quota, and if the check fails, it would call
back into the client from inside canEstablishDatabase(). The call back
allows the client to update the quota (if appropriate). Thereafter,
canEstablishDatabase() will retry its quota check.
In a webkit2 world, we'll want to minimize the traffic between the
client (script side) and the server (sqlite db side), and ideally, we
don't want the server to call back to the client. Note: the
DatabaseTracker belongs on the server side.
To achieve this, we split canEstablishDatabase() into 2 parts: the
checks before the call back to the client, and the checks after.
The first part will retain the name canEstablishDatabase(), and the
second part will be named retryCanEstablishDatabase().
We also added a DatabaseServer::openDatabase() function that can be
called with a retry flag.
The client side DatabaseManager::openDatabase() will call
DatabaseServer::openDatabase(), which then calls canEstablishDatabase()
to do its quota check. If there is enough quota,
DatabaseServer::openDatabase() will proceed to open the backend database
without return to the client first. The opened database will be returned
to the client.
If DatabaseServer::openDatabase() finds inadequate quota the first time,
it will return with a DatabaseSizeExceededQuota error. The DatabaseManager
(on the client side) will check for this error and call back to its client
for an opportunity to increase the quota. Thereafter, the DatabaseManager
will call DatabaseServer::openDatabase() again. This time,
DatabaseServer::openDatabase() will call retryCanEstablishDatabase() to
check the quota, and then open the backend database if there is enough
quota.
No new tests.
* Modules/webdatabase/AbstractDatabaseServer.h:
* Modules/webdatabase/DOMWindowWebDatabase.cpp:
(WebCore::DOMWindowWebDatabase::openDatabase):
* Modules/webdatabase/Database.cpp:
(WebCore::Database::create):
* Modules/webdatabase/Database.h:
(Database):
* Modules/webdatabase/DatabaseBackend.cpp:
(WebCore::DatabaseBackend::performOpenAndVerify):
* Modules/webdatabase/DatabaseBackend.h:
(DatabaseBackend):
* Modules/webdatabase/DatabaseBackendAsync.cpp:
(WebCore::DatabaseBackendAsync::openAndVerifyVersion):
(WebCore::DatabaseBackendAsync::performOpenAndVerify):
* Modules/webdatabase/DatabaseBackendAsync.h:
(DatabaseBackendAsync):
* Modules/webdatabase/DatabaseBackendSync.cpp:
(WebCore::DatabaseBackendSync::openAndVerifyVersion):
* Modules/webdatabase/DatabaseBackendSync.h:
(DatabaseBackendSync):
* Modules/webdatabase/DatabaseError.h:
(WebCore::ENUM_CLASS):
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::exceptionCodeForDatabaseError):
(WebCore::DatabaseManager::openDatabaseBackend):
(WebCore::DatabaseManager::openDatabase):
(WebCore::DatabaseManager::openDatabaseSync):
* Modules/webdatabase/DatabaseManager.h:
(DatabaseManager):
* Modules/webdatabase/DatabaseServer.cpp:
(WebCore::DatabaseServer::openDatabase):
(WebCore::DatabaseServer::createDatabase):
* Modules/webdatabase/DatabaseServer.h:
* Modules/webdatabase/DatabaseSync.cpp:
(WebCore::DatabaseSync::create):
* Modules/webdatabase/DatabaseSync.h:
(DatabaseSync):
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::hasAdequateQuotaForOrigin):
(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::retryCanEstablishDatabase):
* Modules/webdatabase/DatabaseTracker.h:
(DatabaseTracker):
* Modules/webdatabase/WorkerContextWebDatabase.cpp:
(WebCore::WorkerContextWebDatabase::openDatabase):
(WebCore::WorkerContextWebDatabase::openDatabaseSync):
* Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::retryCanEstablishDatabase):
2013-02-06 Tony Gentilcore <tonyg@chromium.org>
Fix CompactHTMLToken's copy ctor to copy all fields
https://bugs.webkit.org/show_bug.cgi?id=109076
Reviewed by Adam Barth.
This was introduced by me in r142004. Without this patch we fail all tests when using the background parser.
Also don't use getters in copy ctor.
No new tests because no new functionality.
* html/parser/CompactHTMLToken.cpp:
(WebCore::CompactHTMLToken::CompactHTMLToken):
2013-02-06 Brian Salomon <bsalomon@google.com>
[Chromium/Skia] Remove use of deprecated Skia names
https://bugs.webkit.org/show_bug.cgi?id=109085
Reviewed by Stephen White.
Tested by every existing canvas2d test.
* platform/chromium/support/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::grContext):
2013-02-06 Terry Anderson <tdanderson@chromium.org>
Add support for gesture scroll events that do not propagate to enclosing scrollables
https://bugs.webkit.org/show_bug.cgi?id=108849
Reviewed by Antonio Gomes.
Tests: fast/events/touch/gesture/touch-gesture-scroll-div-not-propagated.html
fast/events/touch/gesture/touch-gesture-scroll-iframe-not-propagated.html
fast/events/touch/gesture/touch-gesture-scroll-page-not-propagated.html
Rename RenderLayer::scrollByRecursively() to RenderLayer::scrollBy() and add a parameter
of type RenderLayer::ScrollPropagation to specify whether or not the scroll should
propagate to its parent by recursing. Implement RenderLayer::scrollByRecursively() as a
call to RenderLayer::scrollBy() with argument RenderLayer::ShouldPropagateScroll so
that all existing calls to the function still produce the correct behavior.
In EventHandler::handleGestureScrollUpdate(), call RenderLayer::scrollBy() with
argument RenderLayer::ShouldPropagateScroll if |gestureEvent| is a GestureScrollUpdate
or instead with argument RenderLayer::DontPropagateScroll if |gestureEvent| is a
GestureScrollUpdateWithoutPropagation.
* dom/GestureEvent.cpp:
(WebCore::GestureEvent::create):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureEvent):
(WebCore::EventHandler::handleGestureScrollUpdate):
* platform/PlatformEvent.h:
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::gestureEvent):
* platform/chromium/PopupContainer.cpp:
(WebCore::PopupContainer::handleGestureEvent):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollByRecursively):
(WebCore):
(WebCore::RenderLayer::scrollBy):
* rendering/RenderLayer.h:
2013-02-06 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r141136): Apple's internal PLT test suite doesn't finish
https://bugs.webkit.org/show_bug.cgi?id=108380
Reviewed by Alexey Proskuryakov.
Re-enable the main resource cache since the regression had been fixed in r141615.
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
2013-02-06 Uday Kiran <udaykiran@motorola.com>
Implement 'vmax' from CSS3 values and units
https://bugs.webkit.org/show_bug.cgi?id=91440
Reviewed by Antti Koivisto.
vmax is implemented as primitive length unit.
New length type ViewportPercentageMax is added and included support for fetching the value
of this viewport percentage unit based on current viewport size.
The specification related to this implementation is
http://dev.w3.org/csswg/css3-values/#viewport-relative-lengths.
Tests: css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-vmax-absolute.html
css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-vmax.html
* css/CSSGrammar.y.in: Added vmax support.
* css/CSSParser.cpp: Parsing of vmax unit.
(WebCore::CSSParser::validUnit): Added vmax to valid units.
(WebCore::CSSParser::createPrimitiveNumericValue): Added vmax to primitive untis.
(WebCore::CSSParser::parseValidPrimitive): Creation of CSSPrimitive for vmax.
(WebCore::CSSParser::detectNumberToken): Parsing of vmax token.
* css/CSSParserValues.cpp:
(WebCore::CSSParserValue::createCSSValue): Added support for vmax.
* css/CSSPrimitiveValue.cpp:
(WebCore::isValidCSSUnitTypeForDoubleConversion): Added support for vmax.
(WebCore::unitCategory): Ditto.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Ditto.
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::customCssText): Added support for vmax.
(WebCore::CSSPrimitiveValue::viewportPercentageLength): Function to create the Length structure for the viewport-percentage unit types.
(WebCore::CSSPrimitiveValue::cloneForCSSOM):
* css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::isViewportPercentageLength): Checks whether the primitive value is ViewportPercentage Length.
* css/CSSPrimitiveValue.idl: Added support for vmax.
* css/LengthFunctions.cpp: Calcuation of length value based on the current viewport size.
(WebCore::minimumValueForLength):
(WebCore::valueForLength):
(WebCore::floatValueForLength):
* platform/Length.h:
(WebCore::Length::isViewportPercentage): To check the Length is of type ViewportPercentage.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalWidthUsing):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
2013-02-06 Pravin D <pravind.2k4@gmail.com>
When a block element is made inline positioned and has static left and right, it does not follow inline formatting context
https://bugs.webkit.org/show_bug.cgi?id=91665
Reviewed by Julien Chaffraix.
Out-of-flow-positioned elements have their display overriden to BLOCK. When a static block elements
changes to inline out-of-flow-positioned or vice-versa, the element current and previous display properties
are same. This causes the element to follow a wrong flow context(in this case Block context) and the element
is laid out incorrectly. The patch fixes the issue by reattaching the renderers of the node whenever either
position property changes or when its floating property changes.
Also the cases when an out-of-flow-positioned/floating element changes to static/non-floating element where
being specially handled. As reattaching the renderers in the above cases correctly handles the above cases,
special handling for such cases is no more required and the related code can be safely removed.
Reattaching renderers for the afore mentioned issues takes a different(longer) code path. Performance measurements
summary for the same is as follows:
% increase in time
Absolute-block-to-static-block 2.00
Absolute-inline-to-static-block 1.21
Absolute-inline-to-static-inline 1.18
Static-block-to-absolute-block 1.13
Static-inline-to-absolute-inline 1.35
Floating-block-non-floating-block 0.85
Floating-inline-non-floating-block 0.66
Floating-inline-non-floating-inline 0.57
Non-floating-block-floating-block 0.12
Non-floating-inline-floating-inline 1.36
Tests: fast/dynamic/absolute-positioned-to-static-positioned.html
fast/dynamic/floating-to-non-floating.html
fast/dynamic/non-floating-to-floating.html
fast/dynamic/static-positioned-to-absolute-positioned.html
* dom/Node.cpp:
(WebCore::Node::diff):
Return detach in the following conditions:
1) Element changes to out-of-flow-positioned or vice-versa.
2) Element becomes floating or vice-versa.
* rendering/RenderBlock.cpp:
(WebCore):
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderBoxModelObject.h:
(RenderBoxModelObject):
* rendering/RenderInline.cpp:
(WebCore):
* rendering/RenderInline.h:
(RenderInline):
* rendering/RenderObject.cpp:
(WebCore):
(WebCore::RenderObject::styleWillChange):
(WebCore::RenderObject::styleDidChange):
* rendering/RenderObject.h:
(RenderObject):
The fix in Node::diff() obsoletes some code. The above deletion are part of this dead code cleanup.
2013-02-06 Chris Fleizach <cfleizach@apple.com>
AX: if <html> has an ARIA attribute, it's exposed as an AXGroup
https://bugs.webkit.org/show_bug.cgi?id=109008
Reviewed by Ryosuke Niwa.
If an <html> element had an ARIA attribute, it was being turned into an element
in the AX hierarchy. This was causing trouble for screen readers by inserting
an unexpected element in the navigation sequence.
Test: accessibility/html-html-element-is-ignored.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
2013-02-06 Shawn Singh <shawnsingh@chromium.org>
RenderLayer hasVisibleContent() has inconsistent semantics causing disappearing composited layers
https://bugs.webkit.org/show_bug.cgi?id=108118
Reviewed by Simon Fraser.
RenderLayerBacking::hasVisibleNonCompositingDescendantLayers was
only checking whether direct children had visible content. As a
result, composited layers had wrong visibility status if only a
deeper descendant RenderLayer was visible.
Test: compositing/visibility/visibility-on-distant-descendant.html
* rendering/RenderLayerBacking.cpp:
(WebCore::hasVisibleNonCompositingDescendant): copied the original
implementation into this function; then added the RenderLayer
recursion as appropriate.
(WebCore):
(WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers):
This is now just a wrapper to the private static recursive
function.
2013-02-06 Jonathon Jongsma <jonathon.jongsma@collabora.com>
[GStreamer] MediaPlayer's code is not easily reusable by other GStreamer-based players
https://bugs.webkit.org/show_bug.cgi?id=100261
Refactor the media player implementation so that more of the
internal functionality can be shared between the current media
backend and the mediastream player backend. Common code is
broken out into a MediaPlayerPrivateGStreamerBase class, and
both MediaPlayerPrivateGStreamer and
StreamMediaPlayerPrivateGStreamer inherit from this base class.
Reviewed by Philippe Normand
No new tests since functionality is covered by existing media tests
* GNUmakefile.list.am:
* PlatformEfl.cmake:
* Target.pri:
* platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp:
(WebCore::FullscreenVideoControllerGStreamer::create):
(WebCore::FullscreenVideoControllerGStreamer::FullscreenVideoControllerGStreamer):
* platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.h:
(WebCore):
(FullscreenVideoControllerGStreamer):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::isLiveStream):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: Added.
(WebCore):
(WebCore::greatestCommonDivisor):
(WebCore::mediaPlayerPrivateVolumeChangedCallback):
(WebCore::mediaPlayerPrivateVolumeChangeTimeoutCallback):
(WebCore::mediaPlayerPrivateMuteChangedCallback):
(WebCore::mediaPlayerPrivateMuteChangeTimeoutCallback):
(WebCore::mediaPlayerPrivateRepaintCallback):
(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize):
(WebCore::MediaPlayerPrivateGStreamerBase::setVolume):
(WebCore::MediaPlayerPrivateGStreamerBase::volume):
(WebCore::MediaPlayerPrivateGStreamerBase::notifyPlayerOfVolumeChange):
(WebCore::MediaPlayerPrivateGStreamerBase::volumeChanged):
(WebCore::MediaPlayerPrivateGStreamerBase::networkState):
(WebCore::MediaPlayerPrivateGStreamerBase::readyState):
(WebCore::MediaPlayerPrivateGStreamerBase::sizeChanged):
(WebCore::MediaPlayerPrivateGStreamerBase::setMuted):
(WebCore::MediaPlayerPrivateGStreamerBase::muted):
(WebCore::MediaPlayerPrivateGStreamerBase::notifyPlayerOfMute):
(WebCore::MediaPlayerPrivateGStreamerBase::muteChanged):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::setSize):
(WebCore::MediaPlayerPrivateGStreamerBase::paint):
(WebCore::MediaPlayerPrivateGStreamerBase::enterFullscreen):
(WebCore::MediaPlayerPrivateGStreamerBase::exitFullscreen):
(WebCore::MediaPlayerPrivateGStreamerBase::supportsFullscreen):
(WebCore::MediaPlayerPrivateGStreamerBase::platformMedia):
(WebCore::MediaPlayerPrivateGStreamerBase::movieLoadType):
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):
(WebCore::MediaPlayerPrivateGStreamerBase::setStreamVolumeElement):
(WebCore::MediaPlayerPrivateGStreamerBase::decodedFrameCount):
(WebCore::MediaPlayerPrivateGStreamerBase::droppedFrameCount):
(WebCore::MediaPlayerPrivateGStreamerBase::audioDecodedByteCount):
(WebCore::MediaPlayerPrivateGStreamerBase::videoDecodedByteCount):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: Added.
(WebCore):
(MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::supportsMuting):
(WebCore::MediaPlayerPrivateGStreamerBase::setVisible):
(WebCore::MediaPlayerPrivateGStreamerBase::hasSingleSecurityOrigin):
(WebCore::MediaPlayerPrivateGStreamerBase::maxTimeLoaded):
(WebCore::MediaPlayerPrivateGStreamerBase::canEnterFullscreen):
(WebCore::MediaPlayerPrivateGStreamerBase::mediaPlayer):
(WebCore::MediaPlayerPrivateGStreamerBase::audioSink):
* platform/graphics/gtk/FullscreenVideoControllerGtk.cpp:
(WebCore::FullscreenVideoControllerGtk::FullscreenVideoControllerGtk):
* platform/graphics/gtk/FullscreenVideoControllerGtk.h:
(FullscreenVideoControllerGtk):
2013-02-06 Tony Gentilcore <tonyg@chromium.org>
Call XSSAuditor's didBlockScript() for the threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=108726
Reviewed by Adam Barth.
This patch causes us to call didBlockScript() on the main thread if the CompactHTML token has XSSInfo.
To do so, we:
1. Rename DidBlockScriptRequest to XSSInfo.
2. Add an OwnPtr<XSSInfo> field to CompactHTMLToken.
3. Add an isSafeToSendToAnotherThread() method to String and KURL.
We don't yet populate didBlockScriptRequest on the background thread, but this should just work once we do.
No new tests because no new functionality.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::pumpTokenizer): Update comment for rename.
* html/parser/CompactHTMLToken.cpp:
(SameSizeAsCompactHTMLToken):
(WebCore::CompactHTMLToken::CompactHTMLToken): Add a copy constructor used by Vector.
(WebCore::CompactHTMLToken::isSafeToSendToAnotherThread): Include new m_xssInfo field in safety check.
(WebCore):
(WebCore::CompactHTMLToken::xssInfo): Added.
(WebCore::CompactHTMLToken::setXSSInfo): Added.
* html/parser/CompactHTMLToken.h: Add an OwnPtr<XSSInfo> field to CompactHTMLToken.
(WebCore):
(CompactHTMLToken):
(WTF): Add VectorTraits necessary for copying Vector fields objects that contain an OwnPtr.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser): Add new didBlockScript() call.
(WebCore::HTMLDocumentParser::pumpTokenizer):
* html/parser/XSSAuditor.cpp: Renaming.
(WebCore::XSSAuditor::filterToken):
* html/parser/XSSAuditor.h: Renaming.
(WebCore):
(XSSAuditor):
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::XSSInfo::isSafeToSendToAnotherThread):
(WebCore):
(WebCore::XSSAuditorDelegate::didBlockScript):
* html/parser/XSSAuditorDelegate.h:
(WebCore::XSSInfo::create):
(XSSInfo):
(WebCore::XSSInfo::XSSInfo):
(XSSAuditorDelegate):
* platform/KURL.cpp:
(WebCore::KURL::isSafeToSendToAnotherThread): Added.
(WebCore):
* platform/KURL.h:
(KURL):
* platform/KURLGoogle.cpp:
(WebCore):
(WebCore::KURLGooglePrivate::isSafeToSendToAnotherThread): Added.
* platform/KURLGooglePrivate.h:
(KURLGooglePrivate):
* platform/KURLWTFURLImpl.h:
(WebCore::KURLWTFURLImpl::isSafeToSendToAnotherThread): Added.
2013-02-06 Dean Jackson <dino@apple.com>
Minor updates to captions menu UI
https://bugs.webkit.org/show_bug.cgi?id=109005
Reviewed by Eric Carlson.
Now that we only have a single section in the captions menu, remove the
unnecessary wrapper element. Also update the UI for Mac so that the menu
grows in size dynamically, and change the text we display for a caption
that has neither label or language identifiers.
Covered by existing tests.
* English.lproj/Localizable.strings: New string for an unknown caption label.
* css/fullscreenQuickTime.css: New rules for the captions menu.
(video:-webkit-full-screen::-webkit-media-controls-closed-captions-container):
(video:-webkit-full-screen::-webkit-media-controls-closed-captions-track-list):
* css/mediaControlsQuickTime.css: Ditto.
(video::-webkit-media-controls-closed-captions-container):
(video::-webkit-media-controls-closed-captions-track-list):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
Remove the <section> element container.
* platform/LocalizedStrings.cpp:
(WebCore::textTrackNoLabelText): New string for an unknown caption label.
2013-02-06 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Remove isSnippet field from FileDescriptor and UISourceCode.
https://bugs.webkit.org/show_bug.cgi?id=109045
Reviewed by Pavel Feldman.
Snippets are now distinguished based on uiSourceCode project.
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
* inspector/front-end/NavigatorView.js:
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
* inspector/front-end/ScriptsNavigator.js:
(WebInspector.ScriptsNavigator.prototype._navigatorViewForUISourceCode):
(WebInspector.ScriptsNavigator.prototype.addUISourceCode):
(WebInspector.ScriptsNavigator.prototype.removeUISourceCode):
(WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
(WebInspector.ScriptsNavigator.prototype.rename):
(WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
(WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._showFile):
(WebInspector.ScriptsPanel.prototype._createSourceFrame):
(WebInspector.ScriptsPanel.prototype.set _fileRenamed):
* inspector/front-end/SimpleWorkspaceProvider.js:
(WebInspector.SimpleWorkspaceProvider.prototype.addFile):
(WebInspector.SimpleWorkspaceProvider.prototype.addFileForURL):
* inspector/front-end/Workspace.js:
(WebInspector.FileDescriptor):
(WebInspector.Project.prototype._fileAdded):
2013-02-06 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r141983.
http://trac.webkit.org/changeset/141983
https://bugs.webkit.org/show_bug.cgi?id=109055
lots of new crashes in handlescope (Requested by gavinp on
#webkit).
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::setWrapperInObject):
* bindings/v8/DOMWrapperWorld.h:
(DOMWrapperWorld):
(WebCore::DOMWrapperWorld::isolated):
* bindings/v8/V8Binding.h:
(WebCore):
(WebCore::worldForEnteredContextIfIsolated):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initializeIfNeeded):
* bindings/v8/V8GCController.cpp:
(WebCore::WrapperVisitor::WrapperVisitor):
(WebCore):
(WebCore::gcTree):
(WebCore::V8GCController::didCreateWrapperForNode):
(WebCore::V8GCController::gcPrologue):
(WebCore::V8GCController::minorGCPrologue):
(WebCore::V8GCController::majorGCPrologue):
* bindings/v8/V8GCController.h:
(V8GCController):
2013-02-06 Andreas Kling <akling@apple.com>
Optimize GlyphPage for case where all glyphs are available in the same font.
<http://webkit.org/b/108835>
<rdar://problem/13157042>
Reviewed by Antti Koivisto.
Let GlyphPage begin optimistically assuming that all its glyphs will be represented in
the same SimpleFontData*. In this (very common) case, only keep a single SimpleFontData*.
If glyphs from multiple fonts are mixed in one page, an array of per-glyph SimpleFontData*
is allocated transparently.
4.98 MB progression on Membuster3.
* platform/graphics/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::initializePage):
* platform/graphics/GlyphPage.h:
(WebCore::GlyphPage::createUninitialized):
(WebCore::GlyphPage::createZeroedSystemFallbackPage):
(WebCore::GlyphPage::createCopiedSystemFallbackPage):
There are now three ways of constructing a GlyphPage, two of them are only used for
creating system fallback pages.
(WebCore::GlyphPage::setGlyphDataForIndex):
Hold off creating a SimpleFontData* array until we're sure there are two different
SimpleFontData* backing the glyphs in this page.
We don't store font data for glyph #0, instead we let the getters always return null for it.
(WebCore::GlyphPage::~GlyphPage):
Free the SimpleFontData* array if needed.
(WebCore::GlyphPage::glyphDataForCharacter):
(WebCore::GlyphPage::glyphDataForIndex):
(WebCore::GlyphPage::fontDataForCharacter):
The font data for glyph #0 is always a null pointer now.
(WebCore::GlyphPage::clearForFontData):
Updated for new storage format.
* rendering/svg/SVGTextRunRenderingContext.cpp:
(WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
Fix bug where non-zero glyph was temporarily associated with null font data,
which triggered the new assertion in setGlyphDataForIndex().
2013-02-06 Pavel Feldman <pfeldman@chromium.org>
Follow up to r141979: do not consume Home/End.
Not reviewed.
* inspector/front-end/FilteredItemSelectionDialog.js:
(WebInspector.FilteredItemSelectionDialog.prototype._onKeyDown):
2013-02-06 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Remove show script folders setting
https://bugs.webkit.org/show_bug.cgi?id=108940
Reviewed by Pavel Feldman.
Removed showScriptFolders setting, the sources are never shown as a flat list in navigator anymore.
* inspector/front-end/NavigatorView.js:
(WebInspector.NavigatorView):
(WebInspector.NavigatorView.prototype._getOrCreateFolderTreeElement):
* inspector/front-end/Settings.js:
* inspector/front-end/SettingsScreen.js:
(WebInspector.GenericSettingsTab):
2013-02-06 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: update javascriptsourcetokenizer to produce "whitespaces" token
https://bugs.webkit.org/show_bug.cgi?id=108945
Reviewed by Pavel Feldman.
Update re2c grammar for SourceJavaScriptTokenizer to produce
"whitespace" token which holds consequtive whitespaces in it.
Updated existing tests expectations.
* inspector/front-end/DOMSyntaxHighlighter.js:
(WebInspector.DOMSyntaxHighlighter.prototype.createSpan): Do not strip spaces from tokens with class "whitespaces".
* inspector/front-end/SourceJavaScriptTokenizer.js: Regenerated.
(WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
* inspector/front-end/SourceJavaScriptTokenizer.re2js:
2013-02-06 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: refactor registerShortcuts method of DTE
https://bugs.webkit.org/show_bug.cgi?id=109031
Reviewed by Pavel Feldman.
Implement _registerShortcuts method in TextEditorMainPanel which will
bind its private methods to the different key combinations. Refactor
method handlers handleUndoRedo, handleTabKeyPress and handleEnterKey
from public to private.
No new tests: no change in behaviour.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype._registerShortcuts): Remove bindings of TextEditorMainPanel methods
(WebInspector.DefaultTextEditor.prototype._handleKeyDown):
(WebInspector.TextEditorMainPanel):
(WebInspector.TextEditorMainPanel.prototype._registerShortcuts): Added.
(WebInspector.TextEditorMainPanel.prototype._handleUndoRedo):
(WebInspector.TextEditorMainPanel.prototype.handleKeyDown):
2013-02-06 Mike West <mkwst@chromium.org>
Add an ENABLE_NOSNIFF feature flag.
https://bugs.webkit.org/show_bug.cgi?id=109029
Reviewed by Jochen Eisinger.
This new flag will control the behavior of 'X-Content-Type-Options: nosniff'
when processing script and other resource types.
* Configurations/FeatureDefines.xcconfig:
2013-02-06 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Implement DTMF support in RTCPeerConnection
https://bugs.webkit.org/show_bug.cgi?id=106782
Reviewed by Adam Barth.
The WebRTC specification have added support for DTMF:
http://dev.w3.org/2011/webrtc/editor/webrtc.html#peer-to-peer-dtmf
Implementation wise this is implemented using the same pattern as RTCDataChannel;
where a RTCDTMFSenderHandler is created by the UA through a new method on
RTCPeerConnectionHandler.
Test: fast/mediastream/RTCPeerConnection-dtmf.html
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/RTCDTMFSender.cpp: Added.
(WebCore):
(WebCore::RTCDTMFSender::create):
(WebCore::RTCDTMFSender::RTCDTMFSender):
(WebCore::RTCDTMFSender::~RTCDTMFSender):
(WebCore::RTCDTMFSender::canInsertDTMF):
(WebCore::RTCDTMFSender::track):
(WebCore::RTCDTMFSender::toneBuffer):
(WebCore::RTCDTMFSender::insertDTMF):
(WebCore::RTCDTMFSender::didPlayTone):
(WebCore::RTCDTMFSender::interfaceName):
(WebCore::RTCDTMFSender::scriptExecutionContext):
(WebCore::RTCDTMFSender::stop):
(WebCore::RTCDTMFSender::eventTargetData):
(WebCore::RTCDTMFSender::ensureEventTargetData):
(WebCore::RTCDTMFSender::scheduleDispatchEvent):
(WebCore::RTCDTMFSender::scheduledEventTimerFired):
* Modules/mediastream/RTCDTMFSender.h: Added.
(WebCore):
(RTCDTMFSender):
(WebCore::RTCDTMFSender::duration):
(WebCore::RTCDTMFSender::interToneGap):
* Modules/mediastream/RTCDTMFSender.idl: Added.
* Modules/mediastream/RTCDTMFToneChangeEvent.cpp: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
(WebCore):
(WebCore::RTCDTMFToneChangeEvent::create):
(WebCore::RTCDTMFToneChangeEvent::RTCDTMFToneChangeEvent):
(WebCore::RTCDTMFToneChangeEvent::~RTCDTMFToneChangeEvent):
(WebCore::RTCDTMFToneChangeEvent::tone):
(WebCore::RTCDTMFToneChangeEvent::interfaceName):
* Modules/mediastream/RTCDTMFToneChangeEvent.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
(WebCore):
(RTCDTMFToneChangeEventInit):
(RTCDTMFToneChangeEvent):
* Modules/mediastream/RTCDTMFToneChangeEvent.idl: Added.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::createDataChannel):
(WebCore):
(WebCore::RTCPeerConnection::getStreamByTrackId):
(WebCore::RTCPeerConnection::createDTMFSender):
* Modules/mediastream/RTCPeerConnection.h:
(WebCore):
(RTCPeerConnection):
* Modules/mediastream/RTCPeerConnection.idl:
* WebCore.gypi:
* dom/EventNames.h:
(WebCore):
* dom/EventNames.in:
* dom/EventTargetFactory.in:
* platform/chromium/support/WebMediaStreamTrack.cpp:
(WebKit::WebMediaStreamTrack::WebMediaStreamTrack):
(WebKit):
* platform/mediastream/RTCDTMFSenderHandler.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
(WebCore):
(RTCDTMFSenderHandler):
(WebCore::RTCDTMFSenderHandler::~RTCDTMFSenderHandler):
* platform/mediastream/RTCDTMFSenderHandlerClient.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
(WebCore):
(RTCDTMFSenderHandlerClient):
(WebCore::RTCDTMFSenderHandlerClient::~RTCDTMFSenderHandlerClient):
* platform/mediastream/RTCPeerConnectionHandler.h:
(WebCore):
(RTCPeerConnectionHandler):
* platform/mediastream/chromium/RTCDTMFSenderHandlerChromium.cpp: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
(WebCore):
(WebCore::RTCDTMFSenderHandlerChromium::create):
(WebCore::RTCDTMFSenderHandlerChromium::RTCDTMFSenderHandlerChromium):
(WebCore::RTCDTMFSenderHandlerChromium::~RTCDTMFSenderHandlerChromium):
(WebCore::RTCDTMFSenderHandlerChromium::setClient):
(WebCore::RTCDTMFSenderHandlerChromium::currentToneBuffer):
(WebCore::RTCDTMFSenderHandlerChromium::canInsertDTMF):
(WebCore::RTCDTMFSenderHandlerChromium::insertDTMF):
(WebCore::RTCDTMFSenderHandlerChromium::didPlayTone):
* platform/mediastream/chromium/RTCDTMFSenderHandlerChromium.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
(WebCore):
(RTCDTMFSenderHandlerChromium):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandlerChromium::createDTMFSender):
(WebCore):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
(RTCPeerConnectionHandlerChromium):
2013-02-04 Kentaro Hara <haraken@chromium.org>
[V8] Remove V8GCController::m_edenNodes and make minor DOM GC more precise
https://bugs.webkit.org/show_bug.cgi?id=108579
Reviewed by Adam Barth.
Currently V8GCController::m_edenNodes stores a list of nodes whose
wrappers have been created since the latest GC. The reason why we
needed m_edenNodes is that there was no way to know a list of wrappers
in the new space of V8. By using m_edenNodes, we had been approximating
'wrappers in the new space' by 'wrappers that have been created since
the latest GC'.
Now V8 provides VisitHandlesForPartialDependence(), with which WebKit
can know a list of wrappers in the new space. By using the API, we can
remove V8GCController::m_edenNodes. The benefit is that (1) we no longer
need to keep m_edenNodes and that (2) it enables more precise minor
DOM GC (Remember that m_edenNodes was just an approximation).
Performance benchmark: https://bugs.webkit.org/attachment.cgi?id=185940
The benchmark runs 300 iterations, each of which creates 100000 elements.
The benchmark measures average, min, median, max and stdev of execution times
of the 300 iterations. This will tell us the worst-case overhead of this change.
Before:
mean=59.91ms, min=39ms, median=42ms, max=258ms, stdev=47.48ms
After:
mean=58.75ms, min=35ms, median=41ms, max=250ms, stdev=47.32ms
As shown above, I couldn't observe any performance regression.
No tests. No change in behavior.
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::setWrapperInObject):
* bindings/v8/DOMWrapperWorld.h:
(DOMWrapperWorld):
(WebCore::DOMWrapperWorld::getWorldWithoutContextCheck):
* bindings/v8/V8Binding.h:
(WebCore):
(WebCore::worldForEnteredContextIfIsolated):
(WebCore::worldForEnteredContextWithoutContextCheck):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initializeIfNeeded):
* bindings/v8/V8GCController.cpp:
(WebCore::gcTree):
(WebCore):
(MinorGCWrapperVisitor):
(WebCore::MinorGCWrapperVisitor::MinorGCWrapperVisitor):
(WebCore::MinorGCWrapperVisitor::notifyFinished):
(WebCore::MajorGCWrapperVisitor::MajorGCWrapperVisitor):
(WebCore::V8GCController::gcPrologue):
(WebCore::V8GCController::minorGCPrologue):
(WebCore::V8GCController::majorGCPrologue):
* bindings/v8/V8GCController.h:
(V8GCController):
2013-02-06 Mihai Maerean <mmaerean@adobe.com>
[CSSRegions] Assertion failure in Node::detach (!renderer || renderer->inRenderFlowThread())
https://bugs.webkit.org/show_bug.cgi?id=104517
Reviewed by Julien Chaffraix.
The RenderObject::inRenderFlowThread bit could have become disconnected from the fact that the RenderObject
has (or not) an enclosing RenderFlowThread.
The cause of this was that, when setting or removing the parent of a RenderObject, the inRenderFlowThread flags
wasn't being set/reset for the children too.
This is now fixed by calling the new setInRenderFlowThreadIncludingDescendants.
The ASSERT was hit for anonymous blocks when detaching the document.
Test: fast/regions/detaching-regions-with-anonymous-blocks.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setInRenderFlowThreadRecursive):
(WebCore):
* rendering/RenderObject.h:
(WebCore::RenderObject::setParent):
(RenderObject):
2013-02-06 Marja Hölttä <marja@chromium.org>
Take referrer policy into account when clearing the referrer header
https://bugs.webkit.org/show_bug.cgi?id=86000
Reviewed by Alexey Proskuryakov.
The referrer should only be cleared when doing a https -> http redirect,
if the policy is "default". Otherwise the referrer should be left intact.
In order to do that, added a function for checking the policy in
NetworkingContext, and stored the NetworkingContext in ResourceHandle
(like some ports already did).
No new tests (unskipped old tests).
* loader/FrameNetworkingContext.h:
(WebCore::FrameNetworkingContext::shouldClearReferrerOnHTTPSToHTTPRedirect):
(FrameNetworkingContext):
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::BlobResourceHandle):
* platform/network/NetworkingContext.h:
(NetworkingContext):
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::ResourceHandle):
(WebCore::ResourceHandle::create):
(WebCore::ResourceHandle::context):
(WebCore):
* platform/network/ResourceHandle.h:
(ResourceHandle):
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
(ResourceHandleInternal):
* platform/network/blackberry/ResourceHandleBlackBerry.cpp:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::loadResourceSynchronously):
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::willSendRequest):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::loadResourceSynchronously):
* platform/network/chromium/ResourceHandle.cpp:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
(WebCore::ResourceHandle::ResourceHandle):
(WebCore::ResourceHandle::create):
(WebCore::ResourceHandle::context):
(WebCore):
(WebCore::ResourceHandle::start):
* platform/network/chromium/ResourceHandleInternal.h:
(WebCore):
(ResourceHandleInternal):
(WebCore::ResourceHandleInternal::context):
* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::loadResourceSynchronously):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::loadResourceSynchronously):
(-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::redirect):
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::loadResourceSynchronously):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::doRedirect):
(WebCore::ResourceHandle::start):
* platform/network/win/ResourceHandleWin.cpp:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::loadResourceSynchronously):
2013-02-06 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: file selector list jumps as I type or move Up/Down
https://bugs.webkit.org/show_bug.cgi?id=108933
Reviewed by Vsevolod Vlasov.
Missing return was scheduling extra updates.
* inspector/front-end/FilteredItemSelectionDialog.js:
(WebInspector.FilteredItemSelectionDialog):
(WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
(WebInspector.FilteredItemSelectionDialog.prototype._onKeyDown):
(WebInspector.FilteredItemSelectionDialog.prototype._updateSelection):
2013-02-06 Kentaro Hara <haraken@chromium.org>
[V8] Pass an Isolate to remaining GetTemplate()s
https://bugs.webkit.org/show_bug.cgi?id=109001
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::namedSecurityCheck): Because this method is a callback from V8,
we cannot change its signature to receive an Isolate.
(WebCore::V8DOMWindow::indexedSecurityCheck): Ditto.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateToV8Converters):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::V8Float64Array::createWrapper):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::V8TestActiveDOMObject::createWrapper):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::createWrapper):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::createWrapper):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::V8TestEventTarget::createWrapper):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::createWrapper):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::V8TestInterface::createWrapper):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::createWrapper):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructor::createWrapper):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::createWrapper):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::V8TestObj::createWrapper):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::createWrapper):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::createWrapper):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::createWrapper):
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::wrapInShadowObject):
2013-02-06 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r141961.
http://trac.webkit.org/changeset/141961
https://bugs.webkit.org/show_bug.cgi?id=109019
assertion failures on svn tests such as fonts-glyph-04-t.svg
(Requested by falken on #webkit).
* platform/graphics/GlyphPage.h:
(WebCore::GlyphPage::create):
(WebCore::GlyphPage::glyphDataForCharacter):
(WebCore::GlyphPage::glyphDataForIndex):
(WebCore::GlyphPage::fontDataForCharacter):
(WebCore::GlyphPage::setGlyphDataForIndex):
(GlyphPage):
(WebCore::GlyphPage::copyFrom):
(WebCore::GlyphPage::clear):
(WebCore::GlyphPage::clearForFontData):
(WebCore::GlyphPage::GlyphPage):
* platform/graphics/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::initializePage):
2013-02-05 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r141964.
http://trac.webkit.org/changeset/141964
https://bugs.webkit.org/show_bug.cgi?id=109014
caused performance regression (Requested by hayato on
#webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSAllInOne.cpp:
* css/DocumentRuleSets.cpp: Removed.
* css/DocumentRuleSets.h: Removed.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::collectRulesFromUserStyleSheets):
(WebCore):
(WebCore::makeRuleSet):
(WebCore::StyleResolver::resetAuthorStyle):
(WebCore::StyleResolver::appendAuthorStyleSheets):
(WebCore::StyleResolver::matchAuthorRules):
(WebCore::StyleResolver::matchUserRules):
(WebCore::StyleResolver::classNamesAffectedByRules):
(WebCore::StyleResolver::locateCousinList):
(WebCore::StyleResolver::canShareStyleWithElement):
(WebCore::StyleResolver::locateSharedStyle):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::checkRegionStyle):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::collectFeatures):
(WebCore::StyleResolver::reportMemoryUsage):
* css/StyleResolver.h:
(StyleResolver):
(WebCore::StyleResolver::usesSiblingRules):
(WebCore::StyleResolver::usesFirstLineRules):
(WebCore::StyleResolver::usesBeforeAfterRules):
(WebCore::StyleResolver::hasSelectorForAttribute):
(WebCore::StyleResolver::hasSelectorForClass):
(WebCore::StyleResolver::hasSelectorForId):
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
2013-02-05 Kentaro Hara <haraken@chromium.org>
Add #if USE(V8) to Node::V8CollectableDuringMinorGCFlag
https://bugs.webkit.org/show_bug.cgi?id=109009
Reviewed by Kent Tamura.
Node flags should be saved. V8CollectableDuringMinorGCFlag is used by V8 only.
* dom/Node.h:
(Node):
2013-02-05 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Add ending slashes automatically to file mappings.
https://bugs.webkit.org/show_bug.cgi?id=108936
Reviewed by Pavel Feldman.
* inspector/front-end/SettingsScreen.js:
(WebInspector.WorkspaceSettingsTab.prototype._addFileMappingClicked):
2013-02-05 Eric Carlson <eric.carlson@apple.com>
More updates to Caption user preferences
https://bugs.webkit.org/show_bug.cgi?id=108997
Reviewed by Dean Jackson.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::captionPreferencesChanged): Give the media controls a chance
to update for a preferences change.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateSizes): Add optional "force update"
param to force font size recalc even when the video size hasn't changed.
* html/shadow/MediaControlElements.h:
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::textTrackPreferencesChanged): New, force a font size recalc.
* html/shadow/MediaControls.h:
* html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties): Don't set width/size of cues
that use default positioning. Use "start" as the default alignment.
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::captionsWindowCSS): Set padding when the window is visible
so it shows around the cue background.
(WebCore::CaptionUserPreferencesMac::captionsBackgroundCSS): Set padding to 0 when the background
is visible.
(WebCore::CaptionUserPreferencesMac::windowRoundedCornerRadiusCSS): Add "px" to the border radius
so it actually works.
* rendering/RenderTextTrackCue.cpp:
(WebCore::RenderTextTrackCue::layout): Special case generic cues with default style.
(WebCore::RenderTextTrackCue::repositionGenericCue):
* rendering/RenderTextTrackCue.h:
2013-02-05 Hayato Ito <hayato@chromium.org>
Split each RuleSet and feature out from StyleResolver into its own class.
https://bugs.webkit.org/show_bug.cgi?id=107777
Reviewed by Dimitri Glazkov.
Splitting each RuleSet and feature out from StyleResover into its onw class, DocumentRuleSets,
to manage them separately.
This is one of the attempts to try to resolve meta bug (bug 89879)
to lose StyleResolver's weight. We need further action to factor
StyleResolver to separate it into some classes cleanly.
See also https://bugs.webkit.org/show_bug.cgi?id=108890. A following patch will address that.
No tests. No change in behavior.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSAllInOne.cpp:
* css/DocumentRuleSets.cpp: Added.
(WebCore):
(WebCore::DocumentRuleSets::DocumentRuleSets):
(WebCore::DocumentRuleSets::~DocumentRuleSets):
(WebCore::DocumentRuleSets::initUserStyle): New helper to initialize each RuleSets.
(WebCore::DocumentRuleSets::collectRulesFromUserStyleSheets): Factored out from StyleResolver.
(WebCore::makeRuleSet): Ditto.
(WebCore::DocumentRuleSets::resetAuthorStyle): Ditto.
(WebCore::DocumentRuleSets::appendAuthorStyleSheets): Ditto.
(WebCore::DocumentRuleSets::collectFeatures): Ditto.
(WebCore::DocumentRuleSets::reportMemoryUsage): New methods to report memory usage. Factored out from StyleResolver.
* css/DocumentRuleSets.h: Added.
(WebCore):
(DocumentRuleSets):
(WebCore::DocumentRuleSets::authorStyle): Moved from StyleResolver.
(WebCore::DocumentRuleSets::userStyle): Ditto.
(WebCore::DocumentRuleSets::features): Ditto.
(WebCore::DocumentRuleSets::sibling): Ditto.
(WebCore::DocumentRuleSets::uncommonAttribute): Ditto.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::appendAuthorStyleSheets): Now calls DocumentRuleSets::appendAuthorStyleSheets.
(WebCore::StyleResolver::matchAuthorRules): Use m_ruleSets.
(WebCore::StyleResolver::matchUserRules): Ditto.
(WebCore::StyleResolver::classNamesAffectedByRules): Ditto.
(WebCore::StyleResolver::locateCousinList): Ditto.
(WebCore::StyleResolver::canShareStyleWithElement): Ditto.
(WebCore::StyleResolver::locateSharedStyle): Ditto.
(WebCore::StyleResolver::styleForPage): Ditto.
(WebCore::StyleResolver::checkRegionStyle): Ditto.
(WebCore::StyleResolver::applyProperty): Ditto.
(WebCore::StyleResolver::reportMemoryUsage): Now calls DocumentRuleSets::reportMemoryUsage.
* css/StyleResolver.h:
(WebCore::StyleResolver::scopeResolver):
(StyleResolver):
(WebCore::StyleResolver::ruleSets): accessor r to DocumentRuleSets.
(WebCore::StyleResolver::usesSiblingRules): Use m_ruleSets.
(WebCore::StyleResolver::usesFirstLineRules): Ditto.
(WebCore::StyleResolver::usesBeforeAfterRules): Ditto.
(WebCore::StyleResolver::hasSelectorForAttribute): Ditto.
(WebCore::StyleResolver::hasSelectorForClass): Ditto.
(WebCore::StyleResolver::hasSelectorForId): Ditto.
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
2013-02-05 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Grid item's logical height is not properly recomputed after -webkit-grid-column / -webkit-grid-row changes
https://bugs.webkit.org/show_bug.cgi?id=108975
Reviewed by Tony Chang.
Test: fast/css-grid-layout/implicit-position-dynamic-change.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::clearContainingBlockOverrideSize):
(WebCore::RenderBox::clearOverrideContainingBlockContentLogicalHeight):
* rendering/RenderBox.h:
Added clearOverrideContainingBlockContentLogicalHeight and updated clearContainingBlockOverrideSize
to use it.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::minContentForChild):
(WebCore::RenderGrid::maxContentForChild):
Added missing clearContainingBlockOverrideSize to ensure we don't use a previous layout's override.
2013-02-05 Andreas Kling <akling@apple.com>
Optimize GlyphPage for case where all glyphs are available in the same font.
<http://webkit.org/b/108835>
<rdar://problem/13157042>
Reviewed by Antti Koivisto.
Let GlyphPage begin optimistically assuming that all its glyphs will be represented in
the same SimpleFontData*. In this (very common) case, only keep a single SimpleFontData*.
If glyphs from multiple fonts are mixed in one page, an array of per-glyph SimpleFontData*
is allocated transparently.
4.98 MB progression on Membuster3.
* platform/graphics/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::initializePage):
* platform/graphics/GlyphPage.h:
(WebCore::GlyphPage::createUninitialized):
(WebCore::GlyphPage::createZeroedSystemFallbackPage):
(WebCore::GlyphPage::createCopiedSystemFallbackPage):
There are now three ways of constructing a GlyphPage, two of them are only used for
creating system fallback pages.
(WebCore::GlyphPage::setGlyphDataForIndex):
Hold off creating a SimpleFontData* array until we're sure there are two different
SimpleFontData* backing the glyphs in this page.
We don't store font data for glyph #0, instead we let the getters always return null for it.
(WebCore::GlyphPage::~GlyphPage):
Free the SimpleFontData* array if needed.
(WebCore::GlyphPage::glyphDataForCharacter):
(WebCore::GlyphPage::glyphDataForIndex):
(WebCore::GlyphPage::fontDataForCharacter):
The font data for glyph #0 is always a null pointer now.
(WebCore::GlyphPage::clearForFontData):
Updated for new storage format.
2013-02-05 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Read-only inputs should be focusable
https://bugs.webkit.org/show_bug.cgi?id=108795
Reviewed by Kentaro Hara.
According to the standard [1], readonly form controls should be focusable.
- Sub-fields should be focusable if they are read-only. We should check
isDisabled mainly.
- All keyboard operations should not be handled if a field is disabled,
and focus navigation keyboard operations should be handled even if a
field is read-only.
[1] http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#the-readonly-attribute
No new tests. Update
fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html
for the new behavior.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::isKeyboardFocusable):
Make <input> focusable even if it is read-only.
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditElement::isFieldOwnerDisabled):
Separate isFieldOwnerDisabledOrReadOnly into two.
(WebCore::DateTimeEditElement::isFieldOwnerReadOnly): Ditto.
(WebCore::DateTimeEditElement::updateUIState):
We don't need to focus out if this is read-only.
* html/shadow/DateTimeEditElement.h:
(DateTimeEditElement): Separate isFieldOwnerDisabledOrReadOnly into two.
* html/shadow/DateTimeFieldElement.cpp:
(WebCore::DateTimeFieldElement::defaultEventHandler):
Skip handleKeyboardEvent if the field is disabled or the owner input is
disabled or read-only. handleKeyboardEvent handles editing key
operations.
(WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
If this field is disabled or the owner input is disabled, all keyboard
inputs are ignored.
If this field is read-only, we handle only left and right arrows to
change focus, and skip down/up/backspace/del keys.
(WebCore::DateTimeFieldElement::isFieldOwnerDisabled):
A helper function to check disable state of the owner input.
(WebCore::DateTimeFieldElement::isFieldOwnerReadOnly):
A helper function to check read-only state of the owner input.
(WebCore::DateTimeFieldElement::isFocusable):
This field should be focusable if it is read-only and not disabled.
* html/shadow/DateTimeFieldElement.h:
(FieldOwner): Separate isFieldOwnerDisabledOrReadOnly into two.
(DateTimeFieldElement):
Declare isFieldOwnerDisabled and isFieldOwnerReadOnly.
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore::DateTimeNumericFieldElement::handleKeyboardEvent):
Remove redundant isDisabled check. It is done in
DateTimeFieldElement::defaultEventHandler.
2013-02-05 Eric Carlson <eric.carlson@apple.com>
[Mac] Complete plumbing so captions menu can indicate track type
https://bugs.webkit.org/show_bug.cgi?id=108994
Reviewed by Dean Jackson.
Plumb "isClosedCaptions" through to the Mac media engine.
Updated media/video-controls-captions-trackmenu-localized.html and results.
* html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::isClosedCaptions): New, pass the call through to the private track.
* html/track/InbandTextTrack.h:
(InbandTextTrack):
* html/track/TextTrack.cpp:
(WebCore::TextTrack::TextTrack): Lose the member variable, this won't be accessed often enough
to make it worth caching the value.
* html/track/TextTrack.h:
(WebCore::TextTrack::isClosedCaptions): Make virtual so derived classes can oveerride.
* platform/graphics/InbandTextTrackPrivate.h:
(WebCore::InbandTextTrackPrivate::isClosedCaptions): New.
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
(WebCore::InbandTextTrackPrivateAVFObjC::isClosedCaptions): New.
2013-02-05 Mark Lam <mark.lam@apple.com>
Change DatabaseTask and DatabaseThread to work with DatabaseBackendAsync
instead of Database.
https://bugs.webkit.org/show_bug.cgi?id=108995.
Reviewed by Sam Weinig.
This change also moves the task inner classes from Database to
DatabaseBackendAsync.
No new tests.
* Modules/webdatabase/Database.cpp:
(WebCore::Database::from):
* Modules/webdatabase/Database.h:
(Database):
* Modules/webdatabase/DatabaseBackend.h:
(DatabaseBackend):
* Modules/webdatabase/DatabaseBackendAsync.h:
(DatabaseBackendAsync):
* Modules/webdatabase/DatabaseTask.cpp:
(WebCore::DatabaseTask::DatabaseTask):
(WebCore::DatabaseBackendAsync::DatabaseOpenTask::DatabaseOpenTask):
(WebCore::DatabaseBackendAsync::DatabaseOpenTask::doPerformTask):
(WebCore::DatabaseBackendAsync::DatabaseOpenTask::debugTaskName):
(WebCore::DatabaseBackendAsync::DatabaseCloseTask::DatabaseCloseTask):
(WebCore::DatabaseBackendAsync::DatabaseCloseTask::doPerformTask):
(WebCore::DatabaseBackendAsync::DatabaseCloseTask::debugTaskName):
(WebCore::DatabaseBackendAsync::DatabaseTransactionTask::DatabaseTransactionTask):
(WebCore::DatabaseBackendAsync::DatabaseTransactionTask::doPerformTask):
(WebCore::DatabaseBackendAsync::DatabaseTransactionTask::debugTaskName):
(WebCore::DatabaseBackendAsync::DatabaseTableNamesTask::DatabaseTableNamesTask):
(WebCore::DatabaseBackendAsync::DatabaseTableNamesTask::doPerformTask):
(WebCore::DatabaseBackendAsync::DatabaseTableNamesTask::debugTaskName):
* Modules/webdatabase/DatabaseTask.h:
(WebCore::DatabaseTask::database):
(DatabaseTask):
(WebCore::DatabaseBackendAsync::DatabaseOpenTask::create):
(DatabaseBackendAsync::DatabaseOpenTask):
(WebCore::DatabaseBackendAsync::DatabaseCloseTask::create):
(DatabaseBackendAsync::DatabaseCloseTask):
(WebCore::DatabaseBackendAsync::DatabaseTableNamesTask::create):
(DatabaseBackendAsync::DatabaseTableNamesTask):
* Modules/webdatabase/DatabaseThread.cpp:
(WebCore::DatabaseThread::databaseThread):
(WebCore::DatabaseThread::recordDatabaseOpen):
(WebCore::DatabaseThread::recordDatabaseClosed):
(WebCore::SameDatabasePredicate::SameDatabasePredicate):
(SameDatabasePredicate):
(WebCore::DatabaseThread::unscheduleDatabaseTasks):
* Modules/webdatabase/DatabaseThread.h:
(DatabaseThread):
2013-02-05 Mark Lam <mark.lam@apple.com>
Rename ENUM_CLASS_BEGIN() macro to ENUM_CLASS(), and make DatabaseType a strong enum.
https://bugs.webkit.org/show_bug.cgi?id=108988.
Reviewed by Alexey Proskuryakov.
No new tests.
* Modules/webdatabase/DatabaseBackend.cpp:
(WebCore::DatabaseBackend::DatabaseBackend):
* Modules/webdatabase/DatabaseBackend.h:
(DatabaseBackend):
* Modules/webdatabase/DatabaseBackendAsync.cpp:
(WebCore::DatabaseBackendAsync::DatabaseBackendAsync):
* Modules/webdatabase/DatabaseBackendSync.cpp:
(WebCore::DatabaseBackendSync::DatabaseBackendSync):
* Modules/webdatabase/DatabaseBasicTypes.h:
(WebCore::ENUM_CLASS):
* Modules/webdatabase/DatabaseError.h:
(WebCore::ENUM_CLASS):
2013-02-05 Kentaro Hara <haraken@chromium.org>
[V8] Remove deprecatedV8String() and deprecatedV8Integer()
https://bugs.webkit.org/show_bug.cgi?id=108919
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/v8/V8Binding.cpp:
(WebCore::toXPathNSResolver):
* bindings/v8/V8Binding.h:
* bindings/v8/custom/V8CustomXPathNSResolver.cpp:
(WebCore::V8CustomXPathNSResolver::create):
(WebCore::V8CustomXPathNSResolver::V8CustomXPathNSResolver):
(WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
* bindings/v8/custom/V8CustomXPathNSResolver.h:
(V8CustomXPathNSResolver):
2013-02-05 Vineet Chaudhary <rgf748@motorola.com>
formenctype to have empty string as default value.
https://bugs.webkit.org/show_bug.cgi?id=108969
Reviewed by Kent Tamura.
The spec says formEnctype should only have an invalid value default, not a missing value default.
Spec: http://www.w3.org/html/wg/drafts/html/master/forms.html#attr-fs-formenctype
http://www.whatwg.org/specs/web-apps/current-work/#attr-fs-formenctype
No new tests. Covered by existing test case fast/forms/submit-form-attributes.html
* html/HTMLFormControlElement.cpp: For the missing formEnctype attr return empty string.
(WebCore::HTMLFormControlElement::formEnctype):
2013-02-04 Kentaro Hara <haraken@chromium.org>
[V8] Reduce usage of deprecatedString() and deprecatedInteger()
https://bugs.webkit.org/show_bug.cgi?id=108909
Reviewed by Adam Barth.
By passing an Isolate parameter around, we can reduce usage of
deprecated methods.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrSetter):
(GenerateEventListenerCallback):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::TestEventTargetV8Internal::addEventListenerCallback):
(WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::addEventListenerCallback):
(WebCore::TestObjV8Internal::removeEventListenerCallback):
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::get):
(WebCore::set):
(WebCore::getNthValueOnKeyPath):
(WebCore::canInjectNthValueOnKeyPath):
(WebCore::ensureNthValueOnKeyPath):
(WebCore::createIDBKeyFromScriptValueAndKeyPath):
(WebCore::injectIDBKeyIntoScriptValue):
(WebCore::canInjectIDBKeyIntoScriptValue):
* bindings/v8/NPV8Object.cpp:
(WebCore::createValueListFromVariantArgs):
(_NPN_Invoke):
(_NPN_InvokeDefault):
(_NPN_SetProperty):
(_NPN_Construct):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::compileAndRunScript):
* bindings/v8/ScriptProfiler.cpp:
(WebCore):
(WebCore::ScriptProfiler::takeHeapSnapshot):
* bindings/v8/ScriptSourceCode.cpp:
(WebCore::ScriptSourceCode::compileScript):
* bindings/v8/ScriptSourceCode.h:
(ScriptSourceCode):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::prepareListenerObject):
* bindings/v8/V8NPObject.cpp:
(WebCore::npObjectInvokeImpl):
(WebCore::npObjectGetProperty):
* bindings/v8/V8NPUtils.cpp:
(WebCore::convertNPVariantToV8Object):
* bindings/v8/V8NPUtils.h:
(WebCore):
* bindings/v8/V8Utilities.cpp:
(WebCore::createHiddenDependency):
(WebCore::removeHiddenDependency):
(WebCore::transferHiddenDependency):
* bindings/v8/V8Utilities.h:
(WebCore):
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::addEventListenerCallback):
(WebCore::V8DOMWindow::removeEventListenerCallback):
2013-02-05 Kentaro Hara <haraken@chromium.org>
[V8] Make an Isolate parameter mandatory in HasInstance()
https://bugs.webkit.org/show_bug.cgi?id=108917
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateImplementation):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::V8Float64Array::HasInstance):
* bindings/scripts/test/V8/V8Float64Array.h:
(V8Float64Array):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::V8TestActiveDOMObject::HasInstance):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(V8TestActiveDOMObject):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::HasInstance):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(V8TestCustomNamedGetter):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(V8TestEventConstructor):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::V8TestEventTarget::HasInstance):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(V8TestEventTarget):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::HasInstance):
* bindings/scripts/test/V8/V8TestException.h:
(V8TestException):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::V8TestInterface::HasInstance):
* bindings/scripts/test/V8/V8TestInterface.h:
(V8TestInterface):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::HasInstance):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(V8TestMediaQueryListListener):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(V8TestNamedConstructor):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::HasInstance):
* bindings/scripts/test/V8/V8TestNode.h:
(V8TestNode):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::V8TestObj::HasInstance):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::HasInstance):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(V8TestOverloadedConstructors):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::HasInstance):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(V8TestSerializedScriptValueInterface):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toWebGLUniformLocation):
2013-02-05 Kentaro Hara <haraken@chromium.org>
[JSC] Clean up CodeGeneratorJS.pm by introducing HasCustom{Getter,Setter,Method}
https://bugs.webkit.org/show_bug.cgi?id=108898
Reviewed by Sam Weinig.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
(HasCustomGetter):
(HasCustomSetter):
(HasCustomMethod):
2013-02-05 Dana Jansens <danakj@chromium.org>
[chromium] Provide compositor offscreen context through the WebLayerTreeViewClient interface
https://bugs.webkit.org/show_bug.cgi?id=107776
Reviewed by James Robinson.
Allow the compositor thread's context to be retrieved on either thread,
so the main thread can create and pass the context to the impl thread
via its own mechanisms.
Move the code to bind the GrGLInterface to a WebGraphicsContext3D into
chromium's GraphicsContext3DPrivate. The chromium-side code will need
to implement this code itself.
* platform/chromium/support/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
(WebCore):
(WebCore::GraphicsContext3DPrivate::grContext):
* platform/chromium/support/GraphicsContext3DPrivate.h:
* platform/graphics/gpu/SharedGraphicsContext3D.cpp:
(WebCore::SharedGraphicsContext3D::getForImplThread):
2013-02-05 Tony Gentilcore <tonyg@chromium.org>
Continue making XSSAuditor thread safe: Remove dependency on the parser's tokenizer
https://bugs.webkit.org/show_bug.cgi?id=108666
Reviewed by Adam Barth.
This is the final dependency on the parser, so we remove that as well. Yay!
No new tests because no new functionality.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::pumpTokenizer): Pass m_tokenizer->shouldAllowCDATA()
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::XSSAuditor): Remove isMainThread() check because we have one in init() anyway.
Move m_isEnabled and m_documentURL initialization to init() because we have a Document* there.
(WebCore::XSSAuditor::init):
(WebCore::XSSAuditor::filterToken):
(WebCore::XSSAuditor::filterStartToken):
(WebCore::XSSAuditor::filterEndToken):
(WebCore::XSSAuditor::filterScriptToken):
(WebCore::XSSAuditor::decodedSnippetForJavaScript):
* html/parser/XSSAuditor.h:
(WebCore::FilterTokenRequest::FilterTokenRequest):
(FilterTokenRequest):
(XSSAuditor):
2013-02-05 Enrica Casucci <enrica@apple.com>
Make baseWritingDirectionForSelectionStart available to all platforms in the Editor class.
https://bugs.webkit.org/show_bug.cgi?id=108977.
Reviewed by Ryosuke Niwa.
Now that baseWritingDirectionForSelectionStart doesn't use
platform specific type anymore, we can make it available for
all platforms. This way it can be used for iOS as well.
No new tests, no functionality change.
* editing/Editor.cpp:
(WebCore::Editor::baseWritingDirectionForSelectionStart): Added.
* editing/Editor.h: Moved from PLATFORM(MAC).
* editing/mac/EditorMac.mm: baseWritingDirectionForSelectionStart removed.
2013-02-05 Benjamin Poulain <bpoulain@apple.com>
Avoid String->AtomicString conversion in Attr::childrenChanged()
https://bugs.webkit.org/show_bug.cgi?id=108742
Reviewed by Andreas Kling.
* dom/Attr.cpp:
(WebCore::Attr::childrenChanged): StringBuilder can output AtomicString directly.
2013-02-05 Yusuf Ozuysal <yusufo@google.com>
[chromium] Enable shouldGesturesTriggerActive for Android
https://bugs.webkit.org/show_bug.cgi?id=96948
Reviewed by James Robinson.
We need this to fix performance issues we are getting because of touchstart
triggering hover/active states.
No new tests. The tests introduced in https://bugs.webkit.org/show_bug.cgi?id=96060
should run with the corrected behavior and would cover this change as well.
* page/EventHandler.cpp:
(WebCore::shouldGesturesTriggerActive):
2013-02-05 Mark Lam <mark.lam@apple.com>
Introduced back-end database classes + a few small fixes.
https://bugs.webkit.org/show_bug.cgi?id=108759.
Reviewed by Brady Eidson.
1. Added DatabaseBackendContext, DatabaseBackendAsync, and DatabaseBackendSync.
These are backends for DatabaseContext, Database, and DatabaseSync
respectively.
2. Added DatabaseBase to hold common code between Database and DatabaseSync.
3. Renamed a few functions.
4. Cleaned up unneeded code in ~DatabaseSync().
5. Added some FIXMEs as reminders or places to clean up when we're done
refactoring.
6. Moved the calling of ScriptController::initializeThreading() from the Database
constructor to DatabaseManager::openDatabase(). This just moves the call
earlier in the same code path. System initialization work (i.e. initializing
script threading in this case) should be done by the manager instead of by
each Database instance.
No new tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/AbstractDatabaseServer.h:
(AbstractDatabaseServer):
* Modules/webdatabase/Database.cpp:
(WebCore::Database::Database):
(WebCore::Database::backend):
* Modules/webdatabase/Database.h:
(Database):
* Modules/webdatabase/DatabaseBackend.cpp:
(WebCore::DatabaseBackend::DatabaseBackend):
(WebCore::DatabaseBackend::~DatabaseBackend):
(WebCore::DatabaseBackend::incrementalVacuumIfNeeded):
* Modules/webdatabase/DatabaseBackend.h:
(DatabaseBackend):
(WebCore::DatabaseBackend::databaseContext):
(WebCore::DatabaseBackend::setFrontend):
* Modules/webdatabase/DatabaseBackendAsync.cpp: Added.
(WebCore::DatabaseBackendAsync::DatabaseBackendAsync):
* Modules/webdatabase/DatabaseBackendAsync.h: Added.
(DatabaseBackendAsync):
* Modules/webdatabase/DatabaseBackendContext.cpp: Added.
(WebCore::DatabaseBackendContext::securityOrigin):
(WebCore::DatabaseBackendContext::isContextThread):
* Modules/webdatabase/DatabaseBackendContext.h: Added.
(DatabaseBackendContext):
(WebCore::DatabaseBackendContext::scriptExecutionContext):
* Modules/webdatabase/DatabaseBackendSync.cpp: Added.
(WebCore::DatabaseBackendSync::DatabaseBackendSync):
(WebCore::DatabaseBackendSync::~DatabaseBackendSync):
* Modules/webdatabase/DatabaseBackendSync.h: Added.
(DatabaseBackendSync):
* Modules/webdatabase/DatabaseBase.cpp: Added.
(WebCore::DatabaseBase::DatabaseBase):
(WebCore::DatabaseBase::scriptExecutionContext):
(WebCore::DatabaseBase::logErrorMessage):
* Modules/webdatabase/DatabaseBase.h: Added.
(DatabaseBase):
* Modules/webdatabase/DatabaseContext.cpp:
(WebCore::DatabaseContext::DatabaseContext):
(WebCore::DatabaseContext::backend):
* Modules/webdatabase/DatabaseContext.h:
(DatabaseContext):
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::openDatabase):
(WebCore::DatabaseManager::openDatabaseSync):
(WebCore::DatabaseManager::hasOpenDatabases):
(WebCore::DatabaseManager::interruptAllDatabasesForContext):
(WebCore::DatabaseManager::getMaxSizeForDatabase):
(WebCore::DatabaseManager::logErrorMessage):
* Modules/webdatabase/DatabaseManager.h:
(DatabaseManager):
* Modules/webdatabase/DatabaseServer.cpp:
(WebCore::DatabaseServer::interruptAllDatabasesForContext):
(WebCore::DatabaseServer::canEstablishDatabase):
* Modules/webdatabase/DatabaseServer.h:
* Modules/webdatabase/DatabaseSync.cpp:
(WebCore::DatabaseSync::DatabaseSync):
(WebCore::DatabaseSync::~DatabaseSync):
(WebCore::DatabaseSync::backend):
* Modules/webdatabase/DatabaseSync.h:
(DatabaseSync):
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::openTrackerDatabase):
(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::hasEntryForDatabase):
(WebCore::DatabaseTracker::interruptAllDatabasesForContext):
(WebCore::DatabaseTracker::populateOriginsIfNeeded):
(WebCore::DatabaseTracker::databaseNamesForOriginNoLock):
(WebCore::DatabaseTracker::detailsForNameAndOrigin):
(WebCore::DatabaseTracker::setDatabaseDetails):
(WebCore::DatabaseTracker::usageForOriginNoLock):
(WebCore::DatabaseTracker::setQuota):
(WebCore::DatabaseTracker::addDatabase):
(WebCore::DatabaseTracker::deleteOrigin):
(WebCore::DatabaseTracker::isDeletingDatabaseOrOriginFor):
(WebCore::DatabaseTracker::canDeleteDatabase):
(WebCore::DatabaseTracker::isDeletingDatabase):
(WebCore::DatabaseTracker::canDeleteOrigin):
(WebCore::DatabaseTracker::isDeletingOrigin):
(WebCore::DatabaseTracker::recordDeletingOrigin):
(WebCore::DatabaseTracker::doneDeletingOrigin):
(WebCore::DatabaseTracker::deleteDatabase):
(WebCore::DatabaseTracker::deleteDatabaseFile):
* Modules/webdatabase/DatabaseTracker.h:
(DatabaseTracker):
* Modules/webdatabase/SQLTransaction.cpp:
* Modules/webdatabase/SQLTransactionClient.cpp:
(WebCore::SQLTransactionClient::didExceedQuota):
* Modules/webdatabase/SQLTransactionSync.cpp:
* Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::removeOpenDatabase):
(WebCore::DatabaseTracker::prepareToOpenDatabase):
(WebCore::DatabaseTracker::failedToOpenDatabase):
(WebCore::DatabaseTracker::interruptAllDatabasesForContext):
(WebCore::DatabaseTracker::closeDatabasesImmediately):
* Modules/webdatabase/chromium/SQLTransactionClientChromium.cpp:
(WebCore::SQLTransactionClient::didCommitWriteTransaction):
(WebCore::SQLTransactionClient::didExceedQuota):
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
2013-02-05 Nayan Kumar K <nayankk@motorola.com>
[WEBGL] Rename WEBKIT_WEBGL_depth_texture to WEBGL_depth_texture.
https://bugs.webkit.org/show_bug.cgi?id=108959
Reviewed by Kenneth Russell.
WEBGL_depth_texture is official now. Hence remove the vendor prefix from
WEBKIT_WEBGL_depth_texture and rename this extension string to WEBGL_depth_texture.
Specification: http://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/.
Tests already exists, modified them to test querying of unprefixed extension string.
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::toJS):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toV8Object):
* html/canvas/WebGLDepthTexture.cpp:
(WebCore::WebGLDepthTexture::getName):
* html/canvas/WebGLExtension.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::getExtension):
2013-02-05 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r141905.
http://trac.webkit.org/changeset/141905
https://bugs.webkit.org/show_bug.cgi?id=108963
"Broke mac build" (Requested by tonyg-cr on #webkit).
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::pumpTokenizer):
* html/parser/CompactHTMLToken.cpp:
(SameSizeAsCompactHTMLToken):
(WebCore::isStringSafeToSendToAnotherThread):
(WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
* html/parser/CompactHTMLToken.h:
(WebCore):
(CompactHTMLToken):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::pumpTokenizer):
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::filterToken):
* html/parser/XSSAuditor.h:
(WebCore):
(XSSAuditor):
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::XSSAuditorDelegate::didBlockScript):
* html/parser/XSSAuditorDelegate.h:
(WebCore::DidBlockScriptRequest::create):
(WebCore::DidBlockScriptRequest::DidBlockScriptRequest):
(XSSAuditorDelegate):
* platform/KURL.cpp:
* platform/KURL.h:
(KURL):
* platform/KURLGoogle.cpp:
(WebCore::KURLGooglePrivate::reportMemoryUsage):
* platform/KURLGooglePrivate.h:
(KURLGooglePrivate):
* platform/KURLWTFURLImpl.h:
(WebCore::KURLWTFURLImpl::reportMemoryUsage):
2013-02-05 Dominik Röttsches <dominik.rottsches@intel.com>
[HarfBuzz][Cairo] harfBuzzGetGlyph is slow and hot
https://bugs.webkit.org/show_bug.cgi?id=108941
Reviewed by Kenneth Rohde Christiansen.
The text to glyph conversion using Cairo is slow
due to expensive text codec conversion to UTF-8.
Additionally, the glyph lookup itself is expensive.
Inspired by the approach taken in HarfBuzzFaceSkia.cpp
I suggest to implement a similar caching mechanism to
accelerate this conversion.
Arabic line breaking test, under review in
bug 108948 shows about 58% improvement on my system
with this patch.
* platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:
(WebCore::HarfBuzzFontData::HarfBuzzFontData):
New container structure that keeps pointers
to the cairo scaled font as well as the glyph cache.
(HarfBuzzFontData):
(WebCore):
(WebCore::harfBuzzGetGlyph): Using the new container structure for accessing the cache.
(WebCore::harfBuzzGetGlyphHorizontalAdvance): Using the new container structure for accessing the scaled font.
(WebCore::harfBuzzGetGlyphExtents): Ditto.
(WebCore::destroyHarfBuzzFontData): Destroying the container that held the pointers.
(WebCore::HarfBuzzFace::createFont):
Initializing the container structure with the pointers
to the cache that is held in HarfBuzzFace and the cairo scaled font.
2013-02-05 Tony Gentilcore <tonyg@chromium.org>
Call XSSAuditor's didBlockScript() for the threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=108726
Reviewed by Adam Barth.
This patch causes us to call didBlockScript() on the main thread if the CompactHTML token has XSSInfo.
To do so, we:
1. Rename DidBlockScriptRequest to XSSInfo.
2. Add an OwnPtr<XSSInfo> field to CompactHTMLToken.
3. Add an isSafeToSendToAnotherThread() method to String and KURL.
We don't yet populate didBlockScriptRequest on the background thread, but this should just work once we do.
No new tests because no new functionality.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::pumpTokenizer): Update comment for rename.
* html/parser/CompactHTMLToken.cpp:
(SameSizeAsCompactHTMLToken):
(WebCore::CompactHTMLToken::CompactHTMLToken): Add a copy constructor used by Vector.
(WebCore::CompactHTMLToken::isSafeToSendToAnotherThread): Include new m_xssInfo field in safety check.
(WebCore):
(WebCore::CompactHTMLToken::xssInfo): Added.
(WebCore::CompactHTMLToken::setXSSInfo): Added.
* html/parser/CompactHTMLToken.h: Add an OwnPtr<XSSInfo> field to CompactHTMLToken.
(WebCore):
(CompactHTMLToken):
(WTF): Add VectorTraits necessary for copying Vector fields objects that contain an OwnPtr.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser): Add new didBlockScript() call.
(WebCore::HTMLDocumentParser::pumpTokenizer):
* html/parser/XSSAuditor.cpp: Renaming.
(WebCore::XSSAuditor::filterToken):
* html/parser/XSSAuditor.h: Renaming.
(WebCore):
(XSSAuditor):
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::XSSInfo::isSafeToSendToAnotherThread):
(WebCore):
(WebCore::XSSAuditorDelegate::didBlockScript):
* html/parser/XSSAuditorDelegate.h:
(WebCore::XSSInfo::create):
(XSSInfo):
(WebCore::XSSInfo::XSSInfo):
(XSSAuditorDelegate):
* platform/KURL.cpp:
(WebCore::KURL::isSafeToSendToAnotherThread): Added.
(WebCore):
* platform/KURL.h:
(KURL):
* platform/KURLGoogle.cpp:
(WebCore):
(WebCore::KURLGooglePrivate::isSafeToSendToAnotherThread): Added.
* platform/KURLGooglePrivate.h:
(KURLGooglePrivate):
* platform/KURLWTFURLImpl.h:
(WebCore::KURLWTFURLImpl::isSafeToSendToAnotherThread): Added.
2013-02-05 Anton Vayvod <avayvod@chromium.org>
TextAutosizing: adjust the maximum difference between cluster text width and its descendant
width.
https://bugs.webkit.org/show_bug.cgi?id=108411
Currently, if a render object is more than 200 CSS units shorter than its parent cluster, it
becomes a separate autosizing cluster (see https://bugs.webkit.org/show_bug.cgi?id=105188).
This doesn't work well for layouts when narrow nodes are related, like nested comments:
deeper comments are all shorter than the parent cluster and become autosized differently. To
avoid that the difference that makes a shorter descendant a new autosizing cluster is
adjusted each time the width difference is not greater than 50 CSS units from the previous
one. This allows nested comments, for example, to remain a part of the parent cluster and be
autosized with the same multiplier.
Reviewed by Kenneth Rohde Christiansen.
Tests:
fast/text-autosizing/nested-child.html
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizingClusterInfo::TextAutosizingClusterInfo):
Added a new field to store the current maximum width difference for the cluster.
(WebCore::TextAutosizer::isAutosizingCluster):
Uses the new field to determine if the current node is a separate cluster,
updates the maximum allowed width difference between the cluster and its descendant.
(WebCore::TextAutosizer::processContainer):
(WebCore::TextAutosizer::clusterShouldBeAutosized):
(WebCore::TextAutosizer::measureDescendantTextWidth):
Non-const reference passed to the methods above.
* rendering/TextAutosizer.h: updated method parameters.
2013-02-05 Tony Gentilcore <tonyg@chromium.org>
Continue making XSSAuditor thread safe: Remove dependency on parser's sourceForToken and TextResourceDecoder
https://bugs.webkit.org/show_bug.cgi?id=108698
Reviewed by Adam Barth.
We'd like to be able to call filterToken() from the BackgroundHTMLParser where there is no HTMLDocumentParser. So we are removing the dependencies of
filterToken() on the HTMLDocumentParser. This patch brings us one step closer to removing the m_parser member from XSSAuditor by passing in the
TextResourceDecoder and HTMLSourceTracker to filterToken. To keep the number of parameters from blowing up, this introduces a FilterTokenRequest struct
to hold its arguments. We expect to add one more member to this struct.
No new tests because no new functionality.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::pumpTokenizer):
* html/parser/HTMLDocumentParser.h:
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::filterToken):
(WebCore::XSSAuditor::filterStartToken):
(WebCore::XSSAuditor::filterCharacterToken):
(WebCore::XSSAuditor::filterScriptToken):
(WebCore::XSSAuditor::filterObjectToken):
(WebCore::XSSAuditor::filterParamToken):
(WebCore::XSSAuditor::filterEmbedToken):
(WebCore::XSSAuditor::filterAppletToken):
(WebCore::XSSAuditor::filterIframeToken):
(WebCore::XSSAuditor::filterMetaToken):
(WebCore::XSSAuditor::filterBaseToken):
(WebCore::XSSAuditor::filterFormToken):
(WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):
(WebCore::XSSAuditor::eraseAttributeIfInjected):
(WebCore::XSSAuditor::decodedSnippetForName):
(WebCore::XSSAuditor::decodedSnippetForAttribute):
(WebCore::XSSAuditor::decodedSnippetForJavaScript):
* html/parser/XSSAuditor.h:
(WebCore):
(WebCore::FilterTokenRequest::FilterTokenRequest):
(FilterTokenRequest):
(XSSAuditor):
2013-02-05 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Qt] REGRESSION(r137436): It made all inspector tests timeout on developer builds
https://bugs.webkit.org/show_bug.cgi?id=106554
Reviewed by Simon Hausmann.
* Target.pri:
2013-02-05 Peter Rybin <prybin@chromium.org>
Web Inspector: prevent crash, add required error string value
https://bugs.webkit.org/show_bug.cgi?id=108776
Reviewed by Pavel Feldman.
Error string is assigned where missing, assert is added where empty string is
possible.
* inspector/InjectedScriptBase.cpp:
(WebCore::InjectedScriptBase::makeEvalCall):
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::injectedScriptForEval):
2013-02-05 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Clicking a profile's title in the console loads about:blank.
https://bugs.webkit.org/show_bug.cgi?id=107949
Reviewed by Vsevolod Vlasov.
Quick fix for regression.
* inspector/front-end/inspector.js:
Avoid "exit route" when URL is a profile URL.
2013-02-05 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: element.focus() should not focus on disabled sub-fields.
https://bugs.webkit.org/show_bug.cgi?id=108924
Reviewed by Kentaro Hara.
The first field may be non-focusable. We should search sub-fields for
focusable one.
Test: fast/forms/date-multiple-fields/date-multiple-fields-focus.html
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditElement::focusOnNextFocusableField):
Added. A private helper function.
(WebCore::DateTimeEditElement::focusIfNoFocus): Use focusOnNextFocusableField.
(WebCore::DateTimeEditElement::focusByOwner): Ditto.
(WebCore::DateTimeEditElement::focusOnNextField): Ditto.
* html/shadow/DateTimeEditElement.h:
(DateTimeEditElement): Declare focusOnNextFocusableField.
2013-02-04 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Create separate project for each file system added to inspector.
https://bugs.webkit.org/show_bug.cgi?id=108652
Reviewed by Pavel Feldman.
Every file system added to web inspector is now represented by its own project in workspace.
FileSystemMapping changed accrodingly.
Test: inspector/file-system-mapping.html
* inspector/front-end/FileMapping.js:
(WebInspector.FileMapping.prototype._entryURIPrefix):
* inspector/front-end/FileSystemMapping.js:
(WebInspector.FileSystemMapping.prototype.fileForURI):
(WebInspector.FileSystemMapping.prototype.uriForFile):
(WebInspector.FileSystemMapping.prototype.uriPrefixForPathPrefix):
(WebInspector.FileSystemMappingImpl):
(WebInspector.FileSystemMappingImpl.prototype._loadFromSettings.get this):
(WebInspector.FileSystemMappingImpl.prototype._loadFromSettings):
(WebInspector.FileSystemMappingImpl.prototype._saveToSettings):
(WebInspector.FileSystemMappingImpl.prototype.set _fileSystemName):
(WebInspector.FileSystemMappingImpl.prototype.fileSystemId):
(WebInspector.FileSystemMappingImpl.prototype.addFileSystemMapping):
(WebInspector.FileSystemMappingImpl.prototype.removeFileSystemMapping):
(WebInspector.FileSystemMappingImpl.prototype.fileSystemPaths):
(WebInspector.FileSystemMappingImpl.prototype.fileForURI):
(WebInspector.FileSystemMappingImpl.prototype.uriForFile):
(WebInspector.FileSystemMappingImpl.prototype.uriPrefixForPathPrefix):
* inspector/front-end/FileSystemWorkspaceProvider.js:
(WebInspector.FileSystemWorkspaceProvider):
(WebInspector.FileSystemWorkspaceProvider.prototype.innerCallback):
(WebInspector.FileSystemWorkspaceProvider.prototype.requestFileContent):
(WebInspector.FileSystemWorkspaceProvider.prototype.setFileContent):
(WebInspector.FileSystemWorkspaceProvider.prototype._populate.filesLoaded):
(WebInspector.FileSystemWorkspaceProvider.prototype._populate):
(WebInspector.FileSystemWorkspaceProvider.prototype._addFile):
(WebInspector.FileSystemWorkspaceProvider.prototype._removeFile):
(WebInspector.FileSystemWorkspaceProvider.prototype.reset):
* inspector/front-end/IsolatedFileSystemModel.js:
(WebInspector.IsolatedFileSystemModel):
(WebInspector.IsolatedFileSystemModel.prototype._innerAddFileSystem):
(WebInspector.IsolatedFileSystemModel.prototype._fileSystemRemoved):
* inspector/front-end/Workspace.js:
(WebInspector.Project.prototype.searchInFileContent):
(WebInspector.Project.prototype.dispose):
(WebInspector.Workspace.prototype.removeProject):
2013-02-05 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Should not move focus if the element already has focus
https://bugs.webkit.org/show_bug.cgi?id=108914
Reviewed by Kentaro Hara.
If timeInput.focus() is called when a sub-field of the time input
already has focus, we should not focus on the first sub-field of the
time input.
Test: fast/forms/time-multiple-fields/time-multiple-fields-focus.html
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::willCancelFocus): If
the input elment already has focused sub-field, we don't need to proceed
focus handling. FocusDirection check is required because we don't need
to do this in cases of sequential focus navigation.
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType): Override InputType::willCancelFocus.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::focus):
Cancel focus if InputType::willCancelFocus returns true.
* html/HTMLInputElement.h:
(HTMLInputElement): Override focus.
* html/InputType.cpp:
(WebCore::InputType::willCancelFocus):
Add a default implementation. It returns false.
* html/InputType.h:
(InputType): Declare willCancelFocus.
2013-02-05 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] RGB -> BGR is wrong on big endian
https://bugs.webkit.org/show_bug.cgi?id=107560
Reviewed by Jocelyn Turcotte.
Replace the conversion to methods that make it clearer what is going on.
The routines are also optimized compared to the existing by avoiding going
over slow Color constructor.
Tested by existing tests in canvas and fast/canvas.
* platform/graphics/Color.cpp:
(WebCore::colorFromPremultipliedARGB):
Cleanup.
(WebCore::premultipliedARGBFromColor):
Cleanup and correct for alpha = 0.
* platform/graphics/Color.h:
(WebCore):
* platform/graphics/qt/ImageBufferQt.cpp:
(WebCore::copyColorToRGBA):
(WebCore::copyRGBAToColor):
(WebCore::getImageData):
(WebCore::ImageBuffer::putByteArray):
2013-02-05 JungJik Lee <jungjik.lee@samsung.com>
[TexMap] Use visible as initial value of backface-visibility-property.
https://bugs.webkit.org/show_bug.cgi?id=108875
Reviewed by Noam Rosenthal.
According to W3C spec, the initial value of backface-visibility-visibility is visible.
However TextureMapperLayer's initial value is false which means hidden.
So this patch is for changing the value to visible(true).
Covered by existing tests.
* platform/graphics/texmap/TextureMapperLayer.h:
(WebCore::TextureMapperLayer::State::State): Change the initial value false to true
to use backface-visibility.
2013-02-05 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] do not store a dropped trace log in backend
https://bugs.webkit.org/show_bug.cgi?id=108600
Reviewed by Pavel Feldman.
Clear memory immediately on dropping current trace log instead of waiting for the next capture command.
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
2013-02-05 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] UI is not restored properly when deleting a live recording profile
https://bugs.webkit.org/show_bug.cgi?id=108602
Reviewed by Pavel Feldman.
Cancel recording profile of canvas-type when deleting an alive trace log.
Drive-by: rename ProfileHeader.reset to ProfileHeader.dispose since it's called on header's destruction.
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileHeader.prototype.dispose):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfileHeader.prototype.dispose):
(WebInspector.ProfilesPanel.prototype._reset):
(WebInspector.ProfilesPanel.prototype._removeProfileHeader):
(WebInspector.ProfilesPanel.prototype.setRecordingProfile):
2013-02-05 Julien Brianceau <jbrianceau@nds.com>
Build is broken since r141543 for platforms without OpenGL
https://bugs.webkit.org/show_bug.cgi?id=108862
Reviewed by Simon Hausmann.
* Target.pri:
2013-02-05 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r141865.
http://trac.webkit.org/changeset/141865
https://bugs.webkit.org/show_bug.cgi?id=108909
webkit unit tests are broken
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrSetter):
(GenerateEventListenerCallback):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::TestEventTargetV8Internal::addEventListenerCallback):
(WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::addEventListenerCallback):
(WebCore::TestObjV8Internal::removeEventListenerCallback):
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::get):
(WebCore::set):
(WebCore::getNthValueOnKeyPath):
(WebCore::canInjectNthValueOnKeyPath):
(WebCore::ensureNthValueOnKeyPath):
(WebCore::createIDBKeyFromScriptValueAndKeyPath):
(WebCore::injectIDBKeyIntoScriptValue):
(WebCore::canInjectIDBKeyIntoScriptValue):
* bindings/v8/NPV8Object.cpp:
(WebCore::createValueListFromVariantArgs):
(_NPN_Invoke):
(_NPN_InvokeDefault):
(_NPN_SetProperty):
(_NPN_Construct):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::compileAndRunScript):
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::takeHeapSnapshot):
* bindings/v8/ScriptSourceCode.cpp:
(WebCore::ScriptSourceCode::compileScript):
* bindings/v8/ScriptSourceCode.h:
(ScriptSourceCode):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::prepareListenerObject):
* bindings/v8/V8NPObject.cpp:
(WebCore::npObjectInvokeImpl):
(WebCore::npObjectGetProperty):
* bindings/v8/V8NPUtils.cpp:
(WebCore::convertNPVariantToV8Object):
* bindings/v8/V8NPUtils.h:
(WebCore):
* bindings/v8/V8Utilities.cpp:
(WebCore::createHiddenDependency):
(WebCore::removeHiddenDependency):
(WebCore::transferHiddenDependency):
* bindings/v8/V8Utilities.h:
(WebCore):
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::addEventListenerCallback):
(WebCore::V8DOMWindow::removeEventListenerCallback):
2013-02-05 Mike West <mkwst@chromium.org>
Cleanup: Use exceptionless Range::* methods rather than ignoring exceptions.
https://bugs.webkit.org/show_bug.cgi?id=108773
Reviewed by Darin Adler.
We often call Range::{start,end}{Container,Offset} with an ExceptionCode
that's completely ignored. In these cases, we should simply use the
exceptionless version of the method instead.
* dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::addMarker):
Here, I also moved parameters onto one line to make the
stylebot happy.
(WebCore::DocumentMarkerController::addTextMatchMarker):
(WebCore::DocumentMarkerController::setMarkersActive):
Dropped ignored ExceptionCode variable entirely.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::visiblePositionForIndex):
Can't drop the variable because of the selectNodeContents call.
* editing/Editor.cpp:
(WebCore::Editor::canDeleteRange):
Dropped ignored ExceptionCode variable entirely.
(WebCore::Editor::advanceToNextMisspelling):
Can't drop the variable because of setStart/setEnd.
* editing/EditorCommand.cpp:
(WebCore::unionDOMRanges):
Can't drop the variable because of compareBoundaryPoints.
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::appendNodeValue):
Dropped ignored ExceptionCode variable entirely.
* editing/TextCheckingHelper.cpp:
(WebCore::TextCheckingParagraph::offsetAsRange):
(WebCore::TextCheckingHelper::findFirstMisspelling):
(WebCore::TextCheckingHelper::findFirstGrammarDetail):
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::renderedText):
(WebCore::StyledMarkupAccumulator::stringValueForRange):
Dropped ignored ExceptionCode variable entirely.
* editing/visible_units.cpp:
(WebCore::previousBoundary):
Can't drop the variable due to many other calls.
* page/DOMSelection.cpp:
(WebCore::DOMSelection::deleteFromDocument):
(WebCore::DOMSelection::containsNode):
For both these cases, the 'ASSERT(!ec)' after the statement I've
edited only checked the last occurance of the exception: that is,
if 'startXxx(ec)' threw an exception, it would be overwritten by
the 'setBaseAndExtend()' or 'compareBoundaryPoints()' exception.
Removing the exception parameters from the parameters' calls
shouldn't effect behavior.
* platform/chromium/PasteboardChromium.cpp:
(WebCore::Pasteboard::writeSelection):
* platform/mac/HTMLConverter.mm:
(+[WebHTMLConverter editingAttributedStringFromRange:]):
* platform/win/ClipboardWin.cpp:
(WebCore::ClipboardWin::writeRange):
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::writeSelection):
* platform/wince/PasteboardWinCE.cpp:
(WebCore::Pasteboard::writeSelection):
Dropped ignored ExceptionCode variable entirely.
2013-02-05 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: introduce Memory.getDOMCounters
https://bugs.webkit.org/show_bug.cgi?id=108822
Reviewed by Pavel Feldman.
Introduced Memory.getDOMCounters command that returns number of Documents, Nodes
and JS event listeners in the inspected process.
* inspector/Inspector.json:
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getDOMCounters):
(WebCore):
* inspector/InspectorMemoryAgent.h:
(InspectorMemoryAgent):
2013-02-04 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: rename Image m_data member to m_encodedImageData for the consistency
https://bugs.webkit.org/show_bug.cgi?id=108913
Reviewed by Yury Semikhatsky.
No new tests because no API changes.
* platform/graphics/Image.cpp:
(WebCore::Image::setData):
(WebCore::Image::reportMemoryUsage):
* platform/graphics/Image.h:
(WebCore::Image::data):
(Image):
2013-02-05 Hajime Morrita <morrita@google.com>
Unreviewed Linux ASAN build fix for r141783.
* platform/RefCountedSupplement.h:
(Wrapper):
* platform/Supplementable.h:
(Supplement):
2013-02-05 Mike West <mkwst@chromium.org>
[chromium] Unreviewed: Fix broken SVG-disabled build.
https://bugs.webkit.org/show_bug.cgi?id=108916
The new enum value CSSPropertyWebkitGridAutoFlow was introduced in
r141787, and accidentally left out of CSSParser::parseValue's big
switch. This causes problems in non-SVG builds.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
2013-02-05 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Update RTCPeerConnections stream accessors to match the latest specification
https://bugs.webkit.org/show_bug.cgi?id=108179
Reviewed by Adam Barth.
http://dev.w3.org/2011/webrtc/editor/webrtc.html#interface-definition
The attributes localStreams and remoteStreams have been changes to the methods
getLocalStreams() and getRemoteStreams() which return a native array instead.
Existing tests updated to cover patch.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/MediaStream.h:
(WebCore):
* Modules/mediastream/MediaStreamList.cpp: Removed.
* Modules/mediastream/MediaStreamList.h: Removed.
* Modules/mediastream/MediaStreamList.idl: Removed.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::addStream):
(WebCore::RTCPeerConnection::removeStream):
(WebCore::RTCPeerConnection::getLocalStreams):
(WebCore::RTCPeerConnection::getRemoteStreams):
(WebCore::RTCPeerConnection::didAddRemoteStream):
(WebCore::RTCPeerConnection::didRemoveRemoteStream):
* Modules/mediastream/RTCPeerConnection.h:
(RTCPeerConnection):
* Modules/mediastream/RTCPeerConnection.idl:
* WebCore.gypi:
2013-02-05 Viatcheslav Ostapenko <sl.ostapenko@samsung.com>
[Qt][EFL][WebGL] Webgl doesn't work on nvidia cards
https://bugs.webkit.org/show_bug.cgi?id=108059
Reviewed by Kenneth Rohde Christiansen.
Commit r138327 fixed repainting issues on mesa3d GL library by re-binding
texture to the window after every glXSwapBuffer. Unfortunatelly re-bind
breaks rendering on NVidia cards with NVidia propiertary drivers.
This change limits texture re-binding only for mesa3d GL library.
No new tests. HW specific fix.
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::OffScreenRootWindow::isMesaGLX):
(OffScreenRootWindow):
(WebCore::GraphicsSurface::platformSwapBuffers):
2013-02-05 Praveen Jadhav <praveen.j@samsung.com>
Floating point precision error in AudioPannerNode.
https://bugs.webkit.org/show_bug.cgi?id=106001
Reviewed by Kentaro Hara.
Specifications Update:
https://dvcs.w3.org/hg/audio/rev/69a39a516e45
Conversion from double to float and back to double
results in precision error. Avoiding these conversions
will make sure that proper values are retained in the
parameters.
* Modules/webaudio/PannerNode.h:
(WebCore::PannerNode::refDistance):
(WebCore::PannerNode::setRefDistance):
(WebCore::PannerNode::maxDistance):
(WebCore::PannerNode::setMaxDistance):
(WebCore::PannerNode::rolloffFactor):
(WebCore::PannerNode::setRolloffFactor):
(WebCore::PannerNode::coneInnerAngle):
(WebCore::PannerNode::setConeInnerAngle):
(WebCore::PannerNode::coneOuterAngle):
(WebCore::PannerNode::setConeOuterAngle):
(WebCore::PannerNode::coneOuterGain):
(WebCore::PannerNode::setConeOuterGain):
* Modules/webaudio/PannerNode.idl:
2013-02-05 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Use disabled attribute internally instead of readonly attribute
https://bugs.webkit.org/show_bug.cgi?id=108911
Reviewed by Kentaro Hara.
Use 'disabled' attribute for shadow elements for <input> with
multiple-fields UI instead of 'readonly' attribute because 'readonly'
attribute represents focusable-but-non-editable state in HTML though
we'd like to represent non-focusable-and-non-editable state.
The summary of changes:
- Use 'disabled' attribute instead of 'readonly' attribute for DateTimeFieldElement,
- Rename C++ functions for it,
- Call isFocusable instead of isReadOnly to check focusable state.
No new tests. This doesn't make user-visible behavior changes.
* css/html.css:
Replace [readonly] with [disabled] for sub-fields.
* html/shadow/DateTimeEditElement.cpp:
(DateTimeEditBuilder):
(WebCore::DateTimeEditBuilder::visitField):
(WebCore::DateTimeEditBuilder::shouldDayOfMonthFieldDisabled):
(WebCore::DateTimeEditBuilder::shouldHourFieldDisabled):
(WebCore::DateTimeEditBuilder::shouldMillisecondFieldDisabled):
(WebCore::DateTimeEditBuilder::shouldMinuteFieldDisabled):
(WebCore::DateTimeEditBuilder::shouldSecondFieldDisabled):
(WebCore::DateTimeEditBuilder::shouldYearFieldDisabled):
(WebCore::DateTimeEditElement::anyEditableFieldsHaveValues):
(WebCore::DateTimeEditElement::focusOnNextField): Use isFocusable.
(WebCore::DateTimeEditElement::focusOnPreviousField): Use isFocusable.
* html/shadow/DateTimeFieldElement.cpp:
(WebCore::DateTimeFieldElement::isFocusable):
(WebCore::DateTimeFieldElement::isDisabled):
(WebCore::DateTimeFieldElement::setDisabled):
* html/shadow/DateTimeFieldElement.h:
(DateTimeFieldElement): Make isFocusable public in order that
DateTimeEditElement can call it.
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore::DateTimeNumericFieldElement::handleKeyboardEvent):
(WebCore::DateTimeNumericFieldElement::setEmptyValue):
* html/shadow/DateTimeSymbolicFieldElement.cpp:
(WebCore::DateTimeSymbolicFieldElement::setEmptyValue):
2013-02-05 Kentaro Hara <haraken@chromium.org>
[V8] Reduce usage of deprecatedString() and deprecatedInteger()
https://bugs.webkit.org/show_bug.cgi?id=108909
Reviewed by Adam Barth.
By passing an Isolate parameter around, we can reduce usage of
deprecated methods.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrSetter):
(GenerateEventListenerCallback):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::TestEventTargetV8Internal::addEventListenerCallback):
(WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::addEventListenerCallback):
(WebCore::TestObjV8Internal::removeEventListenerCallback):
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::get):
(WebCore::set):
(WebCore::getNthValueOnKeyPath):
(WebCore::canInjectNthValueOnKeyPath):
(WebCore::ensureNthValueOnKeyPath):
(WebCore::createIDBKeyFromScriptValueAndKeyPath):
(WebCore::injectIDBKeyIntoScriptValue):
(WebCore::canInjectIDBKeyIntoScriptValue):
* bindings/v8/NPV8Object.cpp:
(WebCore::createValueListFromVariantArgs):
(_NPN_Invoke):
(_NPN_InvokeDefault):
(_NPN_SetProperty):
(_NPN_Construct):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::compileAndRunScript):
* bindings/v8/ScriptProfiler.cpp:
(WebCore):
(WebCore::ScriptProfiler::takeHeapSnapshot):
* bindings/v8/ScriptSourceCode.cpp:
(WebCore::ScriptSourceCode::compileScript):
* bindings/v8/ScriptSourceCode.h:
(ScriptSourceCode):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::prepareListenerObject):
* bindings/v8/V8NPObject.cpp:
(WebCore::npObjectInvokeImpl):
(WebCore::npObjectGetProperty):
* bindings/v8/V8NPUtils.cpp:
(WebCore::convertNPVariantToV8Object):
* bindings/v8/V8NPUtils.h:
(WebCore):
* bindings/v8/V8Utilities.cpp:
(WebCore::createHiddenDependency):
(WebCore::removeHiddenDependency):
(WebCore::transferHiddenDependency):
* bindings/v8/V8Utilities.h:
(WebCore):
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::addEventListenerCallback):
(WebCore::V8DOMWindow::removeEventListenerCallback):
2013-02-04 Dean Jackson <dino@apple.com>
[Mac] Captions menu should indicate language and type of track
https://bugs.webkit.org/show_bug.cgi?id=108882
Reviewed by Eric Carlson.
On Mac, we want a specific format for menu items in a caption list. Since
other ports might want different formats, move the generation of the label
into CaptionsUserPreferences where it can be overridden.
This required CaptionsUserPreferences to become public on the PageGroup, so
it could be used when creating the menu. Also, since CaptionsUserPreferences
was hidden on Mountain Lion and below, be a little more specific about
which pieces can be seen on which builds.
Covered by exisiting media/video-controls-captions-trackmenu tests.
* English.lproj/Localizable.strings: Remove textTrackClosedCaptionsText.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): Build only
one section and get the track's display name from the user preferences.
* page/CaptionUserPreferences.h:
(WebCore::CaptionUserPreferences::displayNameForTrack): Default implementation of
virtual function that provides a label for a captions menu item.
* page/CaptionUserPreferencesMac.h: Add the new virtual function, and expose just
a bit of this class outside 10.9 builds.
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::CaptionUserPreferencesMac): Guard features for system version.
(WebCore::CaptionUserPreferencesMac::~CaptionUserPreferencesMac): Ditto.
(WebCore::CaptionUserPreferencesMac::displayNameForTrack): New OS X-specific method that
returns a string for the menu label.
* page/PageGroup.cpp:
(WebCore::PageGroup::captionPreferences): Unguard for system version.
* page/PageGroup.h: Make captionPreferences public.
* platform/LocalizedStrings.cpp: Remove textTrackClosedCaptionsText - not needed any more.
* platform/LocalizedStrings.h: Remove textTrackClosedCaptionsText.
2013-02-04 Kentaro Hara <haraken@chromium.org>
[V8] Pass an Isolate to V8DOMConfiguration
https://bugs.webkit.org/show_bug.cgi?id=108900
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateImplementation):
(GenerateToV8Converters):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::ConfigureV8Float64ArrayTemplate):
(WebCore::V8Float64Array::createWrapper):
* bindings/scripts/test/V8/V8Float64Array.h:
(WebCore::V8Float64Array::installPerContextProperties):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
(WebCore::V8TestActiveDOMObject::createWrapper):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore::V8TestActiveDOMObject::installPerContextProperties):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::ConfigureV8TestCustomNamedGetterTemplate):
(WebCore::V8TestCustomNamedGetter::createWrapper):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore::V8TestCustomNamedGetter::installPerContextProperties):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::ConfigureV8TestEventConstructorTemplate):
(WebCore::V8TestEventConstructor::createWrapper):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore::V8TestEventConstructor::installPerContextProperties):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::ConfigureV8TestEventTargetTemplate):
(WebCore::V8TestEventTarget::createWrapper):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore::V8TestEventTarget::installPerContextProperties):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::ConfigureV8TestExceptionTemplate):
(WebCore::V8TestException::createWrapper):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore::V8TestException::installPerContextProperties):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::ConfigureV8TestInterfaceTemplate):
(WebCore::V8TestInterface::createWrapper):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::V8TestInterface::installPerContextProperties):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
(WebCore::V8TestMediaQueryListListener::createWrapper):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::V8TestMediaQueryListListener::installPerContextProperties):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::ConfigureV8TestNamedConstructorTemplate):
(WebCore::V8TestNamedConstructor::createWrapper):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::V8TestNamedConstructor::installPerContextProperties):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::ConfigureV8TestNodeTemplate):
(WebCore::V8TestNode::createWrapper):
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::V8TestNode::installPerContextProperties):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::installPerContextProperties):
(WebCore::V8TestObj::createWrapper):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
(WebCore::V8TestOverloadedConstructors::createWrapper):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(WebCore::V8TestOverloadedConstructors::installPerContextProperties):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
(WebCore::V8TestSerializedScriptValueInterface::createWrapper):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::V8TestSerializedScriptValueInterface::installPerContextProperties):
* bindings/v8/V8DOMConfiguration.cpp:
(WebCore::V8DOMConfiguration::batchConfigureAttributes):
(WebCore::V8DOMConfiguration::batchConfigureConstants):
(WebCore::V8DOMConfiguration::batchConfigureCallbacks):
(WebCore::V8DOMConfiguration::configureTemplate):
* bindings/v8/V8DOMConfiguration.h:
(V8DOMConfiguration):
(WebCore::V8DOMConfiguration::configureAttribute):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::installDOMWindow):
2013-02-04 Kentaro Hara <haraken@chromium.org>
[V8] Clean up CodeGeneratorV8.pm by introducing HasCustom{Getter,Setter,Method}
https://bugs.webkit.org/show_bug.cgi?id=108896
Reviewed by Adam Barth.
No tests. No change in generated code.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(HasCustomGetter):
(HasCustomSetter):
(HasCustomMethod):
(GetFunctionTemplateCallbackName):
(GenerateSingleBatchedAttribute):
(GenerateImplementation):
(RequiresCustomSignature):
2013-02-04 Kent Tamura <tkent@chromium.org>
Fix crash by <select> type change on focus
https://bugs.webkit.org/show_bug.cgi?id=108830
Reviewed by Abhishek Arya.
Test: fast/forms/select/select-change-type-on-focus.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
focus() calls may change the renderer type.
2013-02-04 Kentaro Hara <haraken@chromium.org>
[V8] Pass an Isolate to opaqueRootForGC()
https://bugs.webkit.org/show_bug.cgi?id=108886
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateOpaqueRootForGC):
(GenerateHeader):
* bindings/v8/V8GCController.cpp:
(WebCore::V8GCController::opaqueRootForGC):
* bindings/v8/WrapperTypeInfo.h:
(WebCore):
(WebCore::WrapperTypeInfo::opaqueRootForGC):
* bindings/v8/custom/V8NodeListCustom.cpp:
(WebCore::V8NodeList::opaqueRootForGC):
2013-02-04 Wei James <james.wei@intel.com>
Heap-buffer-overflow in WebCore::AudioBufferSourceNode::process
https://bugs.webkit.org/show_bug.cgi?id=108515
After calling setBuffer() with a buffer having a different number of
channels, there can in rare cases be a slight delay before the output
bus is updated to the new number of channels because of use of
tryLocks() in the context's updating system.
In this case, if the the buffer has just been changed and we're
not quite ready yet then just output silence.
Reviewed by Chris Rogers.
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::process):
(WebCore::AudioBufferSourceNode::renderFromBuffer):
2013-02-04 James Simonsen <simonjam@chromium.org>
[Chromium] Add a signal for when the body is inserted in the document
https://bugs.webkit.org/show_bug.cgi?id=108725
Reviewed by Adam Barth.
This is an important signal for resource scheduling. We know we have enough to paint something,
so we can start kicking off image preloads.
Test: Chromium webkit_unit_tests
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertHTMLBodyElement):
* loader/FrameLoaderClient.h:
(FrameLoaderClient):
(WebCore::FrameLoaderClient::dispatchWillInsertBody):
2013-02-04 Benjamin Poulain <bpoulain@apple.com>
Kill suspendAnimation(), resumeAnimation() and numberOfActiveAnimations() from DRT/WTR; use Internals
https://bugs.webkit.org/show_bug.cgi?id=108741
Reviewed by Tony Chang.
Move suspendAnimations and resumeAnimations to group all the animation related
code together.
Add support for numberOfActiveAnimations, similarily to the feature previously defined
in TestRunner.
* testing/Internals.cpp:
(WebCore::Internals::numberOfActiveAnimations):
(WebCore):
(WebCore::Internals::suspendAnimations):
(WebCore::Internals::resumeAnimations):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2013-02-04 Nayan Kumar K <nayankk@motorola.com>
[WEBGL] Rename WEBKIT_WEBGL_compressed_texture_s3tc to WEBGL_compressed_texture_s3tc
https://bugs.webkit.org/show_bug.cgi?id=108866
Reviewed by Kenneth Russell.
WEBGL_compressed_texture_s3tc is one of the community approved WebGL extension.
Hence remove the vendor prefix from WEBKIT_WEBGL_compressed_texture_s3tc.
Specification: http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/
No tests currently present to test WEBKIT_WEBGL_compressed_texture_s3tc.
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::toJS):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toV8Object):
* html/canvas/WebGLCompressedTextureS3TC.cpp:
(WebCore::WebGLCompressedTextureS3TC::getName):
* html/canvas/WebGLExtension.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::getExtension):
2013-02-04 Nayan Kumar K <nayankk@motorola.com>
[WEBGL] Rename WEBKIT_WEBGL_lose_context to WEBGL_lose_context.
https://bugs.webkit.org/show_bug.cgi?id=108694
Reviewed by Kenneth Russell.
WEBGL_lose_context is one of the community approved WebGL extension.
Hence remove the vendor prefix from WEBKIT_WEBGL_lose_context extension.
Spefication: http://www.khronos.org/registry/webgl/extensions/WEBGL_lose_context/
Tests already exists, modified them to verify the change in extension name.
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::toJS):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toV8Object):
* html/canvas/WebGLExtension.h:
* html/canvas/WebGLLoseContext.cpp:
(WebCore::WebGLLoseContext::getName):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getSupportedExtensions):
2013-02-04 Dean Jackson <dino@apple.com>
Default element styles are not always collected for sharing detection
https://bugs.webkit.org/show_bug.cgi?id=108404
Reviewed by Antti Koivisto.
The method ensureDefaultStyleSheetsForElement is run as we add elements
to the document. This may update the defaultStyle of the document, but
does not recollect any changes into the StyleResolver. This means that
style sharing might be overly ambitious, thinking it can share a style
for an element which was matched in the new rules. This showed up most
often in the Shadow Root for media elements, which would add a set of
style rules, but the shadow children would sometimes share styles even
when they shouldn't.
The fix is to detect if we need to collect after adding a
style for an element. This might cause a little more work, but
in my testing it doesn't happen very often.
Unfortunately it is hard to get a reproducible test for this.
* css/CSSDefaultStyleSheets.cpp:
(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement): As we load in
styles, keep track of whether or not we change the default style.
* css/CSSDefaultStyleSheets.h:
(CSSDefaultStyleSheets): New boolean parameter indicating if the style has changed.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::styleForElement): Collect features if the element
caused the default style to update.
(WebCore::StyleResolver::collectFeatures): Protect for null in updates.
2013-02-04 Jun Jiang <jun.a.jiang@intel.com>
Fix the issue that some possible source formats are ignored for float textures in texture packing for CG port
https://bugs.webkit.org/show_bug.cgi?id=108812
Reviewed by Kenneth Russell.
Already covered by latest WebGL conformance test.
* platform/graphics/GraphicsContext3D.cpp:
(WebCore):
2013-02-04 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL] Remove needless local variables in LocalizedStringsEfl.cpp
https://bugs.webkit.org/show_bug.cgi?id=108869
Reviewed by Kentaro Hara.
fromUTF8() returns static String. So, we don't need to use needless local variables.
* platform/efl/LocalizedStringsEfl.cpp:
(WebCore::contextMenuItemTagCopy):
(WebCore::contextMenuItemTagDelete):
(WebCore::contextMenuItemTagSelectAll):
(WebCore::contextMenuItemTagGoBack):
(WebCore::contextMenuItemTagGoForward):
(WebCore::contextMenuItemTagStop):
(WebCore::contextMenuItemTagCut):
(WebCore::contextMenuItemTagPaste):
(WebCore::contextMenuItemTagBold):
(WebCore::contextMenuItemTagItalic):
(WebCore::contextMenuItemTagUnderline):
2013-02-04 Jun Jiang <jun.a.jiang@intel.com>
WebGL: Move the format conversion for 16-bit per channel formats into Core Graphics port only
https://bugs.webkit.org/show_bug.cgi?id=108304
Reviewed by Kenneth Russell.
Since the 16-bit per channel formats are only used for Core Graphics port in WebGL and not a standard to represent any file format that is widely used
for each platform, it is better to limit and hide this kinds of information and processing in CG specific code only.
It can make the code more clear and reduce the binary size for both CG port and non-CG port.
Already covered by current tests.
* platform/graphics/GraphicsContext3D.cpp:
(WebCore):
* platform/graphics/GraphicsContext3D.h:
(GraphicsContext3D):
(WebCore::GraphicsContext3D::srcFormatComeFromDOMElementOrImageData):
(ImageExtractor):
* platform/graphics/cg/GraphicsContext3DCG.cpp:
(WebCore):
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
2013-02-04 Dean Jackson <dino@apple.com>
Allow TextTracks to be marked as closed captions
https://bugs.webkit.org/show_bug.cgi?id=108856
Reviewed by Darin Adler.
While this isn't exposed directly in markup, some platform media frameworks can
provide indication that a caption track is a closed caption. Expose such a flag
on TextTrack and platforms can show a different UI if they want to.
No tests - this isn't used elsewhere yet, nor exposed to the DOM.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::TextTrack): Initialise new member.
* html/track/TextTrack.h:
(WebCore::TextTrack::isClosedCaptions): New member variable.
(WebCore::TextTrack::setIsClosedCaptions):
2013-02-04 Chris Hopman <cjhopman@chromium.org>
Make moveCaretTowardsWindowPoint not snap to the beginning/end when moved above/below editable
https://bugs.webkit.org/show_bug.cgi?id=107850
Reviewed by Ojan Vafai.
On Android, EditingBehavior::shouldMoveCaret[...] controls the
behavior of insertion handles. This change adds a new Android specific
editing behavior type.
The new EditingBehavior is the same as EditingUnixBehavior except for
EditingBehavior::shouldMoveCaret[...]. This new behavior fixes
WebFrame::moveCaretTowardsWindowPoint to not span to the
beginning/end.
* editing/EditingBehavior.h:
(WebCore::EditingBehavior::shouldMoveCaretToHorizontalBoundaryWhenPastTopOrBottom):
(WebCore::EditingBehavior::shouldAllowSpellingSuggestionsWithoutSelection):
(WebCore::EditingBehavior::shouldNavigateBackOnBackspace):
* editing/EditingBehaviorTypes.h:
* page/Settings.cpp:
(WebCore):
(WebCore::editingBehaviorTypeForPlatform):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::setEditingBehavior):
2013-02-04 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Focus order is not controllable by tabIndex attribute on <input>
https://bugs.webkit.org/show_bug.cgi?id=108447
Reviewed by Hajime Morita.
We make <input> elements with the multiple-fields UI focusable.
- However, we don't want to change the existing focus behavior for
multiple-fields <input>. We'd like to focus on the last sub-field of
an<input> with Shift + TAB focus navigation, and focus on the first
sub-field of the <input> otherwise. So, we move focus immediately
after the <input> gets focus.
- We don't need the isFocusableByClickOnLabel hack any more. <input>
elements with the multiple-fields UI are mouse-focusable.
Test: fast/forms/time-multiple-fields/time-multiple-fields-tabindex.html
* html/InputType.h:
(InputType): Add FocusDirection argument to handleFocusEvent, and remove
unnecessary isFocusableByClickOnLabel and focus.
* html/InputType.cpp:
(WebCore::InputType::handleFocusEvent): Ditto.
* html/PasswordInputType.cpp:
(WebCore::PasswordInputType::handleFocusEvent): Follow the argument change.
* html/PasswordInputType.h:
(PasswordInputType): Ditto.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::handleFocusEvent):
If this element gets focus by FocusDirectionBackward (it means the focus
is moved from the first sub-field of the element,) move the focus
backward once more. Otherwise, we focus on the first sub-filed of the
element.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::isKeyboardFocusable):
Make this keyboard-focusable. We have a wrong test to ensure read-only
input does NOT get focus. We'll address it later.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::isMouseFocusable):
Make this mouse-focusable.
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType):
* html/HTMLInputElement.h:
(HTMLInputElement): Remove defaultFocus, focus, and isFocusableByClickOnLabel.
Add missing OVERRIDE to handleFocusEvent.
* html/HTMLInputElement.cpp: Remove unnecessary functions.
(WebCore::HTMLInputElement::handleFocusEvent):
Pass FocusDirection value to InputTYpe::handleFocusEvent.
* html/HTMLLabelElement.cpp:
(WebCore::HTMLLabelElement::defaultEventHandler):
Use isMouseFocusable().
* html/HTMLElement.cpp: Remove unnecessary isFocusableByClickOnLabel.
* html/HTMLElement.h: Ditto.
2013-02-04 Seulgi Kim <seulgikim@company100.net>
Coordinated Graphics: crash in TiledBackingStore::adjustForContentsRect
https://bugs.webkit.org/show_bug.cgi?id=107639
Reviewed by Kenneth Rohde Christiansen.
In TiledBackingStore::adjustForContentsRect method, inflating is not
needed when there is no intersections between the cover/keep rect and
the content rect.
No new tests, no change in functionality.
* platform/graphics/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::adjustForContentsRect):
2013-02-04 Stephen White <senorblanco@chromium.org>
[skia] Remove use of SkSingleInputImageFilter.
https://bugs.webkit.org/show_bug.cgi?id=108867
Reviewed by James Robinson.
This class is but a hollow shell of its former self, and has
been removed in Skia.
Covered by existing tests in css3/filters.
* platform/graphics/filters/skia/DropShadowImageFilter.cpp:
(WebCore::DropShadowImageFilter::DropShadowImageFilter):
(WebCore::DropShadowImageFilter::onFilterImage):
* platform/graphics/filters/skia/DropShadowImageFilter.h:
2013-01-31 Kentaro Hara <haraken@chromium.org>
Implement WheelEvent::deltaMode
https://bugs.webkit.org/show_bug.cgi?id=108455
Reviewed by Adam Barth.
Per the spec, WheelEvent::deltaMode should return
DOM_DELTA_PIXEL or DOM_DELTA_LINE or DOM_DELTA_PAGE.
Spec: http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents
https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm#constructor-wheelevent
Test: fast/event/wheel-event-constructor.html
* dom/WheelEvent.cpp:
(WebCore::WheelEventInit::WheelEventInit):
(WebCore::WheelEvent::WheelEvent):
(WebCore::WheelEvent::initWheelEvent):
(WebCore::deltaMode):
* dom/WheelEvent.h:
(WheelEventInit):
(WebCore::WheelEvent::create):
(WebCore::WheelEvent::deltaMode):
(WheelEvent):
* dom/WheelEvent.idl:
* page/EventHandler.cpp:
(WebCore::wheelGranularityToScrollGranularity):
2013-02-04 Gustavo Noronha Silva <gns@gnome.org>
[Soup] Remove duplicate setting of first party for cookies
https://bugs.webkit.org/show_bug.cgi?id=108814
Reviewed by Martin Robinson.
Covered by existing tests.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::createSoupMessageForHandleAndRequest): there is no need to set
the first party for cookies here, since that is already done in
ResourceRequest::updateSoupMessage, which is called a few lines before.
2013-02-04 Gustavo Noronha Silva <gustavo.noronha@collabora.com>
[GStreamer][Soup] Let GStreamer provide the buffer data is downloaded to, to avoid copying
https://bugs.webkit.org/show_bug.cgi?id=105552
Reviewed by Philippe Normand.
Makes it possible for the GStreamer media backend to provide the buffer to which
the Soup networking backend will use to download data to. This makes copying
memory unnecessary when ResourceHandle hands data over to the media player's
StreamingClient. Thanks to Dan Winship for help designing the interface.
No behaviour change, covered by existing tests.
* platform/graphics/gstreamer/GStreamerVersioning.cpp:
(createGstBufferForData): New helper to create a GstBuffer when
we have a data pointer and a length.
(getGstBufferSize): Abstract obtaining the size of the buffer, so the code
is cleaner while still working for both GST 0.10 and 1.0.
(setGstBufferSize): Ditto, but for setting the size.
(getGstBufferDataPointer): Ditto, but for grabbing the data pointer.
(mapGstBuffer): Convenience method to take care of mapping the buffer so that
we can provide the data pointer to ResourceHandle.
(unmapGstBuffer): Convenience method which takes care of unmapping the buffer
and properly freeing the GstMapInfo.
* platform/graphics/gstreamer/GStreamerVersioning.h:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(StreamingClient): New methods.
(_WebKitWebSrcPrivate): We now store the GstBuffer we provided the data pointer from
so we can later unmap it and push it to the pipeline.
(webKitWebSrcDispose): Deal with the GstBuffer in case it exists when the source is
destroyed.
(webKitWebSrcStop): Also clear the GstBuffer in this case.
(StreamingClient::didReceiveData): Handle the hand-over of the buffer.
(StreamingClient::getBuffer): Provide ResourceHandle with a new GstBuffer's data pointer.
* platform/network/ResourceHandleClient.h:
(ResourceHandleClient):
(WebCore::ResourceHandleClient::ResourceHandleClient): Constructor to initialize the buffer
member variable to 0.
(WebCore::ResourceHandleClient::~ResourceHandleClient): Destructor to free the buffer if it
has been allocated.
(WebCore::ResourceHandleClient::getBuffer): Default implementation which returns a
newly allocated char pointer.
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
(ResourceHandleInternal): Store actual buffer size, which is no longer a constant.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::cleanupSoupRequestOperation): Clear the buffer pointer, the life-cycle of the
buffer is handled by the ResourceHandleClient.
(WebCore::nextMultipartResponsePartCallback): Get a new buffer from the client before reading.
(WebCore::sendRequestCallback): Ditto.
(WebCore::readCallback): Ditto.
2013-02-04 Mark Pilgrim <pilgrim@chromium.org>
[Chromium] Move WorkerContextProxy to WebCore
https://bugs.webkit.org/show_bug.cgi?id=108847
Reviewed by Adam Barth.
Part of a larger refactoring series; see tracking bug 106829.
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* workers/chromium: Added.
* workers/chromium/WorkerContextProxyChromium.cpp: Added.
(WebCore):
(WebCore::setWorkerContextProxyCreateFunction):
(WebCore::WorkerContextProxy::create):
* workers/chromium/WorkerContextProxyChromium.h: Added.
(WebCore):
2013-02-04 Dima Gorbik <dgorbik@apple.com>
WebVTT <i>, <b> and <u> elements should have default styles
https://bugs.webkit.org/show_bug.cgi?id=107214
Reviewed by Darin Adler.
Added default styles for basic webvtt object types.
Test: media/track/track-css-matching-default.html
* css/mediaControls.css:
(video::-webkit-media-text-track-container b):
(video::-webkit-media-text-track-container u):
(video::-webkit-media-text-track-container i):
2013-02-04 Abhishek Arya <inferno@chromium.org>
Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
https://bugs.webkit.org/show_bug.cgi?id=108668
Reviewed by Eric Seidel.
* bindings/v8/SerializedScriptValue.cpp:
* css/CSSCalculationValue.cpp:
(WebCore::CSSCalcExpressionNodeParser::parseCalc):
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::fillImageSet):
(WebCore::CSSImageSetValue::customCssText):
* css/CSSParserValues.h:
(WebCore::CSSParserString::operator[]):
* css/CSSValueList.h:
(WebCore::CSSValueListInspector::item):
* css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::ruleAt):
(WebCore::StyleSheetContents::wrapperInsertRule):
(WebCore::StyleSheetContents::wrapperDeleteRule):
* dom/Document.cpp:
(WebCore::Document::processArguments):
* dom/Element.cpp:
(WebCore::Element::removeAttributeInternal):
* dom/ElementAttributeData.cpp:
(WebCore::ElementAttributeData::removeAttribute):
* dom/ElementAttributeData.h:
(WebCore::ElementAttributeData::attributeItem):
* dom/SpaceSplitString.h:
(WebCore::SpaceSplitStringData::operator[]):
(WebCore::SpaceSplitString::operator[]):
* editing/TextIterator.cpp:
(WebCore::TextIterator::characterAt):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::removeFormElement):
* html/HTMLSelectElementWin.cpp:
(WebCore::HTMLSelectElement::platformHandleKeydownEvent):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
* html/parser/HTMLFormattingElementList.cpp:
(WebCore::HTMLFormattingElementList::swapTo):
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::styleSheetTextWithChangedStyle):
* inspector/InspectorStyleTextEditor.cpp:
(WebCore::InspectorStyleTextEditor::replaceProperty):
* inspector/InspectorValues.cpp:
(WebCore::InspectorArrayBase::get):
* page/WindowFeatures.cpp:
(WebCore::WindowFeatures::WindowFeatures):
* platform/audio/AudioArray.h:
(WebCore::AudioArray::at):
* platform/audio/AudioFIFO.cpp:
(WebCore::AudioFIFO::findWrapLengths):
* platform/graphics/GlyphPage.h:
(WebCore::GlyphPage::glyphDataForIndex):
(WebCore::GlyphPage::glyphAt):
(WebCore::GlyphPage::setGlyphDataForIndex):
* platform/graphics/TextRun.h:
(WebCore::TextRun::operator[]):
(WebCore::TextRun::data8):
(WebCore::TextRun::data16):
* platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::setDrawRange):
* platform/graphics/openvg/TiledImageOpenVG.cpp:
(WebCore::TiledImageOpenVG::setTile):
(WebCore::TiledImageOpenVG::tile):
* platform/image-decoders/ico/ICOImageDecoder.cpp:
(WebCore::ICOImageDecoder::decodeAtIndex):
(WebCore::ICOImageDecoder::imageTypeAtIndex):
* platform/text/QuotedPrintable.cpp:
(WebCore::lengthOfLineEndingAtIndex):
* platform/text/SegmentedString.cpp:
(WebCore::SegmentedString::advance):
* platform/win/WebCoreTextRenderer.cpp:
(WebCore::doDrawTextAtPoint):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintSelection):
2013-02-04 Nate Chapin <japhet@chromium.org>
REGRESSION (r137607): Loading of archives as substitute data is broken
https://bugs.webkit.org/show_bug.cgi?id=108589
Reviewed by Alexey Proskuryakov.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::resourceData): Return the content from
SubstituteData as mainResourceData if present.
2013-02-04 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Heap-buffer-overflow in std::sort
https://bugs.webkit.org/show_bug.cgi?id=108834
Reviewed by Abhishek Arya.
Test: fast/css-grid-layout/grid-strict-ordering-crash.html
* rendering/RenderGrid.cpp:
(WebCore::sortByGridTrackGrowthPotential):
The std::sort documentation says that this function should define a *strict* weak ordering. Fixed the strict
part of the ordering. Also moved the function definition next to where it is needed and made the GridTrack
argument const (as it shouldn't modify them or std::sort will misbehave).
* rendering/RenderGrid.cpp:
(WebCore::sortByGridTrackGrowthPotential):
(WebCore):
2013-02-04 Igor Oliveira <igor.o@sisa.samsung.com>
[Texmap] Implement BGRA swizzling detection
https://bugs.webkit.org/show_bug.cgi?id=81103
For OpenGLES if the extension EXT_texture_format_BGRA8888 is supported
the internal and external formats need to be BGRA.
Reviewed by Noam Rosenthal.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore):
(WebCore::driverSupportsExternalTextureBGRA):
(WebCore::driverSupportsSubImage):
(WebCore::BitmapTextureGL::didReset):
2013-02-04 Dima Gorbik <dgorbik@apple.com>
class="cue" is getting some default style
https://bugs.webkit.org/show_bug.cgi?id=108752
Reviewed by Dean Jackson.
The value variable inside the selector is used to store different information depending on the
type of the selector so we have to check explicitly that the selector we apply filtering to
matches a pseudo element.
Existing tests modified to cover this case.
* css/RuleSet.cpp:
(WebCore::determinePropertyWhitelistType):
2013-02-04 Tom Sepez <tsepez@chromium.org>
[V8] Binding Integrity crash in V8HTMLEmbedElement::createWrapper
https://bugs.webkit.org/show_bug.cgi?id=108841
Reviewed by Adam Barth.
* html/HTMLEmbedElement.idl:
Quick change to IDL to disable binding check for now.
2013-02-04 Martin Robinson <mrobinson@igalia.com>
Fix GTK+ 'make dist' in preparation for the 1.11.5 release.
* GNUmakefile.list.am:
2013-02-04 Enrica Casucci <enrica@apple.com>
Add specific EditActions for Bold and Italic commands.
https://bugs.webkit.org/show_bug.cgi?id=108842.
<rdar://problem/13098252>
This change is required on iOS where we need to
identify the command in order to display the correct
message in the undo popup. It is also in line with
what we do for underline, which already has its own
separate EditAction.
Reviewed by Ryosuke Niwa.
No new tests. No behavior change.
* editing/EditAction.h:
* editing/EditorCommand.cpp:
(WebCore::executeToggleBold):
(WebCore::executeToggleItalic):
2013-02-04 Dima Gorbik <dgorbik@apple.com>
Implemet :lang() pseudo class support for the WebVTT ::cue pseudo element
https://bugs.webkit.org/show_bug.cgi?id=105478
Reviewed by Antti Koivisto.
In WebVTT lang is preprocessed and stored in the lang attribute of the element,
so we access it instead of walking up the tree the way it is done in HTML.
Existing tests were modified to cover this case.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
2013-02-04 Tim Horton <timothy_horton@apple.com>
Disable autoscrolling the main frame if main frame scrolling is disabled
https://bugs.webkit.org/show_bug.cgi?id=108848
<rdar://problem/13004059>
Reviewed by Simon Fraser.
Ensure that the main frame can scroll at all before allowing an autoscroll.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::canAutoscroll):
2013-02-04 Tom Sepez <tsepez@chromiium.org>
XSS Auditor bypass via svg tags and xlink:href
https://bugs.webkit.org/show_bug.cgi?id=84158
This patch adds a test for the xlink:href attribute inside of
script tokens. The test is complicated by the namespacing; the
xlink hrefAttr qualified name does not contain a literal "xlink"
prefix but only the URI of the namespace.
Reviewed by Adam Barth.
Test: http/tests/security/xssAuditor/svg-script-tag.html
* html/parser/XSSAuditor.cpp:
(WebCore::findAttributeWithName):
(WebCore::XSSAuditor::filterScriptToken):
2013-02-04 Eric Carlson <eric.carlson@apple.com>
Update CaptionUserPreferences
https://bugs.webkit.org/show_bug.cgi?id=108783
Reviewed by Dean Jackson.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateSizes): Mark font size as important
when necessary.
* page/CaptionUserPreferences.h:
(WebCore::CaptionUserPreferences::setUserPrefersCaptions): New, allow a port to remember that
the user has chosen to see captions.
(WebCore::CaptionUserPreferences::setPreferredLanguage): New, allow a port to remember the
user's preferred caption language.
(WebCore::CaptionUserPreferences::preferredLanguages): New, return a Vector of the user's
preferred caption languages.
* page/CaptionUserPreferencesMac.h:
* page/CaptionUserPreferencesMac.mm:
* page/PageGroup.cpp:
(WebCore::PageGroup::captionPreferences):
(WebCore::PageGroup::captionFontSizeScale):
* page/PageGroup.h:
* platform/Language.cpp:
(WebCore::userPreferredLanguagesOverride): New, return the user preferred languages override
used during testing.
* platform/Language.h:
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
(WebCore::InbandTextTrackPrivateAVFObjC::kind):
2013-02-04 Tim Horton <timothy_horton@apple.com>
Allow TiledCoreAnimationDrawingArea overlay layers to become tiled
https://bugs.webkit.org/show_bug.cgi?id=108729
<rdar://problem/13047546>
Reviewed by Anders Carlsson.
* WebCore.exp.in:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly): The "for this layer only" variant
of flushCompositingState wasn't informing its client that it committed changes for the layer.
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): We now explicitly want to be able to have a
GraphicsLayerCA switch into or out of tiling while being unparented (we'll get a client callback and
swap out its parent ourselves).
2013-02-04 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Add parsing for grid-auto-flow
https://bugs.webkit.org/show_bug.cgi?id=108397
Reviewed by Ojan Vafai.
Test: fast/css-grid-layout/grid-auto-flow-get-set.html
This change adds the parsing, application and conversion back through getComputedStyle
for the new property -webkit-grid-auto-flow, which accpets the following:
-webkit-grid-auto-flow: none | rows | columns
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
Added code to convert the RenderStyle information back into a CSS value.
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
Implemented parsing for -webkit-grid-auto-flow.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::operator GridAutoFlow):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
Added the conversion operators, used for parsing and getComputedStyle.
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
Added -webkit-grid-auto-flow to the list of the not inherited properties.
* css/CSSPropertyNames.in:
Added the new value and keywords.
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
Added a handler for the new CSS property.
* rendering/style/RenderStyle.h:
Added the usual getter / setter / initial function.
* rendering/style/RenderStyleConstants.h:
Added a new enum GridAutoFlow to hold the parsed value.
* rendering/style/StyleGridData.cpp:
(WebCore::StyleGridData::StyleGridData):
* rendering/style/StyleGridData.h:
(WebCore::StyleGridData::operator==):
Updated after adding a new field for the GridAutoFlow value.
2013-02-04 Mark Pilgrim <pilgrim@chromium.org>
[Chromium] Move IDBFactoryBackendInterface to WebCore
https://bugs.webkit.org/show_bug.cgi?id=108638
Reviewed by Adam Barth.
Part of a larger refactoring series; see tracking bug 106829.
* Modules/indexeddb/chromium: Added.
* Modules/indexeddb/chromium/IDBFactoryBackendInterfaceChromium.cpp: Added.
(WebCore):
(WebCore::setIDBFactoryBackendInterfaceCreateFunction):
(WebCore::IDBFactoryBackendInterface::create):
* Modules/indexeddb/chromium/IDBFactoryBackendInterfaceChromium.h: Added.
(WebCore):
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
2013-02-04 Abhishek Arya <inferno@chromium.org>
Add ASSERT_WITH_SECURITY_IMPLICATION to detect bad cast in DOM, CSS, etc.
https://bugs.webkit.org/show_bug.cgi?id=108688
Reviewed by Eric Seidel.
* Modules/notifications/Notification.cpp:
(WebCore::Notification::Notification):
(WebCore::Notification::permission):
(WebCore::Notification::requestPermission):
* Modules/speech/SpeechGrammar.cpp:
(WebCore::SpeechGrammar::setSrc):
* Modules/speech/SpeechGrammarList.cpp:
(WebCore::SpeechGrammarList::addFromUri):
* Modules/websockets/ThreadableWebSocketChannel.cpp:
(WebCore::ThreadableWebSocketChannel::create):
* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::cellForColumnAndRow):
* css/CSSFontFaceRule.cpp:
(WebCore::CSSFontFaceRule::reattach):
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::fillImageSet):
* css/CSSPageRule.cpp:
(WebCore::CSSPageRule::reattach):
* css/CSSStyleRule.cpp:
(WebCore::CSSStyleRule::reattach):
* css/StyleBuilder.cpp:
(WebCore::ApplyPropertyFontVariantLigatures::applyValue):
(WebCore::ApplyPropertyTextDecoration::applyValue):
(WebCore::ApplyPropertyZoom::applyValue):
* css/StyleResolver.cpp:
(WebCore::createGridPosition):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
* css/WebKitCSSFilterRule.cpp:
(WebCore::WebKitCSSFilterRule::reattach):
* css/WebKitCSSKeyframesRule.cpp:
(WebCore::WebKitCSSKeyframesRule::reattach):
* css/WebKitCSSViewportRule.cpp:
(WebCore::WebKitCSSViewportRule::reattach):
* editing/EditCommand.h:
(WebCore::toSimpleEditCommand):
* editing/visible_units.cpp:
(WebCore::startOfParagraph):
(WebCore::endOfParagraph):
* html/HTMLCollection.cpp:
(WebCore::LiveNodeListBase::setItemCache):
* loader/ThreadableLoader.cpp:
(WebCore::ThreadableLoader::create):
(WebCore::ThreadableLoader::loadResourceSynchronously):
* loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
* page/Frame.cpp:
(WebCore::Frame::frameForWidget):
* platform/RefCountedSupplement.h:
(WebCore::RefCountedSupplement::from):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::splitBlocks):
(WebCore::RenderBlock::firstLineBlock):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::createLineBoxes):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::positionForPoint):
* rendering/svg/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::layoutCharactersInTextBoxes):
(WebCore::SVGRootInlineBox::layoutChildBoxes):
* testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::resetInternalsObject):
* testing/v8/WebCoreTestSupport.cpp:
(WebCoreTestSupport::resetInternalsObject):
* workers/DefaultSharedWorkerRepository.cpp:
(WebCore::SharedWorkerProxy::addToWorkerDocuments):
(WebCore::SharedWorkerConnectTask::performTask):
* workers/SharedWorker.cpp:
(WebCore::SharedWorker::create):
* workers/WorkerContext.cpp:
(WebCore::CloseWorkerContextTask::performTask):
* workers/WorkerMessagingProxy.cpp:
(WebCore::MessageWorkerContextTask::performTask):
(WebCore::connectToWorkerContextInspectorTask):
(WebCore::disconnectFromWorkerContextInspectorTask):
(WebCore::dispatchOnInspectorBackendTask):
* workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadSynchronously):
* workers/WorkerThread.cpp:
(WebCore::WorkerThreadShutdownFinishTask::performTask):
(WebCore::WorkerThreadShutdownStartTask::performTask):
2013-02-04 Dominik Röttsches <dominik.rottsches@intel.com>
[Skia] Argument to HarfBuzzShaper::offsetForPosition unnecessarily truncated
https://bugs.webkit.org/show_bug.cgi?id=108479
Reviewed by Emil A Eklund.
Remove a FIXME that intended to solve the value truncation.
Should positively affect SVG text positioning.
No new tests, partially covered by manual test
ManualTests/harfbuzz-mouse-selection-crash.html.
* platform/graphics/harfbuzz/FontHarfBuzz.cpp:
(WebCore::Font::offsetForPositionForComplexText):
2013-02-04 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Create a container class for SidebarPane instances
https://bugs.webkit.org/show_bug.cgi?id=108183
Reviewed by Pavel Feldman.
SidebarPaneStack is responsible for pane title bar and expand/collapse behavior (previously handled by SidebarPane).
SidebarPanes are inserted into DOM lazily and can belong to more than one container.
SidebarPane is ready to be displayed in other types of containers (such as tabbed pane as requested in https://bugs.webkit.org/show_bug.cgi?id=107552).
There should be no visible changes except for one: DOM breakpoint pane expand/collapse state is no longer
shared between Elements and Sources sidebars.
* inspector/front-end/AuditResultView.js:
(WebInspector.AuditResultView):
* inspector/front-end/BreakpointsSidebarPane.js:
(WebInspector.JavaScriptBreakpointsSidebarPane.prototype._addBreakpoint):
(WebInspector.XHRBreakpointsSidebarPane.prototype.highlightBreakpoint):
(WebInspector.EventListenerBreakpointsSidebarPane.prototype.highlightBreakpoint):
* inspector/front-end/DOMBreakpointsSidebarPane.js:
(WebInspector.DOMBreakpointsSidebarPane.prototype.highlightBreakpoint):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel):
(WebInspector.ElementsPanel.prototype.wasShown):
(WebInspector.ElementsPanel.prototype.updateStyles):
(WebInspector.ElementsPanel.prototype.updateMetrics):
(WebInspector.ElementsPanel.prototype.updateProperties):
(WebInspector.ElementsPanel.prototype.updateEventListeners):
* inspector/front-end/ExtensionPanel.js:
(WebInspector.ExtensionSidebarPane):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype._onCreateSidebarPane):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.wasShown):
* inspector/front-end/SidebarPane.js:
(WebInspector.SidebarPane):
(WebInspector.SidebarPane.prototype.title):
(WebInspector.SidebarPane.prototype.prepareContent):
(WebInspector.SidebarPane.prototype.expand):
(WebInspector.SidebarPane.prototype.onContentReady):
(WebInspector.SidebarPane.prototype.setExpandCallback):
(WebInspector.SidebarPane.prototype.setShowCallback):
(WebInspector.SidebarPane.prototype.wasShown):
(WebInspector.SidebarPaneStack):
(WebInspector.SidebarPaneStack.prototype.wasShown):
(WebInspector.SidebarPaneStack.prototype.addPane):
(WebInspector.SidebarPaneStack.prototype._addTitle):
(WebInspector.SidebarPaneStack.prototype._attachToPane):
(WebInspector.SidebarPaneStack.prototype._isExpanded):
(WebInspector.SidebarPaneStack.prototype._setExpanded):
(WebInspector.SidebarPaneStack.prototype._onPaneExpanded):
(WebInspector.SidebarPaneStack.prototype._collapsePane):
(WebInspector.SidebarPaneStack.prototype._togglePane):
(WebInspector.SidebarPaneStack.prototype._onTitleKeyDown):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype._refreshUpdate):
(WebInspector.StylesSidebarPane.prototype._rebuildUpdate):
(WebInspector.StylesSidebarPane.prototype.set _createNewRule):
(WebInspector.ComputedStyleSidebarPane.prototype.prepareContent):
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionsSidebarPane):
(WebInspector.WatchExpressionsSidebarPane.prototype.wasShown):
(WebInspector.WatchExpressionsSidebarPane.prototype.addExpression):
(WebInspector.WatchExpressionsSidebarPane.prototype._addButtonClicked):
* inspector/front-end/inspector.css:
(.pane-title + .pane-title, .pane:not(.visible) + .pane-title, .pane-title:first-of-type):
(.pane-title):
(.pane-title:active):
(.pane-title::before):
(.pane-title.expanded::before):
(.pane-title > select):
(.pane-title > select:hover):
(.pane-title > select:active):
(.pane-title > select.select-settings):
(.pane-title > select.select-filter):
(.pane-title > select > option, .pane-title > select > hr):
(.pane-title > .pane-title-button):
(.pane-title > .pane-title-button:hover):
(.pane-title > .pane-title-button:active, .pane-title > .pane-title-button.toggled):
(.pane-title > .pane-title-button.add):
(.pane-title > .pane-title-button.element-state):
(.pane-title > .pane-title-button.refresh):
(.pane.visible > .body):
(.pane.visible:nth-last-of-type(1)):
(.panel-enabler-view button:not(.status-bar-item), .pane-title-button, button.show-all-nodes):
(.panel-enabler-view button:active:not(.status-bar-item), .pane-title-button:active, button.show-all-nodes:active):
(body.inactive .panel-enabler-view button:not(.status-bar-item), .panel-enabler-view button:disabled:not(.status-bar-item), body.inactive .pane-title-button, .pane-title-button:disabled, body.inactive button.show-all-nodes):
2013-02-01 Emil A Eklund <eae@chromium.org>
Remove duplicate code in RenderBoxModelObject::computedCSSPadding*
https://bugs.webkit.org/show_bug.cgi?id=108707
Reviewed by Eric Seidel.
The computedCSSPaddingTop/Bottom/... methods in
RenderBoxModelObject all do pretty much exactly the same thing
yet share no code.
Break out shared code into computedCSSPadding method and have
the top/bottom/left/right/... ones call it with the appropriate
length value.
No new tests, no change in functionality.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::computedCSSPadding):
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::computedCSSPaddingTop):
(WebCore::RenderBoxModelObject::computedCSSPaddingBottom):
(WebCore::RenderBoxModelObject::computedCSSPaddingLeft):
(WebCore::RenderBoxModelObject::computedCSSPaddingRight):
(WebCore::RenderBoxModelObject::computedCSSPaddingBefore):
(WebCore::RenderBoxModelObject::computedCSSPaddingAfter):
(WebCore::RenderBoxModelObject::computedCSSPaddingStart):
(WebCore::RenderBoxModelObject::computedCSSPaddingEnd):
(RenderBoxModelObject):
2013-02-04 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: add round braces to javascript tokenizer
https://bugs.webkit.org/show_bug.cgi?id=108692
Reviewed by Pavel Feldman.
Change SourceJavascriptTokenizer.re2js file to produce "brace-start"
and "brace-end" tokens for round braces.
Regenerate SourceJavascriptTokenizer.js according to new re2js file.
No new tests: no change in behaviour.
* inspector/front-end/SourceJavaScriptTokenizer.js:
(WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
* inspector/front-end/SourceJavaScriptTokenizer.re2js:
2013-02-04 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: take page scale factor into account when updating overlay.
https://bugs.webkit.org/show_bug.cgi?id=108831
Reviewed by Vsevolod Vlasov.
Otherwise, the ports that use page scale factor have broken overlay.
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::update):
2013-02-04 Dan Carney <dcarney@google.com>
[v8] explicit isolate parameter for MakeWeak calls
https://bugs.webkit.org/show_bug.cgi?id=108818
Reviewed by Kentaro Hara.
No new tests. No change in functionality.
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::DOMDataStore):
(WebCore::DOMDataStore::weakCallback):
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::setWrapper):
(WebCore::DOMDataStore::set):
(WebCore::DOMDataStore::setWrapperInObject):
(DOMDataStore):
* bindings/v8/DOMWrapperMap.h:
(WebCore::DOMWrapperMap::DOMWrapperMap):
(WebCore::DOMWrapperMap::set):
(WebCore::DOMWrapperMap::defaultWeakCallback):
(DOMWrapperMap):
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore::isolatedWorldWeakCallback):
(WebCore::DOMWrapperWorld::makeContextWeak):
* bindings/v8/ScriptState.cpp:
(WebCore::ScriptState::ScriptState):
(WebCore::ScriptState::weakReferenceCallback):
* bindings/v8/ScriptState.h:
(ScriptState):
* bindings/v8/V8AbstractEventListener.cpp:
(WebCore::V8AbstractEventListener::weakEventListenerCallback):
(WebCore::V8AbstractEventListener::V8AbstractEventListener):
(WebCore::V8AbstractEventListener::setListenerObject):
* bindings/v8/V8AbstractEventListener.h:
(V8AbstractEventListener):
* bindings/v8/V8EventListener.cpp:
(WebCore::V8EventListener::V8EventListener):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::V8LazyEventListener):
* bindings/v8/V8MutationCallback.cpp:
(WebCore::V8MutationCallback::V8MutationCallback):
* bindings/v8/V8MutationCallback.h:
(WebCore::V8MutationCallback::create):
(WebCore::V8MutationCallback::weakCallback):
* bindings/v8/V8NPObject.cpp:
(WebCore::V8NPTemplateMap::set):
(WebCore::V8NPTemplateMap::sharedInstance):
(WebCore::V8NPTemplateMap::V8NPTemplateMap):
(V8NPTemplateMap):
(WebCore::V8NPTemplateMap::weakCallback):
(WebCore::npObjectGetProperty):
(WebCore):
(WebCore::staticNPObjectMap):
(WebCore::weakNPObjectCallback):
* bindings/v8/V8ValueCache.cpp:
(WebCore::cachedStringCallback):
(WebCore::StringCache::v8ExternalStringSlow):
* bindings/v8/custom/V8InjectedScriptManager.cpp:
(WebCore::WeakReferenceCallback):
(WebCore::createInjectedScriptHostV8Wrapper):
* bindings/v8/custom/V8MutationObserverCustom.cpp:
(WebCore::V8MutationObserver::constructorCallbackCustom):
2013-02-04 Dmitry Gozman <dgozman@chromium.org>
Web Inspector: Allow user to change dock side by dragging toolbar
https://bugs.webkit.org/show_bug.cgi?id=108073
Dragging toolbar to the right/bottom will change the dock side accordingly
instead of changing the inspector window height (if dock to right is available).
Reviewed by Pavel Feldman.
No new tests, because of pure inspector UI change.
* inspector/front-end/DockController.js:
(WebInspector.DockController.prototype.dockSide):
* inspector/front-end/Toolbar.js:
(WebInspector.Toolbar):
(WebInspector.Toolbar.prototype._isDockedToBottom):
(WebInspector.Toolbar.prototype._isUndocked):
(WebInspector.Toolbar.prototype._toolbarDragStart):
(WebInspector.Toolbar.prototype._toolbarDragEnd):
(WebInspector.Toolbar.prototype._toolbarDrag):
(WebInspector.Toolbar.prototype._toolbarDragMoveWindow):
(WebInspector.Toolbar.prototype._toolbarDragChangeDocking):
(WebInspector.Toolbar.prototype._toolbarDragChangeHeight):
* inspector/front-end/UIUtils.js:
(WebInspector._elementDragStart):
(WebInspector._elementDragMove):
(WebInspector._cancelDragEvents):
(WebInspector._elementDragEnd):
2013-02-04 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: sync list of console API methods to that used by auto-complete
https://bugs.webkit.org/show_bug.cgi?id=108804
Reviewed by Pavel Feldman.
- push new method names from InjectedScriptSource to RuntimeModel;
- add a comment to InjectedScriptSource noting the necessity of keeping lists in sync.
* inspector/InjectedScriptSource.js:
* inspector/front-end/RuntimeModel.js:
(WebInspector.RuntimeModel.prototype.receivedPropertyNames):
(WebInspector.RuntimeModel.prototype._completionsForExpression):
2013-02-04 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] Minor refactorings.
https://bugs.webkit.org/show_bug.cgi?id=108162
Reviewed by Vsevolod Vlasov.
Apply minor refactorings to NetworkPanel.js
Add hint to statusbar selector buttons.
* English.lproj/localizedStrings.js: Added hint string.
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._createStatusBarItems): Ditto.
(WebInspector.NetworkLogView.prototype._makeHeaderFragment):
Applied minor refactoring.
(WebInspector.NetworkLogView.prototype._createStatusBarItems.createFilterElement):
Ditto.
(WebInspector.NetworkLogView.prototype._updateOffscreenRows): Ditto.
(WebInspector.NetworkPanel.prototype._onRowSizeChanged): Ditto.
2013-02-04 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [CPU Profile] Apply minor refactorings and add JSDocs.
https://bugs.webkit.org/show_bug.cgi?id=108437
Reviewed by Pavel Feldman.
CPU Profile code has obsolete inline-comments to clarify types.
Currently we use JSDocs to specify types.
Also applied some minor refactorings.
* inspector/front-end/BottomUpProfileDataGridTree.js:
(WebInspector.BottomUpProfileDataGridNode):
Added JSDocs. Removed profileView parameter.
(WebInspector.BottomUpProfileDataGridNode.prototype._takePropertiesFromProfileDataGridNode):
Added JSDocs.
(WebInspector.BottomUpProfileDataGridNode.prototype._keepOnlyChild):
Ditto.
(WebInspector.BottomUpProfileDataGridNode.prototype._merge):
Ditto.
(WebInspector.BottomUpProfileDataGridNode.prototype._sharedPopulate):
Do not pass profileView to constructor.
(WebInspector.BottomUpProfileDataGridTree):
Added JSDocs. Renamed parameters.
(WebInspector.BottomUpProfileDataGridTree.prototype.focus):
Added JSDocs.
(WebInspector.BottomUpProfileDataGridTree.prototype.exclude):
Ditto.
* inspector/front-end/CPUProfileView.js: Removed unused getter/setter.
(WebInspector.CPUProfileView.prototype._getCPUProfileCallback):
Un-nested. Added JSDocs.
(WebInspector.CPUProfileView.prototype._getBottomUpProfileDataGridTree):
Added JSDocs. Turned to method from getter. Simplified.
(WebInspector.CPUProfileView.prototype._getTopDownProfileDataGridTree):
Added JSDocs. Turned to method from getter.
(WebInspector.CPUProfileView.prototype._assignParentsInProfile):
Optimized.
* inspector/front-end/DataGrid.js: Added JSDocs.
* inspector/front-end/ProfileDataGridTree.js:
(WebInspector.ProfileDataGridNode):
Added JSDocs. Removed profileView parameter.
(WebInspector.ProfileDataGridNode.prototype.createCell): Added JSDocs.
(WebInspector.ProfileDataGridNode.prototype.sort): Ditto.
(WebInspector.ProfileDataGridNode.prototype.insertChild): Ditto.
(WebInspector.ProfileDataGridNode.prototype.removeChild): Ditto.
(WebInspector.ProfileDataGridNode.prototype.removeChildren):
Added JSDocs. Removed parameter.
(WebInspector.ProfileDataGridNode.prototype.findChild): Added JSDocs.
(WebInspector.ProfileDataGridTree): Added JSDocs. Renamed parameter.
* inspector/front-end/TopDownProfileDataGridTree.js:
(WebInspector.TopDownProfileDataGridNode):
Added JSDocs. Removed profileView parameter.
(WebInspector.TopDownProfileDataGridNode.prototype._sharedPopulate):
Do not pass profileView to constructor.
(WebInspector.TopDownProfileDataGridTree):
Added JSDocs. Renamed parameter.
(WebInspector.TopDownProfileDataGridTree.prototype.focus):
Added JSDocs.
(WebInspector.TopDownProfileDataGridTree.prototype.exclude):
Ditto.
2013-02-04 Dan Carney <dcarney@google.com>
[v8] use toV8Fast in hand coded callbacks
https://bugs.webkit.org/show_bug.cgi?id=108817
Reviewed by Kentaro Hara.
No new tests. No change in functionality.
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::openCallback):
(WebCore::V8DOMWindow::indexedPropertyGetter):
(WebCore::V8DOMWindow::namedPropertyGetter):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::evaluateCallback):
* bindings/v8/custom/V8DocumentLocationCustom.cpp:
(WebCore::V8Document::locationAccessorGetter):
* bindings/v8/custom/V8EventCustom.cpp:
(WebCore::V8Event::dataTransferAccessorGetter):
(WebCore::V8Event::clipboardDataAccessorGetter):
* bindings/v8/custom/V8FileReaderCustom.cpp:
(WebCore::V8FileReader::resultAccessorGetter):
* bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
(WebCore):
(WebCore::getNamedItems):
(WebCore::getItem):
(WebCore::V8HTMLAllCollection::namedPropertyGetter):
(WebCore::V8HTMLAllCollection::itemCallback):
(WebCore::V8HTMLAllCollection::namedItemCallback):
(WebCore::V8HTMLAllCollection::callAsFunctionCallback):
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::V8HTMLCanvasElement::getContextCallback):
* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
(WebCore::V8HTMLCollection::namedPropertyGetter):
* bindings/v8/custom/V8HTMLElementCustom.cpp:
(WebCore::V8HTMLElement::itemValueAccessorGetter):
* bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
(WebCore):
(WebCore::getNamedItems):
(WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
(WebCore::V8HTMLFormControlsCollection::namedItemCallback):
* bindings/v8/custom/V8HTMLFormElementCustom.cpp:
(WebCore::V8HTMLFormElement::indexedPropertyGetter):
(WebCore::V8HTMLFormElement::namedPropertyGetter):
* bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
(WebCore::V8HTMLFrameSetElement::namedPropertyGetter):
* bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
(WebCore::V8HTMLLinkElement::sizesAccessorGetter):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore):
(WebCore::getNamedItems):
(WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
(WebCore::V8HTMLOptionsCollection::namedItemCallback):
(WebCore::V8HTMLOptionsCollection::indexedPropertyGetter):
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
(WebCore::V8HTMLSelectElement::indexedPropertyGetter):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::dataAccessorGetter):
(WebCore::V8MessageEvent::portsAccessorGetter):
* bindings/v8/custom/V8NamedNodeMapCustom.cpp:
(WebCore::V8NamedNodeMap::indexedPropertyGetter):
(WebCore::V8NamedNodeMap::namedPropertyGetter):
* bindings/v8/custom/V8NodeListCustom.cpp:
(WebCore::V8NodeList::namedPropertyGetter):
* bindings/v8/custom/V8PopStateEventCustom.cpp:
(WebCore::V8PopStateEvent::stateAccessorGetter):
* bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
(WebCore::V8SQLTransactionSync::executeSqlCallback):
* bindings/v8/custom/V8StyleSheetListCustom.cpp:
(WebCore::V8StyleSheetList::namedPropertyGetter):
* bindings/v8/custom/V8TrackEventCustom.cpp:
(WebCore::V8TrackEvent::trackAccessorGetter):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::V8XMLHttpRequest::responseAccessorGetter):
2013-02-04 David Kilzer <ddkilzer@apple.com>
Remove duplicate entry from WebCore Xcode project
$ uniq Source/WebCore/WebCore.xcodeproj/project.pbxproj | diff -u - Source/WebCore/WebCore.xcodeproj/project.pbxproj | patch -p0 -R
patching file Source/WebCore/WebCore.xcodeproj/project.pbxproj
* WebCore.xcodeproj/project.pbxproj: Remove duplicate.
2013-02-04 David Kilzer <ddkilzer@apple.com>
Sort WebCore Xcode project file
* WebCore.xcodeproj/project.pbxproj:
2013-02-04 Dan Carney <dcarney@google.com>
[v8] disable ascii check once latin-1 is enabled in v8
https://bugs.webkit.org/show_bug.cgi?id=108805
Reviewed by Kentaro Hara.
No new tests. No change in functionality.
* bindings/v8/V8ValueCache.cpp:
(WebCore::makeExternalString):
2013-02-04 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: make tabbed pane header a relayout boundary.
https://bugs.webkit.org/show_bug.cgi?id=108650
Reviewed by Alexander Pavlov.
Otherwise, its measure width routine causes total reflow.
* inspector/front-end/tabbedPane.css:
(.tabbed-pane-header):
2013-02-04 Hayato Ito <hayato@chromium.org>
Split InspectorCSSOMWrappers out from StyleResolver.h into its own file.
https://bugs.webkit.org/show_bug.cgi?id=108797
Reviewed by Hajime Morita.
This is a following patch after r141373. Now we can have
InspectorCSSOMWrappers in its own file since CSSDefaultStyleSheets
was factored out from StyleResolver.cpp in r141733.
WebCore/inspector/ directory is used for basic inspector
functionalities. Therefore, I've put
InspectorCSSOMWrappers.{h,cpp} in WebCore/css/ rather than
WebCore/inspector/.
No new tests, refactoring only.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSAllInOne.cpp:
* css/InspectorCSSOMWrappers.cpp: Added.
(WebCore):
(WebCore::InspectorCSSOMWrappers::collectFromStyleSheetIfNeeded):
(WebCore::InspectorCSSOMWrappers::collect):
(WebCore::InspectorCSSOMWrappers::collectFromStyleSheetContents):
(WebCore::InspectorCSSOMWrappers::collectFromStyleSheets):
(WebCore::InspectorCSSOMWrappers::collectFromDocumentStyleSheetCollection):
(WebCore::InspectorCSSOMWrappers::getWrapperForRuleInSheets):
(WebCore::InspectorCSSOMWrappers::reportMemoryUsage):
* css/InspectorCSSOMWrappers.h: Added.
(WebCore):
(InspectorCSSOMWrappers):
* css/StyleResolver.cpp:
* css/StyleResolver.h:
2013-02-04 Balazs Kelemen <kbalazs@webkit.org>
[Soup] Wrap SoupSession by NetworkStorageSession
https://bugs.webkit.org/show_bug.cgi?id=108615
Reviewed by Alexey Proskuryakov.
Implement NetworkStorageSession for ports using soup. It has been
separated from NetworkingContext, so now we have a default storage
session, which is the same as before but now wrapped with NetworkStorageSession,
and it can be overridden by the networking context.
No change in behavior so no new tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* PlatformBlackBerry.cmake:
* PlatformEfl.cmake:
* loader/CookieJar.cpp:
(WebCore):
Now we also get the storage session from the networking context
and not the other way.
* platform/network/NetworkStorageSession.h:
(NetworkStorageSession):
(WebCore::NetworkStorageSession::setSoupSession):
(WebCore::NetworkStorageSession::soupSession):
Hold a SoupSession pointer for ports using soup. Added a setter because it is
necessary for API's that allow it to be specified per page, like EFL WK1.
* platform/network/NetworkingContext.h:
(NetworkingContext):
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::cookieJarForSession):
* platform/network/soup/NetworkStorageSessionSoup.cpp: Copied from Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp.
(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::defaultStorageSession):
(WebCore::NetworkStorageSession::createDefaultSession):
(WebCore::NetworkStorageSession::createPrivateBrowsingSession):
(WebCore::NetworkStorageSession::switchToNewTestingSession):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::sessionFromContext):
* CMakeLists.txt:
* GNUmakefile.list.am:
* PlatformBlackBerry.cmake:
* PlatformEfl.cmake:
* loader/CookieJar.cpp:
(WebCore):
* platform/network/NetworkStorageSession.h:
(NetworkStorageSession):
(WebCore::NetworkStorageSession::setSoupSession):
(WebCore::NetworkStorageSession::soupSession):
* platform/network/NetworkingContext.h:
(NetworkingContext):
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::cookieJarForSession):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::sessionFromContext):
2013-02-04 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: source location in statusbar has few bugs in it
https://bugs.webkit.org/show_bug.cgi?id=108748
Reviewed by Vsevolod Vlasov.
Call super method statusBarItems in SnippetJavaScriptSourceFrame class
and merge its results. Fix css styles for source location in statusbar
and rename its css class into a less confusing name.
No new test: no change in behaviour.
* inspector/front-end/SnippetJavaScriptSourceFrame.js:
(WebInspector.SnippetJavaScriptSourceFrame.prototype.statusBarItems):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame):
* inspector/front-end/inspector.css:
(.source-frame-cursor-position):
2013-02-04 Mike West <mkwst@chromium.org>
Cleanup: Normalize usage of ExceptionCode in ContainerNode::checkXxxChild()
https://bugs.webkit.org/show_bug.cgi?id=108766
Reviewed by Kentaro Hara.
This patch refactors checkAddChild and checkReplaceChild to remove the
creation of an extra ExceptionCode that's not necessary for the
desired behavior, and to bring the ExceptionCode usage into line with
the rest of WebKit (this was the only case where ExceptionCode was
assigned inside an 'if' statement's condition).
After this patch, 'ec' will always be assigned a value, even if the
result of 'checkAcceptChild' is 0. This would only change behavior if
'ec' was non-zero coming into the function, and 'checkAcceptChild'
returned 0. Since every callsite is either directly after an explicit
zeroing of 'ec', or after an 'if (ec)' clause, that case should never
appear. This patch, therefore, shouldn't visibly change WebKit's
behavior.
* dom/ContainerNode.cpp:
(WebCore::checkAddChild):
(WebCore::checkReplaceChild):
2013-02-03 David Kilzer <ddkilzer@apple.com>
Upstream ENABLE_PDFKIT_PLUGIN settting
<http://webkit.org/b/108792>
Reviewed by Tim Horton.
* Configurations/FeatureDefines.xcconfig: Disable PDFKIT_PLUGIN
on iOS since PDFKit is a Mac-only framework.
2013-02-03 Takashi Sakamoto <tasak@google.com>
Split per-resolve logic out from StyleResolver.
https://bugs.webkit.org/show_bug.cgi?id=96421
Reviewed by Eric Seidel.
Implemented class StyleResolver::State and added m_state to
StyleResolver. All member variables used for per-resolve logic are
moved into the state class.
No new tests, because just refactoring.
* css/SVGCSSStyleSelector.cpp:
(WebCore::StyleResolver::applySVGProperty):
* css/StyleResolver.cpp:
(WebCore):
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::collectMatchingRules):
(WebCore::StyleResolver::collectMatchingRulesForRegion):
(WebCore::StyleResolver::sortAndTransferMatchedRules):
(WebCore::StyleResolver::matchScopedAuthorRules):
(WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
(WebCore::StyleResolver::matchHostRules):
(WebCore::StyleResolver::matchAuthorRules):
(WebCore::StyleResolver::matchUserRules):
(WebCore::StyleResolver::matchUARules):
(WebCore::StyleResolver::collectMatchingRulesForList):
(WebCore::StyleResolver::sortMatchedRules):
(WebCore::StyleResolver::matchAllRules):
(WebCore::StyleResolver::initElement):
(WebCore::StyleResolver::initForStyleResolve):
(WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
(WebCore::StyleResolver::canShareStyleWithControl):
(WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
(WebCore::StyleResolver::canShareStyleWithElement):
(WebCore::StyleResolver::locateSharedStyle):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::defaultStyleForElement):
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::updateFont):
(WebCore::StyleResolver::cacheBorderAndBackground):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::ruleMatches):
(WebCore::StyleResolver::checkRegionSelector):
(WebCore::StyleResolver::applyProperties):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::isLeftPage):
(WebCore::StyleResolver::applyPropertyToStyle):
(WebCore::StyleResolver::useSVGZoomRules):
(WebCore::createGridTrackBreadth):
(WebCore::createGridTrackMinMax):
(WebCore::createGridTrackGroup):
(WebCore::createGridTrackList):
(WebCore::StyleResolver::resolveVariables):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::cachedOrPendingFromValue):
(WebCore::StyleResolver::generatedOrPendingFromValue):
(WebCore::StyleResolver::setOrPendingFromValue):
(WebCore::StyleResolver::cursorOrPendingFromValue):
(WebCore::StyleResolver::checkForTextSizeAdjust):
(WebCore::StyleResolver::initializeFontStyle):
(WebCore::StyleResolver::setFontSize):
(WebCore::StyleResolver::colorFromPrimitiveValue):
(WebCore::StyleResolver::loadPendingSVGDocuments):
(WebCore::StyleResolver::cachedOrPendingStyleShaderFromValue):
(WebCore::StyleResolver::loadPendingShaders):
(WebCore::StyleResolver::parseCustomFilterTransformParameter):
(WebCore::StyleResolver::createFilterOperations):
(WebCore::StyleResolver::loadPendingImage):
(WebCore::StyleResolver::loadPendingImages):
(WebCore::StyleResolver::reportMemoryUsage):
* css/StyleResolver.h:
(WebCore::StyleResolver::style):
(WebCore::StyleResolver::parentStyle):
(WebCore::StyleResolver::rootElementStyle):
(WebCore::StyleResolver::element):
(WebCore::StyleResolver::setFontDescription):
(WebCore::StyleResolver::setZoom):
(WebCore::StyleResolver::setEffectiveZoom):
(WebCore::StyleResolver::setTextSizeAdjust):
(WebCore::StyleResolver::setWritingMode):
(WebCore::StyleResolver::setTextOrientation):
(WebCore::StyleResolver::hasParentNode):
(WebCore::StyleResolver::addMatchedRule):
(StyleResolver):
(State):
(WebCore::StyleResolver::State::State):
(WebCore::StyleResolver::applyPropertyToRegularStyle):
(WebCore::StyleResolver::applyPropertyToVisitedLinkStyle):
Added "m_state." to access member variables used for per-resolve logic.
2013-02-03 Kent Tamura <tkent@chromium.org>
Support setLangAttributeAwareFormControlUIEnabled on Chromium Windows XP
https://bugs.webkit.org/show_bug.cgi?id=108791
Reviewed by Kentaro Hara.
We didn't support setLangAttributeAwareFormControlUIEnabled(true) on
Chromium Windows XP because of lack of LocaleNameToLCID API. This change
add manual mapping from locale names to LCIDs for Windows XP.
No new tests. This doesn't make any behavior changes in products, and
this improves some test results.
* platform/text/win/LocaleWin.cpp:
(WebCore): Define NameToLCIDMap.
(WebCore::removeLastComponent):
Remove the last component separated with '-'.
(WebCore::ensureNameToLCIDMap):
Add locale names used in layout tests.
(WebCore::convertLocaleNameToLCID):
Find an appropriate LCID longest matching with the specified locale name.
(WebCore::LCIDFromLocale):
Use convertLocaleNameToLCID if LocaleNameToLCID is not available.
2013-02-03 Kent Tamura <tkent@chromium.org>
Add FocusDirection argument to HTMLTextFormControlElement::handleFocusEvent
https://bugs.webkit.org/show_bug.cgi?id=108775
Reviewed by Hajime Morita.
We'd like to add a FocusDirection argument to
HTMLTextFormControlElement::handleFocusEvent in order to fix Bug
108447. This is a preparation for it.
We need to add FocusDirection arguments to some focus-related functions
to pass it correctly when TAB or Shift+TAB is pressed.
No new tests. This doesn't make any behavior changes.
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::dispatchFocusEvent):
To pass the FocusDirection argument to handleFocusEvent, we need to add
it to dispatchFocusEvent too.
* html/HTMLTextFormControlElement.h:
(HTMLTextFormControlElement):
Add FocusDirection arugment to dispatchFocusEvent.
(WebCore::HTMLTextFormControlElement::handleFocusEvent):
Add FocusDirection argument.
* dom/Node.cpp:
(WebCore::Node::dispatchFocusEvent): Add FocusDirection argument.
* dom/Node.h:
(Node): Ditto.
* dom/Document.cpp:
(WebCore::Document::setFocusedNode): Add FocusDirection argument in
order to pass it to Node::dispatchFocusEvent.
* dom/Document.h:
(Document): Ditto.
* page/FocusController.cpp:
(WebCore::dispatchEventsOnWindowAndFocusedNode):
Adjust Node::dispatchFocusEvent argument.
(WebCore::FocusController::advanceFocusInDocumentOrder):
Pass FocusDirectio to Element::focus.
(WebCore::FocusController::setFocusedNode):
Add FocusDirection argument in order to pass it to Document::setFocusedNode.
(WebCore::FocusController::advanceFocusDirectionallyInContainer):
Pass FocusDirectio to Element::focus.
* page/FocusController.h:
(FocusController): Add FocusDirection argument to setFocusedNode.
* dom/Element.cpp:
(WebCore::Element::focus):
Add FocusDirection argument to pass it to FocusController::setFocusedNode.
* dom/Element.h:
(Element): Ditto.
* WebCore.exp.in:
Update FocusController::setFocusedNode and Document::setFocusedNode.
* html/HTMLLabelElement.cpp:
(WebCore::HTMLLabelElement::focus): Adjust FocusDirection argument.
* html/HTMLLabelElement.h:
(HTMLLabelElement): Ditto.
* html/HTMLLegendElement.cpp:
(WebCore::HTMLLegendElement::focus): Ditto.
* html/HTMLLegendElement.h:
(HTMLLegendElement): Ditto.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::dispatchFocusEvent): Ditto.
* html/HTMLSelectElement.h:
(HTMLSelectElement): Ditto.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::defaultFocus):
Add FocusDirection argument in order to pass it from
HTMLInputElement::focus() to HTMLTextFormControlElement::focus().
(WebCore::HTMLInputElement::focus):
Pass the FocusDirection argument to InputType::focus. See above.
(WebCore::HTMLInputElement::handleFocusEvent):
Adjust FocusDirection argument.
* html/HTMLInputElement.h:
(HTMLInputElement):
* html/InputType.cpp:
(WebCore::InputType::focus): Add FocusDirection argument.
* html/InputType.h:
(InputType): Ditto.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::focus):
Add FocusDirection argument to follow InputType.
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType): Ditto.
2013-02-03 Kassy Coan <kassycoan@chromium.org>
Adds usage instrumentation for indexedDB
Includes new header file in project files
https://bugs.webkit.org/show_bug.cgi?id=107772
Reviewed by Tony Chang.
Currently untestable. Has zero effect apart from histogramming.
* GNUmakefile.list.am:
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::createObjectStore):
(WebCore::IDBDatabase::deleteObjectStore):
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):
* Modules/indexeddb/IDBHistograms.h: Added.
(WebCore):
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
2013-02-03 Hayato Ito <hayato@chromium.org>
Split default style-sheet statics out from StyleResolver into its own class
https://bugs.webkit.org/show_bug.cgi?id=107780
Reviewed by Dimitri Glazkov.
Factored static variables and logic about default style sheets out from StyleResolver into its own class
CSSDefaultStyleSheets. This is a following patch after r141373.
No new tests, refactoring only.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSAllInOne.cpp:
* css/CSSDefaultStyleSheets.cpp: Added.
(WebCore):
(WebCore::elementCanUseSimpleDefaultStyle):
(WebCore::screenEval):
(WebCore::printEval):
(WebCore::parseUASheet):
(WebCore::CSSDefaultStyleSheets::initDefaultStyle):
(WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
(WebCore::CSSDefaultStyleSheets::loadSimpleDefaultStyle):
(WebCore::CSSDefaultStyleSheets::viewSourceStyle):
(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
* css/CSSDefaultStyleSheets.h: Added.
(WebCore):
(CSSDefaultStyleSheets):
* css/StyleResolver.cpp:
(WebCore):
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::matchUARules):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::InspectorCSSOMWrappers::getWrapperForRuleInSheets):
(WebCore::StyleResolver::collectFeatures):
(WebCore::StyleResolver::reportMemoryUsage):
2013-02-03 Kentaro Hara <haraken@chromium.org>
[V8] Simplify CodeGeneratorV8.pm by using InheritsExtendedAttribute("EventTarget")
https://bugs.webkit.org/show_bug.cgi?id=108441
Reviewed by Adam Barth.
A complicated condition in GetInternalFields() can be simplified
by using InheritsExtendedAttribute("EventTarget").
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GetInternalFields):
* dom/EventTarget.idl: Added [EventTarget] which should have been added.
* svg/SVGElementInstance.idl: Ditto.
2013-02-03 Gustavo Noronha Silva <gns@gnome.org>
[Soup] Do not use local variables for the client
https://bugs.webkit.org/show_bug.cgi?id=108714
Reviewed by Martin Robinson.
Covered by existing tests, refactoring code only.
We have had problems in the past with the client being destroyed or
changed inside a method or function, and we ended up with a stale
pointer, leading to crashes. This refactoring is an effort to minimize
the possibility of hitting that same issue in the future.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::redirectSkipCallback): no longer use a local variable to hold
the client.
(WebCore::wroteBodyDataCallback): ditto.
(WebCore::nextMultipartResponsePartCallback): ditto.
(WebCore::sendRequestCallback): ditto.
(WebCore::closeCallback): ditto.
(WebCore::readCallback): ditto.
2013-02-03 Kentaro Hara <haraken@chromium.org>
[V8] Pass an Isolate to HasInstance() (part 1)
https://bugs.webkit.org/show_bug.cgi?id=108617
Reviewed by Adam Barth.
This is one of efforts to pass an Isolate to GetTemplate().
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(JSValueToNative):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::Float64ArrayV8Internal::fooCallback):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::TestEventTargetV8Internal::dispatchEventCallback):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetter):
(WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::testObjAttrAttrSetter):
(WebCore::TestObjV8Internal::XMLObjAttrAttrSetter):
(WebCore::TestObjV8Internal::typedArrayAttrAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
(WebCore::TestObjV8Internal::mutablePointAttrSetter):
(WebCore::TestObjV8Internal::immutablePointAttrSetter):
(WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
(WebCore::TestObjV8Internal::longMethodWithArgsCallback):
(WebCore::TestObjV8Internal::objMethodWithArgsCallback):
(WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
(WebCore::TestObjV8Internal::overloadedMethod1Callback):
(WebCore::TestObjV8Internal::overloadedMethod2Callback):
(WebCore::TestObjV8Internal::overloadedMethod8Callback):
(WebCore::TestObjV8Internal::convert1Callback):
(WebCore::TestObjV8Internal::convert2Callback):
(WebCore::TestObjV8Internal::convert4Callback):
(WebCore::TestObjV8Internal::convert5Callback):
(WebCore::TestObjV8Internal::variadicNodeMethodCallback):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::constructor1Callback):
(WebCore::V8TestOverloadedConstructors::constructor2Callback):
(WebCore::V8TestOverloadedConstructors::constructor3Callback):
* bindings/v8/Dictionary.cpp:
(WebCore::Dictionary::get):
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::visitNodeWrappers):
* bindings/v8/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::deserialize):
* bindings/v8/V8Binding.cpp:
(WebCore::toDOMStringList):
(WebCore::toXPathNSResolver):
* bindings/v8/V8Binding.h:
(WebCore):
* bindings/v8/V8Collection.cpp:
(WebCore::toOptionsCollectionSetter):
* bindings/v8/V8GCController.cpp:
(WebCore::WrapperVisitor::WrapperVisitor):
(WrapperVisitor):
(WebCore::V8GCController::majorGCPrologue):
* bindings/v8/V8NPObject.cpp:
(WebCore::npObjectInvokeImpl):
* bindings/v8/V8Utilities.cpp:
(WebCore::extractTransferables):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::evaluateCallback):
2013-02-03 Joanmarie Diggs <jdiggs@igalia.com>
[GTK] Make distcheck fails
https://bugs.webkit.org/show_bug.cgi?id=108756
Reviewed by Kentaro Hara.
* GNUmakefile.list.am: Remove header files which no longer exist;
correct one which got added incorrectly.
2013-02-03 Kentaro Hara <haraken@chromium.org>
[V8] Pass an Isolate to HasInstance() (part 3)
https://bugs.webkit.org/show_bug.cgi?id=108622
Reviewed by Adam Barth.
This is one of efforts to pass an Isolate to GetTemplate().
No tests. No change in behavior.
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::V8InjectedScriptHost::isHTMLAllCollectionCallback):
(WebCore::V8InjectedScriptHost::typeCallback):
(WebCore::V8InjectedScriptHost::getEventListenersCallback):
* bindings/v8/custom/V8NodeCustom.cpp:
(WebCore::V8Node::insertBeforeCallback):
(WebCore::V8Node::replaceChildCallback):
(WebCore::V8Node::removeChildCallback):
(WebCore::V8Node::appendChildCallback):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toWebGLUniformLocation):
(WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
(WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
(WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
(WebCore::V8WebGLRenderingContext::getUniformCallback):
(WebCore::vertexAttribAndUniformHelperf):
(WebCore::uniformHelperi):
(WebCore::uniformMatrixHelper):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::isDocumentType):
(WebCore::V8XMLHttpRequest::sendCallback):
2013-02-03 Kentaro Hara <haraken@chromium.org>
[V8] Pass an Isolate to HasInstance() (part 2)
https://bugs.webkit.org/show_bug.cgi?id=108620
Reviewed by Adam Barth.
This is one of efforts to pass an Isolate to GetTemplate().
No tests. No change in behavior.
* bindings/v8/custom/V8ArrayBufferViewCustom.h:
(WebCore::constructWebGLArray):
(WebCore::setWebGLArrayHelper):
* bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
(WebCore::V8AudioBufferSourceNode::bufferAccessorSetter):
* bindings/v8/custom/V8BlobCustom.cpp:
(WebCore::V8Blob::constructorCallbackCustom):
* bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
(WebCore::toCanvasStyle):
(WebCore::V8CanvasRenderingContext2D::strokeStyleAccessorSetter):
* bindings/v8/custom/V8ClipboardCustom.cpp:
(WebCore::V8Clipboard::setDragImageCallback):
* bindings/v8/custom/V8CryptoCustom.cpp:
(WebCore::V8Crypto::getRandomValuesCallback):
* bindings/v8/custom/V8DOMFormDataCustom.cpp:
(WebCore::V8DOMFormData::constructorCallbackCustom):
(WebCore::V8DOMFormData::appendCallback):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::V8DataView::constructorCallbackCustom):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::evaluateCallback):
* bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
(WebCore::V8HTMLMediaElement::controllerAccessorSetter):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::addCallback):
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
(WebCore::removeElement):
2013-02-03 Mike West <mkwst@chromium.org>
Cleanup: 'ExceptionCode& ec', not 'ExceptionCode &ec'.
https://bugs.webkit.org/show_bug.cgi?id=108769
Reviewed by Eric Seidel.
Does what it says on the tin: reference parameters should read
'type& name', and this patch fixes the two occurances of 'type &name'
that cropped up for ExceptionCode.
Pure style change; no effect on behavior.
* html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::add):
2013-02-02 Jun Jiang <jun.a.jiang@intel.com>
Optimize some operations for float type in texture format conversions of WebGL
https://bugs.webkit.org/show_bug.cgi?id=107526
Reviewed by Darin Adler.
Some small changes are made to optimize the operations for float type in the texture format conversion of WebGL to improve performance.
Already covered by current tests.
* platform/graphics/GraphicsContext3D.cpp:
(WebCore):
2013-02-02 Simon Fraser <simon.fraser@apple.com>
Clean up the storage of dirty bits on nodes in the scrolling state tree
https://bugs.webkit.org/show_bug.cgi?id=108744
Reviewed by Sam Weinig.
ScrollingStateNode and its subclasses used different techniques for
tracking which properties changed. ScrollingStateNode tracked its layers
via a bool member and some layer-specific methods, but also had virtual
methods to allow subclasses to track properties via a bit mask.
Clean this up by having the base class store the bit mask, and use
enums to specify bits for the various properties. All properties are thus
tracked in the same way. Bits are read and written through non-virtual member
functions on ScrollingStateNode. All bit checking is done via hasChangedProperty().
* page/scrolling/ScrollingStateFixedNode.cpp:
(WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode): m_changedProperties is now on the base class.
(WebCore::ScrollingStateFixedNode::updateConstraints): Use setPropertyChanged()
* page/scrolling/ScrollingStateFixedNode.h: Remove overrides that are no longer needed.
* page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::ScrollingStateNode): Initialize m_changedProperties,
m_scrollLayerDidChange no longer tracked separately.
(WebCore::ScrollingStateNode::cloneAndReset):
* page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::hasChangedProperties):
(WebCore::ScrollingStateNode::hasChangedProperty): Tests the bit.
(WebCore::ScrollingStateNode::resetChangedProperties): Set all bits to 0.
(WebCore::ScrollingStateNode::setPropertyChanged): Set the bit.
(WebCore::ScrollingStateNode::changedProperties): Private to discourage incorrect usage
(changeProperties() & foo).
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): Base class does the copying now.
(WebCore::ScrollingStateScrollingNode::setViewportRect): Use setPropertyChanged().
(WebCore::ScrollingStateScrollingNode::setContentsSize): Ditto.
(WebCore::ScrollingStateScrollingNode::setFrameScaleFactor): Etc.
(WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion):
(WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount):
(WebCore::ScrollingStateScrollingNode::setShouldUpdateScrollLayerPositionOnMainThread):
(WebCore::ScrollingStateScrollingNode::setHorizontalScrollElasticity):
(WebCore::ScrollingStateScrollingNode::setVerticalScrollElasticity):
(WebCore::ScrollingStateScrollingNode::setHasEnabledHorizontalScrollbar):
(WebCore::ScrollingStateScrollingNode::setHasEnabledVerticalScrollbar):
(WebCore::ScrollingStateScrollingNode::setHorizontalScrollbarMode):
(WebCore::ScrollingStateScrollingNode::setVerticalScrollbarMode):
(WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition):
(WebCore::ScrollingStateScrollingNode::setScrollOrigin):
* page/scrolling/ScrollingStateScrollingNode.h:
(ScrollingStateScrollingNode):
* page/scrolling/ScrollingStateStickyNode.cpp:
(WebCore::ScrollingStateStickyNode::ScrollingStateStickyNode):
(WebCore::ScrollingStateStickyNode::updateConstraints):
* page/scrolling/ScrollingStateStickyNode.h:
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::commitNewTreeState):
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::update):
* page/scrolling/mac/ScrollingStateNodeMac.mm:
(WebCore::ScrollingStateNode::setScrollLayer):
* page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
(WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
* page/scrolling/mac/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::update):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::update):
* page/scrolling/mac/ScrollingTreeStickyNode.mm:
(WebCore::ScrollingTreeStickyNode::update):
2013-02-02 Simon Fraser <simon.fraser@apple.com>
Fixed and sticky nodes have no nodeID set
https://bugs.webkit.org/show_bug.cgi?id=108734
Reviewed by Sam Weinig.
Push ScrollingNodeIDs onto scrolling nodes at construction time, and thereafter
treat them as readonly. Previously, only the root scrolling node would have a node ID.
Node IDs aren't actually used by the scrolling tree yet, but are useful for debugging.
Not testable since we only dump the scrolling state tree, not the scrolling
node tree in tests.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::ScrollingTree): No longer create the root node here;
we can only create it when we know what its ID will be.
(WebCore::ScrollingTree::updateTreeFromStateNode): Create the root node if
necessary. Pass node IDs into create methods.
* page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::ScrollingTreeNode):
* page/scrolling/ScrollingTreeNode.h:
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
* page/scrolling/ScrollingTreeScrollingNode.h:
* page/scrolling/mac/ScrollingTreeFixedNode.h:
* page/scrolling/mac/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::create):
(WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNode::create):
(WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
* page/scrolling/mac/ScrollingTreeStickyNode.h:
* page/scrolling/mac/ScrollingTreeStickyNode.mm:
(WebCore::ScrollingTreeStickyNode::create):
(WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode):
2013-02-02 Takashi Sakamoto <tasak@google.com>
Making -webkit-image-set() the first value of background property causes crash.
https://bugs.webkit.org/show_bug.cgi?id=108409
Reviewed by Beth Dakin.
CSSParser::addFillValue should use lval->isBaseValueList() instead
of lval->isValueList(). If lval is -webkit-image-set, rval is appended
to -webkit-image-set.
Test: fast/css/image-set-value-crash-in-fillImageSet.html
* css/CSSParser.cpp:
(WebCore::CSSParser::addFillValue):
If lval is not a value list, lval is initialized by using
CSSValueList::createCommaSeparated(). So we have to check whether
lval is created by CSSValueList::createCommaSeparated() or not.
2013-02-02 David Kilzer <ddkilzer@apple.com>
Upstream iOS FeatureDefines
<http://webkit.org/b/108753>
Reviewed by Anders Carlsson.
* Configurations/FeatureDefines.xcconfig:
- ENABLE_DEVICE_ORIENTATION: Add iOS configurations.
- ENABLE_PLUGIN_PROXY_FOR_VIDEO: Ditto.
- FEATURE_DEFINES: Add ENABLE_PLUGIN_PROXY_FOR_VIDEO. Add
PLATFORM_NAME variant to reduce future merge conflicts.
2013-02-02 Philippe Normand <pnormand@igalia.com>
[GStreamer] Media tests fix after r141695.
Rubber-stamped by Martin Robinson.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::setPlaybinURL): Remove
both fragment and query string for file:// uris before loading.
2013-02-02 Patrick Gansterer <paroga@webkit.org>
Build fix for WinCE after r141637.
* platform/graphics/wince/ImageBufferWinCE.cpp:
2013-02-01 Philippe Normand <pnormand@igalia.com>
[GStreamer] webkitwebsrc is exposed to application-side
https://bugs.webkit.org/show_bug.cgi?id=108088
Reviewed by Martin Robinson.
Switch the webkitwebsrc to handle webkit+http(s) uris so it is now
explicit that this element is meant to be used preferrably inside
WebKit. This change is internal to the player.
No new tests, covered by existing http/tests/media tests.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::setPlaybinURL):
(WebCore):
(WebCore::MediaPlayerPrivateGStreamer::load):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(MediaPlayerPrivateGStreamer):
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcGetProtocols):
(webKitWebSrcSetUri):
2013-02-02 Simon Hausmann <simon.hausmann@digia.com>
Unreviewed trivial prospective build fix for A17n disabled
configurations.
The dummy computed object attriute cache control functions need to be defined
as being member functions of AXObjectCache, because that's where they are
declared.
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::startCachingComputedObjectAttributesUntilTreeMutates):
(WebCore::AXObjectCache::stopCachingComputedObjectAttributes):
2013-02-02 Antoine Quint <graouts@apple.com>
Creating a WebInspector.ContextMenu without an event crashes WebCore when calling .show()
https://bugs.webkit.org/show_bug.cgi?id=108636
Reviewed by Pavel Feldman.
Return early if InspectorFrontendHost::showContextMenu() is called without an event and
assert in ContextMenuController::createContextMenu() in case no event was provided.
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::showContextMenu):
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::createContextMenu):
2013-02-02 Jonathan Feldstein <jfeldstein@rim.com>
[BlackBerry] Improper initialization of ANGLEResources
https://bugs.webkit.org/show_bug.cgi?id=101489
Reviewed by Antonio Gomes.
MaxDrawBuffers, OES_standard_derivatives, OES_EGL_image_external and ARB_texture_rectangle have already been initialized through ShBuiltInResources function and these fields do not need to be set again in GraphicsContext3dBlackBerry.cpp. In addition, the extension flags cannot be set to true without getExtension having been called (Khronos WebGL specs, section 5.14.14.). Thus these lines need to be removed.
* platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
2013-02-02 Vivek Galatage <vivek.vg@samsung.com>
Web Inspector: Refactor InspectorDOMStorageAgent::getDOMStorageEntries to report the error messages
https://bugs.webkit.org/show_bug.cgi?id=108611
Reviewed by Pavel Feldman.
Added reporting of various error messages. Moved the modification of output
parameter at a later stage when there are no errors reported.
No new tests as code refactoring.
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::hadException):
(WebCore):
(WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
2013-02-02 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: fix bug in highlighting single chars via highlightRange API of DTE
https://bugs.webkit.org/show_bug.cgi?id=108685
Reviewed by Pavel Feldman.
Use Math.min instead of Math.max in rangesForLine method.
Updated test: text-editor-highlight-api.html
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.RangeHighlightDescriptor.prototype.rangesForLine):
2013-02-02 Tony Gentilcore <tonyg@chromium.org>
Continue making XSSAuditor thread safe: Remove unsafe AtomicString compares
https://bugs.webkit.org/show_bug.cgi?id=108557
Reviewed by Adam Barth.
Unfortunately HTMLNames comparisons will always be false on a non-main thread
with our current design, so we have to use some "threadSafeMatch" helpers written
for the HTMLBackgroundParser.
Also factor out threadSafeMatch() methods to HTMLParserIdioms.
No new tests because no new functionality.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore):
* html/parser/HTMLParserIdioms.cpp:
(WebCore::threadSafeEqual):
(WebCore):
(WebCore::threadSafeMatch):
* html/parser/HTMLParserIdioms.h:
(WebCore):
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::eraseAttributeIfInjected):
2013-02-01 James Simonsen <simonjam@chromium.org>
Add didChangePriority() to ResourceHandle
https://bugs.webkit.org/show_bug.cgi?id=107995
Reviewed by Darin Fisher.
For PLT, it's important that preloads remain a lower priority than parser requested resources.
This can lead to a 5% improvement.
The plan is to use this plumbing to expose the desired behavior. This patch simply allows a
resource's priority to change and have it propagate to the network layer. An upcoming patch will
lower the priority of preloads and then increase the priority when the parser officially requests
it.
No new tests. No visible change, because priority doesn't change yet.
* loader/cache/CachedResource.cpp:
(WebCore):
(WebCore::CachedResource::setLoadPriority):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource): Allow loads to modify priority.
* loader/cache/CachedResourceRequest.h:
(WebCore::CachedResourceRequest::setPriority): Notify when priority changes.
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::didChangePriority): Added.
(WebCore):
* platform/network/ResourceHandle.h:
(ResourceHandle):
* platform/network/chromium/ResourceHandle.cpp:
(WebCore::ResourceHandleInternal::didChangePriority):
(WebCore):
(WebCore::ResourceHandle::didChangePriority):
* platform/network/chromium/ResourceHandleInternal.h:
(ResourceHandleInternal):
2013-02-01 Roger Fong <roger_fong@apple.com>
Unreviewed. Clean up WebCore VS2010 project.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.vcxproj/WebCoreCommon.props:
* WebCore.vcxproj/WebCoreGenerated.make:
* WebCore.vcxproj/WebCorePreLink.cmd: Removed.
* WebCore.vcxproj/build-generated-files.sh:
2013-02-01 Sam Weinig <sam@webkit.org>
Don't use deprecated method -[NSImage dissolveToPoint:fraction:]
<rdar://problem/11723792>
https://bugs.webkit.org/show_bug.cgi?id=108739
Reviewed by Anders Carlsson.
* platform/mac/DragImageMac.mm:
(WebCore::dissolveDragImageToFraction):
Remove use of deprecated NSImage methods and simplify a bit.
2013-02-01 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: fix "DOM Exception 8" when deleting lines containing decoration in DTE.
https://bugs.webkit.org/show_bug.cgi?id=108689
Reviewed by Alexander Pavlov.
Add a check that decoration element is still added to the line before trying to delete it. This
won't be true if the whole line is deleted in contentEditable,
and this is the reason for the exception to be thrown.
No new tests.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainChunk.prototype.removeAllDecorations):
2013-02-01 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r141669.
http://trac.webkit.org/changeset/141669
https://bugs.webkit.org/show_bug.cgi?id=108728
Broke the windows build. (Requested by leviw on #webkit).
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::computedCSSPaddingTop):
(WebCore):
(WebCore::RenderBoxModelObject::computedCSSPaddingBottom):
(WebCore::RenderBoxModelObject::computedCSSPaddingLeft):
(WebCore::RenderBoxModelObject::computedCSSPaddingRight):
(WebCore::RenderBoxModelObject::computedCSSPaddingBefore):
(WebCore::RenderBoxModelObject::computedCSSPaddingAfter):
(WebCore::RenderBoxModelObject::computedCSSPaddingStart):
(WebCore::RenderBoxModelObject::computedCSSPaddingEnd):
* rendering/RenderBoxModelObject.h:
(RenderBoxModelObject):
2013-02-01 Emil A Eklund <eae@chromium.org>
Remove duplicate code in RenderBoxModelObject::computedCSSPadding*
https://bugs.webkit.org/show_bug.cgi?id=108707
Reviewed by Levi Weintraub.
The computedCSSPaddingTop/Bottom/... methods in
RenderBoxModelObject all do pretty much exactly the same thing
yet share no code.
Break out shared code into computedCSSPadding method and have
the top/bottom/left/right/... ones call it with the appropriate
length value.
No new tests, no change in functionality.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::computedCSSPadding):
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::computedCSSPaddingTop):
(WebCore::RenderBoxModelObject::computedCSSPaddingBottom):
(WebCore::RenderBoxModelObject::computedCSSPaddingLeft):
(WebCore::RenderBoxModelObject::computedCSSPaddingRight):
(WebCore::RenderBoxModelObject::computedCSSPaddingBefore):
(WebCore::RenderBoxModelObject::computedCSSPaddingAfter):
(WebCore::RenderBoxModelObject::computedCSSPaddingStart):
(WebCore::RenderBoxModelObject::computedCSSPaddingEnd):
(RenderBoxModelObject):
2013-02-01 Mark Lam <mark.lam@apple.com>
Replace ExceptionCode with DatabaseError in the openDatabase() code path.
https://bugs.webkit.org/show_bug.cgi?id=108724.
Reviewed by Alexey Proskuryakov.
Also made DatabaseBackend::performOpenAndVerify() a little more
straightforward and less repetitive.
No new tests.
* Modules/webdatabase/DOMWindowWebDatabase.cpp:
(WebCore::DOMWindowWebDatabase::openDatabase):
* Modules/webdatabase/Database.cpp:
(WebCore::Database::openAndVerifyVersion):
(WebCore::Database::performOpenAndVerify):
* Modules/webdatabase/Database.h:
(Database):
* Modules/webdatabase/DatabaseBackend.cpp:
(WebCore::DoneCreatingDatabaseOnExitCaller::DoneCreatingDatabaseOnExitCaller):
(WebCore::DoneCreatingDatabaseOnExitCaller::~DoneCreatingDatabaseOnExitCaller):
(DoneCreatingDatabaseOnExitCaller):
(WebCore::DoneCreatingDatabaseOnExitCaller::openSucceeded):
(WebCore::DatabaseBackend::performOpenAndVerify):
* Modules/webdatabase/DatabaseBackend.h:
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::openDatabase):
(WebCore::DatabaseManager::openDatabaseSync):
* Modules/webdatabase/DatabaseManager.h:
(DatabaseManager):
* Modules/webdatabase/DatabaseSync.cpp:
(WebCore::DatabaseSync::openAndVerifyVersion):
* Modules/webdatabase/DatabaseSync.h:
(DatabaseSync):
* Modules/webdatabase/DatabaseTask.cpp:
(WebCore::Database::DatabaseOpenTask::DatabaseOpenTask):
(WebCore::Database::DatabaseOpenTask::doPerformTask):
* Modules/webdatabase/DatabaseTask.h:
(WebCore::Database::DatabaseOpenTask::create):
(Database::DatabaseOpenTask):
* Modules/webdatabase/WorkerContextWebDatabase.cpp:
(WebCore::WorkerContextWebDatabase::openDatabase):
(WebCore::WorkerContextWebDatabase::openDatabaseSync):
* WebCore.gypi:
2013-02-01 Yongjun Zhang <yongjun_zhang@apple.com>
Document is never released if an image's src attribute is changed to a url blocked by content-security-policy.
https://bugs.webkit.org/show_bug.cgi?id=108545
If we just scheduled an error event due to an null newImage, we should not cancel it when newImage and oldImage
is not the same. Otherwise we will ref the sourceElement in updateHasPendingEvent (m_hasPendingErrorEvent is true)
but never deref it since we already cancelled the error event.
Reviewed by Alexey Proskuryakov.
Test: fast/images/image-error-event-not-firing.html
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement): don't cancel error event if newImage is null, we want the
error event to fire.
2013-02-01 Benjamin Poulain <bpoulain@apple.com>
Clean the String->AtomicString conversion for AnimationController::pauseAnimationAtTime
https://bugs.webkit.org/show_bug.cgi?id=108558
Reviewed by Dean Jackson.
This is a step torward killing the implicit conversion from String to AtomicString.
The animation name are AtomicString. The API is changed all the way to the callers
to take an AtomicString. When needed, we use explicit conversion.
* WebCore.exp.in:
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
(WebCore::AnimationController::pauseAnimationAtTime):
* page/animation/AnimationController.h:
(AnimationController):
* page/animation/AnimationControllerPrivate.h:
(AnimationControllerPrivate):
* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::pauseAnimationAtTime):
We should not null check the name. Getting a null name from the HashMap would be
an error from the tests, and the HashMap would never return a value anyway.
* testing/Internals.cpp:
(WebCore::Internals::pauseAnimationAtTimeOnPseudoElement):
2013-02-01 Dominic Mazzoni <dmazzoni@google.com>
AX: memoize expensive computation during blocks where tree doesn't change
https://bugs.webkit.org/show_bug.cgi?id=106497
Reviewed by Ryosuke Niwa.
Add a cache for computed attributes of AXObjects.
The cache can be enabled at the start of a batch of
read-only operations on the accessibility tree, and
it's cleared automatically when the tree mutates.
Currently accessibilityIsIgnored is cached, since it's
frequently called and relatively expensive to compute.
No new tests.
* accessibility/AXObjectCache.cpp:
(WebCore):
(WebCore::AXComputedObjectAttributeCache::getIgnored):
(WebCore::AXComputedObjectAttributeCache::setIgnored):
(WebCore::AXObjectCache::postNotification):
(WebCore::AXObjectCache::nodeTextChangeNotification):
(WebCore::AXObjectCache::handleScrollbarUpdate):
(WebCore::AXObjectCache::startCachingComputedObjectAttributesUntilTreeMutates):
(WebCore::AXObjectCache::stopCachingComputedObjectAttributes):
* accessibility/AXObjectCache.h:
(AXComputedObjectAttributeCache):
(WebCore::AXComputedObjectAttributeCache::create):
(WebCore::AXComputedObjectAttributeCache::AXComputedObjectAttributeCache):
(WebCore::AXComputedObjectAttributeCache::CachedAXObjectAttributes::CachedAXObjectAttributes):
(CachedAXObjectAttributes):
(WebCore):
(WebCore::AXObjectCache::computedObjectAttributeCache):
(AXObjectCache):
(WebCore::AXComputedObjectAttributeCache::getIgnored):
(WebCore::AXComputedObjectAttributeCache::setIgnored):
(WebCore::startCachingComputedObjectAttributesUntilTreeMutates):
(WebCore::stopCachingComputedObjectAttributes):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::findMatchingObjects):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore):
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
2013-02-01 Alexey Proskuryakov <ap@apple.com>
Build fix.
* Modules/webdatabase/DatabaseBackend.cpp: (DoneCreatingDatabaseOnExitCaller):
Don't fail because of an unused member variable in cross-plaform code path.
2013-02-01 Kevin Ellis <kevers@chromium.org>
[chromium] Fat scrollbars on Windows in high-DPI mode.
https://bugs.webkit.org/show_bug.cgi?id=108637
Updates mechanism for retrieving scrollbar metrics on the
Windows port of Chromium. Previously, GetSystemMetrics calls
were used, which fetches prescaled sizes in pixel rather than
logical units, resulting in a double scaling when a device
scale factor is set. With the patch, the size is retrieved
from the theme engine in DIP.
Reviewed by Adam Barth.
No new tests.
* platform/chromium/ScrollbarThemeChromiumWin.cpp:
(WebCore::ScrollbarThemeChromiumWin::scrollbarThickness):
(WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
* rendering/RenderThemeChromiumWin.cpp:
(WebCore):
(WebCore::menuListButtonWidth):
2013-02-01 Mark Lam <mark.lam@apple.com>
Clean up calls to DatabaseTracker::add/removeOpenDatabase().
https://bugs.webkit.org/show_bug.cgi?id=108431
Reviewed by Geoffrey Garen.
Also adapted the chromium port to work with this new code.
Chromium parts reviewed by Michael Nordman and David Levin.
This is part of the webdatabase refactoring effort.
No new tests.
* Modules/webdatabase/AbstractDatabaseServer.h:
(AbstractDatabaseServer):
* Modules/webdatabase/Database.cpp:
(WebCore::Database::openAndVerifyVersion):
(WebCore::Database::close):
* Modules/webdatabase/DatabaseBackend.cpp:
(WebCore::DatabaseBackend::DatabaseBackend):
(WebCore::DatabaseBackend::closeDatabase):
(DoneCreatingDatabaseOnExitCaller):
(WebCore::DoneCreatingDatabaseOnExitCaller::DoneCreatingDatabaseOnExitCaller):
(WebCore::DoneCreatingDatabaseOnExitCaller::~DoneCreatingDatabaseOnExitCaller):
(WebCore::DatabaseBackend::performOpenAndVerify):
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::openDatabase):
(WebCore::DatabaseManager::openDatabaseSync):
* Modules/webdatabase/DatabaseManager.h:
(DatabaseManager):
* Modules/webdatabase/DatabaseServer.cpp:
* Modules/webdatabase/DatabaseServer.h:
* Modules/webdatabase/DatabaseSync.cpp:
(WebCore::DatabaseSync::~DatabaseSync):
(WebCore::DatabaseSync::openAndVerifyVersion):
(WebCore::DatabaseSync::closeImmediately):
* Modules/webdatabase/DatabaseSync.h:
(DatabaseSync):
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::doneCreatingDatabase):
(WebCore::DatabaseTracker::addOpenDatabase):
* Modules/webdatabase/DatabaseTracker.h:
(DatabaseTracker):
* Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::DatabaseTracker::prepareToOpenDatabase):
(WebCore::DatabaseTracker::failedToOpenDatabase):
2013-02-01 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: remove extra padding around overlay highlight.
https://bugs.webkit.org/show_bug.cgi?id=108679
Reviewed by Alexander Pavlov.
No new tests: no change in behaviour.
Remove extraWidth from overlay highlight spans.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
2013-02-01 Philip Rogers <pdr@google.com>
Prevent skipped repaints for children of inner SVG elements
https://bugs.webkit.org/show_bug.cgi?id=108429
Reviewed by Eric Seidel.
This patch fixes a bug caused by r108699 and r133786 where we would not repaint children
of inner SVG elements because "m_didTransformToRootUpdate" was never reset on viewport
containers. The stale m_didTransformToRootUpdate variable caused us to skip child repaints.
I verified that the Robohornet SVG benchmark performance gains in r133786 are not regressed
with this patch.
Test: svg/repaint/svgsvgelement-repaint-children.html
* rendering/svg/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::calcViewport):
This can be removed because setNeedsTransformUpdate() will set m_needsTransformUpdate.
(WebCore::RenderSVGViewportContainer::calculateLocalTransform):
This change is straightforward and is similar to the equivalent assignment in
RenderSVGTransformableContainer::calculateLocalTransform().
2013-02-01 Philip Rogers <pdr@google.com>
Change hasAlpha to isKnownToBeOpaque and correct the return value for SVG images.
https://bugs.webkit.org/show_bug.cgi?id=106966
Reviewed by Stephen White.
Previously, Image::currentFrameHasAlpha's default implementation returned false so SVG
images always returned false for currentFrameHasAlpha. Additionally, currentFrameHasAlpha
was treated as returning whether the frame had alpha when it would actually conservatively
return true.
This patch renames hasAlpha and currentFrameHasAlpha to isKnownToBeOpaque and
currentFrameIsKnownToBeOpaque, respectively. This rename better describes the actual
functionality. This patch also makes Image::isKnownToBeOpaque a pure virtual function and
correctly implements it for SVG images.
All users of isKnownToBeOpaque access SVG images using CachedImage::imageForRenderer which
currently returns a cached bitmap image. Therefore, this patch will not affect existing
functionality. A regression test has been added that will catch if this changes in the
future (e.g., WK106159 which proposes not returning cached bitmaps). The now unnecessary
isBitmapImage() calls have been removed in this patch.
image-box-shadow.html has been modified to test SVG images.
* css/CSSCrossfadeValue.cpp:
(WebCore::subimageKnownToBeOpaque):
(WebCore::CSSCrossfadeValue::knownToBeOpaque):
Mostly straightforward rename but note the logic has been slightly altered: AND -> OR.
* css/CSSCrossfadeValue.h:
(CSSCrossfadeValue):
* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::knownToBeOpaque):
* css/CSSGradientValue.h:
(CSSGradientValue):
* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::knownToBeOpaque):
* css/CSSImageGeneratorValue.h:
(CSSImageGeneratorValue):
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::knownToBeOpaque):
* css/CSSImageValue.h:
(CSSImageValue):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::currentFrameKnownToBeOpaque):
* loader/cache/CachedImage.h:
(CachedImage):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::currentFrameKnownToBeOpaque):
* platform/graphics/BitmapImage.h:
(BitmapImage):
* platform/graphics/GeneratedImage.h:
(GeneratedImage):
* platform/graphics/Image.h:
Note: now a pure virtual function!
(Image):
* platform/graphics/blackberry/LayerTiler.cpp:
(WebCore::LayerTiler::updateTextureContentsIfNeeded):
Removed unnecessary isBitmapImage() checks.
* platform/graphics/cg/GraphicsContext3DCG.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
Removed unnecessary isBitmapImage() checks.
* platform/graphics/cg/PDFDocumentImage.h:
(PDFDocumentImage):
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
Removed unnecessary isBitmapImage() checks.
(WebCore::GraphicsLayerChromium::setContentsToImage):
* platform/graphics/qt/StillImageQt.cpp:
(WebCore::StillImage::currentFrameKnownToBeOpaque):
* platform/graphics/qt/StillImageQt.h:
(StillImage):
* platform/graphics/skia/BitmapImageSingleFrameSkia.cpp:
(WebCore::BitmapImageSingleFrameSkia::currentFrameKnownToBeOpaque):
* platform/graphics/skia/BitmapImageSingleFrameSkia.h:
(BitmapImageSingleFrameSkia):
* platform/graphics/texmap/TextureMapperBackingStore.cpp:
(WebCore::TextureMapperTile::updateContents):
(WebCore::TextureMapperTiledBackingStore::updateContents):
* platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:
(WebCore::CoordinatedImageBacking::update):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::backgroundIsObscured):
Removed unnecessary isBitmapImage() checks and slightly reworked the logic.
* rendering/style/FillLayer.cpp:
(WebCore::FillLayer::hasOpaqueImage):
* rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::knownToBeOpaque):
* rendering/style/StyleCachedImage.h:
(StyleCachedImage):
* rendering/style/StyleCachedImageSet.cpp:
(WebCore::StyleCachedImageSet::knownToBeOpaque):
* rendering/style/StyleCachedImageSet.h:
(StyleCachedImageSet):
* rendering/style/StyleGeneratedImage.cpp:
(WebCore::StyleGeneratedImage::knownToBeOpaque):
* rendering/style/StyleGeneratedImage.h:
(StyleGeneratedImage):
* rendering/style/StyleImage.h:
(StyleImage):
* rendering/style/StylePendingImage.h:
(WebCore::StylePendingImage::knownToBeOpaque):
* svg/graphics/SVGImage.h:
(SVGImage):
2013-02-01 Brady Eidson <beidson@apple.com>
Clean up WebArchive loading with the NetworkProcess
<rdar://problem/12695840> and https://bugs.webkit.org/show_bug.cgi?id=108673
Reviewed by Alexey Proskuryakov.
No new tests (No change in WebCore behavior).
Remove a now unneeded function and add a needed export.
* WebCore.exp.in:
* loader/ResourceLoadScheduler.cpp:
* loader/ResourceLoadScheduler.h:
2013-02-01 Alok Priyadarshi <alokp@chromium.org>
Print GraphicsLayer::m_contentsOpaque if non-default (true)
https://bugs.webkit.org/show_bug.cgi?id=108354
Reviewed by Simon Fraser.
No new tests. This change facilitates testing of GraphicsLayer opaqueness.
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::dumpProperties):
2013-02-01 Tony Gentilcore <tonyg@chromium.org>
Continue making XSSAuditor thread safe: Remove dependency on parser's Document URL
https://bugs.webkit.org/show_bug.cgi?id=108655
Reviewed by Adam Barth.
No new tests because no new functionality.
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::XSSAuditor):
(WebCore::XSSAuditor::init):
(WebCore::XSSAuditor::isLikelySafeResource):
* html/parser/XSSAuditor.h:
2013-02-01 Jer Noble <jer.noble@apple.com>
REGRESSION (r141281): Navigating to this HTTP Live Streaming (application/vnd.apple.mpegurl) URL downloads a file instead of playing it in the browser
https://bugs.webkit.org/show_bug.cgi?id=108674
<rdar://problem/13133595>
Reviewed by Eric Carlson.
When passed a HashSet of available MIME types to fill out, QTKit was overwriting the contents, which were
AVFoundation's supported types. Instead, it should be appending to the list of supported types.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::concatenateHashSets): Added static utility function.
(WebCore::MediaPlayerPrivateQTKit::getSupportedTypes): Concatenate instead of overwriting the passed in MIME types.
2013-02-01 Beth Dakin <bdakin@apple.com>
Another speculative windows build fix.
* platform/ScrollAnimator.h:
2013-01-31 Dirk Schulze <krit@webkit.org>
[canvas] Add more constructors to Path
https://bugs.webkit.org/show_bug.cgi?id=108587
Reviewed by Dean Jackson.
Add more constructors to Path object to make it possible
to copy Path objects and parse SVG strings into a Path
object that can be used on the canvas context afterwards.
Test: fast/canvas/canvas-path-constructors.html
* html/canvas/DOMPath.h: New constructors for Path.
(WebCore::DOMPath::create):
(WebCore::DOMPath::DOMPath):
* html/canvas/DOMPath.idl: Ditto.
2013-02-01 Zan Dobersek <zdobersek@igalia.com>
[GTK] Add WTFURL source files to the build
https://bugs.webkit.org/show_bug.cgi?id=108215
Reviewed by Benjamin Poulain.
* platform/KURLWTFURL.cpp:
(WebCore): Only use the stub implementation of the fileSystemPath method for the
Apple ports, other ports should for now still rely on their platform-specific implementations.
2013-02-01 Mike West <mkwst@chromium.org>
Remove call to SecurityOrigin::canAccessDatabase from IDB constructor.
https://bugs.webkit.org/show_bug.cgi?id=108477
Reviewed by Adam Barth.
This change removes the 'SecurityOrigin::canAccessDatabase' check from
the constructor for the 'indexedDB' property on both DOMWindow and
WorkerContext. After the patch for http://wkbug.com/94171 this check
is redundant, as all the entry points to IDB are now gated on access
being granted.
As a side-effect, dropping the check in WorkerContextIndexedDatabase
allows us to stop holding a pointer to the ScriptExecutionContext we're
extending, which can only be a good thing.
The tests in storage/indexeddb should continue to pass.
* Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
(WebCore::DOMWindowIndexedDatabase::indexedDB):
Drop the SecurityOrigin::canAccessDatabase check.
* Modules/indexeddb/WorkerContextIndexedDatabase.cpp:
(WebCore::WorkerContextIndexedDatabase::WorkerContextIndexedDatabase):
(WebCore::WorkerContextIndexedDatabase::from):
Drop the ScriptExecutionContext parameter from the class's
constructor and callsites.
(WebCore::WorkerContextIndexedDatabase::indexedDB):
Drop the SecurityOrigin::canAccessDatabase check.
* Modules/indexeddb/WorkerContextIndexedDatabase.h:
(WorkerContextIndexedDatabase):
Drop the stored pointer to ScriptExecutionContext, as we no longer
need it in ::indexedDB.
2013-02-01 Beth Dakin <bdakin@apple.com>
Speculative Windows build fix.
* platform/ScrollAnimator.h:
(WebCore):
2013-02-01 Ryosuke Niwa <rniwa@webkit.org>
Smart link can erroneously move caret after an URL when typing immediately before it
https://bugs.webkit.org/show_bug.cgi?id=92812
Reviewed by Enrica Casucci.
The bug was caused by smart link being triggered even when a user finished typing a word
immediately before an URL. We already had a logic to avoid smart-linking an URL when the caret
was after the URL but we were missing a check for when the caret is before the URL.
Fixed the bug by adding this check.
Test: editing/inserting/smart-link-when-caret-is-moved-before-URL.html
* editing/Editor.cpp:
(WebCore::Editor::markAndReplaceFor):
2013-02-01 Roger Fong <roger_fong@apple.com>
Unreviewed. Windows build fix. FloatSize.cpp was not included in the project.
* WebCore.vcproj/WebCore.vcproj:
2013-02-01 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] computePreferredLogicalWidths doesn't handle minmax tracks
https://bugs.webkit.org/show_bug.cgi?id=108403
Reviewed by Ojan Vafai.
Test: fast/css-grid-layout/grid-preferred-logical-widths.html
The code before this change was only handling minmax() with 2 fixed widths.
The new code was updated to remove this artificial limitation and we now
support all combination of minmax().
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computePreferredLogicalWidths):
Updated to use computePreferredTrackWidth..
(WebCore::RenderGrid::computePreferredTrackWidth):
Added this helper function that implements the core of the preferred width
computation.
* rendering/RenderGrid.h: Added computePreferredTrackWidth.
2013-02-01 Nate Chapin <japhet@chromium.org>
Cached main resources report a zero identifer on 304s
https://bugs.webkit.org/show_bug.cgi?id=108402
Reviewed by Adam Barth.
Test: http/tests/cache/iframe-304-crash.html
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::responseReceived): Throughout, check m_identifierForLoadWithoutResourceLoader
instead of !loader() to determine whether MainResourceLoader needs to synthesize resource load callbacks.
(WebCore::MainResourceLoader::dataReceived):
(WebCore::MainResourceLoader::didFinishLoading):
2013-02-01 Nico Weber <thakis@chromium.org>
[chromium] Build webkit with enable_web_intents set to 0.
https://bugs.webkit.org/show_bug.cgi?id=108408
Reviewed by Tony Chang.
I'll then make chromium build fine with that, then switch
enable_web_intents to 0, roll that into webkit, and then
actually remove the code hidden behind this flag.
* bindings/v8/custom/V8IntentCustom.cpp:
2013-02-01 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: make console object state hint non-active
https://bugs.webkit.org/show_bug.cgi?id=108642
Reviewed by Vsevolod Vlasov.
Otherwise it seems like an active element user could click.
* inspector/front-end/inspector.css:
(.object-info-state-note):
2013-02-01 Rashmi Shyamasundar <rashmi.s2@samsung.com>
Zero size gradient should paint nothing on canvas
https://bugs.webkit.org/show_bug.cgi?id=102654
Reviewed by Dirk Schulze.
The functions fill(), fillText(), stroke(), strokeRect() and strokeText()
should paint nothing on canvas when the canvas fillStyle/strokeStyle
is set to a zero size gradient.
Tests: fast/canvas/canvas-fill-zeroSizeGradient.html
fast/canvas/canvas-fillRect-zeroSizeGradient.html
fast/canvas/canvas-fillText-zeroSizeGradient.html
fast/canvas/canvas-stroke-zeroSizeGradient.html
fast/canvas/canvas-strokeRect-zeroSizeGradient.html
fast/canvas/canvas-strokeText-zeroSizeGradient.html
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::fill):
(WebCore::CanvasRenderingContext2D::stroke):
(WebCore::CanvasRenderingContext2D::strokeRect):
(WebCore::CanvasRenderingContext2D::drawTextInternal):
2013-02-01 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
HRTFElevation segfault if a null AudioBus is returned by loadPlatformResource
https://bugs.webkit.org/show_bug.cgi?id=108504
Reviewed by Kenneth Russell.
Fixed a segfault by checking if the returned AudioBus is null or not.
If it is, we should early return in the same way it was being done already
in HRTFElevation::calculateKernelsForAzimuthElevation();
No new tests, covered by existing tests.
* platform/audio/HRTFElevation.cpp:
(WebCore::getConcatenatedImpulseResponsesForSubject):
2013-02-01 Beth Dakin <bdakin@apple.com>
ScrollAnimatorMac should adopt contentAreaScrolledInDirection
https://bugs.webkit.org/show_bug.cgi?id=108647
-and corresponding-
<rdar://problem/12434779>
Reviewed by Anders Carlsson.
This patch makes notifyContentAreaScrolled() and notifyPositionChanged() take a
FloatSize parameter that represents the scroll delta so that it can be passed
along to contentAreaScrolledInDirection:.
Pass along the scroll delta.
* platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::scroll):
(WebCore::ScrollAnimator::scrollToOffsetWithoutAnimation):
The delta is not needed in this base-class implementation. It will only be needed
in the ScrollAnimatorMac override.
(WebCore::ScrollAnimator::notifyPositionChanged):
* platform/ScrollAnimator.h:
(WebCore::ScrollAnimator::notifyContentAreaScrolled):
Pass along the delta.
* platform/ScrollAnimatorNone.cpp:
(WebCore::ScrollAnimatorNone::scrollToOffsetWithoutAnimation):
(WebCore::ScrollAnimatorNone::animationTimerFired):
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::scrollPositionChanged):
Add contentAreaScrolledInDirection: to the NSScrollerImpDetails.
* platform/mac/NSScrollerImpDetails.h:
New member variable m_contentAreaScrolledTimerScrollDelta stores the current
scroll delta while we are waiting for m_sendContentAreaScrolledTimer to fire.
* platform/mac/ScrollAnimatorMac.h:
We need this so that we can call just contentAreaScrolled if
contentAreaScrolledInDirection: is not available.
* platform/mac/ScrollAnimatorMac.mm:
(supportsContentAreaScrolledInDirection):
Pass along the delta.
(WebCore::ScrollAnimatorMac::immediateScrollTo):
(WebCore::ScrollAnimatorMac::notifyPositionChanged):
(WebCore::ScrollAnimatorMac::mayBeginScrollGesture):
(WebCore::ScrollAnimatorMac::notifyContentAreaScrolled):
(WebCore::ScrollAnimatorMac::immediateScrollBy):
(WebCore::ScrollAnimatorMac::sendContentAreaScrolledSoon):
If contentAreaScrolledInDirection: is available, call it with the delta, and then
reset our delta. Otherwise, still call contentAreaScrolled.
(WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired):
2013-02-01 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: [file selector dialog] for mixed case queries, score uppercase letters only when assessing camelcase.
https://bugs.webkit.org/show_bug.cgi?id=108639
Reviewed by Vsevolod Vlasov.
* inspector/front-end/FilteredItemSelectionDialog.js:
(WebInspector.FilteredItemSelectionDialog.prototype._createScoringRegex):
2013-02-01 Robert Hogan <robert@webkit.org>
Padding in a parent inline preceding an empty inline child should be counted towards width
https://bugs.webkit.org/show_bug.cgi?id=108226
Reviewed by Levi Weintraub.
Add the border/padding/margin from an empty inline's parent inline if it is the first or last
child of the inline.
Tests: fast/inline/parent-inline-element-padding-contributes-width.html
fast/inline/positioned-element-padding-contributes-width.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
2013-02-01 Tony Gentilcore <tonyg@chromium.org>
Continue making XSSAuditor thread safe: Remove dependencies on m_parser from init()
https://bugs.webkit.org/show_bug.cgi?id=108531
Reviewed by Adam Barth.
The threaded HTML parser will create and init() the XSSAuditor on the main thread, but filterToken() will be called on the background.
No new tests because no change in functionality.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::pumpTokenizer):
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::XSSAuditor):
(WebCore::XSSAuditor::init):
(WebCore::XSSAuditor::filterToken):
* html/parser/XSSAuditor.h:
(WebCore):
(XSSAuditor):
2013-02-01 Brady Eidson <beidson@apple.com>
Remove unnecessary parameter from DocumentLoader::scheduleArchiveLoad
https://bugs.webkit.org/show_bug.cgi?id=108654
Reviewed by Alexey Proskuryakov.
No new tests (No behavior change.)
Remove the KURL parameter parameter from this method which, in practice,
is always the same as the url of the ResourceRequest parameter.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::scheduleArchiveLoad):
* loader/DocumentLoader.h:
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::start):
2013-02-01 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: relax goto file matching again.
https://bugs.webkit.org/show_bug.cgi?id=108346
Reviewed by Vsevolod Vlasov.
This change brings back behavior introduced in r116244.
* inspector/front-end/FilteredItemSelectionDialog.js:
(WebInspector.FilteredItemSelectionDialog.prototype._createItemElement):
(WebInspector.FilteredItemSelectionDialog.prototype._createSearchRegex):
(WebInspector.FilteredItemSelectionDialog.prototype._createScoringRegex):
(WebInspector.FilteredItemSelectionDialog.prototype._filterItems.compareFunction):
(WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
(WebInspector.FilteredItemSelectionDialog.prototype._onMouseMove):
(WebInspector.FilteredItemSelectionDialog.prototype.itemElement):
(WebInspector.OpenResourceDialog):
* inspector/front-end/utilities.js:
(String.regexSpecialCharacters):
(String.prototype.escapeForRegExp):
2013-02-01 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Navigator should not create tree elements for uiSourceCodes unless neededm should populate folders on expand only.
https://bugs.webkit.org/show_bug.cgi?id=108601
Reviewed by Pavel Feldman.
Tree elememnts for uiSourceCodes are not created until really needed anymore.
They are now created when parent folder tree elememnts are expanded or when uiSourceCode is revealed in navigator.
* inspector/front-end/NavigatorView.js:
(WebInspector.NavigatorView):
(WebInspector.NavigatorView.prototype.addUISourceCode):
(WebInspector.NavigatorView.prototype._getOrCreateScriptTreeElement):
(WebInspector.NavigatorView.prototype._getScriptTreeElement):
(WebInspector.NavigatorView.prototype._createScriptTreeElement):
(WebInspector.NavigatorView.prototype._removeScriptTreeElement):
(WebInspector.NavigatorView.prototype._updateScriptTitle):
(WebInspector.NavigatorView.prototype.isScriptSourceAdded):
(WebInspector.NavigatorView.prototype.revealUISourceCode):
(WebInspector.NavigatorView.prototype.removeUISourceCode):
(WebInspector.NavigatorView.prototype.reset):
(WebInspector.NavigatorView.prototype.createFolderTreeElement):
(WebInspector.NavigatorView.prototype._populateFolderTreeElement):
(WebInspector.NavigatorView.prototype._addScriptTreeElement):
(WebInspector.NavigatorView.prototype._adoptUISourceCode):
(WebInspector.NavigatorFolderTreeElement):
(WebInspector.NavigatorFolderTreeElement.prototype.onpopulate):
2013-02-01 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: TabbedEditorContainer.History performance optimization.
https://bugs.webkit.org/show_bug.cgi?id=108581
Introduced history items indexing by url.
Reviewed by Pavel Feldman.
Covered by existing test.
* inspector/front-end/TabbedEditorContainer.js:
(WebInspector.TabbedEditorContainer.History):
(WebInspector.TabbedEditorContainer.History.prototype.index):
(WebInspector.TabbedEditorContainer.History.prototype._rebuildItemIndex):
(WebInspector.TabbedEditorContainer.History.prototype.update):
(WebInspector.TabbedEditorContainer.History.prototype.remove):
2013-02-01 Geoffrey Garen <ggaren@apple.com>
Added TriState to WTF and started using it in one place
https://bugs.webkit.org/show_bug.cgi?id=108628
Reviewed by Beth Dakin.
* editing/EditingStyle.h:
(WebCore): Moved TriState to WTF so it can be used in more places.
2013-02-01 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: Follow up to r141260: fixing renamed style.
Not reviewed.
* inspector/front-end/FilteredItemSelectionDialog.js:
(WebInspector.FilteredItemSelectionDialog.prototype._createItemElement):
(WebInspector.FilteredItemSelectionDialog.prototype._onClick):
(WebInspector.FilteredItemSelectionDialog.prototype._onMouseMove):
2013-02-01 Alexis Menard <alexis@webkit.org>
Enable unprefixed CSS transitions by default.
https://bugs.webkit.org/show_bug.cgi?id=108216
Reviewed by Dean Jackson.
Rename the flag CSS_TRANSFORMS_ANIMATIONS_TRANSITIONS_UNPREFIXED
to CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED which will be used later to
guard the unprefixing work for CSS Transforms and animations. Remove the
various #ifdefs and conditional generations.
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.cpp:
* GNUmakefile.features.am.in:
* css/CSSPropertyNames.in:
* dom/EventNames.in:
* dom/TransitionEvent.cpp:
* dom/TransitionEvent.h:
* dom/TransitionEvent.idl:
* page/DOMWindow.idl:
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
2013-02-01 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r141548.
http://trac.webkit.org/changeset/141548
https://bugs.webkit.org/show_bug.cgi?id=108579
userscript-plugin-document.html is flaky
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::setWrapperInObject):
* bindings/v8/V8GCController.cpp:
(WebCore):
(WebCore::gcTree):
(WebCore::V8GCController::didCreateWrapperForNode):
(WebCore::V8GCController::gcPrologue):
(WebCore::V8GCController::minorGCPrologue):
(WebCore::V8GCController::majorGCPrologue):
* bindings/v8/V8GCController.h:
(V8GCController):
2013-02-01 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: fix jscompiler warnings
https://bugs.webkit.org/show_bug.cgi?id=108604
Reviewed by Pavel Feldman.
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleGroup.prototype.addMessage):
* inspector/front-end/ContextMenu.js:
(WebInspector.ContextSubMenuItem):
* inspector/front-end/ImageView.js:
(WebInspector.ImageView.prototype._copyImageURL):
(WebInspector.ImageView.prototype._openInNewTab):
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._clearBrowserCache):
(WebInspector.NetworkLogView.prototype._clearBrowserCookies):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.IDBDatabaseTreeElement.prototype._refreshIndexedDB):
* inspector/front-end/ScriptsNavigator.js:
(WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
(WebInspector.SnippetsNavigatorView.prototype._handleRenameSnippet):
(WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
(WebInspector.SnippetsNavigatorView.prototype._handleCreateSnippet):
* inspector/front-end/Toolbar.js:
(WebInspector.Toolbar.prototype._isDockedToBottom):
2013-02-01 Jae Hyun Park <jae.park@company100.net>
Coordinated Graphics : Sort Target.pri and class declarations in alphabetical order.
https://bugs.webkit.org/show_bug.cgi?id=108590
Reviewed by Noam Rosenthal.
Sort CoordinatedGraphics files in Target.pri in alphabetical order.
No new tests. No change in behavior.
* Target.pri:
2013-02-01 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: provide edge names to class members in all WebCore instrumented classes.
https://bugs.webkit.org/show_bug.cgi?id=107369
Reviewed by Yury Semikhatsky.
It is almost mechanical change generated by a script.
Late I'll implement name to edge name consistency check in clang plugin.
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::reportMemoryUsage):
* Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::reportMemoryUsage):
* bindings/js/ScriptWrappable.h:
(WebCore::ScriptWrappable::reportMemoryUsage):
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::reportMemoryUsage):
* bindings/v8/DOMWrapperMap.h:
(WebCore::DOMWrapperMap::reportMemoryUsage):
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::reportMemoryUsage):
* bindings/v8/V8ValueCache.cpp:
(WebCore::StringCache::reportMemoryUsage):
* css/CSSBorderImageSliceValue.cpp:
(WebCore::CSSBorderImageSliceValue::reportDescendantMemoryUsage):
* css/CSSCalculationValue.cpp:
* css/CSSCanvasValue.cpp:
(WebCore::CSSCanvasValue::reportDescendantMemoryUsage):
* css/CSSCharsetRule.cpp:
(WebCore::CSSCharsetRule::reportMemoryUsage):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::reportMemoryUsage):
* css/CSSCrossfadeValue.cpp:
(WebCore::CSSCrossfadeValue::reportDescendantMemoryUsage):
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::reportDescendantMemoryUsage):
* css/CSSFontFaceRule.cpp:
(WebCore::CSSFontFaceRule::reportMemoryUsage):
* css/CSSFontFaceSrcValue.cpp:
(WebCore::CSSFontFaceSrcValue::reportDescendantMemoryUsage):
* css/CSSFunctionValue.cpp:
(WebCore::CSSFunctionValue::reportDescendantMemoryUsage):
* css/CSSGradientValue.cpp:
(WebCore::CSSGradientColorStop::reportMemoryUsage):
(WebCore::CSSGradientValue::reportBaseClassMemoryUsage):
(WebCore::CSSLinearGradientValue::reportDescendantMemoryUsage):
(WebCore::CSSRadialGradientValue::reportDescendantMemoryUsage):
* css/CSSGroupingRule.cpp:
(WebCore::CSSGroupingRule::reportMemoryUsage):
* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::reportBaseClassMemoryUsage):
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::reportDescendantMemoryUsage):
(WebCore::CSSImageSetValue::ImageWithScale::reportMemoryUsage):
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::reportDescendantMemoryUsage):
* css/CSSImportRule.cpp:
(WebCore::CSSImportRule::reportMemoryUsage):
* css/CSSMediaRule.cpp:
(WebCore::CSSMediaRule::reportMemoryUsage):
* css/CSSPageRule.cpp:
(WebCore::CSSPageRule::reportMemoryUsage):
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::reportMemoryUsage):
* css/CSSReflectValue.cpp:
(WebCore::CSSReflectValue::reportDescendantMemoryUsage):
* css/CSSRule.cpp:
(WebCore::CSSRule::reportMemoryUsage):
* css/CSSRuleList.cpp:
(WebCore::StaticCSSRuleList::reportMemoryUsage):
* css/CSSRuleList.h:
* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::reportMemoryUsage):
* css/CSSStyleRule.cpp:
(WebCore::CSSStyleRule::reportMemoryUsage):
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::reportMemoryUsage):
* css/CSSValue.cpp:
(WebCore::TextCloneCSSValue::reportDescendantMemoryUsage):
* css/CSSValueList.cpp:
(WebCore::CSSValueList::reportDescendantMemoryUsage):
* css/CSSVariableValue.h:
(WebCore::CSSVariableValue::reportDescendantMemoryUsage):
* css/FontFeatureValue.cpp:
(WebCore::FontFeatureValue::reportDescendantMemoryUsage):
* css/FontValue.cpp:
(WebCore::FontValue::reportDescendantMemoryUsage):
* css/MediaList.cpp:
(WebCore::MediaQuerySet::reportMemoryUsage):
(WebCore::MediaList::reportMemoryUsage):
* css/MediaQuery.cpp:
(WebCore::MediaQuery::reportMemoryUsage):
* css/MediaQueryExp.cpp:
(WebCore::MediaQueryExp::reportMemoryUsage):
* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::reportMemoryUsage):
(WebCore::StyleRuleCSSStyleDeclaration::reportMemoryUsage):
(WebCore::InlineCSSStyleDeclaration::reportMemoryUsage):
* css/RuleFeature.cpp:
(WebCore::RuleFeatureSet::reportMemoryUsage):
* css/RuleSet.cpp:
(WebCore::RuleData::reportMemoryUsage):
(WebCore::RuleSet::reportMemoryUsage):
(WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
* css/ShadowValue.cpp:
(WebCore::ShadowValue::reportDescendantMemoryUsage):
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::reportMemoryUsage):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::MatchedProperties::reportMemoryUsage):
(WebCore::StyleResolver::MatchedPropertiesCacheItem::reportMemoryUsage):
(WebCore::MediaQueryResult::reportMemoryUsage):
(WebCore::StyleResolver::reportMemoryUsage):
* css/StyleRule.cpp:
(WebCore::StyleRule::reportDescendantMemoryUsage):
(WebCore::StyleRulePage::reportDescendantMemoryUsage):
(WebCore::StyleRuleFontFace::reportDescendantMemoryUsage):
(WebCore::StyleRuleGroup::reportDescendantMemoryUsage):
(WebCore::StyleRuleMedia::reportDescendantMemoryUsage):
(WebCore::StyleRuleRegion::reportDescendantMemoryUsage):
(WebCore::StyleRuleViewport::reportDescendantMemoryUsage):
* css/StyleRuleImport.cpp:
(WebCore::StyleRuleImport::reportDescendantMemoryUsage):
* css/StyleScopeResolver.cpp:
(WebCore::StyleScopeResolver::reportMemoryUsage):
* css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::reportMemoryUsage):
* css/WebKitCSSKeyframeRule.cpp:
(WebCore::StyleKeyframe::reportMemoryUsage):
(WebCore::WebKitCSSKeyframeRule::reportMemoryUsage):
* css/WebKitCSSKeyframesRule.cpp:
(WebCore::StyleRuleKeyframes::reportDescendantMemoryUsage):
(WebCore::WebKitCSSKeyframesRule::reportMemoryUsage):
* css/WebKitCSSSVGDocumentValue.cpp:
(WebCore::WebKitCSSSVGDocumentValue::reportDescendantMemoryUsage):
* css/WebKitCSSShaderValue.cpp:
(WebCore::WebKitCSSShaderValue::reportDescendantMemoryUsage):
* css/WebKitCSSViewportRule.cpp:
(WebCore::WebKitCSSViewportRule::reportMemoryUsage):
* dom/Attribute.h:
(WebCore::Attribute::reportMemoryUsage):
* dom/CharacterData.cpp:
(WebCore::CharacterData::reportMemoryUsage):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::reportMemoryUsage):
* dom/ContainerNode.h:
(ContainerNode):
* dom/Document.cpp:
(WebCore::Document::reportMemoryUsage):
* dom/DocumentEventQueue.cpp:
(WebCore::DocumentEventQueue::reportMemoryUsage):
* dom/DocumentOrderedMap.cpp:
(WebCore::DocumentOrderedMap::reportMemoryUsage):
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
* dom/Element.cpp:
(WebCore::Element::reportMemoryUsage):
* dom/ElementAttributeData.cpp:
(WebCore::ElementAttributeData::reportMemoryUsage):
* dom/ElementRareData.cpp:
(WebCore::ElementRareData::reportMemoryUsage):
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::reportMemoryUsage):
* dom/Event.cpp:
(WebCore::Event::reportMemoryUsage):
* dom/LiveNodeList.cpp:
(WebCore::LiveNodeListBase::reportMemoryUsage):
* dom/Node.cpp:
(WebCore::Node::reportMemoryUsage):
* dom/NodeRareData.cpp:
(WebCore::NodeListsNodeData::reportMemoryUsage):
(WebCore::NodeRareData::reportMemoryUsage):
* dom/QualifiedName.cpp:
(WebCore::QualifiedName::reportMemoryUsage):
(WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::reportMemoryUsage):
* dom/SecurityContext.cpp:
(WebCore::SecurityContext::reportMemoryUsage):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::reportMemoryUsage):
* dom/TreeScope.cpp:
(WebCore::TreeScope::reportMemoryUsage):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::reportMemoryUsage):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::reportMemoryUsage):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::reportMemoryUsage):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::reportMemoryUsage):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::reportMemoryUsage):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::reportMemoryUsage):
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::HeapGraphSerializer):
(WebCore::HeapGraphSerializer::reportNode):
(WebCore::HeapGraphSerializer::reportMemoryUsage):
* inspector/HeapGraphSerializer.h:
(HeapGraphSerializer):
* inspector/InspectorBaseAgent.cpp:
(WebCore::InspectorBaseAgentInterface::reportMemoryUsage):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::reportMemoryUsage):
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
* inspector/InspectorDOMStorageResource.cpp:
(WebCore::InspectorDOMStorageResource::reportMemoryUsage):
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::reportMemoryUsage):
(WebCore::ScriptDebugListener::Script::reportMemoryUsage):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::reportMemoryUsage):
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::reportMemoryUsage):
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::reportMemoryUsage):
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::reportMemoryUsage):
* inspector/MemoryInstrumentationImpl.cpp:
(WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
(WebCore::MemoryInstrumentationImpl::reportMemoryUsage):
* inspector/NetworkResourcesData.cpp:
(WebCore::XHRReplayData::reportMemoryUsage):
(WebCore::NetworkResourcesData::ResourceData::reportMemoryUsage):
(WebCore::NetworkResourcesData::reportMemoryUsage):
* loader/CachedMetadata.cpp:
(WebCore::CachedMetadata::reportMemoryUsage):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::reportMemoryUsage):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::reportMemoryUsage):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::reportMemoryUsage):
* loader/Prerenderer.cpp:
(WebCore::Prerenderer::reportMemoryUsage):
* loader/ResourceBuffer.cpp:
(WebCore::ResourceBuffer::reportMemoryUsage):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::reportMemoryUsage):
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::reportMemoryUsage):
* loader/SubstituteData.cpp:
(WebCore::SubstituteData::reportMemoryUsage):
* loader/cache/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::reportMemoryUsage):
* loader/cache/CachedFont.cpp:
(WebCore::CachedFont::reportMemoryUsage):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::reportMemoryUsage):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::reportMemoryUsage):
* loader/cache/CachedResourceHandle.cpp:
(WebCore::CachedResourceHandleBase::reportMemoryUsage):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::reportMemoryUsage):
* loader/cache/CachedSVGDocument.cpp:
(WebCore::CachedSVGDocument::reportMemoryUsage):
* loader/cache/CachedScript.cpp:
(WebCore::CachedScript::reportMemoryUsage):
* loader/cache/CachedShader.cpp:
(WebCore::CachedShader::reportMemoryUsage):
* loader/cache/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::reportMemoryUsage):
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::reportMemoryUsage):
* page/DOMTimer.cpp:
(WebCore::DOMTimer::reportMemoryUsage):
* page/Frame.cpp:
(WebCore::Frame::reportMemoryUsage):
* page/Page.cpp:
(WebCore::Page::reportMemoryUsage):
* platform/KURL.cpp:
(WebCore::KURL::reportMemoryUsage):
* platform/KURLGoogle.cpp:
(WebCore::KURLGooglePrivate::reportMemoryUsage):
* platform/KURLWTFURLImpl.h:
(WebCore::KURLWTFURLImpl::reportMemoryUsage):
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::reportMemoryUsage):
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::reportMemoryUsage):
* platform/audio/AudioArray.h:
(WebCore::AudioArray::reportMemoryUsage):
* platform/audio/FFTFrame.cpp:
(WebCore::FFTFrame::reportMemoryUsage):
* platform/audio/HRTFDatabase.cpp:
(WebCore::HRTFDatabase::reportMemoryUsage):
* platform/audio/HRTFDatabaseLoader.cpp:
(WebCore::HRTFDatabaseLoader::reportMemoryUsage):
* platform/audio/HRTFElevation.cpp:
(WebCore::HRTFElevation::reportMemoryUsage):
* platform/audio/HRTFKernel.cpp:
(WebCore::HRTFKernel::reportMemoryUsage):
* platform/audio/ffmpeg/FFTFrameFFMPEG.cpp:
(reportMemoryUsage):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::reportMemoryUsage):
(WebCore::FrameData::reportMemoryUsage):
* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::reportMemoryUsage):
* platform/graphics/GeneratorGeneratedImage.cpp:
(WebCore::GeneratorGeneratedImage::reportMemoryUsage):
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::reportMemoryUsage):
* platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::reportMemoryUsage):
* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::reportMemoryUsage):
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::reportMemoryUsage):
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::ImageBufferData::reportMemoryUsage):
* platform/graphics/skia/MemoryInstrumentationSkia.cpp:
(reportMemoryUsage):
* platform/graphics/skia/NativeImageSkia.cpp:
(WebCore::NativeImageSkia::reportMemoryUsage):
* platform/image-decoders/ImageDecoder.cpp:
(WebCore::ImageFrame::reportMemoryUsage):
(WebCore):
(WebCore::ImageDecoder::reportMemoryUsage):
* platform/image-decoders/skia/ImageDecoderSkia.cpp:
(WebCore::ImageFrame::reportMemoryUsage):
* platform/network/FormData.cpp:
(WebCore::FormData::reportMemoryUsage):
(WebCore::FormDataElement::reportMemoryUsage):
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::reportMemoryUsageBase):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::reportMemoryUsage):
* platform/network/chromium/ResourceRequest.cpp:
(WebCore::ResourceRequest::reportMemoryUsage):
* rendering/InlineBox.cpp:
(WebCore::InlineBox::reportMemoryUsage):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::reportMemoryUsage):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::reportMemoryUsage):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::reportMemoryUsage):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::reportMemoryUsage):
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::reportMemoryUsage):
(WebCore::RenderFrameSet::GridAxis::reportMemoryUsage):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::reportMemoryUsage):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::reportMemoryUsage):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::reportMemoryUsage):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::reportMemoryUsage):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::reportMemoryUsage):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::reportMemoryUsage):
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::reportMemoryUsage):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::reportMemoryUsage):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::reportMemoryUsage):
(WebCore::RenderTableSection::RowStruct::reportMemoryUsage):
(WebCore::RenderTableSection::CellStruct::reportMemoryUsage):
* rendering/RenderText.cpp:
(WebCore::RenderText::reportMemoryUsage):
* rendering/RenderView.cpp:
(WebCore::RenderView::reportMemoryUsage):
* rendering/style/DataRef.h:
(WebCore::DataRef::reportMemoryUsage):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::reportMemoryUsage):
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::reportMemoryUsage):
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::reportMemoryUsage):
* svg/SVGPaint.cpp:
(WebCore::SVGPaint::reportDescendantMemoryUsage):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::reportMemoryUsage):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::reportMemoryUsage):
2013-02-01 Philippe Normand <pnormand@igalia.com>
[GTK][GStreamer] FullscreenVideoControllerGtk implementation
https://bugs.webkit.org/show_bug.cgi?id=107398
Reviewed by Gustavo Noronha Silva.
NATIVE_FULLSCREEN_VIDEO support for the GTK port. The previous
FullscreenVideoController implementation was refactored as a
sub-class of FullscreenVideoControllerGStreamer and hooked in the
MediaPlayerPrivateGStreamer backend.
* GNUmakefile.list.am:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gtk/FullscreenVideoControllerGtk.cpp: Renamed from Source/WebKit/gtk/WebCoreSupport/FullscreenVideoController.cpp.
* platform/graphics/gtk/FullscreenVideoControllerGtk.h: Renamed from Source/WebKit/gtk/WebCoreSupport/FullscreenVideoController.h.
2013-02-01 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: fix cursor location in Source Frame
https://bugs.webkit.org/show_bug.cgi?id=108592
Reviewed by Pavel Feldman.
Normalize range before computing amount of lines in
_updateSourcePosition.
No new tests.
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype._updateSourcePosition): Normalize text range.
* inspector/front-end/inspector.css: Slightly bigger left padding for the text.
(.source-frame-position):
2013-02-01 Kentaro Hara <haraken@chromium.org>
Unreviewed build fix after r141553.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateImplementation):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::V8Float64Array::HasInstance):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::V8TestActiveDOMObject::HasInstance):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::HasInstance):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::V8TestEventTarget::HasInstance):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::HasInstance):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::V8TestInterface::HasInstance):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::HasInstance):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::HasInstance):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::V8TestObj::HasInstance):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::HasInstance):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::HasInstance):
2013-02-01 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Sources panel navigator reveal and expand fixes.
https://bugs.webkit.org/show_bug.cgi?id=108584
Reviewed by Pavel Feldman.
Navigator folders are not expanded by default anymore.
Made domain folder expanded for inspected page main frame domain.
UISourceCodes are now added to navigator before editor container
so that they could be revealed if editor container decides to show them.
* inspector/front-end/NavigatorView.js:
(WebInspector.BaseNavigatorTreeElement.prototype.onattach):
(WebInspector.NavigatorFolderTreeElement.prototype.onattach):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._addUISourceCode):
2013-02-01 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] drop trace log in the backend when deleting profile in frontend
https://bugs.webkit.org/show_bug.cgi?id=108591
Reviewed by Pavel Feldman.
Send a dropTraceLog command to the backend when deleting a profile header from the sidebar.
Before we were sending the command only upon deleting an existing view of a profile, so we would not
sent the command if the view was not created or if a profile header was removed via context menu (the ondelete() method).
Drive-by: fixed an odd formatting of property functions.
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView.prototype.dispose):
(WebInspector.CanvasProfileHeader.prototype.reset):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfileHeader.prototype.reset):
(WebInspector.ProfileHeader.prototype.load):
(WebInspector.ProfileHeader.prototype.canSaveToFile):
(WebInspector.ProfileHeader.prototype.saveToFile):
(WebInspector.ProfileHeader.prototype.loadFromFile):
(WebInspector.ProfileHeader.prototype.fromFile):
(WebInspector.ProfilesPanel):
(WebInspector.ProfilesPanel.prototype._reset):
(WebInspector.ProfilesPanel.prototype._removeProfileHeader):
2013-02-01 Chris Fleizach <cfleizach@apple.com>
AX: when aria-activedescendant is used with a ComboBox role, focus should not be changed
https://bugs.webkit.org/show_bug.cgi?id=108596
Reviewed by Ryosuke Niwa.
Normally, an aria-activedescendant change causes a focus change to be triggered.
However, when used in conjunction with a combo box, this causes problems for screen readers.
Namely, the user expects focus to remain in the text field so that the user can keep typing.
If focus moves to an item in the combobox list, it is not possible to keep typing.
The solution is to not trigger a focus change in this case and instead use a selected children change notification.
Test: platform/mac/accessibility/combobox-activedescendant-notifications.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::shouldNotifyActiveDescendant):
(WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant):
(WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):
2013-02-01 Chris Fleizach <cfleizach@apple.com>
[Mac] REGRESSION(r140974): accessibility/lists.html fails on Lion=
https://bugs.webkit.org/show_bug.cgi?id=108291
Reviewed by Ryosuke Niwa.
This accounts for differences in what AppKit gives for accessibility role descriptions between platforms
when the subrole is not recognized, and standardizes it for WebKit.
Unskip a failing Lion test
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper roleDescription]):
2013-02-01 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Replace localeCompare in NavigatorView with compareTo.
https://bugs.webkit.org/show_bug.cgi?id=108585
Reviewed by Pavel Feldman.
Replaced String.prototype.localeCompare with String.prototype.compareTo
in NavigatorView to improve performance.
* inspector/front-end/NavigatorView.js:
(WebInspector.NavigatorTreeOutline._treeElementsCompare):
2013-02-01 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: File system pending requests list is not cleared after processing.
https://bugs.webkit.org/show_bug.cgi?id=108573
Reviewed by Pavel Feldman.
* inspector/front-end/IsolatedFileSystemModel.js:
(WebInspector.IsolatedFileSystemModel.prototype._processPendingFileSystemRequests):
2013-02-01 Tom Sepez <tsepez@chromium.org>
Dubious cast from HTMLCollection to HTMLAllCollection
https://bugs.webkit.org/show_bug.cgi?id=108538
Reviewed by Adam Barth.
Patch is tested by enabling V8 binding integrity on HTMLAllCollection and
running the existing tests without introducing new crashes.
* dom/Document.cpp:
(WebCore::Document::all):
Pass correct type to template.
* html/HTMLAllCollection.cpp:
(WebCore::HTMLAllCollection::create):
(WebCore::HTMLAllCollection::HTMLAllCollection):
* html/HTMLAllCollection.h:
(HTMLAllCollection):
Make create() method arguments compatible with template above.
* html/HTMLAllCollection.idl:
Enable binding integrity.
2013-02-01 Ken Kania <kkania@chromium.org>
Web Inspector: Add support for handling modal dialogs
https://bugs.webkit.org/show_bug.cgi?id=107883
Reviewed by Pavel Feldman.
Introduce support for being notified when a JavaScript modal dialog
is opening and closing, as well as a new command for accepting or
dismissing the dialog.
Test: inspector-protocol/page/willRunJavaScriptDialog.html
* inspector/Inspector.json:
* inspector/InspectorClient.h:
(WebCore::InspectorClient::handleJavaScriptDialog):
(InspectorClient):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willRunJavaScriptDialogImpl):
(WebCore::InspectorInstrumentation::didRunJavaScriptDialogImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::willRunJavaScriptDialog):
(WebCore):
(WebCore::InspectorInstrumentation::didRunJavaScriptDialog):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::willRunJavaScriptDialog):
(WebCore):
(WebCore::InspectorPageAgent::didRunJavaScriptDialog):
(WebCore::InspectorPageAgent::handleJavaScriptDialog):
* inspector/InspectorPageAgent.h:
* inspector/front-end/ResourceTreeModel.js:
(WebInspector.PageDispatcher.prototype.frameStartedLoading):
(WebInspector.PageDispatcher.prototype.frameStoppedLoading):
(WebInspector.PageDispatcher.prototype.frameScheduledNavigation):
(WebInspector.PageDispatcher.prototype.frameClearedScheduledNavigation):
(WebInspector.PageDispatcher.prototype.javascriptDialogOpening):
(WebInspector.PageDispatcher.prototype.javascriptDialogClosed):
* page/Chrome.cpp:
(WebCore::Chrome::runBeforeUnloadConfirmPanel):
(WebCore::Chrome::runJavaScriptAlert):
(WebCore::Chrome::runJavaScriptConfirm):
(WebCore::Chrome::runJavaScriptPrompt):
2013-02-01 Dan Alcantara <dfalcantara@chromium.org>
Touch disambiguation blacklist is not being queried properly
https://bugs.webkit.org/show_bug.cgi?id=108222
Reviewed by Adam Barth.
TEST=WebFrameTest::DisambiguationPopupBlacklist
Fix the blacklist so that we check it for the right nodes.
Add a chromium test to check that the blacklist is being built and used
correctly. Also update the other DisambiguationPopup tests to
use the new page scale method.
* page/TouchDisambiguation.cpp:
(WebCore::findGoodTouchTargets):
2013-01-31 Kentaro Hara <haraken@chromium.org>
[V8] Add a temporary optional Isolate parameter to HasInstance()
https://bugs.webkit.org/show_bug.cgi?id=108567
Reviewed by Adam Barth.
The optional Isolate parameter will be removed once all call sites have an Isolate.
It will require several patches.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNormalAttrSetter):
(GenerateParametersCheckExpression):
(GenerateParametersCheck):
(GenerateImplementation):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::V8Float64Array::HasInstance):
* bindings/scripts/test/V8/V8Float64Array.h:
(V8Float64Array):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::V8TestActiveDOMObject::HasInstance):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(V8TestActiveDOMObject):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::HasInstance):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(V8TestCustomNamedGetter):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(V8TestEventConstructor):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::V8TestEventTarget::HasInstance):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(V8TestEventTarget):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::HasInstance):
* bindings/scripts/test/V8/V8TestException.h:
(V8TestException):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::V8TestInterface::HasInstance):
* bindings/scripts/test/V8/V8TestInterface.h:
(V8TestInterface):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::HasInstance):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(V8TestMediaQueryListListener):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructor::HasInstance):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(V8TestNamedConstructor):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::HasInstance):
* bindings/scripts/test/V8/V8TestNode.h:
(V8TestNode):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::overloadedMethodCallback):
(WebCore::TestObjV8Internal::variadicNodeMethodCallback):
(WebCore::V8TestObj::HasInstance):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::constructorCallback):
(WebCore::V8TestOverloadedConstructors::HasInstance):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(V8TestOverloadedConstructors):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::HasInstance):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(V8TestSerializedScriptValueInterface):
2013-02-01 Nils Barth <nbarth@google.com>
[CPP,GObject,ObjC] Add 'static' skip to CodeGenerator{CPP,GObject,ObjC}.pm
https://bugs.webkit.org/show_bug.cgi?id=108578
Reviewed by Kentaro Hara.
Since CPP/GObject/ObjC code generators (CodeGenerator{CPP,GObject,ObjC}.pm)
do not support static attributes, add test to skip these.
This lets us remove #if macro from static in test files and not need
these in future.
Test: bindings/scripts/test/TestObj.idl (run-bindings-test)
Test: bindings/scripts/test/TestSupplemental.idl (run-bindings-test)
* bindings/scripts/CodeGeneratorCPP.pm:
(SkipAttribute):
* bindings/scripts/CodeGeneratorGObject.pm:
(SkipAttribute):
* bindings/scripts/CodeGeneratorObjC.pm:
(SkipAttribute):
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/TestSupplemental.idl:
2013-02-01 Kentaro Hara <haraken@chromium.org>
[V8] Remove V8GCController::m_edenNodes
https://bugs.webkit.org/show_bug.cgi?id=108579
Reviewed by Adam Barth.
Currently V8GCController::m_edenNodes stores a list of nodes whose
wrappers have been created since the latest GC. The reason why we
needed m_edenNodes is that there was no way to know a list of wrappers
in the new space of V8. By using m_edenNodes, we had been approximating
'wrappers in the new space' by 'wrappers that have been created since
the latest GC'.
Now V8 provides VisitHandlesForPartialDependence(), with which WebKit
can know a list of wrappers in the new space. By using the API, we can
remove V8GCController::m_edenNodes. The benefit is that (1) we no longer
need to keep m_edenNodes and that (2) it enables more precise minor
DOM GC (Remember that m_edenNodes was just an approximation).
Performance benchmark: https://bugs.webkit.org/attachment.cgi?id=185940
The benchmark runs 300 iterations, each of which creates 100000 elements.
The benchmark measures average, min, median, max and stdev of execution times
of the 300 iterations. This will tell us the worst-case overhead of this change.
Before:
mean=59.91ms, min=39ms, median=42ms, max=258ms, stdev=47.48ms
After:
mean=58.75ms, min=35ms, median=41ms, max=250ms, stdev=47.32ms
As shown above, I couldn't observe any performance regression.
No tests. No change in behavior.
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::setWrapperInObject):
* bindings/v8/V8GCController.cpp:
(WebCore::gcTree):
(WebCore):
(MinorGCWrapperVisitor):
(WebCore::MinorGCWrapperVisitor::notifyFinished):
(WebCore::V8GCController::gcPrologue):
(WebCore::V8GCController::minorGCPrologue):
(WebCore::V8GCController::majorGCPrologue):
* bindings/v8/V8GCController.h:
(V8GCController):
2013-02-01 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Use String.prototype.startsWith instead of String.prototype.indexOf when possible
https://bugs.webkit.org/show_bug.cgi?id=108575
Reviewed by Yury Semikhatsky.
* inspector/front-end/FileMapping.js:
(WebInspector.FileMapping.prototype._entryMatchesURL):
(WebInspector.FileMapping.prototype.urlForURI):
* inspector/front-end/FileSystemMapping.js:
(get WebInspector.FileSystemMappingImpl.prototype.fileForURI):
(get WebInspector.FileSystemMappingImpl.prototype.uriForPath):
2013-01-31 Aurimas Liutikas <aurimas@chromium.org>
Editor::m_compositionNode not updated on HTMLInputElement::setValue()
https://bugs.webkit.org/show_bug.cgi?id=107737
Reviewed by Ryosuke Niwa.
Chromium has a bug where the IME composition did not get cancelled on JavaScript changes
to the focused editing field. Most of other WebKit ports were already doing this check
in their EditorClient::respondToChangedSelection. I took that logic and moved it to the
Editor so every port and use the same code.
An existing test editing/input/setting-input-value-cancel-ime-composition.html covers this change.
This test used to have an expectation to fail on Chromium and after this patch it will start passing.
* editing/Editor.cpp:
(WebCore::Editor::cancelCompositionIfSelectionIsInvalid):
Adding a call that can be used by any the port to cancel the composition if it's no longer valid.
(WebCore):
* editing/Editor.h:
(Editor):
2013-01-31 Jae Hyun Park <jae.park@company100.net>
Coordinated Graphics : Move CoordinatedGraphics related files to WebCore
https://bugs.webkit.org/show_bug.cgi?id=108149
Reviewed by Noam Rosenthal.
This patch moves Coordinated Graphics related code to WebCore. To
implement Threaded Coordinated Graphics, most of Coordianted Graphics
code should be shared. Therefore, they should reside in WebCore instead of
WebKit2.
When moving to WebCore, two renamings have been done.
1. Rename LayerTreeRenderer to CoordinatedGraphicsScene.
2. Rename WebCustomFilterProgram and WebCustomFilterOperation to
CoordinatedCustomFilterProgram and CoordinatedCustomFilterOperation,
respectively.
No new tests, covered by existing tests.
* CMakeLists.txt:
* Target.pri:
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
* platform/graphics/texmap/coordinated/AreaAllocator.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/AreaAllocator.cpp.
* platform/graphics/texmap/coordinated/AreaAllocator.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/AreaAllocator.h.
* platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp.
* platform/graphics/texmap/coordinated/CoordinatedBackingStore.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h.
* platform/graphics/texmap/coordinated/CoordinatedCustomFilterOperation.h: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/WebCustomFilterOperation.h.
* platform/graphics/texmap/coordinated/CoordinatedCustomFilterProgram.h: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/WebCustomFilterProgram.h.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.h.
* platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedImageBacking.cpp.
* platform/graphics/texmap/coordinated/CoordinatedImageBacking.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedImageBacking.h.
* platform/graphics/texmap/coordinated/CoordinatedLayerInfo.h: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedLayerInfo.h.
* platform/graphics/texmap/coordinated/CoordinatedSurface.cpp: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedSurface.cpp.
* platform/graphics/texmap/coordinated/CoordinatedSurface.h: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedSurface.h.
* platform/graphics/texmap/coordinated/CoordinatedTile.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedTile.cpp.
* platform/graphics/texmap/coordinated/CoordinatedTile.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedTile.h.
* platform/graphics/texmap/coordinated/SurfaceUpdateInfo.h: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/SurfaceUpdateInfo.h.
* platform/graphics/texmap/coordinated/UpdateAtlas.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.cpp.
* platform/graphics/texmap/coordinated/UpdateAtlas.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.h.
2013-01-31 Lamarque V. Souza <Lamarque.Souza@basyskom.com>
[Qt] Add support for text decoration "wavy" style
https://bugs.webkit.org/show_bug.cgi?id=93507
Reviewed by Simon Hausmann.
Add support for text decoration "wavy" style for Qt platform.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::toQPenStyle):
Remove FIXME comments obsoleted by this patch.
(WebCore::GraphicsContext::drawLine):
Implement wavy style line tracer.
2013-01-31 Nils Barth <nbarth@google.com>
[CPP,GObject,ObjC] Add 'enum' skip to CodeGenerator{CPP,GObject,ObjC}.pm
https://bugs.webkit.org/show_bug.cgi?id=108565
Reviewed by Kentaro Hara.
Since legacy code generators (CodeGenerator{CPP,GObject,ObjC}.pm)
do not support enumerations, add test to skip attributes of enum type.
This lets us remove #if macro from enum in test file and not need
these in future.
Also minor associated code cleaning:
auxiliary variable: $type = $attribute->signature->type.
Test: bindings/scripts/test/TestObj.idl (run-bindings-test)
* bindings/scripts/CodeGeneratorCPP.pm:
(SkipAttribute):
* bindings/scripts/CodeGeneratorGObject.pm:
(SkipAttribute):
* bindings/scripts/CodeGeneratorObjC.pm:
(SkipAttribute):
* bindings/scripts/test/TestObj.idl: remove #if macro
2013-01-31 Kent Tamura <tkent@chromium.org>
Refactoring: Remove the default argument value for Node::setFocus
https://bugs.webkit.org/show_bug.cgi?id=108554
Reviewed by Kentaro Hara.
There is no code to use the default argument.
No new tests. Just a refactoring.
* dom/Node.h: Remove default argument value for setFocus.
* dom/ContainerNode.h:
(ContainerNode): Ditto.
* html/HTMLAreaElement.h:
(HTMLAreaElement): Add OVERRIDE to setFocus.
* html/HTMLFrameElementBase.h:
(HTMLFrameElementBase): Ditto.
2013-01-31 Victor Carbune <vcarbune@chromium.org>
[Track] Closed Caption button shouldn't be visible if all the track resources have failed loading
https://bugs.webkit.org/show_bug.cgi?id=106285
Reviewed by Eric Carlson.
Updated existing test cases.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::textTracksAreReady): Checked whether there are tracks not loaded
when the algorithm began.
(WebCore::HTMLMediaElement::textTrackReadyStateChanged): If the ready state changed to
FailedToLoad the media controls should check whether there are other caption tracks
and hide the button if not.
(WebCore::HTMLMediaElement::didAddTrack): Added trigger to closedCaptionsTrackChanged.
(WebCore::HTMLMediaElement::hasClosedCaptions): Updated check to skip tracks that
failed to load.
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::reset): Used the newly added method.
(WebCore::MediaControls::refreshClosedCaptionsButtonVisibility): Added container method for
default behaviour for refreshing the visibility of the caption button.
(WebCore::MediaControls::closedCaptionTracksChanged): Used the newly added method.
(WebCore):
* html/shadow/MediaControls.h:
(MediaControls):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::textTracksAreReady):
(WebCore::HTMLMediaElement::textTrackReadyStateChanged):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::didAddTrack):
(WebCore::HTMLMediaElement::hasClosedCaptions):
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::reset):
(WebCore::MediaControls::refreshClosedCaptionsButtonVisibility):
(WebCore::MediaControls::closedCaptionTracksChanged):
(WebCore):
* html/shadow/MediaControls.h:
(MediaControls):
2013-01-31 Dima Gorbik <dgorbik@apple.com>
REGRESSION(r140231): media track layout tests crashing
https://bugs.webkit.org/show_bug.cgi?id=107579
Reviewed by Eric Carlson.
We were using non-standard element names with HTMLElement, which made v8 try to cast
WebVTTElements to HTMLUnknownElements which was not possible. Subclassing Element instead
of HTMLElement, though this requires building HTMLElements from WebVTTElements for creating
a DOM tree. The code has been refactored to move WebVTT node type to QuialifiedName mappings
inside the WebVTTElement class. All WebVTTElements in the shadow dom tree now are in the
namespace defined by 'NullAtom'. This prevents regular styles from being applied to <b>, <i>
and similar tags. Those have to be styled separately without reusing existing QualifiedNames
and their styles. https://bugs.webkit.org/show_bug.cgi?id=107214
Unskipping tests to cover this.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRules):
(WebCore::StyleResolver::canShareStyleWithElement):
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::copyWebVTTNodeToDOMTree):
(WebCore::TextTrackCue::getCueAsHTML):
(WebCore::TextTrackCue::createCueRenderingTree):
(WebCore::TextTrackCue::markFutureAndPastNodes):
* html/track/TextTrackCue.h:
(WebCore::TextTrackCue::cueShadowPseudoId):
* html/track/WebVTTElement.cpp:
(WebCore::nodeTypeToTagName): get a QualifiedName to use in the shadow DOM tree.
(WebCore::WebVTTElement::WebVTTElement):
(WebCore::WebVTTElement::create):
(WebCore::WebVTTElement::cloneElementWithoutAttributesAndChildren):
(WebCore::WebVTTElement::createEquivalentHTMLElement): create an HTMLElement to use in the DOM tree.
* html/track/WebVTTElement.h:
(WebCore::WebVTTElement::setWebVTTNodeType):
(WebCore::WebVTTElement::webVTTNodeType):
(WebCore::WebVTTElement::isPastNode):
(WebCore::WebVTTElement::setIsPastNode):
(WebCore::WebVTTElement::voiceAttributeName):
* html/track/WebVTTParser.cpp:
(WebCore::tokenToNodeType): determine a WebVTT node type for the token.
(WebCore::WebVTTParser::constructTreeFromToken):
2013-01-31 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r141479.
http://trac.webkit.org/changeset/141479
https://bugs.webkit.org/show_bug.cgi?id=108564
breaks chromium test (Requested by morrita on #webkit).
* editing/Editor.cpp:
* editing/Editor.h:
(Editor):
2013-01-31 Changhun Kang <temoochin@company100.net>
Rename from parentOrHost* to parentOrShadowHost* in Node.h.
https://bugs.webkit.org/show_bug.cgi?id=108308
Reviewed by Dimitri Glazkov.
No new tests. No change in behavior.
2013-01-31 Alec Flett <alecflett@chromium.org>
IndexedDB: remove old transaction backend bootstrap code
https://bugs.webkit.org/show_bug.cgi?id=103923
Reviewed by Dimitri Glazkov.
Finally remove all leftover code from the IndexedDB "giant
async refactor of 2012." This includes removal of all
IDBTransaction* interfaces that were shared between
the frontend and backend and a few straggling methods
like onUpgradeNeeded and onSuccess that were left from
the last stage of refactoring.
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(WebCore):
(WebCore::IDBDatabaseBackendImpl::metadata):
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(WebCore):
(IDBDatabaseBackendInterface):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(WebCore):
* Modules/indexeddb/IDBTransaction.h:
(WebCore):
(IDBTransaction):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(WebCore):
(IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionBackendInterface.h: Removed.
* Modules/indexeddb/IDBTransactionCallbacks.h: Removed.
* Modules/indexeddb/IDBTransactionCoordinator.h:
(WebCore):
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
2013-01-31 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r141502.
http://trac.webkit.org/changeset/141502
https://bugs.webkit.org/show_bug.cgi?id=108441
Hit assert in SVGElementInstance
* bindings/scripts/CodeGeneratorV8.pm:
(GetInternalFields):
* dom/EventTarget.idl:
* svg/SVGElementInstance.idl:
2013-01-31 Ojan Vafai <ojan@chromium.org>
Assert that computePreferredLogicalWidths never calls setNeedsLayout
https://bugs.webkit.org/show_bug.cgi?id=108539
Reviewed by Tony Chang.
computePreferredLogicalWidths should only set m_minPreferredLogicalWidth
and m_maxPreferredLogicalWidth. It shouldn't have other side-effects.
This is take 2 after this was rolled out because it was missing the guards
in RenderCounter/RenderQuote.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::minPreferredLogicalWidth):
(WebCore::RenderBox::maxPreferredLogicalWidth):
* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::computePreferredLogicalWidths):
* rendering/RenderQuote.cpp:
(WebCore::RenderQuote::computePreferredLogicalWidths):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::computePreferredLogicalWidths):
2013-01-31 Abhishek Arya <inferno@chromium.org>
Use ASSERT_WITH_SECURITY_IMPLICATION to catch bad casts in DOM
https://bugs.webkit.org/show_bug.cgi?id=108490
Reviewed by Eric Seidel.
* dom/ContainerNode.h:
(WebCore::toContainerNode):
* dom/Element.h:
(WebCore::toElement):
* dom/ShadowRoot.h:
(WebCore::toShadowRoot):
* dom/Text.h:
(WebCore::toText):
* html/HTMLElement.h:
(HTMLElement):
(WebCore::toHTMLElement):
* html/HTMLFrameOwnerElement.h:
(WebCore::toFrameOwnerElement):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::hasMediaControls):
* html/HTMLTemplateElement.cpp:
(WebCore::toHTMLTemplateElement):
* html/HTMLUnknownElement.h:
(WebCore::toHTMLUnknownElement):
* html/shadow/InsertionPoint.h:
(WebCore::toInsertionPoint):
* html/shadow/MediaControlElementTypes.cpp:
(WebCore::mediaControlElementType):
* html/shadow/MediaControls.h:
(WebCore::toMediaControls):
* html/shadow/SliderThumbElement.h:
(WebCore::toSliderThumbElement):
* html/shadow/TextControlInnerElements.h:
(WebCore::toInputFieldSpeechButtonElement):
* html/shadow/TextFieldDecorationElement.h:
(WebCore::toTextFieldDecorationElement):
* html/track/WebVTTElement.h:
(WebCore::toWebVTTElement):
* mathml/MathMLElement.h:
(WebCore::toMathMLElement):
* page/scrolling/ScrollingStateFixedNode.h:
(WebCore::toScrollingStateFixedNode):
* page/scrolling/ScrollingStateScrollingNode.h:
(WebCore::toScrollingStateScrollingNode):
* page/scrolling/ScrollingStateStickyNode.h:
(WebCore::toScrollingStateStickyNode):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::resize):
* rendering/svg/SVGResources.cpp:
(WebCore::registerPendingResource):
(WebCore::SVGResources::buildCachedResources):
* svg/SVGElement.h:
(WebCore::toSVGElement):
* svg/SVGStyledElement.h:
(WebCore::toSVGStyledElement):
2013-01-31 Christopher Cameron <ccameron@chromium.org>
Fix rubber-band effect on non-scrollable pages
https://bugs.webkit.org/show_bug.cgi?id=107611
Reviewed by Antonio Gomes.
Handle a FrameView's wheel event even if it is not scrollable
because Chrome relies on handling these wheel events for the
over-scroll rubber-band effect.
This had been removed in r138378
[EFL][WK2] Never create WebCore scrollbars for EFL/WK2
by kenneth@chromium.org
Tests: platform/chromium/rubberbanding/wheelevent-overhang-e.html
platform/chromium/rubberbanding/wheelevent-overhang-n.html
platform/chromium/rubberbanding/wheelevent-overhang-s.html
platform/chromium/rubberbanding/wheelevent-overhang-w.html
* page/FrameView.cpp:
(WebCore::FrameView::wheelEvent):
2013-01-31 Enrica Casucci <enrica@apple.com>
Mac: Editor::baseWritingDirectionForSelectionStart should return WritingDirection instead of NSWritingDirection.
https://bugs.webkit.org/show_bug.cgi?id=108519.
Reviewed by Sam Weinig.
No new tests, no change in behavior.
There is no need to use AppKit types here.
baseWritingDirectionForSelectionStart now returns WritingDirection and
WebHTMLView toggleWritingDirection has been modified accordingly.
* editing/Editor.h:
* editing/mac/EditorMac.mm:
(WebCore::Editor::baseWritingDirectionForSelectionStart):
2013-01-31 Kentaro Hara <haraken@chromium.org>
[V8] Pass an Isolate to GetTemplate() in CodeGeneratorV8.pm
https://bugs.webkit.org/show_bug.cgi?id=108445
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateDomainSafeFunctionGetter):
(GenerateDomainSafeFunctionSetter):
(GenerateNormalAttrGetter):
(GenerateNamedConstructorCallback):
(GenerateImplementation):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::ConfigureV8Float64ArrayTemplate):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
(WebCore::TestActiveDOMObjectV8Internal::TestActiveDOMObjectDomainSafeFunctionSetter):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructor::GetTemplate):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::ConfigureV8TestNodeTemplate):
2013-01-31 Kentaro Hara <haraken@chromium.org>
[V8] Clean up Dictionary::get() by removing redundant FindInstanceInPrototypeChain()
https://bugs.webkit.org/show_bug.cgi?id=108443
Reviewed by Adam Barth.
In Dictionary::get(), wrapper->FindInstanceInPrototypeChain(V8XXX::GetTemplate())
is unnecessary for DOM wrappers other than DOMWindow. For wrappers other than
DOMWindow, we can simply use V8XXX::HasInstance(wrapper).
Tests: fast/events/constructors/*
* bindings/v8/Dictionary.cpp:
(WebCore::Dictionary::get):
2013-01-31 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Support implicit rows and columns
https://bugs.webkit.org/show_bug.cgi?id=103573
Reviewed by Ojan Vafai.
Tests: fast/css-grid-layout/implicit-columns-auto-resolution.html
fast/css-grid-layout/implicit-rows-auto-resolution.html
This change makes us properly initialize our GridTrack vectors's size
so that we can safely query any items during layout.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::gridTrackSize):
Added this helper function to return the track size from the grid
element's columns' / rows' definitions or the default value.
(WebCore::RenderGrid::maximumIndexInDirection):
Added this helper function to get the maximum index in a direction
taking grid item's implicit indexes into account.
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
Changed the funtion to not append the new tracks as we are properly
sized now.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
Updated these functions to use the new helper functions.
(WebCore::RenderGrid::layoutGridItems):
Changed this function to size both vectors when initializing them.
Also removed an unneeded bounds check as it shouldn't be needed anymore.
* rendering/RenderGrid.h:
Added the new helper functions.
* rendering/style/GridTrackSize.h:
(WebCore::GridTrackSize::GridTrackSize):
Added a constructor taking a LengthType.
2013-01-31 Joanmarie Diggs <jdiggs@igalia.com>
[GTK] fast/css/relative-positioned-block-crash.html is intermittently crashing
https://bugs.webkit.org/show_bug.cgi?id=108200
Reviewed by Martin Robinson.
Getting the Position of a PseudoElement now triggers an assertion.
This can occur when clicking on empty space in a render block.
Looking to the unignored parent's node (and passing that accessible
object on in a signal to Assistive Technologies) seems like the most
reasonable thing to do here.
No new tests; instead skipping two tests that were crashing as a result.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(objectFocusedAndCaretOffsetUnignored):
2013-01-31 Kentaro Hara <haraken@chromium.org>
[V8] Simplify CodeGeneratorV8.pm by using InheritsExtendedAttribute("EventTarget")
https://bugs.webkit.org/show_bug.cgi?id=108441
Reviewed by Adam Barth.
A complicated condition in GetInternalFields() can be simplified
by using InheritsExtendedAttribute("EventTarget").
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GetInternalFields):
* dom/EventTarget.idl: Added [EventTarget] which should have been added.
* svg/SVGElementInstance.idl: Ditto.
2013-01-31 Youenn Fablet <youennf@gmail.com>
Quadratic and bezier curves with coincident endpoints rendered incorrectly
https://bugs.webkit.org/show_bug.cgi?id=105650
Reviewed by Kenneth Russell.
Tests: fast/canvas/canvas-bezier-same-endpoint.html
fast/canvas/canvas-quadratic-same-endpoint.html
* html/canvas/CanvasPathMethods.cpp:
(WebCore::CanvasPathMethods::quadraticCurveTo):
(WebCore::CanvasPathMethods::bezierCurveTo):
2013-01-31 Mark Lam <mark.lam@apple.com>
Abstraction for hiding enum class.
https://bugs.webkit.org/show_bug.cgi?id=108533
Reviewed by Anders Carlsson.
No new tests.
* Modules/webdatabase/DatabaseError.h:
(WebCore::ENUM_CLASS_BEGIN):
2013-01-31 Arnaud Renevier <a.renevier@sisa.samsung.com>
[Gtk] drag and drop has black background without composition
https://bugs.webkit.org/show_bug.cgi?id=108376
Reviewed by Martin Robinson.
Use gtk_drag_set_icon_surface (or gtk_drag_set_icon_pixbuf) when the
screen is not composited. That way, drag window will be decomposited
and rendered transparent with Xshape.
To determine which parts of the window must be transparent, gtk checks
if a pixel is more than 50% opaque. With dissolveDragImageToFraction,
all pixels are made 25% transparent. With antialiasing, opacity goes
below the threshold for some pixels, which makes the resulting image
messy. So, we need to skip dissolveDragImageToFraction when we use
gtk_drag_set_icon_surface.
* platform/gtk/DragIcon.cpp:
(WebCore::DragIcon::DragIcon):
(WebCore::DragIcon::~DragIcon):
(WebCore::DragIcon::setImage):
(WebCore::DragIcon::useForDrag):
* platform/gtk/DragIcon.h:
(DragIcon):
* platform/gtk/DragImageGtk.cpp:
(WebCore::dissolveDragImageToFraction):
2013-01-31 Tony Gentilcore <tonyg@chromium.org>
Begin to make XSSAuditor thread aware
https://bugs.webkit.org/show_bug.cgi?id=108394
Reviewed by Adam Barth.
This patch moves the parts of filterToken() that depend on Frame, Document, etc. to a delegate class.
The new didBlockScript delegate method is invoked with the resulting DidBlockScriptRequest which will
be owned by the CompactHTMLToken in the threaded case.
This is just the first step as there is more to do to make XSSAuditor thread safe.
No new tests because covered by existing tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::pumpTokenizer):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::processTokensFromBackgroundParser):
(WebCore::HTMLDocumentParser::pumpTokenizer):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::filterToken):
* html/parser/XSSAuditor.h:
(WebCore):
(XSSAuditor):
* html/parser/XSSAuditorDelegate.cpp: Added.
(WebCore):
(WebCore::XSSAuditorDelegate::XSSAuditorDelegate):
(WebCore::XSSAuditorDelegate::didBlockScript):
* html/parser/XSSAuditorDelegate.h: Added.
(WebCore):
(DidBlockScriptRequest):
(WebCore::DidBlockScriptRequest::create):
(WebCore::DidBlockScriptRequest::DidBlockScriptRequest):
(XSSAuditorDelegate):
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::pumpTokenizer):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::pumpTokenizer):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::XSSAuditor):
(WebCore::XSSAuditor::filterToken):
* html/parser/XSSAuditor.h:
(WebCore):
(XSSAuditor):
* html/parser/XSSAuditorDelegate.cpp: Added.
(WebCore):
(WebCore::XSSAuditorDelegate::XSSAuditorDelegate):
(WebCore::XSSAuditorDelegate::didBlockScript):
* html/parser/XSSAuditorDelegate.h: Added.
(WebCore):
(DidBlockScriptRequest):
(WebCore::DidBlockScriptRequest::create):
(WebCore::DidBlockScriptRequest::DidBlockScriptRequest):
(XSSAuditorDelegate):
2013-01-31 Uday Kiran <udaykiran@motorola.com>
CSS3's vh attribute is not adjusting while browser resizes
https://bugs.webkit.org/show_bug.cgi?id=86418
Reviewed by Antti Koivisto.
Elements with viewport percentage units needs layout whenever
viewport size changes. Check for viewport percentage unit
was missing for height.
Test: css3/viewport-percentage-lengths/vh-resize.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateBlockChildDirtyBitsBeforeLayout):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::hasViewportPercentageLogicalHeight): Check if style
is specified in viewport percentage units.
(WebCore):
* rendering/RenderBox.h:
(RenderBox):
* rendering/RenderView.cpp:
(WebCore::RenderView::layout): Elements with viewport percentage units
needs relayout when viewport size changes.
2013-01-31 Anton Vayvod <avayvod@chromium.org>
TextAutosizing: refactor the cluster related method parameters into a single struct.
https://bugs.webkit.org/show_bug.cgi?id=108384
This anticipates adding more cluster related information in the following patches.
Reviewed by Kenneth Rohde Christiansen.
Just a refactoring so no new tests.
* rendering/TextAutosizer.cpp: define the new struct and pass it to every method instead of
a cluster and its descendant block containing all text.
* rendering/TextAutosizer.h: change method prototypes to receive the new struct
as a parameter defining an autosizing cluster.
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizingClusterInfo::TextAutosizingClusterInfo):
(TextAutosizingClusterInfo):
(WebCore):
(WebCore::TextAutosizer::processSubtree):
(WebCore::TextAutosizer::processCluster):
(WebCore::TextAutosizer::processContainer):
(WebCore::TextAutosizer::isAutosizingCluster):
(WebCore::TextAutosizer::clusterShouldBeAutosized):
(WebCore::TextAutosizer::measureDescendantTextWidth):
* rendering/TextAutosizer.h:
(WebCore):
2013-01-31 Jacky Jiang <zhajiang@rim.com>
[BlackBerry] Bing Images viewport causes layout "fun"
https://bugs.webkit.org/show_bug.cgi?id=108393
Reviewed by Yong Li.
Internally reviewed by Arvid Nilsson and partially reviewed by Konrad Piascik.
PR: 277855
On bing.com image search page, JS generated styles for the divs which
contained images based on the window.screen and window.innerWidth.
Unfortunately the styles for the divs weren't good enough on our device
which resulted in three images being overlapped in the same viewport.
On our port, we calculate the screen rect base on the physical screen
pixels. However, iOS and lastest Android Chrome port already changed it
to density-independent (logical) pixels. And also to my knowledge that
some websites would generate bad styles for us as well through
@media device-width/device-height.
To be consistent and fix such kinds of issues, we should use
density-independent pixels instead of physical screen pixels. Mainly
ported from Chrome port change r139356. The patch will affect
screen.width/height, window.outerWidth/outerHeight and
@media device-width/device-height.
* platform/blackberry/PlatformScreenBlackBerry.cpp:
(WebCore):
(WebCore::toUserSpace):
(WebCore::screenAvailableRect):
(WebCore::screenRect):
2013-01-31 Max Vujovic <mvujovic@adobe.com>
[CSS Shaders] Parse custom filter function with the at-rule reference syntax
https://bugs.webkit.org/show_bug.cgi?id=108351
Reviewed by Dean Jackson.
This patch implements the parsing for the new custom filter function "at-rule reference"
syntax. It does not implement the style resolution yet.
The custom function syntax has changed in the spec. Instead of including all of the custom
filter information inline, the custom function can now reference an @filter rule by name.
The custom function can still accept a list of parameters.
The syntax is defined as the following, where IDENT is the name of the @filter rule:
filter: custom(IDENT [, <param>]*)
In practice, it can look like this:
filter: custom(page-curl, direction 90, amount 0.5);
Spec: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#customident-ltparamgt
Tests: css3/filters/custom-with-at-rule-syntax/parsing-custom-function-invalid.html
css3/filters/custom-with-at-rule-syntax/parsing-custom-function-valid.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseCustomFilterParameters):
Factor out a new function that just parses custom filter parameters. This is used by the
previous inline syntax and the new at-rule reference syntax.
(WebCore):
(WebCore::CSSParser::parseCustomFilterFunctionWithAtRuleReferenceSyntax):
This method parses the new at-rule reference syntax. When we remove the inline syntax,
we can rename this method to "parseCustomFilterFunction" and call it directly.
(WebCore::CSSParser::parseCustomFilterFunctionWithInlineSyntax):
Move the previous inline syntax parsing code into a new function.
(WebCore::CSSParser::parseCustomFilterFunction):
This method looks ahead in the CSS parser values and decides whether to parse the custom
function with the previous inline syntax or with the new at-rule reference syntax.
(WebCore::CSSParser::parseFilter):
I renamed the "parseCustomFilter" method to "parseCustomFilterFunction" to be more
explicit. Here, we update the name in the call site.
* css/CSSParser.h:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::createCustomFilterOperationWithAtRuleReferenceSyntax):
This is a stub method. In the future, style resolution for the at-rule reference
syntax will happen here. When we remove the inline syntax, we can rename this method
(WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
This method contains the previous inline syntax style resolution code.
(WebCore):
(WebCore::StyleResolver::createCustomFilterOperation):
This method decides which syntax we should use to resolve the style.
* css/StyleResolver.h:
(StyleResolver):
2013-01-31 Aurimas Liutikas <aurimas@chromium.org>
Editor::m_compositionNode not updated on HTMLInputElement::setValue()
https://bugs.webkit.org/show_bug.cgi?id=107737
Reviewed by Ryosuke Niwa.
Chromium has a bug where the IME composition did not get cancelled on JavaScript changes
to the focused editing field. Most of other WebKit ports were already doing this check
in their EditorClient::respondToChangedSelection. I took that logic and moved it to the
Editor so every port and use the same code.
An existing test editing/input/setting-input-value-cancel-ime-composition.html covers this change.
This test used to have an expectation to fail on Chromium and after this patch it will start passing.
* editing/Editor.cpp:
(WebCore::Editor::cancelCompositionIfSelectionIsInvalid):
Adding a call that can be used by any the port to cancel the composition if it's no longer valid.
(WebCore):
* editing/Editor.h:
(Editor):
2013-01-31 Joseph Pecoraro <pecoraro@apple.com>
Disable ENABLE_FULLSCREEN_API on iOS
https://bugs.webkit.org/show_bug.cgi?id=108250
Reviewed by Benjamin Poulain.
* Configurations/FeatureDefines.xcconfig:
2013-01-31 Mark Pilgrim <pilgrim@chromium.org>
[Chromium] Move LocalizedStrings to WebCore
https://bugs.webkit.org/show_bug.cgi?id=108488
Reviewed by Adam Barth.
Part of a larger refactoring series; see tracking bug 106829.
* WebCore.gypi:
* platform/chromium/LocalizedStringsChromium.cpp: Copied from Source/WebKit/chromium/src/LocalizedStrings.cpp.
(WebCore::imageTitle):
2013-01-31 Enrica Casucci <enrica@apple.com>
WebKit2: provide new bundle APIs to allow bundle clients to be notified of pasteboard access.
https://bugs.webkit.org/show_bug.cgi?id=108396.
<rdar://problem/12920461>
Reviewed by Alexey Proskuryakov.
Adds support in WebCore to new EditorClient methods to support the modified
client bundle API in WebKit2.
* WebCore.exp.in:
* editing/Editor.cpp:
(WebCore::Editor::cut): Added call to willWriteSelectionToPasteboard.
(WebCore::Editor::copy): Ditto.
(WebCore::Editor::willWriteSelectionToPasteboard): Added.
* editing/Editor.h:
* loader/EmptyClients.h: Added empty client implementation
for the new methods.
(WebCore::EmptyEditorClient::willWriteSelectionToPasteboard):
(WebCore::EmptyEditorClient::getClientPasteboardDataForRange):
* page/EditorClient.h:
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeSelectionForTypes): Added call to getClientPasteboardDataForRange.
2013-01-31 David Kilzer <ddkilzer@apple.com>
Use OS() and PLATFORM() macros in WebCorePrefix.h for readability
<http://webkit.org/b/108374>
Reviewed by Laszlo Gombos.
* WebCorePrefix.h: Replaced all possible checks with OS() or
PLATFORM() macros other than __APPLE__.
2013-01-31 Mike West <mkwst@chromium.org>
Cleanup: Use ScriptExecutionContext::topOrigin when relevant.
https://bugs.webkit.org/show_bug.cgi?id=108476
Reviewed by Jochen Eisinger.
Rather than diving through 'frame()->top()' or 'topDocument()' to get
the SecurityOrigin of the top-level document in a frame, we can now
directly grab the 'topOrigin()' off of a ScriptExecutionContext. This
patch adjusts a few callsites to use the new hotness rather than the
old brokenness.
This is a pure refactoring: No web-visible changes should result.
* Modules/webdatabase/DOMWindowWebDatabase.cpp:
(WebCore::DOMWindowWebDatabase::openDatabase):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::sessionStorage):
(WebCore::DOMWindow::localStorage):
* workers/SharedWorker.cpp:
(WebCore::SharedWorker::create):
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerContext):
2013-01-31 peavo@outlook.com <peavo@outlook.com>
[Curl] There is no way for a WebKit client to set the Curl cookie jar path
https://bugs.webkit.org/show_bug.cgi?id=107692
Reviewed by Brent Fulgham.
Set default cookie jar path.
Get the cookie jar path for Curl from the environment variable CURL_COOKIE_JAR_PATH.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::cookieJarPath): Added helper function to set cookie jar path.
(WebCore::ResourceHandleManager::ResourceHandleManager): Call helper function.
2013-01-31 Maciej Stachowiak <mjs@apple.com>
REGRESSION (r138962): Fails to show "confirm form resubmission", hangs browser
https://bugs.webkit.org/show_bug.cgi?id=108214
Reviewed by Adam Barth.
Attempt a workaround suggested by Nate Chapin by putting some code
in #ifdef !PLATFORM(CHROMIUM).
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::notifyFinished):
2013-01-31 Ojan Vafai <ojan@chromium.org>
REGRESSION(r128517): Percentage heights in quirks mode collapse when printing
https://bugs.webkit.org/show_bug.cgi?id=108382
Reviewed by David Hyatt.
r128517 clean up our containing block finding logic, but broke percentage
heights in quirks mode during printing since the RenderView would have 0 height.
Turns out we already had a long-standing bug where we'd incorrectly
treat collapse percentage heights on the body when printing as well.
Fix both bugs by changing the way we grab the logical height on the RenderView.
RenderView::computeLogicalHeight returns 0 when printing. For the purposes of
stretching and percentage heights, we instead need to return the pageLogicalHeight.
Tests: printing/quirks-percentage-height-body.html
printing/quirks-percentage-height.html
printing/standards-percentage-heights.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalHeight):
This FIXME is outdated and already fixed. Also, call viewLogicalHeightForPercentages
which does the same logic except also correctly handles column RenderViews.
(WebCore::RenderBox::viewLogicalHeightForPercentages):
(WebCore::RenderBox::computePercentageLogicalHeight):
* rendering/RenderBox.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalHeight):
(WebCore::RenderBox::viewLogicalHeightForPercentages):
(WebCore):
(WebCore::RenderBox::computePercentageLogicalHeight):
* rendering/RenderBox.h:
(RenderBox):
2013-01-31 Dirk Schulze <krit@webkit.org>
[canvas] Implement currentPath to get and set the current path of the context
https://bugs.webkit.org/show_bug.cgi?id=108246
Reviewed by Dean Jackson.
Add currentPath attribute to CanvasRenderingContext2d interface. This allows
setting the current context path by an existing Path object as well as getting
the current context path as new Path object. The returned and the set Paths
are not live.
This feature is behind the CANVAS_PATH compiler flag which is disabled by
default for now.
Test: fast/canvas/canvas-currentPath.html
* html/canvas/CanvasPathMethods.cpp: Rename transformIsInvertible to
isTransformInvertible for harmonizing naming schema.
(WebCore::CanvasPathMethods::moveTo): Ditto.
(WebCore::CanvasPathMethods::lineTo): Ditto.
(WebCore::CanvasPathMethods::quadraticCurveTo): Ditto.
(WebCore::CanvasPathMethods::bezierCurveTo): Ditto.
(WebCore::CanvasPathMethods::arcTo): Ditto.
(WebCore::CanvasPathMethods::arc): Ditto.
(WebCore::CanvasPathMethods::rect): Ditto.
* html/canvas/CanvasPathMethods.h: Ditto.
(CanvasPathMethods):
(WebCore::CanvasPathMethods::isTransformInvertible):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore):
(WebCore::CanvasRenderingContext2D::currentPath): Getter for currentPath.
(WebCore::CanvasRenderingContext2D::setCurrentPath): Setter for currentPath.
* html/canvas/CanvasRenderingContext2D.h:
(WebCore):
(CanvasRenderingContext2D):
(WebCore::CanvasRenderingContext2D::isTransformInvertible):
* html/canvas/CanvasRenderingContext2D.idl: Add currentPath attribute.
* html/canvas/DOMPath.h: Add new constructor and getter for Path object.
(WebCore::DOMPath::create): New static function for new ctor.
(DOMPath):
(WebCore::DOMPath::path): Getter for Path object.
(WebCore::DOMPath::DOMPath):
2013-01-31 Alexandre Elias <aelias@chromium.org>
Call FrameView::contentsResized() when setting fixed layout size
https://bugs.webkit.org/show_bug.cgi?id=107922
Reviewed by James Robinson.
In fixed layout mode, we should be calling contentsResized() when the
fixed layout size is changed, but not laying out when the visible
content rect changes.
Previously landed as r140869 but was reverted due to a bug in bundled
Chromium-specific code. This patch includes just the minimum needed in
WebCore.
New WebFrameTest: FrameViewNeedsLayoutOnFixedLayoutResize. Some
flaky and obsolete tests for the old page scale mode are also deleted.
* page/FrameView.cpp:
(WebCore::FrameView::visibleContentsResized):
* platform/ScrollView.cpp:
(WebCore::ScrollView::setFixedLayoutSize):
(WebCore::ScrollView::setUseFixedLayout):
2013-01-31 Otto Derek Cheung <otcheung@rim.com>
[BlackBerry] CookieParser should ignore invalid/unsupported attributes instead of ignoring the cookie
https://bugs.webkit.org/show_bug.cgi?id=108494
PR 287832
Reviewed by Rob Buis.
Internally Reviewed by Liam Quinn.
A short-term fix for CookieParser to not blow up when a Set-Cookie header has an invalid
or unsupported cookie attribute.
We will ignore the attribute only, not the entire cookie.
Also, making sure the parser won't replace values of valid attributes when evaluating an unsupported
cookie with the same length and same first character as a supported attribute.
Tested using opera cookie and browser.swlab.rim.net cookies test suite. Tested using regular sites that
has a login mechanism.
* platform/blackberry/CookieParser.cpp:
(WebCore::CookieParser::parseOneCookie):
2013-01-31 Tommy Widenflycht <tommyw@google.com>
[chromium] MediaStream API: Rename WebMediaStreamDescriptor and WebMediaStreamComponent to WebMediaStream and WebMediaStreamTrack
https://bugs.webkit.org/show_bug.cgi?id=108458
Reviewed by Adam Barth.
Only renames, no other code changes.
* WebCore.gypi:
* platform/chromium/support/WebMediaStream.cpp: Added.
(WebKit::WebMediaStream::WebMediaStream):
(WebKit):
(WebKit::WebMediaStream::reset):
(WebKit::WebMediaStream::label):
(WebKit::WebMediaStream::id):
(WebKit::WebMediaStream::extraData):
(WebKit::WebMediaStream::setExtraData):
(WebKit::WebMediaStream::audioSources):
(WebKit::WebMediaStream::videoSources):
(WebKit::WebMediaStream::operator=):
(WebKit::WebMediaStream::operator PassRefPtr<WebCore::MediaStreamDescriptor>):
(WebKit::WebMediaStream::operator WebCore::MediaStreamDescriptor*):
(WebKit::WebMediaStream::initialize):
(WebKit::WebMediaStream::assign):
* platform/chromium/support/WebMediaStreamComponent.cpp: Removed.
* platform/chromium/support/WebMediaStreamDescriptor.cpp: Removed.
* platform/chromium/support/WebMediaStreamTrack.cpp: Added.
(WebKit):
(WebKit::WebMediaStreamTrack::WebMediaStreamTrack):
(WebKit::WebMediaStreamTrack::operator=):
(WebKit::WebMediaStreamTrack::initialize):
(WebKit::WebMediaStreamTrack::reset):
(WebKit::WebMediaStreamTrack::operator PassRefPtr<MediaStreamComponent>):
(WebKit::WebMediaStreamTrack::operator MediaStreamComponent*):
(WebKit::WebMediaStreamTrack::isEnabled):
(WebKit::WebMediaStreamTrack::id):
(WebKit::WebMediaStreamTrack::stream):
(WebKit::WebMediaStreamTrack::source):
(WebKit::WebMediaStreamTrack::assign):
* platform/chromium/support/WebRTCStatsRequest.cpp:
(WebKit::WebRTCStatsRequest::stream):
(WebKit::WebRTCStatsRequest::component):
* platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
(WebCore::MediaStreamCenterChromium::didCreateMediaStream):
(WebCore::MediaStreamCenterChromium::stopLocalMediaStream):
(WebCore::MediaStreamCenterChromium::addMediaStreamTrack):
(WebCore::MediaStreamCenterChromium::removeMediaStreamTrack):
* platform/mediastream/chromium/MediaStreamCenterChromium.h:
(WebKit):
(MediaStreamCenterChromium):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteStream):
(WebCore::RTCPeerConnectionHandlerChromium::didRemoveRemoteStream):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
(WebKit):
(RTCPeerConnectionHandlerChromium):
2013-01-31 Dmitry Zvorygin <zvorygin@chromium.org>
Web Inspector: searching for <u> in elements panel finds all tags containing "u"
https://bugs.webkit.org/show_bug.cgi?id=108176
Reviewed by Pavel Feldman.
When searching for tag name check that tag name must either start from
search query, or must end with it.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::performSearch):
2013-01-30 Mark Lam <mark.lam@apple.com>
DatabaseContext needs to outlive the ScriptExecutionContext.
https://bugs.webkit.org/show_bug.cgi?id=108355.
Reviewed by Geoffrey Garen.
Added a RefPtr<DatabaseContext> in ScriptExecutionContext to keep the
DatabaseContext alive until after ScriptExecutionContext destructs.
No new tests.
* Modules/webdatabase/DatabaseContext.cpp:
(WebCore::DatabaseContext::DatabaseContext):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::setDatabaseContext):
* dom/ScriptExecutionContext.h:
(ScriptExecutionContext):
2013-01-31 Grzegorz Czajkowski <g.czajkowski@samsung.com>
On Linux, can't get spelling suggestions without selection when unified text checker is enabled
https://bugs.webkit.org/show_bug.cgi?id=107684
Reviewed by Ryosuke Niwa.
No new tests, covered by context-menu-suggestions.html.
* editing/Editor.cpp:
(WebCore::Editor::guessesForMisspelledOrUngrammatical):
For Linux, extend selection range to the closest word to get
the spelling suggestions when unified text checker is enabled.
2013-01-31 Florin Malita <fmalita@chromium.org>
[Skia] Update SkiaImageFilterBuilder's brightness matrix to match Chromium's implementation
https://bugs.webkit.org/show_bug.cgi?id=107841
Reviewed by Stephen White.
Update Skia's brightness filter to match the spec after http://trac.webkit.org/changeset/139770.
No new tests: covered by existing tests (currently disabled pending rebaseline).
* platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:
2013-01-31 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: show cursor location in DTE
https://bugs.webkit.org/show_bug.cgi?id=108478
Reviewed by Pavel Feldman.
Add a new status bar element to SourceFrame to display current
DefaultTextEditor cursor position.
No new tests.
* English.lproj/localizedStrings.js:
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype.copyRange):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame):
(WebInspector.SourceFrame.prototype.statusBarItems):
(WebInspector.SourceFrame.prototype.selectionChanged):
(WebInspector.SourceFrame.prototype._updateSourcePosition):
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor.prototype.copyRange):
* inspector/front-end/inspector.css:
(.source-frame-position):
2013-01-31 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: overlay highlight in DTE gets messed up when zoom factor changes.
https://bugs.webkit.org/show_bug.cgi?id=108486
Reviewed by Pavel Feldman.
Repaint overlay highlight when zoom factor changes.
No new tests.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype.highlightRegex):
(WebInspector.TextEditorMainPanel.prototype.removeHighlight):
(WebInspector.TextEditorMainPanel.prototype.highlightRange):
(WebInspector.TextEditorMainPanel.prototype._repaintLineRowsAffectedByHighlightDescriptors):
(WebInspector.TextEditorMainPanel.prototype.resize):
2013-01-31 Simon Hausmann <simon.hausmann@digia.com>
[Qt] Fix minor memory leak in slot execution
Reviewed by Allan Sandfeld Jensen.
Don't leak the "length" string when executing a slot in JavaScript.
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtConnectionObject::execute):
2013-01-31 Mike West <mkwst@chromium.org>
Allow blocking of IndexedDB in third-party contexts
https://bugs.webkit.org/show_bug.cgi?id=94171
Reviewed by Jochen Eisinger.
This patch ensures that the origin of the top window is passed into
SecurityOrigin::canAccessDatabase when working with IndexedDB. Giving
SecurityOrigin access to this data means that it can properly check
whether the database is being opened in a third-party context, and
therefore properly enforce the third-party access checks that were
added in http://trac.webkit.org/changeset/125736.
Third-party checks are added to IDBFactory::open,
IDBFactory::deleteDatabase, and IDBFactory::getDatabaseNames; each will
now throw a SECURITY_ERR exception when access in a third-party context
if third-party access checks are enabled.
To make this process slightly more clear, and avoid some ugly casting
logic, this patch adds a 'topOrigin' method to ScriptExecutionContext,
and implements it on both WorkerContext and Document.
Tests: http/tests/security/cross-origin-indexeddb-allowed.html
http/tests/security/cross-origin-indexeddb.html
http/tests/security/cross-origin-worker-indexeddb-allowed.html
http/tests/security/cross-origin-worker-indexeddb.html
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::getDatabaseNames):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):
Grab the SecurityOrigin of the current context's top-level origin,
and pass it to SecurityOrigin::canAccessDatabase to ensure that
access checks are properly applied to these three methods.
* dom/Document.cpp:
(WebCore::Document::topOrigin):
(WebCore):
* dom/Document.h:
(Document):
* dom/ScriptExecutionContext.h:
(ScriptExecutionContext):
Add a topOrigin() method to ScriptExecutionContext, and implement it
on Document in order to give callers access to the top document's
SecurityOrigin without casting ScriptExecutionContext.
* workers/WorkerContext.h:
Change the existing topOrigin() method to override the new method
on ScriptExecutionContext.
2013-01-31 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] Add cookie column to show presence of request/response cookies.
https://bugs.webkit.org/show_bug.cgi?id=107441
Reviewed by Pavel Feldman.
In some use cases only responses that contain "set-cookie" headers
are interesting.
* English.lproj/localizedStrings.js: Added "Set-Cookies" string.
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._createTable): Added columns.
(WebInspector.NetworkLogView.prototype._createSortingFunctions): Ditto.
(WebInspector.NetworkDataGridNode.prototype.createCells): Ditto.
(WebInspector.NetworkDataGridNode.prototype.refreshRequest): Ditto.
(WebInspector.NetworkDataGridNode.prototype._refreshCookiesCell): Added.
(WebInspector.NetworkDataGridNode.prototype._refreshSetCookiesCell): Added.
(WebInspector.NetworkDataGridNode.RequestCookiesCountComparator): Added.
(WebInspector.NetworkDataGridNode.ResponseCookiesCountComparator): Added.
2013-01-31 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: Exception in HeapSnapshotView.js
https://bugs.webkit.org/show_bug.cgi?id=108456
Reviewed by Yury Semikhatsky.
Listen "profile added" events in the HeapSnapshotView targeted only to the Heap Snapshot type.
* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapSnapshotView.prototype._onProfileHeaderAdded):
2013-01-31 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: do not set any textContent in overlay highlight spans
https://bugs.webkit.org/show_bug.cgi?id=108460
Reviewed by Pavel Feldman.
Do not set any text content for overlay highlight spans to implicitly
set its height. Instead, measure its height in the same manner as its
done for "width" and "left" and set it explicitly.
No new tests: no change in behaviour.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
(WebInspector.TextEditorMainPanel.ElementMetrics):
* inspector/front-end/textEditor.css:
(.text-editor-token-highlight): Update highlight to correspond to
slightly different elements height.
2013-01-31 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Box shadows on a transparency layer is very slow
https://bugs.webkit.org/show_bug.cgi?id=107547
Reviewed by Noam Rosenthal.
Include the window boundaries in the clip returned by GraphicsContext,
since QPainter may remember clips larger than the destination, but
ShadowBlur uses the clipBounds to determine the size of the shadow layer.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::clipBounds):
2013-01-31 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: highlight backend languages as scripts
https://bugs.webkit.org/show_bug.cgi?id=108336
Reviewed by Vsevolod Vlasov.
Most languages have structure similar to js, so enabling default highlighter for them won't hurt.
* inspector/front-end/FileSystemWorkspaceProvider.js:
(WebInspector.FileSystemWorkspaceProvider.prototype._contentTypeForPath):
2013-01-31 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Profiles] show launcher view upon deleting last profile type's header
https://bugs.webkit.org/show_bug.cgi?id=108468
Reviewed by Pavel Feldman.
We should show launcher view and hide profile type sidebar section upon deleting last profile type's header from the sidebar.
Right now we only show launcher view upon deleting the last profile header (of any profile type).
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel.prototype._removeProfileHeader):
2013-01-31 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] Columns are misaligned as first row goes out of sight.
https://bugs.webkit.org/show_bug.cgi?id=107933
Reviewed by Pavel Feldman.
For some reason if "td" elements in first table row have "display: none"
style, then column width calculation breaks.
* inspector/front-end/networkLogView.css:
(.network-log-grid.data-grid tr.offscreen > td > div):
Hide content instead of "td" element itself.
2013-01-31 Vineet Chaudhary <rgf748@motorola.com>
formMethod to have empty string as default value and 'get' as invalid.
https://bugs.webkit.org/show_bug.cgi?id=108263
Reviewed by Kent Tamura.
The spec says formmethod should only have an invalid value default, not a missing value default.
Spec: http://www.whatwg.org/specs/web-apps/current-work/#form-submission-0
http://www.w3.org/html/wg/drafts/html/master/forms.html#attr-fs-formmethod
Test: fast/forms/formmethod-attribute-test.html
* html/HTMLFormControlElement.cpp: For the missing formMethod attr return empty string.
(WebCore::HTMLFormControlElement::formMethod):
2013-01-20 Kondapally Kalyan <kalyan.kondapally@intel.com>
[Efl][WebGL] Add better support to track and free XResources.
https://bugs.webkit.org/show_bug.cgi?id=107397
Reviewed by Noam Rosenthal.
We leak Memory during config selection as we dont free temporary
allocated visuals, config etc. This patch ensures that we dont leak any
memory.
Covered by existing WebGL tests.
* platform/graphics/surfaces/egl/EGLSurface.cpp:
(WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
* platform/graphics/surfaces/glx/GLXConfigSelector.h:
(WebCore::GLXConfigSelector::GLXConfigSelector):
(WebCore::GLXConfigSelector::visualInfo):
(WebCore::GLXConfigSelector::pBufferContextConfig):
(WebCore::GLXConfigSelector::surfaceContextConfig):
(WebCore::GLXConfigSelector::createSurfaceConfig):
(GLXConfigSelector):
Removed XVisualInfo as member variable. Fixed memory leaks.
* platform/graphics/surfaces/glx/GLXSurface.cpp:
(WebCore::GLXTransportSurface::GLXTransportSurface):
* platform/graphics/surfaces/glx/OwnPtrX11.h: Added.
(OwnPtrX11):
(WebCore::OwnPtrX11::OwnPtrX11):
(WebCore::OwnPtrX11::~OwnPtrX11):
(WebCore::OwnPtrX11::operator=):
(WebCore::OwnPtrX11::operator T*):
(WebCore::OwnPtrX11::operator->):
(WebCore::OwnPtrX11::get):
Calls XFree on pointer to memory allocated by X when the class goes out of scope.
OwnPtr cannot be used here as GLXFBConfig is a pointer to an array of pointers.
* platform/graphics/surfaces/glx/X11WindowResources.cpp:
(WebCore::X11OffScreenWindow::X11OffScreenWindow):
(WebCore::X11OffScreenWindow::~X11OffScreenWindow):
(WebCore):
(WebCore::X11OffScreenWindow::createOffScreenWindow):
(WebCore::X11OffScreenWindow::destroyWindow):
(WebCore::X11OffScreenWindow::nativeSharedDisplay):
* platform/graphics/surfaces/glx/X11WindowResources.h:
(X11OffScreenWindow):
Removed unused code. Fixed memory leaks.
2013-01-31 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] remove invalid canvas profile trace logs upon frame navigation
https://bugs.webkit.org/show_bug.cgi?id=108454
Reviewed by Pavel Feldman.
When canvas profile trace logs stored in the backend get destroyed (for example, on frame navigation), send an event to frontend and update the UI.
Drive-by: replace String types to corresponding TypeBuilder::Canvas::* typedefs.
* inspector/InjectedScriptCanvasModule.cpp:
(WebCore::InjectedScriptCanvasModule::captureFrame):
(WebCore::InjectedScriptCanvasModule::startCapturing):
(WebCore::InjectedScriptCanvasModule::callStartCapturingFunction):
(WebCore::InjectedScriptCanvasModule::stopCapturing):
(WebCore::InjectedScriptCanvasModule::dropTraceLog):
(WebCore::InjectedScriptCanvasModule::callVoidFunctionWithTraceLogIdArgument):
(WebCore::InjectedScriptCanvasModule::traceLog):
(WebCore::InjectedScriptCanvasModule::replayTraceLog):
(WebCore::InjectedScriptCanvasModule::resourceInfo):
(WebCore::InjectedScriptCanvasModule::resourceState):
* inspector/InjectedScriptCanvasModule.h:
(InjectedScriptCanvasModule):
* inspector/Inspector.json:
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::dropTraceLog):
(WebCore::InspectorCanvasAgent::stopCapturing):
(WebCore::InspectorCanvasAgent::getTraceLog):
(WebCore::InspectorCanvasAgent::replayTraceLog):
(WebCore::InspectorCanvasAgent::getResourceInfo):
(WebCore::InspectorCanvasAgent::getResourceState):
(WebCore::InspectorCanvasAgent::frameNavigated):
* inspector/InspectorCanvasAgent.h:
(InspectorCanvasAgent):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::hasIdForFrame):
(WebCore):
* inspector/InspectorPageAgent.h:
(InspectorPageAgent):
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileType.prototype._runSingleFrameCapturing):
(WebInspector.CanvasProfileType.prototype._startFrameCapturing):
(WebInspector.CanvasProfileType.prototype._didStartCapturingFrame):
(WebInspector.CanvasProfileType.prototype._traceLogsRemoved):
(WebInspector.CanvasDispatcher.prototype.contextCreated):
(WebInspector.CanvasDispatcher.prototype.traceLogsRemoved):
(WebInspector.CanvasProfileHeader):
(WebInspector.CanvasProfileHeader.prototype.frameId):
2013-01-31 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: DTE doesn't highlight words if the selected one is the last in the line
https://bugs.webkit.org/show_bug.cgi?id=108344
Reviewed by Pavel Feldman.
Fix error in _isWord function which made an erroneous line-end check.
Improved test: inspector/editor/text-editor-highlight-token.html
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._isWord):
2013-01-31 Philippe Normand <pnormand@igalia.com>
Unreviewed, Qt build fix after r141265.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
Avoid uninitialized variable error when NATIVE_FULLSCREEN_VIDEO is disabled.
2013-01-31 Kent Tamura <tkent@chromium.org>
Click on a label element won't select input[type=date]
https://bugs.webkit.org/show_bug.cgi?id=108428
Reviewed by Kentaro Hara.
date/time input types with INPUT_MULTIPLE_FIELDS_UI are not
mouse-focusable. <input> as a shadow host never gets focus and
sub-fields in its shadow tree are focusable. Howevever, the click
handling of <label> checked isMouseFocusable. We introduce new function
isFocusableByClickOnLabel to HTMLElement. It's default implementation is
same as isMouseFocusable, and we add special handling for
BaseMultipleFieldsDateAndTimeInputType::isFocusableByClickOnLabel.
Also, date/time input types without INPUT_MULTIPLE_FIELDS_UI were not
mouse-focusable by a mistake. It should be mouse-focusable.
Test: fast/forms/date/date-click-on-label.html
* html/HTMLElement.cpp:
(WebCore::HTMLElement::isFocusableByClickOnLabel):
Added. Just calls isMouseFocusable.
* html/HTMLElement.h:
(HTMLElement): Declare isFocusableByClickOnLabel.
* html/HTMLLabelElement.cpp:
(WebCore::HTMLLabelElement::defaultEventHandler):
Calls isFocusableByClickOnLabel instead of isMouseFocusable.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::isFocusableByClickOnLabel):
Delegate to InputType::isFocusableByClickOnLabel.
* html/HTMLInputElement.h:
(HTMLInputElement): Declare isFocusableByClickOnLabel.
* html/InputType.cpp:
(WebCore::InputType::isFocusableByClickOnLabel):
Added. Calls isMouseFocusable.
* html/InputType.h:
(InputType): Declare isFocusableByClickOnLabel.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::isFocusableByClickOnLabel):
Added. Use the same logic with textfields.
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType): Declare isFocusableByClickOnLabel.
* html/BaseChooserOnlyDateAndTimeInputType.cpp:
(WebCore::BaseChooserOnlyDateAndTimeInputType::isMouseFocusable):
Added. Use the same logic with textfields.
* html/BaseChooserOnlyDateAndTimeInputType.h:
(BaseChooserOnlyDateAndTimeInputType): Declare isMouseFocusable.
2013-01-31 Kentaro Hara <haraken@chromium.org>
Rename WheelEvent::Granularity to WheelEvent::DeltaMode
https://bugs.webkit.org/show_bug.cgi?id=108434
Reviewed by Ryosuke Niwa.
Per the spec, WheelEvent::Granularity should be renamed to WheelEvent::DeltaMode.
Spec: http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent
https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm#constructor-wheelevent
No tests. No change in behavior.
* dom/WheelEvent.cpp:
(WebCore::WheelEvent::WheelEvent):
(WebCore::WheelEvent::initWheelEvent):
(WebCore::deltaMode):
(WebCore::WheelEventDispatchMediator::WheelEventDispatchMediator):
* dom/WheelEvent.h:
(WebCore::WheelEvent::create):
(WebCore::WheelEvent::deltaMode):
(WheelEvent):
* page/EventHandler.cpp:
(WebCore::wheelGranularityToScrollGranularity):
(WebCore::EventHandler::defaultWheelEventHandler):
2013-01-30 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: test that nodes from the same detached DOM tree will get into one group in heap snapshot
https://bugs.webkit.org/show_bug.cgi?id=108202
Reviewed by Vsevolod Vlasov.
Test: inspector-protocol/heap-profiler/heap-snapshot-with-detached-dom-tree.html
* inspector/front-end/JSHeapSnapshot.js:
(WebInspector.JSHeapSnapshotNode.prototype.className): removed unnecessary i18n.
2013-01-31 Kentaro Hara <haraken@chromium.org>
[V8] Trace not only major DOM GCs but also minor DOM GCs
https://bugs.webkit.org/show_bug.cgi?id=108436
Reviewed by Adam Barth.
Currently only major DOM GCs are traced.
We should also trace minor DOM GCs.
No tests. No change in behavior.
* bindings/v8/V8GCController.cpp:
(WebCore::V8GCController::minorGCPrologue):
(WebCore::V8GCController::minorGCEpilogue):
2013-01-31 Yury Semikhatsky <yurys@chromium.org>
Layout Test inspector-protocol/take-heap-snapshot.html crashes in the Debug mode
https://bugs.webkit.org/show_bug.cgi?id=104800
Reviewed by Jochen Eisinger.
The test crashed because during snapshot generation Profiler.reportHeapSnapshotProgress
events were sent to the inspector front-end, then parsed and dispatched there.
Since in case of layout tests the front-end resides in the same process
as the inspected page parsing the event broke an assumption that there are
no JS heap allocations while heap snapshot is being taken.
I added optional boolean parameter 'reportProgress' to Profiler.takeHeapSnapshot
command so that the protocol client can control whether progress events should
be sent during snapshot generation. The protocol test is not interested in the
progress events and sets reportProgress to false.
Test: inspector-protocol/heap-profiler/take-heap-snapshot.html
* inspector/Inspector.json:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::takeHeapSnapshot):
* inspector/InspectorProfilerAgent.h:
(InspectorProfilerAgent):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
2013-01-31 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r141110.
http://trac.webkit.org/changeset/141110
https://bugs.webkit.org/show_bug.cgi?id=108349
This patch broke WK2-EFL unit tests (Requested by grzegorz on
#webkit).
* platform/text/TextChecking.h:
(WebCore):
2013-01-31 Kentaro Hara <haraken@chromium.org>
[V8] 'new MouseEvent("click", {relatedTarget: window}).window' should return window
https://bugs.webkit.org/show_bug.cgi?id=108432
Reviewed by Adam Barth.
In V8 'new MouseEvent("click", {relatedTarget: window}).window'
returns null. JSC returns window, which is a correct behavior.
V8 should also return window.
The point is that we need to handle a DOMWindow wrapper specially
before converting it to an EventTarget object. A wrapper returned by
Dictionary::get("relatedTarget") is not an expected DOMWindow wrapper.
To get the expected DOMWindow wrapper, we need to look up a prototype
chain of the DOMWindow wrapper.
In JSC, this special handling is done by JSEventTargetCustom::toEventTarget().
Test: fast/events/constructors/mouse-event-constructor.html
* bindings/v8/Dictionary.cpp:
(WebCore::Dictionary::get):
2013-01-31 Mark Pilgrim <pilgrim@chromium.org>
[Chromium] Move MediaPlayerPrivateChromium to WebCore
https://bugs.webkit.org/show_bug.cgi?id=108415
Reviewed by Adam Barth.
Part of a larger refactoring series; see tracking bug 106829.
* WebCore.gypi:
* platform/graphics/chromium/MediaPlayerPrivateChromium.cpp: Added.
(WebCore):
(WebCore::MediaPlayerPrivate::registerMediaEngine): call
registerMediaEngine through static function pointer that was set
during WebKit initializeWithoutV8
(WebCore::MediaPlayerPrivate::setMediaEngineRegisterSelfFunction):
new setter function that takes a function pointer that is used by registerMediaEngine
* platform/graphics/chromium/MediaPlayerPrivateChromium.h:
(WebCore):
(MediaPlayerPrivate):
2013-01-30 Patrick Gansterer <paroga@webkit.org>
Port DragImageWin.cpp to WinCE
https://bugs.webkit.org/show_bug.cgi?id=108329
Reviewed by Brent Fulgham.
Add #if !OS(WINCE) around a few lines of the code, so it can be used by the WinCE port too.
* PlatformWinCE.cmake:
* platform/win/DragImageWin.cpp:
(WebCore::dragLabelFont):
* platform/wince/DragImageWinCE.cpp: Removed.
2013-01-30 Hayato Ito <hayato@chromium.org>
Split CSSOMWrapper data and functions out from StyleResolver into its own class.
https://bugs.webkit.org/show_bug.cgi?id=107779
Reviewed by Dimitri Glazkov.
Factored CSSOMWrapper logic and data out from StyleResolver into a
InspectorCSSOMWrappers class. Since InspectorCSSOMWrappers
depends on static variables defined in StyleResolver.cpp, this
patch does not extract a new class into a new file, which makes a
review easier since it produces readable diffs.
After we factor static variables related to default style sheets
in a following patch (bug 107780), I'll move
InspectorCSSOMWrappers into a its own file.
No new tests, refactoring only.
* css/StyleResolver.cpp:
(WebCore):
(WebCore::StyleResolver::appendAuthorStyleSheets):
(WebCore::InspectorCSSOMWrappers::collectFromStyleSheetIfNeeded):
(WebCore::InspectorCSSOMWrappers::collect):
(WebCore::InspectorCSSOMWrappers::collectFromStyleSheetContents): Name it explicitly rather than overloading.
(WebCore::InspectorCSSOMWrappers::collectFromStyleSheets): Name it explicitly rather than overloading.
(WebCore::InspectorCSSOMWrappers::collectFromDocumentStyleSheetCollection): Name it explicitly rather than overloading.
(WebCore::InspectorCSSOMWrappers::getWrapperForRuleInSheets): Renamed from ensureFullCSSOMWrapperForInspector().
(WebCore::InspectorCSSOMWrappers::reportMemoryUsage):
(WebCore::StyleResolver::reportMemoryUsage):
* css/StyleResolver.h:
(InspectorCSSOMWrappers):
(WebCore):
(StyleResolver):
(WebCore::StyleResolver::inspectorCSSOMWrappers):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::willMatchRule):
(WebCore::InspectorCSSAgent::willProcessRule):
(WebCore::InspectorCSSAgent::buildObjectForRule):
2013-01-30 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r141358.
http://trac.webkit.org/changeset/141358
https://bugs.webkit.org/show_bug.cgi?id=108421
breaks android builder (Requested by morrita on #webkit).
* bindings/v8/custom/V8IntentCustom.cpp:
2013-01-30 Kentaro Hara <haraken@chromium.org>
[V8] Use state->isolate() when state is not 0
https://bugs.webkit.org/show_bug.cgi?id=107674
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::start):
(WebCore::ScriptProfiler::stop):
2013-01-30 Adam Barth <abarth@webkit.org>
The background HTML parser should be able to parse speculatively
https://bugs.webkit.org/show_bug.cgi?id=107753
Reviewed by Eric Seidel.
This patch adds the ability for the foreground HTML parser to
invalidate speculative parsing done by the background HTML parser.
Currently, we're a bit overly agressive an invalidate all speculations
on document.write. We plan to refine that in the future.
Test: fast/parser/document-write-partial-script.html
* WebCore.gypi:
* html/parser/BackgroundHTMLInputStream.cpp: Added.
(WebCore):
(WebCore::BackgroundHTMLInputStream::BackgroundHTMLInputStream):
(WebCore::BackgroundHTMLInputStream::append):
(WebCore::BackgroundHTMLInputStream::close):
(WebCore::BackgroundHTMLInputStream::createCheckpoint):
(WebCore::BackgroundHTMLInputStream::rewindTo):
* html/parser/BackgroundHTMLInputStream.h: Added.
(WebCore):
(BackgroundHTMLInputStream):
(WebCore::BackgroundHTMLInputStream::current):
(WebCore::BackgroundHTMLInputStream::Checkpoint::Checkpoint):
(Checkpoint):
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::append):
(WebCore):
(WebCore::BackgroundHTMLParser::resumeFrom):
(WebCore::BackgroundHTMLParser::markEndOfFile):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
(WebCore::BackgroundHTMLParser::resumeFromPartial):
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::didFailSpeculation):
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
* html/parser/HTMLDocumentParser.h:
(ParsedChunk):
(HTMLDocumentParser):
2013-01-30 Nils Barth <nbarth@google.com>
[V8] Add IDL 'enum' support to CodeGeneratorV8.pm
https://bugs.webkit.org/show_bug.cgi?id=106553
Reviewed by Kentaro Hara.
Add partial support for Web IDL enumerations in V8 bindings
Binding generators currently cannot handle IDL enumerations.
(An enumeration is an DOMString with a limited set of values, thus
treated internally as DOMString, with validation code added in
bindings.)
This adds support for enumerations in V8, adding validation checking
to setters.
It does not add validation checking to operations (no test case), and
does not add support in JSC.
Test: bindings/scripts/test/TestObj.idl (run-bindings-test)
* bindings/scripts/IDLParser.pm:
- Parser assumes all IDL definitions are interfaces; add support for
other definitions
- Parser parses but discards enum definitions; instead, record
parsed data
(Parse): Sort definitions into interfaces and enums.
Remove "@definitions eq (someIdlDocument)" test, as this never
happens (fossil code) -- parseDefinitions returns list of definitions,
never a one-item list consisting of a document (no nested documents).
(unquoteString): new utility function to unquote StringToken (token
itself still quoted)
(parseEnum):
(parseEnumValueList):
(parseEnumValues):
(parseEnumOld):
* bindings/scripts/CodeGenerator.pm:
- Expose parsed enum data to backends (detect enums, list valid
values)
- Enums treated as DOMString type in internal function
(ProcessDocument):
(IsEnumType):
(ValidEnumValues):
(IsRefPtrType):
* bindings/scripts/CodeGeneratorV8.pm:
- Enums treated as DOMString type in internal functions
- Add validation to setter
(GenerateNormalAttrSetter):
(GetNativeType):
(JSValueToNative):
(NativeToJSValue):
(ConvertToV8StringResource):
* bindings/scripts/test/TestObj.idl:
- New enum type and enum variable test for IDL enumeration support
* bindings/scripts/test/V8/V8TestObj.cpp:
- Generated code, desired behavior
(WebCore::TestObjV8Internal::enumAttrAttrGetter):
(TestObjV8Internal):
(WebCore::TestObjV8Internal::enumAttrAttrSetter):
(WebCore):
* bindings/scripts/test/JS/JSTestObj.cpp:
- Generated code, currently incorrect
(WebCore):
(WebCore::jsTestObjEnumAttr):
(WebCore::setJSTestObjEnumAttr):
* bindings/scripts/test/JS/JSTestObj.h:
- Generated code, currently incorrect
(WebCore):
2013-01-30 Nico Weber <thakis@chromium.org>
[chromium] Build webkit with enable_web_intents set to 0.
https://bugs.webkit.org/show_bug.cgi?id=108408
Reviewed by Kentaro Hara.
I'll then make chromium build fine with that, then switch
enable_web_intents to 0, roll that into webkit, and then
actually remove the code hidden behind this flag.
* bindings/v8/custom/V8IntentCustom.cpp:
2013-01-30 Joshua Bell <jsbell@chromium.org>
IndexedDB: Remove speculative dispatchEvent crash fix now that root cause is addressed
https://bugs.webkit.org/show_bug.cgi?id=108131
Reviewed by Tony Chang.
A patch was landed in r140027 to prevent a null pointer crash in
IDBRequest::dispatchEvent and confirm the source of the crash (which
we couldn't repro locally). Following confirmation from user reports,
the root cause was tracked down to a race condition in MessageQueue,
and was fixed in r140483. This patch is no longer needed, and there's
always been an ASSERT in place to catch regressions while debugging.
No new tests - no behavior change.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::dispatchEvent): Remove extraneous test.
2013-01-30 Joe Mason <jmason@rim.com>
[BlackBerry] Store both proxy and host credentials simultaneously for NetworkJob
https://bugs.webkit.org/show_bug.cgi?id=108388
Reviewed by Yong Li.
The platform NetworkRequest interface has been updated again, to store both a proxy and host
credential for each request (to prevent an infinite loop when a request authenticates against a
proxy but fails the host authentication, and then the followup contains the host credential but not
the proxy credential so it fails proxy authentication, so the next followup contains the proxy
credential but not the host credential...)
Complying with the new interface requires the host and proxy challenge to be stored separately in
webkit so they can both be added to the same NetworkRequest.
Internal PR: 281172
Internal Reviewer: Leo Yang
* platform/network/ResourceHandleInternal.h:
(ResourceHandleInternal):
* platform/network/blackberry/AuthenticationChallenge.h:
(WebCore::AuthenticationChallenge::hasCredentials):
(AuthenticationChallenge):
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::notifyAuthReceived):
(WebCore::NetworkJob::handleRedirect):
(WebCore::NetworkJob::sendRequestWithCredentials):
(WebCore::NetworkJob::storeCredentials):
(WebCore):
(WebCore::NetworkJob::purgeCredentials):
(WebCore::NetworkJob::notifyChallengeResult):
(WebCore::NetworkJob::updateCurrentWebChallenge):
* platform/network/blackberry/NetworkJob.h:
(NetworkJob):
* platform/network/blackberry/NetworkManager.cpp:
(WebCore::setAuthCredentials):
(WebCore):
(WebCore::NetworkManager::startJob):
2013-01-30 Oliver Hunt <oliver@apple.com>
Make JSEventListener more robust in the event of the compiled handler being released.
https://bugs.webkit.org/show_bug.cgi?id=108390
Reviewed by Michael Saboff.
It shouldn't be possible for a handler to be collected for any object that
might still trigger an event. Nonetheless it does still happen, and the
only point of failure that currently exists is compiling the handler.
This patch is mostly just assertions, but also removes a bunch of field
clearing that was previously being performed. Given we do seem to periodically
end up needing to recompile a handler this appears to be necessary. That
said there does not appear to be a memory hit from this as the event handlers
that make us use JSLazyEventListener are not frequently compiled, and the bulk
of the functions that are compiled end up causing us to keep the strings around
anyway.
* bindings/js/JSLazyEventListener.cpp:
(WebCore::JSLazyEventListener::JSLazyEventListener):
(WebCore::JSLazyEventListener::initializeJSFunction):
2013-01-30 Kentaro Hara <haraken@chromium.org>
Implement KeyboardEvent constructor
https://bugs.webkit.org/show_bug.cgi?id=108320
Reviewed by Adam Barth.
This patch implements KeyboardEvent constructor under a DOM4_EVENTS_CONSTRUCTOR flag,
which is enabled on Chromium and Safari.
This significantly simplifies a code to construct a KeyboardEvent.
Before:
e = document.createEvent("KeyboardEvent");
e.initKeyboardEvent("keypress", true, true, null, false, false, false, false, 0, 0);
After:
e = new KeyboardEvent("keypress");
Editor's draft: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm
- 'char' and 'code' are not yet supported due to lack of WebCore implementation.
- 'altGraphKey' is not supported because it's an extended attribute in WebKit
and is not speced.
- Renamed keyboard event constant variables to avoid style errors.
Test: fast/events/constructors/keyboard-event-constructor.html
* dom/KeyboardEvent.cpp:
(WebCore::keyLocationCode):
(WebCore::KeyboardEventInit::KeyboardEventInit):
(WebCore):
(WebCore::KeyboardEvent::KeyboardEvent):
* dom/KeyboardEvent.h:
(WebCore):
(WebCore::KeypressCommand::KeypressCommand):
(KeypressCommand):
(KeyboardEventInit):
(KeyboardEvent):
(WebCore::KeyboardEvent::create):
(WebCore::KeyboardEvent::keyIdentifier):
(WebCore::KeyboardEvent::keyLocation):
(WebCore::KeyboardEvent::altGraphKey):
(WebCore::KeyboardEvent::keyEvent):
(WebCore::KeyboardEvent::keypressCommands):
* dom/KeyboardEvent.idl:
2013-01-30 Joshua Bell <jsbell@chromium.org>
IndexedDB: IDBKeyRange::isOnlyKey() does pointer equality comparison
https://bugs.webkit.org/show_bug.cgi?id=107582
Reviewed by Tony Chang.
Per the bug title, IDBKeyRange::isOnlyKey() was testing the upper/lower pointers to
determine if this was a "trivial" range, which can be used to fast-path lookups. This
is insufficient in multi-process ports where range values may be thrown across the wire.
This is addressed by using the existing key equality tests.
In addition, the bounds type check incorrectly checked m_lowerType == LowerBoundOpen, which
meant the function could never return true (since upper == lower implies closed bounds).
Therefore, the fast-path case wasn't used even in single-process ports (e.g. DRT). The
slow-path case contructed a backing store cursor over the range, and exited early if the
cursor yielded nothing. The fast-path case doesn't need to create a cursor, so needs to
deal with lookup misses. This revealed two similar (but trivial) lurking bugs in the
fast-path.
No new behavior; covered by tests such as: storage/indexeddb/get-keyrange.html
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::getRecord): Handle backing store read miss case.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::GetOperation::perform): Handle backing store read miss case.
* Modules/indexeddb/IDBKeyRange.cpp:
(WebCore::IDBKeyRange::isOnlyKey): Compare keys by value, not pointer, correct
type checks, add assertions.
* Modules/indexeddb/IDBKeyRange.h:
(IDBKeyRange): Move implementation to CPP file.
2013-01-30 Joe Mason <jmason@rim.com>
[BlackBerry] Never store empty credentials in NetworkJob::storeCredentials
https://bugs.webkit.org/show_bug.cgi?id=108387
Reviewed by Yong Li.
There is a code path that can cause NetworkJob::storeCredentials to be called with empty
credentials, causing the existing credentials to be overwritten even though authentication
succeeded. PR 287791 has been filed to investigate why this happens; in the meantime, ignore empty
credentials.
Internal PR: 281172
Internally Reviewed By: Leo Yang
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::storeCredentials):
2013-01-30 Andy Estes <aestes@apple.com>
ContentFilter should be a ref-counted class
https://bugs.webkit.org/show_bug.cgi?id=108392
Reviewed by David Kilzer.
* loader/MainResourceLoader.h:
(MainResourceLoader): Store a RefPtr to m_contentFilter.
* platform/ContentFilter.h: Inherit from RefCounted<ContentFilter>.
* platform/mac/ContentFilterMac.mm:
(WebCore::ContentFilter::create): Return a PassRefPtr.
2013-01-30 Tim Horton <timothy_horton@apple.com>
[mac] ImageBuffer should create accelerated buffers for small canvases, but we shouldn't force them to create compositing layers
https://bugs.webkit.org/show_bug.cgi?id=107804
<rdar://problem/11752381>
Reviewed by Simon Fraser.
Make all canvases IOSurface-backed if requested, instead of having a size threshold
under which we won't use accelerated canvas.
Make requiresCompositingForCanvas take the size of the canvas into account, using
the threshold which was previously in ImageBuffer to determine whether or not a
canvas should be forced into a compositing layer.
This improves canvas performance on some benchmarks
(http://www.mikechambers.com/html5/javascript/QuadTree/examples/collision.html, for example)
significantly, in cases where canvases which fall below the size limit
(and thus are unaccelerated) are being drawn rapidly into either accelerated
tiles or another accelerated canvas, by preventing excessive copying to/from the GPU.
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore):
(WebCore::ImageBuffer::ImageBuffer):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForCanvas):
2013-01-30 Alec Flett <alecflett@chromium.org>
IndexedDB: clean up scheduleTask return type
https://bugs.webkit.org/show_bug.cgi?id=108361
Reviewed by Tony Chang.
This is just a code simplification now that the
synchronous consumers of scheduleTask are gone.
No new tests: pure refactor.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::setIndexesReady):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::scheduleTask):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(WebCore::IDBTransactionBackendImpl::scheduleTask):
(IDBTransactionBackendImpl):
2013-01-30 Simon Fraser <simon.fraser@apple.com>
Elements that dynamically become fixed sometimes jump to the top left on scrolling
https://bugs.webkit.org/show_bug.cgi?id=108389
Reviewed by Beth Dakin.
When an element became position:fixed and gained a compositing layer
as a result, we would compute its viewport constraints (including the
last GraphicsLayer position) before we had actually updated the GraphicsLayer
geometry for the first time. This would cause a jump to 0,0 on scrolling.
Fix by removing the call to updateViewportConstraintStatus() just after
creating the backing. Instead, hook in to registerScrollingLayers(),
which is called on every geometry update, to update the viewport
constraints for this layer.
Tested via existing tests, which now show correct positions at last
layout.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::registerScrollingLayers):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBacking):
2013-01-30 Adam Barth <abarth@webkit.org>
HTMLDocumentParser::insert should be aware of threaded parsing
https://bugs.webkit.org/show_bug.cgi?id=107764
Reviewed by Eric Seidel.
This patch is an incremental step towards recovering from
document.write invalidating our speculative parsing buffer. The
approach I've taken is to make it possible to transfer the
HTMLDocumentParser's HTMLTokenizer and HTMLToken to the background
thread. To make that possible, I've taught the HTMLDocumentParser how
to operate without a tokenizer or a token.
Not having a tokenizer or a token while parsing in the background also
helps us avoid accidentially feeding input to the main thread's
tokenizer when we're supposed to feed it to the background thread.
This patch shouldn't have any behavior change (other than possibly
fixing a crash in fast/parser when threading parsing is enabled).
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::didFailSpeculation):
(WebCore):
(WebCore::HTMLDocumentParser::insert):
(WebCore::HTMLDocumentParser::finish):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::constructTree):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
(WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
(WebCore::HTMLTreeBuilder::processScriptStartTag):
* html/parser/TextDocumentParser.cpp:
(WebCore::TextDocumentParser::TextDocumentParser):
2013-01-30 Rafael Weinstein <rafaelw@chromium.org>
[HTMLTemplateElement] prevent the parser from removing nodes from the content when the foster agency is processing formatting elements
https://bugs.webkit.org/show_bug.cgi?id=108377
Reviewed by Adam Barth.
https://dvcs.w3.org/hg/webcomponents/raw-file/50ce1f368c1a/spec/templates/index.html#in-body-addition
callTheAdoptionAgency now appends to the template's content when it previously would have appended to the template element itself.
New test added to html5lib.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::parserAppendChild):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2013-01-30 Mark Lam <mark.lam@apple.com>
DatabaseContext should implement ThreadSafeRefCounted.
https://bugs.webkit.org/show_bug.cgi?id=108285.
Reviewed by Alexey Proskuryakov.
DatabaseManager::interruptAllDatabasesForContext() can ref a
DatabaseContext from another thread. Hence, the DatabaseContext needs
to be a ThreadSafeRefCounted instead of a RefCounted.
No new tests.
* Modules/webdatabase/DatabaseContext.h:
2013-01-30 Kentaro Hara <haraken@chromium.org>
Implement WheelEvent constructor
https://bugs.webkit.org/show_bug.cgi?id=108303
Reviewed by Adam Barth.
Editor's draft: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm
This patch implements UIEvent constructor under a DOM4_EVENTS_CONSTRUCTOR flag,
which is enabled on Chromium and Safari.
Test: fast/events/constructors/wheel-event-constructor.html
* dom/WheelEvent.cpp:
(WebCore::WheelEventInit::WheelEventInit):
(WebCore):
(WebCore::WheelEvent::WheelEvent):
(WebCore::WheelEvent::initWheelEvent):
* dom/WheelEvent.h:
(WheelEventInit):
(WebCore):
(WheelEvent):
(WebCore::WheelEvent::create):
(WebCore::WheelEvent::wheelDelta):
(WebCore::WheelEvent::wheelDeltaX):
(WebCore::WheelEvent::wheelDeltaY):
(WebCore::WheelEvent::rawDeltaX):
(WebCore::WheelEvent::rawDeltaY):
(WebCore::WheelEvent::granularity):
(WebCore::WheelEvent::webkitDirectionInvertedFromDevice):
(WebCore::WheelEvent::isHorizontal):
* dom/WheelEvent.idl:
2013-01-30 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Support 'auto' sized grid items
https://bugs.webkit.org/show_bug.cgi?id=103332
Reviewed by Tony Chang.
Tests: fast/css-grid-layout/auto-content-resolution-columns.html
fast/css-grid-layout/auto-content-resolution-rows.html
The specification interprets 'auto' as minmax(min-content, max-content).
Because we stored the grid definitions as an 'auto' length, we wouldn't
handle it properly during layout.
This change makes us do the translation when we query the information for
layout.
* rendering/style/GridTrackSize.h:
(WebCore::GridTrackSize::minTrackBreadth):
(WebCore::GridTrackSize::maxTrackBreadth):
Translate 'auto' to minmax(min-content, max-content). This works as getComputedStyle
still sees the GridTrackSize as a single length and thus query length() instead of the
individual component of minmax().
2013-01-30 Alec Flett <alecflett@chromium.org>
IndexedDB: Avoid crashing when deleting indexes
https://bugs.webkit.org/show_bug.cgi?id=108356
Reviewed by Tony Chang.
It is reasonable that the backend aborts a transaction before
the frontend is aware, depending on the timing of events. This
allows the transactionId to be invalid rather than asserting.
Test: storage/indexeddb/createIndex-after-failure.html
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::createObjectStore):
(WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
(WebCore::IDBDatabaseBackendImpl::createIndex):
(WebCore::IDBDatabaseBackendImpl::deleteIndex):
(WebCore::IDBDatabaseBackendImpl::get):
(WebCore::IDBDatabaseBackendImpl::put):
(WebCore::IDBDatabaseBackendImpl::setIndexKeys):
(WebCore::IDBDatabaseBackendImpl::setIndexesReady):
(WebCore::IDBDatabaseBackendImpl::openCursor):
(WebCore::IDBDatabaseBackendImpl::count):
(WebCore::IDBDatabaseBackendImpl::deleteRange):
(WebCore::IDBDatabaseBackendImpl::clear):
2013-01-30 Kentaro Hara <haraken@chromium.org>
isSameAsCurrentState() should take SerializedScriptValue* instead of PassRefPtr
https://bugs.webkit.org/show_bug.cgi?id=107904
Reviewed by Darin Adler.
Applied Darin's comment: https://bugs.webkit.org/show_bug.cgi?id=107904#c5
No tests. No change in behavior.
* bindings/js/JSPopStateEventCustom.cpp:
(WebCore::JSPopStateEvent::state):
* bindings/v8/custom/V8PopStateEventCustom.cpp:
(WebCore::V8PopStateEvent::stateAccessorGetter):
* page/History.cpp:
(WebCore::History::isSameAsCurrentState):
* page/History.h:
(History):
2013-01-30 Douglas Stockwell <dstockwell@chromium.org>
Remove unnecessary setAnimating() method
https://bugs.webkit.org/show_bug.cgi?id=107495
Reviewed by Dean Jackson.
The corresponding accessor and uses were removed in r39211.
No new tests: no change in behaviour.
* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::AnimationBase):
* page/animation/AnimationBase.h:
(AnimationBase):
* page/animation/CompositeAnimation.cpp:
* page/animation/CompositeAnimation.h:
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::animate):
* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::animate):
2013-01-30 Elliott Sprehn <esprehn@chromium.org>
Clean up interface to ShadowRoot
https://bugs.webkit.org/show_bug.cgi?id=108300
Reviewed by Dimitri Glazkov.
Lots of general clean up to ShadowRoot removing unused headers and forward
declarations, moving short inline methods into the class definition so it's
easier to understand what methods do what, and replacing macros with methods
with inline methods.
No new tests, just refactoring.
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::addShadowRoot):
(WebCore::ElementShadow::removeAllShadowRoots):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
(WebCore::ShadowRoot::setInnerHTML): Use isOrphan instead of macro.
(WebCore::ShadowRoot::setApplyAuthorStyles): Use isOrphan instead of macro.
(WebCore::ShadowRoot::setResetStyleInheritance): Use isOrphan instead of macro.
(WebCore::ShadowRoot::childrenChanged): Use isOrphan instead of macro.
* dom/ShadowRoot.h:
(WebCore::ShadowRoot::setHost): Removed.
(WebCore::ShadowRoot::host):
(WebCore::ShadowRoot::owner):
(ShadowRoot):
(WebCore::ShadowRoot::isOrphan): Replacement of GuardOrphanShadowRoot macro.
2013-01-30 Ryosuke Niwa <rniwa@webkit.org>
Apple's internal PLT test suite doesn't finish after r141136
https://bugs.webkit.org/show_bug.cgi?id=108380
Reviewed by Alexey Proskuryakov.
Temporarily disable the feature to see if that fixes it.
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
2013-01-30 Florin Malita <fmalita@chromium.org>
[Chromium] Unreviewed gardening.
Attempted Mac build fix after http://trac.webkit.org/changeset/141291.
* platform/graphics/harfbuzz/HarfBuzzFaceCoreText.cpp:
(WebCore::harfBuzzCoreTextGetFontFuncs):
2013-01-30 Philip Rogers <pdr@google.com>
Track scale and zoom together when drawing SVG images
https://bugs.webkit.org/show_bug.cgi?id=108108
Reviewed by Tim Horton.
This patch refactors SVGImage::drawSVGToImageBuffer to take a single zoomAndScale parameter
and removes two messy calls to setPageZoomFactor. This patch makes progress towards an
SVG image cache keyed on just container size and scale.
This refactoring is covered by existing tests.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::setContainerSizeForRenderer):
(WebCore::CachedImage::imageSizeForRenderer):
This complex logic has been refactored out of CachedImage and into SVGImageCache.
In addition to the code move, we no longer divide by the zoom factor because the
container size is stored without zoom.
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawSVGToImageBuffer):
This method signature has changed to take a FloatSize for the container size and
a combined zoom and scale parameter (zoomAndScale). A FloatSize is needed for the
container size because we now store the container size unzoomed, and in this process
we do not want to lose precision.
The messy setPageZoomFactor calls have also been removed which cleans this function up.
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageCache.cpp:
(WebCore::SVGImageCache::setContainerSizeForRenderer):
This function now stores the container size unzoomed. The container size was changed
to a FloatSize so that precision is not lost.
(WebCore::SVGImageCache::imageSizeForRenderer):
Note that the ImageBuffer size will stay the same. We now store the size as:
containerSize (without zoom) * zoom * scale
Previously this was:
containerSize (with zoom) * scale
(WebCore::SVGImageCache::redraw):
(WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
* svg/graphics/SVGImageCache.h:
(WebCore::SVGImageCache::SizeAndScales::SizeAndScales):
(SizeAndScales):
(SVGImageCache):
2013-01-30 Benjamin Poulain <benjamin@webkit.org>
Do not convert to String->AtomicString for NamedNodeMap
https://bugs.webkit.org/show_bug.cgi?id=108289
Reviewed by Kentaro Hara.
NamedNodeMap's API was taking a WTF::String. Internally, attribute
names are AtomicString.
The conversions String->AtomicString was causing an additional ref-deref
for the JS/V8 bindings. And could cause an additional memory allocation for the Objective-C
bindings.
This patch changes the API to use AtomicString, and update the custom bindings accordingly.
* bindings/js/JSNamedNodeMapCustom.cpp:
(WebCore::JSNamedNodeMap::canGetItemsForName):
(WebCore::JSNamedNodeMap::nameGetter):
* bindings/v8/custom/V8NamedNodeMapCustom.cpp:
(WebCore::V8NamedNodeMap::namedPropertyGetter):
* dom/NamedNodeMap.cpp:
(WebCore::NamedNodeMap::getNamedItem):
(WebCore::NamedNodeMap::getNamedItemNS):
(WebCore::NamedNodeMap::removeNamedItem):
(WebCore::NamedNodeMap::removeNamedItemNS):
* dom/NamedNodeMap.h:
(NamedNodeMap):
2013-01-30 Zan Dobersek <zdobersek@igalia.com>
[GTK] http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type.html is failing
https://bugs.webkit.org/show_bug.cgi?id=108100
Reviewed by Tony Gentilcore.
Similarly to the changes to V8 bindings in r140882, wrap the PerformanceEntry
as a PerformanceMark or PerformanceMeasure if possible.
No new tests - the relevant test now passes.
* bindings/js/JSPerformanceEntryCustom.cpp:
(WebCore::toJS):
2013-01-30 Adam Klein <adamk@chromium.org>
[JSC] MutationObservers should not create circular, leaky references
https://bugs.webkit.org/show_bug.cgi?id=93661
Reviewed by Adam Barth.
This patch makes JSMutationCallback an entirely-custom class that
holds a weak reference to the function it wraps. To keep that function
alive, it also adds a PrivateName between the JSMutationObserver
wrapper and the function when the MutationObserver is constructed.
Unlike the generated JSC callbacks, JSMutationCallback doesn't hold a
reference to the JSDOMGlobalObject, instead holding the
DOMWrapperWorld it was created in. As an ActiveDOMCallback, it also
holds a weak pointer to ScriptExecutionContext (via ContextDestructionObserver).
It's not clear to me how to write a test for this. There's an existing
manual test in ManualTests/leak-cycle-observer-wrapper.html which may
be of use but which doesn't seem to currently give meaningful output.
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* UseJSC.cmake:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSMutationCallback.cpp: Added.
(WebCore):
(WebCore::JSMutationCallback::JSMutationCallback):
(WebCore::JSMutationCallback::~JSMutationCallback):
(WebCore::JSMutationCallback::handleEvent):
* bindings/js/JSMutationCallback.h: Added.
(WebCore):
(JSMutationCallback): Instead of a JSCallbackData, hold a weak ref to the callback and a RefPtr to the DOMWrapperWorld.
(WebCore::JSMutationCallback::create):
* bindings/js/JSMutationCallbackCustom.cpp: Removed.
* bindings/js/JSMutationObserverCustom.cpp:
(WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
When constructing the JSMutationObserver, add a reference via PrivateName from the MutationObserver to the callback function.
* dom/MutationCallback.idl: Removed. Neither JSC nor V8 use an IDL file to generate this class any more.
2013-01-30 Elliott Sprehn <esprehn@chromium.org>
Remove willAddAuthorShadowRoot and replace with alwaysCreateUserAgentShadowRoot
https://bugs.webkit.org/show_bug.cgi?id=108248
Reviewed by Dimitri Glazkov.
The only reason willAddAuthorShadowRoot exists is so that a handful of
other elements can create the user agent shadow root right before the
author shadow root is created. Instead of providing this generic hook
just expose a virtual method on Element that requests this behavior.
No new tests, just refactoring.
* dom/Element.cpp:
(WebCore::Element::createShadowRoot):
* dom/Element.h:
(Element):
(WebCore::Element::alwaysCreateUserAgentShadowRoot): Added.
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::addShadowRoot): Remove willAddAuthorShadowRoot notification.
* html/HTMLButtonElement.cpp:
* html/HTMLButtonElement.h:
* html/HTMLFormControlElement.cpp:
* html/HTMLFormControlElement.h:
* html/HTMLMediaElement.cpp:
* html/HTMLMediaElement.h:
2013-01-30 Dominik Röttsches <dominik.rottsches@intel.com>
[HarfBuzz] Naming fixes after removing old HarfBuzz code
https://bugs.webkit.org/show_bug.cgi?id=108170
Reviewed by Tony Chang.
Since the old harfbuzz code is gone in r141241, it makes sense to get rid
of the now unnecessray NG suffix in a number of places. While at it,
I am also fixing some naming inconsistencies.
Renamed all occurences of HarfBuzzNG* to HarfBuzz*,
renamed lowercase variants of harfbuzz* in variable and function names to camel-case harfBuzz*,
moved files in platform/graphics/harfbuzz/ng/* one level up and removed ng folder.
Updated corresponding entries in Chromium, GTK and EFL build system files.
No new tests, no change in behavior.
* GNUmakefile.list.am:
* PlatformEfl.cmake:
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* platform/graphics/FontPlatformData.cpp:
* platform/graphics/FontPlatformData.h:
(WebCore):
(FontPlatformData):
* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::platformDataInit):
(WebCore::FontPlatformData::platformDataAssign):
(WebCore::FontPlatformData::harfBuzzFace):
* platform/graphics/freetype/FontPlatformData.h:
(FontPlatformData):
* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
(WebCore::FontPlatformData::operator=):
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::harfBuzzFace):
* platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::operator=):
(WebCore::FontPlatformData::harfBuzzFace):
* platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
(WebCore):
(FontPlatformData):
* platform/graphics/harfbuzz/HarfBuzzFace.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp.
(WebCore):
(FaceCacheEntry):
(WebCore::FaceCacheEntry::create):
(WebCore::FaceCacheEntry::~FaceCacheEntry):
(WebCore::FaceCacheEntry::face):
(WebCore::FaceCacheEntry::glyphCache):
(WebCore::FaceCacheEntry::FaceCacheEntry):
(WebCore::harfBuzzFaceCache):
(WebCore::HarfBuzzFace::HarfBuzzFace):
(WebCore::HarfBuzzFace::~HarfBuzzFace):
(WebCore::findScriptForVerticalGlyphSubstitution):
(WebCore::HarfBuzzFace::setScriptForVerticalGlyphSubstitution):
* platform/graphics/harfbuzz/HarfBuzzFace.h: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h.
(WebCore):
(HarfBuzzFace):
(WebCore::HarfBuzzFace::create):
* platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCairo.cpp.
(WebCore):
(CairoFtFaceLocker):
(WebCore::CairoFtFaceLocker::CairoFtFaceLocker):
(WebCore::CairoFtFaceLocker::lock):
(WebCore::CairoFtFaceLocker::~CairoFtFaceLocker):
(WebCore::floatToHarfBuzzPosition):
(WebCore::doubleToHarfBuzzPosition):
(WebCore::CairoGetGlyphWidthAndExtents):
(WebCore::harfBuzzGetGlyph):
(WebCore::harfBuzzGetGlyphHorizontalAdvance):
(WebCore::harfBuzzGetGlyphHorizontalOrigin):
(WebCore::harfBuzzGetGlyphExtents):
(WebCore::harfBuzzCairoTextGetFontFuncs):
(WebCore::harfBuzzCairoGetTable):
(WebCore::HarfBuzzFace::createFace):
(WebCore::HarfBuzzFace::createFont):
(WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
* platform/graphics/harfbuzz/HarfBuzzFaceCoreText.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCoreText.cpp.
(WebCore):
(WebCore::floatToHarfBuzzPosition):
(WebCore::getGlyph):
(WebCore::getGlyphHorizontalAdvance):
(WebCore::getGlyphHorizontalOrigin):
(WebCore::getGlyphExtents):
(WebCore::harfbuzzCoreTextGetFontFuncs):
(WebCore::releaseTableData):
(WebCore::harfBuzzCoreTextGetTable):
(WebCore::HarfBuzzFace::createFace):
(WebCore::HarfBuzzFace::createFont):
(WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
* platform/graphics/harfbuzz/HarfBuzzFaceSkia.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp.
(WebCore):
(WebCore::HarfBuzzFontData::HarfBuzzFontData):
(HarfBuzzFontData):
(WebCore::SkiaScalarToHarfBuzzPosition):
(WebCore::SkiaGetGlyphWidthAndExtents):
(WebCore::harfBuzzGetGlyph):
(WebCore::harfBuzzGetGlyphHorizontalAdvance):
(WebCore::harfBuzzGetGlyphHorizontalOrigin):
(WebCore::harfBuzzGetGlyphExtents):
(WebCore::harfBuzzSkiaGetFontFuncs):
(WebCore::harfBuzzSkiaGetTable): Also fixed style checker whitespace complaint / indentation.
(WebCore::destroyHarfBuzzFontData):
(WebCore::HarfBuzzFace::createFace):
(WebCore::HarfBuzzFace::createFont):
(WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
* platform/graphics/harfbuzz/HarfBuzzShaper.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp.
(WebCore):
(HarfBuzzScopedPtr):
(WebCore::HarfBuzzScopedPtr::HarfBuzzScopedPtr):
(WebCore::HarfBuzzScopedPtr::~HarfBuzzScopedPtr):
(WebCore::HarfBuzzScopedPtr::get):
(WebCore::harfBuzzPositionToFloat):
(WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
(WebCore::HarfBuzzShaper::HarfBuzzRun::applyShapeResult):
(WebCore::HarfBuzzShaper::HarfBuzzRun::setGlyphAndPositions):
(WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition):
(WebCore::HarfBuzzShaper::HarfBuzzRun::xPositionForOffset):
(WebCore::normalizeCharacters):
(WebCore::HarfBuzzShaper::HarfBuzzShaper):
(WebCore::HarfBuzzShaper::~HarfBuzzShaper):
(WebCore::HarfBuzzShaper::setDrawRange):
(WebCore::HarfBuzzShaper::setFontFeatures):
(WebCore::HarfBuzzShaper::shape):
(WebCore::HarfBuzzShaper::adjustStartPoint):
(WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
(WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
(WebCore::HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun):
(WebCore::HarfBuzzShaper::fillGlyphBufferFromHarfBuzzRun):
(WebCore::HarfBuzzShaper::fillGlyphBuffer):
(WebCore::HarfBuzzShaper::offsetForPosition):
(WebCore::HarfBuzzShaper::selectionRect):
* platform/graphics/harfbuzz/HarfBuzzShaper.h: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzShaper.h.
(WebCore):
(HarfBuzzShaper):
(WebCore::HarfBuzzShaper::totalWidth):
(HarfBuzzRun):
(WebCore::HarfBuzzShaper::HarfBuzzRun::create):
(WebCore::HarfBuzzShaper::HarfBuzzRun::setWidth):
(WebCore::HarfBuzzShaper::HarfBuzzRun::fontData):
(WebCore::HarfBuzzShaper::HarfBuzzRun::startIndex):
(WebCore::HarfBuzzShaper::HarfBuzzRun::numCharacters):
(WebCore::HarfBuzzShaper::HarfBuzzRun::numGlyphs):
(WebCore::HarfBuzzShaper::HarfBuzzRun::glyphs):
(WebCore::HarfBuzzShaper::HarfBuzzRun::advances):
(WebCore::HarfBuzzShaper::HarfBuzzRun::offsets):
(WebCore::HarfBuzzShaper::HarfBuzzRun::glyphToCharacterIndexes):
(WebCore::HarfBuzzShaper::HarfBuzzRun::width):
(WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
(WebCore::HarfBuzzShaper::HarfBuzzRun::script):
2013-01-30 Tony Chang <tony@chromium.org>
REGRESSION(r136324): Flexbox should relayout flex children when width changes
https://bugs.webkit.org/show_bug.cgi?id=108231
Reviewed by Ojan Vafai.
If the width of a block changes, we need to set relayoutChildren = true
to relayout the children. This broke when we optimized the layout calls
in layoutAndPlaceChildren.
Test: css3/flexbox/width-change-and-relayout-children.html
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock): Also reorder the code to match RenderBlock.
The bug fix is to use updateLogicalWidthAndColumnWidth() and its return value to set
relayoutChildren = true.
2013-01-30 Tim Horton <timothy_horton@apple.com>
GraphicsContext3DCG needs to copy image data in paintToCanvas
https://bugs.webkit.org/show_bug.cgi?id=108310
Reviewed by Simon Fraser.
Make the CG implementation of GraphicsContext3D::paintToCanvas copy image data
before drawing if we're drawing into an accelerated context, matching the fix made
in http://trac.webkit.org/changeset/106095 for 2D canvas.
No new tests, depends on acceleration and would be flaky at best.
* platform/graphics/GraphicsContext3D.h:
(GraphicsContext3D): Make CG's paintToCanvas take a GraphicsContext instead of a CGContextRef.
* platform/graphics/cg/GraphicsContext3DCG.cpp:
(WebCore::releaseImageData): Added.
(WebCore::GraphicsContext3D::paintToCanvas): Copy image data if the destination is
an accelerated context. Also, use GraphicsContext API instead of CGContext.
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
2013-01-29 Jer Noble <jer.noble@apple.com>
MediaPlayerPrivateQTKit claims it supports application/x-diskcopy, breaking downloads.
https://bugs.webkit.org/show_bug.cgi?id=108237
Reviewed by Eric Carlson.
Disclaim any non-'video/' or 'audio/' types which QTKit purports to support.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::addFileTypesToCache):
2013-01-30 Florin Malita <fmalita@chromium.org>
Do not restart the matched properties cache timer if active
https://bugs.webkit.org/show_bug.cgi?id=108345
Reviewed by Andreas Kling.
StyleResolver::addToMatchedPropertiesCache() keeps resetting the timer as more than
matchedDeclarationCacheAdditionsBetweenSweeps entries are added. When armed, we should let
the timer expire at its scheduled time - otherwise it may never get a chance to fire if
entries keep getting added.
No new tests. This is a long lived timer (1min) which makes testing impractical.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::addToMatchedPropertiesCache):
2013-01-30 Simon Fraser <simon.fraser@apple.com>
Temporarily disable assertions related to clip rect computation in RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=108265
Reviewed by Dean Jackson.
These assertions are killing the test bots, so disable them temporarily
until we figure out the underlying bug (tracked by https://bugs.webkit.org/show_bug.cgi?id=103432).
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
2013-01-30 Elliott Sprehn <esprehn@chromium.org>
Element::areAuthorShadowsAllowed should be private
https://bugs.webkit.org/show_bug.cgi?id=108298
Reviewed by Darin Adler.
There's no reason for areAuthorShadowsAllowed to be exposed publically
on Element since it just controls the behavior of createShadowRoot. Make
it private and fix all places where it wasn't in subclasses.
No new tests, just refactoring.
* dom/Element.h:
(WebCore::Element::areAuthorShadowsAllowed): Made private.
* html/HTMLFrameElementBase.h:
(HTMLFrameElementBase):
* html/HTMLInputElement.h:
(HTMLInputElement):
* html/HTMLMediaElement.h:
(HTMLMediaElement):
* html/HTMLPlugInElement.h:
(HTMLPlugInElement):
* svg/SVGElement.h:
(SVGElement):
2013-01-30 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Script Profiler: Make profiler output typed.
https://bugs.webkit.org/show_bug.cgi?id=102792
Reviewed by Yury Semikhatsky.
Currently fields "head" and "bottomUpHead" of Profile object
returned by Profiler.getCPUProfile is untyped (type = object).
That's not good both for client side (protocol users may
only guess on output content) and backend side (field names
are hardcoded in source code).
This patch defines "head" and "bottomUpHead" to be of new
"CPUProfileNode" type and updates serialization code to use
builders to create output.
* bindings/js/ScriptProfile.cpp: Used buiders for serialization.
* bindings/js/ScriptProfile.h: Ditto.
* bindings/v8/ScriptProfile.cpp: Ditto.
* bindings/v8/ScriptProfile.h: Ditto.
* inspector/Inspector.json: Added and used new ProfileNode type.
2013-01-30 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: remove NativeHeapGraph.js
https://bugs.webkit.org/show_bug.cgi?id=108342
Reviewed by Pavel Feldman.
NativeHeapGraph.js was removed as NativeHeapSnapshot.js provides more
features and shares its implementation with JSHeapSnapshot.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/NativeHeapGraph.js: Removed.
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeSnapshotProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
(WebInspector.NativeSnapshotProfileType.prototype.buttonClicked):
(WebInspector.NativeSnapshotProfileHeader.prototype.startSnapshotTransfer):
* inspector/front-end/ProfilesPanel.js:
* inspector/front-end/WebKit.qrc:
2013-01-30 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Sidebar splitter is invisible in Elements and Sources panels
https://bugs.webkit.org/show_bug.cgi?id=108331
Reviewed by Pavel Feldman.
This was a regression caused by https://bugs.webkit.org/show_bug.cgi?id=108181.
The splitter element did not get the correct class at the initialization.
* inspector/front-end/SidebarView.js:
(WebInspector.SidebarView):
(WebInspector.SidebarView.prototype._updateSidebarPosition):
2013-01-30 Dmitry Zvorygin <zvorygin@chromium.org>
Web Inspector: Filters on Console panel
https://bugs.webkit.org/show_bug.cgi?id=107813
The problem is that third-party libraries may spam javascript console with internal
messages. Now there's filter context-menu option, which allows to hide/show messages
sent from specific scripts or urls.
Reviewed by Pavel Feldman.
* English.lproj/localizedStrings.js:
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype.appendUndefined):
(WebInspector.ConsoleMessageImpl.prototype._printArray):
(WebInspector.ConsoleMessageImpl.prototype._highlightSearchResultsInElement):
* inspector/front-end/ConsolePanel.js:
(WebInspector.ConsolePanel.prototype.performSearch):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.get this):
(WebInspector.ConsoleView.prototype._consoleMessageAdded):
(WebInspector.ConsoleView.prototype._appendConsoleMessage):
(WebInspector.ConsoleView.prototype._consoleCleared):
(WebInspector.ConsoleView.prototype._handleContextMenuEvent.get var):
(WebInspector.ConsoleView.prototype._handleContextMenuEvent.set get contextMenu):
(WebInspector.ConsoleView.prototype._shouldBeVisible):
(WebInspector.ConsoleView.prototype._updateMessageList):
(WebInspector.ConsoleGroup.prototype.addMessage):
* inspector/front-end/ContextMenu.js:
(WebInspector.ContextMenuItem.prototype.isEnabled):
(WebInspector.ContextMenuItem.prototype.setEnabled):
* inspector/front-end/Settings.js:
2013-01-20 Philippe Normand <pnormand@igalia.com>
[GStreamer] USE(NATIVE_FULLSCREEN_VIDEO) support
https://bugs.webkit.org/show_bug.cgi?id=106760
Reviewed by Gustavo Noronha Silva.
Initial support for NATIVE_FULLSCREEN_VIDEO in the GStreamer media
player. A new FullscreenVideoControllerGStreamer class is
introduced, ports interested to implement native fullscreen video
support should inherit from it (see FullscreenVideoControllerGtk)
and hook it in the MediaPlayerPrivateGStreamer backend.
The GStreamerGWorld port to GStreamer 1.x is partly based on a
patch by Sebastian Dröge <sebastian.droge@collabora.com>.
* GNUmakefile.am: Enable NATIVE_FULLSCREEN_VIDEO support.
* GNUmakefile.list.am: New
FullscreenVideoController{GStreamer,Gtk} modules.
* platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp: Added.
(WebCore):
(WebCore::playerVolumeChangedCallback): Playbin notify::volume
signal callback.
(WebCore::playerMuteChangedCallback): Playbin notify::mute signal callback.
(WebCore::FullscreenVideoControllerGStreamer::FullscreenVideoControllerGStreamer):
(WebCore::FullscreenVideoControllerGStreamer::~FullscreenVideoControllerGStreamer):
(WebCore::FullscreenVideoControllerGStreamer::enterFullscreen):
Switch GStreamerGWorld to full screen, hook in to playbin's
notify::volume and mute signals and initialize the full screen window.
(WebCore::FullscreenVideoControllerGStreamer::exitFullscreen):
Destroy the full screen window, disconnect from playbin signals
and switch GStreamerGWorld out of full screen.
(WebCore::FullscreenVideoControllerGStreamer::exitOnUserRequest):
Trigger exit from full screen mode. This method is meant to be
called when the user explicitely requests to exit from full screen
by pressing a key or something similar.
(WebCore::FullscreenVideoControllerGStreamer::togglePlay): Switch
between play and pause states. Useful for child classes.
(WebCore::FullscreenVideoControllerGStreamer::increaseVolume):
Useful for child classes as well.
(WebCore::FullscreenVideoControllerGStreamer::decreaseVolume): Ditto.
(WebCore::FullscreenVideoControllerGStreamer::setVolume): Ditto.
(WebCore::FullscreenVideoControllerGStreamer::timeToString): Ditto.
* platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.h: Added.
(WebCore):
(FullscreenVideoControllerGStreamer):
(WebCore::FullscreenVideoControllerGStreamer::playStateChanged):
To be implemented by child class to reflect the player's state changed.
(WebCore::FullscreenVideoControllerGStreamer::volumeChanged): To
be implemented by child class as well.
(WebCore::FullscreenVideoControllerGStreamer::muteChanged): Ditto.
(WebCore::FullscreenVideoControllerGStreamer::initializeWindow): Ditto.
(WebCore::FullscreenVideoControllerGStreamer::destroyWindow): Ditto.
* platform/graphics/gstreamer/GStreamerGWorld.cpp:
(WebCore::gstGWorldSyncMessageCallback): Adapt for GStreamer video
overlay API changes.
(WebCore::GStreamerGWorld::GStreamerGWorld):
gst_bus_set_sync_handler takes one more argument in GStreamer 1.x.
(WebCore::GStreamerGWorld::enterFullscreen): ffmpegcolorspace was
renamed to videoconvert in GStreamer 1.x and the tee src pad
template was renamed to src_%u. There is no need to send a new
segment query either.
(WebCore):
(WebCore::gstGWorldPadProbeCallback): Remove the platform video
sink branch once the tee source pad starting it has been blocked.
(WebCore::GStreamerGWorld::exitFullscreen): Refactor to use an
asynchronous pad probe.
(WebCore::GStreamerGWorld::removePlatformVideoSink): Refactored
from exitFullscreen.
(WebCore::GStreamerGWorld::setWindowOverlay): Adapt for GStreamer video
overlay API changes.
* platform/graphics/gstreamer/GStreamerGWorld.h:
(GStreamerGWorld):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
Hook NATIVE_FULLSCREEN_VIDEO support.
(WebCore::MediaPlayerPrivateGStreamer::volume): Playbin volume
query used by the FullscreenVideoController.
(WebCore):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(WebCore):
(MediaPlayerPrivateGStreamer): volume(), muted() and MediaPlayer
accessor methods added. NATIVE_FULLSCREEN_VIDEO methods added as well.
(WebCore::MediaPlayerPrivateGStreamer::canEnterFullscreen):
(WebCore::MediaPlayerPrivateGStreamer::mediaPlayer):
* platform/graphics/gstreamer/PlatformVideoWindow.h: Re-enable
module if NATIVE_FULLSCREEN_VIDEO is turned on.
* platform/graphics/gstreamer/PlatformVideoWindowGtk.cpp: Ditto.
* platform/graphics/gstreamer/VideoSinkGStreamer.cpp: Re-enable
GStreamerGWorld support.
(_WebKitVideoSinkPrivate):
(webkitVideoSinkRender):
* platform/graphics/gstreamer/VideoSinkGStreamer.h: Ditto.
2013-01-30 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: beautify file selector dialog to render as two rows
https://bugs.webkit.org/show_bug.cgi?id=108335
Reviewed by Vsevolod Vlasov.
Go-to-file is now rendered in two rows.
* inspector/front-end/FilteredItemSelectionDialog.js:
(WebInspector.FilteredItemSelectionDialog):
(WebInspector.FilteredItemSelectionDialog.prototype.focus):
(WebInspector.FilteredItemSelectionDialog.prototype.renderAsTwoRows):
(WebInspector.FilteredItemSelectionDialog.prototype._createItemElement):
(WebInspector.OpenResourceDialog.show):
* inspector/front-end/ViewportControl.js:
(WebInspector.ViewportControl):
(WebInspector.ViewportControl.prototype.refresh):
* inspector/front-end/filteredItemSelectionDialog.css:
(.filtered-item-list-dialog > input):
(.filtered-item-list-dialog > div.progress):
(.filtered-item-list-dialog > div.container):
(.filtered-item-list-dialog-item):
(.filtered-item-list-dialog-subtitle):
(.filtered-item-list-dialog-item.one-row .filtered-item-list-dialog-subtitle):
(.filtered-item-list-dialog-item.two-rows):
(.filtered-item-list-dialog-item.selected):
(.filtered-item-list-dialog-item span.highlight):
2013-01-30 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: migrate file selection dialog to the viewport.
https://bugs.webkit.org/show_bug.cgi?id=108313
Reviewed by Vsevolod Vlasov.
Otherwise it takes too long to render.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/FilteredItemSelectionDialog.js:
(WebInspector.FilteredItemSelectionDialog):
(WebInspector.FilteredItemSelectionDialog.prototype.focus):
(WebInspector.FilteredItemSelectionDialog.prototype.onEnter):
(WebInspector.FilteredItemSelectionDialog.prototype._itemsLoaded):
(WebInspector.FilteredItemSelectionDialog.prototype._createItemElement):
(WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
(WebInspector.FilteredItemSelectionDialog.prototype._onKeyDown.updateSelection):
(WebInspector.FilteredItemSelectionDialog.prototype._onKeyDown):
(WebInspector.FilteredItemSelectionDialog.prototype._updateSelection):
(WebInspector.FilteredItemSelectionDialog.prototype._onClick):
(WebInspector.FilteredItemSelectionDialog.prototype._onMouseMove):
(WebInspector.FilteredItemSelectionDialog.prototype.itemCount):
(WebInspector.FilteredItemSelectionDialog.prototype.itemElement):
* inspector/front-end/ViewportControl.js: Added.
(WebInspector.ViewportControl):
(WebInspector.ViewportControl.Provider):
(WebInspector.ViewportControl.Provider.prototype.itemCount):
(WebInspector.ViewportControl.Provider.prototype.itemElement):
(WebInspector.ViewportControl.prototype.contentElement):
(WebInspector.ViewportControl.prototype.refresh):
(WebInspector.ViewportControl.prototype._onScroll):
(WebInspector.ViewportControl.prototype.rowsPerViewport):
(WebInspector.ViewportControl.prototype.firstVisibleIndex):
(WebInspector.ViewportControl.prototype.lastVisibleIndex):
(WebInspector.ViewportControl.prototype.renderedElementAt):
(WebInspector.ViewportControl.prototype.scrollItemIntoView):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/filteredItemSelectionDialog.css:
(.js-outline-dialog .container div.item.selected):
(.js-outline-dialog .container div.item span.highlight):
* inspector/front-end/inspector.html:
2013-01-30 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: implement highlight range API
https://bugs.webkit.org/show_bug.cgi?id=108317
Reviewed by Pavel Feldman.
Test: inspector/editor/text-editor-highlight-api.html
Introduce RangeHighlightDescriptor class and implement Highlight Range
api.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype.removeHighlight):
(WebInspector.DefaultTextEditor.prototype.highlightRange):
(WebInspector.TextEditorMainPanel.prototype.removeHighlight):
(WebInspector.TextEditorMainPanel.prototype.highlightRange):
(WebInspector.TextEditorMainPanel.RangeHighlightDescriptor):
(WebInspector.TextEditorMainPanel.RangeHighlightDescriptor.prototype.affectsLine):
(WebInspector.TextEditorMainPanel.RangeHighlightDescriptor.prototype.rangesForLine):
(WebInspector.TextEditorMainPanel.RangeHighlightDescriptor.prototype.cssClass):
(WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._removeHighlight):
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor.prototype.highlightRange):
(WebInspector.TextEditor.prototype.removeHighlight):
2013-01-30 Simon Hausmann <simon.hausmann@digia.com>
[Qt] Remove QT4_UNICODE related code paths
https://bugs.webkit.org/show_bug.cgi?id=108316
Reviewed by Kenneth Rohde Christiansen.
Get rid of QT4_UNICODE and any related code paths. The Qt port
requires Qt5 and ICU these days. This also allows for the removal
of TextCodecQt.
* Target.pri:
* platform/KURL.cpp:
(WebCore::appendEncodedHostname):
* platform/graphics/SurrogatePairAwareTextIterator.cpp:
(WebCore::SurrogatePairAwareTextIterator::normalizeVoicingMarks):
* platform/text/TextEncoding.cpp:
(WebCore::TextEncoding::encode):
* platform/text/TextEncodingRegistry.cpp:
(WebCore::extendTextCodecMaps):
* platform/text/qt/TextCodecQt.cpp: Removed.
* platform/text/qt/TextCodecQt.h: Removed.
2013-01-30 David Kilzer <ddkilzer@apple.com>
BUILD FIX: Make WebCorePrefix.h build on iOS
<http://webkit.org/b/108224>
Reviewed by Sam Weinig.
* WebCorePrefix.h:
- Include <wtf/Platform.h>.
- Do not include <CoreServices/CoreServices.h> on iOS.
- Include <Foundation/Foundation.h> instead of <Cocoa/Cocoa.h>
on iOS.
2013-01-30 Patrick Gansterer <paroga@webkit.org>
Build fix for WinCE after r141156.
* PlatformWinCE.cmake:
2013-01-30 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] support instrumenting canvases in iframes (frontend side)
https://bugs.webkit.org/show_bug.cgi?id=108319
Reviewed by Pavel Feldman.
Add a frame selector to choose between frames with canvases. Show this selector in the status
bar only if there are 2 or more frames with canvses. Otherwise, assume silently the only
frame with canvases (most common use case).
* English.lproj/localizedStrings.js:
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileType):
(WebInspector.CanvasProfileType.prototype.get statusBarItems):
(WebInspector.CanvasProfileType.prototype._runSingleFrameCapturing):
(WebInspector.CanvasProfileType.prototype._startFrameCapturing):
(WebInspector.CanvasProfileType.prototype._frameAdded):
(WebInspector.CanvasProfileType.prototype._addFrame):
(WebInspector.CanvasProfileType.prototype._frameRemoved):
(WebInspector.CanvasProfileType.prototype._contextCreated):
(WebInspector.CanvasProfileType.prototype._selectedFrameId):
(WebInspector.CanvasProfileType.prototype._dispatchViewUpdatedEvent):
(WebInspector.CanvasDispatcher):
(WebInspector.CanvasDispatcher.prototype.contextCreated):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfileType.prototype.createProfile):
(WebInspector.ProfilesPanel.prototype._onProfileTypeSelected):
(WebInspector.ProfilesPanel.prototype._updateProfileTypeSpecificUI):
(WebInspector.ProfilesPanel.prototype._registerProfileType):
* inspector/front-end/StatusBarButton.js:
(WebInspector.StatusBarComboBox.prototype.size):
2013-01-30 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Change the Elements panel sidebar layout based on its aspect ratio.
https://bugs.webkit.org/show_bug.cgi?id=108181
Reviewed by Pavel Feldman.
Sidebar aspect ratio proved to be a better trigger for the sidebar layout change that the docking mode.
Moved the sidebar layout handling completely into WebInspector.SidebarView which now only accepts
two positions: Start (corresponding to Left or Top) and End (corresponding to Right or Bottom).
No new tests.
* inspector/front-end/CSSNamedFlowCollectionsView.js:
(WebInspector.CSSNamedFlowCollectionsView):
* inspector/front-end/DockController.js:
(WebInspector.DockController.prototype._updateUI):
(WebInspector.DockController.prototype._toggleDockState):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.onResize):
* inspector/front-end/FileSystemView.js:
(WebInspector.FileSystemView):
* inspector/front-end/MemoryStatistics.js:
* inspector/front-end/Panel.js:
(WebInspector.Panel.prototype.createSidebarView):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/SidebarView.js:
(WebInspector.SidebarView):
(WebInspector.SidebarView.prototype.setAutoOrientation):
(WebInspector.SidebarView.prototype._updateSidebarPosition):
(WebInspector.SidebarView.prototype.onResize):
2013-01-30 Patrick Gansterer <paroga@webkit.org>
Port SharedTimerWin.cpp to WinCE
https://bugs.webkit.org/show_bug.cgi?id=103724
Reviewed by Brent Fulgham.
Add #if !OS(WINCE) around some parts of the code, so it can be used by the WinCE port too.
* PlatformWinCE.cmake:
* platform/win/SharedTimerWin.cpp:
(WebCore):
(WebCore::TimerWindowWndProc):
(WebCore::initializeOffScreenTimerWindow):
(WebCore::setSharedTimerFireInterval):
(WebCore::stopSharedTimer):
* platform/wince/SharedTimerWinCE.cpp: Removed.
2013-01-30 Andrey Lushnikov <lushnikov@chromium.org>
ctrl-arrows, ctrl-shift-arrow, ctrl-backspace
Web Inspector: implmenet Ctrl-Arrow/Ctrl-Backspace in DefaultTextEditor
https://bugs.webkit.org/show_bug.cgi?id=107944
Reviewed by Pavel Feldman.
Add ctrl-arrows/ctrl-shift-arrow/ctrl-backspace shortcuts to jump over
and delete words.
New test: inspector/editor/text-editor-ctrl-movements.html
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor):
(WebInspector.DefaultTextEditor.prototype._registerShortcuts):
(WebInspector.DefaultTextEditor.prototype.selection):
(WebInspector.DefaultTextEditor.WordMovementController): Added.
(WebInspector.DefaultTextEditor.WordMovementController.prototype._registerShortcuts):
(WebInspector.DefaultTextEditor.WordMovementController.prototype.):
(WebInspector.DefaultTextEditor.WordMovementController.prototype._rangeForCtrlArrowMove):
(WebInspector.DefaultTextEditor.WordMovementController.prototype._handleCtrlArrow):
(WebInspector.DefaultTextEditor.WordMovementController.prototype._handleCtrlShiftArrow):
(WebInspector.DefaultTextEditor.WordMovementController.prototype._handleCtrlBackspace):
2013-01-30 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: do not repaint all lines in highlight regex API in DTE
https://bugs.webkit.org/show_bug.cgi?id=108081
Reviewed by Pavel Feldman.
Implement repaintLineRowsAffectedByHighlightDescriptor method that
will go through the visible lineRows and repaint only those of them
which were outdated by highlight change.
Improved test: inspector/editor/text-editor-highlight-regexp.html
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype.highlightRegex):
(WebInspector.TextEditorMainPanel.prototype.removeRegexHighlight):
(WebInspector.TextEditorMainPanel.prototype._repaintLineRowsAffectedByHighlightDescriptor):
(WebInspector.TextEditorMainPanel.prototype._paintLines):
(WebInspector.TextEditorMainPanel.prototype._paintLineRows):
2013-01-30 Tien-Ren Chen <trchen@chromium.org>
REGRESSION (r139282): Caret repainting is broken for text-align: center'd <input>
https://bugs.webkit.org/show_bug.cgi?id=108283
Reviewed by Tim Horton.
Occasionally carets won't be fully erased when blinking.
There used to be 1-pixel padding but removed since r139282.
This patch adds back the same workaround.
Need to rebaseline test expectations.
* editing/FrameSelection.cpp:
(WebCore::repaintCaretForLocalRect):
2013-01-30 Dominik Röttsches <dominik.rottsches@intel.com>
[HarfBuzz] Remove the HarfBuzz-old code
https://bugs.webkit.org/show_bug.cgi?id=108077
Reviewed by Benjamin Poulain.
Removing unused old variant of the HarfBuzz code.
No new tests, no change in functionality.
* GNUmakefile.am: Rename WTF_USE_HARFBUZZ_NG to WTF_USE_HARFBUZZ
* WebCore.gypi: Removing ComplexTextControllerHarfBuzz* and HarfBuzzSkia* files,
* platform/graphics/SimpleFontData.h:
(SimpleFontData): USE(HARFBUZZ_NG) renamed to USE(HARFBUZZ).
* platform/graphics/freetype/FontPlatformData.h:
(FontPlatformData): Removing USE(HARFBUZZ_NG) ifdefs.
* platform/graphics/freetype/FontPlatformDataFreeType.cpp: Removing USE(HARFBUZZ_NG) ifdefs.
(WebCore::FontPlatformData::operator=):
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::harfbuzzFace):
* platform/graphics/freetype/SimpleFontDataFreeType.cpp: USE(HARFBUZZ_NG) renamed to USE(HARFBUZZ).
(WebCore):
* platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp: Removed.
* platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.h: Removed.
* platform/graphics/harfbuzz/FontHarfBuzz.cpp: Removing USE(HARFBUZZ_NG) ifdefs.
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
(WebCore::Font::selectionRectForComplexText):
* platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp: Removing USE(HARFBUZZ_NG) ifdefs.
(WebCore::FontPlatformData::harfbuzzFace):
* platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h: Removing USE(HARFBUZZ_NG) ifdefs.
(WebCore):
(FontPlatformData):
* platform/graphics/harfbuzz/HarfBuzzSkia.cpp: Removed.
* platform/graphics/harfbuzz/HarfBuzzSkia.h: Removed.
* platform/graphics/skia/SimpleFontDataSkia.cpp: USE(HARFBUZZ_NG) renamed to USE(HARFBUZZ).
(WebCore):
2013-01-30 David Faure <faure@kde.org>
[Qt] Major performance improvement in Qt's PluginDatabase implementation
https://bugs.webkit.org/show_bug.cgi?id=106140
Reviewed by Simon Hausmann.
No new tests, only a performance improvement.
* plugins/qt/PluginPackageQt.cpp:
(WebCore::PluginPackage::fetchInfo): Don't do a full-fledged load(), load the module directly.
Keep the refcounting as it was before (broken, but otherwise flash crashes).
(WebCore::PluginPackage::load): Use existing module if fetchInfo created it.
2013-01-30 Huang Dongsung <luxtella@company100.net>
[TexMap] Remove GraphicsLayer in TextureMapperLayer.
https://bugs.webkit.org/show_bug.cgi?id=107073
Reviewed by Noam Rosenthal.
Remove the dependency of TextureMapperLayer on GraphicsLayer. It is needed to
remove GraphicsLayerTextureMapper in LayerTreeRenderer.
This is in preparation for refactoring TextureMapper to work in an actor
model (http://webkit.org/b/103854).
Covered by existing tests.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::toTextureMapperLayer):
(WebCore):
(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::notifyChange):
(WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
(WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay):
Set BackgroundColorChange to m_changeMask instead of ContentChange.
(WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
(WebCore::GraphicsLayerTextureMapper::setChildren):
(WebCore::GraphicsLayerTextureMapper::addChild):
(WebCore::GraphicsLayerTextureMapper::addChildAtIndex):
(WebCore::GraphicsLayerTextureMapper::addChildAbove):
(WebCore::GraphicsLayerTextureMapper::addChildBelow):
(WebCore::GraphicsLayerTextureMapper::replaceChild):
(WebCore::GraphicsLayerTextureMapper::setMaskLayer):
(WebCore::GraphicsLayerTextureMapper::setReplicatedByLayer):
(WebCore::GraphicsLayerTextureMapper::setPosition):
(WebCore::GraphicsLayerTextureMapper::setAnchorPoint):
(WebCore::GraphicsLayerTextureMapper::setSize):
(WebCore::GraphicsLayerTextureMapper::setTransform):
(WebCore::GraphicsLayerTextureMapper::setChildrenTransform):
(WebCore::GraphicsLayerTextureMapper::setPreserves3D):
(WebCore::GraphicsLayerTextureMapper::setMasksToBounds):
(WebCore::GraphicsLayerTextureMapper::setDrawsContent):
(WebCore::GraphicsLayerTextureMapper::setContentsVisible):
(WebCore::GraphicsLayerTextureMapper::setContentsOpaque):
(WebCore::GraphicsLayerTextureMapper::setBackfaceVisibility):
(WebCore::GraphicsLayerTextureMapper::setOpacity):
(WebCore::GraphicsLayerTextureMapper::setContentsRect):
(WebCore::GraphicsLayerTextureMapper::setContentsToSolidColor):
(WebCore::GraphicsLayerTextureMapper::setContentsToImage):
(WebCore::GraphicsLayerTextureMapper::setContentsToMedia):
(WebCore::GraphicsLayerTextureMapper::setShowDebugBorder):
(WebCore::GraphicsLayerTextureMapper::setShowRepaintCounter):
(WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
(WebCore::GraphicsLayerTextureMapper::prepareBackingStoreIfNeeded):
(WebCore::GraphicsLayerTextureMapper::updateDebugBorderAndRepaintCount):
(WebCore::GraphicsLayerTextureMapper::setDebugBorder):
(WebCore::toTextureMapperLayerVector):
(WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
Flush pending changes into TextureMapperLayer.
(WebCore::GraphicsLayerTextureMapper::addAnimation):
(WebCore::GraphicsLayerTextureMapper::setAnimations):
(WebCore::GraphicsLayerTextureMapper::setFilters):
(WebCore::GraphicsLayerTextureMapper::setBackingStore):
(WebCore::GraphicsLayerTextureMapper::setFixedToViewport):
(WebCore::GraphicsLayerTextureMapper::setRepaintCount):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(GraphicsLayerTextureMapper):
(WebCore):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::setChildren):
(WebCore::TextureMapperLayer::setMaskLayer):
(WebCore):
(WebCore::TextureMapperLayer::setReplicaLayer):
(WebCore::TextureMapperLayer::setPosition):
(WebCore::TextureMapperLayer::setSize):
(WebCore::TextureMapperLayer::setAnchorPoint):
(WebCore::TextureMapperLayer::setPreserves3D):
(WebCore::TextureMapperLayer::setTransform):
(WebCore::TextureMapperLayer::setChildrenTransform):
(WebCore::TextureMapperLayer::setContentsRect):
(WebCore::TextureMapperLayer::setMasksToBounds):
(WebCore::TextureMapperLayer::setDrawsContent):
(WebCore::TextureMapperLayer::setContentsVisible):
(WebCore::TextureMapperLayer::setContentsOpaque):
(WebCore::TextureMapperLayer::setBackfaceVisibility):
(WebCore::TextureMapperLayer::setOpacity):
(WebCore::TextureMapperLayer::setSolidColor):
(WebCore::TextureMapperLayer::setFilters):
(WebCore::TextureMapperLayer::setDebugVisuals):
(WebCore::TextureMapperLayer::setRepaintCount):
(WebCore::TextureMapperLayer::setContentsLayer):
(WebCore::TextureMapperLayer::setAnimations):
(WebCore::TextureMapperLayer::setFixedToViewport):
(WebCore::TextureMapperLayer::setBackingStore):
* platform/graphics/texmap/TextureMapperLayer.h:
(WebCore):
(TextureMapperLayer):
(WebCore::TextureMapperLayer::TextureMapperLayer):
2013-01-30 Elliott Sprehn <esprehn@chromium.org>
getDecorationRootAndDecoratedRoot should add new user agent shadow roots
https://bugs.webkit.org/show_bug.cgi?id=108301
Reviewed by Hajime Morita.
getDecorationRootAndDecoratedRoot intended to add a second UserAgentShadowRoot
to the input, not just reuse the existing one so it could insert icons into
the inputs. Add back in this behavior for now so we can sort out the right thing
to do.
This behavior is wrong in the current architecture since it means if you had an
input type=submit, add an author shadow root, and then change the type to text
and then the browser decorates it your shadow magically becomes inaccessible since
input.shadowRoot is no longer available. This feature is currently only used for
decorating type=password fields in Chromium with an icon for password generation.
No new tests, there's no way to test this because it's only used in Chromium
by way of the ChromeClient.
* html/shadow/TextFieldDecorationElement.cpp:
(WebCore::getDecorationRootAndDecoratedRoot):
2013-01-30 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: Remove m_pendingSyncBackingStores in LayerTreeRenderer.
https://bugs.webkit.org/show_bug.cgi?id=107099
Reviewed by Noam Rosenthal.
Add GraphicsLayerTextureMapper::setBackingStore() so that
LayerTreeRenderer sets a backing store to GraphicsLayerTextureMapper.
Remove three methods of TextureMapperLayer related to a backing store
because they are no longer used.
Covered by existing compositing tests.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
(WebCore::GraphicsLayerTextureMapper::prepareBackingStoreIfNeeded):
(WebCore):
(WebCore::GraphicsLayerTextureMapper::updateDebugBorderAndRepaintCount):
(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):
(WebCore::GraphicsLayerTextureMapper::setBackingStore):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(GraphicsLayerTextureMapper):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
* platform/graphics/texmap/TextureMapperLayer.h:
(TextureMapperLayer):
2013-01-30 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: DTE adds additional space to the end of line.
https://bugs.webkit.org/show_bug.cgi?id=108192
Reviewed by Pavel Feldman.
Append overlay highlight spans before decorations elements and skip
them in _collectLinesFromDom method.
No new tests.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
(WebInspector.TextEditorMainPanel.prototype._collectLinesFromDOM):
2013-01-29 Shinya Kawanaka <shinyak@chromium.org>
Renderer is recreated unexpectedly after detach in HTMLInputElement
https://bugs.webkit.org/show_bug.cgi?id=108150
Reviewed by Kent Tamura.
After r140659, destoryShadowSubtree() may update style in removeChild(). It causes
attaching HTMLInputElement before creating shadowsubtree in HTMLInputElement::updateType().
For safe, destroyShadowSubtree() should be done before detach().
Test: fast/forms/number/number-change-type-on-focus-2.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
2013-01-29 James Robinson <jamesr@chromium.org>
Scrollbar and scroll corner composited layers positioned incorrectly
https://bugs.webkit.org/show_bug.cgi?id=108255
Reviewed by Simon Fraser.
ScrollView::updateScrollbars() needs to update the overflow controls composited layers if scrollbars are added
or removed. It was doing this by recording on entry to the function if it had horizontal or vertical scrollbars
and then comparing that to m_horizontal/verticalScrollbar on exit. Unfortunately updateScrollbars is recursive
and exits without running the postamble code when nested on the callstack. As a result, scrollbars may be
added or removed several times during the recursion, possibly leaving the overflow control layers in an
inconsistent state, while ending up with the same set of scrollbars.
This changes the "has anything changed" logic to only compare local state (hasXXXScrollbar vs
newHasXXXScrollbar) so changes in recursive calls are not considered.
* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars):
2013-01-29 Shinya Kawanaka <shinyak@chromium.org>
Convert deprecatedShadowAncestorNode() to shadowHost() in Editor.cpp
https://bugs.webkit.org/show_bug.cgi?id=108287
Reviewed by Hajime Morita.
This is the effort to convert deprecatedShadowAncestorNode() to shadowHost().
Since all the caller object of deprecatedShadowAncestorNode() is in a shadow tree, calling deprecatedShadowAncestorNode()
is equiavalent to calling shadowHost(). Also, for all the occurence of deprecatedShadowAncestorNode(), we don't need to
worry about nested ShadowDOM issues. So directly converting deprecatedShadowAncestorNode() to shadowHost() should be safe.
No new tests, simple refactoring.
* editing/Editor.cpp:
(WebCore::Editor::rangeOfString):
(WebCore::Editor::countMatchesForText):
2013-01-29 Simon Fraser <simon.fraser@apple.com>
Rubberband scrolling on news.google.com causes text to blink repeatedly
https://bugs.webkit.org/show_bug.cgi?id=107326
Reviewed by Beth Dakin.
When in the middle of layout, RenderBlock::updateScrollInfoAfterLayout()
could cause us to re-evaluate reasons for compositing, via the call
to updateLayerCompositingState() in RenderLayer::updateScrollInfoAfterLayout().
At this time, when layout is still happening, it's bad to look at render
geometry to decide when to do compositing (e.g. for fixed position); we might
incorrectly conclude that the layer is outside the viewport.
Fix by having RenderLayerCompositing store in a member whether it's safe
to look at layout information. requiresCompositingForPosition() then consults
this bit, and, if it needs to make decisions based on layout but layout is not
complete, it doesn't change the compositing state of the layer.
Not testable, since dumping the layer tree will update layout and mask the bug.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::updateCompositingLayers):
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
2013-01-29 Mark Lam <mark.lam@apple.com>
Introducing WTF::TypeSafeEnum and DatabaseError.
https://bugs.webkit.org/show_bug.cgi?id=108279.
Reviewed by Geoffrey Garen.
DatabaseError will be used later in the webdatabase refactoring effort.
It is currently unused.
No new tests.
* GNUmakefile.list.am:
* Modules/webdatabase/DatabaseError.h: Added.
(WebCore):
* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
2013-01-29 Elliott Sprehn <esprehn@chromium.org>
Move ShadowRoot creation into ElementShadow
https://bugs.webkit.org/show_bug.cgi?id=108267
Reviewed by Hajime Morita.
Instead of the ShadowRoot::create method doing crazy factory things and
then needing to assert about the state of the ShadowRoot in addShadowRoot,
just create ShadowRoots from inside ElementShadow.
No new tests, just refactoring.
* dom/Element.cpp:
(WebCore::Element::createShadowRoot): Use addShadowRoot().
(WebCore::Element::ensureUserAgentShadowRoot): Use addShadowRoot().
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::addShadowRoot): Now returns the new ShadowRoot.
* dom/ElementShadow.h:
(ElementShadow):
* dom/ShadowRoot.cpp:
* dom/ShadowRoot.h:
(WebCore::ShadowRoot::create): No longer does the association.
(WebCore::ShadowRoot::setHost): Sets parent tree scope automatically.
2013-01-29 Mark Lam <mark.lam@apple.com>
Rename DBBackend::Server to DatabaseServer.
https://bugs.webkit.org/show_bug.cgi?id=108278.
Rubber stamped by Geoffrey Garen.
This is only a renaming operation as part of the webdatabase refactoring
effort. There is no semantic change.
No new tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/DBBackendServer.cpp: Removed.
* Modules/webdatabase/DBBackendServer.h: Removed.
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::DatabaseManager):
* Modules/webdatabase/DatabaseServer.cpp: Copied from Source/WebCore/Modules/webdatabase/DBBackendServer.cpp.
(WebCore::DatabaseServer::initialize):
(WebCore::DatabaseServer::setClient):
(WebCore::DatabaseServer::databaseDirectoryPath):
(WebCore::DatabaseServer::setDatabaseDirectoryPath):
(WebCore::DatabaseServer::fullPathForDatabase):
(WebCore::DatabaseServer::hasEntryForOrigin):
(WebCore::DatabaseServer::origins):
(WebCore::DatabaseServer::databaseNamesForOrigin):
(WebCore::DatabaseServer::detailsForNameAndOrigin):
(WebCore::DatabaseServer::usageForOrigin):
(WebCore::DatabaseServer::quotaForOrigin):
(WebCore::DatabaseServer::setQuota):
(WebCore::DatabaseServer::deleteAllDatabases):
(WebCore::DatabaseServer::deleteOrigin):
(WebCore::DatabaseServer::deleteDatabase):
(WebCore::DatabaseServer::scheduleNotifyDatabaseChanged):
(WebCore::DatabaseServer::databaseChanged):
(WebCore::DatabaseServer::closeDatabasesImmediately):
(WebCore::DatabaseServer::interruptAllDatabasesForContext):
(WebCore::DatabaseServer::canEstablishDatabase):
(WebCore::DatabaseServer::addOpenDatabase):
(WebCore::DatabaseServer::removeOpenDatabase):
(WebCore::DatabaseServer::setDatabaseDetails):
(WebCore::DatabaseServer::getMaxSizeForDatabase):
(WebCore):
* Modules/webdatabase/DatabaseServer.h: Copied from Source/WebCore/Modules/webdatabase/DBBackendServer.h.
* Target.pri:
* WebCore.gypi:
* WebCore.order:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/DatabaseStrategy.cpp:
(WebCore::DatabaseStrategy::getDatabaseServer):
2013-01-29 Chris Fleizach <cfleizach@apple.com>
AX: VoiceOver not reading bullets correctly in the text of notes
https://bugs.webkit.org/show_bug.cgi?id=107980
Reviewed by Ryosuke Niwa.
Accessibility code should not assume that all list markers end with the same "." suffix.
We need to use the actual suffix.
Test: platform/mac/accessibility/listmarker-suffix.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition):
2013-01-29 Mark Lam <mark.lam@apple.com>
Rename AbstractDatabase to DatabaseBackend.
https://bugs.webkit.org/show_bug.cgi?id=108275.
Reviewed by Sam Weinig.
This is a pure rename operation as part of the webdatabase refactoring
effort. There is no semantic change in this patch.
No new tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/AbstractDatabase.cpp: Removed.
* Modules/webdatabase/AbstractDatabase.h: Removed.
* Modules/webdatabase/AbstractDatabaseServer.h:
(WebCore):
(AbstractDatabaseServer):
* Modules/webdatabase/DBBackendServer.cpp:
(WebCore::DBBackend::Server::databaseChanged):
(WebCore::DBBackend::Server::addOpenDatabase):
(WebCore::DBBackend::Server::removeOpenDatabase):
(WebCore::DBBackend::Server::getMaxSizeForDatabase):
* Modules/webdatabase/DBBackendServer.h:
* Modules/webdatabase/Database.cpp:
(WebCore::Database::Database):
(WebCore::Database::version):
(WebCore::Database::performOpenAndVerify):
* Modules/webdatabase/Database.h:
* Modules/webdatabase/DatabaseBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/AbstractDatabase.cpp.
(WebCore):
(WebCore::DatabaseBackend::databaseInfoTableName):
(WebCore::DatabaseBackend::DatabaseBackend):
(WebCore::DatabaseBackend::~DatabaseBackend):
(WebCore::DatabaseBackend::closeDatabase):
(WebCore::DatabaseBackend::version):
(WebCore::DatabaseBackend::performOpenAndVerify):
(WebCore::DatabaseBackend::scriptExecutionContext):
(WebCore::DatabaseBackend::securityOrigin):
(WebCore::DatabaseBackend::stringIdentifier):
(WebCore::DatabaseBackend::displayName):
(WebCore::DatabaseBackend::estimatedSize):
(WebCore::DatabaseBackend::fileName):
(WebCore::DatabaseBackend::details):
(WebCore::DatabaseBackend::getVersionFromDatabase):
(WebCore::DatabaseBackend::setVersionInDatabase):
(WebCore::DatabaseBackend::setExpectedVersion):
(WebCore::DatabaseBackend::getCachedVersion):
(WebCore::DatabaseBackend::setCachedVersion):
(WebCore::DatabaseBackend::getActualVersionForTransaction):
(WebCore::DatabaseBackend::disableAuthorizer):
(WebCore::DatabaseBackend::enableAuthorizer):
(WebCore::DatabaseBackend::setAuthorizerReadOnly):
(WebCore::DatabaseBackend::setAuthorizerPermissions):
(WebCore::DatabaseBackend::lastActionChangedDatabase):
(WebCore::DatabaseBackend::lastActionWasInsert):
(WebCore::DatabaseBackend::resetDeletes):
(WebCore::DatabaseBackend::hadDeletes):
(WebCore::DatabaseBackend::resetAuthorizer):
(WebCore::DatabaseBackend::maximumSize):
(WebCore::DatabaseBackend::incrementalVacuumIfNeeded):
(WebCore::DatabaseBackend::interrupt):
(WebCore::DatabaseBackend::isInterrupted):
(WebCore::DatabaseBackend::logErrorMessage):
(WebCore::DatabaseBackend::reportOpenDatabaseResult):
(WebCore::DatabaseBackend::reportChangeVersionResult):
(WebCore::DatabaseBackend::reportStartTransactionResult):
(WebCore::DatabaseBackend::reportCommitTransactionResult):
(WebCore::DatabaseBackend::reportExecuteStatementResult):
(WebCore::DatabaseBackend::reportVacuumDatabaseResult):
* Modules/webdatabase/DatabaseBackend.h: Copied from Source/WebCore/Modules/webdatabase/AbstractDatabase.h.
(DatabaseBackend):
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::databaseChanged):
(WebCore::DatabaseManager::addOpenDatabase):
(WebCore::DatabaseManager::removeOpenDatabase):
(WebCore::DatabaseManager::getMaxSizeForDatabase):
* Modules/webdatabase/DatabaseManager.h:
(DatabaseManager):
* Modules/webdatabase/DatabaseSync.cpp:
(WebCore::DatabaseSync::DatabaseSync):
* Modules/webdatabase/DatabaseSync.h:
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
(WebCore::DatabaseTracker::databaseChanged):
(WebCore::DatabaseTracker::interruptAllDatabasesForContext):
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::DatabaseTracker::removeOpenDatabase):
(WebCore::DatabaseTracker::getOpenDatabases):
(WebCore::DatabaseTracker::deleteDatabaseFile):
* Modules/webdatabase/DatabaseTracker.h:
(WebCore):
(DatabaseTracker):
* Modules/webdatabase/OriginQuotaManager.cpp:
(WebCore::OriginQuotaManager::markDatabase):
* Modules/webdatabase/OriginQuotaManager.h:
(WebCore):
(OriginQuotaManager):
* Modules/webdatabase/SQLTransactionClient.cpp:
(WebCore::SQLTransactionClient::didCommitWriteTransaction):
(WebCore::SQLTransactionClient::didExecuteStatement):
(WebCore::SQLTransactionClient::didExceedQuota):
* Modules/webdatabase/SQLTransactionClient.h:
(WebCore):
(SQLTransactionClient):
* Modules/webdatabase/chromium/DatabaseObserver.h:
(WebCore):
(DatabaseObserver):
* Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::NotifyDatabaseObserverOnCloseTask::create):
(WebCore::NotifyDatabaseObserverOnCloseTask::NotifyDatabaseObserverOnCloseTask):
(NotifyDatabaseObserverOnCloseTask):
(WebCore::DatabaseTracker::removeOpenDatabase):
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
(WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::create):
(WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::CloseOneDatabaseImmediatelyTask):
(DatabaseTracker::CloseOneDatabaseImmediatelyTask):
(WebCore::DatabaseTracker::closeOneDatabaseImmediately):
* Modules/webdatabase/chromium/SQLTransactionClientChromium.cpp:
(WebCore::NotifyDatabaseChangedTask::create):
(WebCore::NotifyDatabaseChangedTask::NotifyDatabaseChangedTask):
(NotifyDatabaseChangedTask):
(WebCore::SQLTransactionClient::didCommitWriteTransaction):
(WebCore::SQLTransactionClient::didExecuteStatement):
(WebCore::SQLTransactionClient::didExceedQuota):
* Target.pri:
* WebCore.gypi:
* WebCore.order:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
2013-01-29 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140983.
http://trac.webkit.org/changeset/140983
https://bugs.webkit.org/show_bug.cgi?id=108277
Unfortunately, this API has one last client (Requested by
abarth on #webkit).
* Configurations/FeatureDefines.xcconfig:
* Modules/notifications/Notification.cpp:
(WebCore::Notification::Notification):
(WebCore):
(WebCore::Notification::create):
* Modules/notifications/Notification.h:
(Notification):
(WebCore::Notification::isHTML):
(WebCore::Notification::setHTML):
(WebCore::Notification::url):
(WebCore::Notification::setURL):
* Modules/notifications/NotificationCenter.h:
(WebCore::NotificationCenter::createHTMLNotification):
(NotificationCenter):
* Modules/notifications/NotificationCenter.idl:
* page/FeatureObserver.h:
2013-01-29 Rafael Weinstein <rafaelw@chromium.org>
parserAppendChild and parserInsertBefore should ensure that child nodes are in the same document
https://bugs.webkit.org/show_bug.cgi?id=108260
Reviewed by Eric Seidel.
Test: fast/parser/xml-error-adopted.xml
The check and adoption if the documents don't match is now moved into ContainerNode::parser* from HTMLConstructionSite.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::parserAppendChild):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertTextNode):
(WebCore::HTMLConstructionSite::findFosterSite):
(WebCore::HTMLConstructionSite::fosterParent):
2013-01-29 Shinya Kawanaka <shinyak@chromium.org>
[Chromium] Cannot copy text when selecting readonly (or disabled) input elements
https://bugs.webkit.org/show_bug.cgi?id=106287
Reviewed by Hajime Morita.
When an input element is disabled or readonly, its inner element is not editable. So its rootEditableElement
does not exist. In WebViewImpl::caretOrSelectionRange, if rootEditableElement does not exist, it uses
a document element. However, the inner element and document element have a different tree scope, the selection range
cannot be gotten correctly.
We should use ShadowRoot instead of document so that we can stay in the same tree scope.
* WebCore.exp.in:
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::rootEditableElementOrTreeScopeRootNode): Added. Returns ShadowRoot so that we can
stay in the same tree scope.
(WebCore):
* editing/FrameSelection.h:
(FrameSelection):
* editing/TextIterator.cpp:
(WebCore::TextIterator::getLocationAndLengthFromRange):
* editing/TextIterator.h:
(TextIterator):
2013-01-29 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: The content should not overflow the <input> boundary
https://bugs.webkit.org/show_bug.cgi?id=108069
Reviewed by Hajime Morita.
To avoid the overflow, we do:
A) Specify overflow:hidden to <input>.
However, we need to make sub-fields and buttons workable even if the
width is smaller than the intrinsic size. So, we do:
B) Make DateTimeEditElement shrinkable, and
C) Make the sub-fields scrollable horizontally like input[type=text].
To achieve B, we need to remove -webkit-date-and-time-container (D)
because width property for <input> can shrink only the direct child
elements.
Tests: fast/forms/time-multiple-fields/time-multiple-fields-narrow-width-scroll.html
and new test cases in fast/forms/date/date-appearance-basic.html.
* css/html.css:
(input[type="date"]):
Change -webkit-align-items value. (D)
Specify overflow:hidden. (A)
(input[type="datetime"]): Ditto.
(input[type="datetime-local"]): Ditto.
(input[type="month"]): Ditto.
(input[type="time"]): Ditto.
(input[type="week"]): Ditto.
(input::-webkit-datetime-edit):
Add min-width:0 (B), and overflow:hidden. (C)
Remove unnecessary white-space:pre because of white-space:nowrap below.
(input::-webkit-datetime-edit-fields-wrapper):
Added. This is the child of -webkit-datetime-edit, and contains
sub-fields. (C)
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
Remove -webkit-date-and-time-container, and append DateTimeEditElement,
spin button, and picker indicator element to the ShadowRoot. (D)
(WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldApplyLocaleDirection):
<input> for multiple fields UI should have the direction of the browser
locale. This is a replacement of the code for dir attribute in
updateInnerTextValue below. (D)
(WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
Remove the code to set dir= to -webkit-date-and-time-container.
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType):
Declare shouldApplyLocaleDirection. (D)
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::HTMLInputElement):
Calls setHasCustomCallbacks for customStyleForRenderer. (D)
(WebCore::HTMLInputElement::customStyleForRenderer):
Set direction to RenderStyle if shouldApplyLocaleDirection is true. This
is a replacement of the dir setting code in
BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue. (D)
* html/HTMLInputElement.h:
(HTMLInputElement): Declare customStyleForRenderer. (D)
* html/InputType.cpp:
(WebCore::InputType::shouldApplyLocaleDirection):
Add default implmentation of shouldApplyLocaleDirection. (D)
* html/InputType.h:
(InputType): Declare shouldApplyLocaleDirection. (D)
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitLiteral):
Add elements to -webkit-datetime-edit-fields-wrapper element. (C)
(WebCore::DateTimeEditElement::fieldsWrapperElement):
A helper to get -webkit-datetime-edit-fields-wrapper element. (C)
(WebCore::DateTimeEditElement::addField):
Add elements to -webkit-datetime-edit-fields-wrapper element. (C)
(WebCore::DateTimeEditElement::customStyleForRenderer):
- Iterate over children of -webkit-datetime-edit-fields-wrapper element. (C)
- Set width property instead of min-width. (B)
(WebCore::DateTimeEditElement::layout):
- Prepare -webkit-datetime-edit-fields-wrapper element. (C)
- Handle children of -webkit-datetime-edit-fields-wrapper element. (C)
- Need to do style recalc because child structure is changed. (C)
* html/shadow/DateTimeEditElement.h:
(DateTimeEditElement): Declare fieldsWrapperElement. (C)
2013-01-29 Tom Sepez <tsepez@chromium.org>
[v8] Enable binding integrity on linux
https://bugs.webkit.org/show_bug.cgi?id=108242
Reviewed by Adam Barth.
Patch is correct if existing tests pass.
* html/TextMetrics.idl:
Suppress check to allow link on linux.
2013-01-29 Tim Horton <timothy_horton@apple.com>
Don't updateTileCoverageMap() from setScrollingModeIndication if we don't need to.
Reviewed by Simon Fraser.
Only do the work if the tiled scrolling indicator/map is enabled.
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::setScrollingModeIndication):
2013-01-29 Chris Fleizach <cfleizach@apple.com>
AX: Add support for aria-autocomplete="list" on ARIA combobox
https://bugs.webkit.org/show_bug.cgi?id=108228
Reviewed by Ryosuke Niwa.
Comboboxes behave much like textfields, and so they need
to respond like text controls.
Test: platform/mac/accessibility/combox-box-value.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isTextControl):
(WebCore):
* accessibility/AccessibilityObject.h:
(AccessibilityObject):
2013-01-29 Nico Weber <thakis@chromium.org>
[chromium] Do not mark translation-unit-local functions as extern "C"
https://bugs.webkit.org/show_bug.cgi?id=108218
Reviewed by Adam Barth.
Requested by darin in https://bugs.webkit.org/show_bug.cgi?id=107845
This also allows enabling -Wreturn-type-c-linkage again, but I'd like to
wait for the next clang roll (which tweaks this warning) before undoing
r140800 (which removed that warning).
No behavior change.
* bindings/v8/npruntime.cpp:
2013-01-29 Geoffrey Garen <ggaren@apple.com>
Removed GGC because it has been disabled for a long time
https://bugs.webkit.org/show_bug.cgi?id=108245
Reviewed by Filip Pizlo.
* ForwardingHeaders/heap/CardSet.h: Removed.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
2013-01-29 Elliott Sprehn <esprehn@chromium.org>
Refactor ShadowRoot exception handling
https://bugs.webkit.org/show_bug.cgi?id=108209
Reviewed by Dimitri Glazkov.
Many of the exception cases for ShadowRoot are actually impossible and
should be asserts instead. We can also move the one case of exception logic,
for elements that don't allow author shadows into Element::createShadowRoot
instead of having it all over the ShadowRoot and ElementShadow classes. This
is the first step in centralizing all ShadowRoot creation inside ElementShadow.
No new tests, covered by existing tests.
* WebCore.exp.in:
* dom/Element.cpp:
(WebCore::Element::createShadowRoot): Be explicit about what kind of ShadowRoot you're creating.
(WebCore::Element::ensureUserAgentShadowRoot): No more exceptions.
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::addShadowRoot): This never actually throws exceptions, remove ExceptionCode.
* dom/ElementShadow.h:
(ElementShadow):
* dom/ShadowRoot.cpp:
(WebCore::determineUsageType): Merge with Element::createShadowRoot.
(WebCore):
(WebCore::ShadowRoot::ShadowRoot): Moved Histogram logic here since it's actually about the constructor anyway.
(WebCore::ShadowRoot::create): Removed overload that made the code less obvious.
* dom/ShadowRoot.h:
(ShadowRoot):
* html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::HTMLKeygenElement):
* html/shadow/TextFieldDecorationElement.cpp:
(WebCore::getDecorationRootAndDecoratedRoot):
* testing/Internals.cpp:
(WebCore::Internals::ensureShadowRoot):
(WebCore::Internals::createShadowRoot):
2013-01-29 Mark Lam <mark.lam@apple.com>
Change DatabaseContext lookup to be thread-safe.
https://bugs.webkit.org/show_bug.cgi?id=107784.
Reviewed by Geoffrey Garen.
DatabaseContext will no longer be a Supplement of ScriptExecutionContext.
Instead we will maintain a mutex guarded contextMap in the DatabaseManager
which maps ScriptExecutionContexts to DatabaseContexts.
Also cleaned up the shutdown mechanism of the DatabaseContext,
DatabaseThread, and Databases when their owner ScriptExecutionContext
destructs.
No new tests.
* Modules/webdatabase/AbstractDatabase.cpp:
(WebCore::AbstractDatabase::AbstractDatabase):
* Modules/webdatabase/AbstractDatabase.h:
(WebCore::AbstractDatabase::databaseContext):
(AbstractDatabase):
* Modules/webdatabase/Database.cpp:
(WebCore::Database::Database):
* Modules/webdatabase/Database.h:
(WebCore):
(Database):
* Modules/webdatabase/DatabaseContext.cpp:
(WebCore):
(WebCore::DatabaseContext::DatabaseContext):
(WebCore::DatabaseContext::~DatabaseContext):
(WebCore::DatabaseContext::contextDestroyed):
(WebCore::DatabaseContext::stop):
(WebCore::DatabaseContext::databaseThread):
(WebCore::DatabaseContext::stopDatabases):
* Modules/webdatabase/DatabaseContext.h:
(DatabaseContext):
(WebCore::DatabaseContext::scriptExecutionContext):
(WebCore::DatabaseContext::hasOpenDatabases):
(WebCore::DatabaseContext::stopDatabases):
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::manager):
(WebCore::DatabaseManager::DatabaseManager):
(WebCore::DatabaseManager::getExistingDatabaseContext):
(WebCore):
(WebCore::DatabaseManager::getDatabaseContext):
(WebCore::DatabaseManager::registerDatabaseContext):
(WebCore::DatabaseManager::unregisterDatabaseContext):
(WebCore::DatabaseManager::notifyDatabaseContextConstructed):
(WebCore::DatabaseManager::notifyDatabaseContextDestructed):
(WebCore::DatabaseManager::openDatabase):
(WebCore::DatabaseManager::openDatabaseSync):
(WebCore::DatabaseManager::hasOpenDatabases):
(WebCore::DatabaseManager::stopDatabases):
(WebCore::DatabaseManager::interruptAllDatabasesForContext):
* Modules/webdatabase/DatabaseManager.h:
(WebCore):
(DatabaseManager):
(WebCore::DatabaseManager::notifyDatabaseContextConstructed):
(WebCore::DatabaseManager::notifyDatabaseContextDestructed):
* Modules/webdatabase/DatabaseSync.cpp:
(WebCore::DatabaseSync::DatabaseSync):
* Modules/webdatabase/DatabaseSync.h:
(WebCore):
(DatabaseSync):
* Modules/webdatabase/DatabaseThread.cpp:
(WebCore::DatabaseThread::~DatabaseThread):
(WebCore::DatabaseThread::requestTermination):
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::canEstablishDatabase):
* dom/ActiveDOMObject.cpp:
(WebCore::ActiveDOMObject::~ActiveDOMObject):
2013-01-29 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Make resolveContentBasedTrackSizingFunctionsForItems reuse distributeSpaceToTracks
https://bugs.webkit.org/show_bug.cgi?id=108110
Reviewed by Tony Chang.
This change makes us match more closely the specification by reusing distributeSpaceToTracks inside
resolveContentBasedTrackSizingFunctionsForItems. This also removes some existing code duplication.
Refactoring covered by existing tests.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
Updated after distributeSpaceToTracks new arguments. Copying the tracks to a Vector<GridTrack*> is
now done here.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
Removed code duplication and switched to using distributeSpaceToTracks.
(WebCore::RenderGrid::distributeSpaceToTracks):
Refactored distributeSpaceToTracks to implement the distribution of any extra space above max breadth
as it was required to pass the tests (required to properly handling min-content > max). Also changed
the arguments of the function to better match the intent of the function.
* rendering/RenderGrid.h: Updated distributeSpaceToTracks's arguments.
2013-01-29 Elliott Sprehn <esprehn@chromium.org>
Remove all ShadowRoots during ElementShadow destruction
https://bugs.webkit.org/show_bug.cgi?id=108207
Reviewed by Dimitri Glazkov.
There's no reason to expose removeAllShadowRoots since the only legitimate
place to call it is right as we're destroying the ElementShadow.
No new tests, just refactoring.
* dom/Element.cpp:
(WebCore::Element::~Element): Remove call to removeAllShadowRoots()
* dom/ElementShadow.h:
(WebCore::ElementShadow::~ElementShadow): Call removeAllShadowRoots().
(ElementShadow): Make removeAllShadowRoots() private.
2013-01-29 Justin Novosad <junov@google.com>
REGRESSION (r135628-135632): Double box shadow failure to render
https://bugs.webkit.org/show_bug.cgi?id=107833
Reviewed by Simon Fraser.
Regression caused by http://trac.webkit.org/changeset/135629
The regression was due to faulty occlusion logic that was assuming
that drawing the background color of a render box background layer
could be skipped when the same layer also has an opaque image attached.
In the case where the background color is drawn for the purpose of
rendering a box shadow, the shadow is typically not
completely occluded by the background image because of the shadow
blur and/or offset. This patch fixes the problem by not culling a
background draw if it is used to draw a box shadow.
Test: fast/backgrounds/gradient-background-shadow.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
Changing occlusion culling test to never cull background color
draw if it is used to draw a box shadow. This is because box shadows
can draw outside the border fill region.
2013-01-29 Ian Vollick <vollick@chromium.org>
Add RenderLayer::enclosingStackingContainer
https://bugs.webkit.org/show_bug.cgi?id=108211
Reviewed by Simon Fraser.
No new tests, no change in functionality.
* rendering/RenderLayer.h:
(WebCore::RenderLayer::enclosingStackingContainer):
This function is similar to RenderLayer::stackingContainer, but may return the
layer itself if it's a stacking container.
2013-01-29 Patrick Gansterer <paroga@webkit.org>
Rename TextBreakIteratorWinCE to TextBreakIteratorWchar
https://bugs.webkit.org/show_bug.cgi?id=108094
Reviewed by Ryosuke Niwa.
TextBreakIteratorWinCE does not contain any Windows CE specific code.
Rename it to TextBreakIteratorWchar to match the name in wtf/unicode.
* platform/text/wchar/TextBreakIteratorWchar.cpp: Renamed from Source/WebCore/platform/text/wince/TextBreakIteratorWinCE.cpp.
2013-01-29 Tommy Widenflycht <tommyw@google.com>
MediaStream API: A MediaStreamComponent should be able to return the MediaStreamDescriptor it belongs to
https://bugs.webkit.org/show_bug.cgi?id=108173
Reviewed by Adam Barth.
To be able to return the MediaStreamDescriptor a MediaStreamComponent belongs to the "ownership"
of the MediaStreamDescriptor needed to move from a MediaStreamTrack to the MediaStreamComponent.
This is also better from an architectonic view as well.
Patch covered by existing tests.
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::MediaStream):
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::addRemoteTrack):
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::create):
(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::setEnabled):
* Modules/mediastream/MediaStreamTrack.h:
(MediaStreamTrack):
* Modules/mediastream/RTCStatsRequestImpl.cpp:
(WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
* platform/chromium/support/WebMediaStreamComponent.cpp:
(WebKit::WebMediaStreamComponent::stream):
(WebKit):
* platform/mediastream/MediaStreamComponent.h:
(WebCore):
(WebCore::MediaStreamComponent::create):
(MediaStreamComponent):
(WebCore::MediaStreamComponent::stream):
(WebCore::MediaStreamComponent::setStream):
(WebCore::MediaStreamComponent::MediaStreamComponent):
* platform/mediastream/MediaStreamDescriptor.h:
(WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
2013-01-29 Alec Flett <alecflett@chromium.org>
IndexedDB: Pass metadata in to IDBOpenDBRequest.onUpgradeNeeded/onSuccess
https://bugs.webkit.org/show_bug.cgi?id=103920
Reviewed by Dimitri Glazkov.
Update IDBCallbacks::onSuccess and IDBCallbacks::onUpgradeNeeded to
pass through a metadata parameter. While there, remove the unused
IDBTransactionBackendInterface parameter to onUpgradeNeeded.
As this is another step in the IDB refactor, I've simplified future cleanup
work by making the WebKit API code still use the old API. This
will make it possible to outright remove code on the chromium side rather
than another three-step checkin.
No new tests, as this is more refactoring.
* Modules/indexeddb/IDBCallbacks.h:
(WebCore::IDBCallbacks::onUpgradeNeeded): new method signature.
(WebCore::IDBCallbacks::onSuccess): new method signature.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::openConnection):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onUpgradeNeeded): use passed-in metadata.
(WebCore::IDBOpenDBRequest::onSuccess): use passed-in metadata.
* Modules/indexeddb/IDBOpenDBRequest.h:
(IDBOpenDBRequest):
2013-01-29 Dirk Schulze <dschulze@adobe.com>
Canvas support for isPointInStroke
https://bugs.webkit.org/show_bug.cgi?id=108185
Reviewed by Dean Jackson.
isPointInStroke(x,y) returns true if a point hits the stroke
with applied stroke styles like dashArray, lineCap, lineJoin, lineWidth.
The syntax is similar to isPointInPath, which returns true if a point hits
the fill area of a path.
Firefox implemented isPointInStroke originally and unprefixed it recently:
https://bugzilla.mozilla.org/show_bug.cgi?id=803124
Test: fast/canvas/canvas-isPointInStroke.html
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasStrokeStyleApplier::strokeStyle): Take dashArray and lineDashOffset into account.
(WebCore):
(WebCore::CanvasRenderingContext2D::isPointInStroke): The implementation of the function.
* html/canvas/CanvasRenderingContext2D.h:
(CanvasRenderingContext2D):
* html/canvas/CanvasRenderingContext2D.idl: Added operation to interface.
2013-01-29 Nate Chapin <japhet@chromium.org>
Enable reuse of cached main resources
https://bugs.webkit.org/show_bug.cgi?id=105667
Reviewed by Adam Barth.
Test: http/tests/cache/cached-main-resource.html
* WebCore.exp.in:
* dom/Document.cpp:
(WebCore::Document::hasManifest): Returns true if the <html> element has a non-empty manifest attribute.
(WebCore):
* dom/Document.h:
(Document):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadedResourceFromMemoryCache): Don't send delegate callbacks for cache hit here, since
MainResourceLoader will take care of it.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::MainResourceLoader):
(WebCore::MainResourceLoader::receivedError):
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::responseReceived): Don't try to cache loads from the application cache.
(WebCore::MainResourceLoader::didFinishLoading): Don't try to cache loads from the application cache.
(WebCore::MainResourceLoader::load): Ensure we create a resource load identifier for cache hits. Also,
ensure we correctly popualate fragment identifiers in the ResourceRequest reported to DocumentLoader.
(WebCore::MainResourceLoader::identifier):
* loader/MainResourceLoader.h: Rename m_substituteDataLoadIdentifier to m_identifierForLoadWithoutResourceLoader
to better describe when it is used.
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::didAddClient): Synthesize redirect notifications for cache hits if necessary.
(WebCore::CachedRawResource::willSendRequest): Note the redirects we received.
(WebCore::CachedRawResource::canReuse): Don't reuse a resource if the redirect chain included a "Cache-control: no-store".
* loader/cache/CachedRawResource.h:
(CachedRawResource):
(RedirectPair):
(WebCore::CachedRawResource::RedirectPair::RedirectPair):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::addClientToSet): Don't return cached data for a main resource synchronously
* loader/cache/CachedResource.h:
(WebCore::CachedResource::canReuse):
(CachedResource):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource): Leave cahce reuse of main resources off for chromium for now.
(WebCore::CachedResourceLoader::determineRevalidationPolicy): Permit cache reuse for main resources.
* testing/Internals.cpp:
(WebCore::Internals::isPreloaded):
(WebCore):
(WebCore::Internals::isLoadingFromMemoryCache):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2013-01-29 Min Qin <qinmin@chromium.org>
Fix a problem that deferred image decoding is enabled for multiframe images
https://bugs.webkit.org/show_bug.cgi?id=108152
Reviewed by Stephen White.
Deferred image decoding should only work for single frame images now.
However, using ImageDecoder::repetitionCount() does not capture all the cases.
Enforce the rule using ImageDecoder::frameCount()==1.
Fixing a failing layout test: platform/chromium/virtual/deferred/fast/images/icon-0colors.html
* platform/graphics/chromium/DeferredImageDecoder.cpp:
(WebCore::DeferredImageDecoder::frameBufferAtIndex):
2013-01-29 Elliott Sprehn <esprehn@chromium.org>
Move ElementShadow creation to ElementRareData
https://bugs.webkit.org/show_bug.cgi?id=108195
Reviewed by Dimitri Glazkov.
Move the creation of ElementShadow to ElementRareData
for better encapsulation, and get rid of ElementRareData::setShadow.
No new tests, just refactoring.
* dom/Element.cpp:
(WebCore::Element::~Element): Use clearShadow() instead of setShadow which is removed.
(WebCore::Element::shadow):
(WebCore::Element::ensureShadow): Use ElementRareData::ensureShadow().
* dom/ElementRareData.h:
(WebCore::ElementRareData::clearShadow): Added.
(WebCore::ElementRareData::ensureShadow): Added.
2013-01-29 Alpha Lam <hclam@chromium.org>
[chromium] Unreviewed build fix.
Revert my revert at 141033 which can cause deadlock.
* platform/graphics/chromium/DiscardablePixelRef.cpp:
(WebCore::DiscardablePixelRefAllocator::allocPixelRef):
(WebCore::DiscardablePixelRef::DiscardablePixelRef):
* platform/graphics/chromium/DiscardablePixelRef.h:
(DiscardablePixelRef):
2013-01-29 Joshua Bell <jsbell@chromium.org>
[Chromium] IndexedDB: Let callers specify reason (error) for aborting transaction
https://bugs.webkit.org/show_bug.cgi?id=107851
Reviewed by Tony Chang.
Internal to the back-end, callers are able to abort transactions and specify a reason
as an IDBDatabaseError, e.g. ConstraintError. Expose this to the WebKit/chromium/public
API so that intermediate layers can specify reasons as well, e.g. QuotaExceededError.
Test will land in Chromium as fix for crbug.com/113118
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::abort): Added overload that takes error.
* Modules/indexeddb/IDBDatabaseBackendImpl.h: Ditto.
* Modules/indexeddb/IDBDatabaseBackendInterface.h: Ditto.
2013-01-29 Victor Carbune <vcarbune@chromium.org>
Heap-use-after-free in WebCore::RenderTextTrackCue::layout
https://bugs.webkit.org/show_bug.cgi?id=108197
Reviewed by Eric Carlson.
Test: media/track/track-cue-rendering-tree-is-removed-properly.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::textTrackRemoveCue): Ensure the display tree
is removed when the cue is removed from the list of cues.
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::~TextTrackCue): Enfore display tree removal.
2013-01-29 Eli Fidler <efidler@rim.com>
On HarfbuzzNG ports, Arabic TATWEEL is not joined.
https://bugs.webkit.org/show_bug.cgi?id=108037
Reviewed by Tony Chang.
The tatweel (U+0640) is being split into a separate run, because its script is USCRIPT_COMMON.
It has script extensions for USCRIPT_ARABIC, so I think it shouldn't trigger a new run.
Test: fast/text/international/arabic-tatweel-join.html
* platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
2013-01-29 Martin Robinson <mrobinson@igalia.com>
[Freetype] Cannot use characters outside the BMP
https://bugs.webkit.org/show_bug.cgi?id=108102
Reviewed by Carlos Garcia Campos.
Test: platform/gtk/fonts/non-bmp-characters.html
Instead of never handling surrogate pairs when dealing with UChar arrays,
abstract way the logic for this into UTF16UChar32Iterator and use it
everywhere in Freetype. This allows the Freetype backend to render
non-BMP characters which are always represented as surrogate pairs in
UTF-16.
* GNUmakefile.list.am: Added UTF16UChar32Iterator to the source list.
* platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::createFontConfigPatternForCharacters): Use the new iterator.
(WebCore::FontCache::getFontDataForCharacters): Ditto.
* platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:
(WebCore::GlyphPage::fill): Ditto. Remove the early return when dealing
with non-BMP data.
* platform/graphics/freetype/SimpleFontDataFreeType.cpp:
(WebCore::SimpleFontData::containsCharacters): Use the new iterator.
* platform/graphics/freetype/UTF16UChar32Iterator.h: Added. An iterator that
extracts UChar32 from UTF-16 UChar arrays.
* GNUmakefile.list.am:
* platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::createFontConfigPatternForCharacters):
(WebCore::FontCache::getFontDataForCharacters):
* platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:
(WebCore::GlyphPage::fill):
* platform/graphics/freetype/SimpleFontDataFreeType.cpp:
(WebCore::SimpleFontData::containsCharacters):
* platform/graphics/freetype/UTF16UChar32Iterator.h: Added.
(WebCore):
(UTF16UChar32Iterator):
(WebCore::UTF16UChar32Iterator::UTF16UChar32Iterator):
(WebCore::UTF16UChar32Iterator::end):
(WebCore::UTF16UChar32Iterator::next):
* GNUmakefile.list.am:
* platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::createFontConfigPatternForCharacters):
* platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:
(WebCore::GlyphPage::fill):
* platform/graphics/freetype/SimpleFontDataFreeType.cpp:
(WebCore::SimpleFontData::containsCharacters):
* platform/graphics/freetype/UTF16UChar32Iterator.h: Added.
(WebCore):
(UTF16UChar32Iterator):
(WebCore::UTF16UChar32Iterator::UTF16UChar32Iterator):
(WebCore::UTF16UChar32Iterator::end):
(WebCore::UTF16UChar32Iterator::next):
2013-01-29 Glenn Hartmann <hartmanng@chromium.org>
Don't overlap test for composited scroll DIVs after scroll
https://bugs.webkit.org/show_bug.cgi?id=107471
Reviewed by Simon Fraser.
We don't need to test for overlap after scroll when both
usesCompositedScrolling and !hasOutOfFlowPositionedDescendant
because:
a) Since we're using composited-scrolling, the composited region
presented by the composited-scrolling element to other non-descendant
layers doesn't change during composited scrolling (it's always the
entire scroll layer), and
b) Since we have no out of flow positioned descendants, the scrolling
descendants all move together, so their overlap with respect to each
other cannot change.
So no descendants nor any non-descendants can have their overlap
affected, so it's safe to skip testing.
No new tests (no change in behaviour).
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateCompositingLayersAfterScroll):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingLayers):
* rendering/RenderLayerCompositor.h:
2013-01-29 Alexis Menard <alexis@webkit.org>
Implement pseudoElement attribute on transition DOM events.
https://bugs.webkit.org/show_bug.cgi?id=107986
Reviewed by Julien Chaffraix.
Implement the pseudoElement attribute documented here :
http://dev.w3.org/csswg/css3-transitions/#transition-events.
This add a new attribute to the transition DOM event useful when
animating pseudo elements. As they are not accessible in JS, it's
very useful to get on which pseudo element the transition just ended.
This patch adds the new attribute on the IDLs of DOM transition events as well
as adding it to the C++ classes representing them. The event
dispatching code have been patched to change the target of the event
(we can't send the current target as it is the actual DOM
representation of the pseudo element).
Test: fast/css-generated-content/pseudo-transition-event.html
* dom/EventDispatcher.cpp:
(WebCore::eventTargetRespectingTargetRules): Change the target of the
event in the case of a pseudo element. We can't expose them through the
public interface so the target is the node they belong to.
(WebCore::EventDispatcher::ensureEventAncestors):
(WebCore::EventDispatcher::dispatchScopedEvent):
(WebCore::EventDispatcher::dispatchEvent):
(WebCore::EventDispatcher::dispatchEventPostProcess):
* dom/EventTarget.cpp:
(WebCore::createMatchingPrefixedEvent):
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::pseudoElementNameForEvents):
(WebCore):
* dom/PseudoElement.h:
* dom/TransitionEvent.cpp:
(WebCore::TransitionEventInit::TransitionEventInit):
(WebCore::TransitionEvent::TransitionEvent):
(WebCore::TransitionEvent::pseudoElement):
(WebCore):
* dom/TransitionEvent.h:
(TransitionEventInit):
(WebCore::TransitionEvent::create):
(TransitionEvent):
* dom/TransitionEvent.idl:
* dom/WebKitTransitionEvent.cpp:
(WebCore::WebKitTransitionEventInit::WebKitTransitionEventInit):
(WebCore::WebKitTransitionEvent::WebKitTransitionEvent):
(WebCore::WebKitTransitionEvent::pseudoElement):
(WebCore):
* dom/WebKitTransitionEvent.h:
(WebKitTransitionEventInit):
(WebCore::WebKitTransitionEvent::create):
(WebKitTransitionEvent):
* dom/WebKitTransitionEvent.idl:
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle): Pass
the pseudo element name when creating the Event objects. If the element
is not a pseudo element then the name will be empty which is what the
spec is telling to do. If the element is a pseudo element then the name
will be the pseudo element's name with "::" as a prefix.
2013-01-29 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Implement GCActivityCallback
https://bugs.webkit.org/show_bug.cgi?id=103998
Reviewed by Simon Hausmann.
Implements the activity triggered garbage collector,
and disables the timer based fallback.
* bindings/js/GCController.cpp:
(WebCore::GCController::GCController):
(WebCore::GCController::garbageCollectSoon):
* bindings/js/GCController.h:
(GCController):
2013-01-29 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: fix bottom span in token highlight in DTE
https://bugs.webkit.org/show_bug.cgi?id=108194
Reviewed by Pavel Feldman.
Change css style for token highlight from "border" to "outline" to
avoid border included in box dimensions.
No new tests: no change in behaviour.
* inspector/front-end/textEditor.css:
(.text-editor-token-highlight):
2013-01-29 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: introduce HighlightDescriptor interface in DTE.
https://bugs.webkit.org/show_bug.cgi?id=108161
Reviewed by Pavel Feldman.
Introduce new HighlightDescriptor interface and its
RegexHighlightDescriptor implementation and use it in DTE to
support overlay highlight.
No new tests: no change in behaviour.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype.highlightRegex):
(WebInspector.DefaultTextEditor.prototype.removeRegexHighlight):
(WebInspector.TextEditorMainPanel):
(WebInspector.TextEditorMainPanel.prototype.highlightRegex):
(WebInspector.TextEditorMainPanel.prototype.removeRegexHighlight):
(WebInspector.TextEditorMainPanel.prototype._paintLines):
(WebInspector.TextEditorMainPanel.prototype._measureHighlightDescriptor):
(WebInspector.TextEditorMainPanel.HighlightDescriptor): Added.
(WebInspector.TextEditorMainPanel.HighlightDescriptor.prototype.affectsLine):
(WebInspector.TextEditorMainPanel.HighlightDescriptor.prototype.rangesForLine):
(WebInspector.TextEditorMainPanel.HighlightDescriptor.prototype.cssClass):
(WebInspector.TextEditorMainPanel.RegexHighlightDescriptor): Added.
(WebInspector.TextEditorMainPanel.RegexHighlightDescriptor.prototype.affectsLine):
(WebInspector.TextEditorMainPanel.RegexHighlightDescriptor.prototype.rangesForLine):
(WebInspector.TextEditorMainPanel.RegexHighlightDescriptor.prototype.cssClass):
(WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._highlight):
(WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._removeHighlight):
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor.prototype.removeRegexHighlight):
2013-01-29 Grzegorz Czajkowski <g.czajkowski@samsung.com>
[EFL] Unified text checker implementation.
https://bugs.webkit.org/show_bug.cgi?id=107682
Reviewed by Anders Carlsson.
No new tests, covered by editing/spelling tests.
* platform/text/TextChecking.h:
(WebCore):
Enabling unified text checker feature for WebKit-EFL.
2013-01-29 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Wrong indent in Styles sidebar pane
https://bugs.webkit.org/show_bug.cgi?id=108186
Reviewed by Alexander Pavlov.
Added an extra selector to prevent a conflict with a rule in elementsPanel.css.
No new tests.
* inspector/front-end/inspector.css:
(.pane.expanded .section .properties, .event-bar .event-properties):
2013-01-29 Florin Malita <fmalita@chromium.org>
[Chromium] Unreviewed gardening.
Update bindings-tests results after http://trac.webkit.org/changeset/141034.
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore):
(WebCore::checkTypeOrDieTrying):
(WebCore::V8Float64Array::createWrapper):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore):
(WebCore::checkTypeOrDieTrying):
(WebCore::V8TestActiveDOMObject::createWrapper):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore):
(WebCore::checkTypeOrDieTrying):
(WebCore::V8TestCustomNamedGetter::createWrapper):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore):
(WebCore::checkTypeOrDieTrying):
(WebCore::V8TestEventConstructor::createWrapper):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore):
(WebCore::checkTypeOrDieTrying):
(WebCore::V8TestEventTarget::createWrapper):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore):
(WebCore::checkTypeOrDieTrying):
(WebCore::V8TestException::createWrapper):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore):
(WebCore::checkTypeOrDieTrying):
(WebCore::V8TestInterface::createWrapper):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore):
(WebCore::checkTypeOrDieTrying):
(WebCore::V8TestMediaQueryListListener::createWrapper):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore):
(WebCore::checkTypeOrDieTrying):
(WebCore::V8TestNamedConstructor::createWrapper):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore):
(WebCore::checkTypeOrDieTrying):
(WebCore::V8TestNode::createWrapper):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore):
(WebCore::checkTypeOrDieTrying):
(WebCore::V8TestObj::createWrapper):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore):
(WebCore::checkTypeOrDieTrying):
(WebCore::V8TestOverloadedConstructors::createWrapper):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore):
(WebCore::checkTypeOrDieTrying):
(WebCore::V8TestSerializedScriptValueInterface::createWrapper):
2013-01-29 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] support instrumenting canvases in iframes (backend side)
https://bugs.webkit.org/show_bug.cgi?id=107951
Reviewed by Pavel Feldman.
Accept optional FrameId argument for captureFrame and startCapturing commands.
Add event to the protocol to inform about instrumented canvas context creation.
* inspector/Inspector.json:
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
(WebCore::InspectorCanvasAgent::hasUninstrumentedCanvases):
(WebCore::InspectorCanvasAgent::captureFrame):
(WebCore::InspectorCanvasAgent::startCapturing):
(WebCore::InspectorCanvasAgent::getTraceLog):
(WebCore::InspectorCanvasAgent::replayTraceLog):
(WebCore::InspectorCanvasAgent::getResourceInfo):
(WebCore::InspectorCanvasAgent::getResourceState):
(WebCore::InspectorCanvasAgent::wrapCanvas2DRenderingContextForInstrumentation):
(WebCore::InspectorCanvasAgent::wrapWebGLRenderingContextForInstrumentation):
(WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
(WebCore):
(WebCore::InspectorCanvasAgent::findFramesWithUninstrumentedCanvases):
(WebCore::InspectorCanvasAgent::frameNavigated):
(WebCore::InspectorCanvasAgent::frameDetached):
* inspector/InspectorCanvasAgent.h:
(WebCore):
(WebCore::InspectorCanvasAgent::create):
(InspectorCanvasAgent):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::frameDetachedFromParentImpl):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
2013-01-29 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [CPU Profile] Taking profile crashes renderer.
https://bugs.webkit.org/show_bug.cgi?id=108072
Reviewed by Yury Semikhatsky.
Test: inspector/profiler/cpu-profiler-agent-crash-on-start.html
Fixed null-pointer access.
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::start): Fixed null-pointer access.
(WebCore::ScriptProfiler::stop): Ditto.
2013-01-29 Allan Sandfeld Jensen <allan.jensen@digia.com>
REGRESSION: ChildrenAffectedBy flags lost between siblings which have child elements sharing style
https://bugs.webkit.org/show_bug.cgi?id=105672
Reviewed by Andreas Kling.
Change in how childrenAffectedBy bits were stored made it easier to trigger an issue where childrenAffectedBy bits
were not set due to sharing of styles between cousin elements.
This patch fixes the issue by not sharing styles from children with parents who prevent sharing.
Tests: fast/selectors/cousin-stylesharing-adjacent-selector.html
fast/selectors/cousin-stylesharing-last-child-selector.html
* css/StyleResolver.cpp:
(WebCore::parentElementPreventsSharing):
(WebCore::StyleResolver::locateCousinList):
* dom/Element.cpp:
(WebCore::Element::hasFlagsSetDuringStylingOfChildren):
* dom/Element.h:
(Element):
2013-01-29 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: [Regression] Search across all sources is broken.
https://bugs.webkit.org/show_bug.cgi?id=108157
Reviewed by Pavel Feldman.
Test: http/tests/inspector/search/scripts-search-scope.html
* inspector/front-end/ScriptsSearchScope.js:
(WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):
2013-01-29 Mike West <mkwst@chromium.org>
IDBFactory::webkitGetDatabaseNames should raise DOMExceptions.
https://bugs.webkit.org/show_bug.cgi?id=108154
Reviewed by Jochen Eisinger.
In order to properly support blocking third-party IndexedDB usage,
open(), getDatabaseNames(), and deleteDatabase() should all throw
SECURITY_ERR when used in a blocked third-party context. That's possible
now for open() and deleteDatabase(), but getDatabaseNames() can't
currently raise exceptions.
This patch adjusts the IDL file and implementation. No exceptions are
currently thrown, but that will change as soon as wkbug.com/94171 lands.
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::getDatabaseNames):
* Modules/indexeddb/IDBFactory.h:
(IDBFactory):
* Modules/indexeddb/IDBFactory.idl:
Add "raises (DOMException)" to getDatabaseNames, and adjust the
implementation to match.
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
Pass in an ExceptionCode when calling getDatabaseNames, and handle
possible exceptions.
2013-01-29 Hayato Ito <hayato@chromium.org>
Revert an accidentally changed line of EventHander::handleMousePressEvent(PlatformMouseEvent&) in r135650.
https://bugs.webkit.org/show_bug.cgi?id=108165
Reviewed by Hajime Morita.
No new tests.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
2013-01-29 Kent Tamura <tkent@chromium.org>
FeatureObserver: Input types are counted unexpectedly in a page with Modernizr
https://bugs.webkit.org/show_bug.cgi?id=108141
Reviewed by Kentaro Hara.
We don't want to record input type instantiation by Modernizr. Modernizr
creates input elements with these types, append it to document.body, and
render it with visibility:hidden. So, we record input types only when
they are attached without visibility:hidden.
No new tests. FeatureObserver is not testable by layout test.
* html/InputType.cpp:
(WebCore::InputType::create): Remove FeatureObserver::observe
callsites. They are moved to TextInputType::attach.
(WebCore::InputType::observeFeatureIfVisible):
Added. A helper for attach().
* html/InputType.h:
(InputType): Add observeFeatureIfVisible.
* html/ColorInputType.cpp:
(WebCore::ColorInputType::create):
Remove a FeatureObserver::observe callsite.
(WebCore::ColorInputType::attach):
Calls FetureObserver through InputType::observeFeatureIfVisible.
* html/ColorInputType.h:
(ColorInputType): Declare attach.
* html/DateInputType.cpp: Ditto.
* html/DateInputType.h: Ditto.
* html/DateTimeInputType.cpp: Ditto.
* html/DateTimeInputType.h: Ditto.
* html/DateTimeLocalInputType.cpp: Ditto.
* html/DateTimeLocalInputType.h: Ditto.
* html/MonthInputType.cpp: Ditto.
* html/MonthInputType.h: Ditto.
* html/RangeInputType.cpp: Ditt
* html/RangeInputType.h: Ditto.
* html/TimeInputType.cpp: Ditto.
* html/TimeInputType.h: Ditto.
* html/WeekInputType.cpp: Ditto.
* html/WeekInputType.h: Ditto.
* html/TextFieldInputType.h:
(TextFieldInputType):
Make attach protected in order that sub classes can call it.
* html/EmailInputType.cpp:
(WebCore::EmailInputType::create):
Remove a FeatureObserver::observe callsite.
(WebCore::EmailInputType::attach): Calls FetureObserver through
InputType::observeFeatureIfVisible after TextFieldInptuType::attach.
* html/EmailInputType.h:
(EmailInputType):Declare attach.
* html/NumberInputType.cpp: Ditto.
* html/NumberInputType.h: Ditto.
* html/SearchInputType.cpp: Ditto.
* html/SearchInputType.h: Ditto.
* html/TelephoneInputType.cpp: Ditto.
* html/TelephoneInputType.h: Ditto.
* html/URLInputType.cpp: Ditto.
* html/URLInputType.h: Ditto.
* html/TextInputType.cpp:
(WebCore::TextInputType::attach):
Move the code for type fallback from InputType::create.
* html/TextInputType.h:
(TextInputType): Declare attach.
2013-01-29 Michael Brüning <michael.bruning@digia.com>
[Qt][WK1] Reflect recursion limit and loop checks also for list conversions.
https://bugs.webkit.org/show_bug.cgi?id=107950
Reviewed by Allan Sandfeld Jensen.
No new tests, bugfix, no behavioral change.
Make conversions from Javascript values to QLists take the maximum
recursion depth into consideration and check for objects that were
already visited. Otherwise, the conversion may recurse until the
stack is full and then cause a segmentation fault.
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::convertToList):
(JSC::Bindings::convertValueToQVariant):
2013-01-29 Elliott Sprehn <esprehn@chromium.org>
Clean up interface to ElementShadow
https://bugs.webkit.org/show_bug.cgi?id=108158
Reviewed by Hajime Morita.
Lots of general clean up to ElementShadow removing unused headers,
adding a create() method that returns a PassOwnPtr, adding missing const,
and moving short inline methods into the class definition so it's easier
to understand what methods do what.
No new tests, just refactoring.
* dom/Element.cpp:
(WebCore::Element::ensureShadow):
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::childNeedsStyleRecalc):
(WebCore::ElementShadow::needsStyleRecalc):
* dom/ElementShadow.h:
(WebCore::ElementShadow::create):
(ElementShadow):
(WebCore::ElementShadow::~ElementShadow):
(WebCore::ElementShadow::youngestShadowRoot):
(WebCore::ElementShadow::oldestShadowRoot):
(WebCore::ElementShadow::distributor):
(WebCore::ElementShadow::ElementShadow):
(WebCore::ElementShadow::containingShadow):
2013-01-29 Elliott Sprehn <esprehn@chromium.org>
Store ShadowRootType inside the bitfield
https://bugs.webkit.org/show_bug.cgi?id=108147
Reviewed by Dimitri Glazkov.
We can simplify the interface to ShadowRoot by storing the enum value of
ShadowRootType inside the bitfield like we do in the rest of WebCore.
No new tests, just refactoring.
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
(WebCore::ShadowRoot::create):
* dom/ShadowRoot.h:
(WebCore::ShadowRoot::type):
(ShadowRoot):
2013-01-29 Jochen Eisinger <jochen@chromium.org>
REGRESSION(r141070): Broke debug build
https://bugs.webkit.org/show_bug.cgi?id=108159
Unreviewed build fix.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::pumpTokenizer):
2013-01-28 Adam Barth <abarth@webkit.org>
HTMLDocumentParser should hold the HTMLToken using an OwnPtr
https://bugs.webkit.org/show_bug.cgi?id=107762
Reviewed by Eric Seidel.
Using an OwnPtr will let us detach the HTMLToken from the
HTMLDocumentParser and send it to the BackgroundHTMLParser for further
processing.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):
* html/parser/CompactHTMLToken.cpp:
(WebCore::CompactHTMLToken::CompactHTMLToken):
* html/parser/CompactHTMLToken.h:
(CompactHTMLToken):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::pumpTokenizer):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
2013-01-28 Huang Dongsung <luxtella@company100.net>
[Texmap] Refactor code related to debug border and repaint count.
https://bugs.webkit.org/show_bug.cgi?id=105787
Reviewed by Noam Rosenthal.
It is a follow-up patch not to change layout test results.
The previous patch sets GraphicsLayer::m_usingTiledLayer to true when using a
backing store. When the variable is true, dumpLayer() adds (usingTiledLayer 1),
but most of ports don't set m_usingTiledLayer to true. So we don't use
m_usingTiledLayer to match the test results of other ports.
After this patch, Texture Mapper draws debug visuals for a tiled backing
with different color from safari.
No new tests. Debug feature, not covered in tests.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::updateDebugBorderAndRepaintCountIfNeeded):
2013-01-28 Elliott Sprehn <esprehn@chromium.org>
Handle createShadowSubtree inside of ensureUserAgentShadowRoot
https://bugs.webkit.org/show_bug.cgi?id=108116
Reviewed by Dimitri Glazkov.
Instead of making everyone create the UserAgentShadowRoot manually all
over, centralize it in ensureUserAgentShadowRoot() and add a notification
Element::didAddUserAgentShadowRoot that lets elements fill in the subtree.
This lets us get rid of lots of code duplication.
No new tests, just refactoring.
* dom/Element.cpp:
(WebCore::Element::ensureUserAgentShadowRoot):
* dom/Element.h:
(WebCore::Element::didAddUserAgentShadowRoot):
(Element):
* html/HTMLDetailsElement.cpp:
(WebCore::DetailsSummaryElement::create):
(WebCore::HTMLDetailsElement::create):
(WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):
* html/HTMLDetailsElement.h:
(HTMLDetailsElement):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::create):
(WebCore::HTMLInputElement::didAddUserAgentShadowRoot):
* html/HTMLInputElement.h:
(HTMLInputElement):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::willAddAuthorShadowRoot):
(WebCore::HTMLMediaElement::createMediaControls):
* html/HTMLMediaElement.h:
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::create):
(WebCore::HTMLMeterElement::didAddUserAgentShadowRoot):
* html/HTMLMeterElement.h:
(HTMLMeterElement):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::create):
(WebCore::HTMLProgressElement::didAddUserAgentShadowRoot):
* html/HTMLProgressElement.h:
* html/HTMLSummaryElement.cpp:
(WebCore::HTMLSummaryElement::create):
(WebCore::HTMLSummaryElement::didAddUserAgentShadowRoot):
* html/HTMLSummaryElement.h:
(HTMLSummaryElement):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::create):
(WebCore::HTMLTextAreaElement::didAddUserAgentShadowRoot):
* html/HTMLTextAreaElement.h:
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlPanelMuteButtonElement::create):
(WebCore::MediaControlVolumeSliderMuteButtonElement::create):
(WebCore::MediaControlPlayButtonElement::create):
(WebCore::MediaControlOverlayPlayButtonElement::create):
(WebCore::MediaControlSeekForwardButtonElement::create):
(WebCore::MediaControlSeekBackButtonElement::create):
(WebCore::MediaControlRewindButtonElement::create):
(WebCore::MediaControlReturnToRealtimeButtonElement::create):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
(WebCore::MediaControlTimelineElement::create):
(WebCore::MediaControlPanelVolumeSliderElement::create):
(WebCore::MediaControlFullscreenVolumeSliderElement::create):
(WebCore::MediaControlFullscreenButtonElement::create):
(WebCore::MediaControlFullscreenVolumeMinButtonElement::create):
(WebCore::MediaControlFullscreenVolumeMaxButtonElement::create):
* html/shadow/MediaControlsBlackBerry.cpp:
(WebCore::MediaControlFullscreenPlayButtonElement::create):
(WebCore::MediaControlFullscreenFullscreenButtonElement::create):
(WebCore::MediaControlFullscreenTimelineElement::create):
(WebCore::MediaControlAudioMuteButtonElement::create):
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::create):
* svg/SVGTRefElement.h:
(SVGTRefElement):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::create):
* svg/SVGUseElement.h:
(SVGUseElement):
2013-01-28 Vineet Chaudhary <rgf748@motorola.com>
HTMLOutputElement::htmlFor should be readonly
https://bugs.webkit.org/show_bug.cgi?id=101898
Reviewed by Kentaro Hara.
The spec says htmlFor should be readonly, but WebKit implements it as no-readonly.
Spec: http://dev.w3.org/html5/spec-preview/the-output-element.html
No new tests. Modified existing test fast/dom/HTMLOutputElement/dom-settable-token-list.html
to work as expected.
* GNUmakefile.list.am: Removed JSHTMLOutputElementCustom.cpp
* Target.pri: Ditto
* UseJSC.cmake: Ditto
* UseV8.cmake: Removed V8HTMLOutputElementCustom.cpp
* WebCore.gypi: Removed V8HTMLOutputElementCustom.cpp
* WebCore.vcproj/WebCore.vcproj: Removed JSHTMLOutputElementCustom.cpp
* WebCore.vcxproj/WebCore.vcxproj: Ditto
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto
* WebCore.xcodeproj/project.pbxproj: Ditto
* bindings/js/JSBindingsAllInOne.cpp: Ditto
* bindings/js/JSHTMLOutputElementCustom.cpp: Removed.
* bindings/v8/custom/V8HTMLOutputElementCustom.cpp: Removed.
* html/HTMLOutputElement.idl: Made htmlFor attribute readonly.
2013-01-28 Tien-Ren Chen <trchen@chromium.org>
Fix disambiguation popup for new-style page scale
https://bugs.webkit.org/show_bug.cgi?id=107391
Reviewed by Adam Barth.
This patch corrects various coordinate conversion for disambiguation
popup for the new-style page scale mode.
New unit test: WebFrameTest.DisambiguationPopupPageScale
* page/TouchDisambiguation.cpp:
(WebCore::findGoodTouchTargets):
* page/TouchDisambiguation.h:
(WebCore):
2013-01-28 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r141049.
http://trac.webkit.org/changeset/141049
https://bugs.webkit.org/show_bug.cgi?id=108151
Caused some indexed tests to crash. (Requested by keishi on
#webkit).
* Modules/indexeddb/IDBCallbacks.h:
(WebCore::IDBCallbacks::onUpgradeNeeded):
(WebCore::IDBCallbacks::onSuccess):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::openConnection):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::onSuccess):
* Modules/indexeddb/IDBOpenDBRequest.h:
(IDBOpenDBRequest):
2013-01-28 Adam Barth <abarth@webkit.org>
Layout Test http/tests/workers/terminate-during-sync-operation.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=79013
Reviewed by David Levin.
We need to use an isolated copy because we're going to use it on a
different thread.
* Modules/webdatabase/AbstractDatabase.cpp:
(WebCore::AbstractDatabase::AbstractDatabase):
2013-01-28 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] Gesture event is not fired in ShadowDOM
https://bugs.webkit.org/show_bug.cgi?id=107797
Reviewed by Dimitri Glazkov.
Gesture event (e.g. touchstart) is not fired in ShadowDOM.
We have to run event retargetting algorithm to retarget touchTarget, however it is not implemented yet (Bug 107800).
Until it's implemented, we use the shadow ancestor node of touchTarget in Document treescope as touchTarget
for backward compatibility. If a touch event is fired in nested ShadowDOM, touchTarget will be always element in
document tree, so an event listener in ShadowDOM will get a wrong touchTarget. However we prioritized
the correctness of document tree.
Test: fast/dom/shadow/touch-event.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleTouchEvent): Allows us to take elements in ShadowDOM.
2013-01-28 Alexandre Elias <aelias@chromium.org>
Make page scale shrink FrameView in applyPageScaleInCompositor mode
https://bugs.webkit.org/show_bug.cgi?id=107424
Reviewed by Levi Weintraub.
If applyPageScaleFactorInCompositor is enabled (Chromium-only setting),
instead of the entire document expanding as the user pinch zooms, the
viewport shrinks instead. This patch applies the pageScaleFactor to
visibleContentRect to get this behavior, and simplifies Chromium's
resize logic to stop hiding the true viewport size from WebCore.
I verified that the scaling makes sense for all the callers of
visibleContentRect. The exceptions are clip-layer size,
layout size in non-fixed-layout mode, and text autosizing, which need
the original unscaled size. Therefore I added a new method
unscaledVisibleContentSize() to ScrollView/FrameView.
This patch also modifies Page::setPageScaleFactor to perform no
invalidates or layout when applyPageScaleFactorInCompositor is true,
and also writes pageScaleFactor into HistoryItems instead of using
frameScaleFactor.
Since all behavior changes are tied to applyPageScaleFactorInCompositor,
this patch should be a no-op for non-Chromium ports.
New unit tests in WebFrameTest.cpp.
* loader/HistoryController.cpp:
(WebCore::HistoryController::saveScrollPositionAndViewStateToItem):
Use pageScaleFactor here because frameScaleFactor always returns 1
with our setting.
* page/FrameView.cpp:
(WebCore::FrameView::visibleContentScaleFactor):
(WebCore):
* page/FrameView.h:
(FrameView):
* page/Page.cpp:
(WebCore::Page::setPageScaleFactor): Make setPageScaleFactor stop
invalidating/layouting as this is handled by our compositor.
* platform/ScrollView.cpp:
(WebCore::ScrollView::unscaledVisibleContentSize): This new method
just returns the original visible rect without pageScaleFactor being
applied.
(WebCore):
(WebCore::ScrollView::visibleContentRect): This now is divided by
pageScaleFactor if our setting is active.
(WebCore::ScrollView::layoutSize):
* platform/ScrollView.h:
(WebCore::ScrollView::visibleContentScaleFactor): Returns
pageScaleFactor if the visible rect is scaled, 1 normally.
(ScrollView):
(WebCore::ScrollView::layoutWidth):
(WebCore::ScrollView::layoutHeight):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::frameViewDidChangeSize):
(WebCore::RenderLayerCompositor::updateRootLayerPosition): Clip layer
should use unscaled size, because it's above the root scroll layer
on the layer tree (i.e. page scale isn't applied on it).
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::processSubtree): Text autosizer should use
unscaled size, because it cares about physical screen size.
2013-01-28 Geoffrey Garen <ggaren@apple.com>
Static size inference for JavaScript objects
https://bugs.webkit.org/show_bug.cgi?id=108093
Reviewed by Phil Pizlo.
* ForwardingHeaders/runtime/ObjectConstructor.h: Added.
* bindings/js/JSInjectedScriptHostCustom.cpp:
* bindings/js/JSSQLResultSetRowListCustom.cpp: Include ObjectConstructor.h because
that's where createEmptyObject() is located now.
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::deserialize): Updated for interface change.
2013-01-28 Alec Flett <alecflett@chromium.org>
IndexedDB: Pass metadata in to IDBOpenDBRequest.onUpgradeNeeded/onSuccess
https://bugs.webkit.org/show_bug.cgi?id=103920
Reviewed by Dimitri Glazkov.
Update IDBCallbacks::onSuccess and IDBCallbacks::onUpgradeNeeded to
pass through a metadata parameter. While there, remove the unused
IDBTransactionBackendInterface parameter to onUpgradeNeeded.
As this is another step in the IDB refactor, I've simplified future cleanup
work by making the WebKit API code still use the old API. This
will make it possible to outright remove code on the chromium side rather
than another three-step checkin.
No new tests, as this is more refactoring.
* Modules/indexeddb/IDBCallbacks.h:
(WebCore::IDBCallbacks::onUpgradeNeeded): new method signature.
(WebCore::IDBCallbacks::onSuccess): new method signature.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::openConnection):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onUpgradeNeeded): use passed-in metadata.
(WebCore::IDBOpenDBRequest::onSuccess): use passed-in metadata.
* Modules/indexeddb/IDBOpenDBRequest.h:
(IDBOpenDBRequest):
2013-01-28 Simon Fraser <simon.fraser@apple.com>
position:fixed that doesn't render any content should not force compositing
https://bugs.webkit.org/show_bug.cgi?id=108112
Reviewed by Beth Dakin.
It's not uncommon for pages to have position:fixed elements with no content.
When these are behind other elements, they can cause those other elements
to become composited, using lots of backing store memory.
Optimize for the case where the position:fixed element has no rendered
content and no children by not making it composited in that case.
Test: compositing/layer-creation/fixed-position-no-content.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hasNonEmptyChildRenderers): Moved from RenderLayerBacking.cpp.
(WebCore::hasBoxDecorations): Ditto.
(WebCore::RenderLayer::hasBoxDecorationsOrBackground): Ditto.
(WebCore::RenderLayer::hasVisibleBoxDecorations): Check for visibility:visible, box decorations and
overflow controls.
(WebCore::RenderLayer::isVisuallyNonEmpty): Returns true if this layer has some visible
representation.
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Need to call updateDescendantDependentFlags()
to ensure that the visibility flags are up to date.
(WebCore::RenderLayerBacking::updateDrawsContent): Call RenderLayer::hasBoxDecorationsOrBackground() now.
(WebCore::RenderLayerBacking::paintsBoxDecorations): Call RenderLayer::hasVisibleBoxDecorations() now.
(WebCore::RenderLayerBacking::paintsChildren): Call RenderLayer::hasNonEmptyChildRenderers().
(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Whitespace.
(WebCore::RenderLayerBacking::containsPaintedContent): Call RenderLayer::hasBoxDecorationsOrBackground().
(WebCore::RenderLayerBacking::isDirectlyCompositedImage): Ditto.
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition): If the layer has no content to paint,
or visible descendant layers, then don't make it composited.
2013-01-28 Simon Fraser <simon.fraser@apple.com>
Avoid doing work at 60fps for tiled layers when not necessary
https://bugs.webkit.org/show_bug.cgi?id=108135
Reviewed by Dean Jackson.
When there were any tiled layers on the page, we would run a CVDisplayLink
to cause GraphicsLayerCA to flush, in order to update tiled layer visible rects.
This is overkill; we should only do this if the tiled layer is affected by
an accelerated animation.
Fix by tracking whether an ancestor has a running animation when committing
GraphicsLayerCAs.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::flushCompositingState): Start with an empty CommitState.
(WebCore::GraphicsLayerCA::recursiveCommitChanges): Push CommitState for
each layer, which tracks whether an ancestor has a running transform animation.
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): updateLayerAnimations() renamed.
(WebCore::GraphicsLayerCA::updateAnimations): Renamed from updateLayerAnimations().
(WebCore::GraphicsLayerCA::isRunningTransformAnimation): Look in the map of running
animations for one affecting transform. This list is normally small (one item).
* platform/graphics/ca/GraphicsLayerCA.h:
(WebCore::GraphicsLayerCA::CommitState::CommitState):
2013-01-28 Simon Fraser <simon.fraser@apple.com>
compositing/reflections/become-simple-composited-reflection.html pixel result shows bug
https://bugs.webkit.org/show_bug.cgi?id=107174
Reviewed by Dean Jackson.
When we have a content layer for solid color, we need to update reflection
clones when that color changes.
Tested by the pixel test for compositing/reflections/become-simple-composited-reflection.html.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateContentsColorLayer):
2013-01-28 Tom Sepez <tsepez@chromium.org>
[v8] Security feature: JavaScript Bindings hardening
https://bugs.webkit.org/show_bug.cgi?id=106608
The patch adds a check at wrapper creation time to enuse that the
object being wrapped is not already free, to the extent that we know
the information about the type of the object as provided in the IDL.
Reviewed by Adam Barth.
Patch is correct if existing tests pass without new crashes.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateImplementation):
(GenerateToV8Converters):
(GetNativeTypeForConversions):
(GetGnuVTableRefForInterface):
(GetGnuVTableNameForInterface):
(GetGnuMangledNameForInterface):
(GetGnuVTableOffsetForType):
(GetWinVTableRefForInterface):
(GetWinVTableNameForInterface):
(GetWinMangledNameForInterface):
(GetNamespaceForInterface):
(GetImplementationLacksVTableForInterface):
(GetV8SkipVTableValidationForInterface):
Update code generation to add object validity tests under the control
of the ENABLE_BINDING_INTEGRITY option.
* Modules/filesystem/DirectoryReader.idl:
* Modules/filesystem/DirectoryReaderSync.idl:
* Modules/filesystem/EntryArray.idl:
* Modules/filesystem/EntryArraySync.idl:
* Modules/filesystem/Metadata.idl:
* Modules/gamepad/Gamepad.idl:
* Modules/gamepad/GamepadList.idl:
* Modules/geolocation/Geoposition.idl:
* Modules/geolocation/PositionError.idl:
* Modules/indexeddb/IDBFactory.idl:
* Modules/indexeddb/IDBIndex.idl:
* Modules/indexeddb/IDBKeyRange.idl:
* Modules/indexeddb/IDBObjectStore.idl:
* Modules/mediastream/RTCStatsElement.idl:
* Modules/mediastream/RTCStatsReport.idl:
* Modules/quota/StorageInfo.idl:
* Modules/speech/SpeechGrammar.idl:
* Modules/speech/SpeechGrammarList.idl:
* Modules/speech/SpeechRecognitionAlternative.idl:
* Modules/speech/SpeechRecognitionResult.idl:
* Modules/speech/SpeechRecognitionResultList.idl:
* Modules/webaudio/AudioBuffer.idl:
* Modules/webaudio/AudioDestinationNode.idl:
* Modules/webaudio/AudioListener.idl:
* Modules/webaudio/AudioSourceNode.idl:
* Modules/webaudio/WaveTable.idl:
* Modules/webdatabase/SQLError.idl:
* Modules/webdatabase/SQLException.idl:
* Modules/webdatabase/SQLResultSet.idl:
* Modules/webdatabase/SQLResultSetRowList.idl:
* Modules/webdatabase/SQLTransaction.idl:
* Modules/webdatabase/SQLTransactionSync.idl:
* bindings/scripts/IDLAttributes.txt:
* css/CSSPrimitiveValue.idl:
* css/CSSRule.idl:
* css/CSSRuleList.idl:
* css/CSSStyleDeclaration.idl:
* css/CSSValue.idl:
* css/CSSValueList.idl:
* css/Counter.idl:
* css/MediaList.idl:
* css/MediaQueryList.idl:
* css/RGBColor.idl:
* css/Rect.idl:
* css/StyleSheetList.idl:
* css/WebKitCSSFilterValue.idl:
* css/WebKitCSSMixFunctionValue.idl:
* css/WebKitCSSTransformValue.idl:
* dom/ClientRect.idl:
* dom/ClientRectList.idl:
* dom/Clipboard.idl:
* dom/DOMCoreException.idl:
* dom/DOMError.idl:
* dom/DOMImplementation.idl:
* dom/DOMNamedFlowCollection.idl:
* dom/DOMStringList.idl:
* dom/DOMStringMap.idl:
* dom/DataTransferItem.idl:
* dom/DataTransferItemList.idl:
* dom/DocumentFragment.idl:
* dom/Element.idl:
* dom/Entity.idl:
* dom/Event.idl:
* dom/EventException.idl:
* dom/MessageChannel.idl:
* dom/MouseEvent.idl:
* dom/MutationObserver.idl:
* dom/MutationRecord.idl:
* dom/NamedNodeMap.idl:
* dom/NodeFilter.idl:
* dom/NodeIterator.idl:
* dom/NodeList.idl:
* dom/Range.idl:
* dom/RangeException.idl:
* dom/Touch.idl:
* dom/TouchList.idl:
* dom/TreeWalker.idl:
* fileapi/FileError.idl:
* fileapi/FileException.idl:
* fileapi/FileList.idl:
* html/DOMFormData.idl:
* html/DOMTokenList.idl:
* html/DOMURL.idl:
* html/HTMLAllCollection.idl:
* html/HTMLCollection.idl:
* html/HTMLDialogElement.idl:
* html/HTMLDivElement.idl:
* html/HTMLDocument.idl:
* html/HTMLElement.idl:
* html/HTMLImageElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLSelectElement.idl:
* html/HTMLSpanElement.idl:
* html/HTMLUnknownElement.idl:
* html/ImageData.idl:
* html/MediaError.idl:
* html/MediaKeyError.idl:
* html/TimeRanges.idl:
* html/ValidityState.idl:
* html/canvas/ArrayBuffer.idl:
* html/canvas/ArrayBufferView.idl:
* html/canvas/CanvasGradient.idl:
* html/canvas/CanvasPattern.idl:
* html/canvas/Float32Array.idl:
* html/canvas/Float64Array.idl:
* html/canvas/Int16Array.idl:
* html/canvas/Int32Array.idl:
* html/canvas/Int8Array.idl:
* html/canvas/Uint16Array.idl:
* html/canvas/Uint32Array.idl:
* html/canvas/Uint8Array.idl:
* html/canvas/Uint8ClampedArray.idl:
* html/canvas/WebGLActiveInfo.idl:
* html/canvas/WebGLShaderPrecisionFormat.idl:
* html/track/TextTrack.idl:
* html/track/TextTrackCue.idl:
* html/track/TextTrackCueList.idl:
* inspector/InjectedScriptHost.idl:
* inspector/InspectorFrontendHost.idl:
* inspector/JavaScriptCallFrame.idl:
* page/Coordinates.idl:
* page/Crypto.idl:
* page/MemoryInfo.idl:
* page/PagePopupController.idl:
* page/PerformanceEntryList.idl:
* page/SpeechInputResult.idl:
* page/SpeechInputResultList.idl:
* page/WebKitPoint.idl:
* svg/SVGAnimatedAngle.idl:
* svg/SVGAnimatedBoolean.idl:
* svg/SVGAnimatedEnumeration.idl:
* svg/SVGAnimatedInteger.idl:
* svg/SVGAnimatedLength.idl:
* svg/SVGAnimatedLengthList.idl:
* svg/SVGAnimatedNumber.idl:
* svg/SVGAnimatedNumberList.idl:
* svg/SVGAnimatedPreserveAspectRatio.idl:
* svg/SVGAnimatedRect.idl:
* svg/SVGAnimatedString.idl:
* svg/SVGAnimatedTransformList.idl:
* svg/SVGColor.idl:
* svg/SVGException.idl:
* svg/SVGPaint.idl:
* svg/SVGPathSeg.idl:
* svg/SVGRenderingIntent.idl:
* svg/SVGUnitTypes.idl:
* svg/SVGZoomAndPan.idl:
* testing/MallocStatistics.idl:
* testing/TypeConversions.idl:
* workers/WorkerLocation.idl:
* xml/DOMParser.idl:
* xml/XMLHttpRequestException.idl:
* xml/XMLSerializer.idl:
* xml/XPathEvaluator.idl:
* xml/XPathException.idl:
* xml/XPathExpression.idl:
* xml/XPathNSResolver.idl:
* xml/XPathResult.idl:
* xml/XSLTProcessor.idl:
Add exceptions to binding integrity checks to IDL.
2013-01-28 Alpha Lam <hclam@chromium.org>
[chromium] Build fix.
Unreviewed build fix. Remove the use of SkMutex from DiscardablePixelRef.
* platform/graphics/chromium/DiscardablePixelRef.cpp:
(WebCore::DiscardablePixelRefAllocator::allocPixelRef):
(WebCore::DiscardablePixelRef::DiscardablePixelRef):
* platform/graphics/chromium/DiscardablePixelRef.h:
(DiscardablePixelRef):
2013-01-28 Benjamin Poulain <benjamin@webkit.org>
String constructed from Literals should be non-empty
https://bugs.webkit.org/show_bug.cgi?id=108103
Reviewed by Eric Carlson.
Strings from literal should not be constructed from empty strings. Use emptyString()
instead.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canPlayType):
2013-01-27 Kentaro Hara <haraken@chromium.org>
Implement CompositionEvent constructor
https://bugs.webkit.org/show_bug.cgi?id=107919
Reviewed by Sam Weinig.
This patch implements a CompositionEvent constructor under
a DOM4_EVENTS_CONSTRUCTOR flag.
Spec: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm
Test: fast/events/constructors/composition-event-constructor.html
* dom/CompositionEvent.cpp:
(WebCore::CompositionEventInit::CompositionEventInit):
(WebCore):
(WebCore::CompositionEvent::CompositionEvent):
* dom/CompositionEvent.h:
(CompositionEventInit):
(WebCore):
(CompositionEvent):
(WebCore::CompositionEvent::create):
(WebCore::CompositionEvent::data):
* dom/CompositionEvent.idl:
2013-01-28 Pratik Solanki <psolanki@apple.com>
PLATFORM(IOS) should come before __MAC_OS_X_VERSION_MIN_REQUIRED
https://bugs.webkit.org/show_bug.cgi?id=108101
Reviewed by Benjamin Poulain.
Since iOS does not define __MAC_OS_X_VERSION_MIN_REQUIRED, any usage of
__MAC_OS_X_VERSION_MIN_REQUIRED should be after a PLATFORM(IOS) check.
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2013-01-28 Kalev Lember <kalevlember@gmail.com>
[GTK] Pass ICU cppflags to libWebCoreSVG.la build
https://bugs.webkit.org/show_bug.cgi?id=108032
Reviewed by Martin Robinson.
Fixes a linking error with new libicu 50 on Fedora rawhide.
* GNUmakefile.am:
2013-01-28 Min Qin <qinmin@chromium.org>
adding support for DiscardablePixelRef for caching lazily decoded images
https://bugs.webkit.org/show_bug.cgi?id=106842
Reviewed by Stephen White.
This change allows using discardable memory in the deferred image decoding path.
Fully decoded images are unpinned and stored in ImageDecodingStore.
Partially decoded images are pinned and stored in ImageDecodingStore.
Discardable memory allocation could fail. Fall back to heap allocation in that case.
There is a separate size limit for heap entries and no limit on discardable entries.
New tests are added to ImageDecodingStoreTests
* WebCore.gypi:
* platform/graphics/chromium/DiscardablePixelRef.cpp: Added.
Added implementation of the DiscardablePixelRef object that is backed by discardable memory.
Memory allocated to the DiscardablePixelRef can be purged when it is unlocked.
(WebCore::DiscardablePixelRefAllocator::allocPixelRef):
(WebCore):
(WebCore::DiscardablePixelRef::DiscardablePixelRef):
(WebCore::DiscardablePixelRef::~DiscardablePixelRef):
(WebCore::DiscardablePixelRef::allocAndLockDiscardableMemory):
(WebCore::DiscardablePixelRef::onLockPixels):
(WebCore::DiscardablePixelRef::onUnlockPixels):
(WebCore::DiscardablePixelRef::isDiscardable):
* platform/graphics/chromium/DiscardablePixelRef.h: Added.
Added class definition of the DiscardablePixelRef.
(WebCore):
(DiscardablePixelRefAllocator):
(DiscardablePixelRef):
* platform/graphics/chromium/ImageDecodingStore.cpp:
Added new cache replacement strategy for DiscardablePixelRef.
(WebCore::ImageDecodingStore::lockCache):
(WebCore::ImageDecodingStore::overwriteAndLockCache):
(WebCore::ImageDecodingStore::prune):
(WebCore::ImageDecodingStore::insertCacheInternal):
(WebCore::ImageDecodingStore::removeFromCacheInternal):
* platform/graphics/chromium/ImageDecodingStore.h:
Added isDiscardable() calls to check if a cache entry is discardable.
(WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
(WebCore::ImageDecodingStore::CacheEntry::overwriteCachedImage):
(WebCore::ImageDecodingStore::CacheEntry::isDiscardable):
(CacheEntry):
* platform/graphics/chromium/ImageFrameGenerator.cpp:
Added some code to pass DiscardableMemoryAllocator to the image decoder.
(WebCore::ImageFrameGenerator::tryToScale):
(WebCore::ImageFrameGenerator::decode):
* platform/graphics/chromium/ImageFrameGenerator.h:
Added a new member variable of type DiscardableMemoryAllocator.
(ImageFrameGenerator):
* platform/image-decoders/ImageDecoder.h:
Added methods to pass Allocator to ImageFrame.
(ImageFrame):
(WebCore::ImageFrame::setMemoryAllocator):
(WebCore::ImageFrame::allocator):
(ImageDecoder):
(WebCore::ImageDecoder::setMemoryAllocator):
* platform/image-decoders/skia/ImageDecoderSkia.cpp:
Added code to allocate pixel memory using the allocator passed from the caller.
(WebCore::ImageFrame::ImageFrame):
(WebCore::ImageFrame::operator=):
(WebCore::ImageFrame::setSize):
2013-01-28 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140869.
http://trac.webkit.org/changeset/140869
https://bugs.webkit.org/show_bug.cgi?id=108120
"Crashes on http://en.wikipedia.org/wiki/Wikipedia" (Requested
by tonyg-cr on #webkit).
* page/FrameView.cpp:
(WebCore::FrameView::visibleContentsResized):
* platform/ScrollView.cpp:
(WebCore::ScrollView::setFixedLayoutSize):
(WebCore::ScrollView::setUseFixedLayout):
2013-01-28 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140934, r140935, and r140937.
http://trac.webkit.org/changeset/140934
http://trac.webkit.org/changeset/140935
http://trac.webkit.org/changeset/140937
https://bugs.webkit.org/show_bug.cgi?id=108117
Re-land some speculative rollouts - see wkbug.com/108048 for
context (Requested by jsbell on #webkit).
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.list.am:
* Modules/indexeddb/IDBCallbacks.h:
(IDBCallbacks):
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
* Modules/indexeddb/IDBCursorBackendImpl.h:
(WebCore::IDBCursorBackendImpl::create):
(IDBCursorBackendImpl):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::onVersionChange):
* Modules/indexeddb/IDBDatabase.h:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::setIndexesReady):
(WebCore::OpenCursorOperation::perform):
(WebCore::IDBDatabaseBackendImpl::deleteDatabase):
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):
* Modules/indexeddb/IDBFactory.h:
(WebCore):
(IDBFactory):
* Modules/indexeddb/IDBFactory.idl:
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::openCursor):
* Modules/indexeddb/IDBObjectStore.h:
(WebCore::IDBObjectStore::openCursor):
(IDBObjectStore):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::create):
(WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
(WebCore::IDBOpenDBRequest::onBlocked):
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::dispatchEvent):
* Modules/indexeddb/IDBOpenDBRequest.h:
(IDBOpenDBRequest):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::create):
(WebCore::IDBRequest::IDBRequest):
* Modules/indexeddb/IDBRequest.h:
(IDBRequest):
(WebCore::IDBRequest::taskType):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::scheduleTask):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(WebCore::IDBTransactionBackendImpl::scheduleTask):
(IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/IDBUpgradeNeededEvent.cpp: Removed.
* Modules/indexeddb/IDBUpgradeNeededEvent.h: Removed.
* Modules/indexeddb/IDBUpgradeNeededEvent.idl: Removed.
* Modules/indexeddb/IDBVersionChangeEvent.cpp:
(WebCore::IDBVersionChangeEvent::create):
(WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
* Modules/indexeddb/IDBVersionChangeEvent.h:
(IDBVersionChangeEvent):
(WebCore::IDBVersionChangeEvent::oldVersion):
(WebCore::IDBVersionChangeEvent::newVersion):
* Modules/indexeddb/IDBVersionChangeEvent.idl:
* Modules/indexeddb/IDBVersionChangeRequest.cpp: Removed.
* Modules/indexeddb/IDBVersionChangeRequest.h: Removed.
* Modules/indexeddb/IDBVersionChangeRequest.idl: Removed.
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* dom/EventNames.in:
* dom/EventTarget.h:
(WebCore):
* dom/EventTargetFactory.in:
2013-01-28 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed Mac build fix. Add an export for a function that may be
accessed outside of WebCore (RenderLayer::needsCompositedScrolling).
* WebCore.exp.in:
2013-01-28 Julien Chaffraix <jchaffraix@webkit.org>
Crash inside RenderBlock::layoutRunsAndFloatsInRange in the widow code
https://bugs.webkit.org/show_bug.cgi?id=108084
Reviewed by Dean Jackson.
This is a blind fix based on the code and Chromium's stack-traces.
Unfortunately no new test as I couldn't get a local reproduction.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange):
Added a missing NULL-check: the previous 'while' finish if |lineBox|
is NULL and we don't want to crash in this case.
2013-01-28 Tony Chang <tony@chromium.org>
"clang: warning: not using the clang compiler for C++ inputs" due to hard-coding of /usr/bin/clang in WebCore.gyp
https://bugs.webkit.org/show_bug.cgi?id=108089
Reviewed by Ojan Vafai.
Use gcc since older versions of clang (with Xcode 3.2) warn that they are going to use gcc anyway.
These warnings are showing up on the main Chromium waterfall too:
http://build.chromium.org/p/chromium/builders/Mac/builds/19113/steps/compile/logs/stdio
No new tests, this is a build change.
* WebCore.gyp/WebCore.gyp:
2013-01-28 Elliott Sprehn <esprehn@chromium.org>
Move hasAuthorShadowRoot to Element
https://bugs.webkit.org/show_bug.cgi?id=108071
Reviewed by Dimitri Glazkov.
Move hasAuthorShadowRoot to Element and get rid of unneccesary booleans
in HTMLProgressElement and HTMLMeterElement. Also get rid of
ShadowRoot::isAccessible since it obfuscates what's actually happening
inside of Element::shadowRoot().
No new tests, just refactoring.
* dom/Element.cpp:
(WebCore::Element::shadowRoot):
(WebCore::Element::hasAuthorShadowRoot):
* dom/Element.h:
(Element):
* dom/ShadowRoot.h:
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::HTMLMeterElement):
* html/HTMLMeterElement.h:
(HTMLMeterElement):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::HTMLProgressElement):
* html/HTMLProgressElement.h:
(HTMLProgressElement):
2013-01-28 Elliott Sprehn <esprehn@chromium.org>
Move ensureUserAgentShadowRoot to Element
https://bugs.webkit.org/show_bug.cgi?id=108070
Reviewed by Dimitri Glazkov.
Move ensureUserAgentShadowRoot to Element where the other
methods related to shadow roots are and get rid of the
unnecessarily specific cast to HTMLElement.
No new tests, just refactoring.
* dom/Element.cpp:
(WebCore::Element::ensureUserAgentShadowRoot): Moved from FormAssociatedElement.
* dom/Element.h:
(Element):
* html/FormAssociatedElement.cpp:
* html/FormAssociatedElement.h:
(FormAssociatedElement):
2013-01-28 Ian Vollick <vollick@chromium.org>
Promote composited-scrolling layers to stacking containers.
https://bugs.webkit.org/show_bug.cgi?id=106142
Reviewed by Simon Fraser.
With this patch, RenderLayers that use composited scrolling are
treated as stacking contexts. Since isStackingContainer now depends on
the value of m_needsCompositedScrolling, special care needed to be
taken to ensure that the value of isStackingContainer is not used when
updating m_needsCompositedScrolling. In particular, the code for
rebuilding the layer lists needed to be generalized so that we could
build the layer lists using the value of isStackingContext rather than
isStackingContainer when building the layer lists used to determine if
the descendants are contiguous in stacking order. Also, updating
m_needsCompositedScrolling can now affect stacking container status
and can therefore dirty layer lists.
Test: compositing/overflow/composited-scrolling-creates-a-stacking-container.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
Modified to use layer lists built based on isStackingContext rather
than isStackingContainer.
(WebCore::RenderLayer::updateNeedsCompositedScrolling):
This function can now affect stacking container status and layer
lists.
(WebCore::RenderLayer::rebuildZOrderLists):
Refactored to generalize layer list building.
(WebCore::RenderLayer::collectLayers):
This function can now stop at either stacking containers or
contexts.
(WebCore::RenderLayer::updateLayerListsIfNeeded):
Layer lists may need to be built a 2nd time if we opt into
composited scrolling.
* rendering/RenderLayer.h:
(RenderLayer):
(WebCore::RenderLayer::isStackingContainer):
Returns true if we use composited scrolling.
2013-01-28 Max Vujovic <mvujovic@adobe.com>
[CSS Shaders] Parse @-webkit-filter
https://bugs.webkit.org/show_bug.cgi?id=106837
Reviewed by Dean Jackson.
The new CSS Custom Filters syntax includes an @filter rule:
@filter IDENT { <custom-filter-description> }
IDENT is the filter name. For example:
@filter my-filter { ... }
<custom-filter-description> is a set of CSS properties, which are still under discussion in
the CSSWG.
This patch adds parsing and JS bindings for the prefixed at-rule. It does not add parsing
for any of the at-rule's internal properties.
Spec: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#the-atfilter-rule
Tests: css3/filters/custom/custom-filter-parsing-at-rule-invalid.html
css3/filters/custom/custom-filter-parsing-at-rule-valid.html
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJS):
* bindings/objc/DOMCSS.mm:
(kitClass):
* bindings/v8/custom/V8CSSRuleCustom.cpp:
(WebCore::wrap):
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::createFilterRule):
(WebCore::CSSParser::detectAtToken):
* css/CSSParser.h:
* css/CSSPropertySourceData.h:
* css/CSSRule.h:
* css/CSSRule.idl:
Only contains a CSSStyleDeclaration "style" property, like the other at-rules that are
supposed to contain properties (e.g. CSSStyleRule, CSSFontFaceRule, CSSPageRule).
Eventually, when it's specified, we should expose the filter name as well.
Other at-rules IDL Spec: http://www.w3.org/TR/DOM-Level-2-Style/idl-definitions.html
* css/StyleRule.cpp:
(WebCore::StyleRuleBase::reportMemoryUsage):
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy):
(WebCore::StyleRuleBase::createCSSOMWrapper):
(WebCore::StyleRuleFilter::StyleRuleFilter):
(WebCore::StyleRuleFilter::~StyleRuleFilter):
(WebCore::StyleRuleFilter::mutableProperties):
(WebCore::StyleRuleFilter::setProperties):
(WebCore::StyleRuleFilter::reportDescendantMemoryUsage):
* css/StyleRule.h:
(StyleRuleBase):
(WebCore::StyleRuleBase::isFilterRule):
(StyleRuleFilter):
(WebCore::StyleRuleFilter::create):
(WebCore::StyleRuleFilter::filterName):
(WebCore::StyleRuleFilter::properties):
(WebCore::StyleRuleFilter::copy):
* css/StyleSheetContents.cpp:
(WebCore::childRulesHaveFailedOrCanceledSubresources):
* css/WebKitCSSFilterRule.cpp: Added.
WebKitCSSFilterRule is implemented similar to CSSFontFaceRule.
(WebCore::WebKitCSSFilterRule::WebKitCSSFilterRule):
(WebCore::WebKitCSSFilterRule::~WebKitCSSFilterRule):
(WebCore::WebKitCSSFilterRule::style):
(WebCore::WebKitCSSFilterRule::cssText):
The CSS text implementation for WebKitCSSFilterRule is almost the same as
CSSFontFaceRule. WebKitCSSFilterRule additionally needs to output the filter name in its
syntax (e.g. @-webkit-filter my-filter { }).
(WebCore::WebKitCSSFilterRule::reattach):
(WebCore::WebKitCSSFilterRule::reportMemoryUsage):
* css/WebKitCSSFilterRule.h: Added.
(WebKitCSSFilterRule):
(WebCore::WebKitCSSFilterRule::create):
* css/WebKitCSSFilterRule.idl: Added.
2013-01-28 Anders Carlsson <andersca@apple.com>
Add StorageStrategy member functions to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=108105
Reviewed by Tim Horton.
StorageStrategy::sessionStorageNamespace should be virtual, not static...
* WebCore.exp.in:
* storage/StorageStrategy.h:
(StorageStrategy):
2013-01-28 Uday Kiran <udaykiran@motorola.com>
getComputedStyle returns "left" instead of "none" for "float" on abspos elements
https://bugs.webkit.org/show_bug.cgi?id=105836
Reviewed by Tony Chang.
If 'position' has the value absolute, page or fixed, and the value of float is
left or right, the box is absolutely positioned and the computed value of float is none.
http://www.w3.org/TR/css3-positioning/#dis-pos-flo
This matches behavior of Firefox 18, Opera 12 and IE9.
Test: fast/css/position-absolute-float.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2013-01-28 Tony Gentilcore <tonyg@chromium.org>
Don't use threaded HTML parser for data: URLs
https://bugs.webkit.org/show_bug.cgi?id=108096
Reviewed by Eric Seidel.
data: URLs are currently loaded synchronously. Using the main thread parser for them preserves this behavior.
This fixes fast/dom/HTMLDocument/document-open-return-value.html and probably others.
No new tests because covered by existing tests.
* html/parser/HTMLParserOptions.cpp:
(WebCore::HTMLParserOptions::HTMLParserOptions):
2013-01-28 Tony Gentilcore <tonyg@chromium.org>
Don't use the threaded HTML parser for javascript: URLs
https://bugs.webkit.org/show_bug.cgi?id=107975
Reviewed by Adam Barth.
Several layout tests depend on javascript: URL iframes loading synchronously including fast/loader/javascript-url-encoding.html.
This patch avoids using the threaded parser for those URLs so they will continue to be synchronous.
No new tests because covered by existing tests.
* html/parser/HTMLParserOptions.cpp:
(WebCore::HTMLParserOptions::HTMLParserOptions):
2013-01-27 Sam Weinig <sam@webkit.org>
SVGPathStringSource should not up-convert 8-bit strings to UTF-16
https://bugs.webkit.org/show_bug.cgi?id=108050
Reviewed by Anders Carlsson.
Should save around ~400k on Membuster3.
* svg/SVGParserUtilities.cpp:
(WebCore::parseNumber):
(WebCore::genericParseArcFlag):
(WebCore::parseArcFlag):
* svg/SVGParserUtilities.h:
Add LChar variants of parseNumber and parseArcFlag.
* svg/SVGPathSource.h:
(WebCore):
Move forward declaration of FloatPoint here, where it belongs.
* svg/SVGPathStringSource.cpp:
(WebCore::parseFloatPoint):
(WebCore::parseFloatPoint2):
(WebCore::parseFloatPoint3):
Add helpers for parsing float points.
(WebCore::SVGPathStringSource::SVGPathStringSource):
(WebCore::SVGPathStringSource::hasMoreData):
(WebCore::SVGPathStringSource::moveToNextToken):
(WebCore::parseSVGSegmentTypeHelper):
(WebCore::SVGPathStringSource::parseSVGSegmentType):
(WebCore::nextCommandHelper):
(WebCore::SVGPathStringSource::nextCommand):
(WebCore::SVGPathStringSource::parseMoveToSegment):
(WebCore::SVGPathStringSource::parseLineToSegment):
(WebCore::SVGPathStringSource::parseLineToHorizontalSegment):
(WebCore::SVGPathStringSource::parseLineToVerticalSegment):
(WebCore::SVGPathStringSource::parseCurveToCubicSegment):
(WebCore::SVGPathStringSource::parseCurveToCubicSmoothSegment):
(WebCore::SVGPathStringSource::parseCurveToQuadraticSegment):
(WebCore::SVGPathStringSource::parseCurveToQuadraticSmoothSegment):
(WebCore::parseArcToSegmentHelper):
(WebCore::SVGPathStringSource::parseArcToSegment):
* svg/SVGPathStringSource.h:
(SVGPathStringSource):
Make 8-bit aware.
2013-01-28 Simon Fraser <simon.fraser@apple.com>
Repaint issues in background tabs after r138858
https://bugs.webkit.org/show_bug.cgi?id=108092
<rdar://problem/13076430>
Reviewed by Tim Horton.
In r138858, we unparented all tiles in the tile caches of background tabs.
That broke repaints in background tabs; when bringing that tab back to the
foreground, we would call -setNeedsDisplayInRect:, and then reparent the tiles
on a zero-delay timer. Those repaints would then be flipped (possibly because
CA can't look up the layer tree to check for flipped geometry).
Fix by revalidating tiles (which reparents the tiles) at the time we're told
we're moving into the window, which happens before repaints are flushed.
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::setIsInWindow):
2013-01-28 Adam Barth <abarth@webkit.org>
Remove webkitNotifications.createHTMLNotification
https://bugs.webkit.org/show_bug.cgi?id=107598
Reviewed by Benjamin Poulain.
As discussed in http://lists.webkit.org/pipermail/webkit-dev/2012-February/019354.html,
we've been slowly deprecating HTML notificiations for about a year.
FeatureObserver says that HTML notifications are used by 0.0008% of web
pages, which means we should be able to remove them without causing too
much trouble.
* Configurations/FeatureDefines.xcconfig:
* Modules/notifications/Notification.cpp:
(WebCore):
(WebCore::Notification::Notification):
* Modules/notifications/Notification.h:
(Notification):
* Modules/notifications/NotificationCenter.h:
(NotificationCenter):
* Modules/notifications/NotificationCenter.idl:
2013-01-28 Bear Travis <betravis@adobe.com>
[CSS Exclusions] Refactor ExclusionShapeInsideInfo to more general ExclusionShapeInfo
https://bugs.webkit.org/show_bug.cgi?id=100766
Reviewed by Dirk Schulze.
Refactoring, covered by existing tests.
Factoring out code common to ExclusionShapeInsideInfo and ExclusionShapeOutsideInfo
into common classes in ExclusionShapeInfo.h. Since the ExclusionShapeInsideInfo and
ExclusionShapeOutsideInfo share almost all of their code, save the RenderObject type
they work with and the specific shapeInside/Outside methods they call on RenderStyle
and ExclusionShape, the code has been templated. The code responsible for maintaining
global maps has also been factored out into a MappedInfo class.
* CMakeLists.txt: Adding ExclusionShapeInfo files.
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* rendering/ExclusionShapeInfo.cpp: Added.
(WebCore::::computedShape): Determine the shape based on the current logical
dimensions. Call this method rather than accessing m_shape directly.
* rendering/ExclusionShapeInfo.h: Added.
(MappedInfo): Helper class that maintains a global info map.
(WebCore::MappedInfo::ensureInfo): Look up the info for a key and add it if not present.
(WebCore::MappedInfo::removeInfo): Remove the info associated with a key.
(WebCore::MappedInfo::info): Look up the info associated with a key.
(WebCore::MappedInfo::infoMap): The map used to store key/info pairs.
(ExclusionShapeInfo): A common parent class for ExclusionShapeInside/OutsideInfos.
The methods were factored out of the code common to ExclusionShapeInside/OutsideInfo.
(WebCore::ExclusionShapeInfo::~ExclusionShapeInfo): Destructor.
(WebCore::ExclusionShapeInfo::setShapeSize): Sets the shape's logical size.
(WebCore::ExclusionShapeInfo::shapeLogicalTop/Bottom/Left/Right/Width/Height):
Returns the shape's logical dimensions.
(WebCore::ExclusionShapeInfo::dirtyShapeSize): Mark the shape for recomputation.
(WebCore::ExclusionShapeInfo::owner): The renderer to which this info belongs.
(WebCore::ExclusionShapeInfo::ExclusionShapeInfo): Constructor.
(WebCore::ExclusionShapeInfo::floatLogicalTopToLayoutUnit/floatLogicalBottomToLayoutUnit):
Helper methods that round float units from ExclusionShapes to LayoutUnits for layout.
* rendering/ExclusionShapeInsideInfo.cpp:
(WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine): Modified to use
computedShape() rather than m_shape.
(WebCore::ExclusionShapeInsideInfo::adjustLogicalLineTop): Ditto.
* rendering/ExclusionShapeInsideInfo.h:
(WebCore::ExclusionShapeInsideInfo::createInfo): Renamed to match MappedInfo.
(WebCore::ExclusionShapeInsideInfo::isEnabledFor): Renamed to match shorter naming.
(WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Modified to use
computedShape().
* rendering/ExclusionShapeOutsideInfo.cpp:
(WebCore::ExclusionShapeOutsideInfo::isEnabledFor): Renamed to match shorter naming.
* rendering/ExclusionShapeOutsideInfo.h:
(WebCore::ExclusionShapeOutsideInfo::createInfo): Renamed to match MappedInfo.
(WebCore::ExclusionShapeOutsideInfo::ExclusionShapeOutsideInfo): Constructor.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::willBeDestroyed): Use shortened MappedInfo names for looking
up infos.
(WebCore::RenderBlock::exclusionShapeInsideInfo): Ditto.
(WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange): Ditto.
(WebCore::RenderBlock::computeExclusionShapeSize): Ditto.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::willBeDestroyed): Ditto.
(WebCore::RenderBox::updateExclusionShapeOutsideInfoAfterStyleChange): Ditto.
* rendering/RenderBox.h:
(WebCore):
(WebCore::RenderBox::exclusionShapeOutsideInfo): Ditto.
2013-01-28 Stephen Chenney <schenney@chromium.org>
SVGViewSpec fails when corresponding element has been removed
https://bugs.webkit.org/show_bug.cgi?id=106957
Reviewed by Dirk Schulze.
When JS holds an SVGViewSpec object while deleting the object that
defines the spec (an SVGSVGElement, or one of a few others) the
pointer to the target is cleared in the SVGViewSpec but the methods
that serve JS queries do not check and try to access the now null
target. This patch fixes the prooblem, returning null when the
corresponding object has been deleted.
Also removing SVGViewSpec::setPreserveAspectRatioString, which is no
longer used by any callers.
Test: svg/dom/SVGViewSpec-invalid-ref-crash.html
* svg/SVGViewSpec.cpp:
(WebCore):
(WebCore::SVGViewSpec::viewTarget): Check for null target and return null.
(WebCore::SVGViewSpec::transform): Check for null target and return null..
(WebCore::SVGViewSpec::viewBoxAnimated): Check for null target and return null.
(WebCore::SVGViewSpec::preserveAspectRatioAnimated): Check for null target and return null.
(WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): ASSERT non-null target.
(WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): ASSERT non-null target.
(WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): ASSERT non-null target.
* svg/SVGViewSpec.h:
(SVGViewSpec): Move some methods out of the header and into the implementation file.
* svg/SVGViewSpec.cpp:
(WebCore):
(WebCore::SVGViewSpec::transform):
(WebCore::SVGViewSpec::viewBoxAnimated):
(WebCore::SVGViewSpec::preserveAspectRatioAnimated):
(WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper):
(WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper):
(WebCore::SVGViewSpec::lookupOrCreateTransformWrapper):
* svg/SVGViewSpec.h:
(SVGViewSpec):
2013-01-28 James Craig <james@cookiecrook.com>
HTML5 promotes DL from specific 'definition list' to superset 'description list'; accessibility strings and accessors should be updated to match.
https://bugs.webkit.org/show_bug.cgi?id=107650
Reviewed by Chris Fleizach.
Updating accessibility strings and accessors for DL/DT/DD; new one for [role="definition"] (previously it reused the role/desc for DD).
Test: platform/mac/accessibility/definition-list-term.html:
Test: accessibility/lists.html
* English.lproj/Localizable.strings:
* accessibility/AccessibilityList.cpp:
(WebCore::AccessibilityList::isDescriptionList):
* accessibility/AccessibilityList.h:
(AccessibilityList):
* accessibility/AccessibilityObject.cpp:
(WebCore::createARIARoleMap):
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper roleDescription]):
* platform/LocalizedStrings.cpp:
(WebCore::AXDefinitionText):
(WebCore::AXDescriptionListTermText):
(WebCore):
(WebCore::AXDescriptionListDetailText):
* platform/LocalizedStrings.h:
(WebCore):
* platform/blackberry/LocalizedStringsBlackBerry.cpp:
(WebCore::AXDefinitionText):
(WebCore::AXDescriptionListDetailText):
(WebCore):
(WebCore::AXDescriptionListTermText):
* platform/efl/LocalizedStringsEfl.cpp:
(WebCore::AXDefinitionText):
(WebCore):
(WebCore::AXDescriptionListTermText):
(WebCore::AXDescriptionListDetailText):
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::AXDefinitionText):
(WebCore):
(WebCore::AXDescriptionListTermText):
(WebCore::AXDescriptionListDetailText):
* platform/qt/LocalizedStringsQt.cpp:
(WebCore::AXDefinitionText):
(WebCore::AXDescriptionListTermText):
(WebCore):
(WebCore::AXDescriptionListDetailText):
2013-01-28 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Inherit SidebarPane from View.
https://bugs.webkit.org/show_bug.cgi?id=108075
Reviewed by Pavel Feldman.
Inherited WebInspector.SidebarPane from WebInspector.View to streamlines the code and
simplify further enhancements to sidebar panes. Got rid of obsolete onattach calls.
No new tests.
* inspector/front-end/AuditResultView.js:
(WebInspector.AuditResultView):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel):
(WebInspector.ElementsPanel.prototype.wasShown):
(WebInspector.ElementsPanel.prototype.willHide):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype._onCreateSidebarPane):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype.wasShown):
* inspector/front-end/SidebarPane.js:
(WebInspector.SidebarPane):
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionsSidebarPane.prototype._refreshExpressionsIfNeeded):
2013-01-28 Martin Robinson <mrobinson@igalia.com>
[Freetype] Synthetic bold not applied to fallback fonts properly
https://bugs.webkit.org/show_bug.cgi?id=107733
Reviewed by Gustavo Noronha Silva.
No new tests. This is covered by existing pixel tests.
* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
(WebCore::FontPlatformData::FontPlatformData): When we detect a situation in which
we are a bold font, but the Fontconfig pattern does not describe the font as
bold, we should activate synthetic bolding.
2013-01-28 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: [Regression] Search all sources should not search across service projects.
https://bugs.webkit.org/show_bug.cgi?id=108068
Reviewed by Pavel Feldman.
* inspector/front-end/ScriptsSearchScope.js:
(WebInspector.ScriptsSearchScope):
(WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):
2013-01-28 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: SourceURL and SourceMappingURL together in evalled code
https://bugs.webkit.org/show_bug.cgi?id=107939
Reviewed by Vsevolod Vlasov.
Resolve map's sources URLs wrt script URL in case sourceMap is defined as data:.
* inspector/front-end/CompilerScriptMapping.js:
(WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
* inspector/front-end/ParsedURL.js:
(WebInspector.ParsedURL.completeURL):
* inspector/front-end/SourceMap.js:
(WebInspector.SourceMap.prototype._parseMap):
2013-01-28 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] refactoring in CanvasAgent to reduce code dups
https://bugs.webkit.org/show_bug.cgi?id=108064
Reviewed by Pavel Feldman.
Introduce private methods injectedScriptCanvasModule() in InspectorCanvasAgent to reduce much of code duplication.
Drive-by: in InspectorPageAgent.assertFrame convert "String" argument to "const String&".
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::dropTraceLog):
(WebCore::InspectorCanvasAgent::captureFrame):
(WebCore::InspectorCanvasAgent::startCapturing):
(WebCore::InspectorCanvasAgent::stopCapturing):
(WebCore::InspectorCanvasAgent::getTraceLog):
(WebCore::InspectorCanvasAgent::replayTraceLog):
(WebCore::InspectorCanvasAgent::getResourceInfo):
(WebCore::InspectorCanvasAgent::getResourceState):
(WebCore::InspectorCanvasAgent::wrapCanvas2DRenderingContextForInstrumentation):
(WebCore::InspectorCanvasAgent::wrapWebGLRenderingContextForInstrumentation):
(WebCore::InspectorCanvasAgent::injectedScriptCanvasModule):
(WebCore):
(WebCore::InspectorCanvasAgent::findFramesWithUninstrumentedCanvases):
* inspector/InspectorCanvasAgent.h:
(InspectorCanvasAgent):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::assertFrame):
(WebCore::InspectorPageAgent::assertDocumentLoader):
* inspector/InspectorPageAgent.h:
(InspectorPageAgent):
2013-01-28 Kihong Kwon <kihong.kwon@samsung.com>
Replace the type of Proximity's supplementName for char*
https://bugs.webkit.org/show_bug.cgi?id=108049
Reviewed by Benjamin Poulain.
There are some changes for supplementName by Bug 107535.
It makes build break when PROXIMITY_EVENT feature is enabled.
Therefore ProximityController need to change the type of supplementName for char* also.
No new tests. Functionality is not changed.
* Modules/proximity/DeviceProximityController.cpp:
(WebCore::DeviceProximityController::supplementName):
* Modules/proximity/DeviceProximityController.h:
(DeviceProximityController):
2013-01-28 Keishi Hattori <keishi@webkit.org>
[REGRESSION] Calendar Picker focus ring is gone
https://bugs.webkit.org/show_bug.cgi?id=108055
Reviewed by Kent Tamura.
The focus ring wasn't visible because -webkit-focus-ring-color value
only works for outline property in strict mode. Using fixed color
instead.
No new tests. Can't reproduce in layout test because mock popup writes a
script tag in front of the doctype.
* Resources/pagepopups/chromium/calendarPickerChromium.css:
(.days-area-container:focus):
* Resources/pagepopups/chromium/pickerCommonChromium.css:
(:enabled:focus:-webkit-any(button, input[type='button'])):
2013-01-25 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: remove unused isElement and similar methods from HeapProfiler
https://bugs.webkit.org/show_bug.cgi?id=107940
Reviewed by Vsevolod Vlasov.
- Removed some unused methods.
- Moved JS specific edge filters to JSHeapSnapshot.
* inspector/front-end/HeapSnapshot.js:
(WebInspector.HeapSnapshot.prototype.createEdgesProvider):
(WebInspector.HeapSnapshot.prototype.createEdgesProviderForTest):
(WebInspector.HeapSnapshot.prototype.retainingEdgesFilter):
(WebInspector.HeapSnapshot.prototype.containmentEdgesFilter):
(WebInspector.HeapSnapshot.prototype.createRetainingEdgesProvider):
(WebInspector.HeapSnapshot.prototype.classNodesFilter):
(WebInspector.HeapSnapshot.prototype.createNodesProviderForClass):
* inspector/front-end/HeapSnapshotGridNodes.js:
(WebInspector.HeapSnapshotGenericObjectNode):
* inspector/front-end/HeapSnapshotProxy.js:
(WebInspector.HeapSnapshotProxy.prototype.createEdgesProvider):
(WebInspector.HeapSnapshotProxy.prototype.createRetainingEdgesProvider):
* inspector/front-end/JSHeapSnapshot.js:
(WebInspector.JSHeapSnapshot.prototype.classNodesFilter):
(WebInspector.JSHeapSnapshot.prototype._markDetachedDOMTreeNodes):
* inspector/front-end/NativeHeapSnapshot.js:
2013-01-28 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140554.
http://trac.webkit.org/changeset/140554
https://bugs.webkit.org/show_bug.cgi?id=108057
Caused tables/table-section-overflow-clip-crash.html and
bug2479-5.html to crash. (Requested by keishi on #webkit).
* rendering/RenderBox.cpp:
(WebCore::RenderBox::minPreferredLogicalWidth):
(WebCore::RenderBox::maxPreferredLogicalWidth):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::computePreferredLogicalWidths):
2013-01-24 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: each node in a detached DOM tree is shown in its own "detached DOM tree" entry in heap profiler
https://bugs.webkit.org/show_bug.cgi?id=107819
Reviewed by Adam Barth.
Provide single RetainedDOMInfo for each group of DOM Node wrappers reported to GC.
Otherwise we have unequal RetainedDOMInfo groups for each wrapped node.
* bindings/v8/V8GCController.cpp:
(WebCore::ImplicitConnection::ImplicitConnection):
(WebCore::ImplicitConnection::retainedObjectInfo):
(ImplicitConnection):
(WebCore::WrapperGrouper::addObjectToGroup):
(WrapperGrouper):
(WebCore::WrapperGrouper::addNodeToGroup):
(WebCore::WrapperGrouper::apply):
(WebCore::V8GCController::opaqueRootForGC):
* bindings/v8/V8GCController.h:
(V8GCController):
2013-01-27 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] RenderFlowThread should keep a count of auto height regions
https://bugs.webkit.org/show_bug.cgi?id=105185
Reviewed by Julien Chaffraix.
Keep the count of auto height regions on the flow thread instead of flow thread controller.
This way, we can streamline the operations associated with the two-pass layout only to those
flow threads that have auto height regions associated.
The flow thread controller will keep a count of flow thread with auto height regions instead.
This is a performance refactoring without an expected change in behavior, therefore no new tests were added.
* rendering/FlowThreadController.cpp: Keep a count of flow threads with auto logical height regions.
(WebCore::FlowThreadController::FlowThreadController):
(WebCore::FlowThreadController::layoutRenderNamedFlowThreads): Check the count of auto height regions for all the flow threads.
(WebCore::FlowThreadController::isAutoLogicalHeightRegionsCountConsistent):
Make sure that we call these methods only when we have auto logical height regions.
(WebCore::FlowThreadController::resetRegionsOverrideLogicalContentHeight):
(WebCore::FlowThreadController::markAutoLogicalHeightRegionsForLayout):
* rendering/FlowThreadController.h:
(WebCore::FlowThreadController::hasFlowThreadsWithAutoLogicalHeightRegions):
(WebCore::FlowThreadController::incrementFlowThreadsWithAutoLogicalHeightRegions):
(WebCore::FlowThreadController::decrementFlowThreadsWithAutoLogicalHeightRegions):
* rendering/RenderFlowThread.cpp: Keep a count of auto logical height regions.
(WebCore::RenderFlowThread::RenderFlowThread):
(WebCore::RenderFlowThread::isAutoLogicalHeightRegionsCountConsistent):
(WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight): Iterate the region chain only if the region chain has auto height regions.
(WebCore::RenderFlowThread::initializeRegionsOverrideLogicalContentHeight): Ditto.
(WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout): Ditto.
(WebCore::RenderFlowThread::incrementAutoLogicalHeightRegions):
(WebCore::RenderFlowThread::decrementAutoLogicalHeightRegions):
* rendering/RenderFlowThread.h:
* rendering/RenderRegion.cpp: Add increment/decrementAutoLogicalHeightCount to increase/decrease
the counter inside the flow thread and use them throughout the code as needed.
(WebCore::RenderRegion::incrementAutoLogicalHeightCount):
(WebCore::RenderRegion::decrementAutoLogicalHeightCount):
(WebCore::RenderRegion::updateRegionHasAutoLogicalHeightFlag):
(WebCore::RenderRegion::attachRegion):
(WebCore::RenderRegion::detachRegion):
* rendering/RenderRegion.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::checkTwoPassLayoutForAutoHeightRegions): Use the count of flow threads with auto height regions
instead of the count of auto height regions when deciding whether we should attempt the 2 pass layout for auto height regions.
2013-01-27 Shinya Kawanaka <shinyak@chromium.org>
[Shadow DOM] Selecting a node to another node in ShadowDOM fires 'click' event unexpectedly
https://bugs.webkit.org/show_bug.cgi?id=107233
Reviewed by Dimitri Glazkov.
When selecting from a node to another node in ShadowDOM, 'click' event is unexpectedly fired.
The root cause of the bug is using shadow ancestor nodes for checking the node mouse is pressed on
and the node mouse is released on is the same. This was introduced to fire a click event for a slider
in <input> or etc.
However, we don't need to check shadow ancestor if we're in Author ShadowDOM.
Test: fast/dom/shadow/selecting-anchor.html
* page/EventHandler.cpp:
(WebCore::mouseIsReleasedOnPressedElement):
(WebCore):
(WebCore::EventHandler::handleMouseReleaseEvent):
2013-01-27 Kentaro Hara <haraken@chromium.org>
An [ActiveDOMObject] IDL attribute should be inherited
https://bugs.webkit.org/show_bug.cgi?id=107877
Reviewed by Adam Barth.
Now we support IDL attribute inheritance. We can remove
[ActiveDOMObject] from subclasses.
No tests. No change in behavior.
* Modules/indexeddb/IDBOpenDBRequest.idl:
* Modules/webaudio/OfflineAudioContext.idl:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNamedConstructorCallback):
(GenerateImplementation):
* workers/SharedWorker.idl:
* workers/Worker.idl:
2013-01-27 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140602.
http://trac.webkit.org/changeset/140602
https://bugs.webkit.org/show_bug.cgi?id=108045
Caused 8 indexed tests to crash. (Requested by keishi on
#webkit).
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.list.am:
* Modules/indexeddb/IDBCallbacks.h:
(WebCore::IDBCallbacks::onBlocked):
* Modules/indexeddb/IDBDatabase.cpp:
* Modules/indexeddb/IDBDatabase.h:
(WebCore):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::deleteDatabase):
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):
* Modules/indexeddb/IDBFactory.h:
(WebCore):
(IDBFactory):
* Modules/indexeddb/IDBFactory.idl:
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::create):
(WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
(WebCore::IDBOpenDBRequest::dispatchEvent):
* Modules/indexeddb/IDBOpenDBRequest.h:
(IDBOpenDBRequest):
* Modules/indexeddb/IDBVersionChangeRequest.cpp: Copied from Source/WebKit/chromium/src/WebIDBCallbacksImpl.h.
(WebCore):
(WebCore::IDBVersionChangeRequest::create):
(WebCore::IDBVersionChangeRequest::IDBVersionChangeRequest):
(WebCore::IDBVersionChangeRequest::~IDBVersionChangeRequest):
(WebCore::IDBVersionChangeRequest::interfaceName):
(WebCore::IDBVersionChangeRequest::onBlocked):
* Modules/indexeddb/IDBVersionChangeRequest.h: Copied from Source/WebCore/Modules/indexeddb/IDBFactory.idl.
(WebCore):
(IDBVersionChangeRequest):
* Modules/indexeddb/IDBVersionChangeRequest.idl: Copied from Source/WebCore/Modules/indexeddb/IDBFactory.idl.
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* dom/EventTarget.h:
(WebCore):
* dom/EventTargetFactory.in:
2013-01-27 Shinya Kawanaka <shinyak@chromium.org>
Disabled input/textarea doesn't trigger selection change
https://bugs.webkit.org/show_bug.cgi?id=85244
Reviewed by Ryosuke Niwa.
Only rootEditableNode is there in <input> or <textarea>, 'select' event is fired.
Since readonly or disabled input/textarea element does not have editable element,
'select' event was not fired.
We don't need the check.
Test: fast/forms/input-readonly-select.html
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::notifyRendererOfSelectionChange):
2013-01-27 Keishi Hattori <keishi@webkit.org>
Unreviewed, rolling out r140850.
http://trac.webkit.org/changeset/140850
https://bugs.webkit.org/show_bug.cgi?id=107960
r14602 caused 8 indexed tests to crash.
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
* Modules/indexeddb/IDBCursorBackendImpl.h:
(WebCore::IDBCursorBackendImpl::create):
(IDBCursorBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::setIndexesReady):
(WebCore::OpenCursorOperation::perform):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::openCursor):
* Modules/indexeddb/IDBObjectStore.h:
(WebCore::IDBObjectStore::openCursor):
(IDBObjectStore):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::create):
(WebCore::IDBRequest::IDBRequest):
* Modules/indexeddb/IDBRequest.h:
(IDBRequest):
(WebCore::IDBRequest::taskType):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::scheduleTask):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(WebCore::IDBTransactionBackendImpl::scheduleTask):
(IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionBackendInterface.h:
(IDBTransactionBackendInterface):
2013-01-27 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140741.
http://trac.webkit.org/changeset/140741
https://bugs.webkit.org/show_bug.cgi?id=108044
Caused 8 indexed tests to fail on Mac and Win. (Requested by
keishi on #webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::onVersionChange):
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::deleteDatabase):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onBlocked):
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
* Modules/indexeddb/IDBUpgradeNeededEvent.cpp: Copied from Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.cpp.
(WebCore):
(WebCore::IDBUpgradeNeededEvent::create):
(WebCore::IDBUpgradeNeededEvent::IDBUpgradeNeededEvent):
(WebCore::IDBUpgradeNeededEvent::~IDBUpgradeNeededEvent):
(WebCore::IDBUpgradeNeededEvent::oldVersion):
(WebCore::IDBUpgradeNeededEvent::newVersion):
(WebCore::IDBUpgradeNeededEvent::interfaceName):
* Modules/indexeddb/IDBUpgradeNeededEvent.h: Copied from Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.h.
(WebCore):
(IDBUpgradeNeededEvent):
* Modules/indexeddb/IDBUpgradeNeededEvent.idl: Copied from Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.idl.
* Modules/indexeddb/IDBVersionChangeEvent.cpp:
(WebCore::IDBVersionChangeEvent::create):
(WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
(WebCore::IDBVersionChangeEvent::version):
(WebCore):
* Modules/indexeddb/IDBVersionChangeEvent.h:
(WebCore):
(IDBVersionChangeEvent):
* Modules/indexeddb/IDBVersionChangeEvent.idl:
* WebCore.gypi:
* dom/EventNames.in:
2013-01-27 Matt Falkenhagen <falken@chromium.org>
Elements must be reattached when inserted/removed from top layer
https://bugs.webkit.org/show_bug.cgi?id=105489
Relanding r139402 as the apparent perf regression has been explained as not real (bug 106726).
Reviewed by Julien Chaffraix.
Ensure a reattach occurs when an element is inserted/removed from top layer, so its renderer can be inserted correctly:
as a child of RenderView in top layer sibling order if it's in the top layer, and in the usual place otherwise.
We previously relied on style recalc to catch when an element is inserted/removed from the top layer, because it
only happens on dialog.show/close which toggle display: none. But that is incorrect because, for example, close()
followed immediately by show() results in no style change.
Tests: fast/dom/HTMLDialogElement/removed-element-is-removed-from-top-layer.html
fast/dom/HTMLDialogElement/top-layer-stacking-correct-order-remove-readd.html
* dom/Element.cpp:
(WebCore::Element::removedFrom): Call Document::removeFromTopLayer to let the element be removed from the top layer vector.
removeFromTopLayer calls Element::setIsInTopLayer(false) itself if needed.
(WebCore::Element::setIsInTopLayer): Ensure a reattach occurs if the element is already attached.
2013-01-27 Zoltan Arvai <zarvai@inf.u-szeged.hu>
Fixing atomicIncrement implementation for Windows by dropping support before XP SP2.
https://bugs.webkit.org/show_bug.cgi?id=106740
Reviewed by Benjamin Poulain.
* WebCorePrefix.h:
* config.h:
2013-01-27 Jochen Eisinger <jochen@chromium.org>
Check notification permissions in the show() method
https://bugs.webkit.org/show_bug.cgi?id=108009
Reviewed by Adam Barth.
Tests: fast/notifications/notifications-constructor-with-permission.html
fast/notifications/notifications-constructor-without-permission.html
* Modules/notifications/Notification.cpp:
(WebCore::Notification::show):
(WebCore::Notification::taskTimerFired):
2013-01-26 Tony Chang <tony@chromium.org>
[chromium] Don't use goma to preprocess bindings idl files
https://bugs.webkit.org/show_bug.cgi?id=107984
Reviewed by Adam Barth.
On Linux and Mac, use a local gcc or clang to preprocess the bindings idl files.
On my machine, this drops the bindings generation from 137s to 24s when
using goma and -j400.
No new tests, this is a build change.
* WebCore.gyp/WebCore.gyp: Force the use of the local gcc or clang for preprocessing.
2013-01-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140880.
http://trac.webkit.org/changeset/140880
https://bugs.webkit.org/show_bug.cgi?id=108023
Caused mathml/presentation and tests to crash and fail
(Requested by keishi on #webkit).
* mathml/MathMLTextElement.cpp:
* mathml/MathMLTextElement.h:
(MathMLTextElement):
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::RenderMathMLBlock):
(WebCore::RenderMathMLBlock::computePreferredLogicalWidths):
(WebCore):
(WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
(WebCore::RenderMathMLBlock::preferredLogicalHeightAfterSizing):
* rendering/mathml/RenderMathMLBlock.h:
(RenderMathMLBlock):
(WebCore::RenderMathMLBlock::isPreferredLogicalHeightDirty):
(WebCore::RenderMathMLBlock::preferredLogicalHeight):
(WebCore::RenderMathMLBlock::setPreferredLogicalHeight):
* rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::makeFences):
(WebCore::RenderMathMLFenced::styleDidChange):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
(WebCore):
(WebCore::RenderMathMLOperator::glyphHeightForCharacter):
(WebCore::RenderMathMLOperator::updateFromElement):
(WebCore::RenderMathMLOperator::createGlyph):
(WebCore::RenderMathMLOperator::firstLineBoxBaseline):
* rendering/mathml/RenderMathMLOperator.h:
(RenderMathMLOperator):
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::index):
(WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
(WebCore):
(WebCore::RenderMathMLRoot::layout):
* rendering/mathml/RenderMathMLRoot.h:
(RenderMathMLRoot):
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::computePreferredLogicalWidths):
(WebCore::RenderMathMLRow::layout):
* rendering/mathml/RenderMathMLRow.h:
(RenderMathMLRow):
2013-01-26 Alexey Proskuryakov <ap@apple.com>
Remove code for handling NetworkProcess authentication challenges in WebProcess
https://bugs.webkit.org/show_bug.cgi?id=108003
Reviewed by Sam Weinig.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
Once again, there can be no authentication without an in-process network request.
* WebCore.exp.in:
* platform/network/AuthenticationChallengeBase.cpp:
(WebCore::AuthenticationChallengeBase::AuthenticationChallengeBase):
* platform/network/AuthenticationChallengeBase.h:
(AuthenticationChallengeBase):
* platform/network/cf/AuthenticationCF.cpp:
(WebCore::AuthenticationChallenge::AuthenticationChallenge):
* platform/network/cf/AuthenticationChallenge.h:
(AuthenticationChallenge):
* platform/network/curl/AuthenticationChallenge.h:
(WebCore::AuthenticationChallenge::AuthenticationChallenge):
* platform/network/mac/AuthenticationMac.mm:
(WebCore::AuthenticationChallenge::AuthenticationChallenge):
* platform/network/qt/AuthenticationChallenge.h:
(WebCore::AuthenticationChallenge::AuthenticationChallenge):
* platform/network/soup/AuthenticationChallenge.h:
(WebCore::AuthenticationChallenge::AuthenticationChallenge):
* platform/network/win/AuthenticationChallenge.h:
(WebCore::AuthenticationChallenge::AuthenticationChallenge):
Removed everything related to AuthenticationChallengeBase::m_identifier.
The identifier is now tracked for IPC only, which is the right thing, because
nothing can guarantee identifier uniqueness across processes.
2013-01-26 Laszlo Gombos <l.gombos@samsung.com>
Fix the test for CHANNEL_MESSAGING in idl files
https://bugs.webkit.org/show_bug.cgi?id=108006
Reviewed by Alexey Proskuryakov.
No new tests, this is a build fix.
* workers/WorkerContext.idl: Make sure ENABLE_CHANNEL_MESSAGING is
defined before using it to be consitent with other guards inside idl
files.
2013-01-26 Tim Volodine <timvolodine@chromium.org>
Text Autosizing: simplify and clean-up preOrderTraversal skipping containers
https://bugs.webkit.org/show_bug.cgi?id=107446
Reviewed by Julien Chaffraix.
Simplify nextInPreOrderSkippingDescendantsOfContainers implementation
using RenderObject tree traversal methods.
No new tests because functionality is unchanged.
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::nextInPreOrderSkippingDescendantsOfContainers):
2013-01-26 Dan Carney <dcarney@google.com>
[v8] prepare SerializedScriptValue for transition to Latin-1
https://bugs.webkit.org/show_bug.cgi?id=107655
Reviewed by Kentaro Hara.
No new tests. Covered by existing tests.
* bindings/v8/SerializedScriptValue.cpp:
2013-01-26 Justin Schuh <jschuh@chromium.org>
[CHROMIUM] Suppress more c4267 build warnings for Win64 targets
https://bugs.webkit.org/show_bug.cgi?id=107993
No new tests. No behavior change.
Reviewed by Abhishek Arya.
* WebCore.gyp/WebCore.gyp:
2013-01-24 Patrick Gansterer <paroga@webkit.org>
Build fix for USE(JSC) && !ENABLE(WORKERS) after r136686.
* bindings/js/DOMRequestState.h:
(WebCore::DOMRequestState::DOMRequestState):
2013-01-26 Robert Hogan <robert@webkit.org>
REGRESSION(r120616): Cell's logical height wrongly computed with vertical-align: baseline and rowspan
https://bugs.webkit.org/show_bug.cgi?id=106571
Reviewed by Julien Chaffraix.
When a cell spans multiple rows, its baseline is set on the first row it spans. r120616 contained a
couple of errors in its attempt to ensure the row height calculated in such cases was correct. When it
calculated the baseline on the first row in the span, it didn't ensure that the row height was increased
if necessary. It also suffered from allowing the baseline descent calculated on a rowspan to affect the
height of the other cells in the first row of the span.
Fix both of these errors in calcRowLogicalHeight() and refactor the calculation of the baseline and baseline
descent so that it is freestanding (rather than depending on the height of the section so far).
Tests: fast/css/vertical-align-baseline-rowspan-010.html
fast/css/vertical-align-baseline-rowspan-011.html
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::calcRowLogicalHeight):
2013-01-26 James Simonsen <simonjam@chromium.org>
[chromium] Export ResourceRequest's priority through WebURLRequest
https://bugs.webkit.org/show_bug.cgi?id=107985
Reviewed by Adam Barth.
No new tests.
* platform/chromium/support/WebURLRequest.cpp:
(WebKit::WebURLRequest::priority):
(WebKit):
2013-01-25 Roger Fong <roger_fong@apple.com>
Unreviewed Windows build fix. All it wanted was one more line.
* css/plugIns.css:
2013-01-25 Joone Hur <joone.hur@intel.com>
[GTK][AC] Use new Clutter APIs instead of deprecated APIs
https://bugs.webkit.org/show_bug.cgi?id=105736
Reviewed by Gustavo Noronha Silva.
ClutterCairoTexture class and several APIs have been deprecated since version 1.10,
so ClutterCanvas and ClutterContent should be used instead of ClutterCairoTexture.
clutter_actor_add_child should be used instead of clutter_actor_set_parent and clutter_container_add_clutter.
* platform/graphics/clutter/GraphicsLayerActor.cpp:
(_GraphicsLayerActorPrivate):
(graphics_layer_actor_init):
(graphicsLayerActorDispose):
(graphicsLayerActorAllocate):
(graphicsLayerActorPaint):
(graphicsLayerActorDraw):
(graphicsLayerActorUpdateTexture):
(graphicsLayerActorNew):
(graphicsLayerActorRemoveAll):
(graphicsLayerActorInvalidateRectangle):
(graphicsLayerActorInsertSublayer):
(graphicsLayerActorSetSublayers):
2013-01-25 Roger Fong <roger_fong@apple.com>
Unreviewed build fix for Windows.
* css/plugIns.css:
(p):
2013-01-25 Julien Chaffraix <jchaffraix@webkit.org>
Share code between the different min-content / max-content code paths
https://bugs.webkit.org/show_bug.cgi?id=107740
Reviewed by Tony Chang.
This change enables sharing between the different content based computations
by using function pointers to specialize the behavior as needed.
Refactoring, covered by existing tests.
* rendering/RenderGrid.cpp:
(WebCore::GridTrack::growUsedBreadth):
(WebCore::GridTrack::usedBreadth):
(WebCore::GridTrack::growMaxBreadth):
Added the previous getters / setters that will be passed to resolveContentBasedTrackSizingFunctionsForItems.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
Updated to reuse resolveContentBasedTrackSizingFunctionsForItems instead of duplicating code.
One change is that now, we properly apply the min on all branches, which was an oversight of
the previous patches.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
Added this function as the core content-sized resolution function. For now, we pass the
current track by direction & index to be able to filter grid items.
* rendering/RenderGrid.h:
Added resolveContentBasedTrackSizingFunctionsForItems and the function pointers typedef's.
2013-01-25 Kentaro Hara <haraken@chromium.org>
Remove InjectedScript::wrapSerializedObject()
https://bugs.webkit.org/show_bug.cgi?id=107906
Reviewed by Abhishek Arya.
InjectedScript::wrapSerializedObject() is unused.
(This is one of steps to remove raw pointers of SerializedScriptValue*,
which can be a security concern.)
* inspector/InjectedScript.cpp:
* inspector/InjectedScript.h:
(InjectedScript):
2013-01-25 Kentaro Hara <haraken@chromium.org>
Keep a RefPtr<SerializedScriptValue*> when we call serialize()/deserialize() in code generators
https://bugs.webkit.org/show_bug.cgi?id=107902
Reviewed by Abhishek Arya.
If you use a raw SerializedScriptValue* for serialize()/deserialize(),
it can potentially cause a use-after-free. This is because serialize()/
deserialize() can destruct a RefPtr of the SerializedScriptValue*,
depending on data that is serialized/deserialized. So we should keep a
RefPtr<SerializedScriptValue*> when we call serialize()/deserialize().
(See https://bugs.webkit.org/show_bug.cgi?id=107792 for more details.)
No tests. This is just a just-in-case fix.
* Modules/intents/Intent.h:
(WebCore::Intent::data):
* Modules/intents/IntentRequest.cpp:
(WebCore::IntentRequest::postResult):
(WebCore::IntentRequest::postFailure):
* Modules/intents/IntentRequest.h:
(IntentRequest):
* Modules/intents/IntentResultCallback.h:
(IntentResultCallback):
* bindings/scripts/CodeGeneratorJS.pm:
(GetNativeTypeForCallbacks):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrGetter):
(GetNativeTypeForCallbacks):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
* dom/MessagePortChannel.h:
(WebCore::MessagePortChannel::EventData::message):
2013-01-25 Kentaro Hara <haraken@chromium.org>
Keep a RefPtr<SerializedScriptValue*> when we call serialize()/deserialize() for MessageEvent
https://bugs.webkit.org/show_bug.cgi?id=107900
Reviewed by Abhishek Arya.
If you use a raw SerializedScriptValue* for serialize()/deserialize(),
it can potentially cause a use-after-free. This is because serialize()/
deserialize() can destruct a RefPtr of the SerializedScriptValue*,
depending on data that is serialized/deserialized. So we should keep a
RefPtr<SerializedScriptValue*> when we call serialize()/deserialize().
(See https://bugs.webkit.org/show_bug.cgi?id=107792 for more details.)
No tests. This is just a just-in-case fix. I couldn't find any bug
even in an ASAN build.
* bindings/js/JSMessageEventCustom.cpp:
(WebCore::JSMessageEvent::data):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::dataAccessorGetter):
* dom/MessageEvent.h:
(WebCore::MessageEvent::dataAsSerializedScriptValue):
2013-01-25 Kentaro Hara <haraken@chromium.org>
[V8] Keep a RefPtr<SerializedScriptValue*> when we call serialize()/deserialize() (part 1)
https://bugs.webkit.org/show_bug.cgi?id=107891
Reviewed by Abhishek Arya.
If you use a raw SerializedScriptValue* for serialize()/deserialize(),
it can potentially cause a use-after-free. This is because serialize()/
deserialize() can destruct a RefPtr of the SerializedScriptValue*,
depending on data that is serialized/deserialized. So we should keep a
RefPtr<SerializedScriptValue*> when we call serialize()/deserialize().
(See https://bugs.webkit.org/show_bug.cgi?id=107792 for more details.)
No tests. This is just a just-in-case fix. I couldn't find any bug
even in an ASAN build.
* bindings/v8/custom/V8CustomEventCustom.cpp:
(WebCore::V8CustomEvent::detailAccessorGetter):
2013-01-25 Kentaro Hara <haraken@chromium.org>
Keep a RefPtr<SerializedScriptValue*> when we call serialize()/deserialize() in PopStateEvent
https://bugs.webkit.org/show_bug.cgi?id=107904
Reviewed by Abhishek Arya.
If you use a raw SerializedScriptValue* for serialize()/deserialize(),
it can potentially cause a use-after-free. This is because serialize()/
deserialize() can destruct a RefPtr of the SerializedScriptValue*,
depending on data that is serialized/deserialized. So we should keep a
RefPtr<SerializedScriptValue*> when we call serialize()/deserialize().
(See https://bugs.webkit.org/show_bug.cgi?id=107792 for more details.)
No tests. This is just a just-in-case fix.
* dom/PopStateEvent.h:
(WebCore::PopStateEvent::serializedState):
* page/History.cpp:
(WebCore::History::isSameAsCurrentState):
* page/History.h:
(History):
2013-01-25 Kentaro Hara <haraken@chromium.org>
Rename CodeGenerator::IsSubType() to CodeGenerator::InheritsInterface()
https://bugs.webkit.org/show_bug.cgi?id=107874
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/scripts/CodeGenerator.pm:
(InheritsInterface):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GetInternalFields):
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateFunctionCallback):
(GenerateImplementationIndexer):
(GenerateToV8Converters):
2013-01-25 Kentaro Hara <haraken@chromium.org>
[V8] Pass an Isolate to GetRawTemplate()
https://bugs.webkit.org/show_bug.cgi?id=107927
Reviewed by Adam Barth.
This is one of steps to kill an optional Isolate parameter of GetRawTemplate().
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateDomainSafeFunctionGetter):
(GenerateImplementation):
(CreateCustomSignature):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::ConfigureV8Float64ArrayTemplate):
(WebCore::V8Float64Array::GetTemplate):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
(WebCore::V8TestActiveDOMObject::GetTemplate):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::ConfigureV8TestCustomNamedGetterTemplate):
(WebCore::V8TestCustomNamedGetter::GetTemplate):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::ConfigureV8TestEventConstructorTemplate):
(WebCore::V8TestEventConstructor::GetTemplate):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::ConfigureV8TestEventTargetTemplate):
(WebCore::V8TestEventTarget::GetTemplate):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::ConfigureV8TestExceptionTemplate):
(WebCore::V8TestException::GetTemplate):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::ConfigureV8TestInterfaceTemplate):
(WebCore::V8TestInterface::GetTemplate):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
(WebCore::V8TestMediaQueryListListener::GetTemplate):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::ConfigureV8TestNamedConstructorTemplate):
(WebCore::V8TestNamedConstructor::GetTemplate):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::ConfigureV8TestNodeTemplate):
(WebCore::V8TestNode::GetTemplate):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::GetTemplate):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
(WebCore::V8TestOverloadedConstructors::GetTemplate):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
(WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::createContext):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::reloadAccessorGetter):
(WebCore::V8Location::replaceAccessorGetter):
(WebCore::V8Location::assignAccessorGetter):
2013-01-25 Pan Deng <pan.deng@intel.com>
[User Timing]Change class name that presented in Javascript for user timing entry.
https://bugs.webkit.org/show_bug.cgi?id=107925.
Reviewed by Tony Gentilcore.
In current implementation, class type of user timing entries are PerformanceEntry, according
to W3C spec, they should be PerformanceMark and PerformanceMeasure.
Test: http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type.html
* bindings/v8/custom/V8PerformanceEntryCustom.cpp:
(WebCore::wrap):
* page/PerformanceEntry.h:
(WebCore::PerformanceEntry::isMark):
(WebCore::PerformanceEntry::isMeasure):
* page/PerformanceMark.h:
(WebCore::PerformanceMark::isMark):
(PerformanceMark):
* page/PerformanceMeasure.h:
(WebCore::PerformanceMeasure::isMeasure):
(PerformanceMeasure):
2013-01-24 Roger Fong <roger_fong@apple.com>
Updated WebCore property sheets and added a WebCore solution file.
https://bugs.webkit.org/show_bug.cgi?id=106988.
Rubberstamped by Brent Fulgham.
* WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj:
* WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj.filters:
* WebCore.vcxproj/QTMovieWin/QTMovieWinCommon.props:
* WebCore.vcxproj/WebCore.sln: Added.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.vcxproj/WebCoreDebug.props:
2013-01-24 Ojan Vafai <ojan@chromium.org>
MathML preferred widths should not depend on layout information
https://bugs.webkit.org/show_bug.cgi?id=107353
Reviewed by Levi Weintraub.
* mathml/MathMLTextElement.cpp:
(WebCore::MathMLTextElement::attach):
(WebCore::MathMLTextElement::childrenChanged):
* mathml/MathMLTextElement.h:
Need to update the render tree when the text of a <mo> changes.
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::RenderMathMLBlock):
* rendering/mathml/RenderMathMLBlock.h:
* rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::makeFences):
(WebCore::RenderMathMLFenced::styleDidChange):
Need to update the rendertree to apply operator stretching.
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::glyphHeightForCharacter):
(WebCore::RenderMathMLOperator::widthForCharacter):
(WebCore::RenderMathMLOperator::computeIntrinsicLogicalWidths):
(WebCore::RenderMathMLOperator::stretchDisabledByMarkup):
(WebCore::RenderMathMLOperator::firstTextCharacter):
(WebCore::RenderMathMLOperator::stretchyCharacterIndex):
(WebCore::RenderMathMLOperator::updateFromElement):
(WebCore::RenderMathMLOperator::firstLineBoxBaseline):
-Make the preferred widths of operators the max of all possible
characters to be used in the operator and center the operator in that width.
-For stretching where we don't use multiple glyphs, use transforms
instead of font-size. This both looks better and avoids affecting the width.
-Now that preferred widths don't depends on height, we don't need to
override computePreferredLogicalWidths at all in MathML code.
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::index):
Tighten up the type.
(WebCore::RenderMathMLRoot::layout):
Move the laying out of children to the layout method.
* rendering/mathml/RenderMathMLRoot.h:
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::logicalHeightExcludingOperators):
(WebCore::RenderMathMLRow::stretchOperatorsAndLayout):
(WebCore::RenderMathMLRow::layout):
Move the laying out of children and the subsequent setting of stretchHeight
to the layout method.
* rendering/mathml/RenderMathMLRow.h:
2013-01-25 Raymond Toy <rtoy@google.com>
Don't subtract too much from nonSilentFramesToProcess
https://bugs.webkit.org/show_bug.cgi?id=107966
Reviewed by Kenneth Russell.
No new tests.
* Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::updateSchedulingInfo):
2013-01-25 Roger Fong <roger_fong@apple.com>
Unreviewed. Windows build fix by Dean.
* css/plugIns.css:
(object):
2013-01-25 Dima Gorbik <dgorbik@apple.com>
Support language WebVTT Nodes
https://bugs.webkit.org/show_bug.cgi?id=107907
Reviewed by Eric Carlson.
Language stack and WebVTT language nodes are added as
required by specs.
Test: media/track/track-css-matching-lang.html
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::copyWebVTTNodeToDOMTree): WebVTT language nodes should be
spans in DOM and the lang attribute should be set for all nodes if applicable.
* html/track/TextTrackCue.h:
(WebCore::TextTrackCue::langElementTagName):
(TextTrackCue):
(WebCore::TextTrackCue::langAttributeName):
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::createDocumentFragmentFromCueText): clear the language stack in case
we use the same parser object for multiple cues that have incorrect syntax.
(WebCore::isLangToken):
(WebCore):
(WebCore::WebVTTParser::constructTreeFromToken): parse lang WebVTT objects.
* html/track/WebVTTParser.h:
(WebVTTParser):
2013-01-25 Andy Estes <aestes@apple.com>
Wrap content filtering code in an object
https://bugs.webkit.org/show_bug.cgi?id=107914
Reviewed by Alexey Proskuryakov.
Content filtering code currently requires explicit and somewhat complex
lifetime management of the WebFilterEvaluator object for correct
behavior. Simplify this by wrapping WebFilterEvaluator in an object and
have MainResourceLoader implicitly manage its lifetime by holding it in
an OwnPtr.
This change has benefits other than the simplified lifetime management.
It removes direct calls into WebKitSystemInterface from the loader, and
it allows us to keep a strong reference to the replacement data
returned from wkFilterAddData() and wkFilterDataComplete() rather than
relying on it being autoreleased.
* WebCore.exp.in: Updated to match changes in WebCoreSystemInterface.
* WebCore.xcodeproj/project.pbxproj: Added new files.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::MainResourceLoader): Removed unneeded initialization.
(WebCore::MainResourceLoader::~MainResourceLoader): Removed an unneeded ASSERT().
(WebCore::MainResourceLoader::cancel): Removed unneeded wkFilterRelease().
(WebCore::MainResourceLoader::responseReceived): Created a
ContentFilter object rather than calling wkFilterCreateInstance().
(WebCore::MainResourceLoader::dataReceived): Rewrote content filtering
logic in terms of the wrapper object. Removed any explicit lifetime
management.
(WebCore::MainResourceLoader::didFinishLoading): Ditto.
(WebCore::MainResourceLoader::notifyFinished): Removed unneeded wkFilterRelease().
* loader/MainResourceLoader.h:
* platform/ContentFilter.h: Added.
* platform/mac/ContentFilterMac.mm: Added.
(WebCore::ContentFilter::create):
(WebCore::ContentFilter::ContentFilter):
(WebCore::ContentFilter::isEnabled): Returned the result of wkFilterIsManagedSession().
(WebCore::ContentFilter::addData): Called wkFilterAddData() and stored
the resulting NSData in m_replacementData.
(WebCore::ContentFilter::finishedAddingData): Called wkFilterDataComplete()
and stored the resulting NSData in m_replacementData.
(WebCore::ContentFilter::needsMoreData): Returned the result of wkFilterIsBuffering().
(WebCore::ContentFilter::didBlockData): Returned the result of wkFilterWasBlocked().
(WebCore::ContentFilter::getReplacementData): Returned the data stored in m_replacementData.
* platform/mac/WebCoreSystemInterface.h: Updated to reflect changes in WKSI.
* platform/mac/WebCoreSystemInterface.mm: Ditto.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::MainResourceLoader):
(WebCore::MainResourceLoader::~MainResourceLoader):
(WebCore::MainResourceLoader::cancel):
(WebCore::MainResourceLoader::responseReceived):
(WebCore::MainResourceLoader::dataReceived):
(WebCore::MainResourceLoader::didFinishLoading):
(WebCore::MainResourceLoader::notifyFinished):
* loader/MainResourceLoader.h:
(MainResourceLoader):
* platform/ContentFilter.h: Added.
(WebCore):
(ContentFilter):
* platform/mac/ContentFilterMac.mm: Added.
(WebCore):
(WebCore::ContentFilter::create):
(WebCore::ContentFilter::ContentFilter):
(WebCore::ContentFilter::isEnabled):
(WebCore::ContentFilter::addData):
(WebCore::ContentFilter::finishedAddingData):
(WebCore::ContentFilter::needsMoreData):
(WebCore::ContentFilter::didBlockData):
(WebCore::ContentFilter::getReplacementData):
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2013-01-25 Simon Fraser <simon.fraser@apple.com>
When the FrameView has a non-opaque background color, make sure the TileCache tiles are not opaque
https://bugs.webkit.org/show_bug.cgi?id=107989
Reviewed by Dean Jackson.
If a WKView was told to draw a transparent background, make sure that we
set the TileCache tiles to be non-opaque.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateRootLayerConfiguration):
2013-01-25 Alexandre Elias <aelias@chromium.org>
Call FrameView::contentsResized() when setting fixed layout size
https://bugs.webkit.org/show_bug.cgi?id=107922
Reviewed by James Robinson.
In fixed layout mode, we should be calling contentsResized() when the
fixed layout size is changed; on the other hand, we don't need to layout
when the visible contents size changes.
This fixes test WebFrameTest::FixedLayoutInitializeAtMinimumPageScale.
* page/FrameView.cpp:
(WebCore::FrameView::visibleContentsResized):
* platform/ScrollView.cpp:
(WebCore::ScrollView::setFixedLayoutSize):
(WebCore::ScrollView::setUseFixedLayout):
2013-01-25 Tony Gentilcore <tonyg@chromium.org>
Fix an ASSERT in BackgroundHTMLParser::appendPartial
https://bugs.webkit.org/show_bug.cgi?id=107983
Reviewed by Eric Seidel.
The complier may create a temporary for the isolatedCopy of the source string. This could cause the refCount of the
StringImpl to be greater than one when appendPartial is invoked on the background thread.
This patch ensures the temporary is gone by that time which fixes the ASSERT in numerous layout tests.
No new tests because covered by existing tests.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::append):
2013-01-25 Dean Jackson <dino@apple.com>
Add a user agent stylesheet for plugins
https://bugs.webkit.org/show_bug.cgi?id=107890
Reviewed by Alexey Proskuryakov.
As a step along the way to providing a Shadow DOM for plug-in elements, add a
User Agent stylesheet that is loaded when an embed or object element is
in the document. At the moment the stylesheet is empty.
The stylesheet can be overridden by the RenderTheme or the ChromeClient, allowing
ports to provide a custom appearance. This involved hooking up some virtual methods
on ChromeClient, the stubs of which are already implemented in WK2.
As a drive-by, since snapshotted plugins will need some localization I've also
exposed the ChromeClient methods to get text labels.
* CMakeLists.txt: Add plugIns.css.
* DerivedSources.make: Ditto.
* DerivedSources.pri: Ditto.
* GNUmakefile.am: Ditto.
* WebCore.gyp/WebCore.gyp: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditoo.
* css/StyleResolver.cpp:
(WebCore::ensureDefaultStyleSheetsForElement): Load and inject new plugInsStyleSheet if there is an object or embed element.
* css/plugIns.css: Added. Empty for now.
* page/ChromeClient.h: New methods for querying the client.
(WebCore::ChromeClient::plugInStartLabelTitle):
(WebCore::ChromeClient::plugInStartLabelSubtitle):
(WebCore::ChromeClient::plugInExtraStyleSheet):
* rendering/RenderTheme.h:
(WebCore::RenderTheme::extraPlugInsStyleSheet): Allow the theme to provide an extra stylesheet.
2013-01-25 Eric Carlson <eric.carlson@apple.com>
Adding a text track should not make controls visible
https://bugs.webkit.org/show_bug.cgi?id=107956
Reviewed by Dean Jackson.
Test: media/media-captions-no-controls.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateActiveTextTrackCues): Call updateTextTrackDisplay.
(WebCore::HTMLMediaElement::updateTextTrackDisplay): New, call mediaControls->updateTextTrackDisplay()
if we have controls.
(WebCore::HTMLMediaElement::setClosedCaptionsVisible): Call updateTextTrackDisplay.
(WebCore::HTMLMediaElement::createMediaControls): Hide controls if they should not be
visible. Minor drive by cleanup.
(WebCore::HTMLMediaElement::configureTextTrackDisplay): Drive by cleanup, pull the three lines
from updateClosedCaptionsControls inline and delete it because this was the only caller.
* html/HTMLMediaElement.h:
2013-01-25 Elliott Sprehn <esprehn@chromium.org>
Consider all ancestors not just parentElement when disconnecting frames
https://bugs.webkit.org/show_bug.cgi?id=107769
Reviewed by Eric Seidel.
Previous we only used the parentElement of the frame owner to decide if
we should disconnect the frame, but this means if you reparent a subtree
that contains multiple frames from inside an unload handler we'll disconnect
the subframes even though they're now in a different part of the document.
We can fix this by using containsIncludingShadowDOM, and also simplify the
code by removing ChildFrameDisconnector::Target.
Test: fast/frames/unload-reparent-sibling-frame.html
* dom/ContainerNodeAlgorithms.cpp:
* dom/ContainerNodeAlgorithms.h:
(ChildFrameDisconnector):
(ChildFrameDisconnector::Target): Removed.
(WebCore::ChildFrameDisconnector::collectFrameOwners):
(WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):
2013-01-25 Tony Chang <tony@chromium.org>
Re-layout child blocks when border/padding of the box-sizing:border-box parent is updated
https://bugs.webkit.org/show_bug.cgi?id=104997
Reviewed by Ojan Vafai.
Original patch by Kent Tamura:
When padding or border is updated for a parent block with
box-sizing:border-box and width, the width of its child block was not
updated.
The change is to look at border width specifically, not all changes to the border style
since changes to border color should not trigger a relayout.
Tests: fast/css/box-sizing-border-box-dynamic-padding-border-update.html
fast/forms/border-color-relayout.html
fast/forms/text/text-padding-dynamic-change.html
* rendering/RenderBox.cpp:
(WebCore::borderWidthChanged): Helper method to compare border widths.
(WebCore::RenderBox::styleDidChange):
If box-sizing of the old style and/or the new style is border-box and
padding or border is changed, apply setChildNeedsLayout(true) for child
boxes.
2013-01-25 Arnaud Renevier <a.renevier@sisa.samsung.com>
Move WebGLErrorsToConsole page setting to window.internals.settings
https://bugs.webkit.org/show_bug.cgi?id=107218
Reviewed by Kenneth Russell.
Define webGLErrorsToConsoleEnabled as true by default. Also,
WebGLRenderingContext::m_synthesizedErrorsToConsole is true by default
and can be disabled by settings.
Add a ConsoleDisplayPreference parameter to synthesizeGLError
(defaults to DisplayInConsole). When called with DontDisplayInConsole,
an error message will not be displayed (even if
m_synthesizedErrorsToConsole is true).
Call synthesizeGLError with DontDisplayInConsole in case of synthetic
context lost.
No new tests: covered by existing tests.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::WebGLRenderingContext):
(WebCore::WebGLRenderingContext::setupFlags):
(WebCore::WebGLRenderingContext::validateRenderingState):
(WebCore::WebGLRenderingContext::loseContextImpl):
(WebCore::WebGLRenderingContext::synthesizeGLError):
* html/canvas/WebGLRenderingContext.h:
* page/Settings.in:
2013-01-25 Alec Flett <alecflett@chromium.org>
IndexedDB: Move TaskType enum to IDBDatabaseBackendInterface
https://bugs.webkit.org/show_bug.cgi?id=107960
Reviewed by Tony Chang.
The IDBTransactionBackendInterface class is going away,
this is an easy search-and-replace patch to keep these
changes out of more complex patches.
No new tests, just part of a refactor.
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
* Modules/indexeddb/IDBCursorBackendImpl.h:
(WebCore::IDBCursorBackendImpl::create):
(IDBCursorBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::setIndexesReady):
(WebCore::OpenCursorOperation::perform):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::openCursor):
* Modules/indexeddb/IDBObjectStore.h:
(WebCore::IDBObjectStore::openCursor):
(IDBObjectStore):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::create):
(WebCore::IDBRequest::IDBRequest):
* Modules/indexeddb/IDBRequest.h:
(IDBRequest):
(WebCore::IDBRequest::taskType):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::scheduleTask):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(WebCore::IDBTransactionBackendImpl::scheduleTask):
(IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionBackendInterface.h:
2013-01-25 Abhishek Arya <inferno@chromium.org>
Regression(r139836): Crash in WTF::equalIgnoringCase
https://bugs.webkit.org/show_bug.cgi?id=107703
Reviewed by Eric Seidel.
Check |a| is a CSS_IDENT before considering it a string and
calling equalIgnoringCase on it. To avoid future mistakes like
this, add a function override for equalIgnoringCase that takes
CSSParserValue as a parameter and ASSERTs if that CSSParserValue
is not a CSS_STRING/CSS_IDENT.
Test: fast/gradients/parse-radial-gradient-crash.html
* css/CSSParser.cpp:
(WebCore):
(WebCore::equalIgnoringCase):
(WebCore::CSSParser::parseAnimationName):
(WebCore::CSSParser::parseAnimationProperty):
(WebCore::CSSParser::parseDashboardRegions):
(WebCore::parseDeprecatedGradientPoint):
(WebCore::CSSParser::parseDeprecatedGradient):
(WebCore::CSSParser::parseLinearGradient):
(WebCore::CSSParser::parseRadialGradient):
2013-01-25 Chang Shu <cshu@webkit.org>
Build broken when svg is disabled.
https://bugs.webkit.org/show_bug.cgi?id=92393.
Unreviewed build fix.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::buildReferenceFilter):
2013-01-25 Tony Gentilcore <tonyg@chromium.org>
Abort parsing when pending location change for threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=107876
Reviewed by Eric Seidel.
The main thread parser does this in canTakeNextToken. Adding this check to the threaded parser causes us to pass
fast/loader/location-change-aborts-parsing.html.
No new tests because covered by existing tests.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::processTokensFromBackgroundParser):
2013-01-25 Mike West <mkwst@chromium.org>
ScriptController::executeIfJavaScriptURL incorrectly checks viewsource mode.
incorrectly blocks execution based on the frame's viewsource state.
https://bugs.webkit.org/show_bug.cgi?id=101683
Reviewed by Adam Barth.
ScriptController::executeIfJavaScriptURL currently checks whether the
frame in which a 'javascript:' URL might be executed is in viewsource
mode. This incorrectly handles the case where the viewsource attribute
is added after a document loads: the _frame_ is in viewsource mode, the
_document_ is not. The latter should control execution, not the former.
This patch drops the inViewSourceMode check from executeIfJavaScriptURL
entirely, as the document's viewsource state is checked in
canExecuteScripts, which is already called when the 'javascript:' URL is
passed to executeScript. The checks should remain centralized there.
Test: http/tests/security/view-source-javascript-url-in-document.html
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::executeIfJavaScriptURL):
Drop the incorrect check against the Frame's viewsource mode. The
correct check against the Document's viewsource mode is performed
in canExecuteScripts (which is called via executeScript).
2013-01-25 Gustavo Noronha Silva <gns@gnome.org>
[Soup] Streamline cancellation and client checks
https://bugs.webkit.org/show_bug.cgi?id=107808
Reviewed by Martin Robinson.
Covered by existing tests.
* platform/network/ResourceHandle.h:
(ResourceHandle):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::cancelledOrClientless): new method to check for cancellation and lack of client.
(WebCore):
(WebCore::gotHeadersCallback): use the new method.
(WebCore::restartedCallback): ditto.
(WebCore::redirectCloseCallback): ditto.
(WebCore::redirectSkipCallback): ditto.
(WebCore::wroteBodyDataCallback): ditto.
(WebCore::nextMultipartResponsePartCallback): ditto.
(WebCore::sendRequestCallback): ditto.
(WebCore::networkEventCallback): ditto.
(WebCore::ResourceHandle::platformSetDefersLoading): ditto.
(WebCore::readCallback): ditto.
2013-01-25 Victor Carbune <vcarbune@chromium.org>
Heap-use-after-free in WebCore::TextTrackCue::isActive
https://bugs.webkit.org/show_bug.cgi?id=104594
Reviewed by Eric Carlson.
Test: media/track/track-remove-active-cue-crash.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::textTrackAddCue):
(WebCore::HTMLMediaElement::textTrackRemoveCue): Remove the cue
from the active cue set as well.
* html/HTMLMediaElement.h:
(WebCore):
2013-01-25 Mike West <mkwst@chromium.org>
Web Inspector: Cleanup console.* API MessageSource/Levels.
https://bugs.webkit.org/show_bug.cgi?id=107946
Reviewed by Pavel Feldman.
This patch does some light cleanup on sources and levels of console.*
messages as part of a broader effort to offer better filtering options
in the console. Specifically:
- console.timeEnd and console.count now come from
ConsoleAPIMessageSource.
- console.count is now DebugMessageLevel (to match console.timeEnd).
- console.profile and console.profileEnd now comr from
ConsoleAPIMessageSource, and are DebugMessageLevel.
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::stopTiming):
(WebCore::InspectorConsoleAgent::count):
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::addProfileFinishedMessageToConsole):
(WebCore::InspectorProfilerAgent::addStartProfilingMessageToConsole):
2013-01-25 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: highlight occurences of word in DefaultTextEditor
https://bugs.webkit.org/show_bug.cgi?id=105523
Reviewed by Pavel Feldman.
Highlight occurrences of selected word in DefaultTextEditor by the means of new highlight regex API.
Test: inspector/editor/text-editor-highlight-token.html
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel):
(WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
(WebInspector.TextEditorMainPanel.TokenHighlighter): Added.
(WebInspector.TextEditorMainPanel.TokenHighlighter.prototype.handleSelectionChange):
(WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._regexString):
(WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._highlight):
(WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._removeHighlight):
(WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._isWord):
* inspector/front-end/textEditor.css:
(.text-editor-token-highlight):
2013-01-25 Alexander Paschenko <alexander.pashenko@lge.com>
[TexMap] Flickering after transitions on Apple HTML5 demo
https://bugs.webkit.org/show_bug.cgi?id=102501
Reviewed by Noam Rosenthal.
The problem is caused by inconsistent state of TextureMapperLayer's transformation matrix
and opacity data during and after the end of animation.
This patch solves the problem by introducing three additional private flags
to TextureMapperLayer:
m_shouldUpdateCurrentTransformFromGraphicsLayer,
m_shouldUpdateCurrentOpacityFromGraphicsLayer, and
m_shouldUpdateCurrentFiltersFromGraphicsLayer.
The latter has been introduced in order to avoid similar future problems
with m_currentFilters.
On these flags' basis, TextureMapperLayer is able to decide whether to update
its inner state or not.
These flags themselves are set based on GraphicsLayerTextureMapper's changeMask
which indicates what details of the state have been changed since the last sync.
No new tests - this doesn't expose any testable surface.
Eyes-only check has been made to ensure that the problem is gone now.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::setAnimatedTransform):
sets m_shouldUpdateCurrentTransformFromGraphicsLayer to false and
updates m_currentTransform based on the updated state from GraphicsLayerAnimation.
(WebCore):
(WebCore::TextureMapperLayer::setAnimatedOpacity):
sets m_shouldUpdateCurrentOpacityFromGraphicsLayer to false and
updates m_currentOpacity based on the updated state from GraphicsLayerAnimation.
(WebCore::TextureMapperLayer::setAnimatedFilters):
sets m_shouldUpdateCurrentFiltersFromGraphicsLayer to false and
updates m_currentFilters based on the updated state from GraphicsLayerAnimation.
(WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
sets m_shouldUpdateCurrent* flags based on GLTM's changeMask. Also illegal modification
of m_currentTransform that caused flickering has been removed from this method.
(WebCore::TextureMapperLayer::syncAnimations): updates m_currentTransform and/or
m_currentOpacity and/or m_currentFilters if corresponding flags allow to do so.
* platform/graphics/texmap/TextureMapperLayer.h:
(WebCore::TextureMapperLayer::TextureMapperLayer): aforementioned flags
get initialized in ctor.
(TextureMapperLayer): aforementioned flags are declared in the class.
2013-01-25 Marja Hölttä <marja@chromium.org>
Refactor InspectorMemoryAgent: memory data as a map.
https://bugs.webkit.org/show_bug.cgi?id=107938
Reviewed by Yury Semikhatsky.
No new tests (no functional changes, only refactoring).
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::getProcessMemoryDistribution):
(WebCore):
* inspector/InspectorController.h:
(WebCore):
(InspectorController):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::addPlatformComponentsInfo):
(WebCore):
(WebCore::addMemoryInstrumentationDebugData):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
(WebCore::InspectorMemoryAgent::reportMemoryUsage):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistributionAsMap):
* inspector/InspectorMemoryAgent.h:
(InspectorMemoryAgent):
2013-01-25 Huang Dongsung <luxtella@company100.net>
[Texmap] Refactor code related to debug border and repaint count.
https://bugs.webkit.org/show_bug.cgi?id=105787
Reviewed by Noam Rosenthal.
Currently, TextureMapperBackingStore, CoordinatedBackingStore and
GraphicsLayerTextureMapper have duplicated code to draw debug border or
repaint count. This patch refactors that all platform layers draw debug
border and repaint count in the consistent way:
TextureMapper::drawBorder() and TextureMapper::drawRepaintCounter().
There are three big changes:
1. TextureMapperLayer has the debug visuals like GraphicsLayer.
Both debug border and repaint count are called as the debug visuals.
2. We use the same color and width to Mac port because we get that info using
GraphicsLayer::updateDebugIndicators().
3. Draw borders for background color, backing store and contents layer,
while drawing repaint count only for backing store.
No new tests. This functionality is for debugging, so we cannot test using DRT.
* platform/graphics/cairo/GraphicsContext3DPrivate.h:
* platform/graphics/qt/GraphicsContext3DQt.cpp:
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setShowDebugBorder):
(WebCore):
(WebCore::GraphicsLayerTextureMapper::setShowRepaintCounter):
(WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
(WebCore::GraphicsLayerTextureMapper::updateDebugBorderAndRepaintCountIfNeeded):
(WebCore::GraphicsLayerTextureMapper::setDebugBorder):
(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):
(WebCore::GraphicsLayerTextureMapper::prepareBackingStore):
(WebCore::GraphicsLayerTextureMapper::setRepaintCount):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::debugBorderColor):
(WebCore::GraphicsLayerTextureMapper::debugBorderWidth):
* platform/graphics/texmap/TextureMapper.h:
* platform/graphics/texmap/TextureMapperBackingStore.cpp:
(WebCore::TextureMapperTiledBackingStore::adjustedTransformForRect):
(WebCore):
(WebCore::TextureMapperTiledBackingStore::paintToTextureMapper):
(WebCore::TextureMapperTiledBackingStore::drawBorder):
Override TextureMapperPlatformLayer::drawBorder() to draw the border
for each tile.
(WebCore::TextureMapperTiledBackingStore::drawRepaintCounter):
* platform/graphics/texmap/TextureMapperBackingStore.h:
(WebCore::TextureMapperBackingStore::drawRepaintCounter):
(TextureMapperBackingStore):
(TextureMapperTiledBackingStore):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawRepaintCounter):
* platform/graphics/texmap/TextureMapperGL.h:
* platform/graphics/texmap/TextureMapperImageBuffer.cpp:
(WebCore::TextureMapperImageBuffer::drawBorder):
(WebCore):
(WebCore::TextureMapperImageBuffer::drawRepaintCounter):
* platform/graphics/texmap/TextureMapperImageBuffer.h:
(TextureMapperImageBuffer):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
* platform/graphics/texmap/TextureMapperLayer.h:
(State):
(WebCore::TextureMapperLayer::State::State):
* platform/graphics/texmap/TextureMapperPlatformLayer.h:
(WebCore::TextureMapperPlatformLayer::drawBorder):
2013-01-24 Patrick Gansterer <paroga@webkit.org>
Build fix for !ENABLE(DRAG_SUPPORT) after r140286.
* page/AutoscrollController.cpp:
(WebCore::AutoscrollController::autoscrollTimerFired):
2013-01-25 Ken Kania <kkania@chromium.org>
Web Inspector: Move dispatchMouseEvent optional params after x,y
https://bugs.webkit.org/show_bug.cgi?id=107828
Reviewed by Pavel Feldman.
No new tests, as this just rearranges the order of arguments to make
JSCompiler happy. The params were rearranged in r140649 to match
dispatchKeyEvent's params.
* inspector/Inspector.json:
* inspector/InspectorInputAgent.cpp:
(WebCore::InspectorInputAgent::dispatchMouseEvent):
* inspector/InspectorInputAgent.h:
(InspectorInputAgent):
2013-01-25 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Styles] Editing a property value containing a trimmed data: URL breaks the style
https://bugs.webkit.org/show_bug.cgi?id=107936
Reviewed by Yury Semikhatsky.
Restore the original CSS property value before editing.
Test: inspector/styles/edit-value-with-trimmed-url.html
* inspector/front-end/StylesSidebarPane.js:
2013-01-25 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] Use DataGrid column alignment instead of custom styling.
https://bugs.webkit.org/show_bug.cgi?id=107935
Reviewed by Pavel Feldman.
On Network Panel column alignment is specified both in
column descriptors and in CSS stylesheet.
Only one alignment specifier should last.
* inspector/front-end/DataGrid.js:
(WebInspector.DataGridNode.prototype.createTD): Extracted common code.
(WebInspector.DataGridNode.prototype.createCell): Use "createTD".
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkDataGridNode.prototype._createDivInTD): Ditto.
* inspector/front-end/networkLogView.css: Remove exheberant rules.
* inspector/front-end/networkPanel.css: Fix whitespaces.
2013-01-25 Sergey Ryazanov <serya@chromium.org>
Web Inspector: Add explanation for Console object expansion behaviour
https://bugs.webkit.org/show_bug.cgi?id=107793
Reviewed by Pavel Feldman.
* English.lproj/localizedStrings.js:
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArrayOrObject):
* inspector/front-end/inspector.css:
(.object-info-state-note):
(.object-info-state-note::before):
(.object-info-state-note:hover):
(.section.expanded .object-info-state-note):
(.section.expanded .properties, .event-bar.expanded .event-properties):
(.pane.expanded .properties, .event-bar .event-properties):
2013-01-25 Claudio Saavedra <csaavedra@igalia.com>
Missing files in GNUmakefile.list.am for Notifications support
https://bugs.webkit.org/show_bug.cgi?id=107934
Reviewed by Philippe Normand.
* GNUmakefile.list.am: Add DOMWindowNotifications.idl and
WorkerContextNotifications.idl to dom_binding_idls and
JSNotificationCustom.{cpp,h} to webcore_sources, since without
this the Notifications will be broken.
2013-01-25 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: implement search for workspace sources
https://bugs.webkit.org/show_bug.cgi?id=107814
Reviewed by Pavel Feldman.
Implement generic WebInspector.ContentProvider.performSearchInContent method and use it in both
StaticContentProvider and fileSystemWorkspaceProvider.
No new tests.
* inspector/front-end/ContentProvider.js:
(WebInspector.ContentProvider.performSearchInContent): Added.
* inspector/front-end/ContentProviders.js:
(WebInspector.StaticContentProvider.prototype.):
(WebInspector.StaticContentProvider.prototype.searchInContent):
* inspector/front-end/FileSystemWorkspaceProvider.js:
(WebInspector.FileSystemWorkspaceProvider.prototype.contentCallback):
(WebInspector.FileSystemWorkspaceProvider.prototype.searchInFileContent):
2013-01-25 Elliott Sprehn <esprehn@gmail.com>
Assert the connectedSubframeCount is consistent and fix over counting
https://bugs.webkit.org/show_bug.cgi?id=107302
Reviewed by Alexey Proskuryakov.
Add a debug assertion that walks the subtree during frame disconnection
and manually counts the number of connected subframes to assert that the
value from Node::connectedSubframeCount() is the same as if we traversed
through the tree.
In fixing the places where this assertion failed I made document destruction
faster by not walking the entire document looking for frames if the entire
frame tree has been destroyed by way of FrameLoader::detachChildren().
I had inadvertently introduced this improvement in r133933, but then I
regressed it in r140090 when we switched to counting because I didn't
realize we destroy the frame tree separate of frame disconnection on
document unload so all frames could have been destroyed but the counts
left on the ancestors.
I also fixed another overcounting case where the adoption agency algorithm
may call ContainerNode::takeAllChildrenFrom() which in turn calls
ContainerNode::removeAllChildren() and could have left a connected subframe
count on the node even though all the frames had been removed.
This assertion did not uncover any cases of undercounting the number of
frames.
This also fixes a rare edge case where removeChild of an iframe that
was already being unloaded would not unload the frame until the top level
unload was done, and a reparenting of the iframe would not cause it to load.
Test: fast/frames/reparent-in-unload-contentdocument.html
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeAllChildren):
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::parserRemoveChild):
(WebCore::ContainerNode::parserAppendChild):
* dom/ContainerNodeAlgorithms.cpp:
(WebCore):
(WebCore::assertConnectedSubframeCountIsConsistent):
* dom/ContainerNodeAlgorithms.h:
(WebCore):
(WebCore::ChildFrameDisconnector::disconnect):
* dom/Node.cpp:
(WebCore::Node::updateAncestorConnectedSubframeCountForRemoval):
(WebCore):
(WebCore::Node::updateAncestorConnectedSubframeCountForInsertion):
* dom/Node.h:
(Node):
* html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::clearContentFrame):
(WebCore):
(WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
* html/HTMLFrameOwnerElement.h:
(HTMLFrameOwnerElement):
2013-01-25 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: inspector slows down pages with many anonymous scripts.
https://bugs.webkit.org/show_bug.cgi?id=107928
Reviewed by Alexander Pavlov.
The problem was that workspace code introduced n^2 complexity for unique URI calculation.
* inspector/front-end/SimpleWorkspaceProvider.js:
(WebInspector.SimpleWorkspaceProvider):
(WebInspector.SimpleWorkspaceProvider.prototype.uniqueURI):
2013-01-25 Jussi Kukkonen <jussi.kukkonen@intel.com>
[CMake][EFL] Build ThirdParty/leveldb when IndexedDB is enabled
https://bugs.webkit.org/show_bug.cgi?id=106443
Reviewed by Laszlo Gombos.
LevelDB is now included in ThirdParty. Use it when IndexDB is
enabled for EFL.
* CMakeLists.txt:
Build ThirdParty/leveldb when WTF_USE_LEVELDB is set
2013-01-25 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Inconsistent value of aria-valuetext attribute
https://bugs.webkit.org/show_bug.cgi?id=107897
Reviewed by Kentaro Hara.
aria-valuetext and aria-valuenow attributes had inconsistent values in
a case of initial empty state and a case that a user clears a field.
- aria-valuetext attribute should have "blank" message in the initial
empty state.
- aria-valuenow attribute should be removed in the cleared empty state.
Also, we have a bug that aira-valuenow had a symbolic value such as "AM"
"January". It should always have a numeric value according to the
specification.
http://www.w3.org/TR/wai-aria/states_and_properties#aria-valuenow
No new tests. Updates fast/forms/*-multiple-fields/*-multiple-fields-ax-aria-attributes.html.
* html/shadow/DateTimeFieldElement.cpp:
(WebCore::DateTimeFieldElement::DateTimeFieldElement):
Set "blank" message to aria-valuetext attribute.
(WebCore::DateTimeFieldElement::updateVisibleValue):
aria-valuenow attribute should be a numeric value. Apply String::number
to the return value of valueForARIAValueNow.
Remove aria-valuenow attribute if nothing is selected.
(WebCore::DateTimeFieldElement::valueForARIAValueNow):
Added.
* html/shadow/DateTimeFieldElement.h:
(DateTimeFieldElement): Declare valueForARIAValueNow.
* html/shadow/DateTimeSymbolicFieldElement.cpp:
(WebCore::DateTimeSymbolicFieldElement::valueForARIAValueNow):
Added. Returns 1 + internal selection index.
For example, the function returns 1 for January.
* html/shadow/DateTimeSymbolicFieldElement.h:
(DateTimeSymbolicFieldElement): Declare valueForARIAValueNow.
2013-01-24 Hans Wennborg <hans@chromium.org>
Disable Clang's -Wreturn-type-c-linkage for Source/WebCore/bindings/v8/
https://bugs.webkit.org/show_bug.cgi?id=107845
Reviewed by Adam Barth.
A recent version of Clang started warning about code in
Source/WebCore/bindings/v8/npruntime.cpp.
In this case it is warning about an 'extern "c"' function returning a
non-POD type. But because the function has internal linkage, the
warning doesn't really apply.
This change suppresses the warning in the meantime.
Tested by building with Clang r172454.
* WebCore.gyp/WebCore.gyp:
2013-01-25 Eberhard Graether <egraether@google.com>
Web Inspector: add checkbox for continuous painting to the inspector's settings
https://bugs.webkit.org/show_bug.cgi?id=107352
Reviewed by Pavel Feldman.
This change adds a checkbox to activate continuous painting to the WebInspector's
rendering settings and plumbs the setting to Chromium's WebLayerTreeView. The
setting is visible if InspectorClient::canContinuouslyPaint() returns true.
No new tests.
* English.lproj/localizedStrings.js:
* inspector/Inspector.json:
* inspector/InspectorClient.h:
(WebCore::InspectorClient::canContinuouslyPaint):
(WebCore::InspectorClient::setContinuousPaintingEnabled):
(InspectorClient):
* inspector/InspectorPageAgent.cpp:
(PageAgentState):
(WebCore::InspectorPageAgent::restore):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::canContinuouslyPaint):
(WebCore):
(WebCore::InspectorPageAgent::setContinuousPaintingEnabled):
* inspector/InspectorPageAgent.h:
* inspector/front-end/Settings.js:
* inspector/front-end/SettingsScreen.js:
(WebInspector.GenericSettingsTab):
(WebInspector.GenericSettingsTab.prototype.get _continuousPaintingChanged):
* inspector/front-end/inspector.js:
(WebInspector.doLoadedDone):
2013-01-25 Dominic Mazzoni <dmazzoni@google.com>
REGRESSION (r140658): Multiple accessibility failures on GTK
https://bugs.webkit.org/show_bug.cgi?id=107832
Reviewed by Chris Fleizach.
In the ATK accessibility implementation, attachWrapper
might create a different object depending on the role of
the WebCore AccessibilityObject, whereas on other platforms
attachWrapper doesn't care. Calling init before attachWrapper
solves the problem.
Re-enables 7 skipped tests.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
2013-01-24 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Refactoring: Remove confusing minimum() and maximum() of DateTimeSymbolicFieldElement
https://bugs.webkit.org/show_bug.cgi?id=107918
Reviewed by Kentaro Hara.
DateTimeSymbolicFieldElement::minimum() and maximum() are very
confusing. They don't return minimum/maximum value of 0-based symbol
index though valueAsInteger is 0-based. These functions are used only
for ARIA attributes in DateTimeFieldElement::initialize().
- Remove DateTimeFieldElement::minimum() and maximum(), and pass
minimum/maximum values for ARIA attributes as function arguments.
- DateTimeNumericFieldElement::maximum() is now non-virtual.
It is called by subclasses.
No new tests. This should not change any behavior.
* html/shadow/DateTimeFieldElement.cpp:
(WebCore::DateTimeFieldElement::initialize):
Add axMimimum/axMaximum arguments. Don't use minimum() and maximum().
* html/shadow/DateTimeFieldElement.h:
(DateTimeFieldElement): Ditto.
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore::DateTimeNumericFieldElement::initialize):
Pass m_range.minimum and maximum to DateTimeFieldElement::initialize().
* html/shadow/DateTimeNumericFieldElement.h:
(DateTimeNumericFieldElement):
- Add initialize()
- Make maximum() non-virtual
- Remove minimum().
* html/shadow/DateTimeSymbolicFieldElement.cpp:
(WebCore::DateTimeSymbolicFieldElement::initialize):
Pass m_minimumIndex + 1 and m_maximumIndex + 1 to
DateTimeFieldElement::initialize().
* html/shadow/DateTimeSymbolicFieldElement.h:
(DateTimeSymbolicFieldElement):
Add initialize() and remove minimum() and maximum().
2013-01-24 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Refactoring: Remove unused DateTimeHourFieldElement::valueAsInteger
https://bugs.webkit.org/show_bug.cgi?id=107915
Reviewed by Kentaro Hara.
DateTimeHourFieldElement::valueAsInteger is never called. Remove it and
make valueAsInteger non-public.
No new tests. This shouldn't change any behavior.
* html/shadow/DateTimeFieldElement.h:
(DateTimeFieldElement): Make valueAsInteger protected.
* html/shadow/DateTimeFieldElements.cpp:
Remove DateTimeHourFieldElement::valueAsInteger.
(WebCore::DateTimeHourFieldElement::populateDateTimeFieldsState):
Remove unnecessary DateTimeNumericFieldElement:: prefix.
* html/shadow/DateTimeFieldElements.h:
(DateTimeHourFieldElement): Remove valueAsInteger.
* html/shadow/DateTimeNumericFieldElement.h:
(DateTimeNumericFieldElement):
Make valueAsInteger FINAL.
2013-01-24 Hajime Morrita <morrita@google.com>
Refactoring: The name ContainerNode::removeChildren and ContainerNde::removeAllChilren() is confusing
https://bugs.webkit.org/show_bug.cgi?id=107640
Reviewed by Eric Seidel.
This change renames unsafe removeAllChilren() function to
removeDetachedChildren() and move it to protected visibility.
In theory, the removed nodes should be detached() before. But some
tests violates that assumption. It should be fixed.
No new tests. No behavior change.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeDetachedChildren):
(WebCore::ContainerNode::takeAllChildrenFrom):
(WebCore::ContainerNode::~ContainerNode):
* dom/ContainerNode.h:
(ContainerNode):
* dom/ContainerNodeAlgorithms.h:
(WebCore::removeDetachedChildrenInContainer):
(WebCore):
* dom/Document.cpp:
(WebCore::Document::removedLastRef):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::~ShadowRoot):
* svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::detach):
* svg/SVGElementInstance.h:
(SVGElementInstance):
2013-01-24 Keishi Hattori <keishi@webkit.org>
Adjust design of the Calendar Picker
https://bugs.webkit.org/show_bug.cgi?id=107507
Reviewed by Kent Tamura.
Covered by existing calendar picker appearance tests.
* Resources/pagepopups/calendarPicker.css:
(body): Use bigger font.
(.calendar-picker):
(.month-selector):
(.month-selector svg):
(.month-selector-popup-contents):
(.year-month-button-left .year-month-button):
(.year-month-button-right .year-month-button):
(.days-area-container):
(.days-area):
(.day-label):
(.day):
(.available):
(.month-mode .day):
(.today-clear-area .today-button):
* Resources/pagepopups/calendarPicker.js:
(CalendarPicker.prototype.fixWindowSize): Calculate the width of today-clear-area too.
(YearMonthController.prototype.attachTo):
(YearMonthController.prototype._attachLeftButtonsTo): Use svg icons inside buttons.
(YearMonthController.prototype._attachRightButtonsTo): Use svg icons inside buttons.
(YearMonthController.prototype.setMonth):
(YearMonthController.prototype._handleButtonClick):
* Resources/pagepopups/calendarPickerMac.css: Removed.
* Resources/pagepopups/chromium/calendarPickerChromium.css: Added.
(.year-month-button):
(.days-area-container:focus):
* Resources/pagepopups/chromium/pickerCommonChromium.css: Added. Use Chrome-style buttons.
(button):
(:enabled:hover:-webkit-any(button, input[type='button'])):
(:enabled:active:-webkit-any(button, input[type='button'])):
(:disabled:-webkit-any(button, input[type='button'])):
(:enabled:focus:-webkit-any(button, input[type='button'])):
* WebCore.gyp/WebCore.gyp: Include pickerCommonChromium.css and calendarPickerChromium.css.
* rendering/RenderTheme.cpp: Remove extraCalendarPickerStyleSheet
* rendering/RenderTheme.h: Ditto.
* rendering/RenderThemeChromiumMac.h: Ditto.
* rendering/RenderThemeChromiumMac.mm: Ditto.
(WebCore):
2013-01-24 Kentaro Hara <haraken@chromium.org>
Unreviewed build fix.
* page/History.h:
(WebCore):
2013-01-24 Beth Dakin <bdakin@apple.com>
Fixed elements sometimes marked out-of-view if you have rubber-banded too far,
affects flickr.com
https://bugs.webkit.org/show_bug.cgi?id=107882
-and corresponding-
<rdar://problem/13065897>
Reviewed by Simon Fraser.
It is possible to rubber band so far that our fixed object appears to be outside
of the visibleContentArea(). We should use the
viewportConstrainedVisibleContentRect() since that is what fixed objects are
positioned based on anyway.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
2013-01-24 Kentaro Hara <haraken@chromium.org>
Unreviewed build fix.
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::state):
2013-01-24 Julien Brianceau <jbrianceau@nds.com>
NPN_InitializeVariantWithStringCopy is wrong for platforms returning NULL from malloc(0)
https://bugs.webkit.org/show_bug.cgi?id=96272
Reviewed by Alexey Proskuryakov.
No new tests. This is platform dependent.
* bridge/npruntime.cpp:
(NPN_InitializeVariantWithStringCopy):
2013-01-24 Christian Biesinger <cbiesinger@chromium.org>
resize property doesn't work on iframes
https://bugs.webkit.org/show_bug.cgi?id=9221
Reviewed by Eric Seidel.
Test: fast/css/resize-corner-tracking-transformed-iframe.html
and fast/css/resize-corner-tracking.html
* rendering/RenderIFrame.cpp:
(WebCore::RenderIFrame::requiresLayer):
(WebCore):
* rendering/RenderIFrame.h:
<iframe>s need a layer to be resizable, so make requiresLayer return
true if the css property is set.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::canResize):
(WebCore):
(WebCore::RenderLayer::resize):
(WebCore::RenderLayer::positionOverflowControls):
(WebCore::RenderLayer::isPointInResizeControl):
(WebCore::RenderLayer::hitTestOverflowControls):
(WebCore::RenderLayer::hitTestLayer):
* rendering/RenderLayer.h:
(RenderLayer):
Add a new canResize() function and use it instead of hasOverflowClip()
to check whether resizing should be allowed (there's still the
additional check of style()->resize() != RESIZE_NONE, of course)
Make hitTestLayer return |this| when the point is inside the
resizer rectangle.
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paint):
Call layer()->paintResizer() to actually paint the resizer.
2013-01-24 Kentaro Hara <haraken@chromium.org>
Regression(r107058): Use-after-free in SerializedScriptValue::deserialize
https://bugs.webkit.org/show_bug.cgi?id=107792
Reviewed by Abhishek Arya.
Imagine the following call path:
(1) history.state is accessed.
(2) V8History::stateAccessorGetter() calls History::state(), which calls
HistoryItem::stateObject().
(3) HistoryItem holds m_stateObject as RefPtr<SerializedScriptValue>,
but HistoryItem::stateObject() returns SerializedScriptValue*.
(4) V8History::stateAccessorGetter calls SerializedScriptValue::deserialize()
for the SerializedScriptValue* obtained in (3).
(5) SerializedScriptValue::deserialize() can call history.replaceState()
in its deserialization process (See the test case in the Chromium bug).
(6) history.replaceState() replaces HistoryItem::m_stateObject.
This replacement destructs the original HistoryItem::m_stateObject.
(7) The current deserialization process can crash due to the premature destruction.
To avoid the problem, we have to pass PassRefPtr<SerializedScriptValue> around
instead of SerializedScriptValue*.
Test: fast/history/replacestate-nocrash.html
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::stateAccessorGetter):
* history/HistoryItem.h:
(WebCore):
(WebCore::HistoryItem::stateObject):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadInSameDocument):
* loader/FrameLoader.h:
* page/History.cpp:
(WebCore::History::state):
(WebCore::History::stateInternal):
* page/History.h:
(History):
2013-01-24 Beth Dakin <bdakin@apple.com>
Some formerly-fixed objects scroll as if they are still fixed
https://bugs.webkit.org/show_bug.cgi?id=107869
Reviewed by Simon Fraser.
Removing nodes need to mark m_hasChangedProperties on the state tree, otherwise
they will not be committed to the scrolling tree until something else changes,
which could actually take a while. During the delay, the scrolling tree will
continue to move around the formerly-fixed object as long as it still has a layer.
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::didRemoveNode):
2013-01-24 Arko Saha <arko@motorola.com>
Microdata: itemtype attribute must update correctly on adding or removing tokens
https://bugs.webkit.org/show_bug.cgi?id=106616
Reviewed by Ryosuke Niwa.
Added a new class MicroDataAttributeTokenList, it overrides setValue() method of
DOMSettableTokenList. setValue() is responsible to set the new attribute value for
a given element.
Tests: fast/dom/MicroData/microdata-domtokenlist-attribute-add-remove-tokens.html
fast/dom/MicroData/propertynodelist-add-remove-itemprop-tokens.html
fast/dom/MicroData/propertynodelist-add-remove-itemref-tokens.html
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/Node.cpp:
(WebCore::Node::itemProp):
(WebCore::Node::setItemProp):
(WebCore::Node::itemRef):
(WebCore::Node::setItemRef):
(WebCore::Node::itemType):
(WebCore::Node::setItemType):
* dom/NodeRareData.h:
(WebCore::NodeMicroDataTokenLists::itemProp):
(WebCore::NodeMicroDataTokenLists::itemRef):
(WebCore::NodeMicroDataTokenLists::itemType):
(NodeMicroDataTokenLists):
* html/DOMSettableTokenList.h: Made the constructor as protected, so that we can
override setValue() method.
(DOMSettableTokenList):
* html/MicroDataAttributeTokenList.cpp: Added.
(WebCore):
(WebCore::MicroDataAttributeTokenList::MicroDataAttributeTokenList):
(WebCore::MicroDataAttributeTokenList::setValueInternal):
(WebCore::MicroDataAttributeTokenList::setValue): It calls
DOMSettableTokenList::setValue to set internal tokens and value.
* html/MicroDataAttributeTokenList.h: Added.
(WebCore):
(MicroDataAttributeTokenList):
(WebCore::MicroDataAttributeTokenList::create):
2013-01-24 Joshua Bell <jsbell@chromium.org>
IndexedDB: Remove IDBUpgradeNeededEvent, merge with IDBVersionChangeEvent
https://bugs.webkit.org/show_bug.cgi?id=107754
Reviewed by Tony Chang.
The IndexedDB spec calls deleteDatabase() to fire a "blocked" event with the
IDBVersionChangeEvent interface which we were doing, but with an older interface - just
a "version" property. We were already firing an event on "versionchange" with the new
"oldVersion" and "newVersion" properties, but with an IDBUpgradeNeededEvent interface that
doesn't exist in the spec. This patch merges the event types to match the spec, including
that the newVersion property is null when deleting.
Test: storage/indexeddb/events.html
storage/indexeddb/deletedatabase-*.html
* CMakeLists.txt: Remove references to deleted files.
* GNUmakefile.list.am: Ditto.
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::onVersionChange): Generate IDBVersionChangeEvent.
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onBlocked): Ditto.
(WebCore::IDBOpenDBRequest::onUpgradeNeeded): Ditto.
* Modules/indexeddb/IDBUpgradeNeededEvent.cpp: Removed.
* Modules/indexeddb/IDBUpgradeNeededEvent.h: Removed.
* Modules/indexeddb/IDBUpgradeNeededEvent.idl: Removed.
* Modules/indexeddb/IDBVersionChangeEvent.cpp:
(WebCore::IDBVersionChangeEvent::create): Take IDBAny's as old/new versions
may be integers, strings (for legacy databases), or null (when deleting).
(WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
* Modules/indexeddb/IDBVersionChangeEvent.h:
(IDBVersionChangeEvent): Remove version property.
(WebCore::IDBVersionChangeEvent::oldVersion): Added new property.
(WebCore::IDBVersionChangeEvent::newVersion): Added new property.
* Modules/indexeddb/IDBVersionChangeEvent.idl: Updated properties.
* WebCore.gypi: Remove references to deleted files.
* dom/EventNames.in: Ditto.
2013-01-24 Pratik Solanki <psolanki@apple.com>
CertificateChain functions in ResourceResponse should be inside proper ifdefs
https://bugs.webkit.org/show_bug.cgi?id=107865
Reviewed by Brady Eidson.
Move ResourceResponse::setCertificateChain() and ResourceResponse::certificateChain()
be under the same ifdefs that they are declared in.
No new tests because no change in functionality.
* platform/network/mac/ResourceResponseMac.mm:
2013-01-24 Leo Yang <leoyang@rim.com>
[BlackBerry] Display HTML5 Appcache manifest
https://bugs.webkit.org/show_bug.cgi?id=107858
Reviewed by Yong Li.
Reviewed internally by Jeff Rogers.
MIME alias no new tests.
* platform/MIMETypeRegistry.cpp:
(WebCore::mimeTypeAssociationMap):
2013-01-24 Mike West <mkwst@chromium.org>
Web Inspector: "XHR loaded!" messages should be DebugMessageLevel.
https://bugs.webkit.org/show_bug.cgi?id=107817
Reviewed by Pavel Feldman.
The 'XHR finished loading:' message is currently sent at
LogMessageLevel. Upon reflection, the only messages that should be
sent at that level are messages the developer generates herself via
'console.*' calls. This message is better categorized as 'debug'.
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::didFinishXHRLoading):
Change the message to DebugMessageLevel.
2013-01-24 James Robinson <jamesr@chromium.org>
REGRESSION(140571): Crash in ScrollingCoordinator::mainThreadScrollingReasons during Frame::createView
https://bugs.webkit.org/show_bug.cgi?id=107868
Reviewed by Beth Dakin.
When using fixed layout mode, it's possible to update the scrollbar state of the main FrameView before
it's set on the main frame, which can lead to calling in to ScrollingCoordinator to compute main thread
scrolling regions when m_page->mainFrame()->view() is 0. In this case, we don't have any main
thread scrolling reasons and should just return 0.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
2013-01-24 Martin Robinson <mrobinson@igalia.com>
Abstract the logic for appending a UChar32 onto StringBuilder
https://bugs.webkit.org/show_bug.cgi?id=107505
Reviewed by Darin Adler.
* css/CSSOMUtils.cpp:
(WebCore::serializeCharacter): Use the new StringBuilder append.
(WebCore::serializeIdentifier): Ditto.
(WebCore::serializeString): Ditto.
* html/parser/HTMLEntityParser.cpp:
(WebCore::HTMLEntityParser::consumeNamedEntity): Ditto.
* svg/SVGFontData.cpp:
(WebCore::SVGFontData::createStringWithMirroredCharacters): Ditto.
* xml/parser/CharacterReferenceParserInlines.h:
(WebCore::consumeCharacterReference): Ditto.
* xml/parser/XMLCharacterReferenceParser.cpp: Remove an older helper
superseded by StringBuilder::append.
2013-01-24 Kentaro Hara <haraken@chromium.org>
[V8] Pass an Isolate to GetTemplate() in v8/*.cpp
https://bugs.webkit.org/show_bug.cgi?id=107789
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/v8/Dictionary.cpp:
(WebCore::Dictionary::get):
* bindings/v8/PageScriptDebugServer.cpp:
(WebCore::retrieveFrameWithGlobalObjectCheck):
* bindings/v8/V8Binding.cpp:
(WebCore::toDOMWindow):
(WebCore::toScriptExecutionContext):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::clearForNavigation):
* bindings/v8/V8Initializer.cpp:
(WebCore::findFrame):
(WebCore::failedAccessCheckCallbackInMainThread):
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::controllerForContext):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::eventAccessorGetter):
(WebCore::V8DOMWindow::eventAccessorSetter):
(WebCore::V8DOMWindow::toStringCallback):
(WebCore::toV8):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::V8HTMLImageElementConstructor::GetTemplate):
* bindings/v8/custom/V8InjectedScriptManager.cpp:
(WebCore::createInjectedScriptHostV8Wrapper):
(WebCore::InjectedScriptManager::createInjectedScript):
(WebCore::InjectedScriptManager::canAccessInspectedWindow):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::reloadAccessorGetter):
(WebCore::V8Location::replaceAccessorGetter):
(WebCore::V8Location::assignAccessorGetter):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::initMessageEventCallback):
2013-01-24 Emil A Eklund <eae@chromium.org>
[svg] Remove unnecessary rounding in SVGRootInlineBox::layoutRootBox
https://bugs.webkit.org/show_bug.cgi?id=107771
Reviewed by Levi Weintraub.
SVGRootInlineBox::layoutRootBox rounds the location and size of
the container to the nearest enclosing integer values. Now that
layout uses subpixel positioning this is no longer needed and
results in undesirable rounding. For high-dpi screens in
particular this is especially noticeable as it is rounded to
"pixels" which can map to two our more device pixels.
Test: svg/text/text-rect-precision.html
* rendering/svg/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::layoutRootBox):
Change from enclosingIntRect to enclosingLayoutRect to align to
the closest containing LayoutRect now that layout is done using
subpixel precision.
2013-01-24 Philip Rogers <pdr@google.com>
Preserve container size requests across image loads
https://bugs.webkit.org/show_bug.cgi?id=106733
Reviewed by Tim Horton.
Some images, such as SVG with relative dimensions, depend on the renderer's container size.
r137981 introduced the ability to store pending container size requests that are made
after the image element lays out but before the image loads. Before this patch, cached
images could discard these pending container size requests during cache revalidation.
During a cached image load, two CachedImages exist: the image in cache and a new CachedImage
that will be used if the cache is stale. Pending container size requests are stored
on the second cached image which is discarded if a 304 not modified response is received.
This patch modifies the switchClientsToRevalidatedResource logic to maintain pending
container size requests. This fixes a bug where cached SVG images would be sized
incorrectly.
Test: http/tests/svg/cached-image-sizing.html
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::switchClientsToRevalidatedResource):
In this virtual call we special-case images with pending size requests and
transfer these requests to the revalidating resource. Note that all container size
requests received before revalidation will be pending because the image has not loaded.
Therefore, there is no risk of discarding non-pending container size requests.
(WebCore):
* loader/cache/CachedImage.h:
(CachedImage):
* loader/cache/CachedResource.h:
(CachedResource):
2013-01-24 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140296.
http://trac.webkit.org/changeset/140296
https://bugs.webkit.org/show_bug.cgi?id=107857
Cause several regresssions (Requested by smfr on #webkit).
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
2013-01-24 Mark Hahnenberg <mhahnenberg@apple.com>
Objective-C API: Rename JSValue.h/APIJSValue.h to JSCJSValue.h/JSValue.h
https://bugs.webkit.org/show_bug.cgi?id=107327
Reviewed by Filip Pizlo.
No new tests.
We're renaming these two files, so we have to replace the names everywhere.
* ForwardingHeaders/runtime/JSCJSValue.h: Copied from Source/WebCore/ForwardingHeaders/runtime/JSValue.h.
* ForwardingHeaders/runtime/JSValue.h: Removed.
* WebCore.vcproj/WebCore.vcproj:
* bindings/js/JSArrayBufferViewHelper.h:
* bindings/js/JSCustomXPathNSResolver.h:
* bindings/js/JSHTMLAllCollectionCustom.cpp:
* bindings/js/JSIntentConstructor.cpp:
* bindings/js/JSMessagePortCustom.h:
* bindings/js/JSNodeFilterCondition.h:
* bindings/js/JavaScriptCallFrame.cpp:
* bindings/js/ScriptCallStackFactory.cpp:
* bindings/js/ScriptValue.h:
* bindings/js/SerializedScriptValue.h:
* bindings/objc/WebScriptObjectPrivate.h:
* bridge/c/c_utility.h:
* bridge/testbindings.cpp:
* bridge/testbindings.mm:
* bridge/testqtbindings.cpp:
* plugins/PluginView.cpp:
* plugins/blackberry/PluginViewBlackBerry.cpp:
* plugins/gtk/PluginViewGtk.cpp:
* plugins/mac/PluginViewMac.mm:
* plugins/qt/PluginViewQt.cpp:
* plugins/win/PluginViewWin.cpp:
2013-01-24 Jer Noble <jer.noble@apple.com>
Unreviewed build fix for Mac/Lion.
Protect Lion from the absence of VideoToolbox.h by wrapping in #if
guards.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2013-01-24 Anders Carlsson <andersca@apple.com>
Add stubbed out StorageNamespaceProxy class
https://bugs.webkit.org/show_bug.cgi?id=107846
Reviewed by Sam Weinig.
Make StorageNamespace.h and StorageArea.h private headers.
* WebCore.xcodeproj/project.pbxproj:
2013-01-24 Tony Chang <tony@chromium.org>
Remove document as a parameter from a few internals methods
https://bugs.webkit.org/show_bug.cgi?id=107757
Reviewed by Hajime Morita.
Remove document as a parameter since there's already one associated with internals.
No new tests, this refactors some testing code and is covered by
exisiting tests.
* testing/Internals.cpp:
(WebCore::Internals::isPreloaded):
(WebCore::Internals::createContentElement):
(WebCore::Internals::absoluteCaretBounds):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2013-01-24 Mike West <mkwst@chromium.org>
Web Inspector: 'console.debug' should generate messages at DebugMessageLevel.
https://bugs.webkit.org/show_bug.cgi?id=107816
Reviewed by Pavel Feldman.
'console.debug' is currently aliased to 'console.log'. Since we now
render debug-level messages differently to log messages, we should use
the proper message level for 'console.debug'.
* page/Console.cpp:
(WebCore::Console::debug):
Replace the alias to 'console.log' with message creation at
DebugMessageLevel.
2013-01-24 Dima Gorbik <dgorbik@apple.com>
Implement :past pseudo class for the WebVTT ::cue pseudo element
https://bugs.webkit.org/show_bug.cgi?id=105482
Reviewed by Eric Carlson.
It is good to have a designated pseudo class for this, though same could
be achieved by using a combination of ::cue and ::cue(:future).
Tests also check that nested timestamps work properly.
Test: media/track/track-css-matching-timestamps.html
* css/CSSSelector.cpp:
(WebCore::CSSSelector::pseudoId):
(WebCore::nameToPseudoTypeMap):
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
2013-01-23 Jer Noble <jer.noble@apple.com>
Mac: Avoid using k32BGRAPixelFormat on certain platforms.
https://bugs.webkit.org/show_bug.cgi?id=107732
Reviewed by Eric Carlson.
Using a AVPlayerItemVideoOutput to generate ARGB pixel buffers is a potential performance
hit, as the AVPlayerItemVideoOutput will send YUV buffers through a VTPixeBufferTransferSession
to convert them to ARGB regardless of whether or not a given buffer will be used. Instead,
ask the AVPlayerItemVideoOutput for pixel buffers in the decoder's native pixel format and use
the VTPixelBufferTransferSession to convert to ARGB only those pixel buffers which were actually
requested.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput): Ask for the decoder's native
pixel format.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createPixelBuffer): Lazily create a VTPixelTransferSession
and convert output pixel buffers to k32BGRAPixelFormat.
2013-01-24 Christian Biesinger <cbiesinger@chromium.org>
Convert RenderFullScreen to use the non-deprecated flexbox
https://bugs.webkit.org/show_bug.cgi?id=107746
Reviewed by Ojan Vafai.
Tests: covered by existing tests in fullscreen/.
* rendering/RenderFullScreen.h:
* rendering/RenderFullScreen.cpp:
(RenderFullScreen::RenderFullScreen):
(RenderFullScreen::willBeDestroyed):
Inherit from RenderFlexibleBox
(createFullScreenStyle):
Use the new-style CSS properties (justify-content, etc)
* css/fullscreen.css:
(video:-webkit-full-screen, audio:-webkit-full-screen):
* css/fullscreenQuickTime.css:
(video:-webkit-full-screen::-webkit-media-controls-panel):
(video:-webkit-full-screen::-webkit-media-controls-seek-back-button):
(video:-webkit-full-screen::-webkit-media-controls-return-to-realtime-button):
(video:-webkit-full-screen::-webkit-media-controls-seek-forward-button):
* css/mediaControlsBlackBerryFullscreen.css:
(video:-webkit-full-screen::-webkit-media-controls-panel):
(video:-webkit-full-screen::-webkit-media-controls-button-group-container):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-display-container):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-play-button):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline-container):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-current-time-display):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-remaining-display):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-fullscreen-button):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-divider):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container, video:-webkit-full-screen::-webkit-media-controls-play-button-container):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container):
(video:-webkit-full-screen::-webkit-media-controls-play-button-container):
(video:-webkit-full-screen::-webkit-media-controls-placeholder):
* css/mediaControlsQtFullscreen.css:
(video::-webkit-media-controls-panel):
(video::-webkit-media-controls-play-button):
Update fullscreen-related CSS to use the new flexbox
2013-01-23 Jer Noble <jer.noble@apple.com>
Mac: Video appears in wrong place during pinch operations
https://bugs.webkit.org/show_bug.cgi?id=107730
Reviewed by Eric Carlson.
Send the correct input and output rects, post translation and scaling,
to the CIContext for drawing.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
2013-01-24 Max Vujovic <mvujovic@adobe.com>
[CSS Filters] CSS opacity property clips filter outsets
https://bugs.webkit.org/show_bug.cgi?id=106549
Reviewed by Dirk Schulze.
Expand the transparencyClipBox for filter outsets and pass the filter output rect instead of
the input rect to beginTransparencyLayers for clipping. Details below.
Test: css3/filters/css-opacity-with-drop-shadow.html
* rendering/RenderLayer.cpp:
(WebCore):
(WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
Replace filter outset calcuation with a call to expandRectForFilterOutsets.
(WebCore::expandRectForFilterOutsets):
New method to factor out repeated filter outset calculation code.
(WebCore::transparencyClipBox):
After expanding the clip rect for descendants and reflection, expand it for filter
outsets, so they don't get clipped when we begin a transparency layer.
(WebCore::RenderLayer::paintLayerContents):
Pass paintingInfo.paintDirtyRect instead of localPaintingInfo.paintDirtyRect to
beginTransparencyLayers for clipping. localPaintingInfo.paintDirtyRect (aka the filter
input rect) does not contain filter outsets, so they would get clipped. Now, we pass
paintingInfo.paintDirtyRect (the filter output rect), which includes the filter outsets.
(WebCore::RenderLayer::calculateLayerBounds):
Replace filter outset calcuation with a call to expandRectForFilterOutsets.
* rendering/RenderLayer.h:
(RenderLayer):
2013-01-24 Ryosuke Niwa <rniwa@webkit.org>
Fix a typo after r139838.
* dom/NodeRareData.h:
(NodeRareData):
2013-01-24 Ryosuke Niwa <rniwa@webkit.org>
Abandoned Memory: SVGFontElement and Corresponding SVGDocument Never Deconstructed
https://bugs.webkit.org/show_bug.cgi?id=66438
Reviewed by Dirk Schulze.
The memory leak was caused by SVGFontFaceElement storing its own parent in a RefPtr.
Fixed the bug by storing a raw pointer instead, and clearing the pointer in removedFrom
when the node detached from the document. Also added several sanity check assertions.
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::SVGFontFaceElement):
(WebCore::SVGFontFaceElement::associatedFontElement):
(WebCore::SVGFontFaceElement::rebuildFontFace):
(WebCore::SVGFontFaceElement::insertedInto):
(WebCore::SVGFontFaceElement::removedFrom):
* svg/SVGFontFaceElement.h:
(SVGFontFaceElement):
2013-01-22 Robert Hogan <robert@webkit.org>
Inline Containing Only Collapsed Whitespace Not Getting a Linebox
https://bugs.webkit.org/show_bug.cgi?id=31397
Reviewed by David Hyatt.
Treat inlines containing only collapsed whitespace as empty. This allows them
to get a linebox.
Test: fast/inline/inline-containing-collapsed-whitespace-treated-as-empty.html
* dom/Position.cpp:
(WebCore::boundingBoxLogicalHeight):
(WebCore):
(WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
* rendering/InlineIterator.h:
(WebCore::isEmptyInline):
(WebCore):
(WebCore::bidiNextShared):
(WebCore::bidiFirstSkippingEmptyInlines):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::alwaysRequiresLineBox):
(WebCore::requiresLineBox):
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
* rendering/RenderText.cpp:
* rendering/RenderText.h:
(RenderText):
2013-01-24 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: expand more chunks in DTE
https://bugs.webkit.org/show_bug.cgi?id=107698
Reviewed by Pavel Feldman.
Mock DefaultTextEditor visible area as if it is slightly larger than real one and
do all chunk expandings and repaints based on this new area.
No new tests: no change in behaviour.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorChunkedPanel.prototype.findVisibleChunks):
2013-01-24 Victor Jaquez <vjaquez@igalia.com>
[GStreamer] Implement setPreservesPitch()
https://bugs.webkit.org/show_bug.cgi?id=31155
Enables audio pitch preservation by using the scaletempo GStreamer
element when required by the MediaPlayer.
Reviewed by Philippe Normand.
No new tests, but a layout test shall be implemented at some point
using WebAudio API.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::setPreservesPitch):
(WebCore):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(MediaPlayerPrivateGStreamer):
2013-01-24 Zoltan Arvai <zarvai@inf.u-szeged.hu>
Removing deleted files from WebCore/Target.pri after r140399.
https://bugs.webkit.org/show_bug.cgi?id=107815
Reviewed by Csaba Osztrogonác.
* Target.pri:
2013-01-24 Martin Robinson <mrobinson@igalia.com>
Try to fix the Qt Windows build
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::decodeNamedEntity): Use a reinterpret_cast to const QChar* like StringQt.cpp.
2013-01-24 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] REGRESSION: stack traces in the replay log are gone
https://bugs.webkit.org/show_bug.cgi?id=107805
Reviewed by Pavel Feldman.
The V8's Error.prepareStackTrace is now called from the Error.captureStackTrace
function instead of the "stack" getter function.
Test: inspector/profiler/canvas2d/canvas-stack-trace.html
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
2013-01-23 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] UI: add a selector to capture a single canvas frame vs consecutive frames
https://bugs.webkit.org/show_bug.cgi?id=107688
Reviewed by Pavel Feldman.
Allow capturing several canvas frames in a row.
* English.lproj/localizedStrings.js:
* inspector/InjectedScriptCanvasModule.cpp:
(WebCore::InjectedScriptCanvasModule::traceLog):
* inspector/InjectedScriptCanvasModule.h:
(InjectedScriptCanvasModule):
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
* inspector/Inspector.json:
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::getTraceLog):
* inspector/InspectorCanvasAgent.h:
(InspectorCanvasAgent):
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView):
(WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
(WebInspector.CanvasProfileView.prototype._requestTraceLog):
(WebInspector.CanvasProfileType):
(WebInspector.CanvasProfileType.prototype.get statusBarItems):
(WebInspector.CanvasProfileType.prototype.get buttonTooltip):
(WebInspector.CanvasProfileType.prototype.buttonClicked):
(WebInspector.CanvasProfileType.prototype._runSingleFrameCapturing):
(WebInspector.CanvasProfileType.prototype._startFrameCapturing):
(WebInspector.CanvasProfileType.prototype._stopFrameCapturing.didStopCapturing):
(WebInspector.CanvasProfileType.prototype._stopFrameCapturing):
(WebInspector.CanvasProfileType.prototype._didStartCapturingFrame):
(WebInspector.CanvasProfileType.prototype.setRecordingProfile):
(WebInspector.CanvasProfileType.prototype._isSingleFrameMode):
(WebInspector.CanvasProfileHeader):
(WebInspector.CanvasProfileHeader.prototype._updateCapturingStatus):
(WebInspector.CanvasProfileHeader.prototype._requestCapturingStatus):
* inspector/front-end/ProfileLauncherView.js:
(WebInspector.ProfileLauncherView):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfileType.prototype.get statusBarItems):
(WebInspector.ProfilesPanel):
(WebInspector.ProfilesPanel.prototype.get statusBarItems):
(WebInspector.ProfilesPanel.prototype._onProfileTypeSelected):
(WebInspector.ProfilesPanel.prototype._reset):
(WebInspector.ProfilesPanel.prototype._showLauncherView):
(WebInspector.ProfilesPanel.prototype.showProfile):
(WebInspector.ProfilesPanel.prototype._updateInterface):
(WebInspector.ProfilesPanel.prototype._resize):
2013-01-24 Andreas Kling <akling@apple.com>
Add CSSSelectorList::isValid().
<http://webkit.org/b/107809>
Reviewed by Antti Koivisto.
Add an isValid() method to CSSSelectorList and use that where applicable instead of checking
if first() is a null pointer.
* css/CSSPageRule.cpp:
(WebCore::CSSPageRule::setSelectorText):
* css/CSSSelectorList.cpp:
* css/CSSSelectorList.h:
(WebCore::CSSSelectorList::isValid):
(WebCore::CSSSelectorList::first):
(CSSSelectorList):
* css/CSSStyleRule.cpp:
(WebCore::CSSStyleRule::setSelectorText):
* html/shadow/HTMLContentElement.cpp:
(WebCore::HTMLContentElement::validateSelect):
* inspector/InspectorStyleSheet.cpp:
(WebCore::checkStyleRuleSelector):
2013-01-24 Kai Koehne <kai.koehne@digia.com>
[Qt] Webkit debug build links against release binaries of ANGLE libEGL, libGLESv2
https://bugs.webkit.org/show_bug.cgi?id=106217
Reviewed by Jocelyn Turcotte.
Use libEGLd, libEGLSv2d if qtbase was compiled with ANGLE.
* WebCore.pri: Mirror logic of qtbase\mkspecs\features\win32\opengl.prf
2013-01-24 Sergio Villar Senin <svillar@igalia.com>
[GTK] Unreviewed build fix.
Do not include the header file WebKitDOMPerformanceEntryList.h in
the build sources because we do not want the DOM bindings
generator to include it in webkitdomdefes.h twice.
* bindings/gobject/GNUmakefile.am:
2013-01-24 Julien BRIANCEAU <jbrianceau@nds.com>
Fix Qt build (KO since r140610), typo error for QString::fromUtf16 function.
https://bugs.webkit.org/show_bug.cgi?id=107803
Reviewed by Andreas Kling.
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::decodeNamedEntity):
2013-01-24 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: breakpoints are not restored upon reload for scripts with script mapping.
https://bugs.webkit.org/show_bug.cgi?id=107799
The problem is that source mapping is set after UISourceCode gets into the workspace.
Breakpoint manager will now only restore breakpoints upon setting the source maps.
Reviewed by Alexander Pavlov.
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
(WebInspector.BreakpointManager.prototype._uiSourceCodeMappingChanged):
* inspector/front-end/CompilerScriptMapping.js:
(WebInspector.CompilerScriptMapping.prototype.get addScript.get this):
(WebInspector.CompilerScriptMapping.prototype.get addScript):
2013-01-24 Kent Tamura <tkent@chromium.org>
Refactoring: Use AtomicString for an InputType::create argument
https://bugs.webkit.org/show_bug.cgi?id=107791
Reviewed by Kentaro Hara.
A string passed to InputType::create is a 'type' attribute value, which
is an AtomicString. Also, InputTypeFactoryMap is created with members of
InputTypeName, which are AtomicStrings. We had better use AtomicStrings
for them.
No new tests. This is just a refactoring.
* html/InputType.cpp:
Change the key type of InputTypeFactoryMap from String to AtomicString.
(WebCore::InputType::create):
Change an argument type from const String& to const AtomicString&.
* html/InputType.h:
(InputType): Ditto.
2013-01-24 Kentaro Hara <haraken@chromium.org>
Unreviewed. Build fix.
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::isDOMWrapper):
2013-01-24 Andreas Kling <akling@apple.com>
AX: Fix the debug build after r140658. (Constructor initializer order.)
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::AccessibilityNodeObject):
2013-01-24 Hajime Morrita <morrita@google.com>
There are a few of wrong removeAllChildren() call
https://bugs.webkit.org/show_bug.cgi?id=107790
Reviewed by Ryosuke Niwa.
removeAllChildren() is designed for trashing deleting children out.
It doesn't detach() children and could have possible leak.
This change replaces such removeAllChildren() usage with safer removeChildren().
No new tests. Covered by existing tests.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute):
* html/InputType.cpp:
(WebCore::InputType::destroyShadowSubtree):
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::setMessageDOMAndStartTimer):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTag):
2013-01-24 Dominic Mazzoni <dmazzoni@google.com>
AX: should init an AXObject only after AXObjectCache has added it
https://bugs.webkit.org/show_bug.cgi?id=107533
Reviewed by Chris Fleizach.
Initialize each AXObject after the AXObjectCache has
finished adding it to its hash maps, so that it's
impossible for initialization of an AXObject to result in
exploring the tree and creating another AXObject instance
that points to the same renderer / node.
Test: accessibility/duplicate-axrenderobject-crash.html
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
* accessibility/AccessibilityARIAGrid.cpp:
(WebCore::AccessibilityARIAGrid::create):
* accessibility/AccessibilityARIAGridCell.cpp:
(WebCore::AccessibilityARIAGridCell::create):
* accessibility/AccessibilityARIAGridRow.cpp:
(WebCore::AccessibilityARIAGridRow::create):
* accessibility/AccessibilityList.cpp:
(WebCore::AccessibilityList::create):
* accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::create):
* accessibility/AccessibilityMediaControls.cpp:
(WebCore::AccessibilityMediaControl::create):
(WebCore::AccessibilityMediaControlsContainer::create):
(WebCore::AccessibilityMediaTimeline::create):
(WebCore::AccessibilityMediaTimeDisplay::create):
* accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::create):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::create):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::init):
(AccessibilityObject):
* accessibility/AccessibilityProgressIndicator.cpp:
(WebCore::AccessibilityProgressIndicator::create):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::create):
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
assert that the object has been initialized
* accessibility/AccessibilitySVGRoot.cpp:
(WebCore::AccessibilitySVGRoot::create):
* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::create):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::create):
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::create):
* accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::create):
2013-01-23 Kentaro Hara <haraken@chromium.org>
Implement MouseEvent constructor
https://bugs.webkit.org/show_bug.cgi?id=107630
Reviewed by Adam Barth.
Spec: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm
The MouseEvent constructor should be implemented under a DOM4_EVENTS_CONSTRUCTOR flag.
This significantly simplifies JavaScript code to construct a MouseEvent.
Before:
event = document.createEvent("MouseEvents");
event.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
After:
event = new MouseEvent("click");
Test: fast/events/constructors/mouse-event-constructor.html
* bindings/scripts/CodeGenerator.pm:
(IsSubType):
(IsInheritExtendedAttribute):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNamedConstructorCallback):
(GenerateImplementation):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore):
(WebCore::V8Float64Array::createWrapper):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore):
(WebCore::V8TestActiveDOMObject::createWrapper):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore):
(WebCore::V8TestCustomNamedGetter::createWrapper):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore):
(WebCore::V8TestEventConstructor::createWrapper):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore):
(WebCore::V8TestEventTarget::toEventTarget):
(WebCore::V8TestEventTarget::createWrapper):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(V8TestEventTarget):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore):
(WebCore::V8TestException::createWrapper):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore):
(WebCore::V8TestInterface::toActiveDOMObject):
(WebCore::V8TestInterface::createWrapper):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore):
(WebCore::V8TestMediaQueryListListener::createWrapper):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore):
(WebCore::V8TestNamedConstructor::toActiveDOMObject):
(WebCore::V8TestNamedConstructor::createWrapper):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore):
(WebCore::V8TestNode::toEventTarget):
(WebCore::V8TestNode::createWrapper):
* bindings/scripts/test/V8/V8TestNode.h:
(V8TestNode):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore):
(WebCore::V8TestObj::createWrapper):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore):
(WebCore::V8TestOverloadedConstructors::createWrapper):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore):
(WebCore::V8TestSerializedScriptValueInterface::createWrapper):
* bindings/v8/Dictionary.cpp:
(WebCore::Dictionary::get):
(WebCore):
* bindings/v8/Dictionary.h:
(Dictionary):
* bindings/v8/NPV8Object.cpp:
(WebCore::npObjectTypeInfo):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::isDOMWrapper):
(WebCore):
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
* bindings/v8/WrapperTypeInfo.h:
(WebCore):
(WebCore::WrapperTypeInfo::toEventTarget):
(WrapperTypeInfo):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore):
* dom/MouseEvent.cpp:
(WebCore::MouseEventInit::MouseEventInit):
(WebCore):
(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):
* dom/MouseEvent.h:
(MouseEventInit):
(WebCore):
(MouseEvent):
(WebCore::MouseEvent::create):
(WebCore::MouseEvent::button):
(WebCore::MouseEvent::buttonDown):
(WebCore::MouseEvent::relatedTarget):
(WebCore::MouseEvent::setRelatedTarget):
(WebCore::MouseEvent::clipboard):
(WebCore::MouseEvent::dataTransfer):
* dom/MouseEvent.idl:
2013-01-23 Kent Tamura <tkent@chromium.org>
Add form-related instrumentations, and support 33+ features in FeatureObserver
https://bugs.webkit.org/show_bug.cgi?id=107770
Reviewed by Kentaro Hara.
No new tests. This doesn't make behavior changes.
* page/FeatureObserver.h:
- Add form-related features.
- Add a Document* version of observe().
- Use BitVector to represent features to support 33+ features.
(WebCore::FeatureObserver::didObserve):
(FeatureObserver):
* page/FeatureObserver.cpp:
(WebCore::FeatureObserver::FeatureObserver):
(WebCore::FeatureObserver::~FeatureObserver):
(WebCore::FeatureObserver::observe):
* html/ColorInputType.cpp:
(WebCore::ColorInputType::create): Calls FeatureObserver::observe.
* html/DateInputType.cpp:
(WebCore::DateInputType::create): Ditto.
* html/DateTimeInputType.cpp:
(WebCore::DateTimeInputType::create): Ditto.
* html/DateTimeLocalInputType.cpp:
(WebCore::DateTimeLocalInputType::create): Ditto.
* html/EmailInputType.cpp:
(WebCore::EmailInputType::create): Ditto.
* html/HTMLDataListElement.cpp:
(WebCore::HTMLDataListElement::create): Ditto.
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::parseAttribute): Ditto.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute): Ditto.
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::parseAttribute): Ditto.
* html/InputType.cpp:
(WebCore::InputType::create):
Record type=datetime and type=week even if these types are not enabled.
* html/MonthInputType.cpp:
(WebCore::MonthInputType::create): Calls FeatureObserver::observe.
* html/NumberInputType.cpp:
(WebCore::NumberInputType::create): Ditto.
* html/RangeInputType.cpp:
(WebCore::RangeInputType::create): Ditto.
* html/SearchInputType.cpp:
(WebCore::SearchInputType::create): Ditto.
* html/TelephoneInputType.cpp:
(WebCore::TelephoneInputType::create): Ditto.
* html/TimeInputType.cpp:
(WebCore::TimeInputType::create): Ditto.
* html/URLInputType.cpp:
(WebCore::URLInputType::create): Ditto.
* html/WeekInputType.cpp:
(WebCore::WeekInputType::create): Ditto.
2013-01-23 Ken Kania <kkania@chromium.org>
[Inspector] Add events for tracking page loads and scheduled navigations.
https://bugs.webkit.org/show_bug.cgi?id=104168
Reviewed by Pavel Feldman.
These events are needed for clients who need to be aware of when a page is
navigating or about to navigate. Some clients may wish to prevent interaction
with the page during this time. Two of the new events track loading start and
stop, as measured by the ProgressTracker. The other two events track when a
page has a new scheduled navigation and when it no longer has a scheduled
navigation. These latter two events won't allow the client to determine if
a load is going to happen in all circumstances, but is sufficient for many cases.
Make sure we hold a reference to the frame in NavigationScheduler::timerFired
in case the redirect causes the frame to be detached.
Also, minor update to InspectorInputAgent::dispatchMouseEvent to reorder params
to match dispatchKeyEvent.
Tests: inspector-protocol/page/frameScheduledNavigation.html
inspector-protocol/page/frameStartedLoading.html
* inspector/Inspector.json:
* inspector/InspectorInputAgent.cpp:
(WebCore::InspectorInputAgent::dispatchMouseEvent):
* inspector/InspectorInputAgent.h:
(InspectorInputAgent):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::frameStartedLoadingImpl):
(WebCore::InspectorInstrumentation::frameStoppedLoadingImpl):
(WebCore::InspectorInstrumentation::frameScheduledNavigationImpl):
(WebCore::InspectorInstrumentation::frameClearedScheduledNavigationImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::frameStartedLoading):
(WebCore):
(WebCore::InspectorInstrumentation::frameStoppedLoading):
(WebCore::InspectorInstrumentation::frameScheduledNavigation):
(WebCore::InspectorInstrumentation::frameClearedScheduledNavigation):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::frameStartedLoading):
(WebCore):
(WebCore::InspectorPageAgent::frameStoppedLoading):
(WebCore::InspectorPageAgent::frameScheduledNavigation):
(WebCore::InspectorPageAgent::frameClearedScheduledNavigation):
* inspector/InspectorPageAgent.h:
* inspector/front-end/ResourceTreeModel.js:
(WebInspector.PageDispatcher.prototype.frameDetached):
(WebInspector.PageDispatcher.prototype.frameStartedLoading):
(WebInspector.PageDispatcher.prototype.frameStoppedLoading):
(WebInspector.PageDispatcher.prototype.frameScheduledNavigation):
(WebInspector.PageDispatcher.prototype.frameClearedScheduledNavigation):
* loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::clear):
(WebCore::NavigationScheduler::timerFired):
(WebCore::NavigationScheduler::startTimer):
(WebCore::NavigationScheduler::cancel):
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::progressStarted):
(WebCore::ProgressTracker::finalProgressComplete):
2013-01-23 Simon Fraser <simon.fraser@apple.com>
Avoid creating background layers on pages with a fixed background, but no image
https://bugs.webkit.org/show_bug.cgi?id=107783
<rdar://problem/13074450>
Reviewed by Beth Dakin.
http://www.nme.com has background-attachment: fixed on the <body>, but
not background image. In that case there's no point making a layer
for the fixed root background.
Test: platform/mac/tiled-drawing/fixed-background/fixed-background-no-image.html
* rendering/style/RenderStyle.cpp:
(WebCore::allLayersAreFixed): Check to see if we have an image, as well
as fixed attachment.
2013-01-23 Wei Jia <wjia@chromium.org>
Enable autoplay when <video>'s src is from media stream
https://bugs.webkit.org/show_bug.cgi?id=105224
Reviewed by Eric Carlson.
Enable autoplay when <video>'s src is from media stream. This would avoid requesting multiple gestures when <video> is used for WebRTC.
The test is done by modifying platform/chromium/media/video-capture-preview.html.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadResource):
2013-01-23 Roger Fong <roger_fong@apple.com>
Remove ForwardingHeaders/wtf from WebCore.
https://bugs.webkit.org/show_bug.cgi?id=107723
The folders are empty, nothings actually being copied over anymore from the ForwardingHeaders/wtf folder.
Reviewed by Benjamin Poulain.
* ForwardingHeaders/wtf: Removed.
* ForwardingHeaders/wtf/dtoa: Removed.
* ForwardingHeaders/wtf/text: Removed.
* ForwardingHeaders/wtf/unicode: Removed.
* ForwardingHeaders/wtf/unicode/icu: Removed.
* ForwardingHeaders/wtf/unicode/wince: Removed.
* ForwardingHeaders/wtf/url: Removed.
* WebCore.vcproj/copyForwardingHeaders.cmd:
2013-01-23 Hayato Ito <hayato@chromium.org>
Group parameters (firstRuleIndex and lastRuleIndex) into a parameter object, RuleRange.
https://bugs.webkit.org/show_bug.cgi?id=107095
Reviewed by Darin Adler.
This is a continued effort after r139817.
Factoring, no change in behavior.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRules):
(WebCore::StyleResolver::collectMatchingRulesForRegion):
(WebCore::StyleResolver::matchScopedAuthorRules):
(WebCore::StyleResolver::matchHostRules):
(WebCore::StyleResolver::matchAuthorRules):
(WebCore::StyleResolver::matchUserRules):
(WebCore::StyleResolver::matchUARules):
(WebCore::StyleResolver::collectMatchingRulesForList):
(WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
* css/StyleResolver.h:
(WebCore::StyleResolver::RuleRange::RuleRange):
(RuleRange): Newly introduced to group parameters.
(StyleResolver):
(WebCore::StyleResolver::MatchRanges::UARuleRange):
(WebCore::StyleResolver::MatchRanges::authorRuleRange):
(WebCore::StyleResolver::MatchRanges::userRuleRange):
2013-01-23 Luke Macpherson <macpherson@chromium.org>
Support variables inside -webkit-box-reflect CSS property.
https://bugs.webkit.org/show_bug.cgi?id=106856
Reviewed by Tony Chang.
The primary change is to make the direction parameter a CSSPrimitiveValue style ident,
so that it can also be a variable reference.
Covered by existing LayoutTests/compositing/reflections/ tests.
Added Test: fast/css/variables/var-inside-box-reflect.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForReflection):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseReflect):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore):
(WebCore::CSSPrimitiveValue::operator CSSReflectionDirection):
(WebCore::CSSPrimitiveValue::convertToLength):
* css/CSSReflectValue.cpp:
(WebCore::CSSReflectValue::customCssText):
Use String addition operator instead of StringBuilder.
(WebCore):
(WebCore::CSSReflectValue::customSerializeResolvingVariables):
Use String addition operator instead of StringBuilder.
* css/CSSReflectValue.h:
(WebCore::CSSReflectValue::create):
(WebCore::CSSReflectValue::direction):
(CSSReflectValue):
(WebCore::CSSReflectValue::CSSReflectValue):
* css/CSSValue.cpp:
(WebCore::CSSValue::serializeResolvingVariables):
* css/StyleResolver.cpp:
(WebCore::hasVariableReference):
(WebCore::StyleResolver::applyProperty):
2013-01-23 Abhishek Arya <inferno@chromium.org>
Add ASSERT_WITH_SECURITY_IMPLICATION to detect bad casts in rendering
https://bugs.webkit.org/show_bug.cgi?id=107743
Reviewed by Eric Seidel.
* rendering/InlineFlowBox.h:
(WebCore::toInlineFlowBox):
* rendering/RenderBR.h:
(WebCore::toRenderBR):
* rendering/RenderBlock.h:
(WebCore::toRenderBlock):
* rendering/RenderBox.h:
(WebCore::toRenderBox):
* rendering/RenderBoxModelObject.h:
(WebCore::toRenderBoxModelObject):
* rendering/RenderButton.h:
(WebCore::toRenderButton):
* rendering/RenderCombineText.h:
(WebCore::toRenderCombineText):
* rendering/RenderCounter.h:
(WebCore::toRenderCounter):
* rendering/RenderDetailsMarker.h:
(WebCore::toRenderDetailsMarker):
* rendering/RenderEmbeddedObject.h:
(WebCore::toRenderEmbeddedObject):
* rendering/RenderFieldset.h:
(WebCore::toRenderFieldset):
* rendering/RenderFileUploadControl.h:
(WebCore::toRenderFileUploadControl):
* rendering/RenderFlowThread.h:
(WebCore::toRenderFlowThread):
* rendering/RenderFrame.h:
(WebCore::toRenderFrame):
* rendering/RenderFrameSet.h:
(WebCore::toRenderFrameSet):
* rendering/RenderFullScreen.h:
(WebCore::toRenderFullScreen):
* rendering/RenderIFrame.h:
(WebCore::toRenderIFrame):
* rendering/RenderImage.h:
(WebCore::toRenderImage):
* rendering/RenderInline.h:
(WebCore::toRenderInline):
* rendering/RenderLayerModelObject.h:
(WebCore::toRenderLayerModelObject):
* rendering/RenderListBox.h:
(WebCore::toRenderListBox):
* rendering/RenderListItem.h:
(WebCore::toRenderListItem):
* rendering/RenderListMarker.h:
(WebCore::toRenderListMarker):
* rendering/RenderMedia.h:
(WebCore::toRenderMedia):
* rendering/RenderMenuList.h:
(WebCore::toRenderMenuList):
* rendering/RenderMeter.h:
(WebCore::toRenderMeter):
* rendering/RenderMultiColumnBlock.h:
(WebCore::toRenderMultiColumnBlock):
* rendering/RenderMultiColumnSet.h:
(WebCore::toRenderMultiColumnSet):
* rendering/RenderNamedFlowThread.h:
(WebCore::toRenderNamedFlowThread):
* rendering/RenderPart.h:
(WebCore::toRenderPart):
* rendering/RenderProgress.h:
(WebCore::toRenderProgress):
* rendering/RenderQuote.h:
(WebCore::toRenderQuote):
* rendering/RenderRegion.h:
(WebCore::toRenderRegion):
* rendering/RenderRubyRun.h:
(WebCore::toRenderRubyRun):
* rendering/RenderScrollbarPart.h:
(WebCore::toRenderScrollbarPart):
* rendering/RenderSearchField.h:
(WebCore::toRenderSearchField):
* rendering/RenderSlider.h:
(WebCore::toRenderSlider):
* rendering/RenderSnapshottedPlugIn.h:
(WebCore::toRenderSnapshottedPlugIn):
* rendering/RenderTable.h:
(WebCore::toRenderTable):
* rendering/RenderTableCaption.h:
(WebCore::toRenderTableCaption):
* rendering/RenderTableCell.h:
(WebCore::toRenderTableCell):
* rendering/RenderTableCol.h:
(WebCore::toRenderTableCol):
* rendering/RenderTableRow.h:
(WebCore::toRenderTableRow):
* rendering/RenderTableSection.h:
(WebCore::toRenderTableSection):
* rendering/RenderText.h:
(WebCore::toRenderText):
* rendering/RenderTextControl.h:
(WebCore::toRenderTextControl):
* rendering/RenderTextControlMultiLine.h:
(WebCore::toRenderTextControlMultiLine):
* rendering/RenderTextControlSingleLine.h:
(WebCore::toRenderTextControlSingleLine):
* rendering/RenderVideo.h:
(WebCore::toRenderVideo):
* rendering/RenderView.h:
(WebCore::toRenderView):
* rendering/RenderWidget.h:
(WebCore::toRenderWidget):
* rendering/mathml/RenderMathMLBlock.h:
(WebCore::toRenderMathMLBlock):
* rendering/svg/RenderSVGContainer.h:
(WebCore::toRenderSVGContainer):
* rendering/svg/RenderSVGGradientStop.h:
(WebCore::toRenderSVGGradientStop):
* rendering/svg/RenderSVGImage.h:
(WebCore::toRenderSVGImage):
* rendering/svg/RenderSVGInlineText.h:
(WebCore::toRenderSVGInlineText):
* rendering/svg/RenderSVGRoot.h:
(WebCore::toRenderSVGRoot):
* rendering/svg/RenderSVGShape.h:
(WebCore::toRenderSVGShape):
* rendering/svg/RenderSVGText.h:
(WebCore::toRenderSVGText):
2013-01-23 Elliott Sprehn <esprehn@gmail.com>
Don't allocate rare data on every Element on removal
https://bugs.webkit.org/show_bug.cgi?id=107756
Reviewed by Eric Seidel.
We should not allocate an ElementRareData for every element
in Element::removedFrom. Previously calls to setIsInTopLayer
would unconditionally call ensureElementRareData(), and this was
called from Element::removedFrom meaning removing an element
made the entire subtree suddenly balloon to huge in size as each
one got an ElementRareData.
This is a regression from my patch on Bug 103912 where I removed a check
that avoided this allocation.
No new tests needed, covered by existing tests.
* dom/Element.cpp:
(WebCore::Element::setIsInTopLayer):
2013-01-23 Adam Barth <abarth@webkit.org>
BackgroundHTMLParser should use more const references to avoid copy constructors
https://bugs.webkit.org/show_bug.cgi?id=107763
Reviewed by Tony Gentilcore.
I doubt this optimization is visible anywhere, but it's just a nit.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::createPartial):
* html/parser/BackgroundHTMLParser.h:
(WebCore::BackgroundHTMLParser::create):
(BackgroundHTMLParser):
2013-01-23 Abhishek Arya <inferno@chromium.org>
Add support for ASSERT_WITH_SECURITY_IMPLICATION.
https://bugs.webkit.org/show_bug.cgi?id=107699
Reviewed by Eric Seidel.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::parserInsertBefore): Use ASSERT_WITH_SECURITY_IMPLICATION
for document confusion ASSERT(document() == newChild->document())
(WebCore::ContainerNode::parserAppendChild): same.
2013-01-23 Ian Vollick <vollick@chromium.org>
Unreviewed build fix.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::rebuildZOrderLists):
2013-01-23 Rafael Weinstein <rafaelw@chromium.org>
Template element should parse in XHTML just as it does in HTML
https://bugs.webkit.org/show_bug.cgi?id=106491
Reviewed by Ryosuke Niwa.
https://dvcs.w3.org/hg/webcomponents/raw-file/f33622c39c5e/spec/templates/index.html#parsing-xhtml-documents.
https://dvcs.w3.org/hg/webcomponents/raw-file/f33622c39c5e/spec/templates/index.html#serializing-xhtml-documents.
This patch modifies the XML parser in two ways: (1) when nodes are created, their owner document is
the owner document of the current node, rather than the containing document, and (2) when an HTMLTemplateElement
is encountered, its content document fragment is pushed onto the stack, rather than the element itself, so that children
are appended to the template content. Also, because XSLT operates on the serialized input document, transforms consider
template contents to be descendants.
Tests: fast/dom/HTMLTemplateElement/xhtml-parsing-and-serialization.xml
fast/xpath/xpath-template-element.html
fast/xsl/xslt-processor-template.html
fast/xsl/xslt-xhtml-template.xml
* xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::enterText):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):
(WebCore::XMLDocumentParser::processingInstruction):
(WebCore::XMLDocumentParser::cdataBlock):
(WebCore::XMLDocumentParser::comment):
2013-01-23 Tony Gentilcore <tonyg@chromium.org>
Teach threaded HTML parser to update InspectorInstrumentation when writing HTML
https://bugs.webkit.org/show_bug.cgi?id=107755
Reviewed by Eric Seidel.
The current length is unused, so it doesn't cause any noticeable behavior difference to not pass it here.
No new tests because covered by existing tests.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::processTokensFromBackgroundParser):
2013-01-23 Kentaro Hara <haraken@chromium.org>
[V8] Make an Isolate parameter mandatory in NativeToJS()
https://bugs.webkit.org/show_bug.cgi?id=107663
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateCallbackImplementation):
(NativeToJSValue):
* bindings/scripts/test/V8/V8TestCallback.cpp:
(WebCore::V8TestCallback::callbackWithClass1Param):
(WebCore::V8TestCallback::callbackWithClass2Param):
(WebCore::V8TestCallback::callbackWithStringList):
(WebCore::V8TestCallback::callbackWithBoolean):
(WebCore::V8TestCallback::callbackRequiresThisToPass):
2013-01-23 Stephanie Lewis <slewis@apple.com>
Add ordering for WebCore __DATA.
https://bugs.webkit.org/show_bug.cgi?id=107765
<rdar://problem/13019603>
Rubber stamped by Oliver Hunt.
No Change in functionality.
* WebCore.order:
2013-01-23 Benjamin Poulain <bpoulain@apple.com>
RenderProgress does not repaint on value change
https://bugs.webkit.org/show_bug.cgi?id=106977
Reviewed by Joseph Pecoraro.
No test because the ouput depends on the code of RenderTheme, and
we use the platform theme for testing.
* rendering/RenderProgress.cpp:
(WebCore::RenderProgress::updateFromElement):
(WebCore::RenderProgress::updateAnimationState):
Previously, repaint() was only called on two occasions:
-On animationTimerFired().
-In response to updateFromElement() if and only if the RenderTheme start/stop an
animation previously stopped/running.
When changing the value of HTMLProgressElement, no repaint was called until
the next timer fired for the animation.
This is a problem if:
-The animation of RenderTheme is slow.
-If there is no animation (the element is never updated in that case).
2013-01-23 Ian Vollick <vollick@chromium.org>
Introduce the "stacking container" concept.
https://bugs.webkit.org/show_bug.cgi?id=107734
Reviewed by Simon Fraser.
A stacking container is treated just like a stacking context. That
is, it has z-order lists, it and its descendants are stacked as a
unit, and when the RenderLayerCompositor does its overlap testing,
the composited regions for all layer lists take effect only once the
stacking container is done being processed.
This patch also adds the function RenderLayer::isStackingContainer().
Currently, this is equivalent to RenderLayer::isStackingContext(),
but in future, the definition of stacking container will be broadened
to encompass more than just stacking contexts.
Other than the addition of this extra function, the patch is mostly
comprised of name changes. Any code that used to refer to the
stacking context concept, but didn't necessarily require a stacking
context in the strict, CSS-sense, was switched to refer to stacking
container. No functionality was changed.
No new tests, no change in functionality.
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore):
(WebCore::RenderLayer::updatePagination):
(WebCore::RenderLayer::canBeStackingContainer):
(WebCore::RenderLayer::setHasVisibleContent):
(WebCore::RenderLayer::dirty3DTransformedDescendantStatus):
(WebCore::RenderLayer::stackingContainer):
(WebCore::compositingContainer):
(WebCore::expandClipRectForDescendantsAndReflection):
(WebCore::RenderLayer::addChild):
(WebCore::RenderLayer::removeChild):
(WebCore::RenderLayer::updateNeedsCompositedScrolling):
(WebCore::RenderLayer::updateCompositingLayersAfterScroll):
(WebCore::RenderLayer::paintPaginatedChildLayer):
(WebCore::RenderLayer::hitTestPaginatedChildLayer):
(WebCore::RenderLayer::calculateLayerBounds):
(WebCore::RenderLayer::dirtyZOrderLists):
(WebCore::RenderLayer::dirtyStackingContainerZOrderLists):
(WebCore::RenderLayer::collectLayers):
(WebCore::RenderLayer::updateCompositingAndLayerListsIfNeeded):
(WebCore::RenderLayer::updateStackingContextsAfterStyleChange):
(WebCore::RenderLayer::styleChanged):
* rendering/RenderLayer.h:
(RenderLayer):
(WebCore::RenderLayer::isStackingContainer):
(WebCore::RenderLayer::posZOrderList):
(WebCore::RenderLayer::negZOrderList):
(WebCore::RenderLayer::isDirtyStackingContainer):
(WebCore::RenderLayer::clearZOrderLists):
(WebCore::RenderLayer::updateZOrderLists):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::compositingOpacity):
(WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::enclosingNonStackingClippingLayer):
(WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
(WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
(WebCore::RenderLayerCompositor::layerHas3DContent):
(WebCore::isRootmostFixedOrStickyLayer):
2013-01-23 Simon Fraser <simon.fraser@apple.com>
Have scrollperf logging log information about wheel event handlers
https://bugs.webkit.org/show_bug.cgi?id=107761
<rdar://problem/12281015>
Reviewed by Tim Horton.
Log when the wheel event handler count of a ScrollingTreeScrollingNodeMac changes.
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::update):
(WebCore::logWheelEventHandlerCountChanged):
2013-01-23 Kentaro Hara <haraken@chromium.org>
[V8] Add an optional Isolate parameter to GetTemplate() and GetRawTemplate()
https://bugs.webkit.org/show_bug.cgi?id=107679
Reviewed by Adam Barth.
It is important to pass an Isolate to GetTemplate() and GetRawTemplate().
To proceed the work incrementally, this patch adds an optional Isolate parameter
to GetTemplate() and GetRawTemplate(). Once all call sites are updated, the
Isolate parameter will be made mandatory.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNamedConstructorCallback):
(GenerateImplementation):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::V8Float64Array::GetRawTemplate):
(WebCore::V8Float64Array::GetTemplate):
* bindings/scripts/test/V8/V8Float64Array.h:
(V8Float64Array):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::V8TestActiveDOMObject::GetRawTemplate):
(WebCore::V8TestActiveDOMObject::GetTemplate):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(V8TestActiveDOMObject):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::GetRawTemplate):
(WebCore::V8TestCustomNamedGetter::GetTemplate):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(V8TestCustomNamedGetter):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::GetRawTemplate):
(WebCore::V8TestEventConstructor::GetTemplate):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(V8TestEventConstructor):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::V8TestEventTarget::GetRawTemplate):
(WebCore::V8TestEventTarget::GetTemplate):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(V8TestEventTarget):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::GetRawTemplate):
(WebCore::V8TestException::GetTemplate):
* bindings/scripts/test/V8/V8TestException.h:
(V8TestException):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::V8TestInterface::GetRawTemplate):
(WebCore::V8TestInterface::GetTemplate):
* bindings/scripts/test/V8/V8TestInterface.h:
(V8TestInterface):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::GetRawTemplate):
(WebCore::V8TestMediaQueryListListener::GetTemplate):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(V8TestMediaQueryListListener):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructor::GetTemplate):
(WebCore::V8TestNamedConstructor::GetRawTemplate):
(WebCore::V8TestNamedConstructor::GetTemplate):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(V8TestNamedConstructorConstructor):
(V8TestNamedConstructor):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::GetRawTemplate):
(WebCore::V8TestNode::GetTemplate):
* bindings/scripts/test/V8/V8TestNode.h:
(V8TestNode):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::V8TestObj::GetRawTemplate):
(WebCore::V8TestObj::GetTemplate):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::GetRawTemplate):
(WebCore::V8TestOverloadedConstructors::GetTemplate):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(V8TestOverloadedConstructors):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
(WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(V8TestSerializedScriptValueInterface):
* bindings/v8/WrapperTypeInfo.h:
(WebCore):
(WebCore::WrapperTypeInfo::getTemplate):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::V8HTMLImageElementConstructor::GetTemplate):
* bindings/v8/custom/V8HTMLImageElementConstructor.h:
(V8HTMLImageElementConstructor):
2013-01-23 Kentaro Hara <haraken@chromium.org>
[V8] Move V8DOMWrapper::getEventListener() to V8EventListerList
https://bugs.webkit.org/show_bug.cgi?id=107683
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrSetter):
(GenerateEventListenerCallback):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::TestEventTargetV8Internal::addEventListenerCallback):
(WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::addEventListenerCallback):
(WebCore::TestObjV8Internal::removeEventListenerCallback):
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
* bindings/v8/V8EventListenerList.cpp:
(WebCore::V8EventListenerList::getEventListener):
(WebCore):
* bindings/v8/V8EventListenerList.h:
(WebCore):
(V8EventListenerList):
(WebCore::V8EventListenerList::findWrapper):
(WebCore::V8EventListenerList::clearWrapper):
(WebCore::V8EventListenerList::doFindWrapper):
(WebCore::V8EventListenerList::getHiddenProperty):
(WebCore::V8EventListenerList::findOrCreateWrapper):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::addEventListenerCallback):
(WebCore::V8DOMWindow::removeEventListenerCallback):
2013-01-23 Dominic Mazzoni <dmazzoni@google.com>
AX: AXObjectCache should be initialized with topDocument
https://bugs.webkit.org/show_bug.cgi?id=107638
Reviewed by Chris Fleizach.
Initialize AXObjectCache with the top document, not the
document that axObjectCache happened to be called on, which
could be an iframe. Having an AXObjectCache with the wrong
document could cause a heap-use-after-free in
notificationPostTimerFired if the inner document was deleted
while notifications were pending.
* dom/Document.cpp:
(WebCore::Document::axObjectCache):
2012-12-12 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION: WebKit does not render selection in non-first ruby text nodes.
https://bugs.webkit.org/show_bug.cgi?id=92818
Reviewed by Levi Weintraub.
The patch is based on the one submitted by Sukolsak Sakshuwong.
The bug was caused by the fact isSelectionRoot was returning false on RenderRubyRun even though
it doesn't lay down its children in block direction.
The selection painting code assumes that all blocks in each selection root are laid down in
the containing block direction. In particular, InlineTextBox::paintSelection calls
RootInlineBox::selectionTopAdjustedForPrecedingBlock in order to determine the end of the previous
line, which in turn calls blockBeforeWithinSelectionRoot. blockBeforeWithinSelectionRoot goes
through block nodes that appears before "this" block, and selectionTopAdjustedForPrecedingBlock
assumes that to compute the end of the previous line.
Now suppose we have markup such as <ruby>Ichi<rt>One</rt></ruby><ruby>Ni<rt>Two</rt></ruby>. When
selectionTopAdjustedForPrecedingBlock is called on the line box generated for "Two", it tries to
determine the bottom of the inline box above that of "Two", which blockBeforeWithinSelectionRoot
determines to be that of "One". At this point, everything goes wrong and the selection height is
computed to be 0.
The fix to this problem is to allow RenderRubyRun to be a selection root. Since RenderRubyRun is
already an inline-block, it suffices to bypass the !nonPseudoNode() check. In fact, there is no
need to check this condition anymore as far as I can tell. The check was added in
http://trac.webkit.org/changeset/12986 but all tests added by this change set as well as the rest
of layout tests pass without this condition.
Test: fast/ruby/select-ruby.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isSelectionRoot):
2013-01-23 Kentaro Hara <haraken@chromium.org>
[V8] Reduce usage of deprecatedV8String() and deprecatedV8Integer()
https://bugs.webkit.org/show_bug.cgi?id=107674
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/v8/JavaScriptCallFrame.cpp:
(WebCore::JavaScriptCallFrame::evaluate):
* bindings/v8/NPV8Object.cpp:
(_NPN_Enumerate):
* bindings/v8/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::addListener):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::bindToWindowObject):
(WebCore::ScriptController::disableEval):
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::setBreakpoint):
(WebCore::ScriptDebugServer::removeBreakpoint):
(WebCore::ScriptDebugServer::setScriptSource):
(WebCore::ScriptDebugServer::ensureDebuggerScriptCompiled):
(WebCore::ScriptDebugServer::compileScript):
* bindings/v8/ScriptFunctionCall.cpp:
(WebCore::ScriptCallArgumentHandler::appendArgument):
(WebCore::ScriptFunctionCall::call):
(WebCore::ScriptFunctionCall::construct):
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::start):
(WebCore::ScriptProfiler::stop):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initializeIfNeeded):
(WebCore::V8DOMWindowShell::namedItemAdded):
(WebCore::V8DOMWindowShell::namedItemRemoved):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::prepareListenerObject):
* bindings/v8/V8MutationCallback.cpp:
(WebCore::V8MutationCallback::handleEvent):
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
* bindings/v8/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::addListener):
* bindings/v8/custom/V8InjectedScriptManager.cpp:
(WebCore::InjectedScriptManager::createInjectedScript):
2013-01-23 Martin Robinson <mrobinson@igalia.com>
WebKit should support decoding multi-byte entities in XML content
https://bugs.webkit.org/show_bug.cgi?id=107459
Reviewed by Adam Barth.
Test: fast/parser/entities-in-xhtml.xhtml
* html/parser/HTMLEntityParser.cpp:
(WebCore::appendUChar32ToUCharArray): Added this helper function. Later patches
may try to move this code to somewhere that it can be shared more easily.
(WebCore::decodeNamedEntityToUCharArray): Modify this function to work on a UChar
array four elements long, so that multi-byte and multi-character entities can be resolved.
* html/parser/HTMLEntityParser.h: Updated function declaratoin.
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore): Modify the statically allocated entity string memory area to accommodate
up to two UTF-8 characters. Each UTF-8 character can be 4 bytes, so this brings the
total size to 9 bytes.
(WebCore::getXHTMLEntity): Use the new entity decoding API.
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::EntityResolver::resolveUndeclaredEntity): Ditto.
(WebCore::XMLDocumentParser::parse): Ditto.
2013-01-23 Eric Seidel <eric@webkit.org>
Stop the background-parser during HTMLDocumentParser::detatch to prevent crashes/asserts
https://bugs.webkit.org/show_bug.cgi?id=107751
Reviewed by Tony Gentilcore.
This appears to fix the 2 intermitent crashers we were seeing while
running fast/parser. And definitely fixes 8 ASSERTs seen using a Debug build.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::detach):
2013-01-23 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Add support for computing first included interval position for polygons
https://bugs.webkit.org/show_bug.cgi?id=103429
Reviewed by Dirk Schulze.
Added support for computing the "first fit" location, i.e. the logical shape-inside
location where a line's layout begins. The algorithm for doing so is described here:
http://hansmuller-webkit.blogspot.com/2012/08/revised-algorithm-for-finding-first.html.
Tests: fast/exclusions/shape-inside/shape-inside-first-fit-001.html
fast/exclusions/shape-inside/shape-inside-first-fit-002.html
fast/exclusions/shape-inside/shape-inside-first-fit-003.html
* platform/graphics/FloatSize.h:
(WebCore::operator*): Scale a FloatSize. This simplified the final expression in VertexPair::intersection().
* rendering/ExclusionPolygon.cpp:
(WebCore::isPointOnLineSegment): Returns true if the specified point is collinear and within the line segement's bounds.
(WebCore::leftSide): Return a value > 0 if point is on the left side of the line segment, < 0 if it's on the right, 0 if it's collinear.
(WebCore::ExclusionPolygon::contains): Return true if the point is within the polygon or on an edge.
(WebCore::VertexPair::overlapsRect): Returns true if the line segment from vertex1 to vertex2 overlaps the specified FloatRect.
(WebCore::VertexPair::intersection): Finds the intersection of a pair of line segments defined by VertexPairs.
(WebCore::ExclusionPolygon::firstFitRectInPolygon): Returns true if none of the polygon's edges, except the two used
to define by the offset edges, overlap the FloatRect.
(WebCore::aboveOrToTheLeft): Defines the top/left preference for "first fit" locations.
(WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): Replaced the stub implementation of this method.
* rendering/ExclusionPolygon.h:
(ExclusionPolygon): Added declarations noted above.
(VertexPair): Abstract class that defines a pair of FloatPoints.
(OffsetPolygonEdge): Represents an edge that's horizontally offset from a polygon edge.
(WebCore::OffsetPolygonEdge::edgeIndex): The ExclusionPolygon edge index used to define this OffsetEdge.
2013-01-23 Dirk Schulze <dschulze@adobe.com>
Implement Canvas Path object
https://bugs.webkit.org/show_bug.cgi?id=97333
Reviewed by Dean Jackson.
The Canvas part of the WHATWG specification defines a Path object. This Path object
shares several path segment functions (path methods) with the CanvasRenderingContext2D
interface. This patch introduces the Path object and shares the path segment functions
in the class CanvasPathMethods.
This patch does just implement the basic path functions that have a general agreement on
the WHAT WG and W3C mailing lists.
This feature is behind a flag and won't be activated by default.
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#path-objects
Test: fast/canvas/canvas-path-object.html
* CMakeLists.txt: Add DOMPath and CanvasPathMedthods to build system.
* DerivedSources.cpp: Ditto.
* DerivedSources.make: Ditto.
* DerivedSources.pri: Ditto.
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* html/canvas/CanvasPathMethods.cpp: Added.
(WebCore): This class shares the path segment functions (moveTo, lineTo, ...) between
DOMPath (the Path object) and CanvasRenderingContext2D.
(WebCore::CanvasPathMethods::closePath):
(WebCore::CanvasPathMethods::moveTo):
(WebCore::CanvasPathMethods::lineTo):
(WebCore::CanvasPathMethods::quadraticCurveTo):
(WebCore::CanvasPathMethods::bezierCurveTo):
(WebCore::CanvasPathMethods::arcTo):
(WebCore::CanvasPathMethods::arc):
(WebCore::CanvasPathMethods::rect):
* html/canvas/CanvasPathMethods.h: Added.
(WebCore):
(CanvasPathMethods):
(WebCore::CanvasPathMethods::~CanvasPathMethods):
(WebCore::CanvasPathMethods::transformIsInvertible):
(WebCore::CanvasPathMethods::CanvasPathMethods):
* html/canvas/CanvasRenderingContext2D.cpp:
* html/canvas/CanvasRenderingContext2D.h: Remove the path segment functions here.
(CanvasRenderingContext2D):
(WebCore::CanvasRenderingContext2D::transformIsInvertible): This checks if the CTM
of the context is still invertible. Drawing should stop if it is not.
* html/canvas/CanvasRenderingContext2D.idl:
* html/canvas/DOMPath.h: Added.
(WebCore):
(DOMPath):
(WebCore::DOMPath::create):
(WebCore::DOMPath::~DOMPath):
(WebCore::DOMPath::DOMPath):
* html/canvas/DOMPath.idl: Added.
* page/DOMWindow.idl: Added CTOR for Path.
2013-01-23 Joshua Bell <jsbell@chromium.org>
IndexedDB: Remove IDBVersionChangeRequest
https://bugs.webkit.org/show_bug.cgi?id=107711
Reviewed by Tony Chang.
When the setVersion() API was removed from the Indexed DB spec the IDBVersionChangeRequest
interface was replaced with IDBOpenDBRequest. We switched over for open(), this completes
the work by switching over for deleteDatabase() and removing the old code. (On the Event
side we still need to combine IDBVersionChangeEvent and IDBUpgradeNeededEvent.)
Test: storage/indexeddb/intversion-long-queue.html
storage/indexeddb/intversion-upgrades.html
* CMakeLists.txt: Remove references to deleted code.
* DerivedSources.make: Ditto.
* GNUmakefile.list.am: Ditto.
* Modules/indexeddb/IDBCallbacks.h: Remove unused onBlocked() overload.
* Modules/indexeddb/IDBDatabase.cpp: Remove references to deleted code.
* Modules/indexeddb/IDBDatabase.h: Ditto.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::deleteDatabase): Fire onBlocked with current version.
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::openInternal): Don't need to specify source.
(WebCore::IDBFactory::deleteDatabase): Use an IDBOpenDBRequest.
* Modules/indexeddb/IDBFactory.h: Change return type of deleteDatabase()
* Modules/indexeddb/IDBFactory.idl: Ditto.
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::create): Always use a null source.
(WebCore::IDBOpenDBRequest::IDBOpenDBRequest): Pass null source to base class.
(WebCore::IDBOpenDBRequest::dispatchEvent): Don't assume result is a database in existing
special case.
* Modules/indexeddb/IDBOpenDBRequest.h: Don't need a source argument (always null).
* Modules/indexeddb/IDBVersionChangeRequest.cpp: Removed.
* Modules/indexeddb/IDBVersionChangeRequest.h: Removed.
* Modules/indexeddb/IDBVersionChangeRequest.idl: Removed.
* WebCore.gypi: Remove references to deleted code.
* WebCore.xcodeproj/project.pbxproj: Remove references to deleted code.
* dom/EventTarget.h: Remove references to deleted code.
* dom/EventTargetFactory.in: Ditto.
2013-01-23 Scott Graham <scottmg@chromium.org>
[Chromium] Fix inclusion of pch .cpp in webcore_platform and webcore_rendering
https://bugs.webkit.org/show_bug.cgi?id=107700
Reviewed by Dirk Pranke.
No new tests, Chromium should link on VS 2012.
* WebCore.gyp/WebCore.gyp:
2013-01-23 Jun Jiang <jun.a.jiang@intel.com>
Avoid unnecessary format conversion for tex{Sub}Image2D() for ImageData of WebGL
https://bugs.webkit.org/show_bug.cgi?id=107532
Reviewed by Kenneth Russell.
This patch removes the unnecessary format conversion in tex{Sub}Image2D() for ImageData in WebGL to improve performance.
Already covered by current tests.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::texImage2D):
(WebCore::WebGLRenderingContext::texSubImage2D):
2013-01-23 Xianzhu Wang <wangxianzhu@chromium.org>
Should update compositing state when an out-of-view fixed position element becomes in-view
https://bugs.webkit.org/show_bug.cgi?id=107410
Reviewed by Simon Fraser.
When a non-compositing page contains some not-composited fixed position element because of bounds out-of-view, when the element changes position and RenderLayerCompositor::updateCompositingLayers() is called, the function may return early because of "if (!m_reevaluateCompositingAfterLayout && !m_compositing)" without updating the compositing layers.
Set m_reevaluateCompositingAfterLayout when a fixed position element is not composited because of bounds out-of-view.
Test: compositing/layer-creation/fixed-position-change-out-of-view-in-view.html
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
2013-01-23 Tony Chang <tony@chromium.org>
Unreviewed, set svn:eol-style to CRLF on Windows .sln files.
* WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
* WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.
2013-01-23 Adam Barth <abarth@webkit.org>
BackgroundHTMLParser::sendTokensToMainThread should use bind
https://bugs.webkit.org/show_bug.cgi?id=107637
Reviewed by Eric Seidel.
This patch replaces our hand-written implementation of bind for
didReceiveTokensFromBackgroundParser with bind from Functional.h. To
use the generic version of bind, we need to switch to using WeakPtr to
hold a reference to the main thread parser in the BackgroundHTMLParser.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
(WebCore::BackgroundHTMLParser::createPartial):
* html/parser/BackgroundHTMLParser.h:
(WebCore::BackgroundHTMLParser::create):
(BackgroundHTMLParser):
(ParserMap):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::startBackgroundParser):
(WebCore::HTMLDocumentParser::stopBackgroundParser):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
2013-01-23 Roger Fong <roger_fong@apple.com>
Unreviewed. Cleanup VS2010 WebCore project.
Lots of files that no longer exist in solution.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
2013-01-23 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Add support for max-content
https://bugs.webkit.org/show_bug.cgi?id=107604
Reviewed by Tony Chang.
Tests: fast/css-grid-layout/minmax-max-content-resolution-columns.html
fast/css-grid-layout/minmax-max-content-resolution-rows.html
This change implements max-content on top of the infrastructure introduced as part
of implementing min-content (bug 106474). No effort was made to share code, which
is what was done for min-content. The sharing will occur in follow-up refactoring(s)
to benefit from the extra testing but also the extra code to make the direction more
obvious.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::maxContentForChild):
Added this helper, similar to minContentForChild.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
Patched the function to handle max-content per the specification's algorithm.
* rendering/RenderGrid.h:
Added maxContentForChild.
2013-01-23 Mark Lam <mark.lam@apple.com>
Assert that Supplementable objects is only used in their creator thread.
https://bugs.webkit.org/show_bug.cgi?id=107717.
Reviewed by Adam Barth.
No new tests.
* platform/Supplementable.h:
(WebCore):
(WebCore::Supplementable::provideSupplement):
(WebCore::Supplementable::removeSupplement):
(WebCore::Supplementable::requireSupplement):
(Supplementable):
(WebCore::Supplementable::Supplementable):
2013-01-23 Tony Chang <tony@chromium.org>
Incorrect scrollable height during simplified layout
https://bugs.webkit.org/show_bug.cgi?id=107193
Reviewed by David Hyatt.
When computing overflow we need the height of the block before
it was clamped (i.e., before updateLogicalHeight() has been called).
During simplified layout, we don't have this information and we were
using the clamped height by mistake. To fix this, we now store the
pre-clamped height on RenderOverflow so we can properly compute
overflow.
Test: fast/overflow/height-during-simplified-layout.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeOverflow): Save the height if we have overflow.
(WebCore::RenderBlock::simplifiedLayout): If we have overflow, use the height that we saved
in computeOverflow.
* rendering/RenderOverflow.h:
(WebCore::RenderOverflow::layoutClientAfterEdge):
(WebCore::RenderOverflow::setLayoutClientAfterEdge):
(RenderOverflow): Add a member variable to save the height.
2013-01-23 Tom Sepez <tsepez@chromium.org>
[chromium] harden ScriptWrappable::m_wrapper against tampering
https://bugs.webkit.org/show_bug.cgi?id=107318
Reviewed by Adam Barth.
Patch is correct if existing tests past without crashing.
* bindings/v8/ScriptWrappable.h:
(WebCore::ScriptWrappable::ScriptWrappable):
(WebCore::ScriptWrappable::wrapper):
(WebCore::ScriptWrappable::setWrapper):
(WebCore::ScriptWrappable::clearWrapper):
(WebCore::ScriptWrappable::disposeWrapper):
(WebCore::ScriptWrappable::reportMemoryUsage):
(ScriptWrappable):
(WebCore::ScriptWrappable::maskOrUnmaskPointer):
2013-01-22 Roger Fong <roger_fong@apple.com>
WebCore property sheets, modified build scripts, and project files for compiling in VS2010.
https://bugs.webkit.org/show_bug.cgi?id=106988
Reviewed by Brent Fulgham.
* WebCore.vcproj/WebCore.sln:
* WebCore.vcxproj: Added.
* WebCore.vcxproj/MigrateScripts: Added.
* WebCore.vcxproj/QTMovieWin: Added.
* WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj: Added.
* WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj.filters: Added.
* WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj.user: Added.
* WebCore.vcxproj/QTMovieWin/QTMovieWinCommon.props: Added.
* WebCore.vcxproj/QTMovieWin/QTMovieWinDebug.props: Added.
* WebCore.vcxproj/QTMovieWin/QTMovieWinRelease.props: Added.
* WebCore.vcxproj/WebCore.vcxproj: Added.
* WebCore.vcxproj/WebCore.vcxproj.filters: Added.
* WebCore.vcxproj/WebCore.vcxproj.user: Added.
* WebCore.vcxproj/WebCoreCFNetwork.props: Added.
* WebCore.vcxproj/WebCoreCG.props: Added.
* WebCore.vcxproj/WebCoreCommon.props: Added.
* WebCore.vcxproj/WebCoreDebug.props: Added.
* WebCore.vcxproj/WebCoreGenerated.make: Added.
* WebCore.vcxproj/WebCoreGenerated.vcxproj: Added.
* WebCore.vcxproj/WebCoreGenerated.vcxproj.filters: Added.
* WebCore.vcxproj/WebCoreGenerated.vcxproj.user: Added.
* WebCore.vcxproj/WebCoreGeneratedCommon.props: Added.
* WebCore.vcxproj/WebCoreGeneratedDebug.props: Added.
* WebCore.vcxproj/WebCoreGeneratedRelease.props: Added.
* WebCore.vcxproj/WebCoreMediaQT.props: Added.
* WebCore.vcxproj/WebCorePostBuild.cmd: Added.
* WebCore.vcxproj/WebCorePreBuild.cmd: Added.
* WebCore.vcxproj/WebCorePreLink.cmd: Added.
* WebCore.vcxproj/WebCorePthreads.props: Added.
* WebCore.vcxproj/WebCoreQuartzCore.props: Added.
* WebCore.vcxproj/WebCoreRelease.props: Added.
* WebCore.vcxproj/build-generated-files.sh: Added.
* WebCore.vcxproj/copyForwardingHeaders.cmd: Added.
* WebCore.vcxproj/copyWebCoreResourceFiles.cmd: Added.
* WebCore.vcxproj/migrate-scripts.sh: Added.
* WebCore.vcxproj/xcopy.excludes: Added.
* WebCorePrefix.h:
* config.h:
2013-01-23 Eric Seidel <eric@webkit.org>
HTMLCompactToken needs to include the forceQuirks bool from HTMLToken
https://bugs.webkit.org/show_bug.cgi?id=107713
Reviewed by Tony Gentilcore.
Before we were only getting "quirks mode" when the system/public identifiers
were known quirks identifiers. Now we'll correctly get quirks mode for any
parse error during DOCTYPE parsing.
This passes a bunch more tests.
* html/parser/CompactHTMLToken.cpp:
(WebCore::CompactHTMLToken::CompactHTMLToken):
* html/parser/CompactHTMLToken.h:
(WebCore::CompactHTMLToken::doctypeForcesQuirks):
(CompactHTMLToken):
* html/parser/HTMLToken.h:
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
2013-01-23 Brady Eidson <beidson@apple.com>
Recursion handling cancelled authentication challenges in NetworkProcess
<rdar://problem/13024541> and https://bugs.webkit.org/show_bug.cgi?id=107702
Reviewed by Alexey Proskuryakov.
* WebCore.exp.in:
2013-01-23 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=107628
Sometimes scroll position is jerky during rubber-band, affects nytimes.com
-and corresponding-
<rdar://problem/12679549>
Reviewed by Simon Fraser.
The basic problem here is that isRubberBandInProgress() was only implemented for
main thread scrolling. So when we were actually scrolling on the scrolling thread,
that function would always return false regardless.
New ScrollableArea virtual function isRubberBandInProgress() will allow us to ask
the ScrollingCoordinator when the scrolling thread is scrolling, or the
ScrollAnimator otherwise.
* page/FrameView.cpp:
(WebCore::FrameView::isRubberBandInProgress):
* page/FrameView.h:
(FrameView):
* platform/ScrollableArea.h:
(WebCore::ScrollableArea::isRubberBandInProgress):
New ScrollingCoordinator function isRubberBandInProgress() always returns false
for non-Mac ports, and is overridden in ScrollingCoordinatorMac to consult the
ScrollingTree.
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::isRubberBandInProgress):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
(ScrollingCoordinatorMac):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::isRubberBandInProgress):
New variable m_mainFrameIsRubberBanding keeps track of whether there is currently
a rubber-band happening on the scrolling thread.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::ScrollingTree):
(WebCore::ScrollingTree::isRubberBandInProgress):
(WebCore::ScrollingTree::setMainFrameIsRubberBanding):
* page/scrolling/ScrollingTree.h:
(ScrollingTree):
(WebCore::ScrollingTree::rootNode):
Call setMainFrameIsRubberBanding() whenever the stretchAmount is calculated and
whenever we stop the rubber-band timer.
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::stretchAmount):
(WebCore::ScrollingTreeScrollingNodeMac::stopSnapRubberbandTimer):
Consult FrameView for isRubberBandInProgress().
* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars):
2013-01-23 Robert Hogan <robert@webkit.org>
Abspos Inline block not positioned correctly in text-aligned container
https://bugs.webkit.org/show_bug.cgi?id=105695
Reviewed by Ojan Vafai.
Inline positioned elements should still obey the text-alignment of their container
even when we don't do a line layout.
Test: fast/text/container-align-with-inlines.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::adjustPositionedBlock):
(WebCore::RenderBlock::updateStaticInlinePositionForChild):
(WebCore):
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::setStaticPositions):
2013-01-23 Eric Seidel <eric@webkit.org>
Remove DocType support from MarkupTokenBase now that NEW_XML is gone
https://bugs.webkit.org/show_bug.cgi?id=107709
Reviewed by Adam Barth.
Just moving code out of MarkupTokenBase and into HTMLToken.
The test for this change is if it compiles. :) Which it does.
* html/parser/HTMLToken.h:
(DoctypeData):
(WebCore::DoctypeData::DoctypeData):
(WebCore):
(WebCore::HTMLToken::appendToName):
(WebCore::HTMLToken::name):
(HTMLToken):
(WebCore::HTMLToken::beginDOCTYPE):
(WebCore::HTMLToken::publicIdentifier):
(WebCore::HTMLToken::systemIdentifier):
(WebCore::HTMLToken::setPublicIdentifierToEmptyString):
(WebCore::HTMLToken::setSystemIdentifierToEmptyString):
(WebCore::HTMLToken::appendToPublicIdentifier):
(WebCore::HTMLToken::appendToSystemIdentifier):
(WebCore::HTMLToken::releaseDoctypeData):
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
(AtomicHTMLToken):
* html/parser/HTMLTokenTypes.h:
* xml/parser/MarkupTokenBase.h:
(WebCore):
(MarkupTokenBase):
2013-01-23 Alexis Menard <alexis@webkit.org>
transition-property accepts incorrect "all, none" as value
https://bugs.webkit.org/show_bug.cgi?id=105428
Reviewed by Dean Jackson.
http://www.w3.org/TR/css3-transitions/#transition-property-property
disallows any value like none, all or all, none as it doesn't make
sense. This patch fixes the problem by rejecting the value if set by
the user.
Test: transitions/transitions-parsing.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseAnimationProperty):
* css/CSSParser.h:
2013-01-23 Eric Seidel <eric@webkit.org>
Clarify some usage of shouldUseThreading vs m_haveBackgroundParser, fixing about:blank parsing
https://bugs.webkit.org/show_bug.cgi?id=107664
Reviewed by Adam Barth.
The HTMLDocumentParser can be "supposed" to use a background parser
but not end up ever doing so for blank documents. It's important
that we spin the forground parser at least once, so we end up
actually creating the about:blank document.
shouldUseThreading() means that threading is enabled and we should use it if we can.
m_haveBackgroundParser means that we actually are already using threading.
When we add full document.write support this will get a bit trickier still as
we'll need to be using both the foreground and background parsers.
This fixes about 20 tests in fast/frames and many others outside of fast/frames. :)
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::prepareToStopParsing):
(WebCore::HTMLDocumentParser::resumeParsingAfterYield):
(WebCore::HTMLDocumentParser::finish):
(WebCore::HTMLDocumentParser::lineNumber):
(WebCore::HTMLDocumentParser::textPosition):
2013-01-17 Roger Fong <roger_fong@apple.com>
[Win] Remove dependence on Microsoft Embedded OpenType Font Engine (T2EMBED.DLL) from FontCustomPlatformData.cpp.
https://bugs.webkit.org/show_bug.cgi?id=107153
Reviewed by Dan Bernstein.
* platform/graphics/win/FontCustomPlatformData.cpp:
(WebCore):
(WebCore::FontCustomPlatformData::~FontCustomPlatformData):
(WebCore::FontCustomPlatformData::fontPlatformData):
(WebCore::createFontCustomPlatformData):
2013-01-23 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: speedup highlight regex API in DefaultTextEditor
https://bugs.webkit.org/show_bug.cgi?id=107238
Reviewed by Pavel Feldman.
Move overlay highlight measurement (highlight regex API) from DefaultTextEditor._paintLine
method to the DefaultTextEditor._paintLines method which allows to relayout dom only
once. This is a significant improvement to the current state of the
art which does relayout on each regex occurence.
In addition, use "left" css attribute instead of "margin-left": this
way it will be possible to avoid an unnecessary relayouting during
appending overlay highlight.
No new tests: no change in behaviour.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
(WebInspector.TextEditorMainPanel.prototype._paintLines):
(WebInspector.TextEditorMainPanel.prototype._measureRegexHighlight):
(WebInspector.TextEditorMainPanel.prototype._measureSpans):
(WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
(WebInspector.TextEditorMainPanel.prototype._paintLine):
(WebInspector.TextEditorMainPanel.ElementMetrics):
(WebInspector.TextEditorMainPanel.LineOverlayHighlight):
(WebInspector.TextEditorMainChunk.prototype.expand):
2013-01-23 Ojan Vafai <ojan@chromium.org>
Assert that computePreferredLogicalWidths never calls setNeedsLayout
https://bugs.webkit.org/show_bug.cgi?id=107613
Reviewed by Eric Seidel.
computePreferredLogicalWidths should only set m_minPreferredLogicalWidth
and m_maxPreferredLogicalWidth. It shouldn't have other side-effects.
The mathml bits can be removed once https://bugs.webkit.org/show_bug.cgi?id=107353
is resolved.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::minPreferredLogicalWidth):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::computePreferredLogicalWidths):
2013-01-23 Noam Rosenthal <noam@webkit.org>
REGRESSION(r140518): Broke Chromium Win build (gyp file not updated) (Requested by arv on #webkit).
https://bugs.webkit.org/show_bug.cgi?id=107691
Unreviewed build fix. Removed TextureMapperShaderManager.* from WebCore.gypi.
* WebCore.gypi:
2013-01-23 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140307, r140411, and r140512.
http://trac.webkit.org/changeset/140307
http://trac.webkit.org/changeset/140411
http://trac.webkit.org/changeset/140512
https://bugs.webkit.org/show_bug.cgi?id=107689
Perf regression on DOMDivWalk (bug 106726) (Requested by
falken on #webkit).
* dom/Element.cpp:
(WebCore::Element::removedFrom):
(WebCore):
(WebCore::Element::isInTopLayer):
(WebCore::Element::setIsInTopLayer):
* dom/Element.h:
* dom/ElementRareData.h:
(ElementRareData):
(WebCore::ElementRareData::isInTopLayer):
(WebCore::ElementRareData::setIsInTopLayer):
(WebCore::ElementRareData::ElementRareData):
* dom/Node.cpp:
* dom/Node.h:
(Node):
* dom/NodeRenderingContext.cpp:
(WebCore::isRendererReparented):
(WebCore::NodeRenderingContext::previousRenderer):
(WebCore::NodeRenderingContext::parentRenderer):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::isInTopLayer):
(WebCore::RenderLayer::rebuildZOrderLists):
2013-01-23 Dmitry Gozman <dgozman@chromium.org>
Web Inspector: allow user to resize inspector window by dragging the toolbar
https://bugs.webkit.org/show_bug.cgi?id=107648
Reviewed by Pavel Feldman.
This did not work before you click dock button once.
Also, last drag position was not respected.
No new tests, because of pure inspector UI change.
* inspector/front-end/DockController.js:
(WebInspector.DockController.prototype.isDockedToBottom):
* inspector/front-end/Toolbar.js:
(WebInspector.Toolbar.prototype._isDockedToBottom):
(WebInspector.Toolbar.prototype._toolbarDragStart):
(WebInspector.Toolbar.prototype._toolbarDragEnd):
(WebInspector.Toolbar.prototype._toolbarDrag):
2013-01-23 Shinya Kawanaka <shinyak@chromium.org>
shadowAncestorNode() should be renamed to deprecatedShadowAncestorNode()
https://bugs.webkit.org/show_bug.cgi?id=107624
Reviewed by Dimitri Glazkov.
Since Node::shadowAncestorNode() is deprecated, we would like to rename it to prevent from further use.
No new tests, simple refactoring.
* WebCore.order:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityHitTest):
* dom/Document.cpp:
(WebCore::Document::handleZeroPadding):
* dom/Node.cpp:
(WebCore::Node::deprecatedShadowAncestorNode):
* dom/Node.h:
(Node):
* editing/Editor.cpp:
(WebCore::Editor::rangeOfString):
(WebCore::Editor::countMatchesForText):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::ReplacementFragment):
* page/DragController.cpp:
(WebCore::elementUnderMouse):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::bestClickableNodeForTouchPoint):
* page/FocusController.cpp:
(WebCore::clearSelectionIfNeeded):
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::RenderThemeBlackBerry::paintSearchFieldCancelButton):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::setToNonShadowAncestor):
(WebCore::HitTestResult::addNodeToRectBasedTestResult):
2013-01-22 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: only allow evaluateForTestInFrontend for front-ends under test.
https://bugs.webkit.org/show_bug.cgi?id=107523
Reviewed by Yury Semikhatsky.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::isUnderTest):
(WebCore):
(WebCore::InspectorController::evaluateForTestInFrontend):
* inspector/InspectorController.h:
(InspectorController):
* inspector/InspectorFrontendClient.h:
(InspectorFrontendClient):
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::canAttachWindow):
(WebCore::InspectorFrontendClientLocal::isUnderTest):
(WebCore):
* inspector/InspectorFrontendClientLocal.h:
(InspectorFrontendClientLocal):
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::isUnderTest):
(WebCore):
* inspector/InspectorFrontendHost.h:
(InspectorFrontendHost):
* inspector/InspectorFrontendHost.idl:
* inspector/front-end/DOMExtension.js:
* inspector/front-end/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub.prototype.canInspectWorkers):
(.WebInspector.InspectorFrontendHostStub.prototype.isUnderTest):
* inspector/front-end/TestController.js:
(.invokeMethod):
(WebInspector.evaluateForTestInFrontend):
* inspector/front-end/externs.js:
2013-01-23 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: remove invisibleLineRow code from paintLines DTE method
https://bugs.webkit.org/show_bug.cgi?id=107649
Reviewed by Pavel Feldman.
Remove invisibleLineRow logic from TextEditorMainPanel._paintLines method.
No new tests: no change in behaviour.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._paintLines):
2013-01-23 Rafael Weinstein <rafaelw@chromium.org>
REGRESSION(r140101): caused debug asserts in fast/forms/associated-element-crash.html and html5lib/run-template.html
https://bugs.webkit.org/show_bug.cgi?id=107237
Reviewed by Adam Barth.
No new tests needed.
When the parser foster-parent's a node out of a table context and the foster parent is a template element, set the Task.parent
to be the template element's content, rather than the element itself. This ensures the foster-parented node isn't errorenously
reparented.
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::findFosterSite):
2013-01-23 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: heap profiler shows nodes with distance 0
https://bugs.webkit.org/show_bug.cgi?id=107425
Reviewed by Pavel Feldman.
"Document DOM tree" entities now have distance 1. So if there is a DOM
wrapper that is not referenced from javascript it will anyways be shown
in the heap snapshot and will have distance 2. Also such DOM wrappers
are considered to be reachable from user roots (e.g. global Window objects)
otherwice they are not event shown in the heap snapshots.
* inspector/front-end/HeapSnapshot.js:
(WebInspector.HeapSnapshot.prototype.distanceForUserRoot):
(WebInspector.HeapSnapshot.prototype._calculateDistances):
* inspector/front-end/JSHeapSnapshot.js:
(WebInspector.JSHeapSnapshot.prototype.distanceForUserRoot): distance for
"(Document DOM trees)" is set to 0 to make sure distance of "Ddocument DOM tree" is 1.
(WebInspector.JSHeapSnapshot.prototype._markPageOwnedNodes):
(WebInspector.JSHeapSnapshotNode.prototype.isDocumentDOMTreesRoot):
2013-01-23 Adrian Perez de Castro <aperez@igalia.com>
[GStreamer] Add Opus MIME type to the list of supported ones
https://bugs.webkit.org/show_bug.cgi?id=98759
Reviewed by Philippe Normand.
GStreamer has support for the Opus codec (http://opus-codec.org) by
using a plugin present in the "gst-plugins-bad" repository. Opus
streams may be embedded in a Ogg container, or standalone. The case
of the Ogg container is already covered by the "*/ogg" MIME types
declared as supported by the GStreamer media playing code, but for
standalone streams to work, "audio/opus" has to be added.
With this, and the needed GStreamer plugin installed, the GTK+
launcher is able to correctly play the example streams from
http://opus-codec.org/examples
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2013-01-23 Takashi Sakamoto <tasak@google.com>
[Refactoring] Remove elementParentStyle from SelectorCheckerContext
https://bugs.webkit.org/show_bug.cgi?id=107496
Reviewed by Darin Adler.
Since childrenAffectedBy bits were moved from RenderStyle to element,
now elementParentStyle is not used in SelectorChecker and
StyleResolver. We should remove the member varaiable from
SelectorCheckerContext.
No new tests, because just refactoring.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::match):
* css/SelectorChecker.h:
(WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
(SelectorCheckingContext):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::ruleMatches):
Removed elementParentStyle.
2013-01-23 Andreas Kling <akling@apple.com>
Pass CSSSelector pointers around as const after parsing stage.
<http://webkit.org/b/107645>
Reviewed by Antti Koivisto.
Have CSSSelectorList vend const CSSSelector* and make the style resolution code
operate on const pointers instead.
This gives us some compile-time confidence that nobody is changing the selectors
after we've parsed them.
* css/CSSSelector.cpp:
(WebCore::CSSSelector::operator==):
(WebCore::CSSSelector::selectorText):
(WebCore::CSSSelector::parseNth):
(WebCore::CSSSelector::matchNth):
* css/CSSSelector.h:
(CSSSelector):
(WebCore::CSSSelector::tagHistory):
(WebCore::CSSSelector::selectorList):
* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::selectorsText):
(WebCore::forEachTagSelector):
(WebCore::forEachSelector):
(WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
(WebCore::SelectorHasInvalidSelectorFunctor::operator()):
* css/CSSSelectorList.h:
(WebCore::CSSSelectorList::first):
(CSSSelectorList):
(WebCore::CSSSelectorList::selectorAt):
(WebCore::CSSSelectorList::indexOfNextSelectorAfter):
(WebCore::CSSSelectorList::next):
* css/CSSStyleRule.cpp:
(WebCore::CSSStyleRule::generateSelectorText):
* css/RuleSet.cpp:
(WebCore::selectorListContainsUncommonAttributeSelector):
(WebCore::collectFeaturesFromRuleData):
* css/RuleSet.h:
(WebCore::RuleData::selector):
(WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
(RuleSetSelectorPair):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matches):
(WebCore::SelectorChecker::match):
(WebCore::SelectorChecker::checkOne):
(WebCore::SelectorChecker::checkScrollbarPseudoClass):
(WebCore::SelectorChecker::determineLinkMatchType):
* css/SelectorChecker.h:
(WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
(SelectorCheckingContext):
(SelectorChecker):
* css/StyleInvalidationAnalysis.cpp:
(WebCore::determineSelectorScopes):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRulesForRegion):
(WebCore::StyleResolver::checkRegionSelector):
* css/StyleResolver.h:
(StyleResolver):
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::initialize):
(WebCore::SelectorDataList::execute):
* dom/SelectorQuery.h:
(WebCore::SelectorDataList::SelectorData::SelectorData):
(SelectorData):
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::collectSelectFeatureSetFrom):
* html/shadow/ContentSelectorQuery.cpp:
(WebCore::ContentSelectorChecker::checkContentSelector):
(WebCore::ContentSelectorDataList::initialize):
* html/shadow/ContentSelectorQuery.h:
(ContentSelectorChecker):
(ContentSelectorDataList):
* html/shadow/HTMLContentElement.cpp:
(WebCore::validateSubSelector):
(WebCore::validateSelector):
(WebCore::HTMLContentElement::validateSelect):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::buildObjectForSelectorList):
2013-01-23 Sergio Villar Senin <svillar@igalia.com>
[GTK] Unreviewed build fix after r140518.
* GNUmakefile.list.am: rename TextureMapperShaderManager to
TextureMapperShaderProgram.
2013-01-23 Yoshifumi Inoue <yosin@chromium.org>
REGRESSION(r139044): Pan icon remains on screen on Chromium-WinXP
https://bugs.webkit.org/show_bug.cgi?id=107623
Reviewed by Hajime Morita.
The issue is caused by AutoscrollController::stopAutoscrollTimer()
doesn't call View::removePanScrollIcon() because m_autoscrollType
is reset before checking it.
This patch changes to reset m_autoscrollType after all references.
Test: platform/chromium-win/fast/events/panScroll-panIcon.html
* page/AutoscrollController.cpp:
(WebCore::AutoscrollController::stopAutoscrollTimer):
2013-01-23 Sergio Villar Senin <svillar@igalia.com>
REGRESSION(r140338): WebKitGtk+ trying to allocate a buffer too big
https://bugs.webkit.org/show_bug.cgi?id=107646
Reviewed by Carlos Garcia Campos.
g_input_stream_skip_async() was replaced in r140338 by
g_input_stream_read_async() to workaround a glib buffer. The former
was using G_MAXSSIZE to skip the whole redirect message but we
cannot use it for the latter because it will try to
allocate a buffer of that size. Replaced it by READ_BUFFER_SIZE. No
new tests required, functionality already covered by network tests..
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::redirectSkipCallback):
(WebCore::sendRequestCallback):
2013-01-23 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: use inspectedWindow.document instead of document in InjectedScript
https://bugs.webkit.org/show_bug.cgi?id=107642
Reviewed by Pavel Feldman.
* inspector/InjectedScriptSource.js:
(.):
2013-01-23 Vivek Galatage <vivek.vg@samsung.com>
xml-stylesheet XSL is not requested with JavaScript disabled
https://bugs.webkit.org/show_bug.cgi?id=103902
Reviewed by Adam Barth.
Currently CachedResourceLoader::canRequest() calls allowScriptFromSource() on
ContentSecurityPolicy and FrameLoaderClient for the given XSLStyleSheet. This
should be restricted to only calling allowScriptFromSource() for the
ContentSecurityPolicy.
Test: http/tests/xsl/xslt-transform-with-javascript-disabled.html
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::canRequest):
2013-01-23 Kentaro Hara <haraken@chromium.org>
[V8] Remove if(isolate) checks from v8String() and v8Integer()
https://bugs.webkit.org/show_bug.cgi?id=107540
Reviewed by Adam Barth.
Now there is no optional Isolate parameter in the code base
(except for throwError()). We can safely remove if(isolate) checks
from v8String() and v8Integer().
div.id: 17.8 ns => 17.8 ns (no performance change)
div.nodeType: 9.7 ns => 8.9 ns (+8.9% performance improvement)
No tests. No change in behavior.
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::handleV8DebugEvent):
* bindings/v8/V8Binding.h:
(WebCore::v8String):
(WebCore::v8Integer):
* bindings/v8/V8WindowErrorHandler.cpp:
(WebCore::V8WindowErrorHandler::callListenerFunction):
* bindings/v8/V8WorkerContextErrorHandler.cpp:
(WebCore::V8WorkerContextErrorHandler::callListenerFunction):
2013-01-23 Hajime Morrita <morrita@google.com>
Invalidated SVG shadow tree should be always detached.
https://bugs.webkit.org/show_bug.cgi?id=107634
Reviewed by Ryosuke Niwa.
SVGUseElement::clearResourceReferences() uses removeAllChildren() for
clearing its shadow DOM, but this is wrong.
removeAllChildren() is designed for removing children of an out-of-document Node.
For efficiency, it skips a series of cleanup sequences like detach().
For removing SVG shadow tree which is in Document, removeChildren() should be used.
It does proper cleanup for the chilren.
Test: svg/custom/use-invalidate-click-crash.xhtml
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::clearResourceReferences):
2013-01-23 Huang Dongsung <luxtella@company100.net>
[TexMap] Don't call GraphicsLayer::setNeedsDisplay() from TextureMapperLayer.
https://bugs.webkit.org/show_bug.cgi?id=107629
Reviewed by Noam Rosenthal.
We are removing the dependency on GraphicsLayer from TextureMapperLayer.
This is in preparation for refactoring TextureMapper to work in an actor
model (http://webkit.org/b/103854).
No new tests, refactoring only.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setDrawsContent):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
2013-01-23 No'am Rosenthal <noam@webkit.org>
[Texmap] Rename TextureMapperShaderManager.* TextureMapperShaderProgram.*
https://bugs.webkit.org/show_bug.cgi?id=105847
TextureMapperShaderManager contains very little "manager" code.
Moved the map of shaders to TextureMapperGL, and renamed the files containing
the shader implementation TextureMapperShaderProgram.cpp|h.
Reviewed by Kenneth Rohde Christiansen.
No new tests - renames/refactors only.
* GNUmakefile.list.am:
* PlatformEfl.cmake:
* Target.pri:
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGLData::SharedGLData::getShaderProgram):
This function is copied from TextureMapperShaderManager.
(SharedGLData):
(WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
(WebCore::TextureMapperGL::drawBorder):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::optionsForFilterType):
(WebCore::TextureMapperGL::drawFiltered):
(WebCore::TextureMapperGL::beginClip):
* platform/graphics/texmap/TextureMapperShaderProgram.cpp: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.cpp.
(WebCore):
(WebCore::compositingLogEnabled):
(WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
(WebCore::TextureMapperShaderProgram::setMatrix):
(WebCore::TextureMapperShaderProgram::getLocation):
(WebCore::TextureMapperShaderProgram::~TextureMapperShaderProgram):
(WebCore::TextureMapperShaderProgram::create):
* platform/graphics/texmap/TextureMapperShaderProgram.h: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.h.
(WebCore):
(TextureMapperShaderProgram):
(WebCore::TextureMapperShaderProgram::programID):
(WebCore::TextureMapperShaderProgram::context):
2013-01-23 Kentaro Hara <haraken@chromium.org>
[V8] Make an Isolate parameter mandatory in throwError()
https://bugs.webkit.org/show_bug.cgi?id=107636
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/v8/NPV8Object.cpp:
(_NPN_SetException):
* bindings/v8/V8Binding.cpp:
(WebCore::handleMaxRecursionDepthExceeded):
* bindings/v8/V8Binding.h:
(WebCore):
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::setException):
2013-01-22 Kentaro Hara <haraken@chromium.org>
[V8] Make an Isolate parameter mandatory in throwTypeError()
https://bugs.webkit.org/show_bug.cgi?id=107632
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateParametersCheck):
(GenerateConstructorHeader):
(JSValueToNative):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::constructorCallback):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::V8TestInterface::constructorCallback):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructorCallback):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::constructorCallback):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
(WebCore::V8TestObj::constructorCallback):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::constructorCallback):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListCallback):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::multiTransferListCallback):
(WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
* bindings/v8/V8Binding.h:
(WebCore):
(WebCore::toRefPtrNativeArray):
(WebCore::toV8Sequence):
* bindings/v8/V8NodeFilterCondition.cpp:
(WebCore::V8NodeFilterCondition::acceptNode):
* bindings/v8/V8Utilities.cpp:
(WebCore::extractTransferables):
(WebCore::getMessagePortArray):
2013-01-22 Matt Falkenhagen <falken@chromium.org>
20% regression on dom_perf/DomDivWalk
https://bugs.webkit.org/show_bug.cgi?id=106726
Reviewed by Hajime Morita.
This patch moves the checks in Element::removedFrom for Fullscreen and top layer flags
into a slow path. The idea is for the two checks for Fullscreen and top layer
to be replaced by one faster check in the fast path.
The plan is to migrate the Fullscreen implementation to use top layer, so this is just a
short-term fix for the perf regression.
No new tests: no functionality change
* dom/Element.cpp:
(WebCore::Element::removedFrom): Create a slow path to move the Fullscreen and top layer checks into.
* dom/Node.cpp:
(WebCore::Node::setIsInTopLayer): To allow for cleaner code in Element::removedFrom, define
setIsInTopLayer and isInTopLayer even when the feature flag is off.
* dom/Node.h:
(WebCore::Node::isInTopLayer): Ditto.
(Node):
2013-01-22 Mark Lam <mark.lam@apple.com>
Change the Supplementable class to not use AtomicString.
https://bugs.webkit.org/show_bug.cgi?id=107535.
Reviewed by Adam Barth.
Replaced the use of AtomicString keys with literal const char* keys.
This simplifies the SupplementMap and makes it slightly leaner and faster.
No new tests.
* Modules/battery/BatteryController.cpp:
(WebCore::BatteryController::supplementName):
* Modules/battery/BatteryController.h:
(BatteryController):
* Modules/battery/NavigatorBattery.cpp:
(WebCore::NavigatorBattery::supplementName):
(WebCore):
(WebCore::NavigatorBattery::from):
* Modules/battery/NavigatorBattery.h:
(NavigatorBattery):
* Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
(WebCore::DraggedIsolatedFileSystem::supplementName):
* Modules/filesystem/chromium/DraggedIsolatedFileSystem.h:
(DraggedIsolatedFileSystem):
* Modules/gamepad/NavigatorGamepad.cpp:
(WebCore::NavigatorGamepad::supplementName):
(WebCore):
(WebCore::NavigatorGamepad::from):
* Modules/gamepad/NavigatorGamepad.h:
(NavigatorGamepad):
* Modules/geolocation/GeolocationController.cpp:
(WebCore::GeolocationController::supplementName):
* Modules/geolocation/GeolocationController.h:
(GeolocationController):
* Modules/geolocation/NavigatorGeolocation.cpp:
(WebCore::NavigatorGeolocation::supplementName):
(WebCore):
(WebCore::NavigatorGeolocation::from):
* Modules/geolocation/NavigatorGeolocation.h:
(NavigatorGeolocation):
* Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
(WebCore::DOMWindowIndexedDatabase::supplementName):
(WebCore):
(WebCore::DOMWindowIndexedDatabase::from):
* Modules/indexeddb/DOMWindowIndexedDatabase.h:
(DOMWindowIndexedDatabase):
* Modules/indexeddb/PageGroupIndexedDatabase.cpp:
(WebCore::PageGroupIndexedDatabase::supplementName):
(WebCore):
(WebCore::PageGroupIndexedDatabase::from):
* Modules/indexeddb/PageGroupIndexedDatabase.h:
(PageGroupIndexedDatabase):
* Modules/indexeddb/WorkerContextIndexedDatabase.cpp:
(WebCore::WorkerContextIndexedDatabase::supplementName):
(WebCore):
(WebCore::WorkerContextIndexedDatabase::from):
* Modules/indexeddb/WorkerContextIndexedDatabase.h:
(WorkerContextIndexedDatabase):
* Modules/intents/DOMWindowIntents.cpp:
(WebCore::DOMWindowIntents::supplementName):
(WebCore):
(WebCore::DOMWindowIntents::from):
* Modules/intents/DOMWindowIntents.h:
(DOMWindowIntents):
* Modules/mediastream/UserMediaController.cpp:
(WebCore::UserMediaController::supplementName):
* Modules/mediastream/UserMediaController.h:
(UserMediaController):
* Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
(WebCore::NavigatorContentUtils::supplementName):
* Modules/navigatorcontentutils/NavigatorContentUtils.h:
(NavigatorContentUtils):
* Modules/networkinfo/NavigatorNetworkInfoConnection.cpp:
(WebCore::NavigatorNetworkInfoConnection::supplementName):
(WebCore):
(WebCore::NavigatorNetworkInfoConnection::from):
* Modules/networkinfo/NavigatorNetworkInfoConnection.h:
(NavigatorNetworkInfoConnection):
* Modules/networkinfo/NetworkInfoController.cpp:
(WebCore::NetworkInfoController::supplementName):
* Modules/networkinfo/NetworkInfoController.h:
(NetworkInfoController):
* Modules/notifications/DOMWindowNotifications.cpp:
(WebCore::DOMWindowNotifications::supplementName):
(WebCore):
(WebCore::DOMWindowNotifications::from):
* Modules/notifications/DOMWindowNotifications.h:
(DOMWindowNotifications):
* Modules/notifications/NotificationController.cpp:
(WebCore::NotificationController::supplementName):
* Modules/notifications/NotificationController.h:
(NotificationController):
* Modules/notifications/WorkerContextNotifications.cpp:
(WebCore::WorkerContextNotifications::supplementName):
(WebCore):
(WebCore::WorkerContextNotifications::from):
* Modules/notifications/WorkerContextNotifications.h:
(WorkerContextNotifications):
* Modules/quota/DOMWindowQuota.cpp:
(WebCore::DOMWindowQuota::supplementName):
(WebCore):
(WebCore::DOMWindowQuota::from):
* Modules/quota/DOMWindowQuota.h:
(DOMWindowQuota):
* Modules/speech/DOMWindowSpeechSynthesis.cpp:
(WebCore::DOMWindowSpeechSynthesis::supplementName):
(WebCore):
(WebCore::DOMWindowSpeechSynthesis::from):
* Modules/speech/DOMWindowSpeechSynthesis.h:
(DOMWindowSpeechSynthesis):
* Modules/speech/SpeechRecognitionController.cpp:
(WebCore::SpeechRecognitionController::supplementName):
* Modules/speech/SpeechRecognitionController.h:
(SpeechRecognitionController):
* Modules/vibration/Vibration.cpp:
(WebCore::Vibration::supplementName):
* Modules/vibration/Vibration.h:
(Vibration):
* Modules/webdatabase/DatabaseContext.cpp:
(WebCore::DatabaseContext::supplementName):
(WebCore):
(WebCore::DatabaseContext::existingDatabaseContextFrom):
(WebCore::DatabaseContext::from):
* Modules/webdatabase/DatabaseContext.h:
(DatabaseContext):
* dom/ContextFeatures.cpp:
(WebCore::ContextFeatures::supplementName):
* dom/ContextFeatures.h:
* dom/DeviceMotionController.cpp:
(WebCore::DeviceMotionController::supplementName):
* dom/DeviceMotionController.h:
(DeviceMotionController):
* dom/DeviceOrientationController.cpp:
(WebCore::DeviceOrientationController::supplementName):
* dom/DeviceOrientationController.h:
(DeviceOrientationController):
* loader/PrerendererClient.cpp:
(WebCore::PrerendererClient::supplementName):
* loader/PrerendererClient.h:
(PrerendererClient):
* page/DOMWindowPagePopup.cpp:
(WebCore::DOMWindowPagePopup::supplementName):
* page/DOMWindowPagePopup.h:
(DOMWindowPagePopup):
* page/SpeechInput.cpp:
(WebCore::SpeechInput::supplementName):
* page/SpeechInput.h:
(SpeechInput):
* platform/RefCountedSupplement.h:
(WebCore::RefCountedSupplement::provideTo):
(WebCore::RefCountedSupplement::from):
* platform/Supplementable.h:
(WebCore):
(WebCore::Supplement::provideTo):
(WebCore::Supplement::from):
(WebCore::Supplementable::provideSupplement):
(WebCore::Supplementable::removeSupplement):
(WebCore::Supplementable::requireSupplement):
(Supplementable):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::supplementName):
(WebCore):
(WebCore::InternalSettings::from):
* testing/InternalSettings.h:
(InternalSettings):
2013-01-22 Hajime Morrita <morrita@google.com>
non-ENABLE(DETAILS_ELEMENT) build fails.
https://bugs.webkit.org/show_bug.cgi?id=107626
Reviewed by Kent Tamura.
No new tests, build configuration change.
* rendering/RenderObject.h:
(RenderObject): Added a missing condition.
2013-01-22 Dima Gorbik <dgorbik@apple.com>
Whitelist should also work for the WebVTT ::cue element without an argument
https://bugs.webkit.org/show_bug.cgi?id=107488
Reviewed by Andreas Kling.
Apply filtering if the cue shadow pseudoId is set on the selector.
Existing tests were modified to cover this case.
* css/RuleSet.cpp:
(WebCore::determinePropertyWhitelistType):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::createSubtrees):
* html/track/TextTrackCue.h:
(WebCore::TextTrackCue::cueShadowPseudoId):
2013-01-22 Hayato Ito <hayato@chromium.org>
Make MediaQueryEvaluator(bool) constructor explicit.
https://bugs.webkit.org/show_bug.cgi?id=107620
Reviewed by Hajime Morita.
No new tests: no change in behavior.
* css/MediaQueryEvaluator.h:
(MediaQueryEvaluator):
2013-01-22 Anders Carlsson <andersca@apple.com>
Use a platform strategy for local storage
https://bugs.webkit.org/show_bug.cgi?id=107600
Reviewed by Andreas Kling.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Add new files.
* platform/PlatformStrategies.h:
Add a way to create/get the storage strategy.
* storage/StorageNamespace.cpp:
(WebCore::StorageNamespace::localStorageNamespace):
(WebCore::StorageNamespace::sessionStorageNamespace):
Call the storage strategy.
* storage/StorageNamespace.h:
* storage/StorageStrategy.cpp: Added.
(WebCore::StorageStrategy::localStorageNamespace):
(WebCore::StorageStrategy::sessionStorageNamespace):
Call through to StorageNamespaceImpl.
* storage/StorageStrategy.h: Added.
2013-01-22 Jun Jiang <jun.a.jiang@intel.com>
Optimize the texture packing for texImage2D() and texSubImage2D() in WebGL
https://bugs.webkit.org/show_bug.cgi?id=105821
Reviewed by Kenneth Russell.
The original texture packing code uses function pointers to denote each unpack and pack operations for different combination of Source formats,
Destination formats and Alpha Operations. It could be made cleaner and simpler. In this patch, template functions are used and try best to avoid
generating useless code for unreachable path to avoid code bloat. Moreover, the flipY operation is moved into the pack operation instead of
operating in a standalone method to improve performance.
Already covered by current test.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::texImage2DImpl):
(WebCore::WebGLRenderingContext::texSubImage2DImpl):
* platform/graphics/GraphicsContext3D.cpp:
(WebCore::GraphicsContext3D::packImageData):
(WebCore::GraphicsContext3D::extractImageData):
(WebCore::GraphicsContext3D::extractTextureData):
(WebCore):
(WebCore::GraphicsContext3D::packPixels):
* platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::srcFormatComeFromDOMElementOrImageData):
(GraphicsContext3D):
(WebCore::GraphicsContext3D::ImageExtractor::imageSourceFormat):
(ImageExtractor):
* platform/graphics/cairo/GraphicsContext3DCairo.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
* platform/graphics/cg/GraphicsContext3DCG.cpp:
(WebCore::getSourceDataFormat):
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
* platform/graphics/skia/GraphicsContext3DSkia.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
2013-01-21 Kentaro Hara <haraken@chromium.org>
Implement UIEvent constructor
https://bugs.webkit.org/show_bug.cgi?id=107430
Reviewed by Adam Barth.
Editor's draft: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm
UIEvent constructor is implemented under a DOM4_EVENTS_CONSTRUCTOR flag,
which is enabled on Safari and Chromium for now.
Test: fast/events/constructors/ui-event-constructor.html
* Configurations/FeatureDefines.xcconfig:
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* bindings/scripts/test/V8/V8TestInterface.h:
(V8TestInterface):
* dom/UIEvent.cpp:
(WebCore::UIEventInit::UIEventInit):
(WebCore):
(WebCore::UIEvent::UIEvent):
* dom/UIEvent.h:
(WebCore):
(UIEventInit):
(UIEvent):
(WebCore::UIEvent::create):
(WebCore::UIEvent::view):
(WebCore::UIEvent::detail):
(FocusInEventDispatchMediator):
(FocusOutEventDispatchMediator):
* dom/UIEvent.idl:
2013-01-22 Joshua Bell <jsbell@chromium.org>
IndexedDB: Remove IDBKey from WebKitIDL
https://bugs.webkit.org/show_bug.cgi?id=97375
Reviewed by Kentaro Hara.
Now that references to the artificial IDBKey type have been removed from all IDLs, remove
the support code, and move the conversion code into the IDBBindingUtilities. Removes
references to the autogenerated {V8,JS}IDBKey{Custom,}.{cpp,h} from the project files.
No new tests - just code moves/removing unused code. Updated binding reference test results.
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Modules/indexeddb/IDBKey.idl: Removed.
* Target.pri:
* UseJSC.cmake:
* UseV8.cmake:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::toJS): Moved here from JSIDBKeyCustom.cpp
(WebCore):
* bindings/js/JSIDBKeyCustom.cpp: Removed.
* bindings/scripts/CodeGeneratorJS.pm:
(JSValueToNative):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateFunctionCallString):
(GetNativeType):
(JSValueToNative):
* bindings/scripts/test/CPP/WebDOMTestObj.cpp:
* bindings/scripts/test/CPP/WebDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
* bindings/scripts/test/TestObj.idl: Removed IDBKey-specific test.
* bindings/scripts/test/V8/V8TestObj.cpp:
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::toV8): Moved here from V8IDBKeyCustom.cpp
(WebCore):
* bindings/v8/custom/V8IDBKeyCustom.cpp: Removed.
2013-01-22 Tony Gentilcore <tonyg@chromium.org>
Fix assertions in make8BitFrom16BitSource() with threaded parser
https://bugs.webkit.org/show_bug.cgi?id=107596
Reviewed by Adam Barth.
This fixes an assertion in several fast/parser tests. We need to keep track of whether the data is all 8bit.
Luckily this doesn't cost us any size on CompactHTMLToken because the bitfields are collapsed (verified by COMPILE_ASSERT).
No new tests because covered by existing fast/parser tests.
* html/parser/CompactHTMLToken.cpp:
(WebCore::CompactHTMLToken::CompactHTMLToken):
* html/parser/CompactHTMLToken.h:
(WebCore::CompactHTMLToken::isAll8BitData):
(CompactHTMLToken):
* html/parser/HTMLToken.h:
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
2013-01-22 Tony Gentilcore <tonyg@chromium.org>
Fix ASSERT(!hasInsertionPoint()) in threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=107593
Reviewed by Adam Barth.
Prior to this patch, several fast/parser tests hit ASSERT(!hasInsertionPoint()) in prepareToStopParsing().
That was because hasInsertionPoint() checks m_input.haveSeenEndOfFile() which was skipped for the threaded
parser case. This patch causes us to call markEndOfFile().
No new tests because covered by existing fast/parser tests.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser): This FIXME was done in a previous patch.
(WebCore::HTMLDocumentParser::finish):
2013-01-22 Joshua Bell <jsbell@chromium.org>
Prevent race condition during Worker shutdown
https://bugs.webkit.org/show_bug.cgi?id=107577
Reviewed by Dmitry Titov.
During worker shutdown, from the main thread a cleanup task is posted followed by
terminating the message queue, which prevents further tasks from being processed. It was
possible for another task be posted by another thread between the main thread calls
to postTask and terminate(), which would cause that task to run after cleanup. Expose
a new WTF::MessageQueue::appendAndKill() method which keeps a mutex around the two steps,
and use that during worker shutdown.
No reliable tests for the race - problem identified by inspection of user crash stacks.
* workers/WorkerRunLoop.cpp:
(WebCore::WorkerRunLoop::postTaskAndTerminate): New method, uses MessageQueue::appendAndKill()
* workers/WorkerRunLoop.h:
* workers/WorkerThread.cpp:
(WebCore::WorkerThread::stop): Uses postTaskAndTerminate() to avoid race.
2013-01-22 Tony Chang <tony@chromium.org>
Unreviewed, rolling out r140171.
http://trac.webkit.org/changeset/140171
https://bugs.webkit.org/show_bug.cgi?id=107193
Regressed scrollable region size in other cases.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::simplifiedLayout):
2013-01-22 Alexey Proskuryakov <ap@apple.com>
[WK2] WebProcessService is not terminated when page is closed
https://bugs.webkit.org/show_bug.cgi?id=107595
Reviewed by Anders Carlsson.
* platform/mac/RunLoopMac.mm: (WebCore::RunLoop::stop): Allow stopping XPC service
run loop. Also, harmonized NSApp vs. [NSApplication sharedApplication] usage.
2013-01-22 Ojan Vafai <ojan@chromium.org>
REGRESION(r130774): preferred width of tables does not take max-width into account
https://bugs.webkit.org/show_bug.cgi?id=107576
Reviewed by Tony Chang.
Constrain preferred widths by min/max the way we do in other
RenderBlock subclasses. Eventually, we'll shared the code with
RenderBlock, but this is an incremental step in that direction
that we can safely merge into release branches.
Test: fast/table/min-max-width-preferred-size.html
* rendering/RenderTable.cpp:
(WebCore::RenderTable::computePreferredLogicalWidths):
2013-01-22 Adam Barth <abarth@webkit.org>
The BackgroundHTMLParser shouldn't pause when waiting for scripts
https://bugs.webkit.org/show_bug.cgi?id=107584
Reviewed by Eric Seidel.
Previously, the BackgroundHTMLParser would pause itself when it
encountered a scrip tag and wait for a signal from the main thread to
continue. After this patch, the BackgroundHTMLParser continues ahead
and the main thread keeps a queue of pending tokens.
This patch brings us closer to speculative parsing because when the
BackgroundHTMLParser is continuing ahead, it is speculating that it is
in the correct state. A future patch will let us abort incorret
speculations and resume from an eariler point in the input stream.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::checkThatTokensAreSafeToSendToAnotherThread):
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::simulateTreeBuilder):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(WebCore::TokenDelivery::TokenDelivery):
(TokenDelivery):
(WebCore::TokenDelivery::execute):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):
* html/parser/CompactHTMLToken.h:
(WebCore):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
(WebCore):
(WebCore::HTMLDocumentParser::processTokensFromBackgroundParser):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
2013-01-22 Simon Fraser <simon.fraser@apple.com>
Fix scrollperf logging
https://bugs.webkit.org/show_bug.cgi?id=107589
Reviewed by Tim Horton.
The scrollperf logging had two issues:
1. It relied on a paint logging a "filled" event, but it's possible
for existing tiles to be moved into the viewport and filling it, so
we need to log from the scrolling thread both when we have unfilled pixels,
and when the last scroll revealed unfilled pixels.
2. On some pages, z-index:-1 elements behind the body cause the root
TileCache to have drawsContent set to false, so none of its tiles paint. In
that case, the check for a non-zero paintCount in TileCache::blankPixelCountForTiles()
was wrong; we don't think there's a way to have an unpainted tile in the tree.
Also fix the signature of blankPixelCountForTiles() to take references.
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
(ScrollingTreeScrollingNodeMac):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
(WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
* platform/graphics/ca/mac/TileCache.h:
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::blankPixelCountForTiles):
2013-01-22 Eric Seidel <eric@webkit.org>
Make CompactHTMLToken a little more compact
https://bugs.webkit.org/show_bug.cgi?id=107317
Reviewed by Adam Barth.
The windows builders got sad because MSVC won't combine
adjacent bit-fields with different types. Changing
bool to unsigned should fix the problem.
* html/parser/CompactHTMLToken.h:
(CompactHTMLToken):
2013-01-22 Anthony Scian <ascian@rim.com>
[Blackberry] Static code analysis warning fixes
https://bugs.webkit.org/show_bug.cgi?id=107464
Reviewed by Rob Buis.
Klocwork issues: 1367, 2367
- add NULL pointer checks detected by static code analysis
* platform/blackberry/WidgetBlackBerry.cpp:
(WebCore::Widget::setCursor):
* plugins/blackberry/PluginViewBlackBerry.cpp:
(WebCore::PluginView::updatePluginWidget):
2013-01-22 Joseph Pecoraro <pecoraro@apple.com>
[Mac] Enable Page Visibility (PAGE_VISIBILITY_API)
https://bugs.webkit.org/show_bug.cgi?id=107230
Reviewed by David Kilzer.
No new tests. Covered by existing tests which are now unskipped.
* Configurations/FeatureDefines.xcconfig:
2013-01-22 Tony Gentilcore <tonyg@chromium.org>
Make BackgroundHTMLParser track line/column numbers
https://bugs.webkit.org/show_bug.cgi?id=107561
Reviewed by Adam Barth.
No new tests because covered by existing fast/parser tests.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::pumpTokenizer):
* html/parser/CompactHTMLToken.cpp:
(WebCore::CompactHTMLToken::CompactHTMLToken):
* html/parser/CompactHTMLToken.h:
(CompactHTMLToken):
(WebCore::CompactHTMLToken::textPosition):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
(WebCore::HTMLDocumentParser::lineNumber):
(WebCore::HTMLDocumentParser::textPosition):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
2013-01-22 Alec Flett <alecflett@chromium.org>
IndexedDB: Don't assert when deprecated setCallbacks is called
https://bugs.webkit.org/show_bug.cgi?id=107580
Reviewed by Tony Chang.
Remove an assert for IDBTransactionBackendImpl that was deprecated
in a previous commit, but is still called by old chromium code.
After the chromium code is removed, this method will be removed
entirely.
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(WebCore::IDBTransactionBackendImpl::setCallbacks):
2013-01-22 Zan Dobersek <zandobersek@gmail.com>
[GTK] Disable CSS Regions in release builds
https://bugs.webkit.org/show_bug.cgi?id=106541
Reviewed by Martin Robinson.
The CSS Regions feature is not yet deemed stable enough to be enabled
in release builds, so disable it. It's still enabled for development
builds, via FeatureList.pm.
No new tests - no testable changes.
* GNUmakefile.features.am.in:
2013-01-22 Zan Dobersek <zandobersek@gmail.com>
[GTK] Enable the <template> element support in development builds
https://bugs.webkit.org/show_bug.cgi?id=106575
Reviewed by Martin Robinson.
Add a missing build target that contains the custom JS bindings.
No new tests - the related tests are being unskipped and mostly pass.
* GNUmakefile.list.am:
2013-01-22 Joshua Bell <jsbell@chromium.org>
IndexedDB: Remove dependency on IDBKey type from IDLs
https://bugs.webkit.org/show_bug.cgi?id=106912
Reviewed by Kentaro Hara.
This is a preamble to wkbug.com/97375 "Remove IDBKey from WebKitIDL"; IDBKey is
not a concept from the Indexed DB spec but a convenient internal type. It was
exposed in the IDL with custom binding code and special cases in the generator
to map from script values to the WebCore type. To remove those special cases
and match the WebIDL in the spec, the IDLs are changed to use "any" and the
implementations now take ScriptValues. This does mean that each call site must
call into IDBBindingUtilities to map from ScriptValue to IDBKey.
No new tests - just a refactor.
* Modules/indexeddb/IDBAny.cpp: Remove IDBKey as a variant type - just use ScriptValue.
* Modules/indexeddb/IDBAny.h:
(WebCore):
(IDBAny):
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::continueFunction): Now takes any/ScriptValue.
(WebCore):
* Modules/indexeddb/IDBCursor.h:
(WebCore::IDBCursor::continueFunction):
(IDBCursor):
* Modules/indexeddb/IDBCursor.idl:
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::deleteFunction):
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::cmp): Now takes any/ScriptValue.
* Modules/indexeddb/IDBFactory.h:
(IDBFactory):
* Modules/indexeddb/IDBFactory.idl:
* Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::openCursor): Now takes any/ScriptValue.
(WebCore::IDBIndex::count): Now takes any/ScriptValue.
(WebCore::IDBIndex::openKeyCursor): Now takes any/ScriptValue.
(WebCore::IDBIndex::get): Now takes any/ScriptValue.
(WebCore::IDBIndex::getKey): Now takes any/ScriptValue.
* Modules/indexeddb/IDBIndex.h:
(WebCore::IDBIndex::openCursor):
(IDBIndex):
(WebCore::IDBIndex::openKeyCursor):
* Modules/indexeddb/IDBIndex.idl:
* Modules/indexeddb/IDBKeyRange.cpp:
(WebCore::IDBKeyRange::create): Add helper for back-end creation of single-key ranges.
(WebCore):
(WebCore::IDBKeyRange::lowerValue): Impl. of new "any" type accessor exposed to script.
(WebCore::IDBKeyRange::upperValue): Ditto.
(WebCore::IDBKeyRange::only): Now takes any/ScriptValue.
(WebCore::IDBKeyRange::lowerBound): Now takes any/ScriptValue.
(WebCore::IDBKeyRange::upperBound): Now takes any/ScriptValue.
(WebCore::IDBKeyRange::bound): Now takes any/ScriptValue.
* Modules/indexeddb/IDBKeyRange.h:
(IDBKeyRange):
(WebCore::IDBKeyRange::lowerBound):
(WebCore::IDBKeyRange::upperBound):
(WebCore::IDBKeyRange::bound):
* Modules/indexeddb/IDBKeyRange.idl:
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::get): Now takes any/ScriptValue.
(WebCore::IDBObjectStore::add): Now takes any/ScriptValue.
(WebCore):
(WebCore::IDBObjectStore::put): Now takes any/ScriptValue.
(WebCore::IDBObjectStore::deleteFunction): Now takes any/ScriptValue.
(WebCore::IDBObjectStore::openCursor): Now takes any/ScriptValue.
(WebCore::IDBObjectStore::count): Now takes any/ScriptValue.
* Modules/indexeddb/IDBObjectStore.h:
(IDBObjectStore):
(WebCore::IDBObjectStore::openCursor):
* Modules/indexeddb/IDBObjectStore.idl:
* Modules/indexeddb/IDBRequest.cpp: Result IDBAny type is now ScriptValue.
(WebCore::IDBRequest::onSuccess):
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::scriptValueToIDBKey): The inverse of idbKeyToScriptValue().
(WebCore):
* bindings/js/IDBBindingUtilities.h:
(WebCore):
* bindings/js/JSIDBAnyCustom.cpp:
(WebCore::toJS):
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::scriptValueToIDBKey): Ditto.
(WebCore):
* bindings/v8/IDBBindingUtilities.h:
(WebCore):
* bindings/v8/custom/V8IDBAnyCustom.cpp:
(WebCore::toV8): Remove IDBKey variant type.
2013-01-22 Justin Schuh <jschuh@chromium.org>
TRANSFORMATION_MATRIX_USE_X86_64_SSE2 broken for 64-bit Windows builds
https://bugs.webkit.org/show_bug.cgi?id=107498
Reviewed by James Robinson.
Enable TRANSFORMATION_MATRIX_USE_X86_64_SSE2 for 64-bit Windows.
No new tests. Covered by existing tests.
* platform/graphics/transforms/TransformationMatrix.h:
(WebCore):
(TransformationMatrix):
2013-01-22 Min Qin <qinmin@chromium.org>
Fix a race condition on SkBitmap::lockPixels()/unlockPixels() for lazy image decoding
https://bugs.webkit.org/show_bug.cgi?id=107404
Reviewed by Stephen White.
Skbitmap::lockPixels()/unlockPixels() are not threadsafe.
unlike SkPixelRef, these 2 calls are not protected by an internal mutex.
Bugfix, no behaviral change and hard to test as tests will be flaky.
* platform/graphics/chromium/ImageDecodingStore.cpp:
(WebCore::ImageDecodingStore::lockCache):
(WebCore::ImageDecodingStore::unlockCache):
(WebCore::ImageDecodingStore::insertAndLockCache):
(WebCore::ImageDecodingStore::overwriteAndLockCache):
* platform/graphics/chromium/ImageDecodingStore.h:
(ImageDecodingStore):
2013-01-22 Eric Seidel <eric@webkit.org>
Make CompactHTMLToken a little more compact
https://bugs.webkit.org/show_bug.cgi?id=107317
Reviewed by Darin Adler.
Reduce the size of CompactHTMLToken by two pointers.
The abuse of the attribute vector to store the DOCTYPE strings
is kinda lame, but makes a lot of sense given how rare DOCTYPE tokens are.
The resulting CompactHTMLToken vector should be a smaller malloc and thus faster.
However I saw no perf change on html-parser-srcdoc.html.
* html/parser/CompactHTMLToken.cpp:
(SameSizeAsCompactHTMLToken):
(WebCore):
(WebCore::CompactHTMLToken::CompactHTMLToken):
(WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
* html/parser/CompactHTMLToken.h:
(WebCore::CompactHTMLToken::type):
(CompactHTMLToken):
(WebCore::CompactHTMLToken::publicIdentifier):
(WebCore::CompactHTMLToken::systemIdentifier):
2013-01-22 Elliott Sprehn <esprehn@chromium.org>
Assertion parent->inDocument() failed in WebCore::PseudoElement::PseudoElement
https://bugs.webkit.org/show_bug.cgi?id=106224
Reviewed by Ojan Vafai.
Appending a node that contains a <style> and also elements that should have
generated content can cause us to create PseudoElements in nodes that are not
yet inDocument because we may recalcStyle in HTMLStyleElement::insertedInto
triggering a reattach() which could then traverse into the siblings of the
<style> attaching them even though they are not yet inDocument.
This means that we should not assert about the parent of a PseudoElement
being inDocument as this is not always the case.
Instead forward Node::insertedInto and removedFrom notifications to
PseudoElements so they will correctly get their inDocument bit set. Nothing
in the code appears to depend on them being inDocument we just make sure to
set it so they're consistent with the rest of the document.
No new tests, there's no way to test that PseudoElements are really inDocument.
* dom/Element.cpp:
(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::PseudoElement):
2013-01-22 Alexis Menard <alexis@webkit.org>
Allow construction of unprefixed transition DOM events.
https://bugs.webkit.org/show_bug.cgi?id=107319
Reviewed by Dean Jackson.
Make possible to construct unprefixed DOM events for transitions.
Unfortunately I have to duplicate the C++ implementation class of the
events (TransitionEvent.h and TransitionEvent.cpp). I can't find a
better way to re-use the WebKitTransitionEvent class to back the
TransitionEvent.idl as our code generators don't allow to have a
different name for the C++ class used in the generated file than the
interface name specified in the IDL file. Unfortunately
https://trac.webkit.org/wiki/WebKitIDL#InterfaceName doesn't help as
it's only a way to unlink the interface name specified in the IDL with
the one exposed in JavaScript. I don't think we should support such a
feature in our code generators as WebKitTransitionEvent class and more
exactly prefixed DOM events for transitions will be removed one day so
this use case will become obselete.
Test: fast/events/constructors/transition-event-constructor.html
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/DOMAllInOne.cpp:
* dom/EventNames.in:
* dom/TransitionEvent.cpp: Added.
(WebCore):
(WebCore::TransitionEventInit::TransitionEventInit):
(WebCore::TransitionEvent::TransitionEvent):
(WebCore::TransitionEvent::~TransitionEvent):
(WebCore::TransitionEvent::propertyName):
(WebCore::TransitionEvent::elapsedTime):
(WebCore::TransitionEvent::interfaceName):
* dom/TransitionEvent.h: Added.
(WebCore):
(TransitionEventInit):
(TransitionEvent):
(WebCore::TransitionEvent::create):
* dom/TransitionEvent.idl: Added.
* page/DOMWindow.idl:
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle): always
create a TransitionEvent now. EventTarget will be responsible to create
a WebKitTransitionEvent if necessary.
2013-01-22 Adam Barth <abarth@webkit.org>
Wean BackgroundHTMLParser off HTMLInputStream
https://bugs.webkit.org/show_bug.cgi?id=107575
Reviewed by Eric Seidel.
The BackgroundHTMLParser doesn't need to use HTMLInputStream because it
doesn't need to handle nested calls to document.write. Instead, we can
just use a SegmentedString directly, which will let us checkpoint
m_input for speculation.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::append):
(WebCore::BackgroundHTMLParser::finish):
(WebCore::BackgroundHTMLParser::markEndOfFile):
(WebCore):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):
2013-01-22 Sergio Villar Senin <svillar@igalia.com>
[Soup] Random thread crashes
https://bugs.webkit.org/show_bug.cgi?id=107439
Reviewed by Martin Robinson.
Process all pending requests in the inner GMainContext created to
perform synchronous requests before restoring the thread default. No
new tests required, already covered by network tests.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::WebCoreSynchronousLoader::~WebCoreSynchronousLoader):
2013-01-22 Christophe Dumez <christophe.dumez@intel.com>
[gstreamer] GstBus signal watch should be removed on clean up
https://bugs.webkit.org/show_bug.cgi?id=107544
Reviewed by Philippe Normand.
Our gstreamer backend code currently calls gst_bus_add_signal_watch()
on GstBus to add a signal watch. As per the gstreamer documentation,
"To clean up, the caller is responsible for calling
gst_bus_remove_signal_watch() as many times as this function is
called". This is because gst_bus_add_signal_watch() causes the GstBus
object to be ref'd and gst_bus_remove_signal_watch() needs to be
called to properly unref it.
This patch makes sure that gst_bus_remove_signal_watch() is called
on the GstBus object when cleaning up. This patch also uses smart
pointers for GstBus objects for consistency.
No new tests, no behavior change for layout tests.
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
(WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::AudioFileReader::~AudioFileReader):
(WebCore::AudioFileReader::decodeAudioForBusCreation):
* platform/graphics/gstreamer/GStreamerGWorld.cpp:
(WebCore::GStreamerGWorld::GStreamerGWorld):
* platform/graphics/gstreamer/GStreamerVersioning.cpp:
(webkitGstPipelineGetBus):
* platform/graphics/gstreamer/GStreamerVersioning.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
2013-01-22 Adam Barth <abarth@webkit.org>
BackgroundHTMLParser should simulate tree building in a separate function
https://bugs.webkit.org/show_bug.cgi?id=107569
Reviewed by Eric Seidel.
This patch cleans up BackgroundHTMLParser::pumpTokenizer to prepare for
implementing speculative parsing.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::simulateTreeBuilder):
(WebCore):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):
* page/Settings.in:
2013-01-22 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140435.
http://trac.webkit.org/changeset/140435
https://bugs.webkit.org/show_bug.cgi?id=107565
Crashes on ClusterFuzz due to float not removed (Requested by
inferno-sec on #webkit).
* rendering/RenderBox.cpp:
(WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
2013-01-22 Robert Hogan <robert@webkit.org>
When we do setAttribute("border", null) on a table we should create a border like every other browser
https://bugs.webkit.org/show_bug.cgi?id=102112
Reviewed by Ryosuke Niwa.
http://www.whatwg.org/specs/web-apps/current-work/multipage/rendering.html#tables says:
"If the [table's border] attribute is present but parsing the attribute's value using the rules for parsing
non-negative integers generates an error, a default value of 1px is expected to be used for that property instead."
Match the spec and bring us into line with other browsers by observing the 'parsing non-negative integers' algorithm.
Tests: fast/dom/HTMLTableElement/table-with-invalid-border.html
fast/table/table-with-borderattr-null.html
fast/table/table-with-borderattr-set-to-null.html
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseBorderWidthAttribute):
(WebCore::HTMLElement::applyBorderAttributeToStyle):
* html/HTMLElement.h:
(HTMLElement):
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::collectStyleForPresentationAttribute):
(WebCore::HTMLTableElement::parseAttribute):
2013-01-22 Abhishek Arya <inferno@chromium.org>
Heap-use-after-free in WebCore::RenderObject::isDescendantOf
https://bugs.webkit.org/show_bug.cgi?id=107226
Reviewed by Emil A Eklund.
Test: fast/block/float/overhanging-float-not-removed-crash.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
Skip anonymous blocks in the chain to get the enclosing block and
be able to correctly mark the overhanging floats in the next siblings.
2013-01-22 Justin Schuh <jschuh@chromium.org>
Silence MSVC 64-bit build warning c4309 for FrameTree::invalidCount
https://bugs.webkit.org/show_bug.cgi?id=107439
Reviewed by Dimitri Glazkov.
MSVC detects that the constant notFound is truncated on assignment to
invalidCount. Since we never compare them (as it would always fail on
64-bit anyway), just initialize invalidCount directly to -1.
No new tests. No behavior changed.
* page/FrameTree.h:
(FrameTree):
2013-01-22 Zan Dobersek <zdobersek@igalia.com>
[Autotools] Remove the Canvas Path configuration option
https://bugs.webkit.org/show_bug.cgi?id=107537
Reviewed by Martin Robinson.
No new tests - no new testable functionality.
* GNUmakefile.am: Remove the Automake conditional analysis, the related
configuration option is being removed as well.
* GNUmakefile.features.am.in: Add the ENABLE_CANVAS_PATH feature define,
defaulting to 0 in release builds (but is disabled in development builds
of the GTK port as well at the moment).
2013-01-18 Stephen Chenney <schenney@chromium.org>
Asserts when textPath is used with no path
https://bugs.webkit.org/show_bug.cgi?id=107324
Reviewed by Eric Seidel.
We assert when there is no path associated with an SVG text path
element. Instead, this patch detects the condition and stops trying to
layout text for that textPath element.
Test: svg/text/tpath-without-path.svg
* rendering/svg/SVGTextLayoutEngine.cpp:
(WebCore::SVGTextLayoutEngine::beginTextPathLayout):
(WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
2013-01-22 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] jump to prev/next drawing call in the replay
https://bugs.webkit.org/show_bug.cgi?id=107551
Reviewed by Pavel Feldman.
Implement jumping to the next(previous) drawing call in the WebGL and canvas 2D replay.
* English.lproj/localizedStrings.js:
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
* inspector/Inspector.json:
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView):
(WebInspector.CanvasProfileView.prototype.dispose):
(WebInspector.CanvasProfileView.prototype._onReplayDrawingCallClick):
* inspector/front-end/canvasProfiler.css:
(.canvas-replay-prev-draw img):
(.canvas-replay-next-draw img):
2013-01-22 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: remove asynchronous behavior from DTE paintLines method
https://bugs.webkit.org/show_bug.cgi?id=107550
Reviewed by Pavel Feldman.
Remove paintLinesOperationCredit and all asynchronous behaviour from paintLines method;
also, remove paintLineChunks method.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype.expandChunks):
(WebInspector.TextEditorMainPanel.prototype._highlightDataReady):
(WebInspector.TextEditorMainPanel.prototype._paintLines):
(WebInspector.TextEditorMainPanel.prototype._renderRanges):
(WebInspector.TextEditorMainPanel.prototype._paintLine):
(WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
2013-01-22 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] "Secure" cookies can not be deleted.
https://bugs.webkit.org/show_bug.cgi?id=107543
Reviewed by Pavel Feldman.
To delete secure cookie URL schema need to be "https" instead of "http".
* inspector/front-end/CookieItemsView.js:
(WebInspector.CookieItemsView.prototype._deleteCookie):
Take care of secure cookies.
2013-01-22 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140420.
http://trac.webkit.org/changeset/140420
https://bugs.webkit.org/show_bug.cgi?id=107557
Still causes crashes (EFL this time) (Requested by kov on
#webkit).
* platform/graphics/gstreamer/GStreamerVersioning.cpp:
* platform/graphics/gstreamer/GStreamerVersioning.h:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(StreamingClient):
(_WebKitWebSrcPrivate):
(webKitWebSrcFinalize):
(webKitWebSrcStop):
(StreamingClient::didReceiveData):
* platform/network/ResourceHandleClient.h:
(ResourceHandleClient):
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
(ResourceHandleInternal):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::cleanupSoupRequestOperation):
(WebCore::nextMultipartResponsePartCallback):
(WebCore::sendRequestCallback):
(WebCore::readCallback):
2013-01-22 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Crash in PasteboardQt.cpp Pasteboard::writeSelection
https://bugs.webkit.org/show_bug.cgi?id=102192
Patch by Fabien Valée
Reviewed by Jocelyn Turcotte.
QClipboard::setMimeData transfers ownership of QMimeData to the clipboard,
so we should not access it afterwards.
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::writeSelection):
(WebCore::Pasteboard::writePlainText):
2013-01-22 Christophe Dumez <christophe.dumez@intel.com>
Regression(r140414): It is causing crashes with gstreamer 0.10
https://bugs.webkit.org/show_bug.cgi?id=107554
Reviewed by Philippe Normand.
gstreamer 0.10 doc led me to believe that gst_element_factory_make()
was not returning a floating reference. However, based on testing
(and results on Qt port) it does so we should NOT adopt the
returned GstElement object.
No new tests, already covered by existing tests.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2013-01-22 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: do not highlight really long lines in DTE.
https://bugs.webkit.org/show_bug.cgi?id=107531
Reviewed by Pavel Feldman.
Improve TextEditorHighlighter.orderedRangesPerLine method to return
only ranges that start before particular column.
Test: inspector/editor/text-editor-long-line.html
* inspector/front-end/TextEditorHighlighter.js:
(WebInspector.TextEditorHighlighter):
(WebInspector.TextEditorHighlighter.prototype.setHighlightLineLimit):
(WebInspector.TextEditorHighlighter.prototype.orderedRangesPerLine.comparator):
(WebInspector.TextEditorHighlighter.prototype.orderedRangesPerLine):
2013-01-22 Gustavo Noronha Silva <gustavo.noronha@collabora.com>
[GStreamer][Soup] Let GStreamer provide the buffer data is downloaded to, to avoid copying
https://bugs.webkit.org/show_bug.cgi?id=105552
Reviewed by Philippe Normand.
Makes it possible for the GStreamer media backend to provide the buffer to which
the Soup networking backend will use to download data to. This makes copying
memory unnecessary when ResourceHandle hands data over to the media player's
StreamingClient. Thanks to Dan Winship for help designing the interface.
No behaviour change, covered by existing tests.
* platform/graphics/gstreamer/GStreamerVersioning.cpp:
(createGstBufferForData): New helper to create a GstBuffer when
we have a data pointer and a length.
(getGstBufferSize): Abstract obtaining the size of the buffer, so the code
is cleaner while still working for both GST 0.10 and 1.0.
(setGstBufferSize): Ditto, but for setting the size.
(getGstBufferDataPointer): Ditto, but for grabbing the data pointer.
(mapGstBuffer): Convenience method to take care of mapping the buffer so that
we can provide the data pointer to ResourceHandle.
(unmapGstBuffer): Convenience method which takes care of unmapping the buffer
and properly freeing the GstMapInfo.
* platform/graphics/gstreamer/GStreamerVersioning.h:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(StreamingClient): New methods.
(_WebKitWebSrcPrivate): We now store the GstBuffer we provided the data pointer from
so we can later unmap it and push it to the pipeline.
(webKitWebSrcDispose): Deal with the GstBuffer in case it exists when the source is
destroyed.
(webKitWebSrcStop): Also clear the GstBuffer in this case.
(StreamingClient::didReceiveData): Handle the hand-over of the buffer.
(StreamingClient::getBuffer): Provide ResourceHandle with a new GstBuffer's data pointer.
* platform/network/ResourceHandleClient.h:
(ResourceHandleClient):
(WebCore::ResourceHandleClient::ResourceHandleClient): Constructor to initialize the buffer
member variable to 0.
(WebCore::ResourceHandleClient::~ResourceHandleClient): Destructor to free the buffer if it
has been allocated.
(WebCore::ResourceHandleClient::getBuffer): Default implementation which returns a
newly allocated char pointer.
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
(ResourceHandleInternal): Store actual buffer size, which is no longer a constant.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::cleanupSoupRequestOperation): Clear the buffer pointer, the life-cycle of the
buffer is handled by the ResourceHandleClient.
(WebCore::nextMultipartResponsePartCallback): Get a new buffer from the client before reading.
(WebCore::sendRequestCallback): Ditto.
(WebCore::readCallback): Ditto.
2013-01-22 Michał Pakuła vel Rutka <m.pakula@samsung.com>
[EFL] Fix context menu localized string
https://bugs.webkit.org/show_bug.cgi?id=107536
One of localized string has a marker. Since EFL port does not support them
it has to be removed, so the string will be displayed properly.
Reviewed by Laszlo Gombos.
* platform/efl/LocalizedStringsEfl.cpp:
(WebCore::contextMenuItemTagCheckSpellingWhileTyping)
2013-01-22 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140412.
http://trac.webkit.org/changeset/140412
https://bugs.webkit.org/show_bug.cgi?id=107549
Broke rendering of buttons on gmail (Requested by carewolf on
#webkit).
* platform/graphics/qt/TransparencyLayer.h:
(WebCore::TransparencyLayer::TransparencyLayer):
2013-01-22 Christophe Dumez <christophe.dumez@intel.com>
[gstreamer] MediaPlayerPrivateGStreamer should take ownership of the playbin
https://bugs.webkit.org/show_bug.cgi?id=107445
Reviewed by Philippe Normand.
In gstreamer 1.0, gst_element_factory_make() now returns a floating reference.
MediaPlayerPrivateGStreamer calls gst_element_factory_make() to create the
playbin object but does not take ownership of the object. As a consequence,
the object keeps floating until it is unref'd in the
MediaPlayerPrivateGStreamer destructor.
This patch uses a GRefPtr<GstElement> to store the playbin object and only
adopt the object returned by gst_element_factory_make() if gstreamer 0.10
is used. When gstreamer 1.0 is used, the returned object will not be adopted,
which will remove the floating reference. This way, we ensure that the
playbin object is owned by MediaPlayerPrivateGStreamer.
No new tests, no behavior change for layout tests.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::load):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition):
(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
(WebCore::MediaPlayerPrivateGStreamer::duration):
(WebCore::MediaPlayerPrivateGStreamer::seek):
(WebCore::MediaPlayerPrivateGStreamer::paused):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio):
(WebCore::MediaPlayerPrivateGStreamer::setVolume):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVolumeChange):
(WebCore::MediaPlayerPrivateGStreamer::setRate):
(WebCore::MediaPlayerPrivateGStreamer::buffered):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(MediaPlayerPrivateGStreamer):
2013-01-22 Yury Semikhatsky <yurys@chromium.org>
Unreviewed. Fix closure compiler warning in inspector front-end after r140390.
* inspector/front-end/HeapSnapshotView.js:
2013-01-22 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Box shadows on a transparency layer is very slow
https://bugs.webkit.org/show_bug.cgi?id=107547
Reviewed by Noam Rosenthal.
Set an initial clip on the transparency layer, so that the clipping
bounds will never end up larger than the layer.
* platform/graphics/qt/TransparencyLayer.h:
(WebCore::TransparencyLayer::TransparencyLayer):
2013-01-22 Matt Falkenhagen <falken@chromium.org>
Move top layer flag from ElementRareData to NodeFlags
https://bugs.webkit.org/show_bug.cgi?id=107542
Reviewed by Hajime Morita.
This is a speculative fix for a perf regression (https://bugs.webkit.org/show_bug.cgi?id=106726)
likely due to checking the top layer flag in Element::removedFrom. It
also simplifies code dealing with top layer and makes it no longer
necessary to allocate rare data for top layer.
* dom/Element.cpp:
(WebCore::Element::removedFrom): Check isInTopLayer first in case it helps fix the perf regression.
(WebCore):
* dom/Element.h: Move top layer functions from Element to Node.
* dom/ElementRareData.h:
(ElementRareData):
(WebCore::ElementRareData::ElementRareData): Remove top layer flag from ElementRareData.
* dom/Node.cpp: Move top layer functions from Element to Node.
(WebCore):
(WebCore::Node::setIsInTopLayer):
* dom/Node.h:
(Node):
(WebCore::Node::isInTopLayer):
* dom/NodeRenderingContext.cpp: Remove unnecessary casts to Element for isInTopLayer().
(WebCore::isRendererReparented):
(WebCore::NodeRenderingContext::previousRenderer):
(WebCore::NodeRenderingContext::parentRenderer):
* rendering/RenderLayer.cpp: Ditto.
(WebCore::RenderLayer::isInTopLayer):
(WebCore::RenderLayer::rebuildZOrderLists):
2013-01-22 Mark Lam <mark.lam@apple.com>
Fix broken mac builds due to <http://trac.webkit.org/changeset/140399>.
https://bugs.webkit.org/show_bug.cgi?id=100710.
Not reviewed.
No new tests.
* WebCore.xcodeproj/project.pbxproj:
2013-01-22 Dan Carney <dcarney@google.com>
[v8] Convert string conversion calls to one byte versions
https://bugs.webkit.org/show_bug.cgi?id=107524
Reviewed by Kentaro Hara.
No new tests. No change in functionality.
* bindings/v8/SerializedScriptValue.cpp:
* bindings/v8/V8StringResource.cpp:
(WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
(StringTraits):
(WebCore::true):
(WebCore::v8StringToWebCoreString):
2013-01-22 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] CookiesTable refactoring.
https://bugs.webkit.org/show_bug.cgi?id=107511
Reviewed by Pavel Feldman.
CookiesTable uses integer indexes as column identifiers.
This leads to cryptic code.
Descriptive column identifiers will make code clearer.
Also "addCookiesFolder" replaced with "setCookieFolders" to avoid
repetitive "_rebuildTable" invocation.
* inspector/front-end/CookiesTable.js:
(WebInspector.CookiesTable): Use descriptive column identifiers.
(WebInspector.CookiesTable.prototype.setCookieFolders):
Accept multiple folders.
(WebInspector.CookiesTable.prototype._rebuildTable):
Use descriptive column identifiers.
(WebInspector.CookiesTable.prototype._sortCookies):
Ditto.
(WebInspector.CookiesTable.prototype._createGridNode):
Ditto.
* inspector/front-end/RequestCookiesView.js:
(WebInspector.RequestCookiesView.prototype._buildCookiesTable):
Use "setCookieFolders".
2013-01-22 Zan Dobersek <zdobersek@igalia.com>
[GTK] Disable support for unprefixed CSS animations, transitions, transforms in release builds
https://bugs.webkit.org/show_bug.cgi?id=107436
Reviewed by Alexis Menard.
Disable the unprefixed CSS animations, transitions and transforms support
in the release builds for now. The work in this area is not yet complete
and should not ship in such state.
No new tests - no new functionality.
* GNUmakefile.features.am.in:
2013-01-22 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [REGRESSION] SASSSourceMapping broken: _bindUISourceCode method is absent
https://bugs.webkit.org/show_bug.cgi?id=107529
Reviewed by Pavel Feldman.
* inspector/front-end/SASSSourceMapping.js:
(WebInspector.SASSSourceMapping.prototype._fileSaveFinished):
2013-01-22 Adam Barth <abarth@webkit.org>
AtomicMarkupTokenBase must die
https://bugs.webkit.org/show_bug.cgi?id=107513
Reviewed by Eric Seidel.
Now that NEW_XML has been removed from the tree, there is no reason to
have AtomicMarkupTokenBase exist as a templated base class for
AtomicHTMLToken. This patch just merges the code back into
AtomicHTMLToken.
* html/parser/HTMLToken.h:
(AtomicHTMLToken):
(WebCore::AtomicHTMLToken::type):
(WebCore::AtomicHTMLToken::name):
(WebCore::AtomicHTMLToken::setName):
(WebCore::AtomicHTMLToken::selfClosing):
(WebCore::AtomicHTMLToken::getAttributeItem):
(WebCore::AtomicHTMLToken::attributes):
(WebCore::AtomicHTMLToken::characters):
(WebCore::AtomicHTMLToken::charactersLength):
(WebCore::AtomicHTMLToken::isAll8BitData):
(WebCore::AtomicHTMLToken::comment):
(WebCore::AtomicHTMLToken::publicIdentifier):
(WebCore::AtomicHTMLToken::systemIdentifier):
(WebCore::AtomicHTMLToken::clearExternalCharacters):
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
(WebCore::AtomicMarkupTokenBase::initializeAttributes):
(WebCore):
* xml/parser/MarkupTokenBase.h:
2013-01-22 Eric Seidel <eric@webkit.org>
Turn on ENABLE_THREADED_HTML_PARSER for Chromium (it's still disabled at runtime)
https://bugs.webkit.org/show_bug.cgi?id=107519
Reviewed by Adam Barth.
Add some ASSERTs to be double-dog-sure that we're never using
any of the threading code when threading is not enabled.
I also removed an if-branch in the !ENABLE_THREADED_HTML_PARSER case
as it's not needed.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::prepareToStopParsing):
(WebCore::HTMLDocumentParser::startBackgroundParser):
(WebCore::HTMLDocumentParser::stopBackgroundParser):
2013-01-22 Kentaro Hara <haraken@chromium.org>
[V8] Make an Isolate parameter mandatory in toV8()
https://bugs.webkit.org/show_bug.cgi?id=107520
Reviewed by Adam Barth.
Now it's safe to remove an optional Isolate parameter.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* bindings/scripts/test/V8/V8Float64Array.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::toV8):
* css/MediaQueryListListener.cpp:
(WebCore::MediaQueryListListener::queryChanged):
* testing/v8/WebCoreTestSupport.cpp:
(WebCoreTestSupport::injectInternalsObject):
2013-01-22 Mihnea Ovidenie <mihnea@adobe.com>
[CSS Regions] min-max height will not trigger a relayout when set on a region with auto-height
https://bugs.webkit.org/show_bug.cgi?id=103738
Reviewed by David Hyatt.
When the style of an auto-height region changes with different min/max-height, we have to make sure
that the 2-pass layout algorithm is run so that the region height is properly computed. When doing a 2-pass layout
for auto-height regions, we have to make sure that in the first pass, all auto-height regions start without a previously
computed overrideLogicalContentHeight, otherwise we may end-up with incorrect results, illustrated by tests
autoheight-two-pass-layout-complex-001.html and autoheight-two-pass-layout-complex-002.html.
If we do not have auto height regions, a single pass layout in enough to correctly flow content inside regions.
When we have auto height regions, the algorithm to lay out content should be:
1. If the flow thread content does not need lay out, we do a single pass layout.
If during the layout, an auto-height region needs layout or a normal (not auto height) region changes its box dimensions,
we need to perform a new 2-pass layout after this layout completes. If not, we bail out and skip step 2.
2. Do a full two pass layout and make sure that all auto height regions start the 2-pass layout without a previously computed
override logical content height.
Tests: fast/regions/autoheight-region-decrease-maxheight.html
fast/regions/autoheight-region-decrease-minheight.html
fast/regions/autoheight-region-decrease-width.html
fast/regions/autoheight-region-increase-maxheight.html
fast/regions/autoheight-region-increase-minheight.html
fast/regions/autoheight-region-increase-width.html
fast/regions/autoheight-region-new-maxheight-vrl.html
fast/regions/autoheight-region-new-maxheight.html
fast/regions/autoheight-region-new-minheight-vlr.html
fast/regions/autoheight-region-new-minheight.html
fast/regions/autoheight-region-remove-maxheight.html
fast/regions/autoheight-region-remove-minheight.html
fast/regions/autoheight-two-pass-layout-complex-001.html
fast/regions/autoheight-two-pass-layout-complex-002.html
fast/regions/region-height-auto-to-defined.html
fast/regions/region-height-defined-to-auto.html
* rendering/FlowThreadController.cpp: Added a flag that is needed to mark whether we need a full 2-pass layout.
(WebCore::FlowThreadController::FlowThreadController):
* rendering/FlowThreadController.h:
(WebCore::FlowThreadController::needsTwoPassLayoutForAutoHeightRegions):
(WebCore::FlowThreadController::setNeedsTwoPassLayoutForAutoHeightRegions):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight): Use invalidateRegions because we need also to mark the flow thread as needing layout.
(WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::layout): Make sure we do a 2-pass layout if needed.
* rendering/RenderView.cpp:
(WebCore::RenderView::layoutContentInAutoLogicalHeightRegions): Added a new function that models the layout algorithm for the case when we have auto height regions
and flow threads.
(WebCore::RenderView::layout):
(WebCore::RenderView::checkTwoPassLayoutForAutoHeightRegions):
* rendering/RenderView.h:
2013-01-22 Adam Barth <abarth@webkit.org>
ENABLE(NEW_XML) isn't used by anyone and no one is actively working on it
https://bugs.webkit.org/show_bug.cgi?id=100710
Reviewed by Eric Seidel.
As discussed on webkit-dev
<http://lists.webkit.org/pipermail/webkit-dev/2012-August/022103.html>,
ENABLE(NEW_XML) isn't used by anyone and no one is actively working on
it. We should remove it from the code base for the time being. If folks
want to work on it again, we can restore it from SVN history.
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
(WebCore::Document::createParser):
* dom/DocumentFragment.cpp:
(WebCore::DocumentFragment::parseXML):
* xml/parser/NewXMLDocumentParser.cpp: Removed.
* xml/parser/NewXMLDocumentParser.h: Removed.
* xml/parser/XMLCharacterReferenceParser.cpp: Removed.
* xml/parser/XMLCharacterReferenceParser.h: Removed.
* xml/parser/XMLToken.h: Removed.
* xml/parser/XMLTokenizer.cpp: Removed.
* xml/parser/XMLTokenizer.h: Removed.
* xml/parser/XMLTreeBuilder.cpp: Removed.
* xml/parser/XMLTreeBuilder.h: Removed.
2013-01-22 Kentaro Hara <haraken@chromium.org>
[V8] Pass an Isolate to toV8() of event listeners
https://bugs.webkit.org/show_bug.cgi?id=107517
Reviewed by Adam Barth.
By using Context::GetIsolate(), this patch passes an Isolate to toV8().
I think this would be the last patch to pass an Isolate to toV8().
In the next patch, I will make an Isolate parameter mandatory for toV8().
No tests. No change in behavior.
* bindings/v8/V8AbstractEventListener.cpp:
(WebCore::V8AbstractEventListener::getReceiverObject):
* bindings/v8/V8AbstractEventListener.h:
(V8AbstractEventListener):
* bindings/v8/V8EventListener.cpp:
(WebCore::V8EventListener::callListenerFunction):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::toObjectWrapper):
(WebCore::V8LazyEventListener::callListenerFunction):
(WebCore::V8LazyEventListener::prepareListenerObject):
* bindings/v8/V8WorkerContextEventListener.cpp:
(WebCore::V8WorkerContextEventListener::getReceiverObject):
2013-01-22 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Build PDFPlugin everywhere, enable at runtime
https://bugs.webkit.org/show_bug.cgi?id=107117
Reviewed by Alexey Proskuryakov.
Since PDFLayerController SPI is all forward-declared, the plugin should build
on all Mac platforms, and can be enabled at runtime.
* Configurations/FeatureDefines.xcconfig:
2013-01-22 Dominic Mazzoni <dmazzoni@google.com>
AX: Should assert if we try to create two AXObjects that point to the same renderer or node
https://bugs.webkit.org/show_bug.cgi?id=107504
Reviewed by Chris Fleizach.
If two accessibility objects get created that point to the
same widget, renderer, or node, that can lead to crashes or
memory corruption later; make it assert instead of crashing.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
2013-01-22 Kentaro Hara <haraken@chromium.org>
[V8] Pass an Isolate to toV8()
https://bugs.webkit.org/show_bug.cgi?id=107512
Reviewed by Adam Barth.
By using Context::GetIsolate(), this patch passes an Isolate to toV8().
No tests. No change in behavior.
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::injectIDBKeyIntoScriptValue):
(WebCore::idbKeyToScriptValue):
* bindings/v8/ScriptController.cpp:
(WebCore::createScriptObject):
(WebCore::ScriptController::createScriptObjectForPluginElement):
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::currentCallFrame):
* bindings/v8/ScriptObject.cpp:
(WebCore::ScriptGlobalObject::set):
* bindings/v8/V8AbstractEventListener.cpp:
(WebCore::V8AbstractEventListener::handleEvent):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::updateDocumentProperty):
* bindings/v8/V8MutationCallback.cpp:
(WebCore::V8MutationCallback::handleEvent):
* bindings/v8/V8NodeFilterCondition.cpp:
(WebCore::V8NodeFilterCondition::acceptNode):
* bindings/v8/V8WorkerContextEventListener.cpp:
(WebCore::V8WorkerContextEventListener::handleEvent):
* bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
(WebCore::V8SQLStatementErrorCallback::handleEvent):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::InjectedScriptHost::nodeAsScriptValue):
2013-01-22 Sergey Ryazanov <serya@chromium.org>
Web Inspector: Show requests in `curl` syntax in DevTools → Network → Headers
https://bugs.webkit.org/show_bug.cgi?id=107276
Reviewed by Pavel Feldman.
Test: inspector/curl-command.html
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._generateCurlCommand):
2013-01-22 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: reuse JS heap profiler UI for native heap graph representaion
https://bugs.webkit.org/show_bug.cgi?id=107452
Reviewed by Pavel Feldman.
NativeHeapSnapshot is introduced to leverage JS heap snapshot processing algorithms
for native heap graph. New snapshot type ("Native Heap Snapshot") is added to the
profiles panel. It will represent native heap snapshots using the same UI as we use
for JS heap snapshots.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/HeapSnapshot.js:
(WebInspector.HeapSnapshot):
(WebInspector.HeapSnapshot.prototype._init):
* inspector/front-end/HeapSnapshotProxy.js:
(WebInspector.HeapSnapshotWorker):
* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapProfileHeader.prototype.load):
(WebInspector.HeapProfileHeader.prototype.startSnapshotTransfer): extracted a few methods
to support overrides for native heap snapshots.
(WebInspector.HeapProfileHeader.prototype.snapshotConstructorName):
(WebInspector.HeapProfileHeader.prototype._setupWorker):
* inspector/front-end/NativeHeapSnapshot.js: Added.
(WebInspector.NativeHeapSnapshot):
(WebInspector.NativeHeapSnapshot.prototype.createNode):
(WebInspector.NativeHeapSnapshot.prototype.createEdge):
(WebInspector.NativeHeapSnapshot.prototype.createRetainingEdge):
(WebInspector.NativeHeapSnapshot.prototype._markInvisibleEdges):
(WebInspector.NativeHeapSnapshot.prototype._calculateFlags):
(WebInspector.NativeHeapSnapshot.prototype.canHaveDistanceOne):
(WebInspector.NativeHeapSnapshot.prototype.userObjectsMapAndFlag):
(WebInspector.NativeHeapSnapshotNode):
(WebInspector.NativeHeapSnapshotNode.prototype.canBeQueried):
(WebInspector.NativeHeapSnapshotNode.prototype.isUserObject):
(WebInspector.NativeHeapSnapshotNode.prototype.className):
(WebInspector.NativeHeapSnapshotNode.prototype.classIndex):
(WebInspector.NativeHeapSnapshotNode.prototype.id):
(WebInspector.NativeHeapSnapshotNode.prototype.name):
(WebInspector.NativeHeapSnapshotNode.prototype.isHidden):
(WebInspector.NativeHeapSnapshotNode.prototype.isSynthetic):
(WebInspector.NativeHeapSnapshotNode.prototype.isWindow):
(WebInspector.NativeHeapSnapshotNode.prototype.isDetachedDOMTreesRoot):
(WebInspector.NativeHeapSnapshotNode.prototype.isDetachedDOMTree):
(WebInspector.NativeHeapSnapshotEdge):
(WebInspector.NativeHeapSnapshotEdge.prototype.clone):
(WebInspector.NativeHeapSnapshotEdge.prototype.hasStringName):
(WebInspector.NativeHeapSnapshotEdge.prototype.isElement):
(WebInspector.NativeHeapSnapshotEdge.prototype.isHidden):
(WebInspector.NativeHeapSnapshotEdge.prototype.isWeak):
(WebInspector.NativeHeapSnapshotEdge.prototype.isInternal):
(WebInspector.NativeHeapSnapshotEdge.prototype.isInvisible):
(WebInspector.NativeHeapSnapshotEdge.prototype.isShortcut):
(WebInspector.NativeHeapSnapshotEdge.prototype.name):
(WebInspector.NativeHeapSnapshotEdge.prototype.toString):
(WebInspector.NativeHeapSnapshotEdge.prototype._nameOrIndex):
(WebInspector.NativeHeapSnapshotRetainerEdge):
(WebInspector.NativeHeapSnapshotRetainerEdge.prototype.clone):
(WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isElement):
(WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isHidden):
(WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isInternal):
(WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isInvisible):
(WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isShortcut):
(WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isWeak):
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeSnapshotProfileType):
(WebInspector.NativeSnapshotProfileType.prototype.get buttonTooltip):
(WebInspector.NativeSnapshotProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
(WebInspector.NativeSnapshotProfileType.prototype.buttonClicked):
(WebInspector.NativeSnapshotProfileType.prototype.get treeItemTitle):
(WebInspector.NativeSnapshotProfileType.prototype.get description):
(WebInspector.NativeSnapshotProfileType.prototype.createTemporaryProfile):
(WebInspector.NativeSnapshotProfileType.prototype.createProfile):
(WebInspector.NativeSnapshotProfileHeader):
(WebInspector.NativeSnapshotProfileHeader.prototype.createView):
(WebInspector.NativeSnapshotProfileHeader.prototype.startSnapshotTransfer):
(WebInspector.NativeSnapshotProfileHeader.prototype.snapshotConstructorName):
(WebInspector.NativeSnapshotProfileHeader.prototype._takeNativeSnapshot): build a datastructure
resembling one used for JS heap snapshots but populated with the data from the native snaphot.
(WebInspector.NativeHeapSnapshotView):
(WebInspector.NativeHeapSnapshotView.prototype.get profile):
(WebInspector.NativeMemoryProfileType):
(WebInspector.NativeMemoryProfileType.prototype.get buttonTooltip):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel):
* inspector/front-end/WebKit.qrc:
2013-01-21 Kentaro Hara <haraken@chromium.org>
[V8] ScriptState::isolate() should use Context::GetIsolate()
https://bugs.webkit.org/show_bug.cgi?id=107490
Reviewed by Adam Barth.
Now V8 provides Context::GetIsolate(). We should use it
in ScriptState::isolate().
* bindings/v8/ScriptState.h:
(WebCore::ScriptState::isolate):
(ScriptState):
2013-01-21 Michał Pakuła vel Rutka <m.pakula@samsung.com>
[EFL] Missing context menus strings
https://bugs.webkit.org/show_bug.cgi?id=107104
Reviewed by Kenneth Rohde Christiansen.
Add 5 missing localization strings for text direction context menus.
* platform/efl/LocalizedStringsEfl.cpp:
(WebCore::contextMenuItemTagRightToLeft):
(WebCore::contextMenuItemTagLeftToRight):
(WebCore::contextMenuItemTagWritingDirectionMenu):
(WebCore::contextMenuItemTagTextDirectionMenu):
(WebCore::contextMenuItemTagDefaultDirection):
2013-01-21 Kent Tamura <tkent@chromium.org>
Date selection from calendar picker should dispatch 'input' event in addition to 'change' event
https://bugs.webkit.org/show_bug.cgi?id=107427
Reviewed by Kentaro Hara.
According to the specification and Opera's behavior, we should dispatch
not only 'change' event but also 'input' event when a user chooses a
date from the calender picker.
http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#common-event-behaviors
> When the user agent changes the element's value on behalf of the user
> (e.g. as part of a form prefilling feature), the user agent must follow
> these steps:
> 1. If the input event applies, queue a task to fire a simple event
> that bubbles named input at the input element.
> 2. If the change event applies, queue a task to fire a simple event
> that bubbles named change at the input element.
Tests: platform/chromium/fast/forms/calendar-picker/date-picker-events.html
platform/chromium/fast/forms/calendar-picker/datetimelocal-picker-events.html
* html/InputType.cpp:
(WebCore::InputType::setValue): Add DispatchInputAndChangeEvent support.
* html/BaseChooserOnlyDateAndTimeInputType.cpp:
(WebCore::BaseChooserOnlyDateAndTimeInputType::didChooseValue):
Use DispatchInputAndChangeEvent, not DispatchChangeEvent.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue):
Ditto.
2013-01-21 Justin Schuh <jschuh@chromium.org>
[CHROMIUM] Suppress c4267 build warnings for Win64 targets
https://bugs.webkit.org/show_bug.cgi?id=107499
Reviewed by Abhishek Arya.
No new tests. No code changes.
* WebCore.gyp/WebCore.gyp:
2013-01-21 Andreas Kling <akling@apple.com>
CSSSelector::value() should assert that m_match != Tag.
<http://webkit.org/b/107500>
Reviewed by Anders Carlsson.
Add an assertion to catch anyone trying to extract a value() from a Tag selector.
* css/CSSSelector.h:
(CSSSelector):
(WebCore::CSSSelector::value):
2013-01-21 Dimitri Glazkov <dglazkov@chromium.org>
Move HTML Attribute case-sensitivity logic out of SelectorChecker to HTMLDocument.
https://bugs.webkit.org/show_bug.cgi?id=107460
The case-sensitivity of HTML attributes is defined in HTML spec and is only applicable in HTML documents,
so having this logic in HTMLDocument seems like a good thing.
Reviewed by Eric Seidel.
Refactoring, covered by existing tests.
* css/SelectorChecker.cpp:
(WebCore): Moved code out of here.
(WebCore::isFastCheckableMatch): Changed the callsite to use new location.
(WebCore::SelectorChecker::checkOne): Ditto.
* html/HTMLDocument.cpp:
(WebCore::addLocalNameToSet): Moved the code into here.
(WebCore): Ditto.
(WebCore::createHtmlCaseInsensitiveAttributesSet): Ditto.
(WebCore::HTMLDocument::isCaseSensitiveAttribute): Ditto.
* html/HTMLDocument.h:
(HTMLDocument): Added decl for the newly moved function.
2013-01-21 Shinya Kawanaka <shinyak@chromium.org>
FrameSelection should use shadowHost instead of shadowAncestorNode
https://bugs.webkit.org/show_bug.cgi?id=107220
Reviewed by Kent Tamura.
shadowAncestorNode() is deprecated and we want to use shadowHost.
Here, all objects calling shadowAncestorNode() is in ShadowDOM, we can safely convert
the call to shadowHost().
No new tests, simple refactoring.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::selectAll):
2013-01-21 Dirk Schulze <dschulze@adobe.com>
Add build flag for Canvas's Path object (disabled by default)
https://bugs.webkit.org/show_bug.cgi?id=107473
Reviewed by Dean Jackson.
Add CANVAS_PATH build flag to build systems.
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
2013-01-21 Andreas Kling <akling@apple.com>
CSS: Make tag sub-selectors standalone CSSSelectors.
<http://webkit.org/b/107111>
Reviewed by Antti Koivisto.
TL;DR: Instead of storing a QualifiedName with every CSSSelector, special-case tag selectors
by promoting them to stand-alone CSSSelectors.
33% reduction in CSS selector memory usage, 4.77 MB progression on Membuster3.
Fixed some bugs in Shadow DOM that were exposed by these changes.
A selector like this:
div.tripp.trapp#trull { }
Would previously be represented by a chain of 3 CSSSelector objects like so:
[ Tag: "div", Type: Class, Value: "tripp" ]
[ Tag: *, Type: Class, Value: "trapp" ]
[ Tag: *, Type: ID, Value: "trull" ]
After this change, the memory layout becomes:
[ Type: Tag, Value: "div" ]
[ Type: Class, Value: "tripp" ]
[ Type: Class, Value: "trapp" ]
[ Type: ID, Value: "trull" ]
This is a huge net memory win since the majority of selectors don't even have a tag name
and those that do now have a flat cost of one more CSSSelector.
Traversal is also slightly cleaner since any tag name will now be in a predictable place.
* css/SelectorChecker.cpp:
(WebCore::isFastCheckableMatch):
* html/shadow/HTMLContentElement.cpp:
(WebCore::validateSubSelector):
Renamed CSSSelector::None to CSSSelector::Tag.
* css/SelectorChecker.h:
(WebCore::SelectorChecker::tagMatches):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::ruleMatches):
Changed SelectorChecker::tagMatches() to take a QualifiedName instead of a CSSSelector.
* dom/QualifiedName.cpp:
(WebCore::QualifiedName::deref):
(WebCore::QualifiedName::QualifiedNameImpl::~QualifiedNameImpl):
* dom/QualifiedName.h:
(QualifiedNameImpl):
Give QualifiedNameImpl a destructor so it can remove itself from the global cache instead of
having QualifiedName do it. This makes it possible to participate in ownership of QualifiedNames
via a QualifiedNameImpl pointer, as used by the union member in CSSSelector.
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::createFloatingSelectorWithTagName):
(WebCore::CSSParser::updateSpecifiersWithNamespaceIfNeeded):
(WebCore::CSSParser::updateSpecifiersWithElementName):
* css/CSSParser.h:
* css/CSSParserValues.h:
(CSSParserSelector):
* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::CSSParserSelector):
(WebCore::CSSParserSelector::prependTagSelector):
Make the CSS parser slap a CSSSelector with m_match=Tag at the head of all selectors that match
one or more of these criteria:
- The selector starts with a tag, e.g "div.foo" or just plain "span"
- There is a @namespace rule in effect, and the override namespace needs to be stored with the selector.
These will have CSSSelectors::m_isTagForNamespaceRule set, this is only so that selector serialization
can avoid outputting a '*' tag where we previously didn't.
(WebCore::CSSParserSelector::isSimple):
Merged the CSSSelector::isSimple() logic into CSSParserSelector, since it's only needed during parsing
to figure out if a selector is allowed within :not().
* css/CSSSelector.h:
(CSSSelector):
(WebCore::CSSSelector::setValue):
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::~CSSSelector):
(WebCore::CSSSelector::tagQName):
* css/CSSSelector.cpp:
(WebCore::CSSSelector::createRareData):
(WebCore::CSSSelector::operator==):
Add a QualifiedNameImpl* m_tagQName member to the CSSSelector data union. This union pointer is used
if m_match == Tag. tagQName() is used to retrieve the tag (renamed from tag().)
(WebCore::CSSSelector::selectorText):
Only serialize Tag selector components that aren't namespace placeholders. This behavior is web-facing
so we make an effort to stay consistent.
(WebCore::CSSSelector::specificityForOneSelector):
(WebCore::CSSSelector::specificityForPage):
* css/CSSSelectorList.cpp:
(WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
* css/RuleSet.cpp:
(WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
* css/SelectorFilter.cpp:
(WebCore::collectDescendantSelectorIdentifierHashes):
(WebCore::SelectorFilter::collectIdentifierHashes):
Adapt algorithms to having Tag selectors.
(WebCore::selectorListContainsUncommonAttributeSelector):
Loop through all selector components when looking for uncommon attributes.
(WebCore::determinePropertyWhitelistType):
Loop through all selector components when looking for ::cue().
(WebCore::RuleSet::addRule):
(WebCore::RuleSet::findBestRuleSetAndAdd):
Break addRule into two methods to be able to peek ahead if the first selector is a Tag.
Otherwise we'd end up sticking most selectors in m_tagRules, breaking the class/ID/etc optimizations.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::fastCheck):
(WebCore::SelectorChecker::fastCheckSingleSelector):
It's no longer necessary to check the tagQName for every selector component, so don't.
Also simplified the signature of the template argument function.
(WebCore::SelectorChecker::fastCheckRightmostSelector):
Updated for Tag selectors.
(WebCore::SelectorChecker::checkOne):
(WebCore::SelectorChecker::matches):
(WebCore::SelectorChecker::match):
Have match() take a SiblingTraversalStrategy so it can forward that to checkOne().
This is necessary for shadow DOM code that was incorrectly calling checkOne() instead of match().
* css/StyleResolver.cpp:
(WebCore::StyleResolver::ruleMatches):
The meaning of "single-part selector" changes a bit with this patch, and no longer includes "div.foo"
as that is now a Tag, followed by a Class. Given that, we can't assume the tag check is unnecessary
just because the rightmost descendant was found in one of the hashes.
(WebCore::StyleResolver::matchPageRulesForList):
Loop through all selector components when matching @page since pseudo types may not always be in
the first subselector now.
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::collectSelectFeatureSetFrom):
Collect feature information from subselectors to make sure nothing is missed. (This bug was exposed
by offsetting the subselectors.)
* html/shadow/ContentSelectorQuery.cpp:
(WebCore::ContentSelectorChecker::checkContentSelector):
Call SelectorChecker::match() instead of checkOne() to make subselector traversal work properly.
2013-01-21 Levi Weintraub <leviw@chromium.org>
Event target rects on the top level document shouldn't be clipped.
https://bugs.webkit.org/show_bug.cgi?id=107339
Reviewed by James Robinson.
clippedOverflowRectForRepaint clips the top-level RenderView to the viewport, which
is wrong for generating event target rects, as the result will not extend to the bounds
of the document on pages that scroll. Changing the top-level view to use documentRect
instead.
Tests updated to cover bug: platform/chromium/fast/events/touch/touch-hit-rects-in-iframe.html
platform/chromium/fast/events/touch/compositor-touch-hit-rects.html
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::accumulateRendererTouchEventTargetRects): Use converToRootView instead of
a loop around convertToContaining view. This is not a change in behavior.
(WebCore::accumulateDocumentEventTargetRects): Switch to use documentRect instead of
clippedOverflowRectForRepaint for the top-level Document, and use converToRootView
to put rects in the coordinates of the top-level document.
2013-01-17 Andy Estes <aestes@apple.com>
Add a USE() macro for content filtering code
https://bugs.webkit.org/show_bug.cgi?id=107098
Reviewed by Mark Rowe.
* WebCore.exp.in: Use USE(CONTENT_FILTERING).
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::MainResourceLoader): Ditto.
(WebCore::MainResourceLoader::~MainResourceLoader): Ditto.
(WebCore::MainResourceLoader::cancel): Ditto.
(WebCore::MainResourceLoader::responseReceived): Ditto.
(WebCore::MainResourceLoader::dataReceived): Ditto.
(WebCore::MainResourceLoader::didFinishLoading): Ditto.
(WebCore::MainResourceLoader::notifyFinished): Ditto.
* loader/MainResourceLoader.h:
(MainResourceLoader): Ditto.
* platform/mac/WebCoreSystemInterface.h: Ditto.
* platform/mac/WebCoreSystemInterface.mm: Ditto.
2013-01-21 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Exclusions] shape-outside on floats for rectangle shapes positioning
https://bugs.webkit.org/show_bug.cgi?id=100399
Reviewed by David Hyatt.
When a float has a shape-outside with non-zero x or y, the float's
exclusion behavior can happen at a completely different location than
where the float's content is painted. This patch brings initial
support for this behavior.
Test: fast/exclusions/shape-outside-floats/shape-outside-floats-positioning.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::flipFloatForWritingModeForChild): If called
during painting, make sure to pass that state down to the float
positioning so that it can use the proper position.
(WebCore::RenderBlock::paintFloats): Since this is concerned with
painting, use the position of the float, not the shape.
(WebCore::RenderBlock::positionNewFloats): Set the correct location
for the float, relative to the location of the shape.
(WebCore::RenderBlock::addOverhangingFloats): Add FIXME.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::xPositionForFloatIncludingMargin):
(WebCore::RenderBlock::yPositionForFloatIncludingMargin): Since the
position of the shape (FloatingObject) can be different from the
position of the float's box (RenderBox), the position needs to be
computed differently for painting than for determining layout.
(WebCore::RenderBlock::flipFloatForWritingModeForChild): Change
signature to take painting flag.
2013-01-21 Eric Carlson <eric.carlson@apple.com>
Support non-WebVTT cues from in-band text tracks
https://bugs.webkit.org/show_bug.cgi?id=107046
Reviewed by Sam Weinig.
* CMakeLists.txt: Add new files.
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Pass video size to getDisplayTree.
* html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::addGenericCue): New, create a generic cue if it doesn't already exist.
(WebCore::InbandTextTrack::addWebVTTCue): Renamed from addCue.
* html/track/InbandTextTrack.h:
* html/track/TextTrack.cpp:
(WebCore::TextTrack::hasCue): Moved from InbandTextTrack.cpp, use operator == instead of inline
comparison so derived TextTrackCues can be compared.
* html/track/TextTrack.h:
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCueBox::applyCSSProperties): Interface change.
(WebCore::TextTrackCue::TextTrackCue): Don't create the display tree in the constructor, it may
never be needed.
(WebCore::TextTrackCue::createDisplayTree): New, create the display tree.
(WebCore::TextTrackCue::displayTreeInternal): Display tree accessor, allows it to be created lazily.
(WebCore::TextTrackCue::setAlign): Alignment -> CueAlignment.
(WebCore::TextTrackCue::setIsActive): Use displayTreeInternal().
(WebCore::TextTrackCue::getDisplayTree): Use displayTreeInternal(), pass video size to applyCSSProperties.
(WebCore::TextTrackCue::removeDisplayTree): Use displayTreeInternal().
(WebCore::TextTrackCue::operator==): New.
* html/track/TextTrackCue.h:
(WebCore::TextTrackCue::getAlignment): Alignment -> CueAlignment.
(WebCore::TextTrackCue::operator!=): New.
(WebCore::TextTrackCue::cueType): New, cue type identified needed by operator==.
(WebCore::TextTrackCue::ownerDocument): New.
* html/track/TextTrackCueGeneric.cpp: Added.
(WebCore::TextTrackCueGenericBox::create):
(WebCore::TextTrackCueGenericBox::TextTrackCueGenericBox):
(WebCore::TextTrackCueGenericBox::applyCSSProperties):
(WebCore:::TextTrackCue):
(WebCore::TextTrackCueGeneric::createDisplayTree):
(WebCore::TextTrackCueGeneric::operator==):
* html/track/TextTrackCueGeneric.h: Added.
(WebCore::TextTrackCueGeneric::create):
(WebCore::TextTrackCueGeneric::~TextTrackCueGeneric):
(WebCore::TextTrackCueGeneric::baseFontSizeRelativeToVideoHeight):
(WebCore::TextTrackCueGeneric::setBaseFontSizeRelativeToVideoHeight):
(WebCore::TextTrackCueGeneric::fontSizeMultiplier):
(WebCore::TextTrackCueGeneric::setFontSizeMultiplier):
(WebCore::TextTrackCueGeneric::fontName):
(WebCore::TextTrackCueGeneric::setFontName):
(WebCore::TextTrackCueGeneric::operator!=):
(WebCore::TextTrackCueGeneric::cueType):
* platform/graphics/InbandTextTrackPrivateClient.h:
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Copy cue attributes into GenericCueData
struct instead of trying to convert to WebVTT settings string. Process font size,font base
size, font name, and vertical layout attributes,
(WebCore::InbandTextTrackPrivateAVF::processCue): Create separate cues for each attributed
string in the array because each one can be at a different screen location.
(WebCore::InbandTextTrackPrivateAVF::resetCueValues):
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
(InbandTextTrackPrivateAVF):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Reset any partially accumulated cues
delivered since the seek was started.
(WebCore::MediaPlayerPrivateAVFoundation::addGenericCue): Renamed from flushCurrentCue.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Whitespace cleanup.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Tell legible output to deliver cues
without any additional styling needed by the internal renderer.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Do nothing if asked to change
to the track that is already current.
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
Check to make sure that the client callback isn't NULL.
2013-01-21 Robert Hogan <robert@webkit.org>
Misaligned logo on www.nzherald.co.nz possibly due to negative margin-top
https://bugs.webkit.org/show_bug.cgi?id=14664
Reviewed by David Hyatt.
Test: fast/block/float/clear-negative-margin-top.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::collapseMargins): If a negative margin pulls a block up so that floats from
siblings overhang, then ensure addOverHangingFloats() uses the revised logical top position when
deciding whether a float does indeed overhang into the block after margin-collapsing.
(WebCore::RenderBlock::clearFloatsIfNeeded):
2013-01-21 Rik Cabanier <cabanier@adobe.com>
Proposal: Add support for even-odd fill and clip to Canvas
https://bugs.webkit.org/show_bug.cgi?id=106188
Reviewed by Dirk Schulze.
This patch adds support for an optional winding rule to fill, clip
and isPointInPath in canvas 2d. By default, the fill is non-zero but
you can now pass in an optional winding rule string ("nonzero" or "evenodd")
to make an explicit choice.
Tests: fast/canvas/canvas-clip-rule.html
fast/canvas/canvas-fill-rule.html
fast/canvas/canvas-isPointInPath-winding.html
* html/canvas/CanvasRenderingContext2D.cpp: Change implementation so it sets the windig rule in the context.
(WebCore::parseWinding):
(WebCore):
(WebCore::CanvasRenderingContext2D::fill):
(WebCore::CanvasRenderingContext2D::clip):
(WebCore::CanvasRenderingContext2D::isPointInPath):
* html/canvas/CanvasRenderingContext2D.h:
(CanvasRenderingContext2D):
* html/canvas/CanvasRenderingContext2D.idl: Change the idl so the new API is exposed to JavaScript.
* platform/graphics/cg/GraphicsContextCG.cpp: Fixes a bug where the wrong winding rule was set for clipping in Core Graphics.
(WebCore::GraphicsContext::clip):
2013-01-21 ChangSeok Oh <shivamidow@gmail.com>
[GTK][AC] setOpacity doesn't work for GraphicsLayerClutter
https://bugs.webkit.org/show_bug.cgi?id=105436
Reviewed by Gustavo Noronha Silva.
Implement GraphicsLayerClutter::setOpacity based on Mac's GraphicsLayer implementation.
No new tests since this patch can be covered by already existing gtk ac tests.
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::GraphicsLayerClutter::setOpacity):
(WebCore):
(WebCore::GraphicsLayerClutter::updateOpacityOnLayer):
(WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers):
* platform/graphics/clutter/GraphicsLayerClutter.h:
2013-01-21 ChangSeok Oh <shivamidow@gmail.com>
[Texmap][GTK] The poster-circle doesn't appear.
https://bugs.webkit.org/show_bug.cgi?id=106672
Reviewed by Noam Rosenthal.
We need to call setNeedsDisplay to redraw GraphicsLayer after we set drawsContent
a new value for the layer. Otherwise we can't get a chance for first drawing the layer.
Test: compositing/visibility/visibility-composited-animation.html
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
2013-01-21 Viatcheslav Ostapenko <sl.ostapenko@samsung.com>
[EFL][Qt][WebGl] Random crash in GraphicsContext3D::drawArrays
https://bugs.webkit.org/show_bug.cgi?id=107178
Reviewed by Noam Rosenthal.
Workaround for the problem in mesa when internal llvm pipe object is deleted
later than the screen object. Screen object is deleted because the corresponding
X server display connection closed.
Keep X server display connection open until program shutdown.
OffScreenRootWindow::display is now static, so there is no need to create
OffScreenRootWindow object on client side.
Fixes crash that appears during run of fast/canavs/webgl tests.
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(OffScreenRootWindow):
(WebCore::OffScreenRootWindow::DisplayConnection::DisplayConnection):
(DisplayConnection):
(WebCore::OffScreenRootWindow::DisplayConnection::~DisplayConnection):
(WebCore::OffScreenRootWindow::DisplayConnection::display):
(WebCore::OffScreenRootWindow::display):
(WebCore::OffScreenRootWindow::~OffScreenRootWindow):
(WebCore):
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createSurface):
(WebCore::GraphicsSurfacePrivate::createPixmap):
(WebCore::GraphicsSurfacePrivate::makeCurrent):
(WebCore::GraphicsSurfacePrivate::doneCurrent):
(WebCore::GraphicsSurfacePrivate::swapBuffers):
(WebCore::GraphicsSurfacePrivate::display):
(WebCore::GraphicsSurfacePrivate::size):
(WebCore::GraphicsSurfacePrivate::findFBConfigWithAlpha):
(WebCore::GraphicsSurfacePrivate::clear):
(GraphicsSurfacePrivate):
2013-01-21 Michael[tm] Smith <mike@w3.org>
Implement the HTML <main> element.
https://bugs.webkit.org/show_bug.cgi?id=103172
Reviewed by Chris Fleizach.
Authored by Steve Faulkner <faulkner.steve@gmail.com>
<main> should behave the same as <nav>, <section>, and <article>, and <aside>.
<main> should expose AXLandmarkMain correctly on each platform.
Tests: fast/html/main-element.html
platform/chromium/accessibility/main-element.html
platform/mac/accessibility/main-element.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
* css/html.css:
(article, aside, footer, header, hgroup, main, nav, section):
* editing/FormatBlockCommand.cpp:
(WebCore::isElementForFormatBlock):
* html/HTMLTagNames.in:
* html/parser/HTMLStackItem.h:
(WebCore::HTMLStackItem::isSpecialNode):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
2013-01-21 Joanmarie Diggs <jdiggs@igalia.com>
Crash in AccessibilityTableCell::parentTable()
https://bugs.webkit.org/show_bug.cgi?id=107261
Reviewed by Chris Fleizach.
Test: accessibility/table-destroyed-crash.html
Getting the parent table in order to get the role value should not be
done when objects are being destroyed. Also, it does not seem safe to
assume we have an AXObjectCache.
Moving the logic from roleValue() to determineAccessibilityRole() has
the side effect of not being able to verify the cell is in an AXTable
when that AXTable has not yet been created. Therefore isTableCell()
should look to see if it is the descendant of an AXRow.
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::parentTable):
(WebCore::AccessibilityTableCell::isTableCell):
(WebCore::AccessibilityTableCell::determineAccessibilityRole):
* accessibility/AccessibilityTableCell.h:
(AccessibilityTableCell):
2013-01-21 Halton Huo <halton.huo@intel.com>
[GTK] Volume button should not be shown for videos without audio
https://bugs.webkit.org/show_bug.cgi?id=106436
Reviewed by Philippe Normand.
The volume control is no longer shown for videos with no audio.
No new tests, tested by media/video-no-audio.html.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::hasOwnDisabledStateHandlingFor):
(WebCore):
* platform/gtk/RenderThemeGtk.h:
2013-01-21 Dan Winship <danw@gnome.org>
[Soup] Work around a glib bug
https://bugs.webkit.org/show_bug.cgi?id=106789
Reviewed by Martin Robinson.
In glib <= 2.35.4, g_input_stream_skip_async() applied to a
libsoup response stream will do a synchronous skip() in another
thread, which libsoup isn't expecting and doesn't have proper
locking for. Work around this until the next time we bump the glib
requirement by using read_async() (and throwing away the result)
instead of skip_async().
No new tests; fixes a race condition in existing tests with older
glib
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::redirectSkipCallback):
(WebCore::sendRequestCallback):
2013-01-18 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: data grid resize is slow
https://bugs.webkit.org/show_bug.cgi?id=107291
Reviewed by Pavel Feldman.
- avoid (most of) unnecessary relayouts and style recalculation when dragging data grid resizer.
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid.prototype._positionResizers):
(WebInspector.DataGrid.prototype._resizerDragging):
2013-01-21 Vladislav Kaznacheev <kaznacheev@chromium.org>
[Inspector] Layout Elements panel in a single column when docked right.
https://bugs.webkit.org/show_bug.cgi?id=107129
Reviewed by Pavel Feldman.
If the Inspector is docked right, the style panes in the Elements panel
are put below the DOM tree pane, not to the right. This behavior
is experimental (hidden behind a new flag "elementsPanelSingleColumn").
No new tests.
* inspector/front-end/DockController.js:
(WebInspector.DockController.prototype.dockSide):
(WebInspector.DockController.prototype._updateUI):
(WebInspector.DockController.prototype._toggleDockState):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.onResize):
(WebInspector.ElementsPanel.prototype._onDockStateChanged):
(WebInspector.ElementsPanel.prototype._sidebarPosition):
* inspector/front-end/Panel.js:
(WebInspector.Panel.prototype.createSidebarView):
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/SidebarView.js:
(WebInspector.SidebarView):
(WebInspector.SidebarView.prototype.get mainElement):
(WebInspector.SidebarView.prototype.get sidebarElement):
(WebInspector.SidebarView.prototype._setSidebarElementStyle):
(WebInspector.SidebarView.prototype.setSidebarPosition):
(WebInspector.SidebarView.prototype._innerSetSidebarPosition):
(WebInspector.SidebarView.prototype.setMinimumSidebarHeight):
(WebInspector.SidebarView.prototype.setMinimumMainHeightPercent):
(WebInspector.SidebarView.prototype.applyConstraints):
(WebInspector.SidebarView.prototype.hideMainElement):
(WebInspector.SidebarView.prototype.hideSidebarElement):
* inspector/front-end/SplitView.js:
(WebInspector.SplitView):
* inspector/front-end/splitView.css:
(.split-view-sidebar-top):
(.split-view-sidebar-top.maximized):
(.split-view-sidebar-bottom):
(.split-view-sidebar-bottom.maximized):
2013-01-21 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: do not serialize native heap graph when collecting information about memory distribution
https://bugs.webkit.org/show_bug.cgi?id=107450
Reviewed by Pavel Feldman.
Native heap graph is not reported when we need to show only high-level memory distribution.
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeMemorySnapshotView):
(WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
(WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
2013-01-21 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [REGRESSION] Forced :visited pseudoclass has no effect on A elements
https://bugs.webkit.org/show_bug.cgi?id=107448
Reviewed by Antti Koivisto.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::sortAndTransferMatchedRules): Remove totally bad code.
(WebCore::StyleResolver::styleForElement):
Use InsideVisitedLink if PseudoVisited has been forced by Inspector.
2013-01-18 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: modify generate_protocol_externs.py to generate JSON typedef's for @constructors
https://bugs.webkit.org/show_bug.cgi?id=107287
Reviewed by Pavel Feldman.
Modify generate_protocol_externs.py to generate @typedefs instead of @constructors,
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
* inspector/InjectedScriptSource.js:
* inspector/compile-front-end.py:
* inspector/generate_protocol_externs.py:
(param_type):
2013-01-21 Oleg Smirnov <oleg.smirnov@lge.com>
[Gtk] [Cairo] Memory leak when is WebView destroy.
https://bugs.webkit.org/show_bug.cgi?id=107112
Reviewed by Martin Robinson.
Make createSurfaceForBackingStore return a smart pointer in all supported
build configurations to avoid a memory leak.
No new tests. There is memory leak only.
* platform/cairo/WidgetBackingStoreCairo.cpp:
(WebCore::createSurfaceForBackingStore):
2013-01-21 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: should not dispatch 'input' events if the element value is not updated
https://bugs.webkit.org/show_bug.cgi?id=107429
Reviewed by Kentaro Hara.
http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#common-event-behaviors
> any time the user causes the element's value to change, the user agent
> must queue a task to fire a simple event that bubbles named input at the
> input element.
Tests:
fast/forms/time-multiple-fields/time-multiple-fields-keyboard-event.html
is updated to cover this change.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged):
If the new value is equivalent to the old value, don't dispatch events.
However we should recalculate validity and call notifyFormStateChanged
because input.validity.badInput state might be changed.
2013-01-21 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Do not dispatch mousemove when emulating touch event and no touch is active
https://bugs.webkit.org/show_bug.cgi?id=107419
Reviewed by Pavel Feldman.
mousemove event should not be dispatched when emulating touch events and mouse button is not pressed
* page/EventHandler.cpp:
(WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
2013-01-21 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: fix highlight bug in DTE.
https://bugs.webkit.org/show_bug.cgi?id=107433
Reviewed by Pavel Feldman.
Do not re-create |state.ranges| array when it already contains highlight.
Test: inpector/editor/highlighter-chunk-limit.txt
* inspector/front-end/TextEditorHighlighter.js:
(WebInspector.TextEditorHighlighter.prototype._highlightLines):
2013-01-21 Takashi Sakamoto <tasak@google.com>
[Refactoring] rename StyleRuleBlock -> StyleRuleGroup
https://bugs.webkit.org/show_bug.cgi?id=107415
Reviewed by Antti Koivisto.
StyleRuleBlock should be renamed StyleRuleGroup, because
CSSGroupingRule (not CSSBlockRule) is an interface for an at-rule that
contains other rules nested inside itself:
http://www.w3.org/TR/2012/WD-css3-conditional-20121213/#the-cssgroupingrule-interface
To match the name: CSSGroupingRule, StyleRuleGroup looks better.
No new tests, because just refactoring.
* css/CSSGroupingRule.cpp:
(WebCore::CSSGroupingRule::CSSGroupingRule):
(WebCore::CSSGroupingRule::reattach):
* css/CSSGroupingRule.h:
(CSSGroupingRule):
* css/StyleRule.cpp:
(WebCore::StyleRuleGroup::StyleRuleGroup):
(WebCore::StyleRuleGroup::wrapperInsertRule):
(WebCore::StyleRuleGroup::wrapperRemoveRule):
(WebCore::StyleRuleGroup::reportDescendantMemoryUsage):
(WebCore::StyleRuleMedia::StyleRuleMedia):
(WebCore::StyleRuleSupports::StyleRuleSupports):
(WebCore::StyleRuleRegion::StyleRuleRegion):
* css/StyleRule.h:
(StyleRuleGroup):
(WebCore::StyleRuleHost::StyleRuleHost):
(WebCore::toStyleRuleMedia):
(WebCore::toStyleRuleSupports):
(WebCore::toStyleRuleRegion):
Just replaced StyleRuleBlock with StyleRuleGroup.
2013-01-21 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: refactoring to use string as argument for highlightRegex API
https://bugs.webkit.org/show_bug.cgi?id=107243
Reviewed by Pavel Feldman.
Use string as argument for highlightRegex API instead of using regex object.
No new tests: no change in behaviour.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype.highlightRegex):
* inspector/front-end/TextEditor.js:
2013-01-21 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140311.
http://trac.webkit.org/changeset/140311
https://bugs.webkit.org/show_bug.cgi?id=107431
Broke selection-related tests (Requested by apavlov on
#webkit).
* page/EventHandler.cpp:
(WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
2013-01-21 Kentaro Hara <haraken@chromium.org>
Unreviewed. Build fix.
* bindings/v8/V8NPObject.cpp:
(WebCore::createV8ObjectForNPObject):
2013-01-20 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Do not dispatch mousemove when emulating touch event and no touch is active
https://bugs.webkit.org/show_bug.cgi?id=107419
Reviewed by Pavel Feldman.
mousemove event should not be dispatched when emulating touch events and mouse button is not pressed
* page/EventHandler.cpp:
(WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
2013-01-21 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Update the RTCPeerConnection states to match the latest specification
https://bugs.webkit.org/show_bug.cgi?id=107120
Reviewed by Adam Barth.
http://dev.w3.org/2011/webrtc/editor/webrtc.html#interface-definition
RTCPeerConnection::readyState and iceState are history and instead signalingState,
iceConnectionState and iceGatheringState have been introduced.
Existing tests updated to cover this patch.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::createOffer):
(WebCore::RTCPeerConnection::createAnswer):
(WebCore::RTCPeerConnection::setLocalDescription):
(WebCore::RTCPeerConnection::localDescription):
(WebCore::RTCPeerConnection::setRemoteDescription):
(WebCore::RTCPeerConnection::remoteDescription):
(WebCore::RTCPeerConnection::updateIce):
(WebCore::RTCPeerConnection::addIceCandidate):
(WebCore::RTCPeerConnection::readyState):
(WebCore):
(WebCore::RTCPeerConnection::signalingState):
(WebCore::RTCPeerConnection::iceConnectionState):
(WebCore::RTCPeerConnection::addStream):
(WebCore::RTCPeerConnection::removeStream):
(WebCore::RTCPeerConnection::createDataChannel):
(WebCore::RTCPeerConnection::close):
(WebCore::RTCPeerConnection::didChangeSignalingState):
(WebCore::RTCPeerConnection::didChangeIceGatheringState):
(WebCore::RTCPeerConnection::didChangeIceConnectionState):
(WebCore::RTCPeerConnection::didAddRemoteStream):
(WebCore::RTCPeerConnection::didRemoveRemoteStream):
(WebCore::RTCPeerConnection::didAddRemoteDataChannel):
(WebCore::RTCPeerConnection::stop):
(WebCore::RTCPeerConnection::changeSignalingState):
(WebCore::RTCPeerConnection::changeIceGatheringState):
(WebCore::RTCPeerConnection::changeIceConnectionState):
* Modules/mediastream/RTCPeerConnection.h:
(RTCPeerConnection):
* Modules/mediastream/RTCPeerConnection.idl:
* platform/mediastream/RTCPeerConnectionHandlerClient.h:
(RTCPeerConnectionHandlerClient):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandlerChromium::didChangeSignalingState):
(WebCore::RTCPeerConnectionHandlerChromium::didChangeICEConnectionState):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
(RTCPeerConnectionHandlerChromium):
2013-01-21 Kent Tamura <tkent@chromium.org>
Use ISO8601 date/time formats as fallbacks for date/time input types
https://bugs.webkit.org/show_bug.cgi?id=107418
Reviewed by Kentaro Hara.
We obtain date/time formats from OSes to build date/time input type
UIs. If something wrong happens in the code, fallback formats are
used. Such fallback formats should not be English formats in order that
we can find defects easily.
No new tests. These formats should not be used unless the current code
has defects.
* html/DateTimeInputType.cpp:
(WebCore::DateTimeInputType::setupLayoutParameters):
Use an ISO8601 format which is same as a format used in HTML5.
* html/DateTimeLocalInputType.cpp:
(WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
* html/MonthInputType.cpp:
(WebCore::MonthInputType::setupLayoutParameters): Ditto.
* html/WeekInputType.cpp:
(WebCore::WeekInputType::setupLayoutParameters): Ditto.
* platform/text/LocaleICU.cpp:
(WebCore::LocaleICU::dateFormat): Ditto.
* platform/text/LocaleNone.cpp:
(WebCore::LocaleNone::dateFormat): Ditto.
(WebCore::LocaleNone::dateTimeFormatWithSeconds): Ditto.
(WebCore::LocaleNone::dateTimeFormatWithoutSeconds): Ditto.
2013-01-20 Matt Falkenhagen <falken@chromium.org>
Elements must be reattached when inserted/removed from top layer
https://bugs.webkit.org/show_bug.cgi?id=105489
Relanding r139402 as rollout due to suspected perf regression did not help (bug 106726).
Reviewed by Julien Chaffraix.
Ensure a reattach occurs when an element is inserted/removed from top layer, so its renderer can be inserted correctly:
as a child of RenderView in top layer sibling order if it's in the top layer, and in the usual place otherwise.
We previously relied on style recalc to catch when an element is inserted/removed from the top layer, because it
only happens on dialog.show/close which toggle display: none. But that is incorrect because, for example, close()
followed immediately by show() results in no style change.
Tests: fast/dom/HTMLDialogElement/removed-element-is-removed-from-top-layer.html
fast/dom/HTMLDialogElement/top-layer-stacking-correct-order-remove-readd.html
* dom/Element.cpp:
(WebCore::Element::removedFrom): Call Document::removeFromTopLayer to let the element be removed from the top layer vector.
removeFromTopLayer calls Element::setIsInTopLayer(false) itself if needed.
(WebCore::Element::setIsInTopLayer): Ensure a reattach occurs if the element is already attached.
2013-01-20 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: change HeapSnapshotLoader to allow loading native heap snapshots
https://bugs.webkit.org/show_bug.cgi?id=107282
Reviewed by Pavel Feldman.
Conctete heap snapshot constructor name is passed as a parameter to HeapSnapshotLoaderProxy and
propagated to HeapSnapshotLoader.buildSnapshot to support different types of heap snapshots.
* inspector/front-end/HeapSnapshotLoader.js:
(WebInspector.HeapSnapshotLoader.prototype.buildSnapshot):
* inspector/front-end/HeapSnapshotProxy.js:
(WebInspector.HeapSnapshotWorker.prototype.createLoader):
(WebInspector.HeapSnapshotLoaderProxy):
(WebInspector.HeapSnapshotLoaderProxy.prototype.close):
* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapProfileHeader.prototype._setupWorker):
2013-01-20 Kentaro Hara <haraken@chromium.org>
Implement MediaStreamEvent constructor
https://bugs.webkit.org/show_bug.cgi?id=107411
Reviewed by Adam Barth.
Spec: http://www.w3.org/TR/webrtc/#mediastreamevent
Test: fast/events/constructors/media-stream-event-constructor.html
* Modules/mediastream/MediaStreamEvent.cpp:
(WebCore::MediaStreamEventInit::MediaStreamEventInit):
(WebCore):
(WebCore::MediaStreamEvent::create):
(WebCore::MediaStreamEvent::MediaStreamEvent):
* Modules/mediastream/MediaStreamEvent.h:
(MediaStreamEventInit):
(WebCore):
(MediaStreamEvent):
* Modules/mediastream/MediaStreamEvent.idl:
* bindings/js/JSDictionary.cpp:
(WebCore):
(WebCore::JSDictionary::convertValue):
* bindings/js/JSDictionary.h:
(WebCore):
* bindings/v8/Dictionary.cpp:
(WebCore):
(WebCore::Dictionary::get):
* bindings/v8/Dictionary.h:
(Dictionary):
2013-01-20 Vladislav Kaznacheev <kaznacheev@chromium.org>
Web Inspector: Allow SplitView to change orientation after the construction.
https://bugs.webkit.org/show_bug.cgi?id=107263
Added SplitView.prototype.setIsVertical to change the orientation on the fly.
Instead of passing default sidebar size to the constructor the client
may now pass separate defaults for the sidebar width and height. Passing
just one default works as before.
Reviewed by Pavel Feldman.
No new tests.
* inspector/front-end/SplitView.js:
(WebInspector.SplitView):
(WebInspector.SplitView.prototype.isVertical):
(WebInspector.SplitView.prototype.setIsVertical):
(WebInspector.SplitView.prototype._innerSetIsVertical):
(WebInspector.SplitView.prototype._updateLayout):
(WebInspector.SplitView.prototype.isSidebarSecond):
(WebInspector.SplitView.prototype.showBoth):
(WebInspector.SplitView.prototype._updateTotalSize):
(WebInspector.SplitView.prototype._innerSetSidebarSize):
(WebInspector.SplitView.prototype.wasShown):
(WebInspector.SplitView.prototype.onResize):
(WebInspector.SplitView.prototype.installResizer):
(WebInspector.SplitView.prototype._onDragStart):
(WebInspector.SplitView.prototype._sizeSetting):
(WebInspector.SplitView.prototype._lastSidebarSize):
(WebInspector.SplitView.prototype.get _saveSidebarSize):
2013-01-20 Kentaro Hara <haraken@chromium.org>
Add a [ConstructorConditional] IDL attribute
https://bugs.webkit.org/show_bug.cgi?id=107407
Reviewed by Adam Barth.
Per discussion in webkit-dev, we need to implement DOM4 event constructors
under a enable flag. For that purpose, we implement a [ConstructorConditional]
IDL attribute.
Test: bindings/scripts/test/TestInterface.idl
* bindings/scripts/CodeGenerator.pm:
(GenerateConstructorConditionalString):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorDeclaration):
(GenerateConstructorHelperMethods):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateImplementation):
* bindings/scripts/IDLAttributes.txt:
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore):
* bindings/scripts/test/JS/JSTestInterface.h:
(JSTestInterfaceConstructor):
* bindings/scripts/test/TestInterface.idl:
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::ConfigureV8TestInterfaceTemplate):
* bindings/scripts/test/V8/V8TestInterface.h:
(V8TestInterface):
2013-01-18 Kentaro Hara <haraken@chromium.org>
[V8] We should set a class id for a NPObject wrapper
https://bugs.webkit.org/show_bug.cgi?id=107249
Reviewed by Adam Barth.
This is one of steps to avoid hitting an ASSERT()
that will be added in https://bugs.webkit.org/show_bug.cgi?id=107137 .
No tests. No change in behavior.
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
(WebCore::V8DOMWrapper::setWrapperClass):
(WebCore):
* bindings/v8/V8NPObject.cpp:
(WebCore::createV8ObjectForNPObject):
2013-01-20 Mike Lawther <mikelawther@chromium.org>
CSS3 calc: unprefix implementation
https://bugs.webkit.org/show_bug.cgi?id=91951
Reviewed by Ojan Vafai.
Add support for the unprefixed 'calc()' function, while retaining support for the prefixed version.
Test: css3/calc/simple-calcs-prefixed.html
* css/CSSCalculationValue.cpp:
(WebCore::buildCssText):
(WebCore::CSSCalcValue::create):
* css/CSSParser.cpp:
(WebCore::CSSParser::isCalculation):
(WebCore::CSSParser::detectFunctionTypeToken):
2013-01-20 Shinya Kawanaka <shinyak@chromium.org>
Distribution state becomes inconsistent with content/shadow reprojection
https://bugs.webkit.org/show_bug.cgi?id=106634
Reviewed by Hajime Morita.
Distribution should be resolved from shallower ShadowDOM to deeper Shadow DOM. However, in the current implementation,
there is a case that distribution for deeper ShadowDOM happens to be resolved before distribution
for shallower ShadowDOM is resolved.
Here, we have 2 problems about distribution.
1) Invalidation state is not propagated to nested (= deeper) ShadowDOM.
- This causes deeper ShadowDOM looks having a valid distribution though it should be invalid.
2) We are not resolving shallower ShadowDOM when deeper ShadowDOM's distribution is needed.
- Because of (1), we have to check all the ancestor ShadowDOM.
For (1), we change invalidate() to invalidate nested ShadowDOM's distribution as well.
For (2), when resolving distribution, we will check the ancestor ShadowDOM's distribution state. If the ancestor's
distribution is not valid, we resolve it first.
For optimization of (1), actually we can skip invalidating distribution of some ShadowDOMs.
If ShadowRoot of deeper ShadowDOM does not have an InsertionPoint as children, we can skip invalidating
its distribution, because only children can be distributed to InsertionPoint.
Tests: fast/dom/shadow/distribution-crash.html
fast/dom/shadow/nested-reprojection-inconsistent.html
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::attach): Should resolve distribution from ancestor.
* dom/ElementShadow.h:
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::distribute): Added ASSERT that the parent ShadowRoot's distribution is resolved.
(WebCore::ContentDistributor::invalidate): For each InsertionPoint, we have to invalidate
its parent element's distribution (if it has ElementShadow).
(WebCore::ContentDistributor::ensureDistribution):
* html/shadow/ContentDistributor.h:
(WebCore::ContentDistributor::isValid):
* html/shadow/HTMLShadowElement.cpp:
(WebCore::HTMLShadowElement::olderShadowRoot): Should resolve distribution from ancestor.
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::attach): ditto.
(WebCore::InsertionPoint::detach): ditto.
(WebCore::InsertionPoint::getDistributedNodes): ditto.
(WebCore::resolveReprojection): ditto.
2013-01-20 Dominic Mazzoni <dmazzoni@google.com>
Make SpeechSynthesis compile in the Chromium port
https://bugs.webkit.org/show_bug.cgi?id=107382
Reviewed by Adam Barth.
Add stubs for the Chromium implementation of speech synthesis,
and add all source and header files to WebCore.gypi. Everything
is behind the ENABLE_SPEECH_SYNTHESIS flag.
* Modules/speech/chromium/SpeechSynthesisChromium.cpp: Added.
(WebCore):
(WebCore::SpeechSynthesis::initializeVoiceList):
(WebCore::SpeechSynthesis::pending):
(WebCore::SpeechSynthesis::speaking):
(WebCore::SpeechSynthesis::paused):
(WebCore::SpeechSynthesis::speak):
(WebCore::SpeechSynthesis::cancel):
(WebCore::SpeechSynthesis::pause):
(WebCore::SpeechSynthesis::resume):
* WebCore.gypi:
2013-01-20 Kent Tamura <tkent@chromium.org>
Re-layout child blocks when border/padding of the box-sizing:border-box parent is updated
https://bugs.webkit.org/show_bug.cgi?id=104997
Reviewed by Tony Chang.
When padding or border is updated for a parent block with
box-sizing:border-box and width, the width of its child block was not
updated.
Tests: fast/css/box-sizing-border-box-dynamic-padding-border-update.html
fast/forms/text/text-padding-dynamic-change.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
If box-sizing of the old style and/or the new style is border-box and
padding or border is changed, apply setChildNeedsLayout(true) for child
boxes.
2013-01-20 Kentaro Hara <haraken@chromium.org>
[V8] Remove custom V8ScriptProfileCustom::toV8()
https://bugs.webkit.org/show_bug.cgi?id=107246
Reviewed by Adam Barth.
V8ScriptProfileCustom::toV8() needs not to be custom.
Furthermore, the current custom toV8() is wrong in that
it doesn't use a creationContext and it doesn't set a
wrapper class id. This is one of steps to avoiding
ASSERT()s that will be added in
https://bugs.webkit.org/show_bug.cgi?id=107137 .
No tests. No change in behavior.
* UseV8.cmake:
* WebCore.gypi:
* bindings/v8/custom/V8ScriptProfileCustom.cpp: Removed.
* inspector/ScriptProfile.idl:
2013-01-20 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140290.
http://trac.webkit.org/changeset/140290
https://bugs.webkit.org/show_bug.cgi?id=107412
Broke tests of inspector and calendar picker in debug build
(Requested by tkent on #webkit).
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
2013-01-20 Yongsheng Zhu <yongsheng.zhu@intel.com>
Dispatch LongPress to inner frames
https://bugs.webkit.org/show_bug.cgi?id=106874
Reviewed by Antonio Gomes.
Do check whether a LongPress gesture event should be passed
to inner frames. If needed, dispatch it.
Tests: fast/events/touch/gesture/long-press-on-draggable-element-in-iframe-triggers-drag.html
fast/events/touch/gesture/long-press-on-draggable-element-in-nested-iframes-triggers-drag.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureLongPress):
2013-01-20 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Clean up missing *explicit* keyword in ctors of WebCore/rendering.
https://bugs.webkit.org/show_bug.cgi?id=107373
Reviewed by Darin Adler.
Need to add *explicit* keyword to avoid implicit type conversion.
* rendering/RenderApplet.h:
(RenderApplet):
* rendering/RenderArena.h:
(RenderArena):
* rendering/RenderBR.h:
(RenderBR):
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderBox.h:
(RenderBox):
* rendering/RenderDetailsMarker.h:
(RenderDetailsMarker):
* rendering/RenderFlexibleBox.h:
(RenderFlexibleBox):
* rendering/RenderFlowThread.h:
* rendering/RenderFullScreen.h:
(RenderFullScreen):
* rendering/RenderGeometryMap.h:
(WebCore::RenderGeometryMapStep::RenderGeometryMapStep):
* rendering/RenderGrid.h:
(RenderGrid):
* rendering/RenderImage.h:
(RenderImage):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
* rendering/RenderLayerModelObject.h:
(RenderLayerModelObject):
* rendering/RenderListBox.h:
(RenderListBox):
* rendering/RenderListMarker.h:
(RenderListMarker):
* rendering/RenderMedia.h:
(RenderMedia):
* rendering/RenderMeter.h:
(RenderMeter):
* rendering/RenderMultiColumnBlock.h:
(RenderMultiColumnBlock):
* rendering/RenderMultiColumnFlowThread.h:
(RenderMultiColumnFlowThread):
* rendering/RenderObject.h:
(RenderObject):
* rendering/RenderPart.h:
(RenderPart):
* rendering/RenderProgress.h:
(RenderProgress):
* rendering/RenderReplaced.h:
(RenderReplaced):
* rendering/RenderReplica.h:
(RenderReplica):
* rendering/RenderRuby.h:
(RenderRubyAsInline):
* rendering/RenderRubyBase.h:
(RenderRubyBase):
* rendering/RenderRubyRun.h:
(RenderRubyRun):
* rendering/RenderRubyText.h:
(RenderRubyText):
* rendering/RenderSearchField.h:
(RenderSearchField):
* rendering/RenderSlider.h:
(RenderSlider):
* rendering/RenderSnapshottedPlugIn.h:
(RenderSnapshottedPlugIn):
* rendering/RenderTextControlMultiLine.h:
(RenderTextControlMultiLine):
* rendering/RenderTextControlSingleLine.h:
(RenderTextControlSingleLine):
* rendering/RenderView.h:
(RenderView):
* rendering/RenderWidgetProtector.h:
(WebCore::RenderWidgetProtector::RenderWidgetProtector):
* rendering/RootInlineBox.h:
(RootInlineBox): Remove meaningless parameter name.
* rendering/TableLayout.h:
(WebCore::TableLayout::TableLayout):
2013-01-20 Kent Tamura <tkent@chromium.org>
Re-layout child blocks when border/padding of the box-sizing:border-box parent is updated
https://bugs.webkit.org/show_bug.cgi?id=104997
Reviewed by Tony Chang.
When padding or border is updated for a parent block with
box-sizing:border-box and width, the width of its child block was not
updated.
Tests: fast/css/box-sizing-border-box-dynamic-padding-border-update.html
fast/forms/text/text-padding-dynamic-change.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
If box-sizing of the old style and/or the new style is border-box and
padding or border is changed, apply setChildNeedsLayout(true) for child
boxes.
2013-01-20 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r140270.
http://trac.webkit.org/changeset/140270
https://bugs.webkit.org/show_bug.cgi?id=107253
Hit asserts in a debug build
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::installDOMWindow):
2013-01-20 Shinya Kawanaka <shinyak@chromium.org>
[Shadow DOM] Specifying scrollbar style of an element having RenderLayer in ShadowDOM does not work.
https://bugs.webkit.org/show_bug.cgi?id=107222
Reviewed by Simon Fraser.
When specifying scrollbar style in ShadowDOM, it's not used. If the host element of ShadowDOM has scrollbar style,
it's used instead.
The root cause of this bug is that RenderLayer always see shadowAncestorNode's style. Some elements having
UserAgent ShadowDOM (e.g. <textarea>) should see host's style, but most of elements should see its style.
Test: fast/dom/shadow/scrollbar.html
* rendering/RenderLayer.cpp:
(WebCore::rendererForScrollbar):
(WebCore):
(WebCore::RenderLayer::createScrollbar):
(WebCore::RenderLayer::updateScrollCornerStyle):
(WebCore::RenderLayer::updateResizerStyle):
2013-01-20 Yoshifumi Inoue <yosin@chromium.org>
Dragging over an element with scrollbars should scroll the element when dragging near edges
https://bugs.webkit.org/show_bug.cgi?id=39725
Reviewed by Hajime Morita.
This patch introduces auto scrolling functionality during drag-and-drop
when drop source is near edge of scrollable element.
When drop source is inside 20px of scrollable element more than 200ms,
scrollable element is automatically scrolled every 50ms toward drop
source position, e.g. vertically scroll up when drop source is in top
edge.
Test: fast/events/drag-and-drop-autoscroll.html
* page/AutoscrollController.cpp:
(WebCore::AutoscrollController::AutoscrollController): Changed to initialize m_dragAndDropAutoscrollStartTime.
(WebCore::AutoscrollController::updateDragAndDrop): Added for start/stop autoscroll during drag-and-drop.
(WebCore::AutoscrollController::autoscrollTimerFired): Changed to add autoscroll for drag-and-drop, and to pass last know position to RenderBox::autoscroll().
* page/AutoscrollController.h:
(AutoscrollController): Changed to add updateDragAndDrop() and m_dragAndDropAutoscrollReferencePosition and m_dragAndDropAutoscrollStartTime.
* page/ChromeClient.h:
(WebCore::ChromeClient): Changed to add new function shouldAutoscrollForDragAndDrop().
* page/EventHandler.cpp:
(WebCore::EventHandler::updateDragAndDrop): Changed to call AutoscrollController::updateDragAndDrop().
(WebCore::EventHandler::clearDragState): Changed to call stopAutoscrollTimer().
* rendering/RenderBox.cpp:
(WebCore::RenderBox::autoscroll): Changed for new parameter position.
(WebCore::RenderBox::calculateAutoscrollDirection): Added for autoscroll.
* rendering/RenderBox.h:
(RenderBox):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::autoscroll): Changed for new parameter position and move updateSelectionForMouseDrag() to AutoscrollController.
* rendering/RenderLayer.h:
(RenderLayer):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::autoscroll): Changed for new parameter position.
* rendering/RenderListBox.h:
(RenderListBox):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::autoscroll): Changed for new parameter position.
* rendering/RenderTextControlSingleLine.h:
(RenderTextControlSingleLine):
2013-01-20 Laszlo Gombos <l.gombos@samsung.com>
Simplify a list of negative PLATFORM() tests
https://bugs.webkit.org/show_bug.cgi?id=107365
Reviewed by Eric Seidel.
Simplify a list of negative PLATFORM() tests into a simpler list
of positive tests for better readability and maintenance.
No new tests as there is no new functionality.
* config.h:
2013-01-20 Simon Fraser <simon.fraser@apple.com>
Avoid filling a rounded rect when radii are zero
https://bugs.webkit.org/show_bug.cgi?id=107402
<rdar://problem/12793315>
Reviewed by Sam Weinig.
It's more efficient to clip and fill rects than rounded rects,
so optimize for the case where rounded rect radii are zero.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::clipRoundedRect):
(WebCore::GraphicsContext::clipOutRoundedRect):
(WebCore::GraphicsContext::fillRoundedRect):
2013-01-20 Alexey Proskuryakov <ap@apple.com>
Remove obsolete plug-in sandboxing code.
https://bugs.webkit.org/show_bug.cgi?id=107362
Reviewed by Darin Adler.
* WebCore.xcodeproj/project.pbxproj:
* plugins/npapi-sandbox.h: Removed.
2013-01-20 Peter Rybin <peter.rybin@gmail.com>
Web Inspector: Make V8 LiveEdit API disabled by default
https://bugs.webkit.org/show_bug.cgi?id=106668
Reviewed by Yury Semikhatsky.
Initialize method is patched accordingly.
* bindings/v8/JavaScriptCallFrame.cpp:
(WebCore::JavaScriptCallFrame::restart): missing enable/disable calls added for restart
* bindings/v8/V8Initializer.cpp:
(WebCore::initializeV8Common): initializer method patched
2013-01-20 Christophe Dumez <christophe.dumez@intel.com>
[gstreamer] assertion in g_object_unref from _WebKitWebAudioSourcePrivate destructor
https://bugs.webkit.org/show_bug.cgi?id=107374
Reviewed by Philippe Normand.
WebKitWebAudioSrc object gets unrefed one time too many in
_WebKitWebAudioSourcePrivate destructor, causing an assertion
in g_object_unref. This patch passes NULL instead of
g_object_unref to gst_task_new() so that the WebKitWebAudioSrc
object does not get unrefed when the GstTask is destroyed.
No new tests, already covered by webaudio tests.
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webkit_web_audio_src_init):
2013-01-20 Kentaro Hara <haraken@chromium.org>
[V8] Create a persistent wrapper for Window.prototype and innerGlobalObject
https://bugs.webkit.org/show_bug.cgi?id=107253
Reviewed by Adam Barth.
This is one of steps to avoid hitting an ASSERT()
that will be added in https://bugs.webkit.org/show_bug.cgi?id=107137 .
We should have a persistent wrapper for all DOM objects
and set a class id on the wrapper.
No tests. No change in behavior.
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::installDOMWindow):
2013-01-19 Philip Rogers <pdr@google.com>
Refactor SVGSVGElement to inherit from SVGStyledTransformableElement
https://bugs.webkit.org/show_bug.cgi?id=107393
Reviewed by Dirk Schulze.
This patch refactors SVGSVGElement to inherit from SVGStyledTransformableElement instead
of SVGStyledLocatableElement. In a followup patch, SVGStyledTransformableElement will
be refactored into SVGGraphicsElement which will match the spec:
https://svgwg.org/svg2-draft/single-page.html#struct-InterfaceSVGSVGElement
Tests: svg/transforms/svgsvgelement-transform-expected.svg
svg/transforms/svgsvgelement-transform.svg
* svg/SVGSVGElement.cpp:
(WebCore):
(WebCore::SVGSVGElement::SVGSVGElement):
(WebCore::SVGSVGElement::didMoveToNewDocument):
(WebCore::SVGSVGElement::parseAttribute):
(WebCore::SVGSVGElement::insertedInto):
(WebCore::SVGSVGElement::removedFrom):
* svg/SVGSVGElement.h:
(SVGSVGElement):
* svg/SVGSVGElement.idl:
2013-01-19 Philip Rogers <pdr@google.com>
Merge SVGStylable into SVGStyledElement
https://bugs.webkit.org/show_bug.cgi?id=106877
Reviewed by Dirk Schulze.
SVG2 changes element inheritance so all SVGElements are stylable. As a first-step towards a
cleaner class hierarchy, this patch moves SVGStylable into SVGStyledElement.
No new tests as this is just a refactoring.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/DOMSVG.h:
* bindings/scripts/CodeGeneratorObjC.pm:
* page/DOMWindow.idl:
* svg/SVGAElement.idl:
* svg/SVGAllInOne.cpp:
* svg/SVGCircleElement.idl:
* svg/SVGClipPathElement.idl:
* svg/SVGDefsElement.idl:
* svg/SVGDescElement.idl:
* svg/SVGEllipseElement.idl:
* svg/SVGFEBlendElement.idl:
* svg/SVGFEColorMatrixElement.idl:
* svg/SVGFEComponentTransferElement.idl:
* svg/SVGFECompositeElement.idl:
* svg/SVGFEConvolveMatrixElement.idl:
* svg/SVGFEDiffuseLightingElement.idl:
* svg/SVGFEDisplacementMapElement.idl:
* svg/SVGFEDropShadowElement.idl:
* svg/SVGFEFloodElement.idl:
* svg/SVGFEGaussianBlurElement.idl:
* svg/SVGFEImageElement.idl:
* svg/SVGFEMergeElement.idl:
* svg/SVGFEMorphologyElement.idl:
* svg/SVGFEOffsetElement.idl:
* svg/SVGFESpecularLightingElement.idl:
* svg/SVGFETileElement.idl:
* svg/SVGFETurbulenceElement.idl:
* svg/SVGFilterElement.idl:
* svg/SVGFilterPrimitiveStandardAttributes.idl:
* svg/SVGForeignObjectElement.idl:
* svg/SVGGElement.idl:
* svg/SVGGlyphRefElement.idl:
* svg/SVGGradientElement.idl:
* svg/SVGImageElement.idl:
* svg/SVGLineElement.idl:
* svg/SVGMarkerElement.idl:
* svg/SVGMaskElement.idl:
* svg/SVGMissingGlyphElement.idl:
* svg/SVGPathElement.idl:
* svg/SVGPatternElement.idl:
* svg/SVGPolygonElement.idl:
* svg/SVGPolylineElement.idl:
* svg/SVGRectElement.idl:
* svg/SVGSVGElement.idl:
* svg/SVGStopElement.idl:
* svg/SVGStylable.cpp: Removed.
* svg/SVGStylable.h: Removed.
* svg/SVGStylable.idl: Removed.
* svg/SVGStyledElement.h:
(WebCore):
* svg/SVGStyledElement.idl: Added.
* svg/SVGSwitchElement.idl:
* svg/SVGSymbolElement.idl:
* svg/SVGTextContentElement.idl:
* svg/SVGTitleElement.idl:
* svg/SVGUseElement.idl:
2013-01-19 Tim Horton <timothy_horton@apple.com>
CanvasRenderingContext2D::drawTextInternal should create a mask buffer compatible with that of the canvas
https://bugs.webkit.org/show_bug.cgi?id=107372
Reviewed by Simon Fraser.
No new tests, just matching acceleration modes.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawTextInternal): Create a buffer with the same acceleration mode as the canvas
instead of forcing the use of an accelerated buffer if we support acceleration; the canvas could be unaccelerated
even if USE(IOSURFACE_CANVAS_BACKING_STORE) is on.
2013-01-19 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
Delegated scrolling: Assertion on attempt to show a CSS sticky element
https://bugs.webkit.org/show_bug.cgi?id=106890
Reviewed by Kenneth Rohde Christiansen.
The problem was that frame view (when delegated scrolling enabled) calculated the positions of sticky elements for
a scroll event before sending scroll request. In case of multiple scroll events that caused assertion as the response
for previous scroll request was received after the expected sticky elements positions had been already updated for the following
scroll request.
No new tests. Covered by existing 'fast/css/sticky' tests.
* page/FrameView.cpp:
(WebCore::FrameView::setFixedVisibleContentRect):
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollTo):
2013-01-19 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][WebGL] Regression: WebGL Content is not drawn after resizing the canvas.
https://bugs.webkit.org/show_bug.cgi?id=107366
Reviewed by Kenneth Rohde Christiansen.
Window is shared between GraphicsSurface and its client.
Client doesn't own the Window. This patch ensures that client
doesn't delete the shared Window handle.
Covered by existing WebGL tests.
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::clear):
2013-01-18 Antti Koivisto <antti@apple.com>
Make renderer constructors take Element where possible
https://bugs.webkit.org/show_bug.cgi?id=107138
Reviewed by David Hyatt.
Tighter typing prevents bugs and enables optimizations.
The patch changes how anonymous rendererer are constructed. Previously Document* as the node parameter
indicated that the renderer was anonymous. This forced the code to operate on ContainerNodes (Document
is not an Element). Now anonymous renderers are constructed by passing null and the document is set by
separate setDocumentForAnonymous() call. The patch uses RenderFoo::createAnonymous() pattern consistently.
Most constructors are switched to take Element. RenderBlock still takes ContainerNode due to a few subclasses
(RenderView and RenderFlowThread) that pass in a Document.
* page/FrameView.cpp:
(WebCore::FrameView::updateScrollCorner):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::createAnonymous):
(WebCore::RenderBlock::createReplacementRunIn):
(WebCore::RenderBlock::updateFirstLetterStyle):
(WebCore::RenderBlock::createFirstLetterRenderer):
(WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
(WebCore::RenderBlock::createAnonymousColumnsWithParentRenderer):
(WebCore::RenderBlock::createAnonymousColumnSpanWithParentRenderer):
* rendering/RenderBlock.h:
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
(WebCore::RenderDeprecatedFlexibleBox::createAnonymous):
* rendering/RenderDeprecatedFlexibleBox.h:
(RenderDeprecatedFlexibleBox):
* rendering/RenderDetailsMarker.cpp:
(WebCore::RenderDetailsMarker::RenderDetailsMarker):
* rendering/RenderDetailsMarker.h:
(RenderDetailsMarker):
* rendering/RenderDialog.h:
(WebCore::RenderDialog::RenderDialog):
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::RenderFieldset):
* rendering/RenderFieldset.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::RenderFlexibleBox):
* rendering/RenderFlexibleBox.h:
(RenderFlexibleBox):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::RenderFlowThread):
* rendering/RenderFlowThread.h:
* rendering/RenderFullScreen.cpp:
(RenderFullScreenPlaceholder::RenderFullScreenPlaceholder):
(RenderFullScreen::RenderFullScreen):
(RenderFullScreen::createAnonymous):
(RenderFullScreen::wrapRenderer):
* rendering/RenderFullScreen.h:
(RenderFullScreen):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::RenderGrid):
* rendering/RenderGrid.h:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::RenderImage):
(WebCore::RenderImage::createAnonymous):
* rendering/RenderImage.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::RenderInline):
(WebCore::RenderInline::createAnonymous):
(WebCore::RenderInline::addChildIgnoringContinuation):
* rendering/RenderInline.h:
(RenderInline):
(WebCore::RenderInline::node):
Add version with covariant Element return type.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateScrollCornerStyle):
(WebCore::RenderLayer::updateResizerStyle):
(WebCore::RenderLayer::createReflection):
(WebCore::RenderListItem::RenderListItem):
(WebCore::RenderListItem::styleDidChange):
* rendering/RenderListItem.h:
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::RenderListMarker):
(WebCore::RenderListMarker::createAnonymous):
* rendering/RenderListMarker.h:
* rendering/RenderMediaControlElements.cpp:
(WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
(WebCore::RenderMediaControlTimeDisplay::RenderMediaControlTimeDisplay):
(WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement):
* rendering/RenderMediaControlElements.h:
(RenderMediaVolumeSliderContainer):
(RenderMediaControlTimeDisplay):
(RenderTextTrackContainerElement):
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
(WebCore::RenderMultiColumnBlock::ensureColumnSets):
* rendering/RenderMultiColumnBlock.h:
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
* rendering/RenderMultiColumnFlowThread.h:
(RenderMultiColumnFlowThread):
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
(WebCore::RenderMultiColumnSet::createAnonymous):
* rendering/RenderMultiColumnSet.h:
(RenderMultiColumnSet):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
* rendering/RenderNamedFlowThread.h:
(RenderNamedFlowThread):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::RenderObject):
* rendering/RenderObject.h:
Passed in null node indicates that the renderer is anonymous. Remove now unnecessary setIsAnonymous() function.
(WebCore::RenderObject::isAnonymous):
(WebCore::RenderObject::setDocumentForAnonymous):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::RenderRegion):
* rendering/RenderRegion.h:
* rendering/RenderRegionSet.cpp:
(WebCore::RenderRegionSet::RenderRegionSet):
* rendering/RenderRegionSet.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::RenderReplaced):
* rendering/RenderReplaced.h:
* rendering/RenderReplica.cpp:
(WebCore::RenderReplica::RenderReplica):
(WebCore::RenderReplica::createAnonymous):
* rendering/RenderReplica.h:
(RenderReplica):
* rendering/RenderRuby.cpp:
(WebCore::createAnonymousRubyInlineBlock):
(WebCore::RenderRubyAsInline::RenderRubyAsInline):
(WebCore::RenderRubyAsBlock::RenderRubyAsBlock):
* rendering/RenderRuby.h:
(RenderRubyAsInline):
(RenderRubyAsBlock):
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::RenderRubyBase):
(WebCore::RenderRubyBase::createAnonymous):
* rendering/RenderRubyBase.h:
(RenderRubyBase):
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::RenderRubyRun):
(WebCore::RenderRubyRun::createRubyBase):
(WebCore::RenderRubyRun::staticCreateRubyRun):
* rendering/RenderRubyRun.h:
* rendering/RenderRubyText.cpp:
(WebCore::RenderRubyText::RenderRubyText):
* rendering/RenderRubyText.h:
* rendering/RenderScrollbar.cpp:
(WebCore::RenderScrollbar::updateScrollbarPart):
* rendering/RenderScrollbarPart.cpp:
(WebCore::RenderScrollbarPart::RenderScrollbarPart):
(WebCore::RenderScrollbarPart::createAnonymous):
* rendering/RenderScrollbarPart.h:
(RenderScrollbarPart):
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::RenderSearchField):
* rendering/RenderSearchField.h:
(RenderSearchField):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable):
(WebCore::RenderTable::createAnonymousWithParentRenderer):
* rendering/RenderTable.h:
* rendering/RenderTableCaption.cpp:
(WebCore::RenderTableCaption::RenderTableCaption):
* rendering/RenderTableCaption.h:
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::RenderTableCell):
(WebCore::RenderTableCell::createAnonymousWithParentRenderer):
* rendering/RenderTableCell.h:
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::RenderTableCol):
* rendering/RenderTableCol.h:
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::RenderTableRow):
(WebCore::RenderTableRow::createAnonymousWithParentRenderer):
* rendering/RenderTableRow.h:
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::RenderTableSection):
(WebCore::RenderTableSection::createAnonymousWithParentRenderer):
* rendering/RenderTableSection.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::RenderText):
Pass null and use setDocumentForAnonymous() if a RenderText is created with the Document as renderer
to keep them working. Text renderers should be factored similarly to the rest.
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::RenderTextControl):
* rendering/RenderTextControl.h:
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
* rendering/RenderTextControlMultiLine.h:
(RenderTextControlMultiLine):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
* rendering/RenderTextControlSingleLine.h:
(RenderTextControlSingleLine):
(WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
* rendering/RenderTextTrackCue.cpp:
(WebCore::RenderTextTrackCue::RenderTextTrackCue):
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::RenderWidget):
* rendering/RenderWidget.h:
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::RenderMathMLBlock):
(WebCore::RenderMathMLBlock::createAnonymousMathMLBlock):
* rendering/mathml/RenderMathMLBlock.h:
* rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::createMathMLOperator):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::RenderMathMLOperator):
(WebCore::RenderMathMLOperator::updateFromElement):
(WebCore::RenderMathMLOperator::createGlyph):
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::RenderMathMLRow):
(WebCore::RenderMathMLRow::createAnonymousWithParentRenderer):
* rendering/mathml/RenderMathMLRow.h:
* rendering/style/ContentData.cpp:
(WebCore::ImageContentData::createRenderer):
* rendering/svg/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::RenderSVGBlock):
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::RenderSVGInline):
* rendering/svg/RenderSVGInline.h:
* rendering/svg/RenderSVGTSpan.cpp:
(WebCore::RenderSVGTSpan::RenderSVGTSpan):
* rendering/svg/RenderSVGTSpan.h:
* rendering/svg/RenderSVGTextPath.cpp:
(WebCore::RenderSVGTextPath::RenderSVGTextPath):
* rendering/svg/RenderSVGTextPath.h:
2013-01-19 Zan Dobersek <zdobersek@igalia.com>
Unreviewed GTK build fix.
Add the build targets introduced in r140231 to the list.
* GNUmakefile.list.am:
2013-01-18 Huang Dongsung <luxtella@company100.net>
[Mac] Remove unused pageScaleFactor and positionRelativeToBase arguments in GraphicsLayerCA.
https://bugs.webkit.org/show_bug.cgi?id=107357
Reviewed by Ryosuke Niwa.
Several methods in GraphicsLayerCA receive a pageScaleFactor or a
positionRelativeToBase argument but don't use the arguments, so this patch
removes them.
No new tests. This is just a refactoring of the existing code.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateGeometry):
(WebCore::GraphicsLayerCA::updateStructuralLayer):
(WebCore::GraphicsLayerCA::ensureStructuralLayer):
(WebCore::GraphicsLayerCA::updateLayerDrawsContent):
(WebCore::GraphicsLayerCA::updateContentsScale):
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
* platform/graphics/ca/GraphicsLayerCA.h:
(GraphicsLayerCA):
2013-01-18 Dimitri Glazkov <dglazkov@chromium.org>
Move attributeNameMatches from SelectorChecker to its proper place on Attribute.
https://bugs.webkit.org/show_bug.cgi?id=107358
Reviewed by Andreas Kling.
Refactoring, covered by existing tests.
* css/SelectorChecker.cpp:
(WebCore::anyAttributeMatches): Changed to use the new name.
* css/SelectorChecker.h:
(SelectorChecker): Moved attributeNameMatches out of here.
(WebCore::SelectorChecker::checkExactAttribute): Changed to use the new name.
* dom/Attribute.h:
(WebCore::Attribute::matches): Moved attributeNameMatches to here.
2013-01-18 Simon Fraser <simon.fraser@apple.com>
Fix bug that caused pages with fixed backgrounds to not be fast scrollable
https://bugs.webkit.org/show_bug.cgi?id=107354
Reviewed by Sam Weinig.
Correct the change to RenderObject::styleWillChange() made in r140223. This
condition is checking that we're painting the root background, so it checks if
the renderer is the root, or if it's the body, and the document element's renderer
has no background (which means that the body's background propagates to the root).
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
2013-01-18 Dima Gorbik <dgorbik@apple.com>
Remove a TextTrack.h include from the Element.h and move WebVTT related stuff outside the Element
https://bugs.webkit.org/show_bug.cgi?id=107080
Reviewed by Sam Weinig.
WebVTT objects are now subclasses of the Element. This allows us to remove major WebVTT chunks of code from
Element.h and NodeRareData. WebVTTElement is deriving from HTMLElement and not Element to prevent possible
problems that could happen because we reuse qTags that are being used in HTML like <b>, <i> and <u>.
No new tests. This is just a refactoring of the existing code.
* CMakeLists.txt:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRules):
(WebCore::StyleResolver::canShareStyleWithElement):
* dom/Element.cpp:
* dom/Element.h:
* dom/ElementRareData.h:
(WebCore::ElementRareData::ElementRareData):
* dom/Node.h:
(WebCore::Node::isWebVTTElement):
* html/track/TextTrack.h:
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::copyWebVTTNodeToDOMTree):
(WebCore::TextTrackCue::markFutureAndPastNodes):
* html/track/WebVTTElement.cpp: Added.
(WebCore::WebVTTElement::create):
(WebCore::WebVTTElement::cloneElementWithoutAttributesAndChildren):
* html/track/WebVTTElement.h: Added.
(WebCore::WebVTTElement::setWebVTTNodeType):
(WebCore::WebVTTElement::webVTTNodeType):
(WebCore::WebVTTElement::WebVTTElement):
(WebCore::toWebVTTElement):
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::constructTreeFromToken):
2013-01-18 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=106946
Sticky-position elements can jump around/hide on rubber-banding
Reviewed by Simon Fraser.
This patch adds a new function called viewportConstrainedVisibleContentRect()
since there are a number of places where we need a visibleContectRect() that does
not allow scroll offsets that indicate the rubber-banding that is happening. And
this patch fixes the bug for sticky by calling this function in two new places.
* page/FrameView.cpp:
(WebCore::FrameView::viewportConstrainedVisibleContentRect):
(WebCore):
* page/FrameView.h:
(FrameView):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::stickyPositionOffset):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
(WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
2013-01-18 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140206.
http://trac.webkit.org/changeset/140206
https://bugs.webkit.org/show_bug.cgi?id=107346
Caused crash on wordpress.com (Requested by smfr on #webkit).
* rendering/RenderBox.cpp:
(WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
2013-01-18 Simon Fraser <simon.fraser@apple.com>
Allow fixed background layers to be moved by the ScrollingCoordinator
https://bugs.webkit.org/show_bug.cgi?id=107213
Reviewed by Tim Horton.
Start using the RenderView's RenderLayerBacking's background layer for
fixed root backgrounds (those which have background images all of which have
background-attachment: fixed).
The background-layer is contained in the RenderLayer's RenderLayerBacking's
containment view, so it gets page scale applied to it, but scrolling happens
above this layer, so the background has to be counter-scrolled. We plumb
this layer through to the ScrollingCoordinator so that this counter-scrolling
can be done on the scrolling thread.
Test: platform/mac/tiled-drawing/fixed-background/fixed-body-background-positioned.html
* WebCore.xcodeproj/project.pbxproj: Add ScrollingStateScrollingNodeMac.mm
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::counterScrollingLayerForFrameView): New function to get
the counter-scrolling layer.
(WebCore::ScrollingCoordinator::updateMainFrameScrollPosition): Sync or set the position of the
counter-scrolling layer just like we do for the main scrolling layer.
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::updateScrollingNode):
* page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::ScrollingStateNode): setScrollLayer() renamed to setScrollPlatformLayer(),
and added a FIXME comment because this code is confusing and possibly wrong.
* page/scrolling/ScrollingStateNode.h: Renamed setScrollLayer() to setScrollPlatformLayer().
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
* page/scrolling/ScrollingStateScrollingNode.h:
(ScrollingStateScrollingNode): Track the counter-scrolling layer.
(WebCore::ScrollingStateScrollingNode::counterScrollingLayer):
(WebCore::ScrollingStateScrollingNode::counterScrollingLayerDidChange):
(WebCore::ScrollingStateScrollingNode::setCounterScrollingLayerDidChange):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
(ScrollingCoordinatorMac): Add updateScrollingNode() which is less expensive than frameViewRootLayerDidChange()
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange): Fetch the counter-scrolling layer if we have one.
(WebCore::ScrollingCoordinatorMac::setCounterScrollingLayerForNode):
(WebCore::ScrollingCoordinatorMac::updateScrollingNode):
* page/scrolling/mac/ScrollingStateNodeMac.mm:
(WebCore::ScrollingStateNode::setScrollPlatformLayer):
* page/scrolling/mac/ScrollingStateScrollingNodeMac.mm: New file for implementation of setCounterScrollingLayer().
(WebCore::ScrollingStateScrollingNode::counterScrollingPlatformLayer):
(WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
(ScrollingTreeScrollingNodeMac):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::update):
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::fixedBackgroundPaintsInLocalCoordinates):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry): If we're painting into the fixed root layer,
we want to always paint with the top,left at 0,0.
* rendering/RenderBoxModelObject.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): In the fixed root background case,
we can make the background layer viewport-sized, and we have to set its counter-scrolled position.
(WebCore::RenderLayerBacking::updateBackgroundLayer): If the background layer was created or destroyed,
we have to tell the ScrollingCoordinator.
(WebCore::RenderLayerBacking::didCommitChangesForLayer): Send the GraphicsLayer down.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::didFlushChangesForLayer): If the background layer changed (e.g. it became
tiled) we need to tell the ScrollingCoordinator.
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): We failed to update the borders on new
layers sometimes; this fixes that.
(WebCore::RenderLayerCompositor::frameViewDidScroll): In the non-threaded scrolling case, if we have
a fixed background layer, we need to update its position.
(WebCore::RenderLayerCompositor::fixedRootBackgroundLayerChanged): Feed the newly created/destroyed layer
down to the ScrollingCoordinator.
(WebCore::RenderLayerCompositor::supportsFixedRootBackgroundCompositing):
(WebCore::RenderLayerCompositor::needsFixedRootBackgroundLayer):
* rendering/RenderLayerCompositor.h:
* rendering/RenderObject.cpp:
(WebCore::rendererHasBackground):
(WebCore::RenderObject::styleWillChange): If the compositor supports fixed root backgrounds, we no longer
treat these as slow repaint objects.
* rendering/RenderView.cpp:
(WebCore::RenderView::rootBackgroundIsEntirelyFixed): Helper function called by RLC.
* rendering/RenderView.h:
2013-01-18 Alec Flett <alecflett@chromium.org>
IndexedDB: Switch to new createTransaction call
https://bugs.webkit.org/show_bug.cgi?id=107311
Reviewed by Tony Chang.
Convert frontend callers to use the new backend createTransaction
call which is the final divorce between the frontend and backend
transaction objects. This allows an asynchronous call in Chromium
and allows the front and backend to have their own lifecycle,
allowing the backend to be cleaned up as soon as a transaction is complete,
rather than waiting for the JS object to get cleaned up.
No new tests, this is a refactor covered by existing tests.
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::commit):
(WebCore::IDBDatabaseBackendImpl::abort):
(WebCore::IDBDatabaseBackendImpl::createTransaction):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
* Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
(WebCore::IDBDatabaseCallbacksImpl::onAbort):
(WebCore::IDBDatabaseCallbacksImpl::onComplete):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::create):
(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::setActive):
(WebCore::IDBTransaction::abort):
* Modules/indexeddb/IDBTransaction.h:
(WebCore):
(IDBTransaction):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::create):
(WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
(WebCore::IDBTransactionBackendImpl::abort):
(WebCore::IDBTransactionBackendImpl::commit):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(IDBTransactionBackendImpl):
(WebCore::IDBTransactionBackendImpl::setCallbacks):
2013-01-18 Brady Eidson <beidson@apple.com>
Rework NetworkProcess resource load identifiers.
<rdar://problem/12934449> and https://bugs.webkit.org/show_bug.cgi?id=107192
Reviewed by Alexey Proskuryakov.
No new tests (No effect in tested configs).
* WebCore.exp.in:
Include an identifier argument for synchronous loads:
* loader/LoaderStrategy.cpp:
(WebCore::LoaderStrategy::loadResourceSynchronously):
* loader/LoaderStrategy.h:
Pass along a unique identifier to the synchronous load:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadResourceSynchronously):
Remove the "setIdentifier" method:
* loader/ResourceLoader.cpp:
* loader/ResourceLoader.h:
2013-01-18 Shinya Kawanaka <shinyak@chromium.org>
Introduce isHTMLTextFormControlElement and toHTMLTextFormControlElement instead of toTextFormControl
https://bugs.webkit.org/show_bug.cgi?id=107089
Reviewed by Kent Tamura.
toTextFormControl(node) returns 0 if node is not HTMLTextFormControl. In recent coding convention,
we only have ASSERT and statc_cast in this kind of conversion function. So this code looks like
having a bad cast, though it does not.
In this patch, we convert toTextFromControl to isHTMLTextFormControlElement and toHTMLFormControlElement,
which aligns our coding convention.
No new tests, simple refactoring.
* editing/Editor.cpp:
(WebCore::Editor::selectionForCommand):
(WebCore::Editor::setBaseWritingDirection):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::directionality):
* html/HTMLTextFormControlElement.cpp:
(WebCore::enclosingTextFormControl):
* html/HTMLTextFormControlElement.h:
(WebCore::isHTMLTextFormControlElement):
(WebCore):
(WebCore::toHTMLTextFormControlElement):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::RenderTextControl):
(WebCore::RenderTextControl::layoutSpecialExcludedChild):
* testing/Internals.cpp:
(WebCore::Internals::visiblePlaceholder):
2013-01-18 Emil A Eklund <eae@chromium.org>
Change RenderStyle::getRoundedInnerBorderFor to take ints for border widths
https://bugs.webkit.org/show_bug.cgi?id=107331
Reviewed by Levi Weintraub.
Borders are always represented as ints yet RenderStyle::
getRoundedInnerBorderFor upcasts from int to LayoutUnit when
calling getRoundedInnerBorderFor.
No new tests, no change in functionality.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::getRoundedInnerBorderFor):
* rendering/style/RenderStyle.h:
Change getRoundedInnerBorderFor to use ints for border widths.
2013-01-18 Adam Barth <abarth@webkit.org>
BackgroundHTMLParser shouldn't create AtomicStrings
https://bugs.webkit.org/show_bug.cgi?id=107150
Reviewed by Tony Gentilcore.
Previously, we were creating an AtomicString from the HTMLToken for
every start and end tag. This caused us to have a static dependency on
the parser thread's atomic string table. We want to avoid static
dependencies because we want to eventually run the background parser
using a library like libdispatch that will let us run many version in
parallel.
This patch uses a different approach whereby we use the tag name from
the CompactHTMLToken. In order to avoid calling strcmp excessively, we
use StringImpl::hash to quickly reject matches with some common tag
names. As a side effect, the hash value will be cached in the
StringImpl, speeding up atomization once these StringImpls arrive on
the main thread.
This patch also improves the performance on html-parser-srcdoc.html.
With the patch in bug 107236 applied (which focuses the benchmark more
tightly on the parser), we spend 2.3% less time on the main thread
(likely due to pre-caching the hash values) and 11.5% less time on the
parser thread.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore):
(WebCore::threadSafeEqual):
(WebCore::threadSafeMatch):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
2013-01-18 Tony Gentilcore <tonyg@chromium.org>
Run defer scripts in the threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=107320
Reviewed by Eric Seidel.
No new tests because covered by http/tests/misc/script-defer.html.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::prepareToStopParsing):
(WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
2013-01-18 Robert Hogan <robert@webkit.org>
fast/inline/fixed-pos-moves-with-abspos-parent-relative-ancestor.html is crashing after r140024
https://bugs.webkit.org/show_bug.cgi?id=107209
Reviewed by David Hyatt.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutPositionedObjects): r140024 forgot to layout the fixedpos object after
marking it.
2013-01-18 Abhishek Arya <inferno@chromium.org>
Heap-use-after-free in WebCore::RenderObject::isDescendantOf
https://bugs.webkit.org/show_bug.cgi?id=107226
Reviewed by David Hyatt.
Test: fast/block/float/overhanging-float-not-removed-crash.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
Skip anonymous blocks in the chain to get the enclosing block and
be able to correctly mark the overhanging floats in the next siblings.
2013-01-18 Chris Hopman <cjhopman@google.com>
Fix scrollRectToVisible in the presence of transforms
https://bugs.webkit.org/show_bug.cgi?id=105574
Reviewed by Simon Fraser.
When scrolling to reveal an overflow layer, the required scroll was
being calculated in absolute coordinates. To properly account for
transforms, this calculation should be done in the local coordinates
of the renderBox.
Tests: editing/input/reveal-selection-transformed-overflow-parent.html
editing/input/reveal-selection-transformed-textarea.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
When scrolling to reveal an overflow layer, calculate the required
scroll in the local coordinates of the RenderBox.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::absoluteToLocalQuad):
(WebCore):
* rendering/RenderObject.h:
(RenderObject):
Add function to convert an absolute quad to a local quad.
2013-01-18 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Add support for min-content
https://bugs.webkit.org/show_bug.cgi?id=106474
Reviewed by Ojan Vafai.
Tests: fast/css-grid-layout/minmax-min-content-column-resolution-columns.html
fast/css-grid-layout/minmax-min-content-column-resolution-rows.html
This change adds support to properly size min-content as long as the grid items and the grid element
don't have orthogonal writing-modes. Orthogonal writing modes will be handled in a follow-up bug
to keep the patch small-ish.
This change implements a subset of the specification's algorithm, taking some shortcuts where the
extra complexity wasn't a clear win for now: e.g. the specification relies on behavior customization
through functors to share code among more complex cases - like spanning columns / rows. These shortcuts
have been marked as FIXME / comments in the code so that they can be evaluated and fixed as we implement
more of the complexity.
* platform/Length.h:
(WebCore::Length::isMinContent):
(WebCore::Length::isMaxContent):
Helper functions.
* rendering/RenderGrid.cpp:
(WebCore::GridTrack::maxBreadthIfNotInfinite):
Helper function that returns the max breadth if finite and the used breadth otherwise.
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
Updated to call resolveContentBasedTrackSizingFunctions.
(WebCore::RenderGrid::computeUsedBreadthOfMinLength):
(WebCore::RenderGrid::computeUsedBreadthOfMaxLength):
(WebCore::RenderGrid::computeUsedBreadthOfSpecifiedLength):
Split computeUsedBreadthOfLength into min and max side so that we can return the default values accordingly.
computeUsedBreadthOfSpecifiedLength shares the common code. Also made these functions 'const'.
(WebCore::RenderGrid::minContentForChild):
This function returns the 'min-content' value based on layout / compute preferred logical widths information.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
This is the core function that implements the sizing. It currently doesn't share much code between the branches,
which will be done as we implement more of the algorithm.
(WebCore::RenderGrid::distributeSpaceToTracks):
Clamped the growthShare to positive value only. This is required to handle cases where min-content is bigger
than max track breadth. Added a comment about this deviation from the specification.
(WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
Debug only method. It is a sanity check as our algorithm should *never* shrink the used breadth to a value
smaller than the computed min track breadth.
(WebCore::RenderGrid::layoutGridItems):
Added 2 ASSERT using tracksAreWiderThanMinTrackBreadth.
(WebCore::RenderGrid::resolveGridPosition):
Helper overriden instance.
* rendering/RenderGrid.h:
Added the new functions. Also made more core functions take both grid tracks.
2013-01-18 Geoffrey Garen <ggaren@apple.com>
Weak GC maps should be easier to use
https://bugs.webkit.org/show_bug.cgi?id=107312
Reviewed by Sam Weinig.
Since weak GC maps are so easy to use now, let's use them for the DOM
string cache.
* WebCore.exp.in:
* bindings/js/DOMWrapperWorld.cpp:
(WebCore):
(WebCore::DOMWrapperWorld::DOMWrapperWorld):
* bindings/js/DOMWrapperWorld.h:
(WebCore):
(WebCore::DOMWrapperWorld::globalData):
(DOMWrapperWorld):
* bindings/js/JSDOMBinding.cpp:
(WebCore):
* bindings/js/JSDOMBinding.h:
(WebCore):
(WebCore::jsStringWithCache):
2013-01-18 Tim Volodine <timvolodine@chromium.org>
Text Autosizing: don't autosize headers with multiple inline links.
https://bugs.webkit.org/show_bug.cgi?id=106792
Reviewed by Kenneth Rohde Christiansen.
This patch includes code for detecting rows of links typically seen
in headers or footers of webpages. Such rows of links should not be
autosized.
The heuristics to detect such rows of links are based on the appearance
of headers in most websites: i.e. links are inline, there are at least three
of them, they should have the same font size with possibly only short textual
separators between them (max 3 characters) and there should be no line breaks
(i.e. <br> elements) between them.
Tests: fast/text-autosizing/header-li-links-autosizing.html
fast/text-autosizing/header-links-autosizing-different-fontsize.html
fast/text-autosizing/header-links-autosizing.html
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::containerShouldBeAutosized):
(WebCore::TextAutosizer::containerIsRowOfLinks):
(WebCore):
* rendering/TextAutosizer.h:
2013-01-18 Levi Weintraub <leviw@chromium.org>
LayoutUnit should round half consistently, not away from zero
https://bugs.webkit.org/show_bug.cgi?id=107208
Reviewed by Eric Seidel.
The current implementation of LayoutUnit::round() always rounds half away from zero. This can result in
a shift of 1 pixel moving an element aligned at a half-pixel by 2. This problem is particularly common with
RenderLayers, which pass the sub-pixel accumulation into their renderers after translating the graphics
context passed in by their rounded location. This changes round() to always round 0.5 up.
Test: fast/sub-pixel/sub-pixel-root-layer.html
* platform/LayoutUnit.h:
(WebCore::LayoutUnit::round): Always round 0.5 up.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents): We no longer need to prevent rootLayers from passing in a
sub-pixel offset. This eliminates the shifting of elements when applying translateZ(0) or similar.
2013-01-18 Kentaro Hara <haraken@chromium.org>
[V8] Remove custom V8ScriptProfileNodeCustom::toV8()
https://bugs.webkit.org/show_bug.cgi?id=107245
Reviewed by Adam Barth.
V8ScriptProfileNodeCustom::toV8() needs not to be custom.
Furthermore, the current custom toV8() is wrong in that
it doesn't use a creationContext and it doesn't set a wrapper
class id. This is one of steps to avoiding ASSERT()s
that will be added in https://bugs.webkit.org/show_bug.cgi?id=107137 .
No tests. No change in behavior.
* UseV8.cmake:
* WebCore.gypi:
* bindings/v8/custom/V8ScriptProfileNodeCustom.cpp: Removed.
* inspector/ScriptProfileNode.idl:
2013-01-18 Ali Juma <ajuma@chromium.org>
[chromium] Convert WebTransformOperations into pure virtual
https://bugs.webkit.org/show_bug.cgi?id=105553
Reviewed by James Robinson.
This removes the implementation of WebTransformOperations and updates
users to construct instances using a factory function. This also adds
the implementation of WebTransformKeyFrame.
No new tests, no change in functionality.
* WebCore.gypi:
* platform/chromium/support/WebTransformKeyframe.cpp: Copied from Source/Platform/chromium/public/WebTransformKeyframe.h.
(WebKit):
(WebKit::WebTransformKeyframe::WebTransformKeyframe):
(WebKit::WebTransformKeyframe::~WebTransformKeyframe):
(WebKit::WebTransformKeyframe::time):
(WebKit::WebTransformKeyframe::value):
* platform/chromium/support/WebTransformOperations.cpp: Removed.
* platform/graphics/chromium/AnimationTranslationUtil.cpp:
(WebCore::toWebTransformOperations):
(WebCore::WebTransformAnimationCurve):
2013-01-18 Arko Saha <arko@motorola.com>
PropertyCollection test fails on JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=106997
Reviewed by Kentaro Hara.
Made changes in CodeGeneratorJS.pm so that it can use
toJS(JSC::ExecState*, JSDOMGlobalObject*, PropertyNodeList*)
to wrap the object and return PropertyNodeList instead of NodeList.
Test: fast/dom/MicroData/propertiescollection-crash.html
fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
2013-01-18 Dominic Mazzoni <dmazzoni@google.com>
AX: Improve table-guessing heuristics
https://bugs.webkit.org/show_bug.cgi?id=107042
Reviewed by Chris Fleizach.
Adds some more rules so that tables with cell borders, empty-cells,
col, colgroup, or >= 20 rows are all considered data tables, not
layout tables.
Test: accessibility/table-detection.html (modified)
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isDataTable):
2013-01-18 Terry Anderson <tdanderson@chromium.org>
Scroll gestures should not create wheel events
https://bugs.webkit.org/show_bug.cgi?id=103952
Reviewed by James Robinson.
Tests: fast/events/touch/gesture/touch-gesture-scroll-div-propagated.html
fast/events/touch/gesture/touch-gesture-scroll-div-twice-propagated.html
fast/events/touch/gesture/touch-gesture-scroll-iframe-editable.html
fast/events/touch/gesture/touch-gesture-scroll-iframe-propagated.html
fast/events/touch/gesture/touch-gesture-scroll-page-propagated.html
In EventHandler::handleGestureEvent(), scroll gestures should not be handled by synthesizing
and dispatching wheel events; we should instead scroll the relevant layer directly.
Note that this patch should be landed together with the patch for
https://bugs.webkit.org/show_bug.cgi?id=106589.
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::clear):
(WebCore::EventHandler::handleGestureEvent):
(WebCore::EventHandler::passGestureEventToWidget):
(WebCore::EventHandler::passGestureEventToWidgetIfPossible):
(WebCore):
(WebCore::closestScrollableNodeInDocumentIfPossibleOrSelfIfNotScrollable):
(WebCore::EventHandler::handleGestureScrollBegin):
(WebCore::EventHandler::handleGestureScrollUpdate):
(WebCore::EventHandler::isScrollbarHandlingGestures):
* page/EventHandler.h:
(EventHandler):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollByRecursively):
* rendering/RenderLayer.h:
2013-01-18 Nate Chapin <japhet@chromium.org>
Cannot abort multiple XHR POSTs made to same url
https://bugs.webkit.org/show_bug.cgi?id=106937
Reviewed by Alexey Proskuryakov.
Test: http/tests/cache/cancel-multiple-post-xhrs.html
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::removeClient): Call allClientsRemoved() regardless
of whether this resource is inCache(). Otherwise, CachedRawResources will
not have the opportunity to cancel as expected. However, don't cancel
if the last client was removed because we're in the middle of switching
the clients over to a successfully revalidated resource.
2013-01-18 Dima Gorbik <dgorbik@apple.com>
Implement ::cue() pseudo element property whitelist
https://bugs.webkit.org/show_bug.cgi?id=105477
Reviewed by Antti Koivisto.
Only allowed by specs properties are applied to WebVTT nodes. We used whitelists before for the region
style rule so this refactors the code a little bit to pass bitfields that contain the information on which
whitelists should be used.
Test: media/track/track-css-property-whitelist.html
* css/RuleSet.cpp:
(WebCore::RuleData::RuleData): set a region bit when creating a RuleData.
(WebCore::RuleSet::addRule): set a cue bit when PseudoCue type is set for a selector.
* css/RuleSet.h: add the new bitfield as an ivar and setters/getters to access it.
(WebCore::RuleData::isInRegionRule):
(WebCore::RuleData::whitelistType):
(WebCore::RuleData::isInCueRule):
(WebCore::RuleData::setIsInCueRule):
* css/StyleResolver.cpp: refactor the code to pass a bitfield instead of single bits.
(WebCore::StyleResolver::addMatchedProperties):
(WebCore::StyleResolver::sortAndTransferMatchedRules):
(WebCore::StyleResolver::applyProperties):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::isValidCueStyleProperty):
* css/StyleResolver.h:
2013-01-18 Tony Chang <tony@chromium.org>
Incorrect scrollable height during simplified layout
https://bugs.webkit.org/show_bug.cgi?id=107193
Reviewed by Ojan Vafai.
Test: fast/overflow/height-during-simplified-layout.html
When computing overflow, we use the height of the block before it was clamped
(i.e., before updateLogicalHeight() has been called).
During simplfied layout, we use the previous sizes rather than doing a full
layout. We still compute overflow, but we were using the clamped height rather
than the full height.
This caused us to incorrectly compute the overflow by the vertical padding.
Since we were passing in the already clamped clientHeight to RenderBlock::computeOverflow,
we would only include the overflow from our children sizes and not include the overflow
from ourselves caused by padding + content.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::simplifiedLayout): Use the scrollable height rather than the
already clamped height.
2013-01-18 Joe Mason <jmason@rim.com>
[BlackBerry] fix compile warnings in NetworkJob
https://bugs.webkit.org/show_bug.cgi?id=107293
Reviewed by Yong Li.
Internal PR: 283096
* platform/network/blackberry/NetworkJob.cpp:
(WebCore):
(WebCore::isAppendableHeader):
2013-01-18 Dominic Mazzoni <dmazzoni@google.com>
REGRESSION (r132699): Crashes in WebCore::TextIterator::handleTextNodeFirstLetter
https://bugs.webkit.org/show_bug.cgi?id=100688
Reviewed by Martin Robinson.
Prevent crashes when accessibilityObjectIsIgnored calls textUnderElement
while a subtree is being destroyed.
Covered by existing tests.
* accessibility/atk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
2013-01-18 Joe Mason <jmason@rim.com>
[BlackBerry] Only clear credentials when purgeCredentials is called
https://bugs.webkit.org/show_bug.cgi?id=107124
Reviewed by Yong Li.
Stop clearing credentials when sending out a request just in case they're wrong. That's stupid and
has race conditions. Only clear them when we know they're wrong.
Internal PR: 231158
Internal Reviewer: George Staikos
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::sendRequestWithCredentials):
(WebCore::NetworkJob::purgeCredentials):
2013-01-18 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] UI: add a context selector to show screenshot of any canvas in the log
https://bugs.webkit.org/show_bug.cgi?id=107274
Reviewed by Pavel Feldman.
Adding a canvas context selector to display in the replay image screenshot.
Drive-by: Reuse common CSS class "status-bar-item" to remove a lot of CSS duplication.
* English.lproj/localizedStrings.js:
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView):
(WebInspector.CanvasProfileView.prototype._createControlButton):
(WebInspector.CanvasProfileView.prototype._onReplayContextChanged):
(WebInspector.CanvasProfileView.prototype._onReplayFirstStepClick):
(WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
(WebInspector.CanvasProfileView.prototype._enableWaitIcon):
(WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
(WebInspector.CanvasProfileView.prototype._replayTraceLog):
(WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
(WebInspector.CanvasProfileView.prototype._requestReplayContextInfo.didReceiveResourceInfo):
(WebInspector.CanvasProfileView.prototype._requestReplayContextInfo):
* inspector/front-end/canvasProfiler.css:
* inspector/front-end/inspector.css:
(.status-bar button.status-bar-item img):
2013-01-18 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] add getResourceInfo and getResourceState methods to the protocol
https://bugs.webkit.org/show_bug.cgi?id=107280
Reviewed by Pavel Feldman.
We need to expose replayable resource info and replay state via the protocol.
The ResourceInfo describes a replayable resource, i.e. the info about a resource that was stored to replay it later.
The ResourceState describes a current state of a resource being replayed on the back-end.
* inspector/CodeGeneratorInspector.py:
* inspector/InjectedScriptCanvasModule.cpp:
(WebCore::InjectedScriptCanvasModule::replayTraceLog):
(WebCore):
(WebCore::InjectedScriptCanvasModule::resourceInfo):
(WebCore::InjectedScriptCanvasModule::resourceState):
* inspector/InjectedScriptCanvasModule.h:
(InjectedScriptCanvasModule):
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
* inspector/Inspector.json:
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::replayTraceLog):
(WebCore):
(WebCore::InspectorCanvasAgent::getResourceInfo):
(WebCore::InspectorCanvasAgent::getResourceState):
* inspector/InspectorCanvasAgent.h:
(InspectorCanvasAgent):
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
(WebInspector.CanvasProfileView.prototype._replayTraceLog):
2013-01-18 Sergio Villar Senin <svillar@igalia.com>
[Soup] Frequent crashes on redirections
https://bugs.webkit.org/show_bug.cgi?id=107240
Reviewed by Martin Robinson.
We must ensure that the ResourceHandle has not being cancelled
before performing a redirect. This could happen while we close the
stream used to read the redirect response because it is done
asynchronously.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::redirectCloseCallback): also renamed res to result.
2013-01-18 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: array grouping does not work big sparse arrays
https://bugs.webkit.org/show_bug.cgi?id=106897
Reviewed by Pavel Feldman.
Now we will choose between array index iteration and object properties iteration for sparse arrays.
* inspector/front-end/ObjectPropertiesSection.js:
(.doLoop):
(.countIterationCallback):
(.loopIterationCallback):
2013-01-18 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][WebGL] Fix Memory leaks in EGL and GLX surface.
https://bugs.webkit.org/show_bug.cgi?id=107100
Reviewed by Laszlo Gombos.
GLX and EGL surface don't release GL resources created by them.
This patch ensures that the leaks are fixed and
native display is not closed before releasing the current
context and surface.
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(GraphicsContext3DPrivate::releaseResources):
* platform/graphics/surfaces/egl/EGLSurface.cpp:
(WebCore::EGLWindowTransportSurface::destroy): Call base class to free any allocated GL resources.
* platform/graphics/surfaces/glx/GLXContext.cpp:
(WebCore::GLXOffScreenContext::platformReleaseCurrent):
(WebCore::GLXOffScreenContext::freeResources): Don't reset the display to null.
* platform/graphics/surfaces/glx/GLXSurface.cpp:
(WebCore::GLXTransportSurface::destroy): Call base class to free any allocated GL resources.
(WebCore::GLXPBuffer::freeResources): Call base class to free any allocated GL resources.
2013-01-18 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] introduce Resource.toDataURL
https://bugs.webkit.org/show_bug.cgi?id=107019
Reviewed by Pavel Feldman.
Resource.toDataURL will return string data url representation of a resource, if applicable.
For example, for a rendering context resource (2D or WebGL) it will return canvas.toDataURL().
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
2013-01-18 Csaba Osztrogonác <ossy@webkit.org>
One more unreviewed Windows buildfix after r140097.
* html/HTMLPlugInElement.h: Remove non-existent include.
2013-01-18 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed Windows buildfix after r140097.
* html/HTMLPlugInElement.h:
2013-01-18 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: remove dead code from heap profiler front-end
https://bugs.webkit.org/show_bug.cgi?id=107265
Reviewed by Pavel Feldman.
* inspector/front-end/HeapSnapshotView.js: removed unused methods.
2013-01-18 Yury Semikhatsky <yurys@chromium.org>
Unreviewed. Fix Qt minimal compilation after r140127
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentationCookie):
2013-01-18 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: make sure InspectorInstrumentationCookie is invalidated if inspected page was destroyed
https://bugs.webkit.org/show_bug.cgi?id=107232
Reviewed by Pavel Feldman.
Made InstrumentingAgents reference counted to make sure it is not deleted while there is
InspectorInstrumentationCookie with reference to it.
Introduced InstrumentingAgents::reset that is called from inspector controller destructor
to double check that references to all deleted agents are cleared.
InspectorInstrumentationCookie turned from std::pair into a custom class so that
we can avoid inclusion of InstrumentingAgents.h into InspectorInstrumentation.h
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::~InspectorController):
* inspector/InspectorController.h:
(InspectorController):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentationCookie::InspectorInstrumentationCookie):
(WebCore::InspectorInstrumentationCookie::operator=):
(WebCore::InspectorInstrumentationCookie::~InspectorInstrumentationCookie):
(WebCore::InspectorInstrumentation::didHandleEventImpl):
(WebCore::InspectorInstrumentation::didFireTimerImpl):
(WebCore::InspectorInstrumentation::didLayoutImpl):
(WebCore::InspectorInstrumentation::didPaintImpl):
(WebCore::InspectorInstrumentation::didRecalculateStyleImpl):
(WebCore::InspectorInstrumentation::didMatchRuleImpl):
(WebCore::InspectorInstrumentation::didProcessRuleImpl):
(WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
(WebCore::InspectorInstrumentation::retrieveTimelineAgent):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentationCookie):
(WebCore::InspectorInstrumentation::didCallFunction):
(WebCore::InspectorInstrumentation::didDispatchXHRReadyStateChangeEvent):
(WebCore::InspectorInstrumentation::didDispatchEvent):
(WebCore::InspectorInstrumentation::didHandleEvent):
(WebCore::InspectorInstrumentation::didDispatchEventOnWindow):
(WebCore::InspectorInstrumentation::didEvaluateScript):
(WebCore::InspectorInstrumentation::didFireTimer):
(WebCore::InspectorInstrumentation::didLayout):
(WebCore::InspectorInstrumentation::didDispatchXHRLoadEvent):
(WebCore::InspectorInstrumentation::didPaint):
(WebCore::InspectorInstrumentation::didRecalculateStyle):
(WebCore::InspectorInstrumentation::didMatchRule):
(WebCore::InspectorInstrumentation::didProcessRule):
(WebCore::InspectorInstrumentation::didReceiveResourceData):
(WebCore::InspectorInstrumentation::didWriteHTML):
(WebCore::InspectorInstrumentation::didFireAnimationFrame):
* inspector/InstrumentingAgents.cpp:
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore):
(WebCore::InstrumentingAgents::reset):
* inspector/InstrumentingAgents.h:
(WebCore::InstrumentingAgents::create):
(InstrumentingAgents):
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
(WebCore::WorkerInspectorController::~WorkerInspectorController):
* inspector/WorkerInspectorController.h:
(WorkerInspectorController):
2013-01-18 Jussi Kukkonen <jussi.kukkonen@intel.com>
[CMake] Fix indexeddb module build
https://bugs.webkit.org/show_bug.cgi?id=107247
Reviewed by Kentaro Hara.
Add missing files to WebCore_SOURCES so the indexeddb module
can be built.
* CMakeLists.txt:
2013-01-17 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Add early version of file system mappings editor to settings.
https://bugs.webkit.org/show_bug.cgi?id=107136
Reviewed by Pavel Feldman.
FileMapping simplified to use only one type of entries.
Added start/stopBatchUpdates to FileSystemWorkspaceProvider for better TabbedPane performance.
Added fileSystemProject experiment for file system support and (early and ugly) file system mappings editor behind this experiment.
* English.lproj/localizedStrings.js:
* WebCore.gypi:
* inspector/front-end/FileMapping.js:
(WebInspector.FileMapping):
(WebInspector.FileMapping.prototype._entryMatchesURL):
(WebInspector.FileMapping.prototype._entryURIPrefix):
(WebInspector.FileMapping.prototype.hasMappingForURL):
(WebInspector.FileMapping.prototype._innerURIForURL):
(WebInspector.FileMapping.prototype.uriForURL):
(WebInspector.FileMapping.prototype.urlForURI):
(WebInspector.FileMapping.prototype.mappingEntries):
(WebInspector.FileMapping.prototype.setMappingEntries):
(WebInspector.FileMapping.prototype.set _loadFromSettings.get this):
(WebInspector.FileMapping.prototype.set _loadFromSettings):
(WebInspector.FileMapping.Entry):
* inspector/front-end/FileSystemWorkspaceProvider.js:
(WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemRemoved):
* inspector/front-end/IsolatedFileSystemModel.js:
(WebInspector.IsolatedFileSystemModel.prototype._fileSystemAdded):
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/SettingsScreen.js:
(WebInspector.WorkspaceSettingsTab):
(WebInspector.WorkspaceSettingsTab.prototype._createFileSystemsEditor):
(WebInspector.WorkspaceSettingsTab.prototype._createShowTextInput):
(WebInspector.WorkspaceSettingsTab.prototype._createEditTextInput):
(WebInspector.WorkspaceSettingsTab.prototype._createRemoveButton):
(WebInspector.WorkspaceSettingsTab.prototype._createAddButton):
(WebInspector.WorkspaceSettingsTab.prototype._addFileSystemRow.removeFileSystemClicked):
(WebInspector.WorkspaceSettingsTab.prototype._addFileSystemRow.fileSystemRemoved):
(WebInspector.WorkspaceSettingsTab.prototype._addFileSystemRow):
(WebInspector.WorkspaceSettingsTab.prototype._addFileSystemClicked):
(WebInspector.WorkspaceSettingsTab.prototype._fileSystemAdded):
(WebInspector.WorkspaceSettingsTab.prototype._createFileMappingEditor):
(WebInspector.WorkspaceSettingsTab.prototype._addMappingRow.removeMappingClicked):
(WebInspector.WorkspaceSettingsTab.prototype._addMappingRow):
(WebInspector.WorkspaceSettingsTab.prototype._addFileMappingClicked):
* inspector/front-end/helpScreen.css:
(.settings-tab .file-systems-editor input.file-system-path):
(.settings-tab .file-mappings-editor .workspace-settings-row input):
(.settings-tab .file-mappings-editor .workspace-settings-row input.file-mapping-url):
(#workspace-tab-content .button:hover):
(#workspace-tab-content .workspace-settings-row:hover .button):
(#workspace-tab-content .workspace-settings-row .button):
(#workspace-tab-content .workspace-settings-row .remove-button):
(#workspace-tab-content .workspace-settings-row .add-button):
(#workspace-tab-content .workspace-settings-row .file-system-add-button):
(#workspace-tab-content .workspace-settings-row .file-system-add-button:hover):
* inspector/front-end/addIcon.png: Added.
2013-01-18 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Timeline: nest time/timeEnd records when possible (in glue-mode)
https://bugs.webkit.org/show_bug.cgi?id=100114
Reviewed by Pavel Feldman.
Nesting time/timeEnd intervals will provide a better overview on
what is happening.
* inspector/front-end/TimelinePresentationModel.js: Added logic that
reparents "time" record when "timeEnd" arrives.
2013-01-18 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: do not use localeCompare unless necessary
https://bugs.webkit.org/show_bug.cgi?id=107242
Reviewed by Vsevolod Vlasov.
Saving on performance here.
* inspector/front-end/CSSSelectorProfileView.js:
(WebInspector.CSSSelectorProfileView.prototype._sortProfile.selectorComparator):
(WebInspector.CSSSelectorProfileView.prototype._sortProfile.sourceComparator):
* inspector/front-end/CookiesTable.js:
(WebInspector.CookiesTable.prototype._sortCookies.compareTo):
(WebInspector.CookiesTable.prototype._sortCookies):
* inspector/front-end/DirectoryContentView.js:
(.nameCompare):
(.typeCompare):
* inspector/front-end/FileSystemModel.js:
(WebInspector.FileSystemModel.Entry.compare):
* inspector/front-end/FileSystemView.js:
(WebInspector.FileSystemView.EntryTreeElement.prototype._directoryContentReceived):
* inspector/front-end/FilteredItemSelectionDialog.js:
(WebInspector.OpenResourceDialog.compareFunction):
(WebInspector.OpenResourceDialog):
* inspector/front-end/NetworkRequest.js:
* inspector/front-end/ScriptsSearchScope.js:
(WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes.comparator):
(WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.ComputedStylePropertiesSection.prototype.onpopulate):
* inspector/front-end/utilities.js:
2013-01-18 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: fix Closure r2388 warnings
https://bugs.webkit.org/show_bug.cgi?id=107252
Reviewed by Pavel Feldman.
Surround all casts with brackets to avoid Closure warnings.
No new tests: no change in behaviour.
* inspector/front-end/BottomUpProfileDataGridTree.js:
(WebInspector.BottomUpProfileDataGridTree):
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype._filteredBreakpointLocations):
(WebInspector.BreakpointManager.prototype.toggleAllBreakpoints):
(WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMAgent.prototype.pushNodeToFrontend):
(WebInspector.DOMAgent.prototype.pushNodeByPathToFrontend):
(WebInspector.DOMAgent.prototype.querySelector):
(WebInspector.DOMAgent.prototype.querySelectorAll):
* inspector/front-end/DefaultScriptMapping.js:
(WebInspector.DefaultScriptMapping.prototype._scriptEdited):
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.SnippetScriptMapping.prototype.rawLocationToUILocation):
* inspector/front-end/TopDownProfileDataGridTree.js:
(WebInspector.TopDownProfileDataGridTree):
(WebInspector.TopDownProfileDataGridTree.prototype.exclude):
2013-01-18 Takashi Sakamoto <tasak@google.com>
Implement CSSHostRule for @host @-rules.
https://bugs.webkit.org/show_bug.cgi?id=102344
Reviewed by Dimitri Glazkov.
CSSHostRule is defined in Shadow DOM spec:
http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#css-host-rule-interface
To see or to modify @host @-rules by using inspector, we need to
implement CSSHostRule interface.
Test: fast/dom/shadow/css-hostrule-api.html
* DerivedSources.cpp:
Modified to include JSCSSHostRule.cpp.
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Added CSSHostRule.cpp, CSSHostRule.h, and CSSHostRule.idl.
* bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJS):
Add a new case that the given rule is @host @-rules to support @host
@-rules.
* bindings/objc/DOMCSS.mm:
(kitClass):
Add a new case that the given rule is @host @-rules to support @host
@-rules.
* bindings/v8/custom/V8CSSRuleCustom.cpp:
(WebCore::wrap):
* css/CSSAllInOne.cpp:
* css/CSSHostRule.cpp: Added.
(WebCore):
(WebCore::CSSHostRule::CSSHostRule):
(WebCore::CSSHostRule::cssText):
* css/CSSHostRule.h: Added.
(WebCore):
(CSSHostRule):
(WebCore::CSSHostRule::create):
Implemented class CSSHostRule which inherits CSSGroupingRule.
Since CSSHostRule has the same interface as CSSGroupingRule, it is
required to implement its constructor and to override only type
method and cssText method.
* css/CSSHostRule.idl: Added.
* css/CSSRule.h:
* css/CSSRule.idl:
Added internal HOST_RULE type number.
* css/StyleResolver.cpp:
(WebCore::collectCSSOMWrappers):
* css/StyleRule.cpp:
(WebCore::StyleRuleBase::reportMemoryUsage):
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy):
(WebCore::StyleRuleBase::createCSSOMWrapper):
Modified to handle StyleRuleHost.
* css/StyleRule.h:
(WebCore::StyleRuleBase::isHostRule):
(WebCore::StyleRuleHost::StyleRuleHost):
* css/StyleSheetContents.cpp:
(WebCore::childRulesHaveFailedOrCanceledSubresources):
* page/DOMWindow.idl:
Added CSSHostRule constructor.
2013-01-18 John J. Barton <johnjbarton@chromium.org>
Web Inspector: inspectedWindow.eval("IamUndefined.prop", callback) fails to give exception text
https://bugs.webkit.org/show_bug.cgi?id=106926
Reviewed by Pavel Feldman.
Return .description from exceptions rather than .value (which is undefined)
New test added to extensions/extensions-eval.html
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype.):
(WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
2013-01-14 Dominik Röttsches <dominik.rottsches@intel.com>
[EFL] Update freetype in jhbuild to 2.4.11 and activate subpixel layout
https://bugs.webkit.org/show_bug.cgi?id=106774
In order to fix a long standing linespacing/font ascent & descent issue
we found that FreeType commit b0962ac34e660 solves that problem.
Let's update FreeType accordingly, but bump it to 2.4.11 due to the
maintainer recommending several security updates after that said commit.
Also, in order to avoid extra rebaselining, let's activate subpixel
layout at the same time. With subpixel layout I propose to remove
rounding of the linespacing value in order to not introduce rounding
inaccuracies at the SimpleFontData level. Other platforms don't do that
anymore, furthermore the linegap value is not rounded either.
Reviewed by Martin Robinson.
No new tests, affects a large number of tests that will require rebaselining.
* platform/graphics/freetype/SimpleFontDataFreeType.cpp:
(WebCore::SimpleFontData::platformInit): Remove rounding when setting linespacing.
2013-01-18 Vivek Galatage <vivek.vg@samsung.com>
Web Inspector: Search shortcut clears the current search box contents
https://bugs.webkit.org/show_bug.cgi?id=107109
Reviewed by Pavel Feldman.
The search box contents should be changed only when the current focus element is
different than the _searchInputElement.
* inspector/front-end/SearchController.js:
(WebInspector.SearchController.prototype.showSearchField):
2013-01-18 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] Fix JSDocs and deduplicate code.
https://bugs.webkit.org/show_bug.cgi?id=107116
Reviewed by Pavel Feldman.
Add / fix JSDocs to see possible type mismatches.
Deduplicate code for styling network log items.
* inspector/front-end/NetworkPanel.js: Fix JSDocs.
(WebInspector.NetworkDataGridNode.prototype._updateElementStyleClasses):
Extract common code.
* inspector/front-end/NetworkRequest.js: Fix JSDocs.
2013-01-18 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140005.
http://trac.webkit.org/changeset/140005
https://bugs.webkit.org/show_bug.cgi?id=107235
broke downstream Chromium interactive_ui_tests (Requested by
dominicc on #webkit).
* WebCore.exp.in:
* dom/Document.cpp:
* dom/Document.h:
(WebCore::Document::documentElement):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::MainResourceLoader):
(WebCore::MainResourceLoader::receivedError):
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::responseReceived):
(WebCore::MainResourceLoader::didFinishLoading):
(WebCore::MainResourceLoader::load):
(WebCore::MainResourceLoader::identifier):
* loader/MainResourceLoader.h:
(MainResourceLoader):
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::didAddClient):
(WebCore::CachedRawResource::willSendRequest):
(WebCore::CachedRawResource::canReuse):
* loader/cache/CachedRawResource.h:
(CachedRawResource):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::addClientToSet):
* loader/cache/CachedResource.h:
(CachedResource):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::determineRevalidationPolicy):
* testing/Internals.cpp:
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2013-01-18 Yoshifumi Inoue <yosin@chromium.org>
REGRESSION(r137726): Spring Loaded Pan Scrolling doesn't stop
https://bugs.webkit.org/show_bug.cgi?id=107205
Reviewed by Hajime Morita.
The bug is caused by forgetting to set true m_panScrollButtonPressed
in AutoscrollController::startPanScroll().
This patch changes state management during pan scroll by replacing
m_panScrollButtonPressed and m_springLoadedPanScrollInProgress by
m_autoscrollType with introducing new AutoscrollController state
AutoscrollForPanCanStop.
Tests: platform/chromium-win/fast/events/panScroll-click.html
platform/chromium-win/fast/events/panScroll-drag.html
* page/AutoscrollController.cpp:
(WebCore::AutoscrollController::AutoscrollController): Changed to remove initialization of m_panScrollButtonPressed and m_springLoadedPanScrollInProgress.
(WebCore::AutoscrollController::stopAutoscrollTimer): Changed to remove resetting m_panScrollButtonPressed and m_springLoadedPanScrollInProgress.
(WebCore::AutoscrollController::handleMouseReleaseEvent): Changed to handle AutoscrollForPan and AutoscrollForPanCanStop.
(WebCore::AutoscrollController::panScrollInProgress): Changed to check AutoscrollForPanCanStop too.
(WebCore::AutoscrollController::startPanScrolling): Changed to remove setting of m_springLoadedPanScrollInProgress.
(WebCore::AutoscrollController::autoscrollTimerFired): Changed to add case for AutoscrollForPanCanStop.
(WebCore::AutoscrollController::updatePanScrollState): Chagned to use AutoscrollForPan and AutoscrollForPanCanStop.
* page/AutoscrollController.h:
(AutoscrollController): Changed to add AutoscrollForPanCanStop to AutoscrollType.
2013-01-17 Takashi Sakamoto <tasak@google.com>
Heap-use-after-free in WebCore::LiveNodeListBase::invalidateCache
https://bugs.webkit.org/show_bug.cgi?id=106958
Reviewed by Ryosuke Niwa.
Need to update node lists that nodes in shadow dom trees have
when document is changed.
No new tests; it is difficult to reproduce crash by using
DumpRenderTree. Manually tested by using attached repro.html.
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::adoptTreeScope):
Added to adopt node lists when tree scope is changed.
(WebCore::NodeListsNodeData::adoptDocument):
Renamed the original adoptTreeScope to adoptDocument.
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
If document scope is not changed, modify to invoke adoptTreeScope.
(WebCore::TreeScopeAdopter::moveNodeToNewDocument):
Modify to invoked adoptDocument.
2013-01-17 Sankeerth V S <sankeerth.vs@samsung.com>
Search for a selected word should trigger _performSearch to populate
search results
https://bugs.webkit.org/show_bug.cgi?id=106423
Reviewed by Pavel Feldman.
No new tests as this is a UI related change.
* inspector/front-end/SearchController.js:
(WebInspector.SearchController.prototype.showSearchField):
2013-01-17 Rafael Weinstein <rafaelw@chromium.org>
Ensure the parser adopts foster-parented children into the document of their parent.
https://bugs.webkit.org/show_bug.cgi?id=107023
Reviewed by Adam Barth.
Tests: fast/parser/foster-parent-adopted.html
fast/parser/foster-parent-adopted2.html
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertTextNode):
(WebCore::HTMLConstructionSite::fosterParent):
2013-01-17 Martin Robinson <mrobinson@igalia.com>
2013-01-17 Martin Robinson <mrobinson@igalia.com>
IndexedDB: Conditionalize usage of env_idb.h to fix build for non-Chromium ports
https://bugs.webkit.org/show_bug.cgi?id=107182
No new tests. This is a build fix.
* platform/leveldb/LevelDBDatabase.cpp: Use the default environment for non-Chromium
ports instead of the Chromium-specific one provided by env_idb.h.
2013-01-17 Rik Cabanier <cabanier@adobe.com>
Update GraphicsContext to support winding rule in clip operator for Chromium
https://bugs.webkit.org/show_bug.cgi?id=106872
Reviewed by Dirk Schulze.
Added support for winding to clip() and canvasClip() functions.
No new tests, no change in behavior.
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::clip): Call clipPath() instead with winding rule.
(WebCore::GraphicsContext::canvasClip): Honor the winding rule.
2013-01-17 Shinya Kawanaka <shinyak@chromium.org>
Revert r122824 for a while
https://bugs.webkit.org/show_bug.cgi?id=97867
Reviewed by Hajime Morita.
In r122824, we have introduced ImageInnerElement for making an image element ShadowDOM-available.
However, it turned out that making a replaced-element ShadowDOM-available has a lot of difficulty.
So we would like to postpone it for a while.
Since that patch makes an image element really complicated, we would like to revert it.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/html.css:
* html/HTMLImageElement.cpp:
(WebCore):
(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::createRenderer):
(WebCore::HTMLImageElement::attach):
* html/HTMLImageElement.h:
(WebCore):
(HTMLImageElement):
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::HTMLImageLoader):
(WebCore::HTMLImageLoader::dispatchLoadEvent):
(WebCore::HTMLImageLoader::sourceURI):
(WebCore::HTMLImageLoader::notifyFinished):
* html/HTMLImageLoader.h:
(HTMLImageLoader):
* html/HTMLInputElement.h:
* html/HTMLObjectElement.h:
* html/HTMLPlugInElement.h:
(WebCore):
* html/HTMLPlugInImageElement.h:
* html/HTMLTagNames.in:
* html/HTMLVideoElement.h:
* html/shadow/ImageInnerElement.cpp: Removed.
* html/shadow/ImageInnerElement.h: Removed.
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::ImageLoader):
(WebCore::ImageLoader::~ImageLoader):
(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::notifyFinished):
(WebCore::ImageLoader::renderImageResource):
(WebCore::ImageLoader::updatedHasPendingEvent):
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
(WebCore::ImageLoader::dispatchPendingLoadEvent):
(WebCore::ImageLoader::dispatchPendingErrorEvent):
* loader/ImageLoader.h:
(WebCore):
(ImageLoader):
(WebCore::ImageLoader::element):
* loader/ImageLoaderClient.h: Removed.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paintIntoRect):
(WebCore::RenderImage::imageMap):
(WebCore::RenderImage::updateAltText):
* rendering/RenderImage.h:
(WebCore):
(RenderImage):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::shouldRespectImageOrientation):
* svg/SVGImageElement.h:
(SVGImageElement):
* svg/SVGImageLoader.cpp:
(WebCore::SVGImageLoader::SVGImageLoader):
(WebCore::SVGImageLoader::dispatchLoadEvent):
(WebCore::SVGImageLoader::sourceURI):
* svg/SVGImageLoader.h:
(SVGImageLoader):
2013-01-17 Joanmarie Diggs <jdiggs@igalia.com>
REGRESSION (r139444): Crashes in three accessibility tests on GTK
https://bugs.webkit.org/show_bug.cgi?id=106922
Reviewed by Chris Fleizach.
r139444 exposed an infinite loop that was just waiting to happen.
Currently, getting the role value of an ARIA table row involves
getting the parent table via parentObjectUnignored() which in turn
can lead to the role value of the table row being checked. Moving
the roleValue() logic to determineAccessibilityRole() avoids this.
This fix, however, introduced a regression when an accessible row
was examined without having first examined the parent table for
non-ARIA tables. Now that it is safe to call parentObjectUnignored(),
the parentTable() method used for ARIA table rows can also be used
by non-ARIA table rows.
No new tests; instead unskipped the three crashing tests.
* accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::determineAccessibilityRole):
* accessibility/AccessibilityTableRow.h:
(AccessibilityTableRow):
2013-01-17 Rik Cabanier <cabanier@adobe.com>
Update GraphicsContext to support winding rule in clip operator for QT
https://bugs.webkit.org/show_bug.cgi?id=106873
Reviewed by Dirk Schulze.
Added support for winding to clip() and canvasClip() functions.
No new tests, no change in behavior.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::clip): Use passed in winding rule.
(WebCore::GraphicsContext::canvasClip): Rename variable.
2013-01-17 Rik Cabanier <cabanier@adobe.com>
Update GraphicsContext to support winding rule in clip operator for Cairo
https://bugs.webkit.org/show_bug.cgi?id=107065
Reviewed by Dirk Schulze.
Added support for winding to clip() and canvasClip() functions.
No new tests, no change in behavior.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::clip): Use passed in winding rule.
(WebCore::GraphicsContext::canvasClip): Rename variable.
2013-01-17 Elliott Sprehn <esprehn@chromium.org>
Track subframe count to avoid traversing the tree when there's no subframes
https://bugs.webkit.org/show_bug.cgi?id=101821
Reviewed by Ojan Vafai.
Make removeChild 9-14% faster by not walking the descendants looking for
frames when there's known to be no frames.
This is a more generalized version of the fix in Bug 101619 that only
avoided this walk when the whole document had no frames. This patch extends
it to skip traversing subtrees that have no frames by tracking the number of
frames in subtrees and then only walking those subtrees that are known to
contain frames in removeChild.
Test: fast/frames/parser-append-subframe-count.html
* dom/ContainerNode.cpp:
(WebCore::willRemoveChildren):
(WebCore::parserAppendChild):
(WebCore::parserRemoveChild):
(WebCore::parserInsertBefore):
The parser may move nodes without doing frame disconnection so we
must maintain the connected subframe count manually during these
mutations.
* dom/ContainerNodeAlgorithms.cpp:
(WebCore::ChildFrameDisconnector::collectFrameOwners):
* dom/ContainerNodeAlgorithms.h:
(WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
(ChildFrameDisconnector):
(WebCore::ChildFrameDisconnector::collectFrameOwners):
Renamed from collectDescendant() to better reflect what it really does.
(WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):
Renamed from disconnect() to better reflect what it really does.
(WebCore::ChildFrameDisconnector::disconnect):
New method that does the collection of frame owners on either the root
or only it's descendants.
* dom/Node.cpp:
(WebCore::Node::connectedSubframeCount):
(WebCore::Node::incrementConnectedSubframeCount):
(WebCore::Node::decrementConnectedSubframeCount):
* dom/Node.h:
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
(WebCore::NodeRareData::connectedSubframeCount):
(WebCore::NodeRareData::incrementConnectedSubframeCount):
(WebCore::NodeRareData::decrementConnectedSubframeCount):
* html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::setContentFrame):
(WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
2013-01-17 Tim Horton <timothy_horton@apple.com>
[WK2] Minimum layout width auto-sizing should use FrameView::enableAutoSizeMode so that it can shrink the viewport
https://bugs.webkit.org/show_bug.cgi?id=107200
<rdar://problem/12849029>
Reviewed by Simon Fraser.
* WebCore.exp.in: Export FrameView::enableAutoSize(...).
2013-01-17 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r139402.
http://trac.webkit.org/changeset/139402
https://bugs.webkit.org/show_bug.cgi?id=107212
Perf regression on DOMDivWalk (Requested by falken_ on
#webkit).
* dom/Element.cpp:
(WebCore::Element::removedFrom):
(WebCore::Element::setIsInTopLayer):
2013-01-17 Adam Barth <abarth@webkit.org>
BackgroundHTMLParser should go 18% faster on html-parser-srcdoc benchmark
https://bugs.webkit.org/show_bug.cgi?id=107201
Reviewed by Tony Gentilcore.
Prior to this patch, we would tokenize all the input before delivering
any tokens to the main thread. Effectively, that prevented the
background parser from running in parallel with the main thread.
This patch causes us to send tokens to the main thread periodically.
The constant in this patch is somewhat arbitrary. We'll need to tune it
later with more realistic workloads.
This patch improves the performance of the html-parser-srcdoc benchmark
by 18%. (This patch is based on Eric's work in
https://github.com/tonygentilcore/webkit/commit/072331194520c7770b5e34baefbbbba948834971.)
* html/parser/BackgroundHTMLParser.cpp:
(WebCore):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
2013-01-17 Matt Falkenhagen <falken@chromium.org>
Top layer fails for inline elements
https://bugs.webkit.org/show_bug.cgi?id=106538
Reviewed by Hajime Morita.
This patch makes position 'static' and 'relative' compute to
'absolute' for elements in the top layer, as mandated by the
Fullscreen spec.[1] By doing so, we also fix a crash that occurred in
RenderLayer::rebuildZOrderLists when an inline element wrapped in an
anonymous block was added to the top layer.
[1]: http://fullscreen.spec.whatwg.org/#new-stacking-layer
Tests: fast/dom/HTMLDialogElement/element-removed-from-top-layer-has-original-position.html
fast/dom/HTMLDialogElement/top-layer-position-relative.html
fast/dom/HTMLDialogElement/top-layer-position-static.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle): Set position 'absolute'
for an element in the top layer. Typically, absolutely positioned
elements also automatically get display 'block', but it seems we must do
that manually here. We require display 'block' to ensure the renderer is not
considered inline and consequently wrapped in an anonymous block.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::rebuildZOrderLists): Check node() so we don't
crash on, e.g., an anonymous block. We don't expect top layer
renderers to have anonymous blocks anymore, but we nevertheless
shouldn't crash if some other renderer is parented by RenderView.
2013-01-17 Simon Fraser <simon.fraser@apple.com>
Fix crash accessing RenderView's layer's backing when not composited
https://bugs.webkit.org/show_bug.cgi?id=107203
Reviewed by Benjamin Poulain.
The RenderView isn't always layer-backed in WebKit1, so null-check the backing.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::rootFixedBackgroundsChanged):
2013-01-16 Ryosuke Niwa <rniwa@webkit.org>
Remove NodeListsNodeData when it's no longer needed
https://bugs.webkit.org/show_bug.cgi?id=107074
Reviewed by Darin Adler.
Remove NodeListsNodeData when the last node list is removed from it.
If we detect that we have only one node list left in the data structure,
we'll simply destroy the entire "this" object to free up the memory space.
This reduced the memory usage of the micro benchmark by roughly 3%.
Performance Tests: DOM/TraverseChildNodes.html
* dom/Node.cpp:
(WebCore::Node::clearNodeLists): Added.
* dom/Node.h:
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::removeChildNodeList):
(WebCore::NodeListsNodeData::removeCacheWithAtomicName):
(WebCore::NodeListsNodeData::removeCacheWithName):
(WebCore::NodeListsNodeData::removeCacheWithQualifiedName):
(WebCore::NodeListsNodeData::deleteThisAndUpdateNodeRareDataIfAboutToRemoveLastList): Added.
Removes "this" NodeListsNodeData if there is only one node list left.
2013-01-17 Abhishek Arya <inferno@chromium.org>
Heap-use-after-free in WebCore::RenderBlock::checkFloatsInCleanLine
https://bugs.webkit.org/show_bug.cgi?id=90802
Reviewed by Julien Chaffraix.
Test: fast/multicol/float-not-removed-crash.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::moveChildrenTo):
1. When fullRemoveInsert is True, make sure to clear the
floating objects from our list (similar to positioned objects).
Our children are getting moved to another block and we won't
get notified when they are going away.
2. Remove the redundant hasPositionedObjects check since it
is already done inside removePositionedObjects.
2013-01-17 Simon Fraser <simon.fraser@apple.com>
Make it possible for the root background to be painted into its own GraphicsLayer
https://bugs.webkit.org/show_bug.cgi?id=107177
Reviewed by Dave Hyatt.
Make it possible to paint the root background into its own GraphicsLayer, and enable
this when the root background has background-images that are all background-attachment: fixed.
This is a step towards optimizing scrolling on pages with fixed root backgrounds.
Tests: platform/mac/tiled-drawing/fixed-background/fixed-body-background-body-layer.html
platform/mac/tiled-drawing/fixed-background/fixed-body-background-opacity-html.html
platform/mac/tiled-drawing/fixed-background/fixed-body-background-transformed-html.html
platform/mac/tiled-drawing/fixed-background/fixed-body-background-zoomed.html
platform/mac/tiled-drawing/fixed-background/fixed-body-background.html
platform/mac/tiled-drawing/fixed-background/fixed-html-background.html
platform/mac/tiled-drawing/fixed-background/fixed-non-propagated-body-background.html
* rendering/PaintInfo.h:
(WebCore::PaintInfo::skipRootBackground): Utility function to check the paintBehavior flag.
(WebCore::PaintInfo::paintRootBackgroundOnly): Ditto.
* rendering/PaintPhase.h: New paint behavior flags to indicate that we should skip painting
the root background, and only paint the root background.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paint): When we're only painting the root background, avoid painting column
rules, and bail early.
(WebCore::RenderBlock::paintObject): Don't paint children if we're just painting the root background.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleWillChange): If this box can paint the root background, tell the compositor
when the fixedness of those backgrounds changes.
(WebCore::RenderBox::paintRootBoxFillLayers): If the paintBehavior flag is set to skip painting the root
background, bail. This will be true for the non-background GraphicsLayers which are painting the root.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents): We can bail early if we're not a root-like renderer and the
flag is set to paint the root background only. This avoids walking the whole layer tree when just painting
into the root background GraphicsLayer.
Migrate layer paint flags into PaintBehavior flags, and use them.
* rendering/RenderLayer.h: Layer painting flags that replicate the paintBehavior flags.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking): Init the m_backgroundLayerPaintsFixedRootBackground bit.
(WebCore::RenderLayerBacking::~RenderLayerBacking): Clear the background layer.
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): No need to handle the transparent background
stuff here. We'll do it later in updateRootLayerConfiguration().
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Actually make a background layer now
if the compositor says we should.
Call updateRootLayerConfiguration() to adjust the background color and opaqueness of the background/primary layers.
(WebCore::RenderLayerBacking::updateInternalHierarchy): Parent the m_backgroundLayer in the containment layer,
not m_graphicsLayer (this is a bug fix).
(WebCore::RenderLayerBacking::updateDrawsContent):
(WebCore::RenderLayerBacking::setBackgroundLayerPaintsFixedRootBackground):
(WebCore::RenderLayerBacking::paintingPhaseForPrimaryLayer):
(WebCore::RenderLayerBacking::updateBackgroundColor): This no longer needs to update the tile cache
background color; updateRootLayerConfiguration() does this now.
(WebCore::RenderLayerBacking::updateRootLayerConfiguration): Update the opaqueness and background color
of the background and/or main graphics layers.
(WebCore::RenderLayerBacking::setContentsNeedDisplay): Invalidate the background layer if we have one.
(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect): Invalidate the background layer if we have one.
This will be optimized to only repaint the background if it was the background that changed.
(WebCore::RenderLayerBacking::paintIntoLayer): Take a GraphicsLayer, not a RenderLayer argument.
Adjust the paintFlags if we're being asked to paint the background layer, or if we have one, but are painting the foreground.
(WebCore::RenderLayerBacking::paintContents):
(WebCore::RenderLayerBacking::backingStoreMemoryEstimate):
(WebCore::RenderLayerBacking::reportMemoryUsage):
* rendering/RenderLayerBacking.h:
(WebCore::RenderLayerBacking::backgroundLayer):
(WebCore::RenderLayerBacking::backgroundLayerPaintsFixedRootBackground):
(RenderLayerBacking):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::rootFixedBackgroundsChanged): If we're told that the fixed-ness of
the root background changed and we're using a TileCache, we need to re-evaluate compositing (this could be
optimized to only update the root layer).
(WebCore::RenderLayerCompositor::needsFixedRootBackgroundLayer): For the root (RenderView's) layer,
check whether the renderer that will paint the root (taking background propagation into account) has
background images that are all fixed.
(WebCore::RenderLayerCompositor::fixedRootBackgroundLayer): Accessor for the GraphicsLayer that paints
the root background (will be used later).
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::hasEntirelyFixedBackground): Returns true there are background images
and all are fixed.
* rendering/RenderObject.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::paintBoxDecorations): This function paints a solid color if we know that the root
isn't going to fill the viewport; we want to avoid this painting if we're not painting the root background
in this pass.
* rendering/style/RenderStyle.cpp:
(WebCore::allLayersAreFixed):
(WebCore::RenderStyle::hasEntirelyFixedBackground): New helper function.
* rendering/style/RenderStyle.h:
2013-01-17 Rafael Weinstein <rafaelw@chromium.org>
[Template] Avoid reading beyond the end of the buffer in preload scanner when check for </template>
https://bugs.webkit.org/show_bug.cgi?id=107143
Reviewed by Adam Barth.
This patch corrects to use AtomicString constructor which takes an explicit size. Additionally, the logic
for exiting early is slightly improved.
No new tests.
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::PreloadTask::PreloadTask):
(WebCore::HTMLPreloadScanner::processToken):
2013-01-17 Huang Dongsung <luxtella@company100.net>
[TexMap] Match initializing members in GraphicsLayerTransform to initializing members in GraphicsLayer.
https://bugs.webkit.org/show_bug.cgi?id=107090
Reviewed by Noam Rosenthal.
GraphicsLayer initializes m_anchorPoint to FloatPoint3D(0.5, 0.5, 0) and
m_preserves3D to false, while GraphicsLayerTransform initializes m_anchorPoint
to FloatPoint3D(0, 0, 0) and m_flattening (= !m_preserves3D) to false. It is a
potential bug. This patch corrects initialization of GraphicsLayerTransform.
Covered by existing compositing pixel tests.
* platform/graphics/GraphicsLayerTransform.cpp:
(WebCore::GraphicsLayerTransform::GraphicsLayerTransform):
2013-01-17 Filip Pizlo <fpizlo@apple.com>
ScriptDebugServer::didExecuteProgram should not try to pop stack if there is no stack to pop
https://bugs.webkit.org/show_bug.cgi?id=107186
Reviewed by Geoffrey Garen.
No new tests, because I'm not sure how to test this. I can repro it on a gnarly web site,
but I don't know how to create a reduced case that triggers it.
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::didExecuteProgram):
2013-01-17 Michael Pruett <michael@68k.org>
[GTK] IndexedDB: Add LevelDB headers to include path if IndexedDB is enabled
https://bugs.webkit.org/show_bug.cgi?id=107181
Reviewed by Martin Robinson.
No new tests as this is just a build change.
* GNUmakefile.am:
2013-01-17 Eric Seidel <eric@webkit.org>
The threaded html parser hangs when parsing empty documents (and about:blank)
https://bugs.webkit.org/show_bug.cgi?id=107160
Reviewed by Tony Gentilcore.
This is covered by many existing tests including the html5lib suite.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::finish):
2013-01-17 Alexis Hetu <sugoi@chromium.org>
imageSmoothingEnabled frequent, unpredictable crashes
https://bugs.webkit.org/show_bug.cgi?id=107161
Reviewed by Stephen White.
Added a NULL pointer check to fix a crash.
Test: fast/canvas/canvas-imageSmoothingEnabled-zero-size.html
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setWebkitImageSmoothingEnabled):
2013-01-17 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140049.
http://trac.webkit.org/changeset/140049
https://bugs.webkit.org/show_bug.cgi?id=107187
Breaks lots of stuff (Requested by schenney on #webkit).
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::setPreserveAspectRatioString):
(WebCore):
(WebCore::SVGViewSpec::viewTarget):
(WebCore::SVGViewSpec::transform):
(WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper):
(WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper):
(WebCore::SVGViewSpec::lookupOrCreateTransformWrapper):
* svg/SVGViewSpec.h:
(SVGViewSpec):
(WebCore::SVGViewSpec::viewBoxAnimated):
(WebCore::SVGViewSpec::preserveAspectRatioAnimated):
* svg/SVGViewSpec.idl:
2013-01-17 Eric Seidel <eric@webkit.org>
Threaded parser hangs when encountering an unmatched </script> tag
https://bugs.webkit.org/show_bug.cgi?id=107170
Reviewed by Adam Barth.
The bug was that the BackgroundHTMLParser naively yields to the
main thread every time it encounters a </script>
(as we may have to run script on the main thread). However, not every
</script> results in script execution, so the main thread needs to know
how to tell the BackgroundHTMLParser to continue in cases where no
script execution is needed.
This whole infrastructure will be replaced when we let the BackgroundHTMLParser
continue speculatively tokenizing after yielding.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::TokenDelivery::TokenDelivery):
(TokenDelivery):
(WebCore::TokenDelivery::execute):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
2013-01-17 Eric Seidel <eric@webkit.org>
Stop the background parser when canceling parsing to avoid crashing on many layout tests
https://bugs.webkit.org/show_bug.cgi?id=107159
Reviewed by Adam Barth.
Covered by many existing tests.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::stopParsing):
2013-01-17 Stephen Chenney <schenney@chromium.org>
SVGViewSpec fails when corresponding element has been removed
https://bugs.webkit.org/show_bug.cgi?id=106957
Reviewed by Dirk Schulze.
When JS holds an SVGViewSpec object while deleting the object that
defines the spec (an SVGSVGElement, or one of a few others) the
pointer to the target is cleared in the SVGViewSpec but the methods
that serve JS queries do not check and try to access the now null
target. This atch fixes the prooblem, throwing JS exceptions where
possible and returning null where necessary.
Test: svg/dom/SVGViewSpec-invalid-ref-crash.html
* svg/SVGViewSpec.cpp:
(WebCore):
(WebCore::SVGViewSpec::viewTarget): Check for null target and throw an exception.
(WebCore::SVGViewSpec::transform): Check for null target and return
null. It is not possible to throw an exception here because it leads
to an invalid cast in the code generated from IDLs.
(WebCore::SVGViewSpec::viewBoxAnimated): Check for null target and throw an exception.
(WebCore::SVGViewSpec::preserveAspectRatioAnimated): Check for null target and throw an exception.
(WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): ASSERT non-null target
(WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): ASSERT non-null target
(WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): ASSERT non-null target
* svg/SVGViewSpec.h:
(SVGViewSpec): Add Exception arguments to getter methods.
* svg/SVGViewSpec.idl: Mark attributes as throwing exceptions.
2013-01-17 Alec Flett <alecflett@chromium.org>
IndexedDB: Remove unnecessary call to IDBDatabaseBackendInterface::metadata()
https://bugs.webkit.org/show_bug.cgi?id=107142
Reviewed by Kentaro Hara.
This call isn't necessary, and probably slipped through an earlier review
because of the mention of 'm_metadata'.
No new tests, as this code has no side effects and all tests sill pass.
* Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::count):
2013-01-17 Ojan Vafai <ojan@chromium.org>
Table layout does not need to explicitly call computePreferredLogicalWidths
https://bugs.webkit.org/show_bug.cgi?id=106931
Reviewed by Julien Chaffraix.
Code shouldn't need to explicitly call computePreferredLogicalWidths.
It should only get called as a by-product of calling minPreferredLogicalWidth
or maxPreferredLogicalWidth.
Instead, make it clear that the calling code is just trying to clear
preferred width dirty bits.
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
The computePreferredLogicalWidths call on the table cell is redundant
with the minPreferredLogicalWidth call on the next line.
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::calcWidthArray):
We only need to clear the dirty bit here. Table cells don't use
their preferred widths in fixed table layout calculations.
* rendering/RenderTableCell.h:
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::clearPreferredLogicalWidthsDirtyBits):
* rendering/RenderTableCol.h:
2013-01-17 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Updating -webkit-grid-rows or -webkit-grid-columns doesn't work as expected
https://bugs.webkit.org/show_bug.cgi?id=107062
Reviewed by Tony Chang.
Tests: fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update.html
fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update.html
This change makes -webkit-grid-rows and -webkit-grid-columns dynamic change properly
relayout their children, thus making them work!
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutGridItems):
Fixed the logic to force a grid item relayout if the grid area size changes. This is the
safest approach as margins or paddings can also be a percent of the grid area's size.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff):
Fixed a dumb mistake.
2013-01-17 Timothy Hatcher <timothy@apple.com>
Make logging console messages to STDOUT work in WebKit2 via a new setting.
https://bugs.webkit.org/show_bug.cgi?id=107157
Reviewed by Joseph Pecoraro.
* page/Console.cpp:
(WebCore::Console::addMessage): Check logsPageMessagesToSystemConsoleEnabled().
(WebCore::internalAddMessage): Ditto. Refactored to return early and drop printExceptions argument.
(WebCore::Console::error): Removed call to shouldPrintExceptions().
(WebCore::Console::log): Ditto.
(WebCore::Console::warn): Ditto.
(WebCore::Console::dir): Ditto.
(WebCore::Console::dirxml): Ditto.
(WebCore::Console::clear): Ditto.
(WebCore::Console::trace): Ditto.
(WebCore::Console::assertCondition): Ditto.
* page/Settings.in: Added logsPageMessagesToSystemConsoleEnabled.
2013-01-17 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r140023.
http://trac.webkit.org/changeset/140023
https://bugs.webkit.org/show_bug.cgi?id=107176
Broke some tests (Requested by anttik on #webkit).
* page/FrameView.cpp:
(WebCore::FrameView::updateScrollCorner):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::createReplacementRunIn):
(WebCore::RenderBlock::updateFirstLetterStyle):
(WebCore::RenderBlock::createFirstLetterRenderer):
(WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
(WebCore::RenderBlock::createAnonymousColumnsWithParentRenderer):
(WebCore::RenderBlock::createAnonymousColumnSpanWithParentRenderer):
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
* rendering/RenderDeprecatedFlexibleBox.h:
(RenderDeprecatedFlexibleBox):
* rendering/RenderDetailsMarker.cpp:
(WebCore::RenderDetailsMarker::RenderDetailsMarker):
* rendering/RenderDetailsMarker.h:
(RenderDetailsMarker):
* rendering/RenderDialog.h:
(WebCore::RenderDialog::RenderDialog):
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::RenderFieldset):
* rendering/RenderFieldset.h:
(RenderFieldset):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::RenderFlexibleBox):
* rendering/RenderFlexibleBox.h:
(RenderFlexibleBox):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::RenderFlowThread):
* rendering/RenderFlowThread.h:
* rendering/RenderFullScreen.cpp:
(RenderFullScreenPlaceholder::RenderFullScreenPlaceholder):
(RenderFullScreen::RenderFullScreen):
(RenderFullScreen::wrapRenderer):
* rendering/RenderFullScreen.h:
(RenderFullScreen):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::RenderGrid):
* rendering/RenderGrid.h:
(RenderGrid):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::RenderImage):
* rendering/RenderImage.h:
(RenderImage):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::RenderInline):
(WebCore::RenderInline::addChildIgnoringContinuation):
* rendering/RenderInline.h:
(RenderInline):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateScrollCornerStyle):
(WebCore::RenderLayer::updateResizerStyle):
(WebCore::RenderLayer::createReflection):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::RenderListItem):
(WebCore::RenderListItem::styleDidChange):
* rendering/RenderListItem.h:
(RenderListItem):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::RenderListMarker):
* rendering/RenderListMarker.h:
(RenderListMarker):
* rendering/RenderMediaControlElements.cpp:
(WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
(WebCore::RenderMediaControlTimeDisplay::RenderMediaControlTimeDisplay):
(WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement):
* rendering/RenderMediaControlElements.h:
(RenderMediaVolumeSliderContainer):
(RenderMediaControlTimeDisplay):
(RenderTextTrackContainerElement):
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
(WebCore::RenderMultiColumnBlock::ensureColumnSets):
* rendering/RenderMultiColumnBlock.h:
(RenderMultiColumnBlock):
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
* rendering/RenderMultiColumnFlowThread.h:
(RenderMultiColumnFlowThread):
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
* rendering/RenderMultiColumnSet.h:
(RenderMultiColumnSet):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
* rendering/RenderNamedFlowThread.h:
(RenderNamedFlowThread):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::RenderObject):
* rendering/RenderObject.h:
(WebCore::RenderObject::setIsAnonymous):
(RenderObject):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::RenderRegion):
* rendering/RenderRegion.h:
(RenderRegion):
* rendering/RenderRegionSet.cpp:
(WebCore::RenderRegionSet::RenderRegionSet):
* rendering/RenderRegionSet.h:
(RenderRegionSet):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::RenderReplaced):
* rendering/RenderReplaced.h:
(RenderReplaced):
* rendering/RenderReplica.cpp:
(WebCore::RenderReplica::RenderReplica):
* rendering/RenderReplica.h:
(RenderReplica):
* rendering/RenderRuby.cpp:
(WebCore::createAnonymousRubyInlineBlock):
(WebCore::RenderRubyAsInline::RenderRubyAsInline):
(WebCore):
(WebCore::RenderRubyAsBlock::RenderRubyAsBlock):
* rendering/RenderRuby.h:
(RenderRubyAsInline):
(RenderRubyAsBlock):
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::RenderRubyBase):
* rendering/RenderRubyBase.h:
(RenderRubyBase):
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::RenderRubyRun):
(WebCore::RenderRubyRun::createRubyBase):
(WebCore::RenderRubyRun::staticCreateRubyRun):
* rendering/RenderRubyRun.h:
(RenderRubyRun):
* rendering/RenderRubyText.cpp:
(WebCore::RenderRubyText::RenderRubyText):
* rendering/RenderRubyText.h:
(RenderRubyText):
* rendering/RenderScrollbar.cpp:
(WebCore::RenderScrollbar::updateScrollbarPart):
* rendering/RenderScrollbarPart.cpp:
(WebCore::RenderScrollbarPart::RenderScrollbarPart):
* rendering/RenderScrollbarPart.h:
(RenderScrollbarPart):
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::RenderSearchField):
* rendering/RenderSearchField.h:
(RenderSearchField):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable):
(WebCore::RenderTable::createAnonymousWithParentRenderer):
* rendering/RenderTable.h:
(RenderTable):
* rendering/RenderTableCaption.cpp:
(WebCore::RenderTableCaption::RenderTableCaption):
* rendering/RenderTableCaption.h:
(RenderTableCaption):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::RenderTableCell):
(WebCore::RenderTableCell::createAnonymousWithParentRenderer):
* rendering/RenderTableCell.h:
(RenderTableCell):
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::RenderTableCol):
* rendering/RenderTableCol.h:
(RenderTableCol):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::RenderTableRow):
(WebCore::RenderTableRow::createAnonymousWithParentRenderer):
* rendering/RenderTableRow.h:
(RenderTableRow):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::RenderTableSection):
(WebCore::RenderTableSection::createAnonymousWithParentRenderer):
* rendering/RenderTableSection.h:
(RenderTableSection):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::RenderTextControl):
* rendering/RenderTextControl.h:
(RenderTextControl):
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
* rendering/RenderTextControlMultiLine.h:
(RenderTextControlMultiLine):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
* rendering/RenderTextControlSingleLine.h:
(RenderTextControlSingleLine):
(WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
* rendering/RenderTextTrackCue.cpp:
(WebCore::RenderTextTrackCue::RenderTextTrackCue):
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::RenderWidget):
* rendering/RenderWidget.h:
(RenderWidget):
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::RenderMathMLBlock):
(WebCore::RenderMathMLBlock::createAnonymousMathMLBlock):
* rendering/mathml/RenderMathMLBlock.h:
(RenderMathMLBlock):
* rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::createMathMLOperator):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::RenderMathMLOperator):
(WebCore::RenderMathMLOperator::updateFromElement):
(WebCore::RenderMathMLOperator::createGlyph):
* rendering/mathml/RenderMathMLOperator.h:
(RenderMathMLOperator):
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::RenderMathMLRow):
(WebCore::RenderMathMLRow::createAnonymousWithParentRenderer):
* rendering/mathml/RenderMathMLRow.h:
(RenderMathMLRow):
* rendering/style/ContentData.cpp:
(WebCore::ImageContentData::createRenderer):
* rendering/svg/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::RenderSVGBlock):
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::RenderSVGInline):
* rendering/svg/RenderSVGInline.h:
(RenderSVGInline):
* rendering/svg/RenderSVGTSpan.cpp:
(WebCore::RenderSVGTSpan::RenderSVGTSpan):
* rendering/svg/RenderSVGTSpan.h:
(RenderSVGTSpan):
* rendering/svg/RenderSVGTextPath.cpp:
(WebCore::RenderSVGTextPath::RenderSVGTextPath):
* rendering/svg/RenderSVGTextPath.h:
(RenderSVGTextPath):
2013-01-17 Alexey Proskuryakov <ap@apple.com>
Fix a logic error in AuthenticationChallengeMac
https://bugs.webkit.org/show_bug.cgi?id=107164
Reviewed by Brady Eidson.
No new tests, as this is not currently observable.
* platform/network/cf/AuthenticationCF.cpp:
(WebCore::createCF): Added a FIXME about making this more like Mac counterpart.
* platform/network/cf/AuthenticationChallenge.h:
(AuthenticationChallenge): Corrected an slightly misleading explanation.
* platform/network/mac/AuthenticationMac.mm:
(WebCore::AuthenticationChallenge::setAuthenticationClient): Don't create a dummy
m_nsChallenge object in place of a nil one.
2013-01-17 Tony Gentilcore <tonyg@chromium.org>
Remove unused finishWasCalled() method
https://bugs.webkit.org/show_bug.cgi?id=107148
Reviewed by Eric Seidel.
Based on patch by Eric Seidel.
No new tests because no new functionality.
* dom/DocumentParser.h:
(DocumentParser):
* dom/RawDataDocumentParser.h:
(WebCore::RawDataDocumentParser::append):
* html/parser/HTMLDocumentParser.cpp:
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
* html/parser/HTMLViewSourceParser.cpp:
* html/parser/HTMLViewSourceParser.h:
(HTMLViewSourceParser):
* xml/parser/NewXMLDocumentParser.cpp:
(WebCore::NewXMLDocumentParser::NewXMLDocumentParser):
(WebCore::NewXMLDocumentParser::finish):
* xml/parser/NewXMLDocumentParser.h:
(NewXMLDocumentParser):
* xml/parser/XMLDocumentParser.cpp:
* xml/parser/XMLDocumentParser.h:
(XMLDocumentParser):
2013-01-17 Ojan Vafai <ojan@chromium.org>
MathML padding overrides only need to be on RenderMathMLRoot
https://bugs.webkit.org/show_bug.cgi?id=107151
Reviewed by Tony Chang.
RenderMathMLRoot is the only class that uses these.
No need for them to be on the generic MathML superclass.
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::RenderMathMLBlock):
* rendering/mathml/RenderMathMLBlock.h:
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::RenderMathMLRoot):
(WebCore::RenderMathMLRoot::paddingTop):
(WebCore::RenderMathMLRoot::paddingBottom):
(WebCore::RenderMathMLRoot::paddingLeft):
(WebCore::RenderMathMLRoot::paddingRight):
(WebCore::RenderMathMLRoot::paddingBefore):
(WebCore::RenderMathMLRoot::paddingAfter):
(WebCore::RenderMathMLRoot::paddingStart):
(WebCore::RenderMathMLRoot::paddingEnd):
* rendering/mathml/RenderMathMLRoot.h:
2013-01-17 Poul Sysolyatin <psytonx@gmail.com>
32-bit build for Qt5 on Mac OS fails.
https://bugs.webkit.org/show_bug.cgi?id=107094
We need to define NS_BUILD_32_LIKE_64 for 32-bit build for Mac OS.
Fixed 32-bit build detection for support Qt5.
Reviewed by Benjamin Poulain.
* Target.pri:
2013-01-17 Joshua Bell <jsbell@chromium.org>
IndexedDB: Prevent crash dereferencing null if script context has stopped
https://bugs.webkit.org/show_bug.cgi?id=107146
Reviewed by Tony Chang.
We have crash reports from Chromium users (but no local repro) for a crash coming
from IDBRequest::dispatchEvent() that looks like it's calling toV8Context() after
the script execution context has stopped. The dispatch shouldn't be occurring
and we ASSERT as such, but something weird is going on during Worker tear down.
If this patch prevents the crash it would indicate that stop() is called before
dispatchEvent() which shouldn't be happening, and would let us continue chasing
the issue.
No new tests - this shouldn't be happening.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::dispatchEvent):
2013-01-17 Robert Hogan <robert@webkit.org>
Nested fixed position element not staying with parent
https://bugs.webkit.org/show_bug.cgi?id=65477
Reviewed by David Hyatt.
Tests: fast/inline/fixed-pos-moves-with-abspos-inline-parent.html
fast/inline/fixed-pos-moves-with-abspos-parent-relative-ancestor.html
fast/inline/fixed-pos-moves-with-abspos-parent.html
fast/inline/fixed-pos-with-transform-container-moves-with-abspos-parent.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::simplifiedLayout):
If an absolute position element inside a relative positioned container moves, and the absolute element has a fixed position
child, neither the container nor the fixed element learn of the movement since posChildNeedsLayout() is only marked as far as the
relative positioned container. So if our positioned objects list can contain fixed position elements perform the
checks in markFixedPositionObjectForLayoutIfNeeded for each fixed pos object in the container's positioned object list.
(WebCore::RenderBlock::markFixedPositionObjectForLayoutIfNeeded):
For a fixed position element in the positioned objects list that has a static x or y position check for an absolute positioned ancestor
and if we find one, see if the static x or y position of the fixed pos element has changed. If it has, mark it for layout.
(WebCore):
(WebCore::RenderBlock::layoutPositionedObjects):
A fixed position element with an absolute position ancestor has no way of learning if the latter has changed position. So perform the
checks in markFixedPositionObjectForLayoutIfNeeded for each fixed pos object in the container's positioned object list.
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock): Use new helper function canContainFixedPositionObjects().
* rendering/RenderObject.h:
(WebCore::RenderObject::canContainFixedPositionObjects):
(RenderObject):
2013-01-17 Antti Koivisto <antti@apple.com>
Make renderer constructors take Element where possible
https://bugs.webkit.org/show_bug.cgi?id=107138
Reviewed by David Hyatt.
Tighter typing prevents bugs and enables optimizations.
The patch changes how anonymous rendererer are constructed. Previously Document* as the node parameter
indicated that the renderer was anonymous. This forced the code to operate on ContainerNodes (Document
is not an Element). Now anonymous renderers are constructed by passing null and the document is set by
separate setDocumentForAnonymous() call. The patch uses RenderFoo::createAnonymous() pattern consistently.
Most constructors are switched to take Element. RenderBlock still takes ContainerNode due to a few subclasses
(RenderView and RenderFlowThread) that pass in a Document.
* page/FrameView.cpp:
(WebCore::FrameView::updateScrollCorner):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::createAnonymous):
(WebCore):
(WebCore::RenderBlock::createReplacementRunIn):
(WebCore::RenderBlock::updateFirstLetterStyle):
(WebCore::RenderBlock::createFirstLetterRenderer):
(WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
(WebCore::RenderBlock::createAnonymousColumnsWithParentRenderer):
(WebCore::RenderBlock::createAnonymousColumnSpanWithParentRenderer):
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
(WebCore::RenderDeprecatedFlexibleBox::createAnonymous):
(WebCore):
* rendering/RenderDeprecatedFlexibleBox.h:
(RenderDeprecatedFlexibleBox):
* rendering/RenderDetailsMarker.cpp:
(WebCore::RenderDetailsMarker::RenderDetailsMarker):
* rendering/RenderDetailsMarker.h:
(RenderDetailsMarker):
* rendering/RenderDialog.h:
(WebCore::RenderDialog::RenderDialog):
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::RenderFieldset):
* rendering/RenderFieldset.h:
(RenderFieldset):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::RenderFlexibleBox):
* rendering/RenderFlexibleBox.h:
(RenderFlexibleBox):
* rendering/RenderFlowThread.cpp:
(WebCore):
(WebCore::RenderFlowThread::RenderFlowThread):
* rendering/RenderFlowThread.h:
* rendering/RenderFullScreen.cpp:
(RenderFullScreenPlaceholder::RenderFullScreenPlaceholder):
(RenderFullScreen::RenderFullScreen):
(RenderFullScreen::createAnonymous):
(RenderFullScreen::wrapRenderer):
* rendering/RenderFullScreen.h:
(RenderFullScreen):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::RenderGrid):
* rendering/RenderGrid.h:
(RenderGrid):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::RenderImage):
(WebCore::RenderImage::createAnonymous):
(WebCore):
* rendering/RenderImage.h:
(RenderImage):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::RenderInline):
(WebCore::RenderInline::createAnonymous):
(WebCore):
(WebCore::RenderInline::addChildIgnoringContinuation):
* rendering/RenderInline.h:
(RenderInline):
(WebCore::RenderInline::node):
Add version with covariant Element return type.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateScrollCornerStyle):
(WebCore::RenderLayer::updateResizerStyle):
(WebCore::RenderLayer::createReflection):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::RenderListItem):
(WebCore::RenderListItem::styleDidChange):
* rendering/RenderListItem.h:
(RenderListItem):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::RenderListMarker):
(WebCore::RenderListMarker::createAnonymous):
(WebCore):
* rendering/RenderListMarker.h:
(RenderListMarker):
* rendering/RenderMediaControlElements.cpp:
(WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
(WebCore::RenderMediaControlTimeDisplay::RenderMediaControlTimeDisplay):
(WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement):
* rendering/RenderMediaControlElements.h:
(RenderMediaVolumeSliderContainer):
(RenderMediaControlTimeDisplay):
(RenderTextTrackContainerElement):
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
(WebCore::RenderMultiColumnBlock::ensureColumnSets):
* rendering/RenderMultiColumnBlock.h:
(RenderMultiColumnBlock):
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
* rendering/RenderMultiColumnFlowThread.h:
(RenderMultiColumnFlowThread):
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
(WebCore::RenderMultiColumnSet::createAnonymous):
(WebCore):
* rendering/RenderMultiColumnSet.h:
(RenderMultiColumnSet):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
* rendering/RenderNamedFlowThread.h:
(RenderNamedFlowThread):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::RenderObject):
* rendering/RenderObject.h:
Passed in null node indicates that the renderer is anonymous. Remove now unnecessary setIsAnonymous() function.
(WebCore::RenderObject::isAnonymous):
(WebCore::RenderObject::setDocumentForAnonymous):
(RenderObject):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::RenderRegion):
* rendering/RenderRegion.h:
(RenderRegion):
* rendering/RenderRegionSet.cpp:
(WebCore::RenderRegionSet::RenderRegionSet):
* rendering/RenderRegionSet.h:
(RenderRegionSet):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::RenderReplaced):
* rendering/RenderReplaced.h:
(RenderReplaced):
* rendering/RenderReplica.cpp:
(WebCore::RenderReplica::RenderReplica):
(WebCore::RenderReplica::createAnonymous):
(WebCore):
* rendering/RenderReplica.h:
(RenderReplica):
* rendering/RenderRuby.cpp:
(WebCore::createAnonymousRubyInlineBlock):
(WebCore::RenderRubyAsInline::RenderRubyAsInline):
(WebCore):
(WebCore::RenderRubyAsBlock::RenderRubyAsBlock):
* rendering/RenderRuby.h:
(RenderRubyAsInline):
(RenderRubyAsBlock):
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::RenderRubyBase):
(WebCore::RenderRubyBase::createAnonymous):
(WebCore):
* rendering/RenderRubyBase.h:
(RenderRubyBase):
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::RenderRubyRun):
(WebCore::RenderRubyRun::createRubyBase):
(WebCore::RenderRubyRun::staticCreateRubyRun):
* rendering/RenderRubyRun.h:
(RenderRubyRun):
* rendering/RenderRubyText.cpp:
(WebCore::RenderRubyText::RenderRubyText):
* rendering/RenderRubyText.h:
(RenderRubyText):
* rendering/RenderScrollbar.cpp:
(WebCore::RenderScrollbar::updateScrollbarPart):
* rendering/RenderScrollbarPart.cpp:
(WebCore::RenderScrollbarPart::RenderScrollbarPart):
(WebCore::RenderScrollbarPart::createAnonymous):
(WebCore):
* rendering/RenderScrollbarPart.h:
(RenderScrollbarPart):
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::RenderSearchField):
* rendering/RenderSearchField.h:
(RenderSearchField):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable):
(WebCore::RenderTable::createAnonymousWithParentRenderer):
* rendering/RenderTable.h:
(RenderTable):
* rendering/RenderTableCaption.cpp:
(WebCore::RenderTableCaption::RenderTableCaption):
* rendering/RenderTableCaption.h:
(RenderTableCaption):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::RenderTableCell):
(WebCore::RenderTableCell::createAnonymousWithParentRenderer):
* rendering/RenderTableCell.h:
(RenderTableCell):
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::RenderTableCol):
* rendering/RenderTableCol.h:
(RenderTableCol):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::RenderTableRow):
(WebCore::RenderTableRow::createAnonymousWithParentRenderer):
* rendering/RenderTableRow.h:
(RenderTableRow):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::RenderTableSection):
(WebCore::RenderTableSection::createAnonymousWithParentRenderer):
* rendering/RenderTableSection.h:
(RenderTableSection):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::RenderTextControl):
* rendering/RenderTextControl.h:
(RenderTextControl):
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
* rendering/RenderTextControlMultiLine.h:
(RenderTextControlMultiLine):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
* rendering/RenderTextControlSingleLine.h:
(RenderTextControlSingleLine):
(WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
* rendering/RenderTextTrackCue.cpp:
(WebCore::RenderTextTrackCue::RenderTextTrackCue):
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::RenderWidget):
* rendering/RenderWidget.h:
(RenderWidget):
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::RenderMathMLBlock):
(WebCore::RenderMathMLBlock::createAnonymousMathMLBlock):
* rendering/mathml/RenderMathMLBlock.h:
(RenderMathMLBlock):
* rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::createMathMLOperator):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::RenderMathMLOperator):
(WebCore::RenderMathMLOperator::updateFromElement):
(WebCore::RenderMathMLOperator::createGlyph):
* rendering/mathml/RenderMathMLOperator.h:
(RenderMathMLOperator):
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::RenderMathMLRow):
(WebCore::RenderMathMLRow::createAnonymousWithParentRenderer):
* rendering/mathml/RenderMathMLRow.h:
(RenderMathMLRow):
* rendering/style/ContentData.cpp:
(WebCore::ImageContentData::createRenderer):
* rendering/svg/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::RenderSVGBlock):
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::RenderSVGInline):
* rendering/svg/RenderSVGInline.h:
(RenderSVGInline):
* rendering/svg/RenderSVGTSpan.cpp:
(WebCore::RenderSVGTSpan::RenderSVGTSpan):
* rendering/svg/RenderSVGTSpan.h:
(RenderSVGTSpan):
* rendering/svg/RenderSVGTextPath.cpp:
(WebCore::RenderSVGTextPath::RenderSVGTextPath):
* rendering/svg/RenderSVGTextPath.h:
(RenderSVGTextPath):
2013-01-17 Leo Yang <leoyang@rim.com>
[BlackBerry] Update Authentication Type and Scheme implementation
https://bugs.webkit.org/show_bug.cgi?id=107045
PR #281292
Reviewed by Yong Li.
Reviewed internally by Joe Mason. A typo is also fixed by Joe Mason.
The BlackBerry platform layer has defined both authentication type and authentication scheme.
This patch is adapting the porting layer to the platform layer change.
No functionalities changed no new tests.
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::notifyAuthReceived):
* platform/network/blackberry/NetworkJob.h:
(NetworkJob):
* platform/network/blackberry/NetworkManager.cpp:
(WebCore::NetworkManager::startJob):
2013-01-17 Martin Robinson <mrobinson@igalia.com>
[GTK] Build with LevelDB when IndexedDB is enabled
https://bugs.webkit.org/show_bug.cgi?id=103220
Reviewed by Gustavo Noronha Silva.
No new tests. This is just a build change. IndexedDatabase support
is already covered by the suite of storage layout tests.
* GNUmakefile.am: Add the leveldb convenience library.
* GNUmakefile.list.am: Add the list of sources.
2013-01-17 Tony Gentilcore <tonyg@chromium.org>
Wire BackgroundHTMLParser to HTMLDocumentParser
https://bugs.webkit.org/show_bug.cgi?id=107140
Reviewed by Adam Barth.
With this patch, we now pass the majority of html5lib and fast/parser tests with threaded HTML parsing enabled.
No new tests because covered by existing fast/parser tests.
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::TokenDelivery::execute):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::~HTMLDocumentParser):
(WebCore::HTMLDocumentParser::processingData):
(WebCore::HTMLDocumentParser::resumeParsingAfterYield):
(WebCore::HTMLDocumentParser::canTakeNextToken):
(WebCore::HTMLDocumentParser::feedTokens):
(WebCore::HTMLDocumentParser::pumpTokenizer):
(WebCore):
(WebCore::HTMLDocumentParser::startBackgroundParser):
(WebCore::HTMLDocumentParser::stopBackgroundParser):
(WebCore::HTMLDocumentParser::append):
(WebCore::HTMLDocumentParser::end):
(WebCore::HTMLDocumentParser::finish):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
* html/parser/HTMLDocumentParser.h:
(WebCore):
(HTMLDocumentParser):
(WebCore::HTMLDocumentParser::hasPreloadScanner):
(WebCore::HTMLDocumentParser::shouldUseThreading):
2013-01-17 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Move all ExtraDataContainers into anonymous namespaces
https://bugs.webkit.org/show_bug.cgi?id=107128
Reviewed by Kentaro Hara.
Tests not needed.
* platform/chromium/support/WebMediaStreamDescriptor.cpp:
* platform/chromium/support/WebMediaStreamSource.cpp:
* platform/chromium/support/WebRTCSessionDescriptionRequest.cpp:
* platform/chromium/support/WebRTCVoidRequest.cpp:
2013-01-17 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: InstrumentingAgents should be registered in InspectorInstrumentation only when there is a front-end
https://bugs.webkit.org/show_bug.cgi?id=107127
Reviewed by Vsevolod Vlasov.
InspectorInstrumentation::registerInstrumentingAgents is called when front-end
is connected to corresponding InspectorController. When the front-end disconnects
InspectorInstrumentation::unregisterInstrumentingAgents is called.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::inspectedPageDestroyed):
(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::disconnectFrontend):
2013-01-17 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Content flows incorrectly in autoheight regions with min/max-height set
https://bugs.webkit.org/show_bug.cgi?id=102099
Reviewed by David Hyatt.
The current layout algorithm for auto-height regions is gives wrong results when the max-height property is set on them. The reason is we
consider the max-height restriction too late in the layout, when applying a forced break. This is what happens when content is laid out
in an auto-height region.
1. The content flows without a limit until a forced break appears. If there's no forced break in the content, one is forced anyway at the end
of the layout.
2. The region where the forced break is placed is not always the one where content is laid out because of max-height restrictions.
3. All the regions with max-height are iterated and their height accumulated until the break offset is reached and the region at that point is ended.
This gives wrong results because the forced break position in the content was computed assuming there's only one region where the content is laid out.
The regions with max-height could have generated unforced breaks at their height and the forced break actually should have a different position.
This patch changes the algorithm in this way:
1. From the flow thread perspective all the regions start with a height: max-height for auto-height regions (or LayoutSize.max()/2 if not defined)
or the fixed height value when specified.
2. When the content is laid out, if there's no forced break, the height of the content is correctly estimated because the layout sees unforced breaks
at the max-height values.
3. If a forced break appears, the affected region can be obtained only by looking at the break offset in the region chain. If the region has auto-height,
its height is updated by the forced break.
4. At the end of the layout, there's the additional task to clear the height of all the regions that didn't receive content. This can be done optimally
without adding a new iteration through the regions by attaching to the RegionOverset computation loop.
Tests: fast/regions/autoheight-maxheight-mixed-break.html
fast/regions/autoheight-maxheight-simple-break.html
fast/regions/autoheight-maxheight-simple-nobreak.html
fast/regions/autoheight-minmaxheight-mixed-break-hbt.html
fast/regions/autoheight-minmaxheight-mixed-break-vlr.html
fast/regions/autoheight-minmaxheight-mixed-break-vrl.html
fast/regions/autoheight-minmaxheight-mixed-break.html
fast/regions/autoheight-minmaxheight-simple-break.html
fast/regions/autoheight-minmaxheight-simple-nobreak.html
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::layout):
(WebCore::RenderFlowThread::computeLogicalHeight):
(WebCore::RenderFlowThread::regionAtBlockOffset):
(WebCore::RenderFlowThread::pageLogicalHeightForOffset):
(WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
(WebCore::RenderFlowThread::computeOverflowStateForRegions): Attach to the loop in this function to clear the overrideLogicalHeight on empty regions.
(WebCore):
(WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect): Add an ASSERT that a region always has overrideLogicalHeight or a fixed height.
(WebCore::RenderFlowThread::initializeRegionsOverrideLogicalContentHeight): A new function that updates the region chain height to use the max-height value
for auto-height regions.
(WebCore::RenderFlowThread::addForcedRegionBreak):
* rendering/RenderFlowThread.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::pageLogicalHeight): the decorations size is incorrectly considered in the page height.
(WebCore):
(WebCore::RenderRegion::maxPageLogicalHeight): new function that returns the max page size for a region. It shouldn't be called too often
or the returned value can be cached
(WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent): the decorations size is incorrectly considered in the logical height of
the flow thread content.
* rendering/RenderRegion.h:
(RenderRegion):
2013-01-17 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Open resource dialog has poor performance.
https://bugs.webkit.org/show_bug.cgi?id=107122
Reviewed by Pavel Feldman.
Open resource dialog does not make linear number of relayouts on highlight anymore.
Replaced localeCompare with string compare since it is significantly faster.
* inspector/front-end/FilteredItemSelectionDialog.js:
(WebInspector.FilteredItemSelectionDialog.prototype._highlightItems):
(WebInspector.OpenResourceDialog.compareFunction):
(WebInspector.OpenResourceDialog):
2013-01-17 Alexis Menard <alexis@webkit.org>
Add ontransitionend attribute on HTML elements.
https://bugs.webkit.org/show_bug.cgi?id=107134
Reviewed by Simon Fraser.
Add ontransitionend attribute on HTML elements to match the prefixed
attribute onwebkittransitionend. As it uses the same plumbing as a
regular event listener, it behaves the same which means that if
ontransitionend only is defined then only the code attached to this
attribute will be called, if only onwebkittransitionend is defined then
only the code attached to this attribute will be called and finally if
both attributes are defined then only the code attached to the
unprefixed attribute will be called.
Tests: transitions/transition-end-event-unprefixed-03.html
transitions/transition-end-event-unprefixed-04.html
* html/HTMLAttributeNames.in:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseAttribute):
* page/DOMWindow.h:
(DOMWindow):
* page/DOMWindow.idl: only define the property if the unprefixing is
turn on.
2013-01-17 Andrei Bucur <abucur@adobe.com>
Widows and orphans test4 fails if isolated
https://bugs.webkit.org/show_bug.cgi?id=106006
Reviewed by Dean Jackson.
To determine if the orphans condition is not respected, every time a fragmentation break is encountered adjustLinePositionForPagination() is called for the current line.
If the index on the line in the block is smaller than the number of orphans specified in the style object, the block is shifted in the next fragmentainer. The index of
the line is obtained by calling RenderBlock::lineCount. However, this only works in a full layout when lineCount() will coincidentally return the index of the line.
In subsequent layouts, during the determineStartPosition() phase, lineCount() returns all the lines in the block so the orphans condition is never triggered.
The patch modifies the lineCount() function to have two optional parameters. The first parameter is the line where lineCount should stop counting lines. The second
is an output boolean parameter indicating if the line was found or not. This change makes the lineCount() more flexible and allows retreiving the index of a
specific line (e.g. the index of the current line inside adjustLinePositionForPagination()).
Tests: fast/multicol/orphans-relayout.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::lineCount): See the detailed description.
(WebCore::RenderBlock::adjustLinePositionForPagination): Make use of the modified lineCount() function.
* rendering/RenderBlock.h:
(RenderBlock):
2013-01-17 Martin Robinson <mrobinson@igalia.com>
REGRESSION (r137487): Crashes in editing/execCommand/indent-paragraphs.html on GTK, EFL
https://bugs.webkit.org/show_bug.cgi?id=105042
Reviewed by Gustavo Noronha Silva.
Explicitly handle the situation where the creation of a SoupURI fails. This
can happen if the URI is invalid. In that case the constructor returns null.
No new tests. This patch unskips a failing test.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::createSoupRequestAndMessageForHandle): Handle a null Soup URI.
2013-01-17 Nate Chapin <japhet@chromium.org>
Enable reuse of cached main resources
https://bugs.webkit.org/show_bug.cgi?id=105667
Reviewed by Antti Koivisto.
Test: http/tests/cache/cached-main-resource.html
* WebCore.exp.in:
* dom/Document.cpp:
(WebCore::Document::hasManifest): Returns true if the <html> element has a non-empty manifest attribute.
* dom/Document.h:
(Document):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadedResourceFromMemoryCache): Don't send delegate callbacks for cache hit here, since
MainResourceLoader will take care of it.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::MainResourceLoader):
(WebCore::MainResourceLoader::receivedError):
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::responseReceived): Don't try to cache loads from the application cache.
(WebCore::MainResourceLoader::didFinishLoading): Don't try to cache loads from the application cache.
(WebCore::MainResourceLoader::load): Ensure we create a resource load identifier for cache hits. Also,
ensure we correctly popualate fragment identifiers in the ResourceRequest reported to DocumentLoader.
(WebCore::MainResourceLoader::identifier):
* loader/MainResourceLoader.h: Rename m_substituteDataLoadIdentifier to m_identifierForLoadWithoutResourceLoader
to better describe when it is used.
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::didAddClient): Synthesize redirect notifications for cache hits if necessary.
(WebCore::CachedRawResource::willSendRequest): Note the redirects we received.
(WebCore::CachedRawResource::canReuse): Don't reuse a resource if the redirect chain included a "Cache-control: no-store".
* loader/cache/CachedRawResource.h:
(CachedRawResource):
(RedirectPair):
(WebCore::CachedRawResource::RedirectPair::RedirectPair):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::addClientToSet):: Don't return cached data for a main resource synchronously
* loader/cache/CachedResource.h:
(WebCore::CachedResource::canReuse):
(CachedResource):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::determineRevalidationPolicy): Permit cache reuse for main resources.
* testing/Internals.cpp:
(WebCore::Internals::isLoadingFromMemoryCache):
(WebCore):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2013-01-17 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] Remove boilerplate CSS selectors.
https://bugs.webkit.org/show_bug.cgi?id=107121
Reviewed by Vsevolod Vlasov.
There are rules that are used for filtration and styling
whose selectors should be autogenerated.
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkPanel.prototype._injectStyles):
* inspector/front-end/networkLogView.css:
2013-01-17 Tim Horton <timothy_horton@apple.com>
Fix the Mac build sans ENABLE(CSS_FILTERS)
Reviewed by Darin Adler.
Move an export from a USE(ACCELERATED_COMPOSITING) block to a ENABLE(CSS_FILTERS)
block, to match the code that backs it.
* WebCore.exp.in:
2013-01-17 Shinya Kawanaka <shinyak@chromium.org>
[Mac] svg/custom/text-use-click-crash.xhtml added by r139029 hits assertion in enclosingTextFormControl
https://bugs.webkit.org/show_bug.cgi?id=106361
Reviewed by Darin Adler.
When ASSERT hit in enclosingTextFormControl(Position), position.anchorNode() was /use/shadow-root/text,
and position.anchorType() was PositionIsBeforeAnchor. In this case, position.containerNode() should be
ShadowRoot if SHADOW_DOM flag is enabled. However, SHADOW_DOM flag is not enabled in mac port,
position.containerNode() returns 0. This hits ASSERT.
We have two options to solve this problem. (1) is to allow Position to have ShadowRoot as a container node,
but this will affect a lot of code. (2) is to loosen ASSERT condition.
I've chosen (2) option in this patch.
Test: svg/custom/text-use-click-crash.xhtml should cover this.
* html/HTMLTextFormControlElement.cpp:
(WebCore::enclosingTextFormControl):
2013-01-17 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Profiler: split "getProfile" to "getCPUProfile" and "loadHeapSnapshot"
https://bugs.webkit.org/show_bug.cgi?id=104545
Reviewed by Yury Semikhatsky.
This change will allow stronger typing of profiler output.
* inspector/Inspector.json:
Split "getProfile" to "getCPUProfile" and "getHeapSnapshot".
* inspector/InspectorProfilerAgent.cpp: Ditto.
* inspector/InspectorProfilerAgent.h: Ditto.
* inspector/front-end/CPUProfileView.js: Adopd changes.
* inspector/front-end/HeapSnapshotView.js: Ditto.
2013-01-17 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] Memory leaks when user walks between requests.
https://bugs.webkit.org/show_bug.cgi?id=107114
Reviewed by Vsevolod Vlasov.
Unregister event listeners when view is detached.
* inspector/front-end/RequestCookiesView.js: Fixed memory leak.
* inspector/front-end/RequestHeadersView.js: Ditto.
* inspector/front-end/RequestTimingView.js: Ditto.
2013-01-17 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Timeline] REGRESSION: Sidebar shrinks when user switches to memory statistics mode.
https://bugs.webkit.org/show_bug.cgi?id=105857
Reviewed by Pavel Feldman.
Fix: do not apply constraints to sidebar width while view is offscreen;
constraint check will be applied when view goes visible.
* inspector/front-end/SidebarView.js:
(WebInspector.SidebarView.prototype.applyConstraints): Check if view is
offscreen.
2013-01-17 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Spectrum] Color picker in CSS editor does not update textual color value
https://bugs.webkit.org/show_bug.cgi?id=107110
Reviewed by Vsevolod Vlasov.
The Spectrum picker was never told to update the textual color upon user-initiated color changes.
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
2013-01-17 Jae Hyun Park <jae.park@company100.net>
Remove unnecessary public method TiledBackingStore::supportsAlpha()
https://bugs.webkit.org/show_bug.cgi?id=107067
Reviewed by Kentaro Hara.
This patch removes unnecessary public method TiledBackingStore::supportsAlpha()
because supportsAlpha() is never called from other classes.
No new tests, no change in behavior.
* platform/graphics/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::setSupportsAlpha):
* platform/graphics/TiledBackingStore.h:
(TiledBackingStore):
2013-01-17 Peter Rybin <peter.rybin@gmail.com>
[V8] Remove a --es5_readonly flag from V8 initialization and address duplicated code
https://bugs.webkit.org/show_bug.cgi?id=106790
Reviewed by Kentaro Hara.
Couple of statements are moved to a newly created method. Old V8 flag setter is removed
according to FIXME and per V8 change http://code.google.com/p/v8/source/detail?r=12415
* bindings/v8/V8Initializer.cpp:
(WebCore::initializeV8Common): newly created method
(WebCore):
(WebCore::V8Initializer::initializeMainThreadIfNeeded):
(WebCore::V8Initializer::initializeWorker):
2013-01-17 John Bauman <jbauman@chromium.org>
Fix texImage2D from a WebGL canvas.
https://bugs.webkit.org/show_bug.cgi?id=106941
Reviewed by Kenneth Russell.
Clear the copied image whenever the canvas is modified, even if using
accelerated compositing.
Test: fast/canvas/webgl/tex-image-webgl.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::markContextChanged):
2013-01-17 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
[AC] Memory leak in GLXConfigSelector::createConfig()
https://bugs.webkit.org/show_bug.cgi?id=106657
Reviewed by Laszlo Gombos.
Free the memory returned by glXGetVisualFromFBConfig() using
XFree to avoid a memory leak.
No new tests. No change in behavior.
* platform/graphics/surfaces/glx/GLXConfigSelector.h:
(WebCore::GLXConfigSelector::createConfig):
2013-01-17 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r139929.
http://trac.webkit.org/changeset/139929
https://bugs.webkit.org/show_bug.cgi?id=107141
Speculative fix didn't work (Requested by jsbell on #webkit).
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::createIndex):
2013-01-16 Alexey Proskuryakov <ap@apple.com>
Don't use NSApplication run loop in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=107061
Reviewed by Anders Carlsson.
Added a way to tell RunLoop whether it should use NSApplication run loop
(defaulting to not using it, as this should be an exception for child processes).
* WebCore.exp.in:
* platform/RunLoop.cpp:
(WebCore::RunLoop::setUseApplicationRunLoopOnMainRunLoop):
* platform/RunLoop.h:
* platform/mac/RunLoopMac.mm:
(WebCore::RunLoop::setUseApplicationRunLoopOnMainRunLoop):
(WebCore::RunLoop::run):
(WebCore::RunLoop::stop):
2013-01-17 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: fix DefaultTextEditor's broken backspace
https://bugs.webkit.org/show_bug.cgi?id=107130
Reviewed by Pavel Feldman.
Remove css "position: relative;" style from "webkit-line-content" class, which
somehow brakes editing experience. Remove "height: 100%" from text-editor-overlay-highlight
class and cast necessary height via inserting " " into overlay span elements.
No new tests: no change in behaviour.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
* inspector/front-end/textEditor.css:
(.text-editor-overlay-highlight):
2013-01-16 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Introduce FileSystemWorkspaceProvider to allow showing files from file system in workspace.
https://bugs.webkit.org/show_bug.cgi?id=107021
Reviewed by Pavel Feldman.
Added FileSystemWorkspaceProvider that populates workspace with files
loaded from file systems registered in FileSystemMapping and listens
for FileSystemAdded / FileSystemRemoved events to update workspace.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/FileMapping.js:
(WebInspector.FileMapping.prototype.urlForURI):
(WebInspector.FileMapping.MappingEntry.prototype.urlForURI):
* inspector/front-end/FileSystemMapping.js:
(WebInspector.FileSystemMapping.prototype.uriForPath):
(WebInspector.FileSystemMapping.prototype.addEventListener):
(WebInspector.FileSystemMapping.prototype.removeEventListener):
(WebInspector.FileSystemMappingImpl):
(get WebInspector.FileSystemMappingImpl.prototype.uriForPath):
* inspector/front-end/FileSystemWorkspaceProvider.js: Added.
* inspector/front-end/IsolatedFileSystemModel.js:
(WebInspector.IsolatedFileSystemModel):
(WebInspector.IsolatedFileSystemModel.prototype._innerAddFileSystem):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/Workspace.js:
* inspector/front-end/externs.js:
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
* inspector/front-end/navigatorView.css:
(.navigator-other-tree-item .icon):
2013-01-17 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: add createOption method to WebInspector.StatusBarComboBox
https://bugs.webkit.org/show_bug.cgi?id=107102
Reviewed by Vsevolod Vlasov.
* inspector/front-end/CPUProfileView.js:
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype._addFrame):
(WebInspector.ConsoleView.prototype._appendContextOption):
* inspector/front-end/StatusBarButton.js:
(WebInspector.StatusBarButton.prototype.set state):
(WebInspector.StatusBarButton.prototype.set visible):
(WebInspector.StatusBarComboBox.prototype.createOption):
2013-01-16 Grzegorz Czajkowski <g.czajkowski@samsung.com>
[EFL][GTK] checkSpellingOfString treats the multiple words as spelled correctly
https://bugs.webkit.org/show_bug.cgi?id=106662
Reviewed by Antonio Gomes.
No new tests, covered by spelling-backspace-between-lines.html.
TextCheckerEnchant::checkSpellingOfString() method, treats the multiple words
as spelled correctly if one of them is ok. For example, string such as
"OK zz OK" is spelled correctly!
The method at the beginning assumes that the given string is spelled correctly,
then it iterates over the words to find out the misspelled location and length
in the whole string. In checkSpellingOfWord, if the word is ok, we mark
it as spelled correctly and we do return to check the next words. In the fact,
the location and length of the previously misspelled words are overwritten.
* platform/text/enchant/TextCheckerEnchant.cpp:
(WebCore::TextCheckerEnchant::checkSpellingOfWord):
Update of the word's misspeling location and length was moved out the loop.
(WebCore::TextCheckerEnchant::checkSpellingOfString):
Stop checking the next words If the current word is misspelled, to do not overwrite
its misspelled location and length.
2013-01-17 Chris Fleizach <cfleizach@apple.com>
WebSpeech: implement voices list
https://bugs.webkit.org/show_bug.cgi?id=107014
Reviewed by Adam Barth.
Add in the Mac side code to return a list of voices.
Adds a layout test, which is skipped for now, until the feature is enabled.
Test: platform/mac/fast/speechsynthesis/speech-synthesis-voices.html
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::SpeechSynthesis):
* Modules/speech/SpeechSynthesis.h:
(SpeechSynthesis):
* Modules/speech/mac/SpeechSynthesisMac.mm:
(WebCore::SpeechSynthesis::initializeVoiceList):
2013-01-16 Rik Cabanier <cabanier@adobe.com>
Update GraphicsContext to support winding rule in clip operator for Core Graphics
https://bugs.webkit.org/show_bug.cgi?id=106871
Reviewed by Dirk Schulze.
Changed the interface to GraphicsContext so it's possible to pass the winding
rule to canvasClip() and clip().
No new tests, no change in functionality.
* WebCore.exp.in: Change signature of canvasClip function.
* platform/graphics/GraphicsContext.h: Change canvasClip and clip signature with default winding rule.
* platform/graphics/cairo/GraphicsContextCairo.cpp: Update interface with new signature so it still compiles.
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::canvasClip):
* platform/graphics/cg/GraphicsContextCG.cpp: Update interface with new signature and implement winding rules.
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::canvasClip):
* platform/graphics/openvg/GraphicsContextOpenVG.cpp: Update interface with new signature so it still compiles.
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::canvasClip):
* platform/graphics/qt/GraphicsContextQt.cpp: Update interface with new signature so it still compiles.
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::canvasClip):
* platform/graphics/skia/GraphicsContextSkia.cpp: Update interface with new signature so it still compiles.
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::canvasClip):
* platform/graphics/wince/GraphicsContextWinCE.cpp: Update interface with new signature so it still compiles.
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::canvasClip):
* platform/graphics/wx/GraphicsContextWx.cpp: Update interface with new signature so it still compiles.
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::canvasClip):
2013-01-16 Hajime Morrita <morrita@google.com>
NoEventDispatchAssertion in ContainerNode::removeChildren is too strict
https://bugs.webkit.org/show_bug.cgi?id=106985
Reviewed by Ryosuke Niwa.
This change narrowed the lifetime of NoEventDispatchAssertion in removeChildren().
It is as safe as other mutation method even after this change: childrenChanged() and
ChildNodeRemovalNotifier are used outside the assertion scope.
Test: svg/custom/use-mutation-crash.xhtml
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeChildren):
2013-01-16 Shinya Kawanaka <shinyak@chromium.org>
[Refactoring] HTMLTextFormControlElement should use shadowHost instead of shadowAncestorNode
https://bugs.webkit.org/show_bug.cgi?id=106533
Reviewed by Kent Tamura.
Since Node::shadowAncestorNode() is deprecated, we would like to use Node::shadowHost().
No new tests, simple refactoring.
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setSelectionRange): Here, startPosition and endPosition is in ShadowDOM,
converting shadowAncestorNode to shadowHost is safe.
(WebCore::enclosingTextFormControl): Actually ASSERT in this method is wrong since shadowAncestorNode() does not
return NULL. This should be shadowHost().
2013-01-16 Tony Gentilcore <tonyg@chromium.org>
Disable an ASSERT for the threaded parser
https://bugs.webkit.org/show_bug.cgi?id=107087
Reviewed by Adam Barth.
Since tokenizing happens on the background thread, when the tree builder runs there isn't a valid tokenizer for which to check the state.
The background parser has minimal code to update its tokenizer's state properly.
No new tests because covered by existing fast/parser tests.
* html/parser/HTMLParserOptions.cpp:
(WebCore::HTMLParserOptions::HTMLParserOptions):
* html/parser/HTMLParserOptions.h:
(HTMLParserOptions):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTag):
2013-01-16 MORITA Hajime <morrita@google.com>
Attr.ownerDocument should change if its parent's owner did
https://bugs.webkit.org/show_bug.cgi?id=97644
Reviewed by Darin Adler.
moveTreeToNewScope() didn't traverse its Attr instances. But it should.
Test: fast/dom/Attr/parent-adopt-node.html
* dom/ElementAttributeData.cpp:
(WebCore::ElementAttributeData::getExistingAttrs):
(WebCore):
* dom/ElementAttributeData.h:
(ElementAttributeData):
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
2013-01-16 Adam Barth <abarth@webkit.org>
Address tonyg's feedback on BackgroundHTMLParser
https://bugs.webkit.org/show_bug.cgi?id=107086
Reviewed by Tony Gentilcore.
As requested in https://bugs.webkit.org/show_bug.cgi?id=107083#c5
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(TokenDelivery):
(WebCore::TokenDelivery::TokenDelivery):
(WebCore::TokenDelivery::execute):
2013-01-16 Tony Gentilcore <tonyg@chromium.org>
Introduce a method to build the tree from a CompactHTMLToken
https://bugs.webkit.org/show_bug.cgi?id=107082
Reviewed by Adam Barth.
No new tests because covered by existing fast/parser tests.
* html/parser/HTMLDocumentParser.cpp:
(WebCore):
(WebCore::HTMLDocumentParser::constructTreeFromCompactHTMLToken):
* html/parser/HTMLDocumentParser.h:
* html/parser/HTMLToken.h:
(AtomicHTMLToken):
(WebCore::AtomicHTMLToken::create):
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
* xml/parser/MarkupTokenBase.h:
(WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
(AtomicMarkupTokenBase):
2013-01-16 Roger Fong <roger_fong@apple.com>
Unreviewed build fix following r139918.
Add speech synthesis to include path and WebCore vcproj file.
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcproj/WebCoreCommon.vsprops:
2013-01-16 Chris Rogers <crogers@google.com>
Switch AudioDestinationChromium over to new createAudioDevice() method
https://bugs.webkit.org/show_bug.cgi?id=106816
Reviewed by James Robinson.
* platform/audio/chromium/AudioDestinationChromium.cpp:
(WebCore::AudioDestinationChromium::AudioDestinationChromium):
2013-01-16 Adam Barth <abarth@webkit.org>
Introduce BackgroundHTMLParser for parsing HTML on a background thread
https://bugs.webkit.org/show_bug.cgi?id=107083
Reviewed by Eric Seidel.
This patch contains a basic version of an HTML parser that runs on a
background thread. The parser passes the majority of the tests in
fast/parser and a large number of the subtests in html5lib.
Notably absent from this early version of the parser is speculation
(which will eventually replace preload scanning) and atomization (which
we suspect will be important for performance). Our plan is to introduce
those elements in subsequent patches.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/BackgroundHTMLParser.cpp: Added.
(WebCore):
(WebCore::checkThatTokensAreSafeToSendToAnotherThread):
(WebCore::parserMap):
(WebCore::ParserMap::backgroundParsers):
(WebCore::ParserMap::mainThreadParsers):
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::append):
(WebCore::BackgroundHTMLParser::continueParsing):
(WebCore::BackgroundHTMLParser::finish):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(TokenDelivery):
(WebCore::TokenDelivery::execute):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
(WebCore::BackgroundHTMLParser::createPartial):
(WebCore::BackgroundHTMLParser::stopPartial):
(WebCore::BackgroundHTMLParser::appendPartial):
(WebCore::BackgroundHTMLParser::continuePartial):
(WebCore::BackgroundHTMLParser::finishPartial):
* html/parser/BackgroundHTMLParser.h: Added.
(WebCore):
(BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::create):
(ParserMap):
(WebCore::ParserMap::identifierForParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore):
(WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
* html/parser/HTMLDocumentParser.h:
(WebCore):
(HTMLDocumentParser):
2013-01-16 Donghyun Kim <dhkim715@hotmail.com>
[soup] Fix build warning in ResourceHandleSoup.cpp
https://bugs.webkit.org/show_bug.cgi?id=107063
Reviewed by Martin Robinson.
The restartedCallback has unused parameter 'message',
remove the parameter name to fix 'unused parameter' build warning.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::restartedCallback):
2013-01-16 Tony Gentilcore <tonyg@chromium.org>
Introduce a CompactHTMLToken for the threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=107069
Reviewed by Adam Barth.
This class is used for transporting tokens from the parser thread to the main thread where they are fed to the tree builder.
No new tests because covered by existing fast/parser tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/CompactHTMLToken.cpp: Added.
(WebCore):
(WebCore::CompactHTMLToken::CompactHTMLToken):
(WebCore::isStringSafeToSendToAnotherThread):
(WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
* html/parser/CompactHTMLToken.h: Added.
(WebCore):
(CompactAttribute):
(WebCore::CompactAttribute::CompactAttribute):
(WebCore::CompactAttribute::name):
(WebCore::CompactAttribute::value):
(CompactHTMLToken):
(WebCore::CompactHTMLToken::type):
(WebCore::CompactHTMLToken::data):
(WebCore::CompactHTMLToken::selfClosing):
(WebCore::CompactHTMLToken::attributes):
(WebCore::CompactHTMLToken::publicIdentifier):
(WebCore::CompactHTMLToken::systemIdentifier):
* xml/parser/MarkupTokenBase.h:
(WebCore::MarkupTokenBase::data):
(MarkupTokenBase):
2013-01-16 Adam Barth <abarth@webkit.org>
Introduce HTMLParserThread to be able to parse on a background thread
https://bugs.webkit.org/show_bug.cgi?id=107071
Reviewed by Tony Gentilcore.
This patch introduces a simple thread class that we can use to parse
HTML. This patch is unlikely to be the final design because we'll
likely want to use libdispatch or some other platform-specific thread
pool. However, this implementation is enough to let us work on the
parser-specific aspects of this feature.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/HTMLParserThread.cpp: Added.
(WebCore):
(WebCore::HTMLParserThread::HTMLParserThread):
(WebCore::HTMLParserThread::~HTMLParserThread):
(WebCore::HTMLParserThread::start):
(WebCore::HTMLParserThread::stop):
(WebCore::HTMLParserThread::shared):
(WebCore::HTMLParserThread::postTask):
(WebCore::HTMLParserThread::threadStart):
(WebCore::HTMLParserThread::runLoop):
* html/parser/HTMLParserThread.h: Added.
(WebCore):
(HTMLParserThread):
(WebCore::HTMLParserThread::create):
(WebCore::HTMLParserThread::threadId):
2013-01-16 MORITA Hajime <morrita@google.com>
WebCore::ScriptRunner::timerFired() is reported to crash.
https://bugs.webkit.org/show_bug.cgi?id=92211
Reviewed by Darin Adler.
This is a speculative fix to address some crash reports.
Here is my rough guess.
The crash report says there is a PendingScript instance whose m_element is null.
- It happens only if the instance is created through the default constructor,
- that could happen if m_pendingAsyncScripts doesn't contains matched PendingScript in ScriptRunner::notifyScriptReady(),
- that could happen when notifyScriptReady() is called more than once.
- It turns out that the call site, ScriptElement::notifyFinished(), could be called multiple times since
it doesn't remove itself from the CachedResource, which is done separately in ScriptElement::execute().
- So if notifyFinished() is called before execute(), it could happen
This change added a guard to prevent notifyFinished() from being invoked multiple times.
We should watch if these crash reports disappear.
No new tests. I couldn't create any repro for this.
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::notifyFinished):
2013-01-16 Pablo Flouret <pablof@motorola.com>
Fix mac build system warnings introduced by r139866
https://bugs.webkit.org/show_bug.cgi?id=107056
Reviewed by Benjamin Poulain.
warning: no rule to process file '$(PROJECT_DIR)/css/CSSSupportsRule.h' of type sourcecode.c.h for architecture x86_64
warning: no rule to process file '$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSCSSSupportsRule.h' of type sourcecode.c.h for architecture x86_64
{JS,}CSSSupportsRule.h somehow ended up marked as sources in the XCode
project.
No new tests. Build warning fix.
* WebCore.xcodeproj/project.pbxproj:
2013-01-16 Elliott Sprehn <esprehn@chromium.org>
Merge RenderObjectChildList::appendChildNode and insertChildNode
https://bugs.webkit.org/show_bug.cgi?id=106392
Reviewed by Eric Seidel.
insertChildNode and appendChildNode are nearly identical methods and
we can combine them into insertChildNode and handle cases where the
renderer to insert before is null as if it was an append.
No new tests, just refactoring.
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::insertChildNode):
* rendering/RenderObjectChildList.h:
(RenderObjectChildList):
(WebCore::RenderObjectChildList::appendChildNode):
Now inline and delegates to insertChildNode.
2013-01-16 Elliott Sprehn <esprehn@chromium.org>
Cursor stops blinking after clicking on scrollbar
https://bugs.webkit.org/show_bug.cgi?id=106470
Reviewed by Ojan Vafai.
Restore the caret blinking when doing a mouseup on a
scrollbar so scrolling a textarea doesn't cause the
caret to freeze.
No new tests, there doesn't seem to be any way to test
cursor blinking.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
2013-01-16 Adam Barth <abarth@webkit.org>
Teach HTMLParserOptions about Settings::threadedHTMLParser
https://bugs.webkit.org/show_bug.cgi?id=107068
Reviewed by Tony Gentilcore.
We use this option to enable the threaded HTML parser at runtime.
* html/parser/HTMLParserOptions.cpp:
(WebCore::HTMLParserOptions::HTMLParserOptions):
* html/parser/HTMLParserOptions.h:
(HTMLParserOptions):
2013-01-16 Brady Eidson <beidson@apple.com>
Synchronous XMLHTTPRequests need to go to the NetworkProcess.
<rdar://problem/12951765> and https://bugs.webkit.org/show_bug.cgi?id=106826
Reviewed by Sam Weinig and Alexey Proskuryakov.
No new tests (No changes to any config that is currently tested)
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadResourceSynchronously): Consult the LoaderStrategy when strategies are
being used.
* loader/LoaderStrategy.cpp:
(WebCore::LoaderStrategy::loadResourceSynchronously): Defaults to using ResourceHandle directly.
* loader/LoaderStrategy.h:
Break out the StoredCredentials enum to a new header:
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleTypes.h:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
2013-01-16 Robert Iannucci <iannucci@chromium.org>
Explicitly set msvs_cygwin_shell to true for bison rule
https://bugs.webkit.org/show_bug.cgi?id=107058
Reviewed by Tony Chang.
Currently, msvs_cygwin_shell is set to 1 by default. This patch
explicitly sets it on the actions which will break if msvs_cygwin_shell
were set to 0. This is in preparation for changing the default value of
msvs_cygwin_shell, which in turn is in preparation of the removal of
cygwin as a buld-system requirement.
Since this change will have no semantic effect, no new tests are
required.
A previous instance of this bug is here:
https://bugs.webkit.org/show_bug.cgi?id=106706
* WebCore.gyp/WebCore.gyp:
2013-01-16 Benjamin Poulain <bpoulain@apple.com>
Fix the warning for the exported Objective-C binding of DOMCSSSupportsRule
Rubber-stamped by Simon Fraser.
* WebCore.exp.in: r139866 exported the Objective-C class DOMCSSSupportsRule
without #ifdefing the symbol between its feature flag.
2013-01-16 Victor Carbune <vcarbune@chromium.org>
Cues not rendered when they should be
https://bugs.webkit.org/show_bug.cgi?id=106943
Reviewed by Eric Carlson.
Forced rendering update, even if the active set of cues didn't change.
Test: media/track/track-cue-rendering-mode-changed.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateActiveTextTrackCues): If exiting early,
update the cues rendered by the text track container.
(WebCore::HTMLMediaElement::textTrackModeChanged): Trigger update of the
re-checking the active cues and render the ones not yet on screen.
2013-01-16 Benjamin Poulain <bpoulain@apple.com>
Force a rebuild of RenderObject
Unreviewed. One bot is using old object file. Change RenderObject.cpp to force it
to build the file again.
* rendering/RenderObject.cpp:
(WebCore::addLayers):
(WebCore::RenderObject::findNextLayer):
2013-01-16 Joshua Bell <jsbell@chromium.org>
IndexedDB: Possible null ScriptExecutionContext passed to callbacks during frame destruction
https://bugs.webkit.org/show_bug.cgi?id=107050
Reviewed by Tony Chang.
Temporary code to defend against null contexts. Will either refute a hypothesis, or we'll
need to make a more systemic fix elsewhere. Either way it will be removed in a few days.
We're unable to repro, but watching crash reports from users. One possible source is
that during page tear-down WorkerScriptController::controllerForContext() returns null
(there's a comment about that case) leading to a null context.
No new tests - this shouldn't be happening.
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::createIndex):
2013-01-16 Kenneth Russell <kbr@google.com>
Simplify validation and data copying in WebGLBuffer
https://bugs.webkit.org/show_bug.cgi?id=106975
Reviewed by Dean Jackson.
Re-landing after testing locally; was not able to reproduce the
crash seen once with the earlier patch.
No new tests; covered by existing tests. Ran WebGL layout tests and conformance tests.
* html/canvas/WebGLBuffer.cpp:
(WebCore::WebGLBuffer::associateBufferDataImpl):
Take (void*, int) pair instead of ArrayBuffer and offset. Simplifies code significantly.
(WebCore::WebGLBuffer::associateBufferData):
Pass down base pointers and sizes rather than ArrayBuffer and optional offset.
(WebCore::WebGLBuffer::associateBufferSubDataImpl):
Take (void*, int) pair instead of ArrayBuffer and offset. Simplifies code significantly.
(WebCore::WebGLBuffer::associateBufferSubData):
Pass down base pointers and sizes rather than ArrayBuffer and optional offset.
* html/canvas/WebGLBuffer.h:
(WebGLBuffer):
Change signatures of associateBufferDataImpl and associateBufferSubDataImpl.
2013-01-16 Timothy Hatcher <timothy@apple.com>
Fix a crash when printing console messages to STDOUT.
https://bugs.webkit.org/show_bug.cgi?id=107039
Reviewed by Joseph Pecoraro.
* page/Console.cpp:
(WebCore::internalAddMessage): Don't release the RefPtr early. Also log the line number
and convert non-string arguments to strings when printing them.
2013-01-16 Kenneth Russell <kbr@google.com>
Unreviewed, rolling out r139914.
http://trac.webkit.org/changeset/139914
https://bugs.webkit.org/show_bug.cgi?id=106975
Caused crashes in compositing/visibility/visibility-simple-
webgl-layer.html
* html/canvas/WebGLBuffer.cpp:
(WebCore::WebGLBuffer::associateBufferDataImpl):
(WebCore::WebGLBuffer::associateBufferData):
(WebCore::WebGLBuffer::associateBufferSubDataImpl):
(WebCore::WebGLBuffer::associateBufferSubData):
* html/canvas/WebGLBuffer.h:
(WebGLBuffer):
2013-01-16 Alexis Menard <alexis@webkit.org>
Monitor usage of unprefixed and prefixed DOM events for CSS Transitions.
https://bugs.webkit.org/show_bug.cgi?id=107004
Reviewed by Adam Barth.
Monitor the usage of transitionEnd events as well as
webkitTransitionEnd events so we can know in the future how much the
prefixed version is used to remove it becomes irrelevant.
No new tests : no behavior changes, we're just adding monitoring.
* dom/EventTarget.cpp:
(WebCore):
(WebCore::EventTarget::fireEventListeners):
* page/FeatureObserver.h:
2013-01-16 Antti Koivisto <antti@apple.com>
Tighten RenderLayerModelObject subclass constructors to operate on ContainerNodes.
https://bugs.webkit.org/show_bug.cgi?id=107041
Reviewed by Simon Fraser.
In rendering code only Nodes that are not ContainerNodes are used by RenderText. Tighter typing is better in general.
It also enables better code generation (especially with Document* moving from Node to ContainerNode).
This patch tightens constuctors for better static type checking. It also overrides node() with a covariant ContainerNode* return type
version in RenderLayerModelObject. RenderObject::createObject() is tightened to take Element*.
This patch does not change Node* usage in non-construction code (expect for the node() override).
With some further work it should be possible to tighten most of the rendering tree to operate on Elements for even less branchiness.
* dom/Document.cpp:
(WebCore::Document::attach):
* html/shadow/SliderThumbElement.cpp:
(WebCore::RenderSliderThumb::RenderSliderThumb):
(WebCore::RenderSliderContainer::RenderSliderContainer):
* html/shadow/SliderThumbElement.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::RenderBlock):
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::RenderBox):
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::RenderBoxModelObject):
* rendering/RenderBoxModelObject.h:
* rendering/RenderButton.cpp:
(WebCore::RenderButton::RenderButton):
* rendering/RenderButton.h:
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
* rendering/RenderDeprecatedFlexibleBox.h:
* rendering/RenderDetailsMarker.cpp:
(WebCore::RenderDetailsMarker::RenderDetailsMarker):
* rendering/RenderDetailsMarker.h:
* rendering/RenderDialog.h:
(WebCore::RenderDialog::RenderDialog):
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::RenderFieldset):
* rendering/RenderFieldset.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::RenderFlexibleBox):
* rendering/RenderFlexibleBox.h:
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::RenderFlowThread):
* rendering/RenderFlowThread.h:
* rendering/RenderFullScreen.cpp:
(RenderFullScreen::RenderFullScreen):
* rendering/RenderFullScreen.h:
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::RenderGrid):
* rendering/RenderGrid.h:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::RenderImage):
* rendering/RenderImage.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::RenderInline):
* rendering/RenderInline.h:
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::RenderLayerModelObject):
* rendering/RenderLayerModelObject.h:
(WebCore::RenderLayerModelObject::node):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::RenderListItem):
* rendering/RenderListItem.h:
* rendering/RenderMediaControlElements.cpp:
(WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
(WebCore::RenderMediaControlTimeDisplay::RenderMediaControlTimeDisplay):
(WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement):
* rendering/RenderMediaControlElements.h:
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
* rendering/RenderMultiColumnBlock.h:
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
* rendering/RenderMultiColumnFlowThread.h:
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
* rendering/RenderMultiColumnSet.h:
(RenderMultiColumnSet):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
* rendering/RenderNamedFlowThread.h:
(RenderNamedFlowThread):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::createObject):
* rendering/RenderObject.h:
(RenderObject):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::RenderRegion):
* rendering/RenderRegion.h:
(RenderRegion):
* rendering/RenderRegionSet.cpp:
(WebCore::RenderRegionSet::RenderRegionSet):
* rendering/RenderRegionSet.h:
(RenderRegionSet):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::RenderReplaced):
* rendering/RenderReplaced.h:
(RenderReplaced):
* rendering/RenderReplica.cpp:
(WebCore::RenderReplica::RenderReplica):
(WebCore::RenderReplica::~RenderReplica):
* rendering/RenderReplica.h:
* rendering/RenderRuby.cpp:
(WebCore::RenderRubyAsInline::RenderRubyAsInline):
(WebCore::RenderRubyAsBlock::RenderRubyAsBlock):
* rendering/RenderRuby.h:
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::RenderRubyBase):
* rendering/RenderRubyBase.h:
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::RenderRubyRun):
* rendering/RenderRubyRun.h:
(RenderRubyRun):
* rendering/RenderRubyText.cpp:
(WebCore::RenderRubyText::RenderRubyText):
* rendering/RenderRubyText.h:
(RenderRubyText):
* rendering/RenderScrollbarPart.cpp:
(WebCore::RenderScrollbarPart::RenderScrollbarPart):
* rendering/RenderScrollbarPart.h:
(RenderScrollbarPart):
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::RenderSearchField):
* rendering/RenderSearchField.h:
(RenderSearchField):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable):
* rendering/RenderTable.h:
(RenderTable):
* rendering/RenderTableCaption.cpp:
(WebCore::RenderTableCaption::RenderTableCaption):
* rendering/RenderTableCaption.h:
(RenderTableCaption):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::RenderTableCell):
* rendering/RenderTableCell.h:
(RenderTableCell):
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::RenderTableCol):
* rendering/RenderTableCol.h:
(RenderTableCol):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::RenderTableRow):
* rendering/RenderTableRow.h:
(RenderTableRow):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::RenderTableSection):
* rendering/RenderTableSection.h:
(RenderTableSection):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::RenderTextControl):
* rendering/RenderTextControl.h:
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
* rendering/RenderTextControlMultiLine.h:
(RenderTextControlMultiLine):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
* rendering/RenderTextControlSingleLine.h:
(RenderTextControlSingleLine):
(WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
* rendering/RenderTextTrackCue.cpp:
(WebCore::RenderTextTrackCue::RenderTextTrackCue):
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
* rendering/RenderView.h:
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::RenderWidget):
* rendering/RenderWidget.h:
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::RenderMathMLBlock):
* rendering/mathml/RenderMathMLBlock.h:
(WebCore::RenderMathMLTable::RenderMathMLTable):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::RenderMathMLOperator):
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::RenderMathMLRow):
* rendering/mathml/RenderMathMLRow.h:
(RenderMathMLRow):
(WebCore::RenderSVGInline::RenderSVGInline):
* rendering/svg/RenderSVGInline.h:
* rendering/svg/RenderSVGTSpan.cpp:
(WebCore::RenderSVGTSpan::RenderSVGTSpan):
* rendering/svg/RenderSVGTSpan.h:
* rendering/svg/RenderSVGTextPath.cpp:
(WebCore::RenderSVGTextPath::RenderSVGTextPath):
* rendering/svg/RenderSVGTextPath.h:
2013-01-16 Chris Fleizach <cfleizach@apple.com>
Stub out WebSpeech synthesis
https://bugs.webkit.org/show_bug.cgi?id=106847
Reviewed by Adam Barth.
This adds in the necessary IDLs and stubs out the code for the WebSpeech
synthesis specification.
It does not turn on the feature in any platform, but it can be enabled
and built for Mac.
The feature flag is SPEECH_SYNTHESIS.
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.make:
* Modules/speech/DOMWindowSpeechSynthesis.cpp: Added.
(WebCore::DOMWindowSpeechSynthesis::DOMWindowSpeechSynthesis):
(WebCore::DOMWindowSpeechSynthesis::~DOMWindowSpeechSynthesis):
(WebCore::DOMWindowSpeechSynthesis::from):
(WebCore::DOMWindowSpeechSynthesis::speechSynthesis):
* Modules/speech/DOMWindowSpeechSynthesis.h: Added.
* Modules/speech/DOMWindowSpeechSynthesis.idl: Added.
* Modules/speech/SpeechSynthesis.cpp: Added.
(WebCore::SpeechSynthesis::create):
(WebCore::SpeechSynthesis::SpeechSynthesis):
* Modules/speech/SpeechSynthesis.h: Added.
(SpeechSynthesis):
(WebCore::SpeechSynthesis::getVoices):
* Modules/speech/SpeechSynthesis.idl: Added.
* Modules/speech/SpeechSynthesisEvent.cpp: Added.
(WebCore::SpeechSynthesisEvent::create):
(WebCore::SpeechSynthesisEvent::SpeechSynthesisEvent):
* Modules/speech/SpeechSynthesisEvent.h: Added.
(SpeechSynthesisEvent):
(WebCore::SpeechSynthesisEvent::charIndex):
(WebCore::SpeechSynthesisEvent::elapsedTime):
(WebCore::SpeechSynthesisEvent::name):
* Modules/speech/SpeechSynthesisEvent.idl: Added.
* Modules/speech/SpeechSynthesisUtterance.cpp: Added.
(WebCore::SpeechSynthesisUtterance::create):
(WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
(WebCore::SpeechSynthesisUtterance::scriptExecutionContext):
(WebCore::SpeechSynthesisUtterance::interfaceName):
* Modules/speech/SpeechSynthesisUtterance.h: Added.
(SpeechSynthesisUtterance):
(WebCore::SpeechSynthesisUtterance::text):
(WebCore::SpeechSynthesisUtterance::setText):
(WebCore::SpeechSynthesisUtterance::lang):
(WebCore::SpeechSynthesisUtterance::setLang):
(WebCore::SpeechSynthesisUtterance::voiceURI):
(WebCore::SpeechSynthesisUtterance::setVoiceURI):
(WebCore::SpeechSynthesisUtterance::volume):
(WebCore::SpeechSynthesisUtterance::setVolume):
(WebCore::SpeechSynthesisUtterance::rate):
(WebCore::SpeechSynthesisUtterance::setRate):
(WebCore::SpeechSynthesisUtterance::pitch):
(WebCore::SpeechSynthesisUtterance::setPitch):
* Modules/speech/SpeechSynthesisUtterance.idl: Added.
* Modules/speech/SpeechSynthesisVoice.cpp: Added.
(WebCore::SpeechSynthesisVoice::create):
(WebCore::SpeechSynthesisVoice::SpeechSynthesisVoice):
* Modules/speech/SpeechSynthesisVoice.h: Added.
(SpeechSynthesisVoice):
(WebCore::SpeechSynthesisVoice::voiceURI):
(WebCore::SpeechSynthesisVoice::name):
(WebCore::SpeechSynthesisVoice::lang):
(WebCore::SpeechSynthesisVoice::localService):
(WebCore::SpeechSynthesisVoice::isDefault):
* Modules/speech/SpeechSynthesisVoice.idl: Added.
* Modules/speech/mac: Added.
* Modules/speech/mac/SpeechSynthesisMac.mm: Added.
(WebCore::SpeechSynthesis::pending):
(WebCore::SpeechSynthesis::speaking):
(WebCore::SpeechSynthesis::paused):
(WebCore::SpeechSynthesis::speak):
(WebCore::SpeechSynthesis::cancel):
(WebCore::SpeechSynthesis::pause):
(WebCore::SpeechSynthesis::resume):
* WebCore.xcodeproj/project.pbxproj:
* dom/EventNames.h:
* dom/EventNames.in:
* dom/EventTargetFactory.in:
2013-01-16 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r139853.
http://trac.webkit.org/changeset/139853
https://bugs.webkit.org/show_bug.cgi?id=107049
Broke the ChromeOS ppapi_unittests (Requested by leviw on
#webkit).
* inspector/Inspector.json:
* inspector/InspectorInstrumentation.cpp:
(WebCore):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
* inspector/InspectorPageAgent.cpp:
* inspector/InspectorPageAgent.h:
* inspector/front-end/ResourceTreeModel.js:
(WebInspector.PageDispatcher.prototype.frameDetached):
* loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::clear):
(WebCore::NavigationScheduler::timerFired):
(WebCore::NavigationScheduler::startTimer):
(WebCore::NavigationScheduler::cancel):
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::progressStarted):
(WebCore::ProgressTracker::finalProgressComplete):
2013-01-16 Kenneth Russell <kbr@google.com>
Simplify validation and data copying in WebGLBuffer
https://bugs.webkit.org/show_bug.cgi?id=106975
Reviewed by Dean Jackson.
No new tests; covered by existing tests. Ran WebGL layout tests and conformance tests.
* html/canvas/WebGLBuffer.cpp:
(WebCore::WebGLBuffer::associateBufferDataImpl):
Take (void*, int) pair instead of ArrayBuffer and offset. Simplifies code significantly.
(WebCore::WebGLBuffer::associateBufferData):
Pass down base pointers and sizes rather than ArrayBuffer and optional offset.
(WebCore::WebGLBuffer::associateBufferSubDataImpl):
Take (void*, int) pair instead of ArrayBuffer and offset. Simplifies code significantly.
(WebCore::WebGLBuffer::associateBufferSubData):
Pass down base pointers and sizes rather than ArrayBuffer and optional offset.
* html/canvas/WebGLBuffer.h:
(WebGLBuffer):
Change signatures of associateBufferDataImpl and associateBufferSubDataImpl.
2013-01-16 Arnaud Renevier <a.renevier@sisa.samsung.com>
inconsistency in drawImage with target rect negative dimensions.
https://bugs.webkit.org/show_bug.cgi?id=100026
Reviewed by Dean Jackson.
Remove -1, -1 special case in drawImage and drawImageBuffer. Replace
all -1 -1 arguments calls to with the correct rectangle dimensions.
Remove FloatRect(0, 0, -1, -1) default argument for srcRect, and
instead, add new overloaded functions to create a FloatRect from image
size.
Replace -1 -1 arguments calls in FEComposite::platformApplySoftware
with correct rectangle dimensions.
Replace ImageGStreamer rect method (which may return -1 -1 rectangle)
with cropRect method, and make caller check for rectangle emptiness.
* fast/canvas/drawImage-with-negative-source-destination-expected.txt:
* fast/canvas/drawImage-with-negative-source-destination.js:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage):
(WebCore):
(WebCore::GraphicsContext::drawImageBuffer):
* platform/graphics/GraphicsContext.h:
(GraphicsContext):
* platform/graphics/filters/FEComposite.cpp:
(WebCore::FEComposite::platformApplySoftware):
* platform/graphics/gstreamer/ImageGStreamer.h:
(WebCore::ImageGStreamer::rect):
2013-01-16 Simon Fraser <simon.fraser@apple.com>
Allow PaintInfo to carry all PaintBehavior flags
https://bugs.webkit.org/show_bug.cgi?id=106980
Reviewed by Beth Dakin.
In r139908 I missed one instance of the PaintInfo constructor that should take PaintBehaviorNormal
instead of "false".
* rendering/RenderScrollbarPart.cpp:
(WebCore::RenderScrollbarPart::paintIntoRect):
2013-01-16 Simon Fraser <simon.fraser@apple.com>
Allow PaintInfo to carry all PaintBehavior flags
https://bugs.webkit.org/show_bug.cgi?id=106980
Reviewed by Sam Weinig.
PaintInfo has a single boolean for forceBlackText, but I'll be adding additional
paint behaviors that I'd like to access from PaintInfo, so it makes sense for
PaintInfo to just include the set of PaintBehavior flags.
Also add default values in the constructor arguments for rarely used parameters.
No behavior change, no tests.
* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::paint): Use the forceBlackText() function.
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Call forceBlackText().
* rendering/PaintInfo.h:
(WebCore::PaintInfo::PaintInfo): Pass PaintBehavior rather than a forceBlackText boolean.
(WebCore::PaintInfo::forceBlackText): Return true if the behavior flags contain PaintBehaviorForceBlackText.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended): Pass PaintBehaviorForceBlackText instead of 'true'
when painting for background-clip: text.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents): Pass PaintBehaviorNormal where we used to pass 'false',
and omit default 0 parameters.
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::renderSubtreeToImageBuffer): PaintBehaviorNormal and remove default params.
2013-01-16 Tim Horton <timothy_horton@apple.com>
Add a missing #if to fix the Mac build sans ENABLE_CSS_FILTERS.
Rubber-stamped by Simon Fraser.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::cloneLayer):
2013-01-16 Kentaro Hara <haraken@chromium.org>
[V8] Make a creationContext parameter of toV8() mandatory
https://bugs.webkit.org/show_bug.cgi?id=107020
Reviewed by Adam Barth.
Currently a creationContext parameter of toV8() is optional:
Handle<Value> toV8(..., Handle<Object> creationContext = Handle<Object>(), ...) {
...;
}
On the other hand, looking at the implementation of
V8WrapperInstantiationScope:
explicit V8WrapperInstantiationScope(v8::Handle<v8::Object> creationContext)
: m_didEnterContext(false)
, m_context(v8::Context::GetCurrent())
{
if (creationContext.IsEmpty()) // We do nothing for this case!
return;
v8::Handle<v8::Context> contextForWrapper = creationContext->CreationContext();
if (contextForWrapper == m_context)
return;
m_context = v8::Local<v8::Context>::New(contextForWrapper);
m_didEnterContext = true;
m_context->Enter();
}
we're assuming that a creationContext parameter is passed
to toV8() when a creationContext exists. In other words,
if we forget to pass a creationContext parameter, we will
end up with creating an object on the current context, which
is wrong. To avoid the mistake, we should make the
creationContext parameter mandatory. When we really do not
have a creationContext, we can pass Handle<Object>() explicitly.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* bindings/scripts/test/V8/V8Float64Array.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::toV8):
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::injectIDBKeyIntoScriptValue):
(WebCore::idbKeyToScriptValue):
* bindings/v8/ScriptController.cpp:
(WebCore::createScriptObject):
(WebCore::ScriptController::createScriptObjectForPluginElement):
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::currentCallFrame):
* bindings/v8/ScriptObject.cpp:
(WebCore::ScriptGlobalObject::set):
* bindings/v8/V8AbstractEventListener.cpp:
(WebCore::V8AbstractEventListener::handleEvent):
(WebCore::V8AbstractEventListener::getReceiverObject):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::updateDocumentProperty):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::toObjectWrapper):
* bindings/v8/V8MutationCallback.cpp:
(WebCore::V8MutationCallback::handleEvent):
* bindings/v8/V8NodeFilterCondition.cpp:
(WebCore::V8NodeFilterCondition::acceptNode):
* bindings/v8/V8WorkerContextEventListener.cpp:
(WebCore::V8WorkerContextEventListener::handleEvent):
(WebCore::V8WorkerContextEventListener::getReceiverObject):
* bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
(WebCore::V8SQLStatementErrorCallback::handleEvent):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::InjectedScriptHost::nodeAsScriptValue):
* css/MediaQueryListListener.cpp:
(WebCore::MediaQueryListListener::queryChanged):
* testing/v8/WebCoreTestSupport.cpp:
(WebCoreTestSupport::injectInternalsObject):
2013-01-15 Jer Noble <jer.noble@apple.com>
Add a Setting to disable QTKit media engine.
https://bugs.webkit.org/show_bug.cgi?id=106972
Reviewed by Eric Carlson.
Allow the MediaPlayerPrivateQTKit engine to be disabled by adding a
runtime setting to Settings. Make the setting 'live' by requerying the
installed media engines when the setting changes.
* WebCore.exp.in: Add new symbols to export list.
* page/Settings.cpp: Add new gQTKitEnabled global.
(WebCore::Settings::setAVFoundationEnabled): Requery media engines.
(WebCore::Settings::setQTKitEnabled): Ditto. Setter for global setting variable.
* page/Settings.h:
(WebCore::Settings::isQTKitEnabled): Getter for same.
* platform/graphics/MediaPlayer.cpp:
(WebCore::installedMediaEngines): Check isQTKitEnabled() before adding
MediaPlayerPrivateQTKit engine.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::requeryMediaEngines): Pass through to MediaPlayer.
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::installedMediaEngines): Take an optional requery options parameter.
(WebCore::MediaPlayer::requeryMediaEngines): Pass through to installedMediaEngines().
* platform/graphics/MediaPlayer.h:
2013-01-16 Christophe Dumez <christophe.dumez@intel.com>
[gstreamer] Some media tests occasionally crash with gstreamer 1.0 backend
https://bugs.webkit.org/show_bug.cgi?id=106551
Reviewed by Philippe Normand.
ImageGStreamerCairo was passing mapped memory to
cairo_image_surface_create_for_data() and then unmapping it straight
away even though the cairo_surface_t is still used. The cairo
documentation states:
"The output buffer must be kept around until the cairo_surface_t is
destroyed or cairo_surface_finish() is called on the surface."
This patch keeps the GstBuffer memory mapped until the ImageGStreamer
is destroyed so that the internal cairo_surface_t stays valid while
avoiding copying the image data.
No new tests, already covered by existing tests.
* platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
(WTF::adoptGRef):
(WTF):
(WTF::GstBuffer):
* platform/graphics/gstreamer/GRefPtrGStreamer.h:
(WTF): Add support for using GRefPtr with GstBuffer.
* platform/graphics/gstreamer/ImageGStreamer.h:
(ImageGStreamer):
* platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
(ImageGStreamer::ImageGStreamer):
(ImageGStreamer::~ImageGStreamer):
2013-01-16 Mike Reed <reed@google.com>
Use SkMatrix::I() when we need to pass identity, rather than constructing a new matrix.
https://bugs.webkit.org/show_bug.cgi?id=107016
Reviewed by James Robinson.
No new tests. existing tests exercise this code.
The default constructor is being deprecated, so this change is also part of that effort,
though it is a perf-improvement regardless, since we avoid making a new (temp) matrix.
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
2013-01-16 Ojan Vafai <ojan@chromium.org>
RenderListMarker::computePreferredLogicalWidth should not be public
https://bugs.webkit.org/show_bug.cgi?id=106956
Reviewed by Tony Chang.
RenderListItem was calling computePreferredLogicalWidths for the side
effects of updating the marker content and margins. Instead, call
updateMarginsAndContent directly.
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::updateMarkerLocation):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::layout):
The isImage() codepath never calls computePreferredLogicalWidths, so we need to make
sure the content and margins are updated.
(WebCore::RenderListMarker::updateContent):
(WebCore::RenderListMarker::computePreferredLogicalWidths):
(WebCore::RenderListMarker::updateMarginsAndContent):
* rendering/RenderListMarker.h:
2013-01-16 Claudio Saavedra <csaavedra@igalia.com>
[GTK] Safeguard against possible NULL-dereference
https://bugs.webkit.org/show_bug.cgi?id=104931
Reviewed by Martin Robinson.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetIndexInParent): Move the NULL-safeguard to a
place where it actually makes sense.
2013-01-16 Avi Drissman <avi@google.com>
West-panning cursor does not match resize cursor, unlike all other directions
https://bugs.webkit.org/show_bug.cgi?id=89405
Reviewed by Alexey Proskuryakov.
Existing manual tests.
* platform/mac/CursorMac.mm:
(WebCore::Cursor::ensurePlatformCursor):
2013-01-16 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: array grouping does not work for float number keys
https://bugs.webkit.org/show_bug.cgi?id=106998
Reviewed by Pavel Feldman.
Now we do the array index check according to the ECMAScript 5, section 15.4:
"A property name P (in the form of a String value) is an array index if and only if ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal to 2^32-1."
* inspector/front-end/ObjectPropertiesSection.js:
(.buildObjectFragment):
2013-01-16 Sergey Ryazanov <serya@chromium.org>
Web Inspector: Show formatted content of JSON request
https://bugs.webkit.org/show_bug.cgi?id=106900
Reviewed by Vsevolod Vlasov.
"Request payload" section showed raw content for POST requests.
This change show it in structured format if it's JSON parsable.
Raw format is also available.
* inspector/front-end/RequestHeadersView.js:
(WebInspector.RequestHeadersView.prototype._refreshQueryString):
(WebInspector.RequestHeadersView.prototype._refreshFormData):
(WebInspector.RequestHeadersView.prototype.toggleViewSource):
(WebInspector.RequestHeadersView.prototype._refreshParams):
2013-01-16 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: UISourceCode scriptFile / styleFile should be reset on navigation (debugger or css model reset).
https://bugs.webkit.org/show_bug.cgi?id=107008
Reviewed by Pavel Feldman.
ScriptFiles and styleFiles are now reset and disposed on UISourceCodes on corresponding models reset.
StyleSourceMapping now tries to setup mapping for newly added resource as well as for uiSourceCodes previously.
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSStyleModel):
(WebInspector.CSSStyleModel.prototype._mainFrameCreatedOrNavigated):
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping):
(WebInspector.ResourceScriptMapping.prototype._unbindUISourceCodeFromScripts):
(WebInspector.ResourceScriptMapping.prototype._initialize):
(WebInspector.ResourceScriptMapping.prototype._debuggerReset):
(WebInspector.ResourceScriptFile.prototype.dispose):
* inspector/front-end/ResourceTreeModel.js:
(WebInspector.ResourceTreeModel.prototype._addFrame):
(WebInspector.ResourceTreeModel.prototype._frameNavigated):
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.ScriptSnippetModel):
(WebInspector.ScriptSnippetModel.prototype._debuggerReset):
* inspector/front-end/StylesSourceMapping.js:
(WebInspector.StylesSourceMapping):
(WebInspector.StylesSourceMapping.prototype._resourceAdded):
(WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
(WebInspector.StylesSourceMapping.prototype._bindUISourceCode):
(WebInspector.StylesSourceMapping.prototype._projectWillReset):
(WebInspector.StylesSourceMapping.prototype._initialize):
(WebInspector.StylesSourceMapping.prototype._mainFrameCreatedOrNavigated):
(WebInspector.StyleFile.prototype.dispose):
2013-01-16 Gustavo Noronha Silva <gustavo.noronha@collabora.com>
[GStreamer][Soup] Let GStreamer provide the buffer data is downloaded to, to avoid copying
https://bugs.webkit.org/show_bug.cgi?id=105552
Reverting 139877. It made a couple of API tests fail.
* platform/graphics/gstreamer/GStreamerVersioning.cpp:
* platform/graphics/gstreamer/GStreamerVersioning.h:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(StreamingClient):
(_WebKitWebSrcPrivate):
(webKitWebSrcFinalize):
(webKitWebSrcStop):
(StreamingClient::didReceiveData):
* platform/network/ResourceHandleClient.h:
(ResourceHandleClient):
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
(ResourceHandleInternal):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::cleanupSoupRequestOperation):
(WebCore::nextMultipartResponsePartCallback):
(WebCore::sendRequestCallback):
(WebCore::readCallback):
2013-01-16 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: cookies with empty value are parsed incorrectly
https://bugs.webkit.org/show_bug.cgi?id=107012
Reviewed by Pavel Feldman.
Require cookie value to be a string, not a non-empty string, before
employing legacy compatibility hack of treating bare token as value
for the cookie with an empty name.
* inspector/front-end/CookieParser.js:
(WebInspector.CookieParser.prototype._addCookie):
2013-01-16 Grzegorz Czajkowski <g.czajkowski@samsung.com>
Unreviewed EFL build fix after r139877.
* platform/graphics/gstreamer/GStreamerVersioning.cpp:
(getGstBufferDataPointer): Add const modifier to webkitGstMapInfoQuarkString.
2013-01-16 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: [Extensions API] remove inspectedWindow.onReset event
https://bugs.webkit.org/show_bug.cgi?id=107009
Reviewed by Vsevolod Vlasov.
* inspector/front-end/ExtensionAPI.js:
(defineCommonExtensionSymbols):
(injectedExtensionAPI.InspectorExtensionAPI):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype.initExtensions):
2013-01-16 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: fix text-editor-highlight-regexp test
https://bugs.webkit.org/show_bug.cgi?id=107006
Reviewed by Vsevolod Vlasov.
Use 'height: 100%' instead of pixel values on highlight spans to bring in some platform independency in test expectations.
No new tests: no changes in behaviour.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._measureRegex):
(WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
* inspector/front-end/textEditor.css:
(.text-editor-overlay-highlight):
(.webkit-line-content):
2013-01-16 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Qt] Use the shared HistoryItem serialization for QWebHistory
https://bugs.webkit.org/show_bug.cgi?id=106671
Reviewed by Allan Sandfeld Jensen.
This allows a few things missing from the previous serialization code
to function while using commonly maintained code:
- The itemSequenceNumber and documentSequenceNumber that were needed
to properly restore same-document navigations
- The form data
- The navigation hierarchy mapping the frame tree
* history/HistoryItem.h:
(HistoryItem):
* history/qt/HistoryItemQt.cpp:
(QDataStreamCoder):
(WebCore):
(WebCore::QDataStreamCoder::QDataStreamCoder):
(WebCore::QDataStreamCoder::encodeBytes):
(WebCore::QDataStreamCoder::encodeBool):
(WebCore::QDataStreamCoder::encodeUInt32):
(WebCore::QDataStreamCoder::encodeUInt64):
(WebCore::QDataStreamCoder::encodeInt32):
(WebCore::QDataStreamCoder::encodeInt64):
(WebCore::QDataStreamCoder::encodeFloat):
(WebCore::QDataStreamCoder::encodeDouble):
(WebCore::QDataStreamCoder::encodeString):
(WebCore::QDataStreamCoder::decodeBytes):
(WebCore::QDataStreamCoder::decodeBool):
(WebCore::QDataStreamCoder::decodeUInt32):
(WebCore::QDataStreamCoder::decodeUInt64):
(WebCore::QDataStreamCoder::decodeInt32):
(WebCore::QDataStreamCoder::decodeInt64):
(WebCore::QDataStreamCoder::decodeFloat):
(WebCore::QDataStreamCoder::decodeDouble):
(WebCore::QDataStreamCoder::decodeString):
(WebCore::HistoryItem::restoreState):
(WebCore::WebCore::HistoryItem::saveState):
2013-01-15 Gustavo Noronha Silva <gustavo.noronha@collabora.com>
[GStreamer][Soup] Let GStreamer provide the buffer data is downloaded to, to avoid copying
https://bugs.webkit.org/show_bug.cgi?id=105552
Reviewed by Philippe Normand.
Makes it possible for the GStreamer media backend to provide the buffer to which
the Soup networking backend will use to download data to. This makes copying
memory unnecessary when ResourceHandle hands data over to the media player's
StreamingClient. Thanks to Dan Winship for help designing the interface.
No behaviour change, covered by existing tests.
* platform/graphics/gstreamer/GStreamerVersioning.cpp:
(getGstBufferSize): Abstract obtaining the size of the buffer, so the code
is cleaner while still working for both GST 0.10 and 1.0.
(setGstBufferSize): Ditto, but for setting the size.
(getGstBufferDataPointer): Ditto, but for grabbing the data pointer.
(mapGstBuffer): Convenience method to take care of mapping the buffer so that
we can provide the data pointer to ResourceHandle.
(unmapGstBuffer): Convenience method which takes care of unmapping the buffer
and properly freeing the GstMapInfo.
* platform/graphics/gstreamer/GStreamerVersioning.h:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(StreamingClient): New methods.
(_WebKitWebSrcPrivate): We now store the GstBuffer we provided the data pointer from
so we can later unmap it and push it to the pipeline.
(webKitWebSrcDispose): Deal with the GstBuffer in case it exists when the source is
destroyed.
(webKitWebSrcStop): Also clear the GstBuffer in this case.
(StreamingClient::didReceiveData): Handle the hand-over of the buffer.
(StreamingClient::getBuffer): Provide ResourceHandle with a new GstBuffer's data pointer.
* platform/network/ResourceHandleClient.h:
(ResourceHandleClient):
(WebCore::ResourceHandleClient::ResourceHandleClient): Constructor to initialize the buffer
member variable to 0.
(WebCore::ResourceHandleClient::~ResourceHandleClient): Destructor to free the buffer if it
has been allocated.
(WebCore::ResourceHandleClient::getBuffer): Default implementation which returns a
newly allocated char pointer.
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
(ResourceHandleInternal): Store actual buffer size, which is no longer a constant.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::cleanupSoupRequestOperation): Clear the buffer pointer, the life-cycle of the
buffer is handled by the ResourceHandleClient.
(WebCore::nextMultipartResponsePartCallback): Get a new buffer from the client before reading.
(WebCore::sendRequestCallback): Ditto.
(WebCore::readCallback): Ditto.
2013-01-16 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Qt] Crash in WebCore::CachedFrame::destroy
https://bugs.webkit.org/show_bug.cgi?id=104525
Reviewed by Adam Barth.
Add an assert to increase the chances of catching this crash
early on in the future.
* dom/Document.cpp:
(WebCore::Document::takeDOMWindowFrom):
2013-01-16 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: fix Сlosure warnings in devTools front-end
https://bugs.webkit.org/show_bug.cgi?id=106993
Reviewed by Vsevolod Vlasov.
Add missing annotations and rename Element.remove() method to avoid collision with HTMLSelectElement.remove() method.
No new tests: no change in behaviour.
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode.prototype.hasChildNodes):
(WebInspector.DOMNode.prototype.getChildNodes):
* inspector/front-end/DOMExtension.js:
(Element.prototype.removeSelf):
(removeSubsequentNodes):
* inspector/front-end/DefaultTextEditor.js:
* inspector/front-end/SettingsScreen.js:
(WebInspector.OverridesSettingsTab):
* inspector/front-end/SourceTokenizer.js:
(WebInspector.SourceTokenizer):
2013-01-16 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: fix backward compatibility issues with Element.remove() method
https://bugs.webkit.org/show_bug.cgi?id=106996
Reviewed by Vsevolod Vlasov.
Add javascript implementations for CharacterData.prototype.remove and DocumentType.prototype.remove.
No new tests: no change in behaviour.
* inspector/front-end/DOMExtension.js:
2013-01-16 Zeno Albisser <zeno@webkit.org>
GraphicsSurfaceGLX is leaking an XWindow
https://bugs.webkit.org/show_bug.cgi?id=107002
The XWindow created as a backing surface for
the GraphicsSurfaceGLX needs to be destroyed
together with the GraphicsSurface.
Reviewed by Noam Rosenthal.
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::clear):
2013-01-16 Pablo Flouret <pablof@motorola.com>
Implement CSSSupportsRule
https://bugs.webkit.org/show_bug.cgi?id=104822
Reviewed by Allan Sandfeld Jensen.
http://dev.w3.org/csswg/css3-conditional/#the-csssupportsrule-interface
Right now, @supports is not implemented as a proper CSSRule. Apart from
the CSSOM implications it gives wrong results when, for instance, an
@supports rule is nested inside a @media rule.
Test: css3/supports-cssom.html
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Add CSSSupportsRule.* and associated files.
* bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJS):
* bindings/objc/DOMCSS.mm:
(kitClass):
* bindings/v8/custom/V8CSSRuleCustom.cpp:
(WebCore::wrap):
Create the correct wrappers for the rule.
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::createSupportsRule):
(WebCore::CSSParser::markSupportsRuleHeaderStart):
(WebCore::CSSParser::markSupportsRuleHeaderEnd):
* css/CSSParser.h:
Create the supports rule when parsing and add it where it corresponds,
instead of directly adding the child rules to the stylesheet.
* css/CSSPropertySourceData.h:
* css/CSSRule.h:
* css/CSSRule.idl:
Add SUPPORTS_RULE type to enums.
* css/CSSSupportsRule.cpp: Added.
(WebCore::CSSSupportsRule::CSSSupportsRule):
(WebCore::CSSSupportsRule::~CSSSupportsRule):
(WebCore::CSSSupportsRule::cssText):
(WebCore::CSSSupportsRule::conditionText):
* css/CSSSupportsRule.h: Added.
(WebCore::CSSSupportsRule::create):
* css/CSSSupportsRule.idl: Added.
DOM interface.
* css/RuleSet.cpp:
(WebCore::RuleSet::addChildRules):
Add rules included in the @supports rule.
* css/StyleResolver.cpp:
(WebCore::collectCSSOMWrappers):
Collect CSSSupportsRule wrappers.
* css/StyleRule.cpp:
(WebCore::StyleRuleBase::reportMemoryUsage):
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy):
(WebCore::StyleRuleBase::createCSSOMWrapper):
(WebCore::StyleRuleSupports::StyleRuleSupports):
* css/StyleRule.h:
(StyleRuleBase):
(WebCore::StyleRuleBase::isSupportsRule):
(StyleRuleSupports):
(WebCore::StyleRuleSupports::create):
(WebCore::StyleRuleSupports::conditionText):
(WebCore::StyleRuleSupports::conditionIsSupported):
(WebCore::StyleRuleSupports::copy):
(WebCore::toStyleRuleSupports):
New subclass of StyleRuleBlock: StyleRuleSupports.
* css/StyleSheetContents.cpp:
(WebCore::childRulesHaveFailedOrCanceledSubresources):
* inspector/InspectorStyleSheet.cpp:
(flattenSourceData):
(WebCore::asCSSRuleList):
Handle @supports rules where needed.
2013-01-16 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Unable to edit a time field with step=86400, and confusing appearance
https://bugs.webkit.org/show_bug.cgi?id=106983
Reviewed by Kentaro Hara.
For example, we show a read-only hour field and a read-only minutes
field for <input type=time min="17:00" step=86400> because the step
value is 24 hours and the hour field can be only 17. However, we need to
provide a way to clear the value of the time field in such case. We
shouldn't make the hour field read-only if no other fields are editable.
- We don't make hour fields read-only for input[type=time].
- We make hour fields read-only for input[type=datetime-local] only if
year, month, or day field is editable. e.g.
<input type=datetime-local min=2013-01-16T17:00 step=86400>:
The hour field is read-only, and year/month/day fields are editable.
<input type=datetime-local min=2013-01-16T17:00 max=2013-01-16T18:00 step=86400>:
The hour field is editable, and year/month/day fields are read-only.
Test: fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-readonly-subfield.html
* html/shadow/DateTimeEditElement.cpp:
(DateTimeEditBuilder): Declare new functions.
(WebCore::DateTimeEditBuilder::getRangeOfDayOfMonthField):
Added a function by extracting some code from visitField.
(WebCore::DateTimeEditBuilder::visitField):
(WebCore::DateTimeEditBuilder::shouldDayOfMonthFieldReadOnly):
Added a function by extracting some code from visitField.
(WebCore::DateTimeEditBuilder::shouldHourFieldReadOnly):
If the type is "time", we don't make hour fields read-only.
Otherwise, we don't make hour fields read-only if year/month/day fields
are read-only. Note that we don't need to check read-only status of year
and month fields explicitly here because a day field can be read-only
only if the year field and the month field are read-only.
2013-01-16 Allan Sandfeld Jensen <allan.jensen@digia.com>
[TexMap] Composited CSS shaders crash when using non-GL TextureMapper
https://bugs.webkit.org/show_bug.cgi?id=106796
Reviewed by Noam Rosenthal.
Fail gracefully when FilterEffectRenderer fails to build the filter effects.
* platform/graphics/texmap/TextureMapperImageBuffer.cpp:
(WebCore::BitmapTextureImageBuffer::applyFilters):
2013-01-15 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Store project UISourceCodes in a map with uri as a key for faster lookup.
https://bugs.webkit.org/show_bug.cgi?id=106911
Reviewed by Pavel Feldman.
* inspector/front-end/Workspace.js:
(WebInspector.Project):
(WebInspector.Project.prototype._fileAdded):
(WebInspector.Project.prototype._fileRemoved):
(WebInspector.Project.prototype._reset):
(WebInspector.Project.prototype.uiSourceCodeForOriginURL):
(WebInspector.Project.prototype.uiSourceCodeForURI):
(WebInspector.Project.prototype.uiSourceCodes):
2013-01-15 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Introduce file mapping allowing to map network loaded scripts and stylesheets to file system files.
https://bugs.webkit.org/show_bug.cgi?id=106795
Reviewed by Pavel Feldman.
Introduced file mapping for inspector.
FileMapping is essentially an array of MappingEntries where each MappingEntry is a pair of urlPrefix and pathPrefix.
When scripts and stylesheets are mapped to uiSourceCodes FileMapping methods are used to establish
prefix based matching with file system uiSourceCodes if possible.
Test: inspector/file-mapping.html
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/CompilerScriptMapping.js:
(WebInspector.CompilerScriptMapping):
(WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
(WebInspector.CompilerScriptMapping.prototype.uiLocationToRawLocation):
(WebInspector.CompilerScriptMapping.prototype.get addScript.get this):
(WebInspector.CompilerScriptMapping.prototype.get addScript):
(WebInspector.CompilerScriptMapping.prototype._bindUISourceCode):
(WebInspector.CompilerScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
* inspector/front-end/FileMapping.js: Added.
(WebInspector.FileMapping):
(WebInspector.FileMapping.prototype.hasMappingForURL):
(WebInspector.FileMapping.prototype.uriForURL):
(WebInspector.FileMapping.prototype.urlForURI):
(WebInspector.FileMapping.prototype.setMappings):
(WebInspector.FileMapping.prototype.mappings):
(WebInspector.FileMapping.prototype._deserialize):
(WebInspector.FileMapping.prototype._serialize):
(WebInspector.FileMapping.MappingEntry):
(WebInspector.FileMapping.MappingEntry.deserialize):
(WebInspector.FileMapping.MappingEntry.prototype.matchesURL):
(WebInspector.FileMapping.MappingEntry.prototype.matchesURI):
(WebInspector.FileMapping.MappingEntry.prototype.uriForURL):
(WebInspector.FileMapping.MappingEntry.prototype.urlForURI):
(WebInspector.FileMapping.MappingEntry.prototype.serialize):
* inspector/front-end/NetworkUISourceCodeProvider.js:
(WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping.prototype._workspaceUISourceCodeForScript):
(WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode):
* inspector/front-end/ResourceUtils.js:
(WebInspector.displayNameForURL):
* inspector/front-end/SASSSourceMapping.js:
(WebInspector.SASSSourceMapping):
(WebInspector.SASSSourceMapping.prototype._reloadCSS):
(_addURLMapping):
(rawLocationToUILocation):
(_reset):
(WebInspector.SASSSourceMapping.MappingEntry):
* inspector/front-end/StylesSourceMapping.js:
(WebInspector.StylesSourceMapping):
(WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
(WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
(WebInspector.StylesSourceMapping.prototype._projectWillReset):
(WebInspector.StyleContentBinding.prototype.):
(WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/Workspace.js:
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
2013-01-15 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Introduce UISourceCode.originURL().
https://bugs.webkit.org/show_bug.cgi?id=106909
Reviewed by Pavel Feldman.
Introduced originURL on UISourceCode showing where UISourceCode in workspace was loaded from.
This is neeeded to distinguish it from network request url used by mappings.
* inspector/front-end/AdvancedSearchController.js:
(WebInspector.FileBasedSearchResultsPane.prototype._createAnchor):
(WebInspector.FileBasedSearchResultsPane.prototype.addSearchResult):
* inspector/front-end/BreakpointsSidebarPane.js:
(WebInspector.JavaScriptBreakpointsSidebarPane.prototype._compareBreakpoints):
* inspector/front-end/CallStackSidebarPane.js:
(WebInspector.CallStackSidebarPane.Placard.prototype._update):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype._handleOpenURL):
(WebInspector.ExtensionServer.prototype._onGetResourceContent):
(WebInspector.ExtensionServer.prototype._onSetResourceContent):
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
* inspector/front-end/Linkifier.js:
(WebInspector.Linkifier.prototype._updateAnchor):
(WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor):
* inspector/front-end/NavigatorView.js:
(WebInspector.NavigatorSourceTreeElement):
* inspector/front-end/SASSSourceMapping.js:
(uiLocationToRawLocation):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
(WebInspector.ScriptsPanel.prototype._showSourceLine):
(WebInspector.ScriptsPanel.prototype._toggleFormatSource):
* inspector/front-end/ScriptsSearchScope.js:
(WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):
(WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes.comparator):
* inspector/front-end/SimpleWorkspaceProvider.js:
(WebInspector.SimpleWorkspaceProvider.prototype.addFile):
* inspector/front-end/StyleSheetOutlineDialog.js:
(WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
* inspector/front-end/StylesSourceMapping.js:
(WebInspector.StylesSourceMapping.prototype.uiLocationToRawLocation):
* inspector/front-end/TabbedEditorContainer.js:
(WebInspector.TabbedEditorContainer.prototype._tooltipForFile):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode):
(WebInspector.UISourceCode.prototype.originURL):
(WebInspector.UISourceCode.prototype.urlChanged):
(WebInspector.UISourceCode.prototype.contentURL):
(WebInspector.Revision.prototype.contentURL):
* inspector/front-end/Workspace.js:
(WebInspector.FileDescriptor):
(WebInspector.Project.prototype._fileAdded):
(WebInspector.Project.prototype.uiSourceCodeForOriginURL):
(WebInspector.Workspace.prototype.uiSourceCodeForOriginURL):
2013-01-16 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL] Move 'DefaultTheme' folder to WebCore/platform/efl
https://bugs.webkit.org/show_bug.cgi?id=106969
Reviewed by Benjamin Poulain.
DefaultTheme is used by both EFL WK1 and WK2 ports. So, WebCore/platform/efl is appropriate place for it.
* platform/efl/DefaultTheme/CMakeLists.txt: Renamed from Source/WebKit/efl/DefaultTheme/CMakeLists.txt.
* platform/efl/DefaultTheme/default.edc: Renamed from Source/WebKit/efl/DefaultTheme/default.edc.
* platform/efl/DefaultTheme/widget/button/button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/button/button.edc.
* platform/efl/DefaultTheme/widget/button/img_button_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/button/img_button_focus.png.
* platform/efl/DefaultTheme/widget/button/img_button_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/button/img_button_hover.png.
* platform/efl/DefaultTheme/widget/button/img_button_normal.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/button/img_button_normal.png.
* platform/efl/DefaultTheme/widget/button/img_button_press.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/button/img_button_press.png.
* platform/efl/DefaultTheme/widget/check/check.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/check.edc.
* platform/efl/DefaultTheme/widget/check/img_check_bg_disabled.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_bg_disabled.png.
* platform/efl/DefaultTheme/widget/check/img_check_bg_enabled.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_bg_enabled.png.
* platform/efl/DefaultTheme/widget/check/img_check_off.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_off.png.
* platform/efl/DefaultTheme/widget/check/img_check_off_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_off_focus.png.
* platform/efl/DefaultTheme/widget/check/img_check_off_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_off_hover.png.
* platform/efl/DefaultTheme/widget/check/img_check_on.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_on.png.
* platform/efl/DefaultTheme/widget/check/img_check_on_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_on_focus.png.
* platform/efl/DefaultTheme/widget/check/img_check_on_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_on_hover.png.
* platform/efl/DefaultTheme/widget/combo/combo.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo.edc.
* platform/efl/DefaultTheme/widget/combo/combo_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_focus.png.
* platform/efl/DefaultTheme/widget/combo/combo_focus_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_focus_button.png.
* platform/efl/DefaultTheme/widget/combo/combo_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_hover.png.
* platform/efl/DefaultTheme/widget/combo/combo_hover_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_hover_button.png.
* platform/efl/DefaultTheme/widget/combo/combo_normal.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_normal.png.
* platform/efl/DefaultTheme/widget/combo/combo_normal_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_normal_button.png.
* platform/efl/DefaultTheme/widget/combo/combo_press.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_press.png.
* platform/efl/DefaultTheme/widget/combo/combo_press_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_press_button.png.
* platform/efl/DefaultTheme/widget/combo/icon.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/icon.png.
* platform/efl/DefaultTheme/widget/entry/entry.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/entry/entry.edc.
* platform/efl/DefaultTheme/widget/entry/img_focused.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/entry/img_focused.png.
* platform/efl/DefaultTheme/widget/entry/img_hovered.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/entry/img_hovered.png.
* platform/efl/DefaultTheme/widget/entry/img_normal.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/entry/img_normal.png.
* platform/efl/DefaultTheme/widget/file/file.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/file/file.edc.
* platform/efl/DefaultTheme/widget/file/file_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/file/file_focus.png.
* platform/efl/DefaultTheme/widget/file/file_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/file/file_hover.png.
* platform/efl/DefaultTheme/widget/file/file_normal.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/file/file_normal.png.
* platform/efl/DefaultTheme/widget/file/file_press.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/file/file_press.png.
* platform/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/enterfullscreenbutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/enterfullscreenbutton.png.
* platform/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/exitfullscreenbutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/exitfullscreenbutton.png.
* platform/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/fullscreen_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/fullscreen_button.edc.
* platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc.
* platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.png.
* platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png.
* platform/efl/DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.png.
* platform/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.png.
* platform/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc.
* platform/efl/DefaultTheme/widget/mediacontrol/seekbackwardbutton/seekbackward_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/seekbackwardbutton/seekbackward_button.edc.
* platform/efl/DefaultTheme/widget/mediacontrol/seekbackwardbutton/seekbackwardbutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/seekbackwardbutton/seekbackwardbutton.png.
* platform/efl/DefaultTheme/widget/mediacontrol/seekforwardbutton/seekforward_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/seekforwardbutton/seekforward_button.edc.
* platform/efl/DefaultTheme/widget/mediacontrol/seekforwardbutton/seekforwardbutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/seekforwardbutton/seekforwardbutton.png.
* platform/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption.png.
* platform/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption_disabled.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption_disabled.png.
* platform/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/toggle_captions_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/toggle_captions_button.edc.
* platform/efl/DefaultTheme/widget/progressbar/bt_base.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/progressbar/bt_base.png.
* platform/efl/DefaultTheme/widget/progressbar/progressbar.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/progressbar/progressbar.edc.
* platform/efl/DefaultTheme/widget/progressbar/shelf_inset.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/progressbar/shelf_inset.png.
* platform/efl/DefaultTheme/widget/radio/img_radio_bg_disabled.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_bg_disabled.png.
* platform/efl/DefaultTheme/widget/radio/img_radio_bg_enabled.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_bg_enabled.png.
* platform/efl/DefaultTheme/widget/radio/img_radio_off.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_off.png.
* platform/efl/DefaultTheme/widget/radio/img_radio_off_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_off_focus.png.
* platform/efl/DefaultTheme/widget/radio/img_radio_off_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_off_hover.png.
* platform/efl/DefaultTheme/widget/radio/img_radio_on.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_on.png.
* platform/efl/DefaultTheme/widget/radio/img_radio_on_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_on_focus.png.
* platform/efl/DefaultTheme/widget/radio/img_radio_on_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_on_hover.png.
* platform/efl/DefaultTheme/widget/radio/radio.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/radio.edc.
* platform/efl/DefaultTheme/widget/scrollbar/scrollbar.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar.edc.
* platform/efl/DefaultTheme/widget/scrollbar/scrollbar_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_h.png.
* platform/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_h.png.
* platform/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_v.png.
* platform/efl/DefaultTheme/widget/scrollbar/scrollbar_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_v.png.
* platform/efl/DefaultTheme/widget/search/cancel/cancel_normal_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/cancel/cancel_normal_button.png.
* platform/efl/DefaultTheme/widget/search/cancel/cancel_normal_button2.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/cancel/cancel_normal_button2.png.
* platform/efl/DefaultTheme/widget/search/cancel/search_cancel.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/cancel/search_cancel.edc.
* platform/efl/DefaultTheme/widget/search/decoration/decoration_normal_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/decoration/decoration_normal_button.png.
* platform/efl/DefaultTheme/widget/search/decoration/search_decoration.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/decoration/search_decoration.edc.
* platform/efl/DefaultTheme/widget/search/field/field_focused.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/field/field_focused.png.
* platform/efl/DefaultTheme/widget/search/field/field_hovered.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/field/field_hovered.png.
* platform/efl/DefaultTheme/widget/search/field/field_normal.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/field/field_normal.png.
* platform/efl/DefaultTheme/widget/search/field/search_field.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/field/search_field.edc.
* platform/efl/DefaultTheme/widget/slider/slider.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider.edc.
* platform/efl/DefaultTheme/widget/slider/slider_fill_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_fill_h.png.
* platform/efl/DefaultTheme/widget/slider/slider_fill_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_fill_v.png.
* platform/efl/DefaultTheme/widget/slider/slider_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_h.png.
* platform/efl/DefaultTheme/widget/slider/slider_thumb_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_h.png.
* platform/efl/DefaultTheme/widget/slider/slider_thumb_press_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_press_h.png.
* platform/efl/DefaultTheme/widget/slider/slider_thumb_press_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_press_v.png.
* platform/efl/DefaultTheme/widget/slider/slider_thumb_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_v.png.
* platform/efl/DefaultTheme/widget/slider/slider_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_v.png.
* platform/efl/DefaultTheme/widget/spinner/sp_bg.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_bg.png.
* platform/efl/DefaultTheme/widget/spinner/sp_down_default.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_down_default.png.
* platform/efl/DefaultTheme/widget/spinner/sp_down_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_down_hover.png.
* platform/efl/DefaultTheme/widget/spinner/sp_down_pressed.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_down_pressed.png.
* platform/efl/DefaultTheme/widget/spinner/sp_up_default.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_up_default.png.
* platform/efl/DefaultTheme/widget/spinner/sp_up_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_up_hover.png.
* platform/efl/DefaultTheme/widget/spinner/sp_up_pressed.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_up_pressed.png.
* platform/efl/DefaultTheme/widget/spinner/spinner.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/spinner.edc.
2013-01-16 Kentaro Hara <haraken@chromium.org>
[V8] Make an Isolate parameter mandatory in SerializedScriptValue::deserialize()
https://bugs.webkit.org/show_bug.cgi?id=106916
Reviewed by Adam Barth.
This is one of steps to remove optional Isolate parameters.
No tests. No change in behavior.
* bindings/v8/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::deserialize):
(WebCore):
(WebCore::SerializedScriptValue::deserializeForInspector):
* bindings/v8/SerializedScriptValue.h:
(SerializedScriptValue):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::stateAccessorGetter):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::dataAccessorGetter):
* bindings/v8/custom/V8PopStateEventCustom.cpp:
(WebCore::V8PopStateEvent::stateAccessorGetter):
2013-01-16 Ken Kania <kkania@chromium.org>
[Inspector] Add events for tracking page loads and scheduled navigations.
https://bugs.webkit.org/show_bug.cgi?id=104168
Reviewed by Pavel Feldman.
These events are needed for clients who need to be aware of when a page is
navigating or about to navigate. Some clients may wish to prevent interaction
with the page during this time. Two of the new events track loading start and
stop, as measured by the ProgressTracker. The other two events track when a
page has a new scheduled navigation and when it no longer has a scheduled
navigation. These latter two events won't allow the client to determine if
a load is going to happen in all circumstances, but is sufficient for many cases.
Tests: inspector-protocol/page/frameScheduledNavigation.html
inspector-protocol/page/frameStartedLoading.html
* inspector/Inspector.json:
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::frameStartedLoadingImpl):
(WebCore::InspectorInstrumentation::frameStoppedLoadingImpl):
(WebCore::InspectorInstrumentation::frameScheduledNavigationImpl):
(WebCore::InspectorInstrumentation::frameClearedScheduledNavigationImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::frameStartedLoading):
(WebCore):
(WebCore::InspectorInstrumentation::frameStoppedLoading):
(WebCore::InspectorInstrumentation::frameScheduledNavigation):
(WebCore::InspectorInstrumentation::frameClearedScheduledNavigation):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::frameStartedLoading):
(WebCore):
(WebCore::InspectorPageAgent::frameStoppedLoading):
(WebCore::InspectorPageAgent::frameScheduledNavigation):
(WebCore::InspectorPageAgent::frameClearedScheduledNavigation):
* inspector/InspectorPageAgent.h:
* inspector/front-end/ResourceTreeModel.js:
(WebInspector.PageDispatcher.prototype.frameDetached):
(WebInspector.PageDispatcher.prototype.frameStartedLoading):
(WebInspector.PageDispatcher.prototype.frameStoppedLoading):
(WebInspector.PageDispatcher.prototype.frameScheduledNavigation):
(WebInspector.PageDispatcher.prototype.frameClearedScheduledNavigation):
* loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::clear):
(WebCore::NavigationScheduler::timerFired):
(WebCore::NavigationScheduler::startTimer):
(WebCore::NavigationScheduler::cancel):
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::progressStarted):
(WebCore::ProgressTracker::finalProgressComplete):
2013-01-16 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Update MediaStreamTrack::readyState to match specification
https://bugs.webkit.org/show_bug.cgi?id=106781
Reviewed by Kentaro Hara.
MediaStreamTrack::readyState now returns a string like the rest of the RTC classes.
Existing tests expanded to cover patch.
* Modules/mediastream/MediaStream.cpp:
(WebCore::processTrack):
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::readyState):
(WebCore::MediaStreamTrack::ended):
(WebCore):
* Modules/mediastream/MediaStreamTrack.h:
(MediaStreamTrack):
* Modules/mediastream/MediaStreamTrack.idl:
2013-01-16 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: array grouping does not work for big and negative number keys
https://bugs.webkit.org/show_bug.cgi?id=106891
Reviewed by Pavel Feldman.
Fixing array grouping for arrays that contain big or negative number representations as object keys.
* inspector/front-end/ObjectPropertiesSection.js:
(.buildObjectFragment):
2013-01-16 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: highlight regexp API for DefaultTextEditor
https://bugs.webkit.org/show_bug.cgi?id=106801
Reviewed by Pavel Feldman.
Add highlightRegexp and removeRegexpHighlight methods to DefaultTextEditor that highlight
all occurrences of given regexp in text with given css class.
Highlight is done via spans positioned absolutely over the regexp occurences in text.
Test: inspector/editor/text-editor-highlight-regexp.html
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype.highlightRegex):
(WebInspector.DefaultTextEditor.prototype.removeRegexHighlight):
(WebInspector.TextEditorMainPanel):
(WebInspector.TextEditorMainPanel.prototype.highlightRegex):
(WebInspector.TextEditorMainPanel.prototype.removeRegexHighlight):
(WebInspector.TextEditorMainPanel.prototype._repaintVisibleChunks):
(WebInspector.TextEditorMainPanel.prototype._findRegexOccurrences):
(WebInspector.TextEditorMainPanel.prototype._measureRegex):
(WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
(WebInspector.TextEditorMainPanel.prototype._paintLine):
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor.prototype.highlightRegex):
(WebInspector.TextEditor.prototype.removeRegexHighlight):
* inspector/front-end/textEditor.css:
(.text-editor-overlay-highlight):
(.debug-fadeout):
2013-01-16 Ryosuke Niwa <rniwa@webkit.org>
Get rid of Node::createRareData
https://bugs.webkit.org/show_bug.cgi?id=106981
Reviewed by Benjamin Poulain.
Deleted Node::createRareData. Node::ensureRareData() instantiates NodeRareData
or ElementRareData according to the node type. Also encapsulate new by create
functions in NodeRareData and ElementRareData.
* dom/Element.cpp:
(WebCore):
* dom/Element.h:
(Element):
* dom/ElementRareData.h:
(WebCore::ElementRareData::create):
(ElementRareData):
(WebCore::ElementRareData::ElementRareData):
* dom/Node.cpp:
(WebCore::Node::ensureRareData):
(WebCore):
* dom/Node.h:
(WebCore::NodeRareDataBase::NodeRareDataBase):
* dom/NodeRareData.h:
(NodeRareData):
(WebCore::NodeRareData::create):
(WebCore::NodeRareData::NodeRareData):
2013-01-15 Ryosuke Niwa <rniwa@webkit.org>
GTK+ and Qt build fix after r139833.
Explicitly cast NodeRareDataBase to NodeRareData before deleting it.
* dom/Node.cpp:
(WebCore::Node::clearRareData):
2013-01-15 Qiankun Miao <qiankun.miao@intel.com>
Remove extra space in CustomFilterRenderer.h
https://bugs.webkit.org/show_bug.cgi?id=105783
Reviewed by Dean Jackson.
* platform/graphics/filters/CustomFilterRenderer.h:
(CustomFilterRenderer):
2013-01-15 Tab Atkins <tabatkins@google.com>
Update CSS3 gradient support to the latest spec version and unprefix.
https://bugs.webkit.org/show_bug.cgi?id=67166
Reviewed by Dean Jackson.
Tests: fast/gradients/unprefixed-color-stop-units.html
fast/gradients/unprefixed-color-stops.html
fast/gradients/unprefixed-generated-gradients.html
fast/gradients/unprefixed-gradient-parsing.html
fast/gradients/unprefixed-linear-angle-gradients.html
fast/gradients/unprefixed-linear-right-angle-gradients.html
fast/gradients/unprefixed-list-item-gradient.html
fast/gradients/unprefixed-radial-gradients.html
fast/gradients/unprefixed-radial-gradients2.html
fast/gradients/unprefixed-radial-gradients3.html
fast/gradients/unprefixed-repeating-end-fill.html
fast/gradients/unprefixed-repeating-linear-gradient.html
fast/gradients/unprefixed-repeating-radial-gradients.html
fast/gradients/unprefixed-zero-range-repeating-gradient-hang.html
* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::computeEndPoint): Rename parameters to make more sense.
(WebCore::CSSLinearGradientValue::customCssText):
(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSRadialGradientValue::customCssText):
(WebCore::CSSRadialGradientValue::createGradient):
* css/CSSGradientValue.h:
(CSSGradientValue):
(CSSRadialGradientValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseLinearGradient):
(WebCore::CSSParser::parseRadialGradient):
(WebCore::CSSParser::isGeneratedImageValue):
(WebCore::CSSParser::parseGeneratedImage):
* css/CSSParser.h:
2013-01-15 Ryosuke Niwa <rniwa@webkit.org>
NodeRareData doesn't need to have a vtable pointer
https://bugs.webkit.org/show_bug.cgi?id=106965
Reviewed by Benjamin Poulain.
Made the destructor and reportMemoryUsage of NodeRareDataBase and NodeRareData
respectively and their subclasses non-virtual.
* dom/ElementRareData.cpp:
(SameSizeAsElementRareData): Added.
(WebCore): Added a compile assertion for the size of ElementRareData.
* dom/ElementRareData.h:
(ElementRareData):
* dom/Node.cpp:
(WebCore::Node::clearRareData): Explicitely delete NodeRareData or ElementRareData.
(WebCore::Node::reportMemoryUsage): Explicitely add NodeRareData or ElementRareData.
* dom/Node.h:
(NodeRareDataBase): Deleted the virtual destructor.
* dom/NodeRareData.cpp:
(SameSizeAsNodeRareData): Removed one pointer.
* dom/NodeRareData.h:
(NodeRareData): Removed the virtual destructor.
(NodeRareData::reportMemoryUsage): Made non-virtual.
2013-01-15 Ian Vollick <vollick@chromium.org>
[chromium] Create GraphicsLayerChromiums using a factory
https://bugs.webkit.org/show_bug.cgi?id=103635
Reviewed by James Robinson.
Refactor graphics layer creation for chromium to go through a factory.
No new tests, no change in functionality.
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayer::create):
2013-01-15 Charles Wei <charles.wei@torchmobile.com.cn>
[BlackBerry] LayerRenderingResults doesn't need to maintain the hole punch rect
https://bugs.webkit.org/show_bug.cgi?id=106896
Reviewed by George Staikos.
Internally reviewed by Arvid Nilsson and John Griggs.
No new tests,clean up code which is not used anymore.
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::drawHolePunchRect):
* platform/graphics/blackberry/LayerRenderer.h:
(LayerRenderingResults):
2013-01-15 Charles Wei <charles.wei@torchmobile.com.cn>
Fullscreen element should not share styles with it's siblings.
https://bugs.webkit.org/show_bug.cgi?id=106888
Reviewed by George Staikos.
Test: fullscreen/full-screen-no-style-sharing.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithElement):
2013-01-15 Tim Horton <timothy_horton@apple.com>
Clamp TileCache visibleRect to WKView's visibleRect
https://bugs.webkit.org/show_bug.cgi?id=106601
<rdar://problem/12843164>
Reviewed by Simon Fraser.
* platform/graphics/TiledBacking.h:
(TiledBacking): Add setExposedRect and setClipsToExposedRect.
* platform/graphics/ca/mac/TileCache.h:
(TileCache): Add setExposedRect, setClipsToExposedRect, and storage for their respective values.
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::TileCache): Initialize m_clipsToExposedRect to false.
(WebCore::TileCache::setExposedRect): Update exposedRect and revalidate tiles.
(WebCore::TileCache::setClipsToExposedRect): Update clipsToExposedRect and revalidate tiles;
if we're going from unclipped to clipped, we already have tiles, so we can skip tile revalidation.
(WebCore::TileCache::computeTileCoverageRect): Intersect exisiting visible rect with
exposed rect to get the visible rect we actually care about.
(WebCore::TileCache::revalidateTiles): Ditto.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresOverhangAreasLayer): Don't create an overhang layer if the frame isn't scrollable.
(WebCore::RenderLayerCompositor::requiresContentShadowLayer): Don't create a shadow layer if the frame isn't scrollable.
2013-01-15 Roger Fong <roger_fong@apple.com>
Get rid of a straggling dependency on SafariThemeConstants in RenderThemeWin.
Rubberstamped by Timothy Horton.
* rendering/RenderThemeWin.cpp:
(WebCore::RenderThemeWin::supportsClosedCaptioning):
* rendering/RenderThemeWin.h:
2013-01-15 Hayato Ito <hayato@chromium.org>
Group all request parameters which are used to match CSS Rules into a parameter object.
https://bugs.webkit.org/show_bug.cgi?id=106879
Reviewed by Dimitri Glazkov.
Introduces a MatchRequest which groups all request parameters to match CSS rules.
Factoring, no change in behavior.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRules):
(WebCore::StyleResolver::collectMatchingRulesForRegion):
(WebCore::StyleResolver::matchScopedAuthorRules):
(WebCore::StyleResolver::matchHostRules):
(WebCore::StyleResolver::matchAuthorRules):
(WebCore::StyleResolver::matchUserRules):
(WebCore::StyleResolver::matchUARules):
(WebCore::StyleResolver::collectMatchingRulesForList):
(WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
* css/StyleResolver.h:
(WebCore::StyleResolver::MatchRequest::MatchRequest):
(MatchRequest):
(StyleResolver):
2013-01-15 Simon Fraser <simon.fraser@apple.com>
Add the ability for a RenderLayerBacking to have a layer that renders backgrounds.
https://bugs.webkit.org/show_bug.cgi?id=106961
Reviewed by Dean Jackson.
In some cases we need a compositing layer to render its background into
a separate GraphicsLayer (e.g. for background-attachment: fixed in some scenarios).
To support this, have RenderLayer optionally create a GraphicsLayer for the background.
Currently nothing causes background layers to get created.
Having a background layer requires that we add an additional containment layer
which encloses the background, primary and foreground layers, since the
background layer has to be composited behind the primary content. This containment
layer gets any transform, including page scale on the RenderView's layer.
No new tests; there's no way to create a background layer yet. This was tested during
development by forcing a background layer.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateDebugIndicators): Show borders on both new layers
and repaint counters on the background layer.
(WebCore::RenderLayerBacking::destroyGraphicsLayers): Clear the two new layers.
(WebCore::RenderLayerBacking::updateTransform): If we have a containment layer, it
takes the transform (and clear the transform on the primary layer).
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Make the background
layer if we need one (currently never).
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Position and size
the containment layer if we have one. If we do, then the m_graphicsLayer will
be at 0,0 in that containment layer. The background layer is also sized similarly
to the foreground layer.
(WebCore::RenderLayerBacking::updateInternalHierarchy): Adapt to the new hierarchy
with containment and background layers if we have them.
(WebCore::RenderLayerBacking::updateBackgroundLayer): Here's where we create the background
and containment layers.
(WebCore::RenderLayerBacking::childForSuperlayers): If we have a containment layer, that's
what gets attached to our parent.
(WebCore::RenderLayerBacking::getCurrentTransform): The containment layer gets the transform
if we have one, so check that here.
(WebCore::RenderLayerBacking::backingStoreMemoryEstimate):
(WebCore::RenderLayerBacking::reportMemoryUsage):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::deviceOrPageScaleFactorChanged): We need to start notifying
about page/device scale on the containment layer if there is one (since it takes page scale), so
use childForSuperlayers() rather than just getting the primary layer.
2013-01-15 Pan Deng <pan.deng@intel.com>
Remove Key3 and Challenge Response fields from Websocket implementation and Web Inspector.
https://bugs.webkit.org/show_bug.cgi?id=105738.
Reviewed by Kent Tamura.
Key3 and Challenge Response fields were obsoleted in IETF websocket spec, this patch removes related
code in Websocket and Web Inspector
No new tests as no new functionality added.
* Modules/websockets/WebSocketHandshakeRequest.cpp: remove Key3 related code
* Modules/websockets/WebSocketHandshakeRequest.h:
(WebSocketHandshakeRequest):
* Modules/websockets/WebSocketHandshakeResponse.cpp: remove Challenge response related code
* Modules/websockets/WebSocketHandshakeResponse.h:
(WebSocketHandshakeResponse):
* inspector/Inspector.json: remove Key3 and Challenge response fields definition
* inspector/InspectorResourceAgent.cpp: remove Key3 and Challenge response field from inspector agent
(WebCore):
(WebCore::InspectorResourceAgent::willSendWebSocketHandshakeRequest):
(WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
* inspector/front-end/NetworkManager.js:
(WebInspector.NetworkDispatcher.prototype.webSocketWillSendHandshakeRequest):
(WebInspector.NetworkDispatcher.prototype.webSocketHandshakeResponseReceived):
* inspector/front-end/RequestHeadersView.js: remove Key3 and Challenge response item from front-end.
(WebInspector.RequestHeadersView.prototype._refreshRequestHeaders):
(WebInspector.RequestHeadersView.prototype._refreshResponseHeaders):
(WebInspector.RequestHeadersView.prototype._refreshHeaders):
2013-01-15 Antti Koivisto <antti@apple.com>
ASSERT(!m_queue.killed() && m_threadID) hit in StorageThread::scheduleTask on low memory warning
https://bugs.webkit.org/show_bug.cgi?id=106960
Reviewed by Mark Rowe.
We were scheduling a memory clearing task to terminated StorageThreads.
Remove thread from the active thread list when terminate is scheduled. Add when thread is started.
* storage/StorageThread.cpp:
(WebCore::activeStorageThreads):
(WebCore::StorageThread::StorageThread):
(WebCore::StorageThread::~StorageThread):
(WebCore::StorageThread::start):
(WebCore::StorageThread::terminate):
(WebCore::StorageThread::releaseFastMallocFreeMemoryInAllThreads):
2013-01-15 Luke Macpherson <macpherson@chromium.org>
Don't do indiscriminate cast & call in StylePropertySet::PropertyReference::cssName() on release builds.
https://bugs.webkit.org/show_bug.cgi?id=106867
Reviewed by Darin Adler.
Check CSSValue::isVariableValue() before casting to CSSVariableValue.
Covered by existing variables tests.
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::PropertyReference::cssName):
2013-01-15 Emil A Eklund <eae@chromium.org>
[Sub pixel layout] RTL cells with padding wraps
https://bugs.webkit.org/show_bug.cgi?id=106843
Reviewed by Levi Weintraub.
At certain zoom levels table cells with padding wraps for rtl
content.
Test: fast/sub-pixel/table-rtl-padding.html
* rendering/RenderTable.h: Override paddingStart/End to return
integer values for padding as we do elsewhere in the table code.
2013-01-15 Dominic Mazzoni <dmazzoni@google.com>
Use-after-free in AXObjectCache::notificationPostTimerFired
https://bugs.webkit.org/show_bug.cgi?id=106106
Reviewed by Ryosuke Niwa.
Fixes a crash that occurs when a Node is adopted by another document,
in particular one that isn't part of the page, and then deleted,
which wasn't triggering the code that removed the Node from
AXObjectCache. Now, a Node is removed from the AXObjectCache whenever
its Document changes.
Test: accessibility/crash-adopt-node-from-new-document.html
* dom/Node.cpp:
(WebCore::Node::didMoveToNewDocument):
2013-01-15 Arnaud Renevier <a.renevier@sisa.samsung.com>
Add Canvas blend modes to Cairo
https://bugs.webkit.org/show_bug.cgi?id=105074
Reviewed by Martin Robinson.
Blend mode implementation for cairo. If BlendMode is normal, use
CompositeOperator; otherwise, consider CompositeOperator is
source-over.
Add toCairoOperator(BlendMode) to translate BlendMode to matching
cairo_operator_t.
* platform/graphics/cairo/BitmapImageCairo.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/cairo/CairoUtilities.cpp:
(WebCore::toCairoOperator):
* platform/graphics/cairo/CairoUtilities.h:
(WebCore):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
2013-01-15 Dima Gorbik <dgorbik@apple.com>
Implement matching by the voice attribute for WebVTT ::cue pseudo element
https://bugs.webkit.org/show_bug.cgi?id=106762
Reviewed by Eric Carlson.
Implemented matching cue WebVTT elements by a voice attribute by adding a WebVTT specific voice attribute.
For DOM trees title attribute is used instead as this is required by specs.
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::copyWebVTTNodeToDOMTree): set a title argument instead of a voice attribute for the DOM tree.
* html/track/TextTrackCue.h:
(WebCore::TextTrackCue::voiceAttributeName):
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::constructTreeFromToken):
2013-01-15 Simon Fraser <simon.fraser@apple.com>
Some ScrollingCoördinator-related cleanup in RenderLayerBacking
https://bugs.webkit.org/show_bug.cgi?id=106950
Reviewed by Beth Dakin.
Wrap up code that gets the ScrollingCoordinator into a utility function.
Pull code out of updateGraphicsLayerGeometry() that registers layers with
the ScrollingCoordinator, for cleanliness.
* rendering/RenderLayerBacking.cpp:
(WebCore::scrollingCoordinatorFromLayer):
(WebCore::RenderLayerBacking::adjustTileCacheCoverage):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::registerScrollingLayers):
(WebCore::RenderLayerBacking::attachToScrollingCoordinatorWithParent):
(WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
2013-01-15 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=106940
Suspend CSS animations for background tabs
Reviewed by Simon Fraser.
* page/Page.cpp:
(WebCore::Page::setVisibilityState):
2013-01-15 Levi Weintraub <leviw@chromium.org>
Unreviewed, rolling out r139790.
http://trac.webkit.org/changeset/139790
https://bugs.webkit.org/show_bug.cgi?id=106948
The patch is failing its own test.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::parserRemoveChild):
(WebCore::ContainerNode::parserAppendChild):
* html/parser/HTMLScriptRunner.cpp:
(WebCore::HTMLScriptRunner::executeParsingBlockingScript):
(WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
(WebCore::HTMLScriptRunner::execute):
(WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
(WebCore::HTMLScriptRunner::executeScriptsWaitingForStylesheets):
(WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
(WebCore::HTMLScriptRunner::runScript):
2013-01-15 Emil A Eklund <eae@chromium.org>
REGRESSION (r121599): incorrect border scaling when zoomed
https://bugs.webkit.org/show_bug.cgi?id=106944
Reviewed by Levi Weintraub.
Fix bug in ApplyPropertyComputeLength::applyValue where zooming
of non-pixel values was incorrect.
Test: fast/sub-pixel/zoomed-em-border.html
* css/StyleBuilder.cpp:
(WebCore::ApplyPropertyComputeLength::applyValue):
2013-01-15 Simon Fraser <simon.fraser@apple.com>
Rename RenderLayerBacking's m_containmentLayer to m_childContainmentLayer to better describe its purpose
https://bugs.webkit.org/show_bug.cgi?id=106947
Reviewed by Dean Jackson.
Simple rename of m_containmentLayer to m_childContainmentLayer. I'll
be adding another "container" layer for background layers shortly,
and wanted to improve clarity.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
(WebCore::RenderLayerBacking::destroyGraphicsLayers):
(WebCore::RenderLayerBacking::updateInternalHierarchy):
(WebCore::RenderLayerBacking::updateClippingLayers):
(WebCore::RenderLayerBacking::parentForSublayers):
(WebCore::RenderLayerBacking::backingStoreMemoryEstimate):
(WebCore::RenderLayerBacking::reportMemoryUsage):
* rendering/RenderLayerBacking.h:
(WebCore::RenderLayerBacking::hasClippingLayer):
(WebCore::RenderLayerBacking::clippingLayer):
(WebCore::RenderLayerBacking::hasTileCacheFlatteningLayer):
(WebCore::RenderLayerBacking::tileCacheFlatteningLayer):
(RenderLayerBacking):
2013-01-15 Enrica Casucci <enrica@apple.com>
Add a new set of WebKit2 APIs for text search and
search results management.
https://bugs.webkit.org/show_bug.cgi?id=106834.
<rdar://problem/12597159>
Reviewed by Simon Fraser.
Adding new API to perform text search in WebKit2 without using
the stock UI. The new interface provides all the information
necessary to write a custom UI for search.
Added new TextWebKitAPI test.
* WebCore.exp.in: Added new exported methods.
* editing/Editor.cpp:
(WebCore::Editor::countMatchesForText): Added new parameter to store
all the ranges relative to the matches found.
* editing/Editor.h: Modified the interface of countMatchesForText and removed
the other definition of countMatchesForText with a different signature.
* page/Page.cpp:
(WebCore::Page::findStringMatchingRanges): Added.
(WebCore::Page::markAllMatchesForText): Changed to use the new unified
countMatchesForText.
* page/Page.h:
2013-01-15 Alexandru Chiculita <achicu@adobe.com>
[Compositor] Do not disable overlap testing for layers in front of 3D transformed layers
https://bugs.webkit.org/show_bug.cgi?id=106721
Reviewed by Simon Fraser.
RenderLayerCompositor is checking for overlapping layers and tries to figure out all the layers that need
to be drawn using composited layers. It doesn't know anything about animations yet and it only works with "start"
and "end" states. However, it knows that animations might happen, so in that cases it will avoid to do any optimizations,
as layers might get moved.
The overlapping layers optimization was also disabled for 3D layers. However, 3D layers can be computed in WebKit and
can be checked for overlap using just the "start"/"stop" states. In this patch I enable that optimization for 3D layers, too.
The result is that more layers are drawn in software mode now, so I've updated a couple of test results.
Tests: compositing/layer-creation/overlap-transformed-3d.html
compositing/layer-creation/overlap-transformed-preserved-3d.html
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
2013-01-15 Elliott Sprehn <esprehn@gmail.com>
HTML parser should queue MutationRecords for its operations
https://bugs.webkit.org/show_bug.cgi?id=89351
Reviewed by Eric Seidel.
Generate mutation records inside the parser. This is done by using a
ChildListMutationScope in the ContainerNode::parser* methods and then
adding delivery before each <script> element would be processed by
the parser.
Test: fast/dom/MutationObserver/parser-mutations.html
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::parserRemoveChild):
(WebCore::ContainerNode::parserAppendChild):
* html/parser/HTMLScriptRunner.cpp:
(WebCore::HTMLScriptRunner::executeParsingBlockingScript):
(WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
(WebCore::HTMLScriptRunner::execute):
(WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
(WebCore::HTMLScriptRunner::executeScriptsWaitingForStylesheets):
(WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
(WebCore::HTMLScriptRunner::runScript):
2013-01-15 Ojan Vafai <ojan@chromium.org>
Unreviewed, rolling out r139782.
http://trac.webkit.org/changeset/139782
https://bugs.webkit.org/show_bug.cgi?id=106939
Broke preferred widths on list markers.
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::layout):
(WebCore::RenderListMarker::computePreferredLogicalWidths):
2013-01-15 Elliott Sprehn <esprehn@chromium.org>
Heap-use-after-free in WebCore::RenderObject::willBeRemovedFromTree
https://bugs.webkit.org/show_bug.cgi?id=106384
Reviewed by Abhishek Arya.
Always walk up from beforeChild until the parent() is the owner of the
child list, otherwise we can end up in situations where
newChild->parent() == owner but newChild->nextSibling()->parent() != owner
which is a recipe for security bugs. Previously we only walked up through
anonymous blocks, but missed anonymous inline blocks like those generated
by <ruby>.
Test: fast/css-generated-content/bug-106384.html
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::insertChildNode):
2013-01-15 Ojan Vafai <ojan@chromium.org>
Remove bogus assert added in http://trac.webkit.org/changeset/139772.
* rendering/RenderBox.h:
(WebCore::RenderBox::computePreferredLogicalWidths):
2013-01-15 Ojan Vafai <ojan@chromium.org>
Moving updating of margins from computePreferredLogicalWidths to layout
https://bugs.webkit.org/show_bug.cgi?id=106939
Reviewed by Levi Weintraub.
The margins don't affect it's preferred width. We should update them
during layout like we do in other classes (e.g. RenderBlock).
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::layout):
(WebCore::RenderListMarker::computePreferredLogicalWidths):
2013-01-15 Adam Barth <abarth@webkit.org>
Generalize DocumentWeakReference into WTF::WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=106854
Reviewed by Darin Adler.
This patch replaces DocumentWeakReference with WeakPtr. There should be
no change in behavior.
* dom/Document.cpp:
(WebCore):
(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::PerformTaskContext::PerformTaskContext):
(PerformTaskContext):
(WebCore::Document::didReceiveTask):
(WebCore::Document::postTask):
(WebCore::Document::reportMemoryUsage):
* dom/Document.h:
(WebCore):
(Document):
2013-01-15 James Simonsen <simonjam@chromium.org>
[User Timing] INVALID_ACCESS_ERR should be thrown if measuring from a 0 Nav Timing value
https://bugs.webkit.org/show_bug.cgi?id=106935
Reviewed by Tony Gentilcore.
Test: http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_exception.html
* page/PerformanceUserTiming.cpp:
(WebCore::UserTiming::findExistingMarkStartTime):
2013-01-15 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Rename the [add|remove]Track callbacks to [add|remove]RemoteTrack for clarity
https://bugs.webkit.org/show_bug.cgi?id=106791
Reviewed by Adam Barth.
No tests needed.
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::addRemoteTrack):
(WebCore::MediaStream::removeRemoteTrack):
* Modules/mediastream/MediaStream.h:
* platform/mediastream/MediaStreamCenter.cpp:
(WebCore::MediaStreamCenter::addMediaStreamTrack):
(WebCore::MediaStreamCenter::removeMediaStreamTrack):
* platform/mediastream/MediaStreamDescriptor.h:
(MediaStreamDescriptorClient):
2013-01-15 Mark Pilgrim <pilgrim@chromium.org>
[Chromium] Move SocketStreamHandle and SocketStreamHandleInternal to WebCore/platform
https://bugs.webkit.org/show_bug.cgi?id=106899
Reviewed by Adam Barth.
Part of a larger refactoring series; see tracking bug 106829.
* WebCore.gypi:
* platform/network/chromium/SocketStreamHandle.cpp: Copied from Source/WebKit/chromium/src/SocketStreamHandle.cpp.
(WebCore::SocketStreamHandleInternal::send):
(WebCore::SocketStreamHandleInternal::didOpenStream):
(WebCore::SocketStreamHandleInternal::didSendData):
(WebCore::SocketStreamHandleInternal::didReceiveData):
(WebCore::SocketStreamHandleInternal::didClose):
(WebCore::SocketStreamHandleInternal::didFail):
* platform/network/chromium/SocketStreamHandleInternal.h: Copied from Source/WebKit/chromium/src/SocketStreamHandleInternal.h.
2013-01-15 Ojan Vafai <ojan@chromium.org>
RenderText::computePreferredLogicalWidths does not need to be public
https://bugs.webkit.org/show_bug.cgi?id=106934
Reviewed by Levi Weintraub.
* rendering/RenderCounter.h:
Add OVERRIDE keyword.
* rendering/RenderText.h:
Make protected.
2013-01-15 Ojan Vafai <ojan@chromium.org>
Cleanup visibility of some computePreferredLogicalWidths calls
https://bugs.webkit.org/show_bug.cgi?id=106933
Reviewed by Levi Weintraub.
No need for these to be public.
* rendering/RenderBox.h:
(WebCore::RenderBox::computePreferredLogicalWidths):
This should never get called in practice. Add an assert to that effect.
* rendering/RenderGrid.h:
(RenderGrid):
* rendering/RenderReplica.h:
(RenderReplica):
* rendering/RenderScrollbarPart.h:
(RenderScrollbarPart):
2013-01-13 Dirk Schulze <dschulze@adobe.com>
[CSS Filters] brightness() function doesn't work as specified
https://bugs.webkit.org/show_bug.cgi?id=106674
Reviewed by Dean Jackson.
The brightness filter implementation modified the intercept instead of the slope on
the feComponentTransfer function. The passed amount acts as multiplier for each
color chanel now.
Existing tests cover the changes and were updated.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseBuiltinFilterArguments):
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::setFilters):
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::build):
2013-01-15 Zan Dobersek <zandobersek@gmail.com>
[GTK] Enable Performance Timeline, Resource Timing, Navigation Timing features
https://bugs.webkit.org/show_bug.cgi?id=106197
Reviewed by Martin Robinson.
No new tests - existing layout tests are being unskipped, only a few fail
(but their failures are of cross-platform nature).
* GNUmakefile.features.am.in: Add feature defines for all three features.
They are disabled by default for now.
* GNUmakefile.list.am: Add missing build targets.
* bindings/gobject/GNUmakefile.am: Ditto.
* bindings/js/JSPerformanceEntryCustom.cpp: Added the necessary custom bindings.
Mimics the custom V8 bindings.
(WebCore):
(WebCore::toJS):
2013-01-15 Alexis Menard <alexis@webkit.org>
Unprefixed transitionend event doesn't seem to be implemented, which breaks many sites
https://bugs.webkit.org/show_bug.cgi?id=105647
Reviewed by Julien Chaffraix.
Add support for transitionend event delivery as part as the unprefixing
work on CSS Transitions. This patch adds some code in EventTarget to
figure out if the current event to dispatch has a prefixed version or
not. Then from the list of listeners we deduce which event should be delivered
(prefixed or unprefixed).
In the case of the CSS Transitions, WebKit will now behave as follow :
if an event listener is attached to the prefixed version of the
transition end event then only the prefixed event will be send.
If an event listener is attached to the unprefixed version
of the transition end event then only the unprefixed event will be
send. If there are event listeners on both unprefixed and prefixed
events then only the unprefixed event will be send.
The behavior was discussed here :
http://lists.webkit.org/pipermail/webkit-dev/2013-January/023301.html.
Tests: transitions/transition-end-event-unprefixed-01.html
transitions/transition-end-event-unprefixed-02.html
* dom/Document.cpp:
(WebCore::Document::addListenerTypeIfNeeded): Register the prefixed
listener too as transitionend listeners so that we properly dispatch
events for them.
* dom/EventNames.h:
(WebCore): Add the new transitionend name.
* dom/EventTarget.cpp:
(WebCore::createMatchingPrefixedEvent):
(WebCore::prefixedType):
(WebCore::EventTarget::fireEventListeners): Find out if somebody is
listening for unprefixed events, if so we always send the unprefixed
event, if not then we create a prefixed event and send it.
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::sendTransitionEvent): Always create by
default unprefixed events.
2013-01-15 Tony Gentilcore <tonyg@chromium.org>
Make AtomicMarkupTokenBase use a bare UChar* for external characters
https://bugs.webkit.org/show_bug.cgi?id=106919
Reviewed by Eric Seidel.
This allows an arbitrary backing for external characters which is necessary for the threaded HTML parser.
No new tests because no new functionality.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
(WebCore::HTMLTreeBuilder::processTokenInForeignContent):
* xml/parser/MarkupTokenBase.h:
(WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
(WebCore::AtomicMarkupTokenBase::characters):
(AtomicMarkupTokenBase):
(WebCore::AtomicMarkupTokenBase::charactersLength):
(WebCore::AtomicMarkupTokenBase::clearExternalCharacters):
* xml/parser/XMLTreeBuilder.cpp:
(WebCore::XMLTreeBuilder::processCharacter):
2013-01-15 Arko Saha <arko@motorola.com>
Microdata: propertiesCollection[name] should return undefined if item doesn't have a property named 'name'
https://bugs.webkit.org/show_bug.cgi?id=106849
Reviewed by Kentaro Hara.
We should return undefined if hasNamedItem() is false.
Test: fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html
* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
(WebCore::V8HTMLCollection::namedPropertyGetter):
2013-01-15 Michael Pruett <michael@68k.org>
[GTK] Fix build after r139665
https://bugs.webkit.org/show_bug.cgi?id=106917
Reviewed by Dean Jackson.
* GNUmakefile.list.am:
2013-01-15 Antti Koivisto <antti@apple.com>
Move parent pointer from TreeShared to subclass
https://bugs.webkit.org/show_bug.cgi?id=106910
Reviewed by Darin Adler.
This simplifies both TreeShared and clients, and makes code dealing with parents more understandable in general.
* dom/Document.h:
(WebCore::Node::Node):
* dom/Node.cpp:
(WebCore::Node::reportMemoryUsage):
* dom/Node.h:
Add m_parentOrHostNode variable (matching the accessor names).
(Node):
(WebCore::Node::hasTreeSharedParent):
(WebCore::Node::parentNode):
(WebCore::Node::setParentOrHostNode):
(WebCore::Node::parentOrHostNode):
* platform/TreeShared.h:
(WebCore):
(WebCore::TreeShared::TreeShared):
(WebCore::TreeShared::deref):
Call subclass hasTreeSharedParent() to figure out if it is time to delete.
(TreeShared):
Remove parent pointer and accessors.
Remove ParentNodeType template parameter.
Remove now unnecessay reportMemoryUsage().
(WebCore::adopted):
* svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::SVGElementInstance):
* svg/SVGElementInstance.h:
Add m_parentInstance variable.
(WebCore::SVGElementInstance::setParentOrHostNode):
(WebCore::SVGElementInstance::parentNode):
(SVGElementInstance):
(WebCore::SVGElementInstance::hasTreeSharedParent):
2013-01-15 Simon Fraser <simon.fraser@apple.com>
Allow tiled WKViews to have transparent backgrounds
https://bugs.webkit.org/show_bug.cgi?id=106400
Reviewed by Anders Carlsson.
When WKViews were set to have transparent backgrounds, they still
obscured content behind the view, for several reasons.
First, when in tiled scrolling mode, WKView set the background
of its layer to opaque white. Fix by using the clearColor (effectively
removing the background color) if the view has a non-opaque background.
Second, RenderLayerBacking just looked at FrameViews's isTransparent()
when deciding to make TileCache tiles non-opaque, but it also needs to
consider FrameViews with a non-opaque base background color. The
same logic was necessary to avoid setting an opaque white background
color on the TileCache layer.
Finally, for views with non-opaque backgrounds, we don't want to display
linen, so RenderLayerCompositor::requiresOverhangAreasLayer() was changed
to return false in that case.
View transparency is not testable in layout tests.
* page/FrameView.cpp:
(WebCore::FrameView::hasOpaqueBackground):
* page/FrameView.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
(WebCore::RenderLayerBacking::updateBackgroundColor):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresOverhangAreasLayer):
2013-01-15 Ojan Vafai <ojan@chromium.org>
RenderView does not need to override computePreferredLogicalWidth
https://bugs.webkit.org/show_bug.cgi?id=106852
Reviewed by Levi Weintraub.
Calling minPreferredLogicalWidth calls computePreferredLogicalWidth,
which happens a few lines later in layoutWithFlattening. No need
to call it explicitly.
* rendering/RenderFrameBase.cpp:
(WebCore::RenderFrameBase::layoutWithFlattening):
* rendering/RenderView.cpp:
* rendering/RenderView.h:
2013-01-15 Vsevolod Vlasov <vsevik@chromium.org>
Unreviewed, remove file that was accidentally added to the wrong patch.
* inspector/front-end/FileSystemWorkspaceProvider.js: Removed.
2013-01-15 Florin Malita <fmalita@chromium.org>
[Chromium] Incorrect opaque region tracking for PlatformContextSkia::drawRRect
https://bugs.webkit.org/show_bug.cgi?id=106898
Reviewed by Stephen White.
Since drawRRect() doesn't cover the whole bounding rect, it needs to pass a didDrawBounded
notification down to the opaque region tracker (instead of didDrawRect as it currently
does).
Test: platform/chromium/compositing/rounded-corners.html
* platform/graphics/skia/PlatformContextSkia.h:
(WebCore::PlatformContextSkia::drawRRect):
2013-01-15 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] WebGL does not require accelerated compositing
https://bugs.webkit.org/show_bug.cgi?id=106892
Reviewed by Jocelyn Turcotte.
Allow the creation of WebGL canvas even when accelerated compositing is not enabled.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
2013-01-15 Andrey Lushnikov <lushnikov@chromium.org>
Web Inspector: refactor DefaultTextEditor's paintLine method
https://bugs.webkit.org/show_bug.cgi?id=106893
Reviewed by Pavel Feldman.
Move render ranges functionality out of paintLine method into separate subroutine.
No new tests: no change in behaviour.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._renderRanges): Added.
(WebInspector.TextEditorMainPanel.prototype._paintLine):
(WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
2013-01-15 Elliott Sprehn <esprehn@gmail.com>
display:inline's hover behavior is not applied to ::before and ::after pseudo elements
https://bugs.webkit.org/show_bug.cgi?id=91723
Reviewed by Eric Seidel.
When hovering over the anonymous text renderers inside :before and :after
we would correctly detect a hit in InlineTextBox::nodeAtPoint, but would
then fail to set the correct node for the hit test because in
RenderObject::updateHitTestResult node() is null. Instead we should walk
up the render tree to the PseudoElement and treat it as if we hit that.
Test: fast/css-generated-content/hover-inline.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::updateHitTestResult):
2013-01-15 Zeno Albisser <zeno@webkit.org>
GraphicsSurface: Canvas with WebGL content is painted off by one pixel
https://bugs.webkit.org/show_bug.cgi?id=106446
When painting to TextureMapper the provided targetRect is in contents
coordinate system. This leads to an off by one pixel error when painting
outlines of 1px.
This needs to be taken into account in the transformation matrix
and in the TextureMapperGL::drawTexture call.
Test: fast/canvas/webgl/webgl-composite-modes.html
Reviewed by Noam Rosenthal.
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
* platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
* platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp:
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
2013-01-14 Kentaro Hara <haraken@chromium.org>
[V8] Make an Isolate parameter mandatory in SerializedScriptValue methods
https://bugs.webkit.org/show_bug.cgi?id=106800
Reviewed by Adam Barth.
SerializedScriptValue methods are used by both V8 bindings
and WebCore. So they should support both an Isolate-version
method and an non-Isolate version method.
There are two ways to accomplish that:
[1] Use an optional Isolate parameter.
[2] Implement two versions and delegate the non-Isolate
version method to the Isolate version method.
I would prefer the approach [2], because I'd like to statically
make sure that we never pass a 0 Isolate. If we take the approach
[1], we need to insert ASSERT(isolate) here and there.
This patch implements the approach [2].
No tests. No change in behavior.
* bindings/v8/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::create):
(WebCore):
(WebCore::SerializedScriptValue::nullValue):
(WebCore::SerializedScriptValue::undefinedValue):
(WebCore::SerializedScriptValue::booleanValue):
(WebCore::SerializedScriptValue::numberValue):
(WebCore::SerializedScriptValue::SerializedScriptValue):
* bindings/v8/SerializedScriptValue.h:
(SerializedScriptValue):
2013-01-15 Dongwoo Joshua Im <dw.im@samsung.com>
[CSS] Rename the enum, from "ETextAlignLast" to "TextAlignLast"
https://bugs.webkit.org/show_bug.cgi?id=106887
Reviewed by Alexis Menard.
No new tests are added since there is no behavior changes.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TextAlignLast):
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleRareInheritedData.h:
(StyleRareInheritedData):
2013-01-15 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Fixing crashing bug in MediaStream
https://bugs.webkit.org/show_bug.cgi?id=106886
Reviewed by Eric Seidel.
Fixing crashing bug during destruction.
No new tests needed.
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::contextDestroyed):
2013-01-15 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt][CSS Shaders] Make custom filter render in Wk1 mode
https://bugs.webkit.org/show_bug.cgi?id=101532
Reviewed by Noam Rosenthal.
Handle ValidatedCustomFilterOperations which are used by WebKit1. To keep the cache of compiled programs working,
the cache has been updated to use CustomFilterProgramInfo as a hash key. CustomFilterProgramInfo is an existing
class specifically designed for this purpose.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::getPassesRequiredForFilter):
(WebCore::TextureMapperGL::removeCachedCustomFilterProgram):
(WebCore::TextureMapperGL::drawUsingCustomFilter):
(WebCore::BitmapTextureGL::applyFilters):
* platform/graphics/texmap/TextureMapperGL.h:
(TextureMapperGL):
2013-01-15 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] introduce CallArgument type into the protocol
https://bugs.webkit.org/show_bug.cgi?id=106640
Reviewed by Yury Semikhatsky.
CallArgument type abstraction to describe arguments of a canvas context call.
Drive-by: Introduce a CanvasContext to fix the wrong contextId value in the protocol.
The contextId should point to the Resource that represents a context (2D or 3D canvas).
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
* inspector/Inspector.json:
* inspector/front-end/CanvasProfileView.js:
2012-12-28 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Support inspector file system access with isolated file system through InspectorFrontendHost.
https://bugs.webkit.org/show_bug.cgi?id=105727
Reviewed by Pavel Feldman.
File system access through isolated file system is implemented in inspector.
File system access requests are sent through InspectorFrontendHost.
Introduced IsolatedFileSystemModel encapsulating file system access logic.
Introduced FileSystemMapping that provides mapping between workspace uris and file system pathes.
DOMFileSystem.createIsolatedFileSystem modified to accept optional registeredName parameter.
* Modules/filesystem/DOMFileSystem.cpp:
(WebCore::DOMFileSystem::createIsolatedFileSystem):
* Modules/filesystem/DOMFileSystem.h:
(DOMFileSystem):
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/InspectorFrontendClient.h:
(InspectorFrontendClient):
* inspector/InspectorFrontendClientLocal.h:
(WebCore::InspectorFrontendClientLocal::supportsFileSystems):
(WebCore::InspectorFrontendClientLocal::requestFileSystems):
(WebCore::InspectorFrontendClientLocal::addFileSystem):
(WebCore::InspectorFrontendClientLocal::removeFileSystem):
(InspectorFrontendClientLocal):
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::supportsFileSystems):
(WebCore):
(WebCore::InspectorFrontendHost::requestFileSystems):
(WebCore::InspectorFrontendHost::addFileSystem):
(WebCore::InspectorFrontendHost::removeFileSystem):
(WebCore::InspectorFrontendHost::isolatedFileSystem):
* inspector/InspectorFrontendHost.h:
(WebCore):
(InspectorFrontendHost):
* inspector/InspectorFrontendHost.idl:
* inspector/compile-front-end.py:
* inspector/front-end/FileSystemMapping.js: Added.
* inspector/front-end/InspectorFrontendAPI.js:
(InspectorFrontendAPI.fileSystemsLoaded):
(InspectorFrontendAPI.fileSystemRemoved):
(InspectorFrontendAPI.fileSystemAdded):
* inspector/front-end/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub.prototype.supportsFileSystems):
(.WebInspector.InspectorFrontendHostStub.prototype.requestFileSystems):
(.WebInspector.InspectorFrontendHostStub.prototype.addFileSystem):
(.WebInspector.InspectorFrontendHostStub.prototype.removeFileSystem):
(.WebInspector.InspectorFrontendHostStub.prototype.isolatedFileSystem):
* inspector/front-end/IsolatedFileSystemModel.js: Added.
* inspector/front-end/WebKit.qrc:
* inspector/front-end/externs.js:
(DOMFileSystem):
(InspectorFrontendHostAPI.prototype.supportsFileSystems):
(InspectorFrontendHostAPI.prototype.requestFileSystems):
(InspectorFrontendHostAPI.prototype.addFileSystem):
(InspectorFrontendHostAPI.prototype.removeFileSystem):
(InspectorFrontendHostAPI.prototype.isolatedFileSystem):
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
2013-01-15 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][WebGL] Add error handling to carefully manage Window backing pixmaps.
https://bugs.webkit.org/show_bug.cgi?id=106582
Reviewed by Kenneth Rohde Christiansen.
We use XCompositeNameWindowPixmap to create a pixmap that serves as a reference to
the off-screen storage for a Window Handle. We expect the Window to be valid and
the created glx pixmap to be a valid drawable. This may not be true always.
This patch adds support for X Error checks and handles the generated errors.
Covered by existing WebGL layout tests.
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore):
(WebCore::handleXPixmapCreationError):
(ScopedXPixmapCreationErrorHandler):
(WebCore::ScopedXPixmapCreationErrorHandler::ScopedXPixmapCreationErrorHandler):
(WebCore::ScopedXPixmapCreationErrorHandler::~ScopedXPixmapCreationErrorHandler):
(WebCore::ScopedXPixmapCreationErrorHandler::isValidOperation):
Helper Class to catch XErrors.
(WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createPixmap): Added support to check and handle generated XErrors.
(WebCore::GraphicsSurfacePrivate::findFBConfigWithAlpha):
(WebCore::GraphicsSurfacePrivate::clear): Destroys GL Resources.
(GraphicsSurfacePrivate):
2013-01-15 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL] [WebGL] Minor cleanup in PlatformContext.
https://bugs.webkit.org/show_bug.cgi?id=106758
Reviewed by Kenneth Rohde Christiansen.
We currently have different implementations of CurrentContextWrapper for EGL and GLX.
This patch cleans up the code to use same implementation for both the backends.
* platform/graphics/opengl/GLPlatformContext.cpp:
(GLCurrentContextWrapper):
(WebCore::GLCurrentContextWrapper::GLCurrentContextWrapper):
(WebCore::GLCurrentContextWrapper::~GLCurrentContextWrapper):
Common implementation for both EGL and GLX.
(WebCore::createOffScreenContext):
(WebCore::GLPlatformContext::createContext):
* platform/graphics/surfaces/egl/EGLContext.cpp:
* platform/graphics/surfaces/egl/EGLContext.h:
* platform/graphics/surfaces/glx/GLXContext.h:
Removed code related to CurrentContextWrapper.
2013-01-14 Ryosuke Niwa <rniwa@webkit.org>
platform/mac/accessibility/progressbar.html fails on Mac WK1 and WK2
https://bugs.webkit.org/show_bug.cgi?id=106850
Reviewed by Chris Fleizach.
The bug was caused by some callers of supportsFocus directly calling that of Node.
Fixed the bug by calling HTMLElement's so that the virtual function on Element gets
called as needed.
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::supportsFocus):
* html/HTMLOutputElement.cpp:
(WebCore::HTMLOutputElement::supportsFocus):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::supportsFocus):
2013-01-14 Dima Gorbik <dgorbik@apple.com>
Implement ID selector matching for the WebVTT ::cue pseudo element
https://bugs.webkit.org/show_bug.cgi?id=105481
Reviewed by Eric Carlson.
Implemented matching cue WebVTT elements by an identifier. Identifiers of all WebVTT nodes in the rendering tree for
a given cue are set to match the cue identifier.
Existing tests were modified to cover this case.
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::markFutureAndPastNodes):
2013-01-14 Mark Pilgrim <pilgrim@chromium.org>
[Chromium] Use explicit WebKit prefixes in BlobRegistryProxy
https://bugs.webkit.org/show_bug.cgi?id=106859
Reviewed by Adam Barth.
As requested in https://bugs.webkit.org/show_bug.cgi?id=106831#c2
* platform/network/chromium/BlobRegistryProxy.cpp:
(WebCore::BlobRegistryProxy::registerBlobURL):
2013-01-14 Max Vujovic <mvujovic@adobe.com>
[ANGLE] Update ANGLE in WebKit
https://bugs.webkit.org/show_bug.cgi?id=106274
Unreviewed build fix for GTK after http://trac.webkit.org/changeset/139702
* GNUmakefile.am:
2013-01-14 Dean Jackson <dino@apple.com>
Yet another unreviewed attempted QT build fix, this time because
it's falling over on Filters.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore):
(WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshotWithLabel):
2013-01-14 Dean Jackson <dino@apple.com>
Unreviewed EFL build fix.
* CMakeLists.txt:
2013-01-14 Dean Jackson <dino@apple.com>
Blur the label background of a snapshotted plugin
https://bugs.webkit.org/show_bug.cgi?id=106630
Reviewed by Simon Fraser.
When we are showing a label indicating the plugin has been snapshotted,
slightly blur the snapshot behind the label so that it is more clear. I expect
that if/when other ports pick up this code, we'll need to separate the
UI treatment somewhat, but this is ok for a first step.
* rendering/RenderSnapshottedPlugIn.cpp:
(RenderSnapshottedPlugInBlurFilter): Private class to use FEGaussianBlur to blur an image.
(WebCore::RenderSnapshottedPlugInBlurFilter::create):
(WebCore::RenderSnapshottedPlugInBlurFilter::setSourceImageRect):
(WebCore::RenderSnapshottedPlugInBlurFilter::sourceImageRect):
(WebCore::RenderSnapshottedPlugInBlurFilter::filterRegion):
(WebCore::RenderSnapshottedPlugInBlurFilter::output):
(WebCore::RenderSnapshottedPlugInBlurFilter::RenderSnapshottedPlugInBlurFilter):
(WebCore::RenderSnapshottedPlugInBlurFilter::apply):
(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): New member variable to hold a cached version of a preblurred snapshot.
(WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn): Remember to remove the preblurred image from the cache.
(WebCore::RenderSnapshottedPlugIn::updateSnapshot): Zero the preblurred version if it exists.
(WebCore::RenderSnapshottedPlugIn::paintReplaced): Either paint snapshot or blurred snapshot with label.
(WebCore::RenderSnapshottedPlugIn::paintSnapshot): New method to paint a full sized snapshot.
(WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot):
(WebCore::snapshottedPluginImageForLabelDisplay): Static function to produce the blurred snapshot.
(WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshotWithLabel): Calls paintSnapshot with the blurred snapshot on Mac.
* rendering/RenderSnapshottedPlugIn.h:
2013-01-14 Mark Pilgrim <pilgrim@chromium.org>
[Chromium] Move BlobRegistryProxy into WebCore
https://bugs.webkit.org/show_bug.cgi?id=106831
Reviewed by Adam Barth.
Part of a larger refactoring series to remove layering violations
in Chromium. See tracking bug 106829.
* WebCore.gypi:
* platform/network/chromium/BlobRegistryProxy.cpp: Added.
(WebCore):
(WebCore::blobRegistry):
(WebCore::BlobRegistryProxy::BlobRegistryProxy):
(WebCore::BlobRegistryProxy::registerBlobURL):
(WebCore::BlobRegistryProxy::unregisterBlobURL):
* platform/network/chromium/BlobRegistryProxy.h: Added.
(WebCore):
(BlobRegistryProxy):
(WebCore::BlobRegistryProxy::loadResourceSynchronously):
(WebCore::BlobRegistryProxy::~BlobRegistryProxy):
2013-01-14 Levi Weintraub <leviw@chromium.org>
Rolling out r139618. Appears to be causing sporadic crashes on Debug bots.
* Modules/mediastream/MediaStream.cpp:
(WebCore::processTrack):
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::readyState):
* Modules/mediastream/MediaStreamTrack.h:
* Modules/mediastream/MediaStreamTrack.idl:
2013-01-14 Levi Weintraub <leviw@chromium.org>
Rolling out r139678. This triggered a number of WebAudio crashes on Debug bots.
* platform/audio/chromium/AudioDestinationChromium.cpp:
(WebCore::AudioDestinationChromium::AudioDestinationChromium):
2013-01-09 Levi Weintraub <leviw@chromium.org>
Rolling out r139683. It broke a bunch of webkit_unit_tests.
2013-01-14 Ojan Vafai <ojan@chromium.org>
RenderListItem does not need to override computePreferredLogicalWidth
https://bugs.webkit.org/show_bug.cgi?id=106839
Reviewed by Levi Weintraub.
Apparently there was a time when the list marker was considered part of
the list item's preferred width, but that is no longer the case.
This code was added in r3421. The code around preferred widths has change
a lot since then.
* rendering/RenderListItem.cpp:
* rendering/RenderListItem.h:
2013-01-13 Dima Gorbik <dgorbik@apple.com>
Implement element type selectors for the WebVTT ::cue pseudo class
https://bugs.webkit.org/show_bug.cgi?id=105480
Reviewed by Antti Koivisto.
Implemented tag matching for the WebVTT specific tags "c" and "v". All common html tags like "b" and "i" are
handled without any changes to the code. Creating a rendering tree and DOM tree now use different code paths.
They both are made by cloning and modifying the tree produced by the parser. Voice tags now use spans for both
rendering and DOM trees to conform to specs. Since this changes a lot of code little refactoring has been
done. Removed m_hasInnerTimestamps since it is no longer needed, it doesn't affect anything. m_documentFragment
was renamed to m_webVTTNodeTree.
Existing tests were modified to cover this case.
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::TextTrackCue):
(WebCore::TextTrackCue::setText): rename m_documentFragment to m_webVTTNodeTree
(WebCore::TextTrackCue::createWebVTTNodeTree): parse the cue if it hasn't been parsed before.
(WebCore::TextTrackCue::copyWebVTTNodeToDOMTree): clone and prepare a node for using in the DOM tree according to specs.
(WebCore::TextTrackCue::getCueAsHTML): get a DOM tree for the cue.
(WebCore::TextTrackCue::createCueRenderingTree): create a rendering tree (main tree is just being cloned for now).
(WebCore::TextTrackCue::markFutureAndPastNodes): tightening the argument type.
(WebCore::TextTrackCue::updateDisplayTree):
(WebCore::TextTrackCue::getDisplayTree): code cleanup, removed m_hasInnerTimeStamps.
* html/track/TextTrackCue.h:
(WebCore::TextTrackCue::voiceElementTagName):
(TextTrackCue):
(WebCore::TextTrackCue::classElementTagName):
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::constructTreeFromToken): type of the newly created elements was changed to Element to avoid hitting
an assertion when cloning because a cloned element will not have HTMLElement type for elements with "v" and "c" tag.
2013-01-14 Xianzhu Wang <wangxianzhu@chromium.org>
Sometimes RenderLayer::updateNeedsCompositedScrolling is not called
https://bugs.webkit.org/show_bug.cgi?id=106271
Reviewed by Simon Fraser.
1. If a layer has no out-of-flow descendant, m_hasOutOfFlowPositionedDescendant won't change and won't trigger updateNeedsCompositedScrolling in updateDescendantDependentFlags. Set m_hasOutOfFlowPositionedDescendantDirty to true and call updateNeedsCompositedScrolling when the dirty flag becomes false from true.
2. When the content size changes causing change of scrollable status, updateNeedsCompositedScrolling should also be called.
Test: compositing/overflow/dynamic-composited-scrolling-status.html
* page/FrameView.cpp:
(WebCore::FrameView::addScrollableArea): Returns whether the scrollable area has just been newly added.
(WebCore::FrameView::removeScrollableArea): Returns whether the scrollable area has just been removed.
* page/FrameView.h:
(FrameView):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer): Changed the initial value of m_hasOutOfFlowPositionedDescendantDirty to true to make sure m_hasOutOfFlowPositionedDescendant will be updated initially.
(WebCore::RenderLayer::updateDescendantDependentFlags): Call updateNeedsCompositedScrolling when m_hasOutOfFlowPositionedDescendantDirty is true.
(RenderLayer::updateScrollableAreaSet): Calls updateNeedsCompositedScrolling() when scrollable status changes.
* rendering/RenderLayer.h:
(RenderLayer):
2013-01-14 Ryosuke Niwa <rniwa@webkit.org>
EFL build fix after r139681.
* dom/NodeRareData.h:
(WebCore::NodeMicroDataTokenLists::NodeMicroDataTokenLists):
2013-01-14 Tien-Ren Chen <trchen@chromium.org>
Correct FrameView::scrollableAreaBoundingBox() calculation in the presence of transforms
https://bugs.webkit.org/show_bug.cgi?id=105075
Reviewed by Simon Fraser.
As mentioned by the FIXME comment, we need to ask the renderer for the
absolute bounding box of a frame for correct transformation.
This fixes the bug that iframe cannot be scrolled properly when it is
transformed.
Tests: scrollingcoordinator/non-fast-scrollable-region-scaled-iframe.html
scrollingcoordinator/non-fast-scrollable-region-transformed-iframe.html
* page/FrameView.cpp:
(WebCore::FrameView::scrollableAreaBoundingBox):
2013-01-14 Nate Chapin <japhet@chromium.org>
Enable reuse of cached main resources
https://bugs.webkit.org/show_bug.cgi?id=105667
Reviewed by Antti Koivisto.
Test: http/tests/cache/cached-main-resource.html
* WebCore.exp.in:
* dom/Document.cpp:
(WebCore::Document::hasManifest): Returns true if the <html> element has a non-empty manifest attribute.
* dom/Document.h:
(Document):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadedResourceFromMemoryCache): Don't send delegate callbacks for cache hit here, since
MainResourceLoader will take care of it.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::MainResourceLoader):
(WebCore::MainResourceLoader::receivedError):
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::responseReceived): Don't try to cache loads from the application cache.
(WebCore::MainResourceLoader::didFinishLoading): Don't try to cache loads from the application cache.
(WebCore::MainResourceLoader::load): Ensure we create a resource load identifier for cache hits. Also,
ensure we correctly popualate fragment identifiers in the ResourceRequest reported to DocumentLoader.
(WebCore::MainResourceLoader::identifier):
* loader/MainResourceLoader.h: Rename m_substituteDataLoadIdentifier to m_identifierForLoadWithoutResourceLoader
to better describe when it is used.
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::didAddClient): Synthesize redirect notifications for cache hits if necessary.
(WebCore::CachedRawResource::willSendRequest): Note the redirects we received.
(WebCore::CachedRawResource::canReuse): Don't reuse a resource if the redirect chain included a "Cache-control: no-store".
* loader/cache/CachedRawResource.h:
(CachedRawResource):
(RedirectPair):
(WebCore::CachedRawResource::RedirectPair::RedirectPair):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::addClientToSet):: Don't return cached data for a main resource synchronously
* loader/cache/CachedResource.h:
(WebCore::CachedResource::canReuse):
(CachedResource):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::determineRevalidationPolicy): Permit cache reuse for main resources.
* testing/Internals.cpp:
(WebCore::Internals::isLoadingFromMemoryCache):
(WebCore):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2013-01-11 Ryosuke Niwa <rniwa@webkit.org>
Move functions from NodeRareData to ElementRareData and other classes
https://bugs.webkit.org/show_bug.cgi?id=106679
Reviewed by Benjamin Poulain.
Moved tab index related functions from NodeRareData to ElementRareData since only
HTMLElement uses them, and moved related functions on Node to Element accordingly.
Also replaced transientMutationObserverRegistry and ensureTransientMutationObserverRegistry
by ensureMutationObserverData, and moved micro-data related member functions into
NodeMicroDataTokenLists, and moved NodeMutationObserverData and NodeMicroDataTokenLists
out of NodeRareData as they're used outside of NodeRareData now.
The intention is to move more code into NodeMutationObserverData and NodeMicroDataTokenLists
in the follow up patches so that they can detect the removability of NodeRareData.
No new tests are added since there should be no behavior changes.
* dom/Element.cpp:
(WebCore::Element::clearTabIndexExplicitlyIfNeeded):
(WebCore::Element::setTabIndexExplicitly):
(WebCore::Element::tabIndex):
(WebCore::Element::supportsFocus):
* dom/Element.h:
(Element):
* dom/ElementRareData.h:
(ElementRareData):
(WebCore::ElementRareData::tabIndex):
(WebCore::ElementRareData::setTabIndexExplicitly):
(WebCore::ElementRareData::tabIndexSetExplicitly):
(WebCore::ElementRareData::clearTabIndexExplicitly):
* dom/Node.cpp:
(WebCore::Node::tabIndex):
(WebCore::Node::supportsFocus):
(WebCore::Node::mutationObserverRegistry):
(WebCore::Node::transientMutationObserverRegistry):
(WebCore::Node::registerMutationObserver):
(WebCore::Node::registerTransientMutationObserver):
(WebCore::Node::itemProp):
(WebCore::Node::setItemProp):
(WebCore::Node::itemRef):
(WebCore::Node::setItemRef):
(WebCore::Node::itemType):
(WebCore::Node::setItemType):
* dom/Node.h:
(Node):
* dom/NodeRareData.h:
(NodeMutationObserverData):
(WebCore::NodeMutationObserverData::create):
(NodeMicroDataTokenLists):
(WebCore::NodeMicroDataTokenLists::create):
(WebCore::NodeMicroDataTokenLists::itemProp):
(WebCore::NodeMicroDataTokenLists::itemRef):
(WebCore::NodeMicroDataTokenLists::itemType):
(NodeRareData):
(WebCore::NodeRareData::mutationObserverData):
(WebCore::NodeRareData::ensureMutationObserverData):
(WebCore::NodeRareData::ensureMicroDataTokenLists):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseAttribute):
2013-01-14 Ojan Vafai <ojan@chromium.org>
Remove unnecessary setNeedsLayoutAndPrefWidthsRecalc from RenderTable
https://bugs.webkit.org/show_bug.cgi?id=106832
Reviewed by Levi Weintraub.
These are both called from locations that either set these bits themselves
or clearly don't need these bits set (e.g. computePreferredLogicalWidths).
* rendering/RenderTable.cpp:
(WebCore::RenderTable::splitColumn):
(WebCore::RenderTable::appendColumn):
2013-01-14 Chris Rogers <crogers@google.com>
Switch AudioDestinationChromium over to new createAudioDevice() method
https://bugs.webkit.org/show_bug.cgi?id=106816
Reviewed by James Robinson.
* platform/audio/chromium/AudioDestinationChromium.cpp:
(WebCore::AudioDestinationChromium::AudioDestinationChromium):
2013-01-14 Huang Dongsung <luxtella@company100.net>
[TexMap] Use a premuliplied color in TextureMapperGL.
https://bugs.webkit.org/show_bug.cgi?id=105786
Reviewed by Noam Rosenthal.
TextureMapperGL always uses a premultiplied color, so we must convert
an unmultiplied color to a premultiplied color before setting the uniform value of
colorLocation.
Test: compositing/background-color/background-color-alpha-with-opacity.html
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawBorder):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::prepareFilterProgram):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::blendWithOpacity):
(WebCore):
(WebCore::TextureMapperLayer::paintSelf):
TextureMapperLayer must not convert solidColor to premultiplied
color, because TextureMapperImageBuffer expects unmultiplied color.
2013-01-14 Arko Saha <arko@motorola.com>
Microdata: REGRESSION(r138725): Causes crash in chromium port
https://bugs.webkit.org/show_bug.cgi?id=106828
Reviewed by Ryosuke Niwa.
We should hold PropertyNodeList in RefPtr<PropertyNodeList>.
Test: fast/dom/MicroData/propertiescollection-crash.html
* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
(WebCore::V8HTMLCollection::namedPropertyGetter):
2013-01-14 Tien-Ren Chen <trchen@chromium.org>
Positioned children of an overflow:visible container should ignore scroll offset when updating layer position
https://bugs.webkit.org/show_bug.cgi?id=106814
Reviewed by Simon Fraser.
This patch fixes a bug in RenderLayer::updateLayerPosition that
scrollLeft / scrollTop of a block should only be effective when the
block has overflow clipping. The bug results in rendering artifacts
and triggers a RenderGeometryMap assertion falure.
Fixes http://crbug.com/167985
Test: fast/overflow/overflow-visible-should-ignore-scroll.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPosition):
2013-01-14 Alec Flett <alecflett@chromium.org>
IndexedDB: Remove IDBObjectStore/IndexBackendImpl and support functions
https://bugs.webkit.org/show_bug.cgi?id=106605
Remove all uses of IDBObjectStoreBackendInterface and IDBIndexBackend*,
as they are no longer used after recent refactoring.
Reviewed by Darin Fisher.
* GNUmakefile.list.am:
* Modules/indexeddb/IDBCallbacks.h:
(WebCore):
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::update):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::createObjectStore):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::createObjectStore):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(WebCore):
(IDBDatabaseBackendInterface):
* Modules/indexeddb/IDBFactoryBackendImpl.h:
(IDBFactoryBackendImpl):
* Modules/indexeddb/IDBFactoryBackendInterface.h:
(IDBFactoryBackendInterface):
* Modules/indexeddb/IDBIndex.cpp:
* Modules/indexeddb/IDBIndexBackendInterface.h: Removed.
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::add):
(WebCore::IDBObjectStore::put):
* Modules/indexeddb/IDBObjectStore.h:
(IDBObjectStore):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::makeIndexWriters):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(WebCore::IDBObjectStoreBackendImpl::IndexWriter::IndexWriter):
(IndexWriter):
(IDBObjectStoreBackendImpl):
* Modules/indexeddb/IDBObjectStoreBackendInterface.h: Removed.
* Modules/indexeddb/IDBTransaction.cpp:
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionBackendInterface.h:
(WebCore):
* Modules/indexeddb/IDBTransactionCoordinator.cpp:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
2013-01-14 Max Vujovic <mvujovic@adobe.com>
[ANGLE] Update ANGLE in WebKit
https://bugs.webkit.org/show_bug.cgi?id=106274
Reviewed by Dean Jackson.
Update ANGLE to r1641.
Update the files used in the EFL and GTK builds.
No new tests. No change in behavior.
* CMakeLists.txt:
* GNUmakefile.list.am:
2013-01-14 Julien Chaffraix <jchaffraix@webkit.org>
REGRESSION (r132591): Underpainting @ uofmchildrenshospital.org
https://bugs.webkit.org/show_bug.cgi?id=105861
Reviewed by David Hyatt.
Test: fast/repaint/overhanging-float-detach-repaint.html
The issue comes from overhanging float not contributing to their containing block's
overflow. This meant that repaint() would ignore them leading to an under-repaint.
The fix is simple: force all the overhanging floats to repaint themselves.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
2013-01-14 Dominic Mazzoni <dmazzoni@google.com>
AX: Need to implement ColorWellRole
https://bugs.webkit.org/show_bug.cgi?id=106756
Reviewed by Chris Fleizach.
Maps input type=color to the accessible role ColorWellRole.
Adds a new accessor to AccessibilityObject to get the color
value in a cross-platform way that doesn't require parsing.
Test: accessibility/color-well.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::determineAccessibilityRole):
(WebCore::AccessibilityNodeObject::colorValue):
(WebCore):
* accessibility/AccessibilityNodeObject.h:
(AccessibilityNodeObject):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isColorWell):
(AccessibilityObject):
(WebCore::AccessibilityObject::colorValue):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::stringValue):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
* html/HTMLInputElement.cpp:
(WebCore):
(WebCore::HTMLInputElement::isColorControl):
* html/HTMLInputElement.h:
(HTMLInputElement):
2013-01-11 Emil A Eklund <eae@chromium.org>
offsetWidth/height incorrect for images when zoomed
https://bugs.webkit.org/show_bug.cgi?id=106624
Reviewed by Levi Weintraub.
offsetWidth and height are incorrect for images at certain zoom
levels due to flooring the values ones adjusted for zoom.
By rounding the value instead we avoid the problem and return
the right size.
Test: fast/images/zoomed-offset-size.html
* dom/Element.cpp:
(WebCore::Element::offsetWidth):
(WebCore::Element::offsetHeight):
(WebCore::Element::clientWidth):
(WebCore::Element::clientHeight):
Change to round (as opposed to floor) the zoom adjusted value.
* rendering/RenderObject.h:
(WebCore::adjustLayoutUnitForAbsoluteZoom):
* rendering/style/RenderStyle.h:
(WebCore::adjustLayoutUnitForAbsoluteZoom):
Add LayoutUnit version of adjustForAbsoluteZoom to avoid float
conversion.
2013-01-14 Mark Pilgrim <pilgrim@chromium.org>
[Chromium] Move AudioDestinationChromium into WebCore
https://bugs.webkit.org/show_bug.cgi?id=106803
Reviewed by Adam Barth.
This doesn't really belong in WebKit/chromium/src since it defines
things directly in the WebCore namespace.
* WebCore.gypi:
* platform/audio/chromium/AudioDestinationChromium.cpp: Added.
(WebCore):
(WebCore::AudioDestination::create):
(WebCore::AudioDestinationChromium::AudioDestinationChromium):
(WebCore::AudioDestinationChromium::~AudioDestinationChromium):
(WebCore::AudioDestinationChromium::start):
(WebCore::AudioDestinationChromium::stop):
(WebCore::AudioDestination::hardwareSampleRate):
(WebCore::AudioDestinationChromium::render):
(WebCore::AudioDestinationChromium::provideInput):
* platform/audio/chromium/AudioDestinationChromium.h: Added.
(WebCore):
(AudioDestinationChromium):
(WebCore::AudioDestinationChromium::isPlaying):
(WebCore::AudioDestinationChromium::sampleRate):
2013-01-14 Adrian Perez de Castro <aperez@igalia.com>
[GTK] Fix indentation for GStreamer supported MIME types list
https://bugs.webkit.org/show_bug.cgi?id=106812
Reviewed by Philippe Normand.
No tests. No change in behavior.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2013-01-14 John Bauman <jbauman@chromium.org>
Use correct size for DrawingBuffer readback
https://bugs.webkit.org/show_bug.cgi?id=106744
Reviewed by Kenneth Russell.
The value getInternalFramebufferSize is bogus if there's a
DrawingBuffer, so use size() instead.
* platform/graphics/chromium/DrawingBufferChromium.cpp:
(WebCore::DrawingBuffer::paintCompositedResultsToCanvas):
2013-01-14 Joshua Bell <jsbell@chromium.org>
Bindings: Remove special cases for DOMString[]
https://bugs.webkit.org/show_bug.cgi?id=106506
Remove special in binding code generators that map DOMString[] to DOMStringList.
Array (T[]) and sequence (sequence<T>) are supported enough now that to be used
for Internals, which is the only IDL that needed updating.
Reviewed by Adam Barth.
Tests: fast/forms/file/selected-files-from-history-state.html
fast/forms/state-restore-broken-state.html
fast/forms/state-restore-skip-stateless.html
Bindings test results updated for JS/V8.
* bindings/scripts/CodeGenerator.pm: Remove redundant IsArrayType (use GetArrayType instead)
(IsRefPtrType): Array and Sequence types are not RefPtr types.
* bindings/scripts/CodeGeneratorJS.pm:
(IndexGetterReturnsStrings): Remove special case for DOMString[].
(AddIncludesForType): Skip Array types, just like Sequence types. (Should probably recurse
for the base type, but not needed for now.)
(GenerateParametersCheckExpression): s/IsArrayType/GetArrayType/
(GetNativeType): Remove special case for DOMString[].
(GetNativeTypeForCallbacks): Ditto.
(JSValueToNative): Ditto.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateParametersCheckExpression): s/IsArrayType/GetArrayType/
(GetNativeType): Remove special case for DOMString[].
(JSValueToNative): Ditto.
(GetV8HeaderName): Ditto.
(IsWrapperType):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
* bindings/scripts/test/JS/JSTestObj.h:
(WebCore):
* bindings/scripts/test/TestObj.idl: Added explicit new cases for DOMStringList
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::overloadedMethod7Callback):
(WebCore::TestObjV8Internal::overloadedMethod9Callback):
(WebCore::TestObjV8Internal::stringArrayFunctionCallback):
(TestObjV8Internal):
(WebCore::TestObjV8Internal::domStringListFunctionCallback):
(WebCore):
(WebCore::ConfigureV8TestObjTemplate):
* testing/Internals.cpp:
(WebCore::Internals::formControlStateOfPreviousHistoryItem):
(WebCore::Internals::setFormControlStateOfPreviousHistoryItem):
(WebCore::Internals::iconURLs):
(WebCore::Internals::getReferencedFilePaths):
* testing/Internals.h:
(Internals):
* testing/Internals.idl: Produce DOMString[], consume sequence<DOMString> to match tests.
2013-01-14 Elliott Sprehn <esprehn@chromium.org>
Clean up WebVTTNodeType code
https://bugs.webkit.org/show_bug.cgi?id=106714
Reviewed by Tony Chang.
There's no reason for so many methods just to compare some enums.
The existing code can also be simplified quite a bit.
No new tests, just refactoring.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRules):
(WebCore::StyleResolver::canShareStyleWithElement):
* dom/Element.cpp:
(WebCore::Element::webVTTNodeType):
(WebCore::Element::setWebVTTNodeType):
* dom/Element.h:
(Element):
* dom/ElementRareData.h:
(WebCore::ElementRareData::setWebVTTNodeType):
(WebCore::ElementRareData::webVTTNodeType):
(ElementRareData):
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
(NodeRareData):
* html/track/TextTrack.h:
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::markFutureAndPastNodes):
2013-01-14 Antti Koivisto <antti@apple.com>
REGRESSION (r139218): Flaky assertion in WebCore::StorageTask::StorageTask releasing memory
https://bugs.webkit.org/show_bug.cgi?id=106718
Reviewed by Andreas Kling.
Type assertion was missing a new type.
* storage/StorageTask.cpp:
(WebCore::StorageTask::StorageTask):
2013-01-14 Yury Semikhatsky <yurys@chromium.org>
[REGRESSION] Dev Tools popup for Workers forgets sizes/shows tiny in top left
https://bugs.webkit.org/show_bug.cgi?id=106807
Reviewed by Pavel Feldman.
Open dedicated worker inspector 600x600 by default and remember its size
after resizing.
* inspector/front-end/Settings.js:
* inspector/front-end/WorkerManager.js:
2013-01-14 Kentaro Hara <haraken@chromium.org>
[V8] Make an Isolate parameter mandatory in associateObjectWithWrapper()
https://bugs.webkit.org/show_bug.cgi?id=106784
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
2013-01-14 Kentaro Hara <haraken@chromium.org>
[V8] Make an Isolate parameter mandatory in ScriptDebugServer::interruptAndRun()
https://bugs.webkit.org/show_bug.cgi?id=106779
Reviewed by Adam Barth.
This is one of steps to make an Isolate parameter mandatory.
No tests. No change in behavior.
* bindings/v8/ScriptDebugServer.h:
(ScriptDebugServer):
2013-01-14 Kentaro Hara <haraken@chromium.org>
[V8] Make an Isolate parameter mandatory in wrap()
https://bugs.webkit.org/show_bug.cgi?id=106783
Reviewed by Adam Barth.
Now it's safe to make an Isolate parameter in wrap().
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* bindings/scripts/test/V8/V8Float64Array.h:
(WebCore):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore::wrap):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore::wrap):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore::wrap):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore::wrap):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore::wrap):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::wrap):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::wrap):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::wrap):
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::wrap):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore::wrap):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(WebCore::wrap):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::wrap):
2013-01-14 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Update MediaStreamTrack::readyState to match specification
https://bugs.webkit.org/show_bug.cgi?id=106781
Reviewed by Adam Barth.
MediaStreamTrack::readyState now returns a string like the rest of the RTC classes.
Existing tests expanded to cover patch.
* Modules/mediastream/MediaStream.cpp:
(WebCore::processTrack):
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::readyState):
(WebCore::MediaStreamTrack::ended):
(WebCore):
* Modules/mediastream/MediaStreamTrack.h:
(MediaStreamTrack):
* Modules/mediastream/MediaStreamTrack.idl:
2013-01-14 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Audit Tool's False Positive on Set-Cookie header
https://bugs.webkit.org/show_bug.cgi?id=106794
Reviewed by Pavel Feldman.
Header value is now returned as undefined if there is no such header as it was before regression.
Test: http/tests/inspector/audits/set-cookie-header-audit-no-false-positive.html
* inspector/front-end/AuditRules.js:
(WebInspector.AuditRules.CSSRuleBase.prototype.sheetsCallback): Drive-by fix, callback should be called even when there is no headers.
* inspector/front-end/NetworkRequest.js:
(WebInspector.NetworkRequest.prototype._headerValue):
2013-01-14 Eric Carlson <eric.carlson@apple.com>
Do not pass nil when initializing legible output
https://bugs.webkit.org/show_bug.cgi?id=106799
Reviewed by Jessie Berlin.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): -[AVPlayerItemLegibleOutput initWithDependencyFactory:mediaSubtypesForNativeRepresentation:]
wants an empty NSArray rather than nil.
2013-01-14 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] UI: add control buttons for doing the replay steps
https://bugs.webkit.org/show_bug.cgi?id=106788
Reviewed by Pavel Feldman.
Adding UI control buttons for doing the Canvas replay steps.
Drive-by: fixed a bug in DataGrid (found by the JSCompiler).
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView):
(WebInspector.CanvasProfileView.prototype._createControlButton):
(WebInspector.CanvasProfileView.prototype._onReplayStepClick):
(WebInspector.CanvasProfileView.prototype._onReplayFirstStepClick):
(WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
(WebInspector.CanvasProfileView.prototype._enableWaitIcon):
(WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
(WebInspector.CanvasProfileView.prototype._replayTraceLog):
(WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
(WebInspector.CanvasProfileType.prototype._updateDecorationElement):
* inspector/front-end/DOMExtension.js:
(Element.prototype.enableStyleClass):
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid.prototype.setRootNode):
(WebInspector.DataGrid.prototype._startEditingColumnOfDataGridNode):
(WebInspector.DataGrid.prototype.moveToNextIfNeeded):
(WebInspector.DataGrid.prototype._editingCommitted):
(WebInspector.DataGridNode):
* inspector/front-end/canvasProfiler.css:
(.canvas-replay-image):
(.canvas-replay-image.wait):
(.canvas-replay-controls):
(.canvas-replay-log):
(.canvas-control-button):
(.canvas-control-button:active):
(.canvas-control-button:disabled):
(.canvas-control-button img):
(.canvas-replay-first-step img):
(.canvas-replay-next-step img):
(.canvas-replay-prev-step img):
(.canvas-replay-last-step img):
2013-01-14 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Update the track accessors on MediaStream to match the latest specification
https://bugs.webkit.org/show_bug.cgi?id=106660
Reviewed by Adam Barth.
The spec has significantly changed how tracks are accessed from a MediaStream:
http://dev.w3.org/2011/webrtc/editor/getusermedia.html
In short: the attributes audioTrack/videoTrack that returned special MediaStreamTrackLists have been
replaced by the functions getAudioTracks()/getVideoTracks that return standard sequences of
MediaStreamTracks.
Existing tests updated and expanded to cover patch.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::create):
(WebCore::MediaStream::MediaStream):
(WebCore::MediaStream::~MediaStream):
(WebCore::MediaStream::readyState):
(WebCore):
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
(WebCore::MediaStream::getTrackById):
(WebCore::MediaStream::streamEnded):
(WebCore::MediaStream::contextDestroyed):
(WebCore::MediaStream::scheduleDispatchEvent):
(WebCore::MediaStream::scheduledEventTimerFired):
* Modules/mediastream/MediaStream.h:
(MediaStream):
(WebCore::MediaStream::getAudioTracks):
(WebCore::MediaStream::getVideoTracks):
* Modules/mediastream/MediaStream.idl:
* Modules/mediastream/MediaStreamTrackList.cpp: Removed.
* Modules/mediastream/MediaStreamTrackList.h: Removed.
* Modules/mediastream/MediaStreamTrackList.idl: Removed.
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createMediaStreamSource):
* WebCore.gypi:
* dom/EventTargetFactory.in:
* platform/mediastream/MediaStreamDescriptor.h:
(WebCore::MediaStreamDescriptor::addAudioComponent):
(WebCore::MediaStreamDescriptor::removeAudioComponent):
(WebCore::MediaStreamDescriptor::addVideoComponent):
(WebCore::MediaStreamDescriptor::removeVideoComponent):
2013-01-14 Kentaro Hara <haraken@chromium.org>
[V8] Add m_isolate to ScriptController, WorkerScriptController and V8DOMWindowShell
https://bugs.webkit.org/show_bug.cgi?id=106771
Reviewed by Adam Barth.
This is one of the steps to pass an Isolate everywhere.
No tests. No change in behavior.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::ScriptController):
(WebCore::ScriptController::windowShell):
* bindings/v8/ScriptController.h:
(ScriptController):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::create):
(WebCore::V8DOMWindowShell::V8DOMWindowShell):
(WebCore::V8DOMWindowShell::initializeIfNeeded):
(WebCore::V8DOMWindowShell::installDOMWindow):
* bindings/v8/V8DOMWindowShell.h:
(V8DOMWindowShell):
* bindings/v8/V8Initializer.cpp:
(WebCore::V8Initializer::initializeMainThreadIfNeeded):
(WebCore::V8Initializer::initializeWorker):
* bindings/v8/V8Initializer.h:
(V8Initializer):
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::WorkerScriptController):
(WebCore::WorkerScriptController::initializeContextIfNeeded):
2013-01-14 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Styles] Color names parsed inside "background-image" values
https://bugs.webkit.org/show_bug.cgi?id=106770
Reviewed by Pavel Feldman.
Test: inspector/styles/url-color-swatch.html
Spaces were not allowed in url(...) CSS property values.
* inspector/front-end/StylesSidebarPane.js:
2013-01-14 Kentaro Hara <haraken@chromium.org>
[V8] Pass an Isolate to associateObjectWithWrapper()
https://bugs.webkit.org/show_bug.cgi?id=106773
Reviewed by Adam Barth.
In preparation for making an Isolate parameter mandatory
in associateObjectWithWrapper(), this patch passes an
Isolate to associateObjectWithWrapper().
No tests. No change in behavior.
* bindings/v8/custom/V8ArrayBufferCustom.cpp:
(WebCore::V8ArrayBuffer::constructorCallbackCustom):
* bindings/v8/custom/V8ArrayBufferViewCustom.h:
(WebCore::wrapArrayBufferView):
(WebCore::constructWebGLArray):
* bindings/v8/custom/V8AudioContextCustom.cpp:
(WebCore::V8AudioContext::constructorCallbackCustom):
* bindings/v8/custom/V8DOMFormDataCustom.cpp:
(WebCore::V8DOMFormData::constructorCallbackCustom):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::V8DataView::constructorCallbackCustom):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::v8HTMLImageElementConstructorCallback):
* bindings/v8/custom/V8IntentCustom.cpp:
(WebCore::V8Intent::constructorCallbackCustom):
* bindings/v8/custom/V8MessageChannelCustom.cpp:
(WebCore::V8MessageChannel::constructorCallbackCustom):
* bindings/v8/custom/V8MutationObserverCustom.cpp:
(WebCore::V8MutationObserver::constructorCallbackCustom):
* bindings/v8/custom/V8WebKitPointCustom.cpp:
(WebCore::V8WebKitPoint::constructorCallbackCustom):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::V8XMLHttpRequest::constructorCallbackCustom):
2013-01-14 Kentaro Hara <haraken@chromium.org>
[V8] Call Isolate::GetCurrent() in a callback from WebCore
https://bugs.webkit.org/show_bug.cgi?id=106766
Reviewed by Adam Barth.
The objective is to pass an Isolate everywhere.
Given that a callback from WebCore is an entry point to V8,
we can call Isolate::GetCurrent() at the head of the callback
and pass it to other places. (In practice, handleEvent() is
the only callback used in the current WebKit.)
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateCallbackImplementation):
(NativeToJSValue):
* bindings/scripts/test/V8/V8TestCallback.cpp:
(WebCore::V8TestCallback::callbackWithNoParam):
(WebCore::V8TestCallback::callbackWithClass1Param):
(WebCore::V8TestCallback::callbackWithClass2Param):
(WebCore::V8TestCallback::callbackWithStringList):
(WebCore::V8TestCallback::callbackWithBoolean):
(WebCore::V8TestCallback::callbackRequiresThisToPass):
2013-01-14 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Change MediaStream::readyState to an boolean attribute called ended.
https://bugs.webkit.org/show_bug.cgi?id=106568
Reviewed by Adam Barth.
See specification: http://dev.w3.org/2011/webrtc/editor/getusermedia.html
Existings tests updated to cover patch.
* Modules/mediastream/LocalMediaStream.cpp:
(WebCore::LocalMediaStream::stop):
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::ended):
(WebCore::MediaStream::streamEnded):
* Modules/mediastream/MediaStream.h:
(MediaStream):
(WebCore::MediaStream::isLocal):
* Modules/mediastream/MediaStream.idl:
* Modules/mediastream/MediaStreamTrackList.cpp:
(WebCore::MediaStreamTrackList::add):
(WebCore::MediaStreamTrackList::remove):
2013-01-14 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Styles] HTML color names not converted to RGB/HEX/HSL when "Color format" feature used
https://bugs.webkit.org/show_bug.cgi?id=106767
Reviewed by Vsevolod Vlasov.
We used to render named colors as names regardless of the selected color format option.
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
2013-01-14 Andrei Bucur <abucur@adobe.com>
Crash caused by incomplete cleanup of regions information for anonymous block
https://bugs.webkit.org/show_bug.cgi?id=106191
Reviewed by Abhishek Arya.
When an anonymous block is no longer required it is removed from the render tree and deleted. For example, this can happen when an anonymous block children change
from inlines to blocks. The patch updates the removeLeftoverAnonymousBlock function to delete the flow thread information attached to the obsolete anonymous block.
The removeFromRenderFlowThread() function is recursive and it needs to be called after the anonymous block children were reparented and the child list cleared.
I've also placed the children reset operation before clearing the parent because the latter also deletes the inRenderFlowThread flag from the object and it makes
flow thread ownership detection impossible.
Tests: fast/regions/remove-leftover-anon-block-crash.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removeLeftoverAnonymousBlock):
2013-01-14 Kentaro Hara <haraken@chromium.org>
[V8] Make an Isolate parameter mandatory in v8DateOrNull()
https://bugs.webkit.org/show_bug.cgi?id=106765
Reviewed by Adam Barth.
This is one of the efforts to kill all optional Isolate parameters.
No tests. No change in behavior.
* bindings/v8/V8Binding.h:
(WebCore::v8DateOrNull):
2013-01-14 Pablo Flouret <pablof@motorola.com>
Allow nesting of at-rules
https://bugs.webkit.org/show_bug.cgi?id=106696
Reviewed by Allan Sandfeld Jensen.
http://dev.w3.org/csswg/css3-conditional/ introduces the
concept of grouping rules, and allows for them to be nested. In
particular, this change affects @media (and is needed for @supports as
well).
Test: fast/css/nested-at-rules.html
* css/CSSGrammar.y.in:
Move media to the block_valid_rule list.
* css/RuleSet.cpp:
(WebCore::RuleSet::addRegionRule):
(WebCore::RuleSet::addChildRules):
(WebCore::RuleSet::addRulesFromSheet):
* css/RuleSet.h:
Rip out the rule-adding loop into a new method, for added
cleanliness and recursing.
2013-01-14 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] Add domain column
https://bugs.webkit.org/show_bug.cgi?id=106757
Reviewed by Pavel Feldman.
Adding new column will ease domain tracking / sorting.
* inspector/front-end/NetworkPanel.js: Added column.
* inspector/front-end/NetworkRequest.js:
(WebInspector.NetworkRequest.prototype.get domain): Added getter.
2013-01-14 Qiankun Miao <qiankun.miao@intel.com>
Fix a typo error in the comments in PlatformContextSkia.h
https://bugs.webkit.org/show_bug.cgi?id=105612
Reviewed by Stephen White.
"If false we're rendering to a GraphicsContext for a web page, if false
we're not (as is the case when rendering to a canvas object)." is
self-contradictory. The second "flase" in the comments should be
"true". If true, we're rendering to an ImageBuffer which has a canvas
object.
* platform/graphics/skia/PlatformContextSkia.h:
(PlatformContextSkia):
2013-01-14 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 3/3
https://bugs.webkit.org/show_bug.cgi?id=106764
Reviewed by Vsevolod Vlasov.
Last three classes with not instrumented members were fixed.
* css/CSSGroupingRule.cpp:
(WebCore::CSSGroupingRule::reportMemoryUsage):
* css/StyleScopeResolver.cpp:
(WebCore::StyleScopeResolver::reportMemoryUsage):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::reportMemoryUsage):
2013-01-10 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 2/N
https://bugs.webkit.org/show_bug.cgi?id=106546
Reviewed by Vsevolod Vlasov.
Many nontrivial class members were added into reportMemoryUsage methods.
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::reportMemoryUsage):
* css/CSSMediaRule.cpp:
(WebCore::CSSMediaRule::reportMemoryUsage):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::reportMemoryUsage):
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::reportMemoryUsage):
* css/MediaList.cpp:
(WebCore::MediaList::reportMemoryUsage):
* css/RuleSet.cpp:
(WebCore::RuleData::reportMemoryUsage):
(WebCore::RuleSet::reportMemoryUsage):
(WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::MatchedPropertiesCacheItem::reportMemoryUsage):
(WebCore::StyleResolver::reportMemoryUsage):
* css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::reportMemoryUsage):
* dom/TreeScope.cpp:
(WebCore::TreeScope::reportMemoryUsage):
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::reportMemoryUsage):
* inspector/InspectorMemoryAgent.cpp:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::reportMemoryUsage):
* inspector/MemoryInstrumentationImpl.cpp:
(WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::reportMemoryUsage):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::reportMemoryUsage):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::reportMemoryUsage):
* loader/Prerenderer.cpp:
(WebCore::Prerenderer::reportMemoryUsage):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::reportMemoryUsage):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::reportMemoryUsage):
* page/Page.cpp:
(WebCore::Page::reportMemoryUsage):
2013-01-13 Levi Weintraub <leviw@chromium.org>
Unreviewed gardening. Rolling out r139537. It broke platforms without sub-pixel layout.
* dom/Element.cpp:
(WebCore::Element::offsetWidth):
(WebCore::Element::offsetHeight):
(WebCore::Element::clientWidth):
(WebCore::Element::clientHeight):
* rendering/RenderObject.h:
(WebCore::adjustLayoutUnitForAbsoluteZoom):
* rendering/style/RenderStyle.h:
(WebCore::adjustLayoutUnitForAbsoluteZoom):
2013-01-13 Dima Gorbik <dgorbik@apple.com>
Styling disappears from the cue that's being styled by ::cue pseudo element
https://bugs.webkit.org/show_bug.cgi?id=106723
Reviewed by Antti Koivisto.
Fixes a regression caused by r138966. Setting a pseudoId in TextTrackCue::updateDisplayTree for m_allDocumentNodes
was triggering recalculating styles the next run loop. Now when this was removed we append the WebVTT tree after its children have
been marked by markFutureAndPastNodes so that correct styles are set within this append call.
Test: media/track/track-css-cue-lifetime.html
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::markFutureAndPastNodes): changing the type of the first argument because DocumentFragment is not a subclass
of Element.
(WebCore::TextTrackCue::updateDisplayTree): appending the WebVTT rendering tree after its children have been marked properly.
* html/track/TextTrackCue.h:
(TextTrackCue):
2013-01-12 David Grogan <dgrogan@chromium.org>
IndexedDB: Provide LevelDB with IDBEnv instead of Env::Default
https://bugs.webkit.org/show_bug.cgi?id=106135
Reviewed by Tony Chang.
IDBEnv only changes the name of the histogram where errors are logged.
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::LevelDBDatabase::destroy):
(WebCore::LevelDBDatabase::open):
(WebCore::LevelDBDatabase::openInMemory):
2013-01-12 Gavin Peters <gavinp@chromium.org>
Regression(r119759): Heap-use-after-free in webkit_glue::WebURLLoaderImpl::Context::OnReceivedResponse
https://bugs.webkit.org/show_bug.cgi?id=103563
A subresource could receive a body on a 404 if its call to CachedResource::error() resulted in a nested message loop.
That caused a crash when data was received, as the Subresource was in the Finished state already. Now when receiving
data we ignore these bodies, avoiding the crash.
Reviewed by Nate Chapin.
No new tests in WebKit, since it required a nested message loop which isn't present in chromium DumpRender tree.
There's a Chrome side browser test, see https://codereview.chromium.org/11778083/
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::checkForHTTPStatusCodeError):
2013-01-12 Robert Hogan <robert@webkit.org>
Available height should respect min and max height
https://bugs.webkit.org/show_bug.cgi?id=106479
Reviewed by Ojan Vafai.
When calculating a relative positioned block's offset as a percentage of its container, respect the min
and max height set on the container
Tests: fast/block/percent-top-respects-max-height.html
fast/block/percent-top-respects-min-height.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::availableLogicalHeight):
2013-01-12 Victor Carbune <victor@rosedu.org>
CC Button doesn't always show up
https://bugs.webkit.org/show_bug.cgi?id=106653
Reviewed by Eric Carlson.
Added extra checks to existing test.
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::closedCaptionTracksChanged):
Enforced visibility of captions button whenever the track list changes.
(WebCore):
* html/shadow/MediaControls.h:
(MediaControls):
2013-01-11 Dan Beam <dbeam@chromium.org>
[clean up] Remove HTMLFormElement::AutocompleteResultError in favor of more specific Error reasons
https://bugs.webkit.org/show_bug.cgi?id=106610
Reviewed by Darin Fisher.
No new tests (none needed).
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::finishRequestAutocomplete): Removed handling of AutocompleteResultError.
* html/HTMLFormElement.h: Removed HTMLFormElement::AutocompleteResultError in favor of more specific errors.
2013-01-10 Filip Pizlo <fpizlo@apple.com>
JITThunks should not compile only because of luck
https://bugs.webkit.org/show_bug.cgi?id=105696
Rubber stamped by Sam Weinig.
All .cpp files that use the JSC internal API must now transitively include
Operations.h, and none of the major JSC headers do it for you to avoid
circularity. WebCore doesn't have to worry about circularity with JSC, so
this changes all of the major WebCore JSC base headers to include
Operations.h.
* bindings/js/BindingState.h:
* bindings/js/JSArrayBufferViewHelper.h:
* bindings/js/JSCustomXPathNSResolver.h:
* bindings/js/JSDOMBinding.h:
* bindings/js/JSDOMGlobalObject.h:
* bindings/js/JSDictionary.h:
* bindings/js/JSMessagePortCustom.h:
* bindings/js/JSNodeFilterCondition.h:
* bindings/js/ScriptValue.h:
* bindings/js/ScriptWrappable.h:
* bindings/js/SerializedScriptValue.cpp:
* bridge/c/c_utility.h:
* bridge/jsc/BridgeJSC.h:
* dom/Node.cpp:
* html/HTMLCanvasElement.cpp:
* html/HTMLImageLoader.cpp:
* plugins/efl/PluginViewEfl.cpp:
* xml/XMLHttpRequest.cpp:
2013-01-11 Emil A Eklund <eae@chromium.org>
offsetWidth/height incorrect for images when zoomed
https://bugs.webkit.org/show_bug.cgi?id=106624
Reviewed by Levi Weintraub.
offsetWidth and height are incorrect for images at certain zoom
levels due to flooring the values ones adjusted for zoom.
By rounding the value instead we avoid the problem and return
the right size.
Test: fast/images/zoomed-offset-size.html
* dom/Element.cpp:
(WebCore::Element::offsetWidth):
(WebCore::Element::offsetHeight):
(WebCore::Element::clientWidth):
(WebCore::Element::clientHeight):
Change to round (as opposed to floor) the zoom adjusted value.
* rendering/RenderObject.h:
(WebCore::adjustLayoutUnitForAbsoluteZoom):
* rendering/style/RenderStyle.h:
(WebCore::adjustLayoutUnitForAbsoluteZoom):
Add LayoutUnit version of adjustForAbsoluteZoom to avoid float
conversion.
2013-01-11 Ojan Vafai <ojan@chromium.org>
Fixed width overrides intrinsic min-width/max-width for text inputs and listboxes
https://bugs.webkit.org/show_bug.cgi?id=106675
Reviewed by Emil A Eklund.
Implement computeIntrinsicLogicalWidths so that RenderBox::computeLogicalWidthInRegionUsing
can get the correct intrinsic sizes instead of the preferred sizes.
Test: fast/forms/select/listbox-intrinsic-min-width-applies-with-fixed-width.html
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::computeIntrinsicLogicalWidths):
(WebCore):
(WebCore::RenderListBox::computePreferredLogicalWidths):
* rendering/RenderListBox.h:
(RenderListBox):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::computeIntrinsicLogicalWidths):
(WebCore):
(WebCore::RenderTextControl::computePreferredLogicalWidths):
* rendering/RenderTextControl.h:
(RenderTextControl):
2013-01-10 Ojan Vafai <ojan@chromium.org>
Setting width overrides intrinsic min-width/max-width on flexboxes and their subclasses
https://bugs.webkit.org/show_bug.cgi?id=106617
Reviewed by Tony Chang.
Override computeIntrinsicLogicalWidths for all RenderFlexibleBox and RenderDeprecatedFlexibleBox
classes that override computePreferredLogicalWidths so that RenderBox can use
computeIntrinsicLogicalWidths in order to get the correct intrinsic values.
Tests: css3/flexbox/intrinsic-min-width-applies-with-fixed-width.html
fast/flexbox/intrinsic-min-width-applies-with-fixed-width.html
fast/forms/select/intrinsic-min-width-applies-with-fixed-width.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalWidthInRegionUsing):
fit-content needs to use the intrinsic sizes not the preferred sizes
since a fixed width overrides the preferred size.
As best I can tell, the sizesLogicalWidthToFitContent codepath can keep
using preferred widths, which are considerably faster, since that's only used
computing width values. Added a clause to that if-statement to make this more
explicit.
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::computeIntrinsicLogicalWidths):
(WebCore::RenderDeprecatedFlexibleBox::computePreferredLogicalWidths):
* rendering/RenderDeprecatedFlexibleBox.h:
(RenderDeprecatedFlexibleBox):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths):
(WebCore):
(WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
* rendering/RenderFlexibleBox.h:
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::computeIntrinsicLogicalWidths):
(WebCore):
(WebCore::RenderMenuList::computePreferredLogicalWidths):
* rendering/RenderMenuList.h:
(RenderMenuList):
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::computeIntrinsicLogicalWidths):
(WebCore):
(WebCore::RenderSlider::computePreferredLogicalWidths):
* rendering/RenderSlider.h:
(RenderSlider):
No logic changes in any of these computeIntrinsic methods. Just moving
the code over from the computePreferred methods.
2013-01-11 Tony Gentilcore <tonyg@chromium.org>
Move HTMLTokenTypes to its own file
https://bugs.webkit.org/show_bug.cgi?id=106722
Reviewed by Levi Weintraub.
Also mark AtomicHTMLToken ctor as explicit.
No new tests because no new functionality.
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/HTMLToken.h:
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
* html/parser/HTMLTokenTypes.h: Added.
(WebCore):
(HTMLTokenTypes):
(DoctypeData):
(WebCore::HTMLTokenTypes::DoctypeData::DoctypeData):
2013-01-11 Elliott Sprehn <esprehn@chromium.org>
No need to initialize RefPtrs to 0 in ElementRareData
https://bugs.webkit.org/show_bug.cgi?id=106717
Reviewed by Ryosuke Niwa.
RefPtrs initialize themself to null, so there's no reason
to do it manually. This was code leftover from when
PseudoElements were stored in bare ptrs instead of in
RefPtrs.
No new tests, just refactoring.
* dom/ElementRareData.h:
(WebCore::ElementRareData::ElementRareData):
2013-01-11 Huang Dongsung <luxtella@company100.net>
[TexMap] Rename current[Transform|Opacity|Filters] in TextureMapperLayer.
https://bugs.webkit.org/show_bug.cgi?id=105760
Reviewed by Noam Rosenthal.
TextureMapperLayer has two transform members: an original value and a
changeable value. The changeable value would be changed by animations.
This patch puts 'current' prefix on the changeable value to clarify
its purpose. Opacity and filters ditto.
No new tests. Refactoring only.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computeTransformsRecursive):
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::paintSelfAndChildren):
(WebCore::TextureMapperLayer::intermediateSurfaceRect):
(WebCore::TextureMapperLayer::shouldPaintToIntermediateSurface):
(WebCore::TextureMapperLayer::isVisible):
(WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
(WebCore::TextureMapperLayer::paintRecursive):
(WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
(WebCore::TextureMapperLayer::syncAnimations):
(WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):
* platform/graphics/texmap/TextureMapperLayer.h:
(WebCore::TextureMapperLayer::TextureMapperLayer):
(TextureMapperLayer):
(WebCore::TextureMapperLayer::State::State):
2013-01-11 Tony Gentilcore <tonyg@chromium.org>
Move constructTreeFromHTMLToken into HTMLDocumentParser
https://bugs.webkit.org/show_bug.cgi?id=106694
Reviewed by Adam Barth.
This way it will sit parallel to a new constructTreeFromCompactHTMLToken method.
No new tests because no new functionality.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::pumpTokenizer):
(WebCore::HTMLDocumentParser::constructTreeFromHTMLToken):
(WebCore):
* html/parser/HTMLDocumentParser.h:
* html/parser/HTMLTreeBuilder.cpp:
* html/parser/HTMLTreeBuilder.h:
(HTMLTreeBuilder):
2013-01-11 Robert Iannucci <iannucci@chromium.org>
Explicitly set msvs_cygwin_shell to true for actions in WebKit
https://bugs.webkit.org/show_bug.cgi?id=106706
Reviewed by Tony Chang.
Currently, msvs_cygwin_shell is set to 1 by default. This patch
explicitly sets it on the actions which will break if msvs_cygwin_shell
were set to 0. This is in preparation for changing the default value of
msvs_cygwin_shell, which in turn is in preparation of the removal of
cygwin as a buld-system requirement.
Since this change will have no semantic effect, no new tests are
required.
* WebCore.gyp/WebCore.gyp:
2013-01-11 Joshua Bell <jsbell@chromium.org>
IndexedDB: IDBTransaction should manage lifetime of IDBRequests
https://bugs.webkit.org/show_bug.cgi?id=106678
Reviewed by Tony Chang.
Ensure reference count of IDBRequests don't bounce off zero if there are no script
references are while the events are arriving.
No new tests - no detectable behavior changes.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::create): Register with transaction (which now takes a ref) here to...
(WebCore::IDBRequest::IDBRequest): ...avoid having to relax adoption requirements here.
* Modules/indexeddb/IDBTransaction.cpp: Keep RefPtr<>s to outstanding requests.
(WebCore::IDBTransaction::~IDBTransaction):
(WebCore::IDBTransaction::abort):
(WebCore::IDBTransaction::onAbort):
* Modules/indexeddb/IDBTransaction.h:
2013-01-11 James Simonsen <simonjam@chromium.org>
[Resource Timing] XMLHttpRequests should have initiator type 'xmlhttprequest'
https://bugs.webkit.org/show_bug.cgi?id=106409
Reviewed by Nate Chapin.
The initiator is passed through ThreadableLoaderOptions to the CachedResourceRequest. This is
optional, so other users of ThreadableLoader will have the default initiator of 'request'. Note
that synchronous XHRs don't show up in the Resource Timing buffer yet.
Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_initiator_types.html
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadRequest):
* loader/ThreadableLoader.h:
(ThreadableLoaderOptions):
* loader/cache/CachedResourceRequestInitiators.cpp:
(WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
* loader/cache/CachedResourceRequestInitiators.h:
(CachedResourceRequestInitiators):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createRequest):
2013-01-11 James Simonsen <simonjam@chromium.org>
Restore old semantics to webkitRequestAnimationFrame callbacks
https://bugs.webkit.org/show_bug.cgi?id=106697
Reviewed by James Robinson.
Sites that use GWT <= 2.4 are buggy and rely on Date.now()-like callback values.
We'll restore that behavior to the prefixed version of webkitRequestAnimationFrame.
requestAnimationFrame will continue to follow the spec.
Test: fast/animation/request-animation-frame-prefix.html
* dom/RequestAnimationFrameCallback.h:
(RequestAnimationFrameCallback):
* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::serviceScriptedAnimations):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::requestAnimationFrame):
(WebCore):
(WebCore::DOMWindow::webkitRequestAnimationFrame):
* page/DOMWindow.h:
(DOMWindow):
* page/DOMWindow.idl:
2013-01-11 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r139044.
http://trac.webkit.org/changeset/139044
https://bugs.webkit.org/show_bug.cgi?id=106702
Caused various scrolling anomolies on Mac with drag and drop
(Requested by smfr on #webkit).
* page/AutoscrollController.cpp:
(WebCore::AutoscrollController::AutoscrollController):
(WebCore::AutoscrollController::autoscrollTimerFired):
* page/AutoscrollController.h:
(WebCore):
(AutoscrollController):
* page/EventHandler.cpp:
(WebCore::EventHandler::updateDragAndDrop):
* rendering/RenderBox.cpp:
(WebCore):
(WebCore::RenderBox::autoscroll):
* rendering/RenderBox.h:
(RenderBox):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::autoscroll):
* rendering/RenderLayer.h:
(RenderLayer):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::autoscroll):
* rendering/RenderListBox.h:
(RenderListBox):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::autoscroll):
* rendering/RenderTextControlSingleLine.h:
(RenderTextControlSingleLine):
2013-01-11 Rafael Weinstein <rafaelw@chromium.org>
Prevent HTMLPreloadScanner from fetching resources inside <template>
https://bugs.webkit.org/show_bug.cgi?id=106687
Reviewed by Adam Barth.
This patch adds a simple counter to the preload scanner which increments on template start
tag and decrements on template element. It only fetchs resources when the counter is at zero
(i.e. for elements not contained by a template element).
Test re-enabled within fast/dom/HTMLTemplateElement/inertContents.html
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
(WebCore::HTMLPreloadScanner::processToken):
* html/parser/HTMLPreloadScanner.h:
(HTMLPreloadScanner):
2013-01-11 Tony Gentilcore <tonyg@chromium.org>
We should be able to checkpoint and restore the HTMLTokenizer across threads
https://bugs.webkit.org/show_bug.cgi?id=106597
Based on patch by Adam Barth.
This has the ability to create a checkpoint any time the parser is blocked on a script.
We clear m_appropriateEndTagName after each end tag is flushed so that the ASSERT in
canCreateCheckpoint() will pass.
Reviewed by Adam Barth.
No new tests because no new functionality.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::pumpTokenizer):
* html/parser/HTMLDocumentParser.h:
(WebCore):
(HTMLDocumentParser):
* html/parser/HTMLTokenizer.cpp:
(WebCore):
(WebCore::HTMLTokenizer::canCreateCheckpoint):
(WebCore::HTMLTokenizer::createCheckpoint):
(WebCore::HTMLTokenizer::restoreFromCheckpoint):
* html/parser/HTMLTokenizer.h:
(HTMLTokenizer):
(Checkpoint):
(WebCore::HTMLTokenizer::Checkpoint::Checkpoint):
* xml/parser/MarkupTokenizerBase.h:
(WebCore::MarkupTokenizerBase::InputStreamPreprocessor::InputStreamPreprocessor):
(WebCore::MarkupTokenizerBase::InputStreamPreprocessor::skipNextNewLine):
(InputStreamPreprocessor):
(WebCore::MarkupTokenizerBase::InputStreamPreprocessor::reset):
2013-01-11 Tony Chang <tony@chromium.org>
[chromium] Don't regenerate all bindings when any idl file changes
https://bugs.webkit.org/show_bug.cgi?id=106604
Reviewed by Kentaro Hara.
Currently, every idl file is a dependency of generating the supplemental dependency map
and generating bindings is a dependency of the map. This means that touching any idl file
causes us to regenerate all the bindings.
Change it so that generating bindings only depends on the idl files that have Supplemental= in them.
We only have 24 idl files with Supplemental (3.7% of the 638 idl files in WebCore) so modifying
any of those will cause all bindings to be regenerated.
If you add or remove a new idl file, you have to rerun gyp which will fix up any dependencies.
If you edit an existing file and add Supplemental= to it, you will now need to rerun gyp_{webkit,chromium}.
I think that's a reasonable tradeoff since it seems highly unlikely that you would adding Supplemental=
to an existing file without renaming it. The bots will always be fine because they always run
gyp after updating.
No new tests, this is a build only change.
* WebCore.gyp/WebCore.gyp: Remove <(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp, which was causing
the full rebuild. The step to generate this file is still a hard dependency so it will still be generated and
used by generate-bindings.pl. Also remove <@(webcore_test_support_idl_files). This was saying we should regenerate
all bindings if a test idl file changed. That doesn't make sense.
* WebCore.gyp/scripts/supplemental_idl_files.py: Added.
(DoMain):
2013-01-11 Alexandru Chiculita <achicu@adobe.com>
Element is displayed behind a composited layer when clipping is used on a previous element
https://bugs.webkit.org/show_bug.cgi?id=104981
Reviewed by Simon Fraser.
RenderLayerCompositor::computeCompositingRequirements uses the local bounding box of the layers to optimize the number of composited
layers that are created. That's needed in order to make sure that composited layers that are displayed behind non-composited
layers are correctly promoting the layers in front to be composited. Otherwise the non-composited layers are rendered
in the parent composited layer, displaying behind the other composited layers. That might be wrong as the correct paint order might not be
preserved.
In order to make animations work, there's a flag that will disable that optimization. That's because the animations run in the platform
layer and the platform layer doesn't know about the layers that are not promoted to composited layers. When the overlapping of the layers
is computed it just uses the start or the stop state, but no intermediate states. For that reason, all the 'top' layers in front of animated
elements will become composited.
When an animation has a clipping rectangle, then we know for sure that the animation is going to be contained inside the clip area, so WebKit
uses the bounding box of the clipping area to detect the overlapping layers, so there's no need to disable the optimization in that case.
However, if there is a different animation displaying behind the clipping container, we cannot safely disable that optimization anymore. That's
because we still don't know what are the intermediate states of that particular animated layer. The bug was that the optimization was re-enabled
anyway, even in this particular case.
In order to fix it, I changed the logic, so that instead of re-enabling the optimization after a clipping container, it will just avoid to propagate
the internal state to the following layers when there's no need to so.
Note that 3D transforms behave like animations for now and disable the optimization. Because of that some of the existing tests ended up
creating more layers than needed. That's because the tests had an overflow area that recreated the issue that this patch fixes, but with
3D transforms instead of animations. 3D transforms will be treated in a separate patch.
Tests: compositing/layer-creation/overlap-animation-clipping.html
compositing/layer-creation/overlap-animation-container.html
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
2013-01-11 Philip Rogers <pdr@google.com>
Skip CachedImage::CreateImage if we don't have image data
https://bugs.webkit.org/show_bug.cgi?id=106156
Reviewed by Nate Chapin.
This patch skips image creation if we do not have image data. This can occur during
cache revalidation when the revalidation request (304 not modified) comes back without
any content. In this revalidation case, the http spec requires that a mimetype not be set
on the response to prevent a cached resource from having a different mimetype
from the revalidated resource. Because revalidation requests do not have a mimetype,
CachedImage::CreateImage() will fail on SVG images. This patch prevents
CachedImage::CreateImage() from being called during revalidation.
No new tests as there are no observable changes from this patch.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::data):
2013-01-11 Kentaro Hara <haraken@chromium.org>
Unreviewed. Rebaselined run-bindings-tests.
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::TestEventConstructorV8Internal::attr1AttrGetter):
(WebCore::TestEventConstructorV8Internal::attr2AttrGetter):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::TestExceptionV8Internal::nameAttrGetter):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetter):
(WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetter):
(WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetter):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetter):
(WebCore::TestObjV8Internal::staticStringAttrAttrGetter):
(WebCore::TestObjV8Internal::stringAttrAttrGetter):
(WebCore::TestObjV8Internal::reflectedStringAttrAttrGetter):
(WebCore::TestObjV8Internal::reflectedURLAttrAttrGetter):
(WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetter):
(WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter):
(WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetter):
(WebCore::TestObjV8Internal::hashAttrGetter):
(WebCore::TestObjV8Internal::conditionalMethod1Callback):
2013-01-11 Levi Weintraub <leviw@chromium.org>
RenderGeometryMap and TransformState disagree with sub-pixel layout and translations
https://bugs.webkit.org/show_bug.cgi?id=106047
Reviewed by Simon Fraser.
Mirror RenderGeometryMap's optimization for integer-translated transforms in TransformState.
This avoids the current behavior where the two can disagree on mappings, since RenderGeometryMap
pixel-snapped later when a translation occurred between two sub-pixel containers.
Test: fast/layers/geometry-map-transform-state-translation-mismatch.html
* platform/graphics/transforms/TransformState.h:
(WebCore::TransformState::setQuad): Clear accumulatedOffset when setting a new quad. Note: this
implementation only works properly when only tracking a quad.
* platform/graphics/transforms/TransformState.cpp:
(WebCore::TransformState::applyTransform): apply integral translations to the accumulatedOffset
for performance and consistency with RenderGeometryMap.
2013-01-11 Abhishek Arya <inferno@chromium.org>
Heap-use-after-free in WebCore::RenderText::computePreferredLogicalWidths
https://bugs.webkit.org/show_bug.cgi?id=95901
Reviewed by Simon Fraser.
Prevent re-entrancy of view layout. Loading of SVG document during font load
causes it to re-enter layout and blowing the style away from underneath.
Test: Go to http://www.speckproducts.com and make sure crash does not happen.
* dom/Document.cpp:
(WebCore::Document::updateLayout):
2013-01-11 Kentaro Hara <haraken@chromium.org>
[V8] Do not create a local handle for a cached v8 string that is returned to V8 immediately
https://bugs.webkit.org/show_bug.cgi?id=106557
Reviewed by Adam Barth.
Currently we are always creating a local handle for a cached
V8 string returned to V8:
Handle<Value> v8String(StringImpl* impl, Isolate* isolate) {
...;
return Local<String>::New(isolate, m_cachedString);
}
However, we don't need to create a local handle in a case
where it is guaranteed that no V8 object allocation is conducted
before a control flow returns back to V8. In particular, in a case
where a cached V8 string is immediately returned to V8, we don't
need to create a local handle:
Handle<Value> xxxxAttrGetter() {
...;
return v8String(imp->xxxx(), isolate); // This can return a persistent handle safely.
}
This patch improves performance of div.id by 9.2%.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrGetter):
(GenerateCallbackImplementation):
(GenerateFunctionCallString):
(NativeToJSValue):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::TestEventConstructorV8Internal::attr1AttrGetter):
(WebCore::TestEventConstructorV8Internal::attr2AttrGetter):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::TestExceptionV8Internal::nameAttrGetter):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetter):
(WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetter):
(WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetter):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetter):
(WebCore::TestObjV8Internal::staticStringAttrAttrGetter):
(WebCore::TestObjV8Internal::stringAttrAttrGetter):
(WebCore::TestObjV8Internal::reflectedStringAttrAttrGetter):
(WebCore::TestObjV8Internal::reflectedURLAttrAttrGetter):
(WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetter):
(WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter):
(WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetter):
(WebCore::TestObjV8Internal::hashAttrGetter):
(WebCore::TestObjV8Internal::conditionalMethod1Callback):
* bindings/v8/V8Binding.h:
(WebCore::v8String):
(WebCore::v8StringOrNull):
(WebCore::v8StringOrUndefined):
* bindings/v8/V8ValueCache.cpp:
(WebCore::StringCache::v8ExternalStringSlow):
* bindings/v8/V8ValueCache.h:
(WebCore::StringCache::v8ExternalString):
(StringCache):
2013-01-11 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix make distcheck.
* GNUmakefile.list.am: Add missing header files.
2013-01-11 Xianzhu Wang <wangxianzhu@chromium.org>
RenderLayerCompositor should let ScrollingCoordinator update main thread scrolling reasons after change of layers
https://bugs.webkit.org/show_bug.cgi?id=105652
Reviewed by Simon Fraser.
Let ScrollingCoordinator know the change of ViewportConstrainedNotCompositedReason in time.
By the way moved RenderLayerCompositor::FixedPositionLayerNotCompositedReason to RenderLayer::ViewportConstrainedNotCompositedReason.
Tests: compositing/layer-creation/fixed-position-in-view-dynamic.html
compositing/layer-creation/fixed-position-out-of-view-dynamic.html
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects):
(WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
(WebCore::ScrollingCoordinator::mainThreadScrollingReasonsAsText):
* page/scrolling/ScrollingCoordinator.h:
(ScrollingCoordinator):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
(WebCore::ScrollingCoordinatorMac::hasVisibleSlowRepaintViewportConstrainedObjects):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::logThreadedScrollingMode):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::paintLayer):
* rendering/RenderLayer.h:
(RenderLayer): Moved RenderLayerCompositor::FixedPositionLayerNotCompositedReason to here and renamed it to ViewportConstrainedNotCompositedReason.
(WebCore::RenderLayer::setViewportConstrainedNotCompositedReason):
(WebCore::RenderLayer::viewportConstrainedNotCompositedReason):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingLayers):
(WebCore::RenderLayerCompositor::updateBacking): Now updates ViewportConstrainedNotCompositedReason here instead of in computeCompositingRequirements before so that the reason is updated in time.
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::needsToBeComposited):
(WebCore::RenderLayerCompositor::requiresCompositingLayer):
(WebCore::RenderLayerCompositor::reasonForCompositing):
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
(WebCore::RenderLayerCompositor::reportMemoryUsage):
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
2013-01-11 Kenneth Russell <kbr@google.com>
[Chromium] WebGL typed array constructor crashes on exception
https://bugs.webkit.org/show_bug.cgi?id=106308
Reviewed by Kentaro Hara.
Check for empty handles (indicating exception thrown) after calls
into V8 VM.
Added new case from Khronos typed array conformance tests to
fast/canvas/webgl/array-unit-tests.html.
* bindings/v8/custom/V8ArrayBufferViewCustom.h:
(WebCore::constructWebGLArray):
Check for empty handles after calls into V8 VM.
2013-01-11 Kentaro Hara <haraken@chromium.org>
[V8] Slightly optimize getWrapperFast()
https://bugs.webkit.org/show_bug.cgi?id=106667
Reviewed by Adam Barth.
This patch improves an if condition in getWrapperFast(),
as commented in DOMDataStore.h.
This patch improves performance of div.firstChild from
15.1 ns to 14.0 ns (+7.8%), although I couldn't observe
performance improvement in Dromaeo/dom-traverse.
No tests. No change in behavior.
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::getWrapperFast):
2013-01-11 Florin Malita <fmalita@chromium.org>
[SVG] Suppress resource rebuilding for unattached and shadow elements
https://bugs.webkit.org/show_bug.cgi?id=106664
Reviewed by Dirk Schulze.
SVGStyledElement::buildPendingResourcesIfNeeded() can be called while cloning a subtree
(as nodes are inserted into the clone, while still detached) or when elements are inserted
into the shadow tree. Both of these cases are problematic for SVGUseElement and can trigger
indirect recursion in SVGUseElement::buildPendingResource.
Since shadow and !inDocument() nodes are of no interest to ID dependents (they cannot be
found by ID in the document), the patch short-circuits buildPendingResource() for these
cases.
Test: svg/custom/use-rebuild-resources-crash.svg
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
2013-01-11 Dominic Mazzoni <dmazzoni@google.com>
AX: Computed hierarchical level is not consistent with aria-level
https://bugs.webkit.org/show_bug.cgi?id=106638
Reviewed by Chris Fleizach.
Make hierarchicalLevel computation 1-based to match the aria-level spec.
Extends an existing test: platform/mac/accessibility/aria-tree.html.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::hierarchicalLevel):
* accessibility/AccessibilityObject.h:
(AccessibilityObject):
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2013-01-11 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Workspace should support several projects and should not have temporary UISourceCodes.
https://bugs.webkit.org/show_bug.cgi?id=105856
Reviewed by Pavel Feldman.
Workspace now supports several projects with the networkProject being a main one.
Replaced temporary UISourceCodes with specific projects (debugger and liveedit).
The concept of workspace reset on navigation is now replaced with project reset concept instead.
Introduced snippets project (that is not reset on navigation).
Script mappings are now reset on GlobalObjectCleared event.
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager):
(WebInspector.BreakpointManager.prototype._innerSetBreakpoint):
(WebInspector.BreakpointManager.prototype._filteredBreakpointLocations):
(WebInspector.BreakpointManager.prototype.toggleAllBreakpoints):
(WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
(WebInspector.BreakpointManager.prototype._projectWillReset.get for):
(WebInspector.BreakpointManager.prototype._projectWillReset):
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSStyleModel):
(WebInspector.CSSStyleModel.prototype._inspectedURLChanged):
(WebInspector.CSSStyleModel.prototype._resetSourceMappings):
(WebInspector.CSSStyleModelResourceBinding):
(WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResourceURL):
(WebInspector.CSSStyleModelResourceBinding.prototype._reset):
* inspector/front-end/CompilerScriptMapping.js:
(WebInspector.CompilerScriptMapping):
(WebInspector.CompilerScriptMapping.prototype._debuggerReset):
* inspector/front-end/DebuggerScriptMapping.js:
* inspector/front-end/DefaultScriptMapping.js:
(WebInspector.DefaultScriptMapping):
(WebInspector.DefaultScriptMapping.prototype.addScript):
(WebInspector.DefaultScriptMapping.prototype._debuggerReset):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype._onGetPageResources):
* inspector/front-end/FilteredItemSelectionDialog.js:
(WebInspector.OpenResourceDialog.show):
* inspector/front-end/LiveEditSupport.js:
(WebInspector.LiveEditSupport):
(WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
(WebInspector.LiveEditSupport.prototype._debuggerReset):
* inspector/front-end/NetworkUISourceCodeProvider.js:
(WebInspector.NetworkUISourceCodeProvider):
(WebInspector.NetworkUISourceCodeProvider.prototype._mainFrameNavigated):
(WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
(WebInspector.NetworkUISourceCodeProvider.prototype._reset):
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping):
(WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
(WebInspector.ResourceScriptMapping.prototype._debuggerReset):
* inspector/front-end/RevisionHistoryView.js:
(WebInspector.RevisionHistoryView):
(WebInspector.RevisionHistoryView.prototype._projectWillReset):
* inspector/front-end/SASSSourceMapping.js:
(_bindUISourceCode):
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.ScriptSnippetModel):
(WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
(WebInspector.ScriptSnippetModel.prototype.reset):
* inspector/front-end/ScriptsNavigator.js:
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype._addUISourceCode):
(WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
(WebInspector.ScriptsPanel.prototype._removeUISourceCodes):
(WebInspector.ScriptsPanel.prototype._debuggerWasDisabled):
(WebInspector.ScriptsPanel.prototype._debuggerReset):
(WebInspector.ScriptsPanel.prototype._projectWillReset):
(WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
(WebInspector.ScriptsPanel.prototype._revealExecutionLine):
(WebInspector.ScriptsPanel.prototype.showGoToSourceDialog):
* inspector/front-end/SimpleWorkspaceProvider.js:
(WebInspector.SimpleWorkspaceProvider):
(WebInspector.SimpleWorkspaceProvider.prototype.addFile):
(WebInspector.SimpleWorkspaceProvider.prototype.addFileForURL):
(WebInspector.SimpleWorkspaceProvider.prototype.reset):
* inspector/front-end/StylesSourceMapping.js:
(WebInspector.StylesSourceMapping):
(WebInspector.StylesSourceMapping.prototype._projectWillReset):
* inspector/front-end/TabbedEditorContainer.js:
(WebInspector.TabbedEditorContainer.prototype.reset):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.project):
* inspector/front-end/Workspace.js:
(WebInspector.WorkspaceController):
(WebInspector.WorkspaceController.prototype._inspectedURLChanged):
(WebInspector.Project):
(WebInspector.Project.prototype.name):
(WebInspector.Project.prototype.isServiceProject):
(WebInspector.Project.prototype._reset):
(WebInspector.Workspace):
(WebInspector.Workspace.prototype.uiSourceCodeForURL):
(WebInspector.Workspace.prototype.uiSourceCodeForURI):
(WebInspector.Workspace.prototype.addProject):
(WebInspector.Workspace.prototype.project):
(WebInspector.Workspace.prototype.projects):
(WebInspector.Workspace.prototype.uiSourceCodes):
(WebInspector.Workspace.prototype.projectForUISourceCode):
(WebInspector.Workspace.prototype.requestFileContent):
(WebInspector.Workspace.prototype.setFileContent):
(WebInspector.Workspace.prototype.searchInFileContent):
* inspector/front-end/inspector.js:
* inspector/front-end/utilities.js:
2013-01-11 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Resources] Make grid columns set configurable.
https://bugs.webkit.org/show_bug.cgi?id=105739
Reviewed by Pavel Feldman.
Added context menu on grid header to hide/show grid columns.
Hidden columns set is persisted.
* inspector/front-end/DataGrid.js:
Fixed show/hide behavior, introduced weight control.
* inspector/front-end/NetworkPanel.js:
Added member to track visibility of columns in detailerd mode. Added
context menu for grid header.
2013-01-11 Andras Becsi <andras.becsi@digia.com>
[Qt] Fix the build if libxslt is not available but libxml2 is
https://bugs.webkit.org/show_bug.cgi?id=106661
Reviewed by Simon Hausmann.
On Linux building the xml parser sources fails if the needed libxslt
dependencies are not installed but libxml2 is.
* WebCore.pri: add libxml2 to pkg-config if not on mac.
2013-01-11 Stephen Chenney <schenney@chromium.org>
Objects can be re-added to the AXObjectCache during removal
https://bugs.webkit.org/show_bug.cgi?id=104171
The problem occurs when a label's corresponding element is a sibling
that precedes it in the render tree, and the corresponding element is
removed. The corresponding element's AX render object is removed, but
then recreated when accessibilityIsIgnored() invokes correspondingControl()
on the label. The corresponding renderer then has an AX render object
that survives beyond the deleted renderer, leading to invalid memory
accesses.
The solution is to rearrange the calls to delete the renderer's AX
render object only when we are sure it will no longer be required.
Reviewed by Simon Fraser.
Test: accessibility/corresponding-control-deleted-crash.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::willBeDestroyed): Move the call to remove the
renderer from the AXCache to after the renderer is removed from the
render tree. This means that the AXObject still exists during renderer
removal, as we require.
2013-01-11 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt][WK1] Web Audio support
https://bugs.webkit.org/show_bug.cgi?id=106651
Reviewed by Jocelyn Turcotte.
Convert JavaScript Uint8Array to QByteArray. This conversion is necessary to support testRunner.setAudioData().
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::isJSUint8Array):
(Bindings):
(JSC::Bindings::valueRealType):
(JSC::Bindings::convertValueToQVariant):
2013-01-11 Anton Vayvod <avayvod@chromium.org>
Text Autosizing - elements much narrower than its parent autosizing clusters should be autosized separately.
https://bugs.webkit.org/show_bug.cgi?id=105188
Reviewed by Kenneth Rohde Christiansen.
Some blocks of text might be narrower than their parent clusters and should be autosized separately.
This helps with autosizing for the pages implementing the sidebars as a narrow blocks of text with wide margins and
the main content being positioned atop this margin (or vice versa).
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::isContainerAutosizingCluster):
Returns true if the container is more than 200 pixels narrower than its parent cluster's lowest common
ancestor of all the text nodes.
2013-01-11 Andreas Kling <akling@apple.com>
Remove unused CSSSelector(QualifiedName) constructor.
<http://webkit.org/b/106652>
Reviewed by Antti Koivisto.
* css/CSSSelector.h:
(CSSSelector):
2013-01-11 Zan Dobersek <zandobersek@gmail.com>
[GTK] Disable the ENABLE_LEGACY_WEB_AUDIO feature define in release builds
https://bugs.webkit.org/show_bug.cgi?id=106577
Reviewed by Philippe Normand.
The Web Audio feature is not enabled in the release builds, so there's
no need to enable the legacy Web Audio API either.
No new tests - no new functionality.
* GNUmakefile.features.am.in:
2013-01-11 Antoine Quint <graouts@apple.com>
Web Inspector: Option+Click on Node Expander Doesn't Work the First Time
https://bugs.webkit.org/show_bug.cgi?id=66868
Up to now, the TreeElement.prototype.expandRecursively() method would correctly
expand children recursively based on the provided depth, but would not wait to
perform this task until all child nodes had been populated, which means that this
would only work incrementally with one additional level of child nodes being shown
expanded in the DOM tree upon alt+clicking a given node with a deep hierarchy.
In order to fix this, this patch adds a new optional argument to the DOMAgent's
requestChildNodes() methods to provide the depth at which we want to retrieve children
of a given node. The DOMAgent provides a new .getSubtree() method that calls
requestChildNodes() with the provided depth.
Then in ElementsTreeOutline, we subclass .expandRecursively() to first call DOMAgent's
new .getSubtree() method and then call the default implementation when all nodes
have been retrieved from the backend.
Reviewed by Pavel Feldman.
Tests: inspector-protocol/dom-request-child-nodes-depth.html
inspector/elements/expand-recursively.html
* inspector/Inspector.json: Add the new `depth` parameter to DOM.requestChildNodes().
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::pushChildNodesToFrontend): Add a new optional `depth` parameter
which defaults to 1.
(WebCore::InspectorDOMAgent::requestChildNodes): Add a new optional `depth` parameter
which defaults to 1 and allows -1 as an unbound value.
* inspector/InspectorDOMAgent.h:
(InspectorDOMAgent):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode.prototype.):
(WebInspector.DOMNode.prototype.getSubtree): New method allowing to specify at what depth
we want to retrieve children of a given node from the backend.
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype.expandRecursively): Override default implementation
to first obtain the deepest subtree for the current node so that deep expansion happens as expected.
2013-01-11 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Elements] Search in the DOM tree does not scroll horizontally
https://bugs.webkit.org/show_bug.cgi?id=106648
Reviewed by Vsevolod Vlasov.
Scroll into view the first match in every tree element, if needed.
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype._highlightCurrentSearchResult):
2013-01-11 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] a minor follow-up to r137262
https://bugs.webkit.org/show_bug.cgi?id=106644
Reviewed by Pavel Feldman.
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
2013-01-11 Kent Tamura <tkent@chromium.org>
BaseDateAndTimeInputType should not inherit from TextFieldInputType
https://bugs.webkit.org/show_bug.cgi?id=106306
Reviewed by Hajime Morita.
Date/time input types don't need text-field features at all.
No new tests. This should not make any behavior changes except reduction
of memory usage.
* html/BaseDateAndTimeInputType.h:
Inherit InputType instead of TextFieldInputType.
(WebCore::BaseDateAndTimeInputType::BaseDateAndTimeInputType):
(BaseDateAndTimeInputType): Update function declarations.
* html/BaseDateAndTimeInputType.cpp:
Remove handleKeydownEvent and convertFromVisibleValue, which are for
TextFieldInputType.
(WebCore::BaseDateAndTimeInputType::shouldRespectListAttribute):
Added. This is necessary for <datalist> support. TextFieldInputType has
the same code.
(WebCore::BaseDateAndTimeInputType::valueMissing):
Added. This is necessary for validity.valueMissing. TextFieldInputType
has the same code.
* html/BaseChooserOnlyDateAndTimeInputType.cpp:
Remove unnecessary functions which cancel TextFieldInputType behavior.
* html/BaseChooserOnlyDateAndTimeInputType.h:
(BaseChooserOnlyDateAndTimeInputType): Remove declarations for them.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
Remove unnecessary functions which cancel TextFieldInputType behavior.
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType):
Add SpinButtonOwner interface. We didn't need it because
TextFieldInputType implements it.
2013-01-11 Mary Wu <mary.wu@torchmobile.com.cn>
[BlackBerry] Enable concatenating headers with same field name
https://bugs.webkit.org/show_bug.cgi?id=106625
Reviewed by Rob Buis.
RFC 2616 specifies that headers could concatenate with comma if they have
same field name. We should enable this if the header allows multiple values.
RIM PR# 275508, internally reviewed by Joe Mason
(WebCore):
(WebCore::isAppendableHeader):
(WebCore::NetworkJob::handleNotifyHeaderReceived):
2013-01-11 Jochen Eisinger <jochen@chromium.org>
Connect UserGestureIndicator for mousedown and mouseup events
https://bugs.webkit.org/show_bug.cgi?id=105138
Reviewed by Adam Barth.
Ports that consume user gestures to prevent certain types of pop-ups
need to be able to connect mousedown and mouseup events, otherwise, a
single mouse click will allow for opening multiple pop-ups.
Note that a mousedown is not always followed by a mouseup and vice
versa, e.g. when the mousedown results in a context menu being shown, or
something is dragged into the page.
Test: platform/chromium/fast/events/popup-allowed-from-gesture-only-once-two-events.html
* page/EventHandler.cpp:
(WebCore::EventHandler::clear):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
* page/EventHandler.h:
2013-01-11 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Resources] "Delete" cookie deletes all cookies with matching name.
https://bugs.webkit.org/show_bug.cgi?id=105633
Reviewed by Pavel Feldman.
"Delete" cookie deletes all cookies with matching name,
ignoring domain and path.
* inspector/Inspector.json: Change argument "domain" to "url"
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::deleteCookie): Use url to delte cookies.
* inspector/InspectorPageAgent.h: Adopt new signature.
* inspector/front-end/CookieItemsView.js:
(WebInspector.CookieItemsView.prototype._deleteCookie): Ditto.
2013-01-11 KwangYong Choi <ky0.choi@samsung.com>
[EFL] Fix unused parameter build error
https://bugs.webkit.org/show_bug.cgi?id=106639
Reviewed by Kentaro Hara.
Use UNUSED_PARAM macro to fix build error.
No new tests, no behavior change.
* platform/efl/EflScreenUtilities.cpp:
(WebCore::isUsingEcoreX):
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::supportsDataListUI):
2013-01-11 Pavel Feldman <pfeldman@chromium.org>
Web Inspector [chromium]: Debugger.globalObjectCleared is not dispatched on reload after renderer swap
https://bugs.webkit.org/show_bug.cgi?id=106555
Reviewed by Vsevolod Vlasov.
Wrong ::enable was made virtual in the InspectorDebuggerAgent.
Test: inspector/debugger/debugger-scripts-reload.html
* inspector/InspectorDebuggerAgent.h:
(InspectorDebuggerAgent):
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::enable):
(WebCore::PageDebuggerAgent::disable):
* inspector/PageDebuggerAgent.h:
(PageDebuggerAgent):
2013-01-11 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Refactoring, move NetworkWorkspaceProvider to NetworkUISourceCodeProvider.js and rename its parent to SimpleWorkspaceProvider.
https://bugs.webkit.org/show_bug.cgi?id=106635
Reviewed by Pavel Feldman.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/DebuggerScriptMapping.js:
(WebInspector.DebuggerScriptMapping):
* inspector/front-end/DefaultScriptMapping.js:
(WebInspector.DefaultScriptMapping):
(WebInspector.DefaultScriptMapping.prototype.addScript):
(WebInspector.DebuggerWorkspaceProvider):
(WebInspector.DebuggerWorkspaceProvider.prototype.addDebuggerFile):
* inspector/front-end/LiveEditSupport.js:
(WebInspector.LiveEditSupport):
(WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
(WebInspector.LiveEditWorkspaceProvider):
(WebInspector.LiveEditWorkspaceProvider.prototype.addLiveEditFile):
* inspector/front-end/NetworkUISourceCodeProvider.js:
(WebInspector.NetworkWorkspaceProvider):
(WebInspector.NetworkWorkspaceProvider.prototype.addNetworkFile):
* inspector/front-end/SimpleWorkspaceProvider.js: Renamed from Source/WebCore/inspector/front-end/NetworkWorkspaceProvider.js.
(WebInspector.SimpleWorkspaceProvider):
(WebInspector.SimpleWorkspaceProvider.uriForURL):
(WebInspector.SimpleWorkspaceProvider.prototype.requestFileContent):
(WebInspector.SimpleWorkspaceProvider.prototype.setFileContent):
(WebInspector.SimpleWorkspaceProvider.prototype.searchInFileContent):
(WebInspector.SimpleWorkspaceProvider.prototype.addFile):
(WebInspector.SimpleWorkspaceProvider.prototype.removeFile):
(WebInspector.SimpleWorkspaceProvider.prototype.uniqueURI):
(WebInspector.SimpleWorkspaceProvider.prototype.reset):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
2013-01-10 Grzegorz Czajkowski <g.czajkowski@samsung.com>
On Linux, should be able to get spelling suggestions without selecting the misspelled word
https://bugs.webkit.org/show_bug.cgi?id=103520
Reviewed by Ryosuke Niwa.
Allow to get/insert spelling suggestions without selecting the misspelled word for
Linux WebKit ports. WebCore assumes that the misspelled word has to be selected
to get its suggestions.
In compliance with native application behaviour a new editing policy is introduced,
to do not highlight the misspelled word to just get its guesses.
No new tests, covered by context-menu-suggestions.html.
* WebCore.exp.in:
Remove _ZN7WebCore6Editor21isSelectionMisspelledEv symbol as Mac port doesn't
need it any longer.
* editing/EditingBehavior.h:
(EditingBehavior):
(WebCore::EditingBehavior::shouldAllowSpellingSuggestionsWithoutSelection):
Add a new behavior for Linux, to allow spelling suggestions without selecting
the misspelled word.
* editing/Editor.cpp:
(WebCore::Editor::isContinuousSpellCheckingEnabled):
Add missing const modifier, to use this method in 'misspelledWordAtCaretOrRange() const'.
(WebCore::Editor::misspelledWordAtCaretOrRange):
Allow to check spelling under the caret or selected word.
Does nothing for selection made on the multiple words.
(WebCore::Editor::misspelledSelectionString):
Return the misspelled selection.
(WebCore::Editor::guessesForMisspelledWord):
Remove 'Selection' from method name as it may return guesses without selection.
(WebCore::Editor::guessesForMisspelledOrUngrammatical):
Ditto.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
Select the word under caret to meet the conditions from misspelledWordAtCaretOrRange.
(WebCore::ContextMenuController::populate):
Update guessesForMisspelledOrUngrammatical call.
2013-01-10 Hajime Morrita <morrita@google.com>
https://bugs.webkit.org/show_bug.cgi?id=106283
[Shadow DOM] HTMLContentElement and HTMLShadowElement should be behind SHADOW_DOM
Reviewed by Kentaro Hara.
No new tests. Covered by existing tests.
This change moves <content> and <shadow> behind
ENABLE(SHADOW_DOM). Note that empty stub definitions are remaining
even after this change. They are for minimizing #if/#endif usage
and won't hurt code size.
* WebCore.exp.in:
* html/InputType.cpp:
(WebCore::InputType::destroyShadowSubtree):
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::distribute):
* html/shadow/HTMLContentElement.cpp:
(WebCore):
(WebCore::HTMLContentElement::create):
(WebCore::HTMLContentElement::HTMLContentElement):
* html/shadow/HTMLContentElement.h:
(WebCore):
(HTMLContentElement):
* html/shadow/HTMLShadowElement.cpp:
* html/shadow/HTMLShadowElement.h:
(WebCore):
(WebCore::isHTMLShadowElement):
(WebCore::toHTMLShadowElement):
* html/shadow/TextFieldDecorationElement.cpp:
(WebCore::TextFieldDecorationElement::decorate):
* testing/Internals.cpp:
(WebCore::Internals::createContentElement):
(WebCore::Internals::isValidContentSelect):
2013-01-10 Takashi Sakamoto <tasak@google.com>
Implement CSSGroupingRule for @host @-rules and @supports.
https://bugs.webkit.org/show_bug.cgi?id=106418
Reviewed by Antti Koivisto.
CSSGroupingRule is to share code between CSSMediaRule, CSSSupportsRule
and CSSHostRule. @supports and @host @-rules are dervied from
CSSGroupingRule:
http://www.w3.org/TR/2012/WD-css3-conditional/#the-cssgroupingrule-interface
https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#css-host-rule-interface
Since @media is also derived from CSSGroupingRule and @region has the
same interface as CSSGroupingRule, modify to use CSSGroupingRule:
http://dev.w3.org/csswg/css3-regions/#the-at-region-style-rule
No new tests, because no new feature is implemented.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Added CSSGroupingRule.h and CSSGroupingRule.cpp.
* css/CSSAllInOne.cpp:
Modified to include CSSGroupingRule.cpp.
* css/CSSGroupingRule.cpp: Added.
(WebCore):
(WebCore::CSSGroupingRule::CSSGroupingRule):
(WebCore::CSSGroupingRule::~CSSGroupingRule):
(WebCore::CSSGroupingRule::insertRule):
(WebCore::CSSGroupingRule::deleteRule):
(WebCore::CSSGroupingRule::appendCssTextForItems):
(WebCore::CSSGroupingRule::length):
(WebCore::CSSGroupingRule::item):
(WebCore::CSSGroupingRule::cssRules):
(WebCore::CSSGroupingRule::reattach):
(WebCore::CSSGroupingRule::reportMemoryUsage):
These codes are moved from CSSMediaRule and WebKitCSSRegionRule.
* css/CSSGroupingRule.h:
(WebCore):
(CSSGroupingRule):
* css/CSSMediaRule.cpp:
(WebCore::CSSMediaRule::CSSMediaRule):
(WebCore::CSSMediaRule::~CSSMediaRule):
Make CSSMediaRule inherit CSSGroupingRule.
(WebCore::CSSMediaRule::media):
(WebCore::CSSMediaRule::reattach):
Keep the code for updating media queries' CSSOMWrapper.
(WebCore::CSSMediaRule::reportMemoryUsage):
We need to report media queries' CSSOMWrapper memory usage.
(WebCore::CSSMediaRule::mediaQueries):
(WebCore::CSSMediaRule::cssText):
* css/CSSMediaRule.h:
* css/WebKitCSSRegionRule.cpp:
Make WebKitCSSRegionRule inherit CSSGroupingRule.
(WebCore::WebKitCSSRegionRule::WebKitCSSRegionRule):
(WebCore::WebKitCSSRegionRule::cssText):
* css/WebKitCSSRegionRule.h:
* css/StyleRule.h:
Added inlined accessor to obtain StyleRuleMedia* and StyleRuleRegion*
from StyleRuleBlock*.
2012-12-28 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] add an option to reload the page if there is an uninstrumented canvas
https://bugs.webkit.org/show_bug.cgi?id=105822
Reviewed by Pavel Feldman.
Show in the front-end an option to reload the page if there is an uninstrumented canvas.
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileType):
(WebInspector.CanvasProfileType.prototype.decorationElement):
(WebInspector.CanvasProfileType.prototype._updateDecorationElement):
(WebInspector.CanvasProfileType.prototype._onReloadPageButtonClick):
* inspector/front-end/ProfileLauncherView.js:
(WebInspector.ProfileLauncherView.prototype.addProfileType):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfileType.prototype.decorationElement):
2013-01-10 Dimitri Glazkov <dglazkov@chromium.org>
The word "selector" is somewhat redundant redundantly used in SelectorChecker.
https://bugs.webkit.org/show_bug.cgi?id=106413
In https://bugs.webkit.org/show_bug.cgi?id=105864, Antti suggested reducing some of the redundant uses of the word
"selector" in SelectorChecker. Here's a start.
Reviewed by Antti Koivisto.
Simple renames, no change in behavior.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::match): Renamed.
(WebCore):
(WebCore::SelectorChecker::fastCheck): Ditto,
(WebCore::SelectorChecker::checkOne): Ditto.
* css/SelectorChecker.h:
(SelectorChecker):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRulesForList): Changed to use new name.
(WebCore::StyleResolver::ruleMatches): Renamed from checkSelector to better match argument and return value.
(WebCore::StyleResolver::checkRegionSelector): Changed to use new names.
* css/StyleResolver.h:
(StyleResolver):
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::matches): Ditto.
(WebCore::SelectorDataList::execute): Ditto.
* html/shadow/ContentSelectorQuery.cpp:
(WebCore::ContentSelectorChecker::checkContentSelector): Ditto.
2013-01-10 John J. Barton <johnjbarton@chromium.org>
Web Inspector: Pass the script url to the script-preprocessor script
https://bugs.webkit.org/show_bug.cgi?id=104384
Reviewed by Pavel Feldman.
Add url argument to the script-preprocessor script in PageAgent.reload()
Test: inspector/debugger/debugger-script-preprocessor.html
* bindings/v8/DebuggerScript.js:
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::ScriptPreprocessor::ScriptPreprocessor):
(WebCore::ScriptDebugServer::ScriptPreprocessor::preprocessSourceCode):
(WebCore::ScriptDebugServer::handleV8DebugEvent):
* bindings/v8/custom/V8InjectedScriptManager.cpp:
(WebCore::InjectedScriptManager::createInjectedScript):
2013-01-10 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: DataGrid refactoring: make cell editing more generic.
https://bugs.webkit.org/show_bug.cgi?id=105849
Reviewed by Pavel Feldman.
Editing feature has been added to DataGrid to edit localStorage.
Column numbers (0 and 1) are hardcoded.
This patch makes column editing feature more generic: remove hardcoded
colums, take "editable" column property into account.
This patch is a prerequisite for cookie editing.
* inspector/front-end/DOMStorageItemsView.js:
Use meaningful column names.
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid.prototype._ondblclick): Check column editability.
(WebInspector.DataGrid.prototype._contextMenuInDataTable): Ditto.
(WebInspector.DataGridNode.prototype.createCell):
Supply cell element with column id.
(WebInspector.DataGrid.prototype.columnIdentifierFromNode):
Added utility method.
(WebInspector.DataGrid.prototype._nextEditableColumn): Ditto.
(WebInspector.DataGrid.prototype._keyDown): Calculate editable column.
(WebInspector.DataGrid.prototype._editingCommitted): Ditto.
(WebInspector.DataGrid.prototype._startEditing): Ditto.
(WebInspector.DataGrid.prototype._startEditingColumnOfDataGridNode):
Refined parameter type / name.
(WebInspector.DataGrid.prototype._resizerDragging):
Fix resizer index property names.
(WebInspector.DataGrid.prototype._startResizerDragging): Ditto.
(WebInspector.DataGrid.prototype._positionResizers): Ditto.
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._updateDividersIfNeeded): Ditto.
2013-01-10 Matt Falkenhagen <falken@chromium.org>
Elements must be reattached when inserted/removed from top layer
https://bugs.webkit.org/show_bug.cgi?id=105489
Reviewed by Julien Chaffraix.
Ensure a reattach occurs when an element is inserted/removed from top layer, so its renderer can be inserted correctly:
as a child of RenderView in top layer sibling order if it's in the top layer, and in the usual place otherwise.
We previously relied on style recalc to catch when an element is inserted/removed from the top layer, because it
only happens on dialog.show/close which toggle display: none. But that is incorrect because, for example, close()
followed immediately by show() results in no style change.
Tests: fast/dom/HTMLDialogElement/removed-element-is-removed-from-top-layer.html
fast/dom/HTMLDialogElement/top-layer-stacking-correct-order-remove-readd.html
* dom/Element.cpp:
(WebCore::Element::removedFrom): Call Document::removeFromTopLayer to let the element be removed from the top layer vector.
removeFromTopLayer calls Element::setIsInTopLayer(false) itself if needed.
(WebCore::Element::setIsInTopLayer): Ensure a reattach occurs if the element is already attached.
2013-01-10 Shinya Kawanaka <shinyak@chromium.org>
When a selected node in nested ShadowDOM is deleted, selection have wrong range.
https://bugs.webkit.org/show_bug.cgi?id=106526
Reviewed by Ryosuke Niwa.
Since FrameSelection and htmlediting did not consider nested Shadow DOM, the FrameSelection still selects
removed elements if selected nodes in nested Shadow DOM are removed.
We have to use containsIncludingShadowDOM to handle with nested Shadow DOM correctly.
Test: fast/dom/shadow/selection-in-nested-shadow.html
* editing/FrameSelection.cpp:
(WebCore::removingNodeRemovesPosition):
* editing/htmlediting.cpp:
(WebCore::updatePositionForNodeRemoval):
2013-01-10 Hajime Morrita <morrita@google.com>
[Shadow DOM] Refactoring: InsertionPoint could simplify its subclass hooks
https://bugs.webkit.org/show_bug.cgi?id=106614
Reviewed by Dimitri Glazkov.
This change simplifies InsertionPoint overrides and give some flexibility to it.
The change
- Removes InsertionPoint::isSelectValid(). now ContentSelectorQuery parses given selector anyway.
Invalid select attribute is handled by newly introduced matchTypeFor() method.
- Introduces InsertionPoint::matchTypeFor() to give a chance each InsertionPoint to decide whether it
accepts the given node as its distribution. Then it lets DetailsSummaryElement adopt it.
- Pulls some HTMLShadowElement overrides up to InsertionPoint so that other upcoming InsertionPoint
subclasses don't need to override them.
No new tests. Refactoring.
* html/HTMLDetailsElement.cpp:
(WebCore::DetailsSummaryElement::DetailsSummaryElement):
- Implemented matchTypeFor() to get rid of HTMLContentElement machinery which is compiled out in the upcoming change.
(DetailsSummaryElement):
* html/shadow/ContentSelectorQuery.cpp:
(WebCore::ContentSelectorQuery::ContentSelectorQuery):
(WebCore::ContentSelectorQuery::matches):
* html/shadow/HTMLContentElement.cpp:
(WebCore::HTMLContentElement::matchTypeFor): Added.
(WebCore):
* html/shadow/HTMLContentElement.h:
(HTMLContentElement):
(WebCore::isHTMLContentElement):
* html/shadow/HTMLShadowElement.cpp:
* html/shadow/HTMLShadowElement.h:
(HTMLShadowElement):
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::emptySelectorList): Moved from HTMLShadowElement.
(WebCore):
* html/shadow/InsertionPoint.h:
(WebCore::InsertionPoint::matchTypeFor): Added.
(WebCore::InsertionPoint::selectorList): Moved from HTMLShadowElement.
(InsertionPoint):
* testing/Internals.cpp:
(WebCore::Internals::isValidContentSelect):
2013-01-10 Dean Jackson <dino@apple.com>
Plugin snapshot label should take device resolution and inset into account
https://bugs.webkit.org/show_bug.cgi?id=106619
Reviewed by Simon Fraser.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::paintLabel): Take into account the inset in the label image.
(WebCore::RenderSnapshottedPlugIn::tryToFitStartLabel): Look at the page's device scale, and adjust the label image accordingly.
2013-01-10 James Robinson <jamesr@chromium.org>
[chromium] Store scrollable layer's contents size for coordinated scrollable layers
https://bugs.webkit.org/show_bug.cgi?id=106518
Reviewed by Adrienne Walker.
This stores a scrollable layer's contentsSize in the scroll layer's bounds, which is otherwise not useful. This
value is currently calculated based on fragile knowledge of the tree structure immediately beneath a scrollable
layer.
* page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
(WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
2013-01-10 Dan Beam <dbeam@chromium.org>
Implement AutocompleteErrorEvent#reason
https://bugs.webkit.org/show_bug.cgi?id=105568
Reviewed by Adam Barth.
Test: fast/events/constructors/autocomplete-error-event-constructor.html
* WebCore.gypi: Added AutocompleteErrorEvent.idl and AutocompleteErrorEvent.h for chromium port's build.
* dom/AutocompleteErrorEvent.h: Added.
(WebCore): Added new type of error named AutocompleteErrorEvent.
(AutocompleteErrorEventInit): Added init params for AutocompleteErrorEvents (so initEvent() can be used).
(AutocompleteErrorEvent): Added a new error event that inherits from Event but also has a reason for failure.
(WebCore::AutocompleteErrorEvent::create): Factory function to create AutocompleteErrorEvents.
(WebCore::AutocompleteErrorEvent::reason): The reason why a requestAutocomplete() invocation failed. Can be
"disabled", "cancel", or "invalid".
(WebCore::AutocompleteErrorEvent::interfaceName): The name of the event's interface (for event.toString()).
(WebCore::AutocompleteErrorEvent::AutocompleteErrorEvent): Various ways of constructing the error event.
* dom/AutocompleteErrorEvent.idl: Added.
* dom/EventNames.in: Added AutocompleteError to this list, based on REQUEST_AUTOCOMPLETE conditional.
* html/HTMLFormElement.cpp: Updated form elements to dispatch AutocompleteErrorEvents on errors and to give
more details (event.reason) when the request fails.
(WebCore::HTMLFormElement::requestAutocomplete): Changed to newly added failure type "disabled".
(WebCore::HTMLFormElement::finishRequestAutocomplete): Changed
* html/HTMLFormElement.h: Added new results (ErrorDisabled, ErrorCancel, ErrorInvalid).
* page/DOMWindow.idl: Added global event constructor for new AutocompleteErrorEvent() style event creation.
2013-01-10 Yong Li <yoli@rim.com>
HTMLMediaElement::resume() should schedule a load rather than load immediately
https://bugs.webkit.org/show_bug.cgi?id=106587
Reviewed by Eric Carlson.
It is not always safe to start the jobs at the time resume() is called. That is why the jobs are
suspended. It can also be suspended again right after being resumed.
No new tests as there is no visible functional change, also it is a theoretically good-to-have change
that doesn't fix any known cross-platform issue.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::resume): Replace load() with scheduleLoad().
2013-01-10 Adam Barth <abarth@webkit.org>
Add an ENABLE macro and a WebCore::Setting for the threaded parser
https://bugs.webkit.org/show_bug.cgi?id=106595
Reviewed by Benjamin Poulain.
This patch adds both a WebCore::Setting and an ENABLE macro for the
threaded parser. We plan to keep the ENABLE macro off by default for a
while. The runtime setting will let us more easily conduct A/B
experiments when the time arises.
* page/Settings.in:
2013-01-10 Xianzhu Wang <wangxianzhu@chromium.org>
Regression(r129944): Heap-use-after-free in WebCore::computeNonFastScrollableRegion
https://bugs.webkit.org/show_bug.cgi?id=99515
Reviewed by Simon Fraser.
The object used-after-freed is a destructed FrameView that is still in the m_scrollableAreas set of the parent FrameView. Actually it has been removed from m_scrollableAreas when setParent(0), but then is added back in updateScrollableAreaSet() because its frameViewParent() is still not 0 (though parent() is already 0).
No new tests. The heap-use-after-free doesn't always cause crash so it can't be stably tested with a test case. Memory analysis tools like asan discovered the heap-use-after-free and verified that the patch can fix the issue.
* page/FrameView.cpp:
(WebCore::FrameView::parentFrameView): Checks if the FrameView has been removed from the parent.
2013-01-10 John Mellor <johnme@chromium.org>
Fix scale of screen.width, window.outerWidth and @media device-width when page scale not applied in compositor.
https://bugs.webkit.org/show_bug.cgi?id=106460
Reviewed by Kenneth Rohde Christiansen.
screen.width, window.outerWidth and @media device-width should be in
density independent (UI) pixels, not physical screen pixels.
This already works on most ports (including iOS). However Chrome for
Android currently internally sizes its windows in physical screen pixels
instead of density independent pixels, and this leaks through in the
sizes provided to WebCore.
This patch scales these sizes appropriately before they reach JavaScript,
on platforms where the applyPageScaleFactorInCompositor setting is false
(i.e. just Chrome for Android). Once Chrome for Android switches over to
the same coordinate space, the applyPageScaleFactorInCompositor setting
will be removed, along with any code (such as this) that depends on it.
The effect of this patch on Chrome for Android when viewing a page with
a width=device-width viewport on a Galaxy Nexus (720x1280 @ dPR 2) is:
@media device-width changes from 720 to 360
screen.width changes from 720 to 360
screen.availWidth changes from 720 to 360
window.outerWidth changes from 720 to 360
window.innerWidth remains 360 (at overview zoom)
@media width remains 360
document.documentElement.clientWidth remains 360
document.documentElement.offsetWidth remains 360
document.documentElement.scrollWidth remains 360
document.body.clientWidth remains 360
document.body.offsetWidth remains 360
document.body.scrollWidth remains 360
And similarly for heights (though they are slightly less than 640, since
toolbars etc. get subtracted from the available height).
No new tests, as applyDeviceScaleFactorInCompositor appears to always be
true in DumpRenderTree, so this situation cannot occur there.
* page/Settings.in:
Added applyDeviceScaleFactorInCompositor setting, which allows
detecting whether we need to normalize the scale.
* platform/chromium/PlatformScreenChromium.cpp:
(WebCore::toUserSpace):
Static function for normalizing screen rect scale.
(WebCore::screenRect):
Uses toUserSpace.
(WebCore::screenAvailableRect):
Uses toUserSpace.
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::processSubtree):
Use applyDeviceScaleFactorInCompositor instead of
applyPageScaleFactorInCompositor, to scale the window rect correctly
on platforms other than Chrome for Android.
2013-01-10 Florin Malita <fmalita@chromium.org>
Rename GraphicsContext::addRoundedRectClip
https://bugs.webkit.org/show_bug.cgi?id=106581
Reviewed by Simon Fraser.
This patch renames GraphicsContext::addRoundedRectClip to clipRoundedRect for consistency
with the other GC clipping methods.
No new tests: no functional changes.
* WebCore.order:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::clipRoundedRect):
* platform/graphics/GraphicsContext.h:
(GraphicsContext):
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::clipRoundedRect):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintBoxDecorations):
(WebCore::RenderBox::pushContentsClip):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::clipRoundedInnerRect):
(WebCore::RenderBoxModelObject::paintBorder):
(WebCore::RenderBoxModelObject::drawBoxSideFromPath):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::clipToRect):
* rendering/RenderThemeChromiumWin.cpp:
(WebCore):
(WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
* rendering/RenderThemeMacShared.mm:
(WebCore::RenderThemeMacShared::paintMenuListButtonGradients):
(WebCore::RenderThemeMacShared::paintSliderTrack):
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderThemeSafari::paintMenuListButtonGradients):
(WebCore::RenderThemeSafari::paintSliderTrack):
* rendering/RenderThemeWinCE.cpp:
(WebCore::RenderThemeWinCE::paintSearchFieldCancelButton):
2013-01-10 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Adding the new id attribute to MediaStream and MediaStreamTrack
https://bugs.webkit.org/show_bug.cgi?id=106564
Reviewed by Adam Barth.
Specification: http://dev.w3.org/2011/webrtc/editor/getusermedia.html
MediaStream looses its label attribute and instead gets an id attribute.
MediaStreamTrack gets an id attribute.
Not testable yet, will add tests in a followup patch.
* Modules/mediastream/MediaStream.h:
(WebCore::MediaStream::label):
(MediaStream):
(WebCore::MediaStream::id):
* Modules/mediastream/MediaStream.idl:
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::id):
(WebCore):
* Modules/mediastream/MediaStreamTrack.h:
* Modules/mediastream/MediaStreamTrack.idl:
* platform/chromium/support/WebMediaStreamComponent.cpp:
(WebKit::WebMediaStreamComponent::initialize):
(WebKit):
(WebKit::WebMediaStreamComponent::isEnabled):
(WebKit::WebMediaStreamComponent::id):
(WebKit::WebMediaStreamComponent::source):
* platform/chromium/support/WebMediaStreamDescriptor.cpp:
(WebKit::WebMediaStreamDescriptor::label):
(WebKit):
(WebKit::WebMediaStreamDescriptor::id):
* platform/mediastream/MediaStreamComponent.h:
(WebCore::MediaStreamComponent::id):
(WebCore::MediaStreamComponent::MediaStreamComponent):
(MediaStreamComponent):
* platform/mediastream/MediaStreamDescriptor.h:
(WebCore::MediaStreamDescriptor::create):
(WebCore::MediaStreamDescriptor::id):
(WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
(MediaStreamDescriptor):
2013-01-10 Ojan Vafai <ojan@chromium.org>
Flexboxes incorrectly add the scrollbar width to the intrinsic width of fixed-width items
https://bugs.webkit.org/show_bug.cgi?id=106591
Reviewed by Levi Weintraub.
The scrollbar width should only be added if the width of the flex item
is not fixed.
Test: fast/css/fixed-width-intrinsic-width-excludes-scrollbars.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computePreferredLogicalWidths):
Use shared helper method. This also happens to fix the vertical
writing-mode case.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::instrinsicScrollbarLogicalWidth):
(WebCore):
* rendering/RenderBox.h:
(RenderBox):
Add a method for determining the scrollbar's contribution to the boxes
intrinsic width.
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::computePreferredLogicalWidths):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
Use shared code for determining the scrollbar width and only add the
width when computing the intrinsic widths.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computePreferredLogicalWidths):\
Just adding a FIXME to account for scrollbar width.
2013-01-10 Nate Chapin <japhet@chromium.org>
Replace unnecessary null-checks with an assert in MainResourceLoader::continueAfterNavigationPolicy.
https://bugs.webkit.org/show_bug.cgi?id=106476
Reviewed by Alexey Proskuryakov.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::continueAfterNavigationPolicy): Null-checks for resourceLoader were
added in an abundance of caution in r139150. Given that we know the load hasn't been cancelled,
resourceLoader can only be null if continueAfterNavigationPolicy() has already been called
before when m_substituteData is valid. continueAfterNavigationPolicy() is only called for redirects,
and SubstituteData doesn't support redirects, so it is correct to assert that resourceLoader is non-null.
2013-01-10 Levi Weintraub <leviw@chromium.org>
ScrollingCoordinator touch event hit rects aren't converted to proper coordinates when in nested views
https://bugs.webkit.org/show_bug.cgi?id=106383
Reviewed by James Robinson.
ScrollingCoordinator uses clippedOverflowRectForRepaint(0) to generate the bounds for a renderer's hit
testing rect. The rect this returns is in the coordinates of its document. This change converts the
rect to the outermost view's coordinate system using convertToContainingView.
Tests: platform/chromium/fast/events/touch/touch-hit-rects-in-iframe.html
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::accumulateRendererTouchEventTargetRects):
2013-01-10 Levi Weintraub <leviw@chromium.org>
Regression(r137939): Heap-use-after-free in WebCore::accumulateDocumentEventTargetRects
https://bugs.webkit.org/show_bug.cgi?id=106454
Reviewed by James Robinson.
Correctly removing child Documents from their parent's tracked touch handler maps when detaching and
when their last touch event handler is removed.
Test: fast/events/touch/nested-document-with-touch-handler-detached-crash.html
* dom/Document.cpp:
(WebCore::Document::detach):
(WebCore::Document::didRemoveEventTargetNode):
2013-01-10 Nate Chapin <japhet@chromium.org>
REGRESSION(r138222): WebDocumentLoaderMac-related leaks seen on Leaks bot
https://bugs.webkit.org/show_bug.cgi?id=106137
Reviewed by Brady Eidson.
Tested manually by comparing before and after leaks output for WK1-mac.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::receivedError): Call dispatchDidFailLoading() if
a SubstituteData load fails or is cancelled. Without this call, load counts
are not balanced on WebDocumentLoaderMac and it is retained forever.
(WebCore::MainResourceLoader::didFinishLoading):
2013-01-10 Robert Kroeger <rjkroege@chromium.org>
Manually revert http://trac.webkit.org/changeset/136012
https://bugs.webkit.org/show_bug.cgi?id=106580
Reviewed by Dimitri Glazkov.
136012 broke touch-scrolling of an overflow div in an iframe. Revert manually
to work around conflicts.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
2013-01-10 Robert Hogan <robert@webkit.org>
REGRESSION(r136967): margin-top + overflow:hidden causes incorrect layout for internal floated elements
https://bugs.webkit.org/show_bug.cgi?id=106374
Reviewed by David Hyatt.
r136397 treated any self-collapsing block that had a clearance delta as though it was clearing a float, but
blocks that avoid floats can get a clearance delta too. So just ensure there is clearance on the block when deciding
whether we need to add the margin back in before placing the float.
Test: fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden-and-float-child.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
2013-01-10 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Color picker in Styles pane shows wrong initial color
https://bugs.webkit.org/show_bug.cgi?id=106567
Reviewed by Pavel Feldman.
The RGB's G value for "crimson" was wrong.
* inspector/front-end/Color.js:
2013-01-10 Tony Chang <tony@chromium.org>
Speed up supplemental dependency computation
https://bugs.webkit.org/show_bug.cgi?id=106503
Reviewed by Adam Barth.
On my machine, generating supplemental IDL dependencies was taking about 18s
because it has to run the C preprocessor on each IDL file. Avoid this by using
a regular expression to find the Supplemental= value in each IDL file rather than
doing a full parse. Now generating supplemental IDL dependencies is less than a
second.
preprocess-idls.pl used to also check IDL attributes against IDLAttributes.txt.
Move this code to run in generate-bindings.pl. This change revealed that
TestRunner.idl uses PassContext so add that to IDLAttributes.txt.
No new tests, this is a build refactor. EWS bots should be green.
* DerivedSources.make: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
* DerivedSources.pri: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
* GNUmakefile.am: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
* UseJSC.cmake: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
* UseV8.cmake: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
* WebCore.gyp/WebCore.gyp: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
* bindings/scripts/IDLAttributes.txt: Add PassContext needed by TestRunner.idl.
* bindings/scripts/generate-bindings.pl:
(loadIDLAttributes): Moved from preprocess-idls.pl.
(checkIDLAttributes): Moved from preprocess-idls.pl.
(checkIfIDLAttributesExists): Moved from preprocess-idls.pl.
* bindings/scripts/preprocess-idls.pl:
(getSupplementalFromIDLFile): Helper method to get Supplemental=* quickly.
2013-01-10 Max Vujovic <mvujovic@adobe.com>
[CSS Filters] RenderLayerCompositor::addToOverlapMap should take into account the filters outsets (ie. blur and drop-shadow)
https://bugs.webkit.org/show_bug.cgi?id=94022
Reviewed by Simon Fraser.
When a layer has a filter that moves pixels, we need to add its entire bounds, including its
outsets and children, to the overlap map. The filter can move the children's pixels
anywhere in the layer, so we can't rely on the children's bounds.
Eventually, we should avoid adding children to the overlap map if the parent's bounds used
for overlap testing already include the children. I've added a FIXME for this optimization.
Tests: compositing/filters/sw-layer-overlaps-hw-shadow.html
compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow.html
compositing/filters/sw-shadow-overlaps-hw-layer.html
compositing/filters/sw-shadow-overlaps-hw-shadow.html
* rendering/RenderLayer.h:
(WebCore::RenderLayer::overlapBounds):
If necessary, return the calculated layer bounds, including the children. Otherwise,
return the localBoundingBox.
(RenderLayer):
(WebCore::RenderLayer::overlapBoundsIncludeChildren):
If the layer has a filter that moves pixels, return true.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::addToOverlapMap):
Add the overlapBounds instead of the localBoundingBox to the overlap map.
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
Use the overlapBounds instead of the localBoundingBox for overlap testing.
2013-01-09 Ojan Vafai <ojan@chromium.org>
intrinsic min-widths don't override width for file upload controls
https://bugs.webkit.org/show_bug.cgi?id=106517
Reviewed by Tony Chang.
Separate out computing intrinsic width from perferred width so that
we can use the intrinsic width correctly when applying min-width/max-width.
The preferred width is the width used in its container's computation
of its intrinsic width.
This is the first in a series of patches making this work across
the render tree.
Test: fast/forms/file/intrinsic-min-width-overrides-width.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::minIntrinsicLogicalWidth):
(WebCore):
(WebCore::RenderBox::maxIntrinsicLogicalWidth):
(WebCore::RenderBox::computeIntrinsicLogicalWidths):
(WebCore::RenderBox::computeLogicalWidthInRegionUsing):
* rendering/RenderBox.h:
(RenderBox):
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::computeIntrinsicLogicalWidths):
(WebCore):
(WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
* rendering/RenderFileUploadControl.h:
(RenderFileUploadControl):
2013-01-10 Victor Carbune <victor@rosedu.org>
media/video-controls-captions.html fails after fixing https://bugs.webkit.org/show_bug.cgi?id=105536
https://bugs.webkit.org/show_bug.cgi?id=106230
Reviewed by Eric Carlson.
Until Chromium has proper controls for lists of text tracks, the caption button
needs to preserve its functionality.
Updated TestExpectations to reactivate test.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setClosedCaptionsVisible): Added explicit call to updateTextTrackDisplay.
This enables hiding the tracks immediately.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Added extra check before rendering
that captions should actually be displayed.
2013-01-10 Hajime Morrita <morrita@google.com>
ComposedShadowTreeWalker shouldn't be exposed to non-ShadowDOM classes
https://bugs.webkit.org/show_bug.cgi?id=106505
Reviewed by Dimitri Glazkov.
This change hides ComposedShadowTreeWalker from non-ShadowDOM classes by
- introducing thin wrapper functions on NodeRenderingTraversal and relacing
CSTW callsites with it,
- replacing ComposedShadowTreeWalker usage with AncestorChainWalker if possible and
- moving AncestorChainWalker to its own file and including it on files
which needs only AncestorChainWalker. This eliminates ComposedShadowTreeWalker.h inclusions.
No new tests. No behavior change.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* dom/AncestorChainWalker.cpp: Added. Extracted from ComposedShadowTreeWalker.cpp
(WebCore):
(WebCore::AncestorChainWalker::AncestorChainWalker):
(WebCore::AncestorChainWalker::parent):
* dom/AncestorChainWalker.h: Added. Extracted from ComposedShadowTreeWalker.h
(WebCore):
(AncestorChainWalker):
(WebCore::AncestorChainWalker::get):
(WebCore::AncestorChainWalker::crossingInsertionPoint):
* dom/ComposedShadowTreeWalker.cpp:
* dom/ComposedShadowTreeWalker.h:
* dom/DOMAllInOne.cpp:
* dom/ElementShadow.h:
(WebCore::shadowOfParent):
(WebCore):
* dom/EventDispatcher.cpp:
* dom/Node.cpp:
* dom/NodeRenderingTraversal.cpp:
(WebCore::NodeRenderingTraversal::nextInScope):
(NodeRenderingTraversal):
(WebCore::NodeRenderingTraversal::previousInScope): Added.
(WebCore::NodeRenderingTraversal::parentInScope): Added.
(WebCore::NodeRenderingTraversal::lastChildInScope): Added.
* dom/NodeRenderingTraversal.h:
(NodeRenderingTraversal):
* dom/TreeScope.cpp:
* html/HTMLLIElement.cpp:
(WebCore::HTMLLIElement::attach):
* page/EventHandler.cpp:
* page/FocusController.cpp: Replacing CSTW with NRT
(WebCore):
(WebCore::FocusNavigationScope::focusNavigationScopeOf):
(WebCore::FocusController::findNodeWithExactTabIndex):
(WebCore::nextNodeWithGreaterTabIndex):
(WebCore::previousNodeWithLowerTabIndex):
(WebCore::FocusController::nextFocusableNode):
(WebCore::FocusController::previousFocusableNode):
2013-01-10 Zan Dobersek <zandobersek@gmail.com>
Remove the ENABLE_ANIMATION_API feature define occurences
https://bugs.webkit.org/show_bug.cgi?id=106544
Reviewed by Simon Fraser.
The Animation API code was removed in r137243. The ENABLE_ANIMATION_API
feature define handling still lingers in various build systems and configurations
but is of no use, so it should be removed.
No new tests - no new functionality.
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.features.am.in:
2013-01-10 Robert Phillips <robertphillips@chromium.org>
Serialization of Gradients fails when PlatformContextSkia is not bitmap backed
https://bugs.webkit.org/show_bug.cgi?id=106559
Reviewed by Stephen White.
This patch switches over from having platform/Skia improperly
crack open the device to find the bitmap configuration to just
specifying it directly.
No new tests. This bug is Chromium specific and only occurs in a
debugging tool (when serializing to a Skia-specific file format).
* platform/graphics/skia/PlatformContextSkia.cpp:
(WebCore::PlatformContextSkia::createCompatibleDevice):
2013-01-10 Alexander Pavlov <apavlov@chromium.org>
The "outline-offset" property is not found in the computed style property list
https://bugs.webkit.org/show_bug.cgi?id=106561
Reviewed by Alexis Menard.
Listed CSSPropertyOutlineOffset in the CSSComputedStyleDeclaration's computedProperties[].
Test: fast/css/getComputedStyle/getComputedStyle-outline-offset.html
* css/CSSComputedStyleDeclaration.cpp:
2013-01-10 David Faure <faure@kde.org>
PluginPackage::freeLibraryTimerFired asserts if plugin got loaded again meanwhile
https://bugs.webkit.org/show_bug.cgi?id=106463
Reviewed by Simon Hausmann.
No new tests, this code path will be tested by bug 106140.
* plugins/PluginPackage.cpp:
(WebCore::PluginPackage::freeLibraryTimerFired): skip unloading if loaded again meanwhile.
2013-01-10 Alexander Pavlov <apavlov@chromium.org>
CSSParser does not allow the absence of whitespace between "and" and "expression"
https://bugs.webkit.org/show_bug.cgi?id=106458
Reviewed by Antti Koivisto.
The issue was that a construct similar to "and(max-width: 480px)" looks like a function call (token type FUNCTION), even though
it is actually a MEDIA_AND followed by a parenthesized expression.
Test: fast/css/media-rule-no-whitespace.html
* css/CSSParser.cpp:
(WebCore::CSSParser::detectFunctionTypeToken): Return if the detection has been successful.
(WebCore::CSSParser::realLex): Test for media query tokens if function type detection has failed.
* css/CSSParser.h:
2013-01-10 Alexis Menard <alexis@webkit.org>
ASSERT_NOT_REACHED in StylePropertySet::fontValue when accessing font style property through JS after setting style font size.
https://bugs.webkit.org/show_bug.cgi?id=88866
Reviewed by Alexander Pavlov.
StylePropertySet::fontValue always assumed that it was called using
style.font after a subsequent call which set the shorthand font. The
ASSERT_NOT_REACHED assumed that all longhands of the font shorthand not
set by the shorthand itself were set to initial. While it's true when
we set the font shorthand (i.e all longhands are set to implicit initial)
it is not true when you set the longhands individually. For example setting
font-size will not set other font properties to initial. It is the behavior of all
other shorthands in WebKit. When reconstructing the shorthand other
properties tests whether the value of each longhands is initial or not
(if not then we omit the value, as we should always construct the
shortest shorthand possible) or if the value is set or not (if set then
we include it in the shorthand if not then we omit it). The comment
removed was also talking about invalid font property potentially built
by fontValue(). So far appendFontLonghandValueIfExplicit will always
construct a valid value as it takes care of adding ' ' or '/' when
needed, so the return value is parsable and correct.
Test: fast/css/font-shorthand-from-longhands.html
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::appendFontLonghandValueIfExplicit):
(WebCore::StylePropertySet::fontValue):
* css/StylePropertySet.h:
2013-01-10 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r139306.
http://trac.webkit.org/changeset/139306
https://bugs.webkit.org/show_bug.cgi?id=106550
it broke inspector-protocol/nmi-webaudio-leak-test.html
(Requested by loislo on #webkit).
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::reportMemoryUsage):
* css/CSSMediaRule.cpp:
(WebCore::CSSMediaRule::reportMemoryUsage):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::reportMemoryUsage):
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::reportMemoryUsage):
* css/MediaList.cpp:
(WebCore::MediaList::reportMemoryUsage):
* css/RuleSet.cpp:
(WebCore::RuleData::reportMemoryUsage):
(WebCore::RuleSet::reportMemoryUsage):
(WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::MatchedPropertiesCacheItem::reportMemoryUsage):
(WebCore::StyleResolver::reportMemoryUsage):
* css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::reportMemoryUsage):
* dom/TreeScope.cpp:
(WebCore::TreeScope::reportMemoryUsage):
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::reportMemoryUsage):
* inspector/InspectorMemoryAgent.cpp:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::reportMemoryUsage):
* inspector/MemoryInstrumentationImpl.cpp:
(WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::reportMemoryUsage):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::reportMemoryUsage):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::reportMemoryUsage):
* loader/Prerenderer.cpp:
(WebCore::Prerenderer::reportMemoryUsage):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::reportMemoryUsage):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::reportMemoryUsage):
* page/Page.cpp:
(WebCore::Page::reportMemoryUsage):
2013-01-10 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 2/N
https://bugs.webkit.org/show_bug.cgi?id=106546
Reviewed by Vsevolod Vlasov.
Many nontrivial class members were instrumented in reportMemoryUsage methods.
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::reportMemoryUsage):
* css/CSSMediaRule.cpp:
(WebCore::CSSMediaRule::reportMemoryUsage):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::reportMemoryUsage):
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::reportMemoryUsage):
* css/MediaList.cpp:
(WebCore::MediaList::reportMemoryUsage):
* css/RuleSet.cpp:
(WebCore::RuleData::reportMemoryUsage):
(WebCore::RuleSet::reportMemoryUsage):
(WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::MatchedPropertiesCacheItem::reportMemoryUsage):
(WebCore::StyleResolver::reportMemoryUsage):
* css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::reportMemoryUsage):
* dom/TreeScope.cpp:
(WebCore::TreeScope::reportMemoryUsage):
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::reportMemoryUsage):
* inspector/InspectorMemoryAgent.cpp:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::reportMemoryUsage):
* inspector/MemoryInstrumentationImpl.cpp:
(WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::reportMemoryUsage):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::reportMemoryUsage):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::reportMemoryUsage):
* loader/Prerenderer.cpp:
(WebCore::Prerenderer::reportMemoryUsage):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::reportMemoryUsage):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::reportMemoryUsage):
* page/Page.cpp:
(WebCore::Page::reportMemoryUsage):
2013-01-10 Christophe Dumez <christophe.dumez@intel.com>
[EFL] Add gstreamer 1.0.5 to jhbuild
https://bugs.webkit.org/show_bug.cgi?id=106178
Reviewed by Laszlo Gombos.
Remove GSTREAMER_INTERFACES_LIBRARIES from EFL
CMake configuration.
No new tests, no behavior change for layout tests.
* PlatformEfl.cmake:
2013-01-09 Christophe Dumez <christophe.dumez@intel.com>
Unreviewed build fix after r139266.
r139266 broke the debug build of the gstreamer backend due
to a missing header include.
No new tests, no behavior change.
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
2013-01-09 Alec Flett <alecflett@chromium.org>
IndexedDB: Allow createIndex/createObjectStore to be asynchronous
https://bugs.webkit.org/show_bug.cgi?id=106377
Reviewed by Tony Chang.
Migrate implementations of createIndex/deleteIndex,
createObjectStore/deleteObjectStore over to IDBDatabaseBackendImpl,
so that they can be asynchronous in multi-process ports.
Has the side effect of removing the last consumers of
IDBIndexBackendImpl and IDBObjectStoreBackendImpl. The former
is removed complete and the latter becomes a temporary namespace
pending a further more mechanical code shuffle.
A key refactoring effect is that the IDBDatabaseBackendImpl
now contains the authoritative IDBDatabaseMetadata hierarchy,
and updates to it are consolidated in one place rather than
scattered across a parallel object tree.
No new tests as this is just refactoring.
* Modules/indexeddb/IDBBackingStore.cpp: Simplify objectstore/index loading and propagate errors.
(WebCore::IDBBackingStore::getObjectStores):
(WebCore::IDBBackingStore::getIndexes):
* Modules/indexeddb/IDBBackingStore.h:
(IDBBackingStore):
* Modules/indexeddb/IDBCursorBackendImpl.cpp: Dependency cleanup.
* Modules/indexeddb/IDBCursorBackendImpl.h: Dependency cleanup.
(WebCore):
* Modules/indexeddb/IDBDatabase.cpp: Frontend IDBObjectStores no longer hold onto backend objects.
(WebCore::IDBDatabase::createObjectStore):
(WebCore::IDBDatabase::deleteObjectStore):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Add all create/deleteIndex operations from IDBIndexBackendImpl.
(WebCore::CreateObjectStoreOperation::create):
(WebCore::CreateObjectStoreOperation::CreateObjectStoreOperation):
(CreateObjectStoreOperation):
(WebCore::DeleteObjectStoreOperation::create):
(WebCore::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
(DeleteObjectStoreOperation):
(WebCore::CreateObjectStoreAbortOperation::create):
(WebCore::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation):
(CreateObjectStoreAbortOperation):
(WebCore::DeleteObjectStoreAbortOperation::create):
(WebCore::DeleteObjectStoreAbortOperation::DeleteObjectStoreAbortOperation):
(DeleteObjectStoreAbortOperation):
(CreateIndexOperation):
(WebCore::CreateIndexOperation::create):
(WebCore::CreateIndexOperation::CreateIndexOperation):
(WebCore):
(DeleteIndexOperation):
(WebCore::DeleteIndexOperation::create):
(WebCore::DeleteIndexOperation::DeleteIndexOperation):
(CreateIndexAbortOperation):
(WebCore::CreateIndexAbortOperation::create):
(WebCore::CreateIndexAbortOperation::CreateIndexAbortOperation):
(DeleteIndexAbortOperation):
(WebCore::DeleteIndexAbortOperation::create):
(WebCore::DeleteIndexAbortOperation::DeleteIndexAbortOperation):
(WebCore::GetOperation::GetOperation):
(WebCore::IDBDatabaseBackendImpl::addObjectStore):
(WebCore::IDBDatabaseBackendImpl::removeObjectStore):
(WebCore::IDBDatabaseBackendImpl::addIndex):
(WebCore::IDBDatabaseBackendImpl::removeIndex):
(WebCore::IDBDatabaseBackendImpl::openInternal):
(WebCore::IDBDatabaseBackendImpl::metadata):
(WebCore::IDBDatabaseBackendImpl::createObjectStore):
(WebCore::CreateObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
(WebCore::IDBDatabaseBackendImpl::createIndex):
(WebCore::CreateIndexOperation::perform):
(WebCore::CreateIndexAbortOperation::perform):
(WebCore::IDBDatabaseBackendImpl::deleteIndex):
(WebCore::DeleteIndexOperation::perform):
(WebCore::DeleteIndexAbortOperation::perform):
(WebCore::IDBDatabaseBackendImpl::get):
(WebCore::IDBDatabaseBackendImpl::put):
(WebCore::IDBDatabaseBackendImpl::setIndexKeys):
(WebCore::IDBDatabaseBackendImpl::count):
(WebCore::DeleteRangeOperation::perform):
(WebCore::DeleteObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackendImpl::deleteDatabaseFinal):
(WebCore::IDBDatabaseBackendImpl::loadObjectStores): Load directly into metadata from backing store.
(WebCore::CreateObjectStoreAbortOperation::perform):
(WebCore::DeleteObjectStoreAbortOperation::perform):
(WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(WebCore):
(IDBDatabaseBackendImpl):
(WebCore::IDBDatabaseBackendImpl::createObjectStore):
(WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
* Modules/indexeddb/IDBIndexBackendImpl.cpp: Removed.
* Modules/indexeddb/IDBIndexBackendImpl.h: Removed.
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::IDBObjectStore): Frontend IDBIndex objects no longer hold onto backend.
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::deleteIndex):
* Modules/indexeddb/IDBObjectStore.h:
(WebCore::IDBObjectStore::create):
(IDBObjectStore):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(WebCore):
(IDBObjectStoreBackendImpl):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::objectStore):
* Modules/indexeddb/IDBTransaction.h:
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(WebCore::IDBTransactionBackendImpl::objectStore):
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
2013-01-09 John J. Barton <johnjbarton@chromium.org>
Web Inspector: Don't throw exceptions when we don't have a callstack
https://bugs.webkit.org/show_bug.cgi?id=104849
Reviewed by Pavel Feldman.
Check array details.callFrames.length before accessing array;
No new tests, but this fix may help us find the cause of 'other' reasons.
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._debuggerPaused):
2013-01-09 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] Data grid header and content cells are misaligned.
https://bugs.webkit.org/show_bug.cgi?id=105795
Reviewed by Pavel Feldman.
Header and content tables have different width -> same percent values
turn to different cell widths.
* inspector/front-end/DataGrid.js: Add "corner" cell to all rows.
* inspector/front-end/dataGrid.css: Apply "corner" rules to "td" nodes.
(.data-grid .data-container): Remove artificial padding.
2013-01-09 Tien-Ren Chen <trchen@chromium.org>
Make caret repainting container-aware
https://bugs.webkit.org/show_bug.cgi?id=103955
Reviewed by Simon Fraser.
Only invalidate local rects on the caret's repaint container,
instead of invalidating an absolute rect on the whole view.
Test: fast/repaint/caret-with-transformation.html
* editing/FrameSelection.cpp:
(WebCore::caretRendersInsideNode):
(WebCore::caretRenderer):
(WebCore::FrameSelection::caretRenderer):
(WebCore::DragCaretController::caretRenderer):
(WebCore::repaintCaretForLocalRect):
(WebCore::FrameSelection::recomputeCaretRect):
(WebCore::CaretBase::invalidateCaretRect):
(WebCore::FrameSelection::focusedOrActiveStateChanged):
* editing/FrameSelection.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::repaintSelection):
* rendering/RenderView.h:
2013-01-09 Ryosuke Niwa <rniwa@webkit.org>
Rebaseline the binding test after r139278.
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTarget::getOwnPropertySlot):
2013-01-09 Ryosuke Niwa <rniwa@webkit.org>
[JSC] REGRESSION(r135093): A form control with name=length overrides length property on form.elements
https://bugs.webkit.org/show_bug.cgi?id=105775
Reviewed by Sam Weinig.
Fixed the bug by respecting properties on ancestor classes.
Test: fast/dom/collection-length-should-not-be-overridden.html
* bindings/js/JSDOMBinding.h:
(WebCore::getStaticValueSlotEntryWithoutCaching): Added.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody): Use getStaticValueSlotEntryWithoutCaching to climb up the class
hierarchy.
2013-01-09 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL] [WebGL] Remove GLX dependencies from X11WindowResources..
https://bugs.webkit.org/show_bug.cgi?id=106319
Reviewed by Kenneth Rohde Christiansen.
This patch removes GLX specific calls from X11WindowResources.
This class is shared by both GLX and EGL implementations.
* platform/graphics/surfaces/glx/GLXSurface.cpp:
(WebCore::GLXTransportSurface::setGeometry):
* platform/graphics/surfaces/glx/X11WindowResources.cpp:
(WebCore::X11OffScreenWindow::reSizeWindow):
2013-01-09 Huang Dongsung <luxtella@company100.net>
Remove deviceScaleFactor argument in computeMinimumScaleFactorForContentContained().
https://bugs.webkit.org/show_bug.cgi?id=106500
Reviewed by Kenneth Rohde Christiansen.
deviceScaleFactor argument is not used after r139189.
No new tests. Refactoring only.
* dom/ViewportArguments.cpp:
(WebCore::computeMinimumScaleFactorForContentContained):
* dom/ViewportArguments.h:
(WebCore):
2013-01-09 Elliott Sprehn <esprehn@gmail.com>
Node::containingShadowRoot should be constant time
https://bugs.webkit.org/show_bug.cgi?id=106494
Reviewed by Dimitri Glazkov.
There's no reason to traverse up the tree to find the containing
ShadowRoot when we already know if we're in a ShadowRoot by looking at
the treeScope().
No new tests, just refactoring.
* dom/Node.cpp:
(WebCore::Node::containingShadowRoot):
2013-01-09 Hajime Morrita <morrita@google.com>
[Shadow DOM] Distribution related code on ElementShadow should be minimized.
https://bugs.webkit.org/show_bug.cgi?id=106294
Reviewed by Dimitri Glazkov.
This change moves ElementShadow::m_selectFeatures,
m_shouldCollectSelectFeatureSet and related methods to
ContentDistributor.
There are also some renaming and small refactorings for better fit
on new place:
- shouldCollectSelectFeatureSet is renamed needsSelectorRuleSet for conciseness.
- setShouldCollectSelectFeatureSet() which used recursion morphed into
iterative willAffectSelector().
- ensureDistributionFromDocument() becomes a static method.
No new tests. Refactoring.
* WebCore.exp.in:
* dom/Element.cpp:
(WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::addShadowRoot):
(WebCore::ElementShadow::removeAllShadowRoots):
* dom/ElementShadow.h:
(ElementShadow):
(WebCore::ElementShadow::invalidateDistribution):
(WebCore::ElementShadow::ensureDistribution):
(WebCore::ElementShadow::didAffectSelector):
(WebCore::ElementShadow::willAffectSelector):
(WebCore::ElementShadow::containingShadow):
(WebCore):
* html/shadow/ContentDistributor.cpp:
(WebCore::ScopeContentDistribution::registerInsertionPoint):
(WebCore::ScopeContentDistribution::unregisterInsertionPoint):
(WebCore::ContentDistributor::ContentDistributor):
(WebCore::ContentDistributor::ensureDistribution):
(WebCore):
(WebCore::ContentDistributor::ensureDistributionFromDocument):
(WebCore::ContentDistributor::invalidateDistribution):
(WebCore::ContentDistributor::ensureSelectFeatureSet):
(WebCore::ContentDistributor::collectSelectFeatureSetFrom):
(WebCore::ContentDistributor::didAffectSelector):
(WebCore::ContentDistributor::willAffectSelector):
(WebCore::ContentDistributor::didShadowBoundaryChange):
* html/shadow/ContentDistributor.h:
(ScopeContentDistribution):
(WebCore::ContentDistributor::needsSelectFeatureSet):
(WebCore::ContentDistributor::setNeedsSelectFeatureSet):
(ContentDistributor):
(WebCore::ContentDistributor::setValidity):
(WebCore::ContentDistributor::needsInvalidation):
* html/shadow/HTMLContentElement.cpp:
(WebCore::HTMLContentElement::parseAttribute):
* html/shadow/HTMLContentElement.h:
* html/shadow/HTMLShadowElement.cpp:
(WebCore::HTMLShadowElement::olderShadowRoot):
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::getDistributedNodes):
(WebCore::InsertionPoint::insertedInto):
(WebCore::InsertionPoint::removedFrom):
* html/shadow/InsertionPoint.h:
(WebCore::InsertionPoint::canAffectSelector):
* testing/Internals.cpp:
(WebCore::Internals::hasSelectorForIdInShadow):
(WebCore::Internals::hasSelectorForClassInShadow):
(WebCore::Internals::hasSelectorForAttributeInShadow):
(WebCore::Internals::hasSelectorForPseudoClassInShadow):
2013-01-09 Shinya Kawanaka <shinyak@chromium.org>
Assert triggered in SelectorChecker::checkOneSelector when scrollbar (e.g. :horizontal) selector is specified.
https://bugs.webkit.org/show_bug.cgi?id=106414
Reviewed by Dimitri Glazkov.
In SelectorChecker::checkOneSelector, scrollbar related pseudoType (e.g. :horizontal) is not handled anywhere.
This caused ASSERT triggered. We have to check them.
Test: fast/css/scrollbar-crash.html
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOneSelector):
2013-01-09 Filip Pizlo <fpizlo@apple.com>
Unreviewed, fix build after http://trac.webkit.org/changeset/139262
* Modules/webaudio/DefaultAudioDestinationNode.cpp:
2013-01-09 Chris Rogers <crogers@google.com>
Allow live/local audio input to be enabled only when needed
https://bugs.webkit.org/show_bug.cgi?id=106490
Reviewed by Kenneth Russell.
WebAudio can process live/local audio input using a MediaStreamAudioSourceNode.
But currently the audio back-end is not able to know when/if audio input will be
needed, so it needs to assume the worst and initialize the system to support potential
audio input in all cases. For some audio back-ends this can end up being less efficient
than initializing for audio output only. This patch adds the ability for the audio back-end
to be able to initialize itself for audio input later on, only when/if it's needed.
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createMediaStreamSource):
* Modules/webaudio/AudioDestinationNode.h:
(AudioDestinationNode):
* Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
(WebCore::DefaultAudioDestinationNode::initialize):
(WebCore::DefaultAudioDestinationNode::uninitialize):
(WebCore::DefaultAudioDestinationNode::createDestination):
(WebCore):
(WebCore::DefaultAudioDestinationNode::enableInput):
* Modules/webaudio/DefaultAudioDestinationNode.h:
(DefaultAudioDestinationNode):
* Modules/webaudio/OfflineAudioDestinationNode.h:
(OfflineAudioDestinationNode):
(WebCore::OfflineAudioDestinationNode::sampleRate):
* platform/audio/AudioDestination.h:
(AudioDestination):
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestination::create):
* platform/audio/mac/AudioDestinationMac.cpp:
(WebCore::AudioDestination::create):
2013-01-09 Tim Horton <timothy_horton@apple.com>
Don't drop to huge tile mode if we're only slow-scrolling because of a page overlay
https://bugs.webkit.org/show_bug.cgi?id=106502
<rdar://problem/12959143>
Reviewed by Simon Fraser.
We only use the MainThreadScrollingReason "ForcedOnMainThread" if WebKit2 installs
a page overlay (TiledCoreAnimationDrawingArea::didInstallPageOverlay), which clients
can cause arbitrarily.
We probably should still use default-sized tiles in this case (this will also
prevent us from falling into gigantic tiles for WebKit2 find-in-page, among other things).
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::adjustTileCacheCoverage):
2013-01-09 Takashi Sakamoto <tasak@google.com>
border-radius with box-shadow is not rendered correctly
https://bugs.webkit.org/show_bug.cgi?id=106404
Reviewed by Hajime Morita.
RoundedRect::isRenderable is wrong. So RoundedRect::adjustRadii
is invoked for renderable RoundedRects.
Test: fast/borders/border-radius-with-box-shadow.html
* platform/graphics/RoundedRect.cpp:
(WebCore::RoundedRect::isRenderable):
Have to compare topLeft's height plus bottomLeft's height with
rect's height and to compare topRight's height plus bottomRight's
height with rect's height.
2013-01-09 Joanmarie Diggs <jdiggs@igalia.com>
[GTK] accessibility/aria-labelledby-overrides-label.html requires a proper baseline
https://bugs.webkit.org/show_bug.cgi?id=105638
Reviewed by Martin Robinson.
The test was failing for two reasons:
- AccessibilityRenderObject::correspondingLabelForControlElement() was
not ignoring the ARIA labelled-by property
- AccessibilityController::accessibleElementById() was not implemented
Because getting an element by ID cannot be done in the UIProcess, the
decision was made to expose the element's ID as an accessible attribute
of the object.
In addition, fixing the bug in AccessibilityRenderObject made it possible
to eliminate the Gtk platform-specific expectations for another test.
No new tests; instead, the failing test was unskipped and a proper baseline
provided.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
Return null for objects where hasTextAlternative() is true.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetAttributes): Expose the element's ID as an accessible
attribute.
2013-01-09 Tony Gentilcore <tonyg@chromium.org>
Remove unused includes from HTMLTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=106496
Reviewed by Levi Weintraub.
Noticed these while searching HTMLTreeBuilder for non-thread friendly deps.
No new tests because no new functionality.
* html/parser/HTMLTreeBuilder.cpp:
2013-01-09 Max Vujovic <mvujovic@adobe.com>
[CSS Shaders] Detached identifier after mesh box type is not applied
https://bugs.webkit.org/show_bug.cgi?id=105321
Reviewed by Dean Jackson.
Before this patch, if a "detached" identifier followed a mesh box type identifier, the
detached identifier was not applied. In other words, the mesh would still be attached.
For example:
-webkit-filter: custom(url(...) mix(url(...) normal source-atop), 1 1 border-box detached);
Although the mesh box type is being removed from the Filter Effects spec, for now, we
continue to accept the mesh box type in parsing because of existing content. Eventually,
custom filters will transition to an at-rule syntax, once it is defined.
Test: css3/filters/custom/custom-filter-detached-mesh-with-mesh-box-type.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseCustomFilter):
In CSSParser, do not add the mesh box type identifier to the list that will be passed to
StyleResolver. StyleResolver is expecting a "detached" identifier in that position and
does not interpret mesh box types.
2013-01-09 Dan Winship <danw@gnome.org>
[Soup] Handle redirection inside WebKit
https://bugs.webkit.org/show_bug.cgi?id=61122
https://bugs.webkit.org/show_bug.cgi?id=88961
Reviewed by Martin Robinson.
Rather than using libsoup's built-in redirection handling (which
doesn't do everything exactly the way WebKit wants, and can't
handle redirects to non-http URIs anyway), process redirections
ourselves.
No new tests; unskips a few existing tests.
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
(ResourceHandleInternal):
* platform/network/soup/ResourceError.h:
(ResourceError):
* platform/network/soup/ResourceErrorSoup.cpp:
(WebCore::ResourceError::transportError):
(WebCore):
(WebCore::ResourceError::httpError):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore):
(WebCore::gotHeadersCallback):
(WebCore::restartedCallback):
(WebCore::shouldRedirect):
(WebCore::doRedirect):
(WebCore::redirectCloseCallback):
(WebCore::redirectSkipCallback):
(WebCore::cleanupSoupRequestOperation):
(WebCore::sendRequestCallback):
(WebCore::createSoupMessageForHandleAndRequest):
(WebCore::createSoupRequestAndMessageForHandle):
(WebCore::ResourceHandle::start):
2013-01-09 Florin Malita <fmalita@chromium.org>
[Skia] Implement GraphicsContext::addRoundedRectClip() using SkCanvas::clipRRect()
https://bugs.webkit.org/show_bug.cgi?id=106461
Reviewed by Stephen White.
This patch adds a Skia-specific version of GraphicsContext::addRoundedRectClip() to take
advantage of the SkCanvas::clipRRect() primitive.
As a minor cleanup, the anonymous namespace in GraphicsContextSkia.cpp is extended to cover
all the local helper functions.
No new tests: coverage provided by existing tests.
* platform/graphics/GraphicsContext.cpp:
(WebCore):
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::addRoundedRectClip):
(WebCore):
(WebCore::GraphicsContext::fillRoundedRect):
* platform/graphics/skia/PlatformContextSkia.h:
(WebCore::PlatformContextSkia::clipRRect):
(WebCore):
2013-01-09 Andreas Kling <akling@apple.com>
SVG-as-image: Throw out cached bitmap renderings after they sit unused for some time.
<http://webkit.org/b/106484>
<rdar://problem/12983216>
Reviewed by Antti Koivisto.
Add a one-shot timer to SVGImageCache to self-clear the bitmap cache 30 seconds after last access.
This prevents us from keeping huge ImageBuffers around in memory for the lifetime of the elements
referencing that particular SVG file. (The ownership model is actually a bit more complicated
but that's irrelevant to this issue.)
10234kB progression on Membuster3.
* svg/graphics/SVGImageCache.cpp:
(WebCore::SVGImageCache::SVGImageCache):
(WebCore::SVGImageCache::~SVGImageCache):
(WebCore::SVGImageCache::clearBitmapCache):
(WebCore::SVGImageCache::cacheClearTimerFired):
(WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
* svg/graphics/SVGImageCache.h:
(SVGImageCache):
2013-01-09 Alexey Proskuryakov <ap@apple.com>
Assertion failure in SubresourceLoader::didFail when reloading
https://bugs.webkit.org/show_bug.cgi?id=101416
Reviewed by Nate Chapin.
Test: http/tests/cache/network-error-during-revalidation.html
* loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::didFail): Handle revalidation.
2013-01-09 Alexandru Chiculita <achicu@adobe.com>
Assertion Failure in WebCore::RenderLayerCompositor::updateCompositingLayers
https://bugs.webkit.org/show_bug.cgi?id=106419
Reviewed by Simon Fraser.
No new tests added, just un-skipped 3 existing tests.
RenderLayerCompositor::updateCompositingLayers is being called with a pending layout, so computing the
layers at that point would be useless & error-prone as they will be using incorrect layout values. If a layout is pending it means that
RenderLayerCompositor::updateCompositingLayers would get called again after the pending layout ends, so any values calculated at that point would be
overwritten immediately. This patch removes the old ASSERT and makes it a return instead.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingLayers):
2013-01-09 Robert Hogan <robert@webkit.org>
REGRESSION(r111439): Focus ring is rendered incorrectly in fast/inline/continuation-outlines-with-layers.html
https://bugs.webkit.org/show_bug.cgi?id=106064
Reviewed by David Hyatt.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject):
2013-01-09 Gregg Tavares <gman@google.com>
Add stub for CanvasProxy
https://bugs.webkit.org/show_bug.cgi?id=106275
Reviewed by Dean Jackson.
No new tests as no new fuctionality exposed.
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* html/canvas/CanvasProxy.cpp: Added.
* html/canvas/CanvasProxy.h: Added.
* html/canvas/CanvasProxy.idl: Added.
2013-01-09 Antti Koivisto <antti@apple.com>
Release FastMalloc thread caches on memory warning
https://bugs.webkit.org/show_bug.cgi?id=106471
Reviewed by Geoff Garen.
FastMalloc keeps some memory in per-thread caches (currently 2MB each). We currently flush these caches on memory warning
for the main thread only. We should do it for other WebKit threads that use FastMalloc too.
Call WTF::releaseFastMallocFreeMemory in a bunch of WebCore support threads on memory warning. Unfortunately we don't have
an uniform way of doing threads so this requires bunch of thread type specific code.
Looks to be ~1% progression in membuster3 final and maximum numbers.
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::releaseMemory):
* storage/StorageTask.cpp:
(WebCore::StorageTask::performTask):
* storage/StorageTask.h:
(WebCore::StorageTask::createReleaseFastMallocFreeMemory):
* storage/StorageThread.cpp:
(WebCore::storageThreads):
(WebCore):
(WebCore::StorageThread::StorageThread):
(WebCore::StorageThread::~StorageThread):
(WebCore::StorageThread::releaseFastMallocFreeMemoryInAllThread):
* storage/StorageThread.h:
(StorageThread):
* workers/WorkerThread.cpp:
(WebCore::threadSetMutex):
(WebCore::workerThreads):
(WebCore::WorkerThread::workerThreadCount):
(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::~WorkerThread):
(WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThread):
(WebCore):
* workers/WorkerThread.h:
(WorkerThread):
2013-01-09 Tony Gentilcore <tonyg@chromium.org>
REGRESSION(r139141): Assertion failure in WebCore::HTMLConstructionSite::HTMLConstructionSite
https://bugs.webkit.org/show_bug.cgi?id=106412
Reviewed by Darin Adler.
This corrects the assertion added in r139141. The assertion was designed to make sure that we are using the
HTMLDocument class. XHTML documents also use HTMLDocument.
No new tests because no new functionality.
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::HTMLConstructionSite):
2013-01-08 Ojan Vafai <ojan@chromium.org>
min-content gets the wrong value if min-width is set on some form controls
https://bugs.webkit.org/show_bug.cgi?id=106389
Reviewed by Tony Chang.
Simplify the logic. The only exposed change in behavior is that
m_minPreferredLogicalWidth gets set to m_maxPreferredLogicalWidth
instead of 0 when min-width is set.
Test: fast/forms/min-content-form-controls.html
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::computePreferredLogicalWidths):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::computePreferredLogicalWidths):
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::computePreferredLogicalWidths):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::computePreferredLogicalWidths):
2013-01-09 Abhishek Arya <inferno@chromium.org>
Mitigate out-of-bounds access in InlineIterator
https://bugs.webkit.org/show_bug.cgi?id=104812
Reviewed by Levi Weintraub.
Share code between InlineIterator::current and InlineIterator::previousInSameNode,
thereby checking for access outside text renderer's length.
* rendering/InlineIterator.h:
(InlineIterator):
(WebCore::InlineIterator::characterAt):
(WebCore):
(WebCore::InlineIterator::current):
(WebCore::InlineIterator::previousInSameNode):
2013-01-09 Yongjun Zhang <yongjun_zhang@apple.com>
If ImageLoader's loadEventSender or errorEventSender fires after document is detached, the document will be leaked.
https://bugs.webkit.org/show_bug.cgi?id=106394
Reviewed by Alexey Proskuryakov.
ImageLoader's loadEventSender and errorEventSender schedule event dispatching in separate timers and refs
the Element in updatedHasPendingEvent. If the Document is detached before either eventSender dispatches,
we would leak the Document since we bail out early in dispatchPendingLoadEvent or dispatchPendingErrorEvent,
without deref-ing the Element itself.
No new tests. Verified manually by using heap tool to count the living HTMLDocuments.
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::dispatchPendingLoadEvent): also call updatedHasPendingEvent to deref the Element if
the document is detached.
(WebCore::ImageLoader::dispatchPendingErrorEvent): ditto.
2013-01-09 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, rolling out r139143.
http://trac.webkit.org/changeset/139143
https://bugs.webkit.org/show_bug.cgi?id=106135
Broke Chromium content_browsertests.
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::LevelDBDatabase::open):
(WebCore::LevelDBDatabase::openInMemory):
2013-01-09 Sam Weinig <sam@webkit.org>
Add Settings.in and make_settings.pl to the project.
Reviewed by Anders Carlsson.
* WebCore.xcodeproj/project.pbxproj:
2013-01-09 Ojan Vafai <ojan@chromium.org>
marquee special-case in RenderBlock is not needed
https://bugs.webkit.org/show_bug.cgi?id=106396
Reviewed by Simon Fraser.
This was added in http://trac.webkit.org/changeset/105772. The layout test
in that patch (which is disabled) works and the original site that was broken
also still works.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computePreferredLogicalWidths):
2013-01-09 Tony Chang <tony@chromium.org>
Automatically generate Settings::unifiedTextCheckerEnabled
https://bugs.webkit.org/show_bug.cgi?id=106382
Reviewed by Adam Barth.
No new tests, no change in behavior. This is covered by existing editing/spelling tests.
* page/Settings.cpp:
(WebCore): Move default value into a global so we can generate the initializer.
(WebCore::Settings::Settings): Remove initializer code that is now generated.
* page/Settings.h:
(Settings): Remove getters and setters.
* page/Settings.in: Add entry to be generated.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Remove backup since the generated code does this.
(WebCore::InternalSettings::Backup::restoreTo): Remove restore code since the generated code does this.
* testing/InternalSettings.h:
(InternalSettings): Remove member variable.
* testing/InternalSettings.idl: The getter was unused so it's being removed. The setter is now generated.
2013-01-09 Alexis Menard <alexis@webkit.org>
Implement CSS computed style value for transition shorthand
https://bugs.webkit.org/show_bug.cgi?id=105035
Reviewed by Dean Jackson.
Implement support for query the transition and webkit-transition
shorthand from the computed style.
Test: transitions/transitions-parsing.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::createTransitionPropertyValue): Factor the code to create the
correct value into a function to reuse it for the shorthand.
(WebCore::getTransitionPropertyValue):
(WebCore::createTimingFunctionValue): Little refactor, the intermediate
local variables are not needed.
(WebCore::getTimingFunctionValue):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2013-01-09 Hajime Morrita <morrita@google.com>
Document::setActiveNode() should be Document::setActiveElement()
https://bugs.webkit.org/show_bug.cgi?id=106437
Reviewed by Ojan Vafai.
No new tests. No functoinal change.
* dom/Document.cpp:
(WebCore::Document::setActiveElement):
(WebCore::Document::updateHoverActiveState):
* dom/Document.h:
(Document):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::innerElement):
(WebCore):
* rendering/HitTestResult.h:
(HitTestResult):
2013-01-09 Shinya Kawanaka <shinyak@chromium.org>
[Shadow DOM]: ShadowRoot has wrong nodeName attribute
https://bugs.webkit.org/show_bug.cgi?id=104995
Reviewed by Dimitri Glazkov.
According to the Shadow DOM spec, ShadowRoot.nodeName should return '#document-fragment' instead of '#shadow-root'.
We remove ShadowRoot::nodeName.
No new tests, covered by existing tests.
* dom/ShadowRoot.cpp:
* dom/ShadowRoot.h:
(ShadowRoot):
2013-01-09 Zoltan Horvath <zoltan@webkit.org>
[CSS Regions] Selecting text through nested regions causes weird and unclearable selection
https://bugs.webkit.org/show_bug.cgi?id=105641
Reviewed by David Hyatt.
If you have a region with a nested region inside what is rendered below the base region and you are trying select text
starting from the base region and ending it in the nested region, firstly you got a weird selection, secondly you can't
clear the selection. We could prevent this strange behavior by preventing the selection through different region flows.
Test: fast/regions/selecting-text-through-different-region-flows.html
* rendering/RenderView.cpp:
(WebCore::RenderView::setSelection): Don't allow selection when trying to select different region flows.
2013-01-09 Hugo Parente Lima <hugo.lima@openbossa.org>
Regression(r138681) : Add HAVE(ACCESSIBILITY) guard to atk files, fix for a fix.
https://bugs.webkit.org/show_bug.cgi?id=106448
Reviewed by Gyuyoung Kim.
Some atk files don't use HAVE(ACCESSIBILITY). It might make build errors when
the macro isn't enabled.
* accessibility/atk/WebKitAccessibleHyperlink.h:
* accessibility/atk/WebKitAccessibleInterfaceAction.h:
* accessibility/atk/WebKitAccessibleInterfaceComponent.h:
* accessibility/atk/WebKitAccessibleInterfaceHypertext.h:
2013-01-09 Chris Fleizach <cfleizach@apple.com>
AX: native popup buttons should not use textUnderElement for their title
https://bugs.webkit.org/show_bug.cgi?id=106349
Reviewed by Ryosuke Niwa.
Chromium relies on the older title() method to return its title. As a result, we also
need to handle the case of <select> element pop up buttons returning the textUnderElement().
No new tests. Fix existing break.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::title):
2013-01-09 Jussi Kukkonen <jussi.kukkonen@intel.com>
IndexedDB: Remove ASSERTs that can't assert but result in compiler warnings
https://bugs.webkit.org/show_bug.cgi?id=106442
Reviewed by Kentaro Hara.
IDBLevelDBCoding::m_metaDataType has been changed to unsigned
so ASSERT(m_metaDataType >= 0) is no longer useful: the compiler
warnings however create build difficulties at least with EFL.
* Modules/indexeddb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::metaDataType):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::compare):
2012-12-29 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 1/N
https://bugs.webkit.org/show_bug.cgi?id=106445
Reviewed by Vsevolod Vlasov.
The patch has almost mechanical changes.
* bindings/v8/V8Binding.cpp:
* bindings/v8/V8ValueCache.cpp:
(WTF):
(WebCore::StringCache::reportMemoryUsage):
(WebCore):
* dom/Document.cpp:
(WebCore::Document::reportMemoryUsage):
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
* dom/ElementRareData.cpp:
(WebCore::ElementRareData::reportMemoryUsage):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::reportMemoryUsage):
* page/Frame.cpp:
(WebCore::Frame::reportMemoryUsage):
* page/Page.cpp:
(WebCore::Page::reportMemoryUsage):
* platform/graphics/skia/NativeImageSkia.cpp:
(WebCore::NativeImageSkia::reportMemoryUsage):
* platform/network/FormData.cpp:
(WebCore::FormData::reportMemoryUsage):
(WebCore):
(WebCore::FormDataElement::reportMemoryUsage):
* platform/network/FormData.h:
(FormDataElement):
* rendering/RenderView.cpp:
(WebCore::RenderView::reportMemoryUsage):
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::reportMemoryUsage):
2013-01-09 Florin Malita <fmalita@chromium.org>
[Skia] Implement GraphicsContext::fillRoundedRect() using SkCanvas::drawRRect()
https://bugs.webkit.org/show_bug.cgi?id=106366
Reviewed by Stephen White.
Skia provides rounded-rect primitives, so we can avoid degrading fillRoundedRect() to
drawPath().
Due to subtle pixel differences (not visually noticeable), switching from drawPath() to
drawRRect() requires rebaselining some of the existing results.
No new tests: coverage provided by existing tests.
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::fillRoundedRect):
* platform/graphics/skia/PlatformContextSkia.h:
(WebCore::PlatformContextSkia::drawRRect):
(WebCore):
2013-01-09 Arnaud Renevier <a.renevier@sisa.samsung.com>
Web Inspector: cannot undock inspector when window size is too small
https://bugs.webkit.org/show_bug.cgi?id=106054
Reviewed by Pavel Feldman.
Consider dockingUnavailable flag only when dockSide is in undocked
state.
* inspector/front-end/DockController.js:
(WebInspector.DockController.prototype._updateUI.get document):
2013-01-09 Zeno Albisser <zeno@webkit.org>
[Qt] WebGL content is incomplete when using multiple canvas
https://bugs.webkit.org/show_bug.cgi?id=106313
While we are using double buffering for WebGL,
we do not use a drawable that implements a mechanism
for swapping buffers.
Therefore we have to make sure that all GL commands
have been executed properly before copying the texture
onto the GraphicsSurface.
Reviewed by Simon Hausmann.
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
2013-01-09 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix make distcheck.
* GNUmakefile.list.am: Add missing headers.
2013-01-09 Zeno Albisser <zeno@webkit.org>
[Qt][Mac] GraphicsSurface does not need glEnable/glDisable for texture targets.
https://bugs.webkit.org/show_bug.cgi?id=106310
glEnable/glDisable for texture targets is only necessary
when using the fixed function pipeline.
Enabling or disabling the target might cause unexpected
behavior to texture bindings and is therefore considered harmful.
Reviewed by Noam Rosenthal.
* platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
(WebCore::createTexture):
(WebCore::GraphicsSurfacePrivate::copyFromTexture):
(WebCore::GraphicsSurface::platformCopyToGLTexture):
2013-01-09 Kunihiko Sakamoto <ksakamoto@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: min/max attributes should not make all fields read-only
https://bugs.webkit.org/show_bug.cgi?id=106422
Reviewed by Kent Tamura.
Do not make day-field of date input and month-field of month input readonly
even if min and max are the same.
Tests: fast/forms/date-multiple-fields/date-multiple-fields-readonly-subfield.html
fast/forms/month-multiple-fields/month-multiple-fields-readonly-subfield.html
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitField): Added check for date type.
2013-01-09 Kunihiko Sakamoto <ksakamoto@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Step-up/-down of week field should respect min/max attributes
https://bugs.webkit.org/show_bug.cgi?id=106416
Reviewed by Kent Tamura.
Make step-up/-down of the week field respect the min/max attributes of the element.
Note that it still accepts any keyboard inputs (the element
becomes 'invalid' state when out-of-range values entered).
Tests: fast/forms/week-multiple-fields/week-multiple-fields-readonly-subfield.html
fast/forms/week-multiple-fields/week-multiple-fields-stepup-stepdown-from-renderer.html
* css/html.css: Add a CSS rule for week field.
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitField):
Compute minimum/maximum values of week field from the min/max parameters of the element.
* html/shadow/DateTimeFieldElements.cpp:
(WebCore::DateTimeWeekFieldElement::DateTimeWeekFieldElement): Add mininum/maximum arguments.
(WebCore::DateTimeWeekFieldElement::create): Ditto.
(WebCore::DateTimeWeekFieldElement::clampValueForHardLimits): Added.
* html/shadow/DateTimeFieldElements.h:
(DateTimeWeekFieldElement): Add mininum/maximum arguments and declare clampValueForHardLimits.
2013-01-08 Arpita Bahuguna <arpitabahuguna@gmail.com>
Caret is incorrectly painted for a contenteditable <div> containing a <br> in vertical writing mode
https://bugs.webkit.org/show_bug.cgi?id=103621
Reviewed by Ryosuke Niwa.
While computing the caret rect for the given specific scenario, we
canonicalize our position. For the upstream (or downstream) block flow
candidates a check to ignore the nodes having renderers with zero height
is carried out. This is where we fail our check in the vertical writing mode.
In the vertical writing mode, instead of verifying the height of the descendants
of the candidate nodes, a check for their width should be carried out.
For our case, i.e. the <br> element contained inside the div, the bounding box
in the vertical writing mode would have a width greater than zero and height
equal to zero (as is to be expected in the vertical mode).
Thus, we need to make a check against the logical height. For the vertical
writing mode, the logical height should return the width of the computed
bounding box.
Test: editing/selection/caret-in-div-containing-br-in-vertical-mode.html
* dom/Position.cpp:
(WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
Have modified the code to verify against the logical height, instead
of simply the height, both in case of RenderText and RenderBox.
The logical height of the computed rects returns a value according
to the writing mode.
For the RenderText a new function, linesLogicalBoundingBox() is called
which returns the values depending on the writing mode.
Similarly, on the RenderBox, pixelSnappedLogicalHeight() is called which
too takes care of the writing mode internally. (borderBoundingBox()
internally calls on the pixelSnappedRect).
* rendering/RenderText.cpp:
(WebCore::RenderText::linesLogicalBoundingBox):
(WebCore):
* rendering/RenderText.h:
(RenderText):
New function is added to return the logical linesBoundingBox, i.e.,
the width and height of the linesBoundingBox are set according to
the writing mode.
2013-01-08 Tony Gentilcore <tonyg@chromium.org>
Remove a few unused includes from HTMLTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=106401
Reviewed by Adam Barth.
I happened to notice these while attempting to remove non-thread friendly deps from HTMLTreeBuilder.
No new tests because no new functionality.
* html/parser/HTMLTreeBuilder.cpp:
2013-01-08 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Regression(r138681): Add HAVE(ACCESSIBILITY) guard to atk files
https://bugs.webkit.org/show_bug.cgi?id=106290
Reviewed by Martin Robinson.
Some atk files don't use HAVE(ACCESSIBILITY). It might make build errors when
the macro isn't enabled.
* accessibility/atk/AXObjectCacheAtk.cpp:
* accessibility/atk/WebKitAccessibleHyperlink.h:
* accessibility/atk/WebKitAccessibleInterfaceAction.cpp:
* accessibility/atk/WebKitAccessibleInterfaceAction.h:
* accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
* accessibility/atk/WebKitAccessibleInterfaceDocument.cpp:
* accessibility/atk/WebKitAccessibleInterfaceDocument.h:
* accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
* accessibility/atk/WebKitAccessibleInterfaceEditableText.h:
* accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
* accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h:
* accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
* accessibility/atk/WebKitAccessibleInterfaceImage.cpp:
* accessibility/atk/WebKitAccessibleInterfaceImage.h:
* accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
* accessibility/atk/WebKitAccessibleInterfaceSelection.h:
* accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
* accessibility/atk/WebKitAccessibleInterfaceTable.h:
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
* accessibility/atk/WebKitAccessibleInterfaceText.h:
* accessibility/atk/WebKitAccessibleInterfaceValue.cpp:
* accessibility/atk/WebKitAccessibleInterfaceValue.h:
* accessibility/atk/WebKitAccessibleUtil.cpp:
* accessibility/atk/WebKitAccessibleUtil.h:
* accessibility/atk/WebKitAccessibleWrapperAtk.h:
2013-01-08 Matt Falkenhagen <falken@chromium.org>
Make NodeRenderingContext::parentRenderer and nextRenderer top layer aware
https://bugs.webkit.org/show_bug.cgi?id=103477
Reviewed by Hajime Morita.
Original patch by Elliott Sprehn (minor code and layout tests added).
Instead of using adjustInsertionPointForTopLayerElement and reassigning
pointers passed by reference we should just make nextRenderer and parentRenderer
handle the top layer properly. Right now they would return the wrong values
since we only correctly handle the top layer during renderer creation.
This makes handling of top layer elements consistent with handling of
other special renderering systems like flow threads.
Tests: fast/dom/HTMLDialogElement/modal-dialog-in-replaced-renderer.html
fast/dom/HTMLDialogElement/modal-dialog-in-table-column.html
fast/dom/HTMLDialogElement/modal-dialog-sibling.html
* dom/NodeRenderingContext.cpp:
(WebCore::isRendererReparented): Added this helper function. We must skip
renderers that are reparented in nextRenderer and previousRenderer.
(WebCore):
(WebCore::adjustInsertionPointForTopLayerElement): Removed this method.
(WebCore::NodeRenderingContext::nextRenderer):
(WebCore::NodeRenderingContext::previousRenderer):
(WebCore::NodeRenderingContext::parentRenderer):
(WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
2013-01-08 Kent Tamura <tkent@chromium.org>
REGRESSION(r135836): Invalid user input for input[type=number] should be cleared by input.value=""
https://bugs.webkit.org/show_bug.cgi?id=106284
Reviewed by Hajime Morita.
No new tests. Updates fast/forms/number/number/validity-badinput.html.
* html/NumberInputType.cpp:
(WebCore::NumberInputType::setValue):
If the new sanitized value is empty and innerTextValue is a bad input
(it means !valueChanged && !innerTextValue().isEmpty() because the new
sanitized value is empty), we need to update innerTextValue with the
empty string.
* html/NumberInputType.h:
(NumberInputType): Declare setValue.
2013-01-08 Nate Chapin <japhet@chromium.org>
REGRESSION(r138222?): [Mac WK1] http/tests/appcache/main-resource-redirect.html asserts in WebFrameLoaderClient::dispatchDidFinishLoading
https://bugs.webkit.org/show_bug.cgi?id=106123
Reviewed by Alexey Proskuryakov.
No new tests, fixing an existing test.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::continueAfterNavigationPolicy): Before calling m_resource->removeClient(this)
and potentially canceling the ResourceLoader, ensure it won't send resource load callbacks.
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::setSendCallbackPolicy):
2013-01-08 Alexandru Chiculita <achicu@adobe.com>
Assert in RenderGeometryMap::mapToContainer
https://bugs.webkit.org/show_bug.cgi?id=106068
Reviewed by Simon Fraser.
The assert was due to a pending layout, so the values used to compute the layer bounding boxes were incorrect.
That was because of the Document::setVisualUpdatesAllowed mechanism, which triggers a compositor update
and a repaint, but before this patch didn't check whether a layout was pending or not.
Added a check in Document::setVisualUpdatesAllowed for pending layouts and bailed when such case happened.
A layout will come anyway and trigger the correct updates. Couldn't not force an inline layout at that time
as this function is sometimes called really soon, when the WebKit parts are not fully created yet and updates were
calling back into some client callbacks that were not ready.
Also added an assert in RenderLayerCompositor::updateCompositingLayers to check for other cases that might
try to update the layers with a layout pending. That one led to finding an issue in the RenderMarquee, which
was updating on a timer callback. It might happen that a layout is pending while this timer fires and it
tries to update the scroll position of the layers while a layout is still due.
There was already a protection to bail if a layout is pending in RenderMarquee::timerFired, so I've just broadened the scope
to the whole RenderView to catch all the layout requests.
Tests: compositing/geometry/assert-layout-not-done.html
compositing/geometry/assert-marquee-timer.html
* dom/Document.cpp:
(WebCore::Document::setVisualUpdatesAllowed):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingLayers):
* rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::timerFired):
2013-01-08 Justin Novosad <junov@google.com>
CanvasRenderingContext2D::setFont argument may reference destroyed object
https://bugs.webkit.org/show_bug.cgi?id=106385
Reviewed by Abhishek Arya.
No new tests: covered by fast/canvas/canvas-measureText.html
This is a re-write of r138994. Fixing bug in setFont instead of
workaround at call site.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setFont):
(WebCore::CanvasRenderingContext2D::accessFont):
2013-01-08 David Grogan <dgrogan@chromium.org>
IndexedDB: Provide LevelDB with IDBEnv instead of Env::Default
https://bugs.webkit.org/show_bug.cgi?id=106135
Reviewed by Tony Chang.
IDBEnv only changes the name of the histogram where errors are logged.
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::LevelDBDatabase::open):
(WebCore::LevelDBDatabase::openInMemory):
2013-01-08 Brandon Jones <bajones@chromium.org>
Make WebGLRenderingContext inherit from ActiveDOMObject
https://bugs.webkit.org/show_bug.cgi?id=104733
Reviewed by Adam Barth.
When ActiveDOMObject::stop is called on the WebGLRenderingContext the
DrawingBuffer and GraphicsContext3D instances are forcibly released in
order to keep GPU memory utilization to a minimum.
Incorporated new layout test based on one just added to the WebGL
conformance suite. Also tested manually by reloading and
navigating between many WebGL apps.
Test: fast/canvas/webgl/context-release-upon-reload.html
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::V8HTMLCanvasElement::getContextCallback):
Removed garbage collection hack added in Bug 76255.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::create):
Call suspendIfNeeded per ActiveDOMObject contract.
(WebCore::WebGLRenderingContext::WebGLRenderingContext):
Call ActiveDOMObject constructor.
(WebCore::WebGLRenderingContext::~WebGLRenderingContext):
Call destroyGraphicsContext3D.
(WebCore::WebGLRenderingContext::destroyGraphicsContext3D):
Drop DrawingBuffer backing store and delete GraphicsContext3D.
(WebCore::WebGLRenderingContext::hasPendingActivity):
Always return false.
(WebCore::WebGLRenderingContext::stop):
Force lost context upon page reload or navigation.
* html/canvas/WebGLRenderingContext.h:
(WebGLRenderingContext):
Inherit from ActiveDOMObject and override notifications.
* platform/graphics/blackberry/DrawingBufferBlackBerry.cpp:
(WebCore):
(WebCore::DrawingBuffer::clearPlatformLayer):
Add currently no-op implementation.
* platform/graphics/cairo/DrawingBufferCairo.cpp:
(WebCore):
(WebCore::DrawingBuffer::clearPlatformLayer):
Add currently no-op implementation.
* platform/graphics/chromium/DrawingBufferChromium.cpp:
(WebCore::DrawingBufferPrivate::clearTextureId):
Clear texture ID from compositor's layer.
(DrawingBufferPrivate):
(WebCore::DrawingBuffer::framebuffer):
Moved around to reduce number of #ifdefs.
(WebCore):
(WebCore::DrawingBuffer::platformLayer):
(WebCore::DrawingBuffer::clearPlatformLayer):
Tell compositor to stop referencing DrawingBuffer's texture.
* platform/graphics/clutter/DrawingBufferClutter.cpp:
(WebCore):
(WebCore::DrawingBuffer::clearPlatformLayer):
Add currently no-op implementation.
* platform/graphics/gpu/DrawingBuffer.cpp:
(WebCore::DrawingBuffer::clear):
Call clearPlatformLayer before deleting OpenGL resources.
* platform/graphics/gpu/DrawingBuffer.h:
(DrawingBuffer):
Add clearPlatformLayer.
* platform/graphics/gpu/mac/DrawingBufferMac.mm:
(WebCore):
(WebCore::DrawingBuffer::clearPlatformLayer):
Add currently no-op implementation.
* platform/graphics/gpu/qt/DrawingBufferQt.cpp:
(WebCore):
(WebCore::DrawingBuffer::clearPlatformLayer):
Add currently no-op implementation.
2013-01-08 Tony Gentilcore <tonyg@chromium.org>
Remove dependency on Document from HTMLConstructionSite::inQuirksMode()
https://bugs.webkit.org/show_bug.cgi?id=106375
Reviewed by Adam Barth.
This is another step towards removing main thread object dependencies
from the parser.
No new tests because no new functionality.
* dom/Document.h:
* html/HTMLDocument.cpp:
* html/HTMLDocument.h:
(HTMLDocument):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::HTMLConstructionSite):
(WebCore::HTMLConstructionSite::setDefaultCompatibilityMode):
(WebCore):
(WebCore::HTMLConstructionSite::setCompatibilityMode):
(WebCore::HTMLConstructionSite::setCompatibilityModeFromDoctype):
(WebCore::HTMLConstructionSite::insertDoctype):
(WebCore::HTMLConstructionSite::inQuirksMode):
* html/parser/HTMLConstructionSite.h:
(HTMLConstructionSite):
2013-01-08 Florin Malita <fmalita@chromium.org>
Remove unused GraphicsContext::addInnerRoundedRectClip()
https://bugs.webkit.org/show_bug.cgi?id=106376
Reviewed by Andreas Kling.
Since there don't seem to be any users left for it, remove addInnerRoundedRectClip().
No new tests: no functional changes.
* platform/graphics/GraphicsContext.h:
(GraphicsContext):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
* platform/graphics/cg/GraphicsContextCG.cpp:
* platform/graphics/openvg/GraphicsContextOpenVG.cpp:
* platform/graphics/qt/GraphicsContextQt.cpp:
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
* platform/graphics/wx/GraphicsContextWx.cpp:
2013-01-08 Justin Novosad <junov@google.com>
Color bleeding with rounded rectangles on high dpi displays
https://bugs.webkit.org/show_bug.cgi?id=106373
Reviewed by Simon Fraser.
Test: fast/backgrounds/gradient-background-leakage-hidpi.html
Avoid using the BackgroundBleedShrinkBackground draw strategy for
RenderBox when border width is less than two layout units. This
is because rounded rectangles are always snapped to integer layout
coordinates, even with subpixel layout enabled.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::determineBackgroundBleedAvoidance):
2013-01-08 Elliott Sprehn <esprehn@chromium.org>
Merge getLineAtIndex into RenderBlock::lineAtIndex
https://bugs.webkit.org/show_bug.cgi?id=106379
Reviewed by Eric Seidel.
getLineAtIndex can be merged into lineAtIndex, which was it's only caller.
No new tests, just refactoring.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::lineAtIndex):
(WebCore::RenderBlock::lineCount):
* rendering/RenderBlock.h:
(RenderBlock):
2013-01-08 Rafael Weinstein <rafaelw@chromium.org>
[HTMLTemplateElement] Allow <template> content to be inspected
https://bugs.webkit.org/show_bug.cgi?id=105839
Reviewed by Pavel Feldman.
In addition to the plumbing which allows template contents to be
displayed within the inspector, this patch adds a manually-managed
weakref from the template document back to its host document (typically
the creator). This is required so that the inspector agent can be found
for template elements.
* dom/Document.cpp:
(WebCore::Document::~Document):
(WebCore::Document::templateDocument):
* dom/Document.h:
(Document):
(WebCore::Document::setTemplateDocumentHost):
(WebCore::Document::templateDocumentHost):
* editing/markup.cpp:
(WebCore::createFragmentForInnerOuterHTML):
* html/HTMLTemplateElement.cpp:
(WebCore::HTMLTemplateElement::content):
* inspector/Inspector.json:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForNode):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::instrumentingAgentsForDocument):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode):
(WebInspector.DOMNode.prototype.hasChildNodes):
(WebInspector.DOMNode.prototype._insertChild):
(WebInspector.DOMNode.prototype._setChildrenPayload):
2013-01-08 Hajime Morrita <morrita@google.com>
[Shadow DOM] Distribution related code on ShadowRoot should be minimized.
https://bugs.webkit.org/show_bug.cgi?id=106282
Reviewed by Dimitri Glazkov.
ShadowRoot had a certain amount of logic which is dedicated for
node distribution computation. These code is going to be compiled
out (Bug 103339) and better be part of the node distribution
algorithm, which is ScopeContentDistribution class.
This change
- Renames ShadowRootContentDistributionData to
ScopeContentDistribution. New name is concise and a bit more
meaningful: It owns per TreeScope distribution state.
- Moves distribution related code from ShadowRoot to ScopeContentDistribution
No new tests. Refactoring.
* WebCore.exp.in:
* css/StyleScopeResolver.cpp:
(WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
(WebCore::StyleScopeResolver::matchHostRules):
* dom/ComposedShadowTreeWalker.cpp:
(WebCore::nodeCanBeDistributed):
(WebCore::ComposedShadowTreeWalker::traverseBackToYoungerShadowRoot):
(WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost):
(WebCore::AncestorChainWalker::parent):
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::collectSelectFeatureSetFrom):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::insertedInto):
(WebCore::ShadowRoot::removedFrom):
(WebCore::ShadowRoot::ensureScopeDistribution):
(WebCore::ShadowRoot::reportMemoryUsage):
* dom/ShadowRoot.h:
(WebCore):
(ShadowRoot):
(WebCore::ShadowRoot::scopeDistribution):
* html/shadow/ContentDistributor.cpp:
(WebCore::ScopeContentDistribution::ScopeContentDistribution):
(WebCore::ScopeContentDistribution::invalidateInsertionPointList):
(WebCore::ScopeContentDistribution::ensureInsertionPointList):
(WebCore::ScopeContentDistribution::registerInsertionPoint):
(WebCore::ScopeContentDistribution::unregisterInsertionPoint):
(WebCore::ScopeContentDistribution::hasShadowElement):
(WebCore):
(WebCore::ScopeContentDistribution::hasContentElement):
(WebCore::ScopeContentDistribution::countElementShadow):
(WebCore::ScopeContentDistribution::hasInsertionPoint):
(WebCore::ScopeContentDistribution::assignedTo):
(WebCore::ContentDistributor::distribute):
(WebCore::ContentDistributor::invalidate):
* html/shadow/ContentDistributor.h:
(ScopeContentDistribution):
(WebCore::ScopeContentDistribution::registerElementShadow):
(WebCore::ScopeContentDistribution::unregisterElementShadow):
(WebCore::ScopeContentDistribution::hasElementShadow):
* html/shadow/HTMLShadowElement.cpp:
(WebCore::HTMLShadowElement::olderShadowRoot):
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::insertedInto):
(WebCore::InsertionPoint::removedFrom):
(WebCore::InsertionPoint::contains):
(WebCore):
(WebCore::resolveReprojection):
* html/shadow/InsertionPoint.h:
(InsertionPoint):
(WebCore):
* testing/Internals.cpp:
(WebCore::Internals::hasShadowInsertionPoint):
(WebCore::Internals::hasContentElement):
(WebCore::Internals::countElementShadow):
2013-01-08 Tom Sepez <tsepez@chromium.org>
Copy-paste preserves <embed> tags containing active content.
https://bugs.webkit.org/show_bug.cgi?id=77625
Reviewed by Ryosuke Niwa.
Test: editing/pasteboard/paste-noplugin.html
* dom/FragmentScriptingPermission.h:
(WebCore::scriptingContentIsAllowed):
(WebCore::pluginContentIsAllowed):
Add new permission to restrict plugin pasting. Add inline functions to check
the implications of each permission rather than having a list of raw comparisions
sprinkled throughout the code.
* editing/markup.cpp:
(WebCore::createFragmentFromMarkup):
Revert back to unsafe plugin pasting regardless of caller's intentions when
the settings allow it.
* dom/Element.cpp:
(WebCore::Element::parserSetAttributes):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertScriptElement):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::endElementNs):
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::parseEndElement):
Use new inline functions to check implications of permissions rather than raw
comparisions.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTag):
Check if plugin pasting is allowed before inserting applet/embed/oject elements.
* page/Settings.in:
Declaration of new unsafePluginPastingEnabled setting.
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::documentFragment):
* platform/blackberry/PasteboardBlackBerry.cpp:
(WebCore::Pasteboard::documentFragment):
* platform/chromium/DragDataChromium.cpp:
(WebCore::DragData::asFragment):
* platform/chromium/PasteboardChromium.cpp:
(WebCore::Pasteboard::documentFragment):
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::documentFragment):
* platform/qt/DragDataQt.cpp:
(WebCore::DragData::asFragment):
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::documentFragment):
* platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::fragmentFromCFHTML):
(WebCore::fragmentFromHTML):
* platform/wx/PasteboardWx.cpp:
(WebCore::Pasteboard::documentFragment):
Pass DisallowScriptingAndPluginContent enum value.
2013-01-08 Alexis Menard <alexis@webkit.org>
WebKit does not reject some cubic-bezier form values for transition-timing-function.
https://bugs.webkit.org/show_bug.cgi?id=106369
Reviewed by Dean Jackson.
http://www.w3.org/TR/css3-transitions/#transition-timing-function-property
describes restricitions on cubic-bezier values where the x values of
the curve should be between [0, 1] and y values can exceed this range.
WebKit was not following the specification by allowing x values
exceeding the range.
The spec also says that we should reject the defintion if the condition
is not respected which is what the new code does.
Test: transitions/transitions-parsing.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseAnimationTimingFunction):
2013-01-08 Andreas Kling <akling@apple.com>
Heap-use-after-free in bool WebCore::SelectorChecker::checkOneSelector.
<http://webkit.org/b/105834>
Reviewed by Antti Koivisto.
Suppress the DOMSubtreeModified event when synchronizing the "style" attribute and we've
instantiated an Attr node wrapper for the said attribute.
Also added an assertion that Document's StyleResolver isn't cleared during style recalc,
which will help us catch this kind of bug in the future.
Test: fast/dom/mutation-event-listener-with-dirty-inline-style-crash.html
* dom/Document.cpp:
(WebCore::Document::styleResolverThrowawayTimerFired):
* dom/Element.cpp:
(WebCore::Element::setAttributeInternal):
2013-01-08 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r139096.
http://trac.webkit.org/changeset/139096
https://bugs.webkit.org/show_bug.cgi?id=106367
not a complete fix (Requested by bweinstein on #webkit).
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot):
2013-01-08 Brian Weinstein <bweinstein@apple.com>
Plug-ins shouldn’t be added to list to autostart if you start a plugin in private browsing.
https://bugs.webkit.org/show_bug.cgi?id=106348
<rdar://problem/12968442>
Reviewed by Anders Carlsson.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Don't call addAutoStartOrigin if we are
in private browsing mode.
2013-01-08 Chris Fleizach <cfleizach@apple.com>
AX: native popup buttons should not use textUnderElement for their title
https://bugs.webkit.org/show_bug.cgi?id=106349
Reviewed by Ryosuke Niwa.
Native popup buttons (<select> elements) were calculating its title based on the text
under the element. When Bug 103794 introduced a more complete way of getting render text,
it causes popup buttons to start returning a title.
The fix is that we should not be calculating a title for a native popup button from its children.
Existing tests cover this functionality. This will fix a failing test.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::visibleText):
2013-01-08 Ojan Vafai <ojan@chromium.org>
text controls are sized too small when a percentage height is set
https://bugs.webkit.org/show_bug.cgi?id=106277
Reviewed by Tony Chang.
This makes our behavior match Firefox 17, IE 9 and Opera 12.
The current logic came from http://trac.webkit.org/changeset/13723,
which itself was copy-pasted from RenderReplaced and no longer has this clause..
Test: fast/forms/percent-height-auto-width-form-controls.html
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::computePreferredLogicalWidths):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::computePreferredLogicalWidths):
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::computePreferredLogicalWidths):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::computePreferredLogicalWidths):
2013-01-08 Peter Beverloo <peter@chromium.org>
[Chromium] Modify Android's user agent CSS to not set a border-radius on select elements
https://bugs.webkit.org/show_bug.cgi?id=106327
Reviewed by Adam Barth.
Android's user agent CSS overrides the style applied to <select>
elements with a @size or @multiple attribute, and then applies
(among other things) a border-radius of 5 pixels. While select
elements with a larger size or multiple selection should appear
as drop-down boxes for now, setting the border radius causes
Chromium to skip rendering the background and border, making
them hard to read when the page relies on the default styling.
This is covered by existing pixel tests.
* css/themeChromiumAndroid.css:
(select[size][multiple]):
2013-01-08 Mike West <mkwst@chromium.org>
CSP: 'none' should take effect only if no other source expression is present.
https://bugs.webkit.org/show_bug.cgi?id=106314
Reviewed by Adam Barth.
WebKit's handling of 'none' in Content Security Policy source lists
doesn't quite match the spec. Currently, we're treating any source list
that contains 'none' as its first token as an empty list. That is:
"script-src 'none'" is handled in the same way as
"script-src 'none' example.com". Based on a bit of public-webappsec@
discussion[1], the behavior we actually want should treat the first as
an empty list, while treating the second as "script-src example.com". In
other words, 'none' in a source list is a no-op, unless it is the _only_
item in the source list.
This patch adjusts our parsing behavior accordingly, and tweaks the
console log we emit for invalid source expressions to warn specifically
about this case.
[1]: http://lists.w3.org/Archives/Public/public-webappsec/2013Jan/0006.html
Test: http/tests/security/contentSecurityPolicy/source-list-parsing-none.html
* page/ContentSecurityPolicy.cpp:
(WebCore::isSourceListNone):
A new static method that returns true when given a string that
contains only 'none' (potentially surrounded by whitespace), and
false otherwise.
(WebCore):
(WebCore::CSPSourceList::parse):
Move the 'none' check into the initial layer of parsing, which means
that we can drop the 'isFirstSourceInList' check entirely.
(WebCore::CSPSourceList::parseSource):
Since we've already checked for 'none' in ::parse, we can at this
point safely treat any occurance of 'none' in the source list as an
invalid expression.
(WebCore::ContentSecurityPolicy::reportInvalidSourceExpression):
If the invalid expression is 'none', add a clarification to the
console message, noting that 'none' only has effect when it's all
alone.
2013-01-08 Alok Priyadarshi <alokp@chromium.org>
Added OpaqueRegionSkia::currentTrackingOpaqueRect
[chromium] Add OpaqueRegionSkia::currentTrackingOpaqueRect
https://bugs.webkit.org/show_bug.cgi?id=106267
Reviewed by Stephen White.
No new tests needed. No change in functionality.
* platform/graphics/skia/OpaqueRegionSkia.cpp:
(WebCore::OpaqueRegionSkia::applyOpaqueRegionFromLayer):
(WebCore::OpaqueRegionSkia::markRectAsOpaque):
(WebCore::OpaqueRegionSkia::markRectAsNonOpaque):
(WebCore::OpaqueRegionSkia::markAllAsNonOpaque):
(WebCore::OpaqueRegionSkia::currentTrackingOpaqueRect):
(WebCore):
* platform/graphics/skia/OpaqueRegionSkia.h:
(OpaqueRegionSkia):
2013-01-08 Zan Dobersek <zandobersek@gmail.com>
[GTK] Build failures when building with python 3.3
https://bugs.webkit.org/show_bug.cgi?id=106194
Reviewed by Dirk Pranke.
Python 3.3 introduced changes to dictionaries which can result in changed
iteration order. More about these changes:
http://docs.python.org/3.3/whatsnew/3.3.html#pep-412-key-sharing-dictionary
http://www.python.org/dev/peps/pep-0412/#cons
This causes the Source/WebCore/inspector/generate-inspector-protocol-version
script to fail the self-testing when using Python 3.3. These changes work
around this problem by not checking for expected errors in order but rather
for their presence in the error output sequence. The number of actual errors
is also checked to be equal to the number of expected errors.
No new tests - no new functionality.
* inspector/generate-inspector-protocol-version:
(self_test):
2013-01-08 Antoine Quint <graouts@apple.com>
<track> element's mode set to "disabled" after load although it was explicitly set to "hidden"
https://bugs.webkit.org/show_bug.cgi?id=105536
Remove all concept of "showing by default". This means removing the showingByDefault()
and setShowingByDefault() methods on TextTrack. As I was going through this code,
I also noticed that in HTMLMediaElement::configureTextTrackGroup(), we would set
defaultTrack to textTrack.get() even though defaultTrack was created to be a RefPtr<TextTrack>.
As a result, we can now pass an additional 8 tests from the Opera-submitted test suite:
LayoutTests/media/track/opera/interfaces/TextTrack/addCue.html
LayoutTests/media/track/opera/interfaces/TextTrack/removeCue.html
LayoutTests/media/track/opera/interfaces/TextTrackCue/endTime.html
LayoutTests/media/track/opera/interfaces/TextTrackCue/startTime.html
LayoutTests/media/track/opera/interfaces/TextTrackCue/align.html
LayoutTests/media/track/opera/interfaces/TextTrackCue/id.html
LayoutTests/media/track/opera/interfaces/TextTrackCue/pauseOnExit.html
LayoutTests/media/track/opera/interfaces/TextTrackCue/track.html
Reviewed by Eric Carlson.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::configureTextTrackGroup):
(WebCore::HTMLMediaElement::toggleTrackAtIndex):
* html/track/TextTrack.cpp:
(WebCore::TextTrack::TextTrack):
(WebCore::TextTrack::setMode):
(WebCore::TextTrack::isRendered):
* html/track/TextTrack.h:
(WebCore::TextTrack::mode):
(TextTrack):
2013-01-08 Mark Lam <mark.lam@apple.com>
Removed the need for the ProposedDatabase mechanism.
https://bugs.webkit.org/show_bug.cgi?id=106292.
Reviewed by Sam Weinig.
No new tests.
* Modules/webdatabase/AbstractDatabase.cpp:
(WebCore::AbstractDatabase::details):
(WebCore):
* Modules/webdatabase/AbstractDatabase.h:
(AbstractDatabase):
* Modules/webdatabase/DatabaseContext.cpp:
(WebCore::DatabaseContext::databaseExceededQuota):
* Modules/webdatabase/DatabaseContext.h:
(DatabaseContext):
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::fullPathForDatabaseNoLock):
(WebCore::DatabaseTracker::detailsForNameAndOrigin):
* Modules/webdatabase/DatabaseTracker.h:
(DatabaseTracker):
* Modules/webdatabase/SQLTransactionClient.cpp:
(WebCore::SQLTransactionClient::didExceedQuota):
* loader/EmptyClients.h:
(WebCore::EmptyChromeClient::exceededDatabaseQuota):
* page/ChromeClient.h:
(ChromeClient):
2013-01-08 Chris Fleizach <cfleizach@apple.com>
AX: PopUpButtons do not report that AXValueAttribute is supported
https://bugs.webkit.org/show_bug.cgi?id=106333
Reviewed by Ryosuke Niwa.
The Mac platform expects that AXPopUpButton's expose the AXValue attribute.
Test: platform/mac/accessibility/popup-button-exposes-axvalue.html
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isPopUpButton):
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
2013-01-08 Alexis Menard <alexis@webkit.org>
transition-delay and transition-duration return incorrect values when querying using the computed style.
https://bugs.webkit.org/show_bug.cgi?id=105432
Reviewed by Dean Jackson.
When setting the transition-delay to 10ms for example the value of transition-delay
on the computed style was incorrect, it should return 0.01s but it was
returning something like 0.0099999999...s. In fact the bug was after
the parsing step when creating the Animation object where a conversion
from a double to float was done. This conversion is not needed as the
animation class expects double for delay and transition times.
Test: transitions/transitions-parsing.html
* css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapAnimationDelay):
(WebCore::CSSToStyleMap::mapAnimationDuration):
2013-01-08 Hajime Morrita <morrita@google.com>
[Shadow DOM] Refactoring: invalidateParentDistributionIfNecessary() calls are too intrusive
https://bugs.webkit.org/show_bug.cgi?id=106305
Reviewed by Dimitri Glazkov.
Scattering invalidateParentDistributionIfNecessary() looks bad because
- it has long name whose terminology is cryptic for people who don't know much about Shadow DOM standard.
- its calls are always paired with setNeedsStyleRecalc() and people do setNeedsStyleRecalc()
need to be aware about distribution feature bit tracking. Separate invalidateParentDistributionIfNecessary()
call doesn't help that recognition.
This change introduces Element::didAffectSelector() to replace a setNeedsStyleRecalc()-i37y() call sequence.
SelectRuleFeatureSet::FeatureRule is renamed AffectedSelectorType so that it explains its purpose
in a bit more plain WebKit term.
No new tests. Refactoring.
* dom/Document.cpp:
(WebCore::Document::setCSSTarget): Adopted didAffectSelector.
* dom/Element.cpp:
(WebCore::Element::didAffectSelector): Added.
(WebCore):
* dom/Element.h:
(Element):
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::didAffectSelector): Morphed from invalidateParentDistributionIfNecessary().
* dom/ElementShadow.h:
(ElementShadow):
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parseAttribute): Adopted didAffectSelector
* html/HTMLDetailsElement.cpp:
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::disabledAttributeChanged): Adopted didAffectSelector
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setChecked): Adopted didAffectSelector
(WebCore::HTMLInputElement::setIndeterminate): Adopted didAffectSelector
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::parseAttribute): Adopted didAffectSelector
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::parseAttribute): Adopted didAffectSelector
(WebCore::HTMLOptionElement::setSelectedState): Adopted didAffectSelector
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::didElementStateChange): Adopted didAffectSelector
* html/HTMLSummaryElement.cpp:
* html/shadow/HTMLContentElement.cpp:
* html/shadow/SelectRuleFeatureSet.cpp:
(WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector): Followed renaming.
* html/shadow/SelectRuleFeatureSet.h: Followed renaming.
(WebCore::SelectRuleFeatureSet::hasSelectorForChecked):
(WebCore::SelectRuleFeatureSet::hasSelectorForEnabled):
(WebCore::SelectRuleFeatureSet::hasSelectorForDisabled):
(WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
(WebCore::SelectRuleFeatureSet::hasSelectorForLink):
(WebCore::SelectRuleFeatureSet::hasSelectorForTarget):
(WebCore::SelectRuleFeatureSet::hasSelectorForVisited):
(WebCore::SelectRuleFeatureSet::hasSelectorFor):
(WebCore::SelectRuleFeatureSet::setSelectRuleFeature):
2013-01-08 Sergio Villar Senin <svillar@igalia.com>
[Qt] Fix build with --web-audio
https://bugs.webkit.org/show_bug.cgi?id=106328
Reviewed by Philippe Normand.
Build fix, no new tests required.
* Target.pri: addded missing OfflineAudioContext.[cpp|h].
2013-01-08 Martin Robinson <mrobinson@igalia.com>
[GTK] Login & password shown in browsers' URL entry after successful HTTP authentication
https://bugs.webkit.org/show_bug.cgi?id=105190
Reviewed by Carlos Garcia Campos.
Test: http/tests/misc/authentication-redirect-4/authentication-sent-to-redirect-same-origin-url.html
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::restartedCallback): After sending a redirect with credentials to libsoup, strip
the credentials from the request. This ensures that the credentials do not show up in
the user agent or in document.location.
2013-01-08 Keishi Hattori <keishi@webkit.org>
[Chromium] Don't confine page popups to root view on Mac
https://bugs.webkit.org/show_bug.cgi?id=106315
Reviewed by Kent Tamura.
No new tests.
* Resources/pagepopups/pickerCommon.js:
(adjustWindowRect): Remove code to confine to root view.
2012-12-12 Antonio Gomes <a1.gomes@sisa.samsung.com>
Make RenderLayer::updateNeedsCompositedScrolling scrollbars agnostic
https://bugs.webkit.org/show_bug.cgi?id=95494
Reviewed by James Robinson.
Some ports (including Qt-wk1 and BlackBerry) allow disabling
scrollbars at FrameView creation level. That said, cheking for the
scrollbars presence in order to determine if we should promote a
RenderLayer to use composited scrolling is not ideal, as done in
RenderLayerCompositor::updateNeedsCompositedScrolling()
Instead, this patch makes the RenderLayer class to query its FrameView
if it has been cached as scrollable by the later.
Least, patch also takes this opportunity to remove RenderLayer::allowsScrolling,
which became unused.
No new tests added, since there is no *practical* behavior change: ports
like Chromium and others who currently check for the scrollbars presence
in order to determine either to promote or not layers to benefit of composited
scrolling should not be affected.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateNeedsCompositedScrolling):
* rendering/RenderLayer.h:
(RenderLayer):
2012-12-20 Antonio Gomes <a1.gomes@sisa.samsung.com>
Introduce a compositing trigger for scrollable frames
https://bugs.webkit.org/show_bug.cgi?id=105573
Reviewed by James Robinson.
Make requiresCompositingForScrollableFrame to check the
newly added compositing trigger instead of the associated setting.
It introduces no have behavior change, so no new tests. Patch basically
does some preparation work for adding support to composite scrollable inner
frames independently from "force compositing mode" bit.
* page/ChromeClient.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
(WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame):
2013-01-08 Kihong Kwon <kihong.kwon@samsung.com>
Add DeviceProximityController to support Device Proximity Events.
https://bugs.webkit.org/show_bug.cgi?id=97630
Reviewed by Hajime Morita.
Implement DeviceProximityController which is inherited from DeviceController to support Device Proximity Events.
DeviceProximityController has two major functionalities.
- When listener is added, DeviceProximityController stores DOMWindow pointer to m_listeners
and start gathering proximity event.
- When DeviceProximityController receives a proximity event from client, fire an event using m_listeners.
In addition, setDeviceProximity function is added to Internals for layout test.
Tests: proximity/add-listener-from-callback.html
proximity/basic-operation.html
proximity/create-event.html
proximity/event-after-navigation.html
proximity/multiple-frames.html
proximity/no-page-cache.html
proximity/optional-event-properties.html
proximity/updates.html
proximity/window-property.html
* CMakeLists.txt:
* GNUmakefile.am:
* GNUmakefile.list.am:
* Modules/proximity/DeviceProximityClient.h: Added.
(WebCore):
(DeviceProximityClient):
(WebCore::DeviceProximityClient::~DeviceProximityClient):
* Modules/proximity/DeviceProximityController.cpp: Added.
(WebCore):
(WebCore::DeviceProximityController::DeviceProximityController):
(WebCore::DeviceProximityController::create):
(WebCore::DeviceProximityController::didChangeDeviceProximity):
(WebCore::DeviceProximityController::deviceProximityClient):
(WebCore::DeviceProximityController::hasLastData):
(WebCore::DeviceProximityController::getLastEvent):
(WebCore::DeviceProximityController::supplementName):
(WebCore::DeviceProximityController::from):
(WebCore::DeviceProximityController::isActiveAt):
(WebCore::provideDeviceProximityTo):
* Modules/proximity/DeviceProximityController.h: Added.
(WebCore):
(DeviceProximityController):
(WebCore::DeviceProximityController::~DeviceProximityController):
* Target.pri:
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* WebCore.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcproj/WebCoreCommon.vsprops:
* WebCore.xcodeproj/project.pbxproj:
* history/PageCache.cpp:
When a page has Device Proximity Event Listener, it has not to be cached like Device Orientation.
(WebCore::logCanCachePageDecision):
(WebCore::PageCache::canCache):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
(WebCore::DOMWindow::removeAllEventListeners):
* testing/Internals.cpp:
(WebCore::Internals::setDeviceProximity):
(WebCore):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2013-01-03 Sergio Villar Senin <svillar@igalia.com>
[GTK] Add WebP image support
https://bugs.webkit.org/show_bug.cgi?id=105915
Reviewed by Martin Robinson.
* GNUmakefile.am: add WTF_USE_WEBP definition.
* GNUmakefile.list.am: properly sort image decoders in the sources list.
2013-01-08 Steve Block <steveblock@chromium.org>
Rename 'IntSize toSize(const IntPoint&)' to 'toIntSize'
https://bugs.webkit.org/show_bug.cgi?id=106307
This matches other method names which distinguish between sizes and
points. See https://bugs.webkit.org/show_bug.cgi?id=105992#c4.
Reviewed by Kentaro Hara.
Refactoring only, no functional change.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::scrollTo):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
* platform/ScrollView.h:
(WebCore::ScrollView::scrollOffset):
* platform/graphics/IntPoint.h:
(WebCore::toIntSize):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::positionNewlyCreatedOverflowControls):
(WebCore::RenderLayer::paintOverflowControls):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2013-01-08 Yoshifumi Inoue <yosin@chromium.org>
Dragging over an element with scrollbars should scroll the element when dragging near edges
https://bugs.webkit.org/show_bug.cgi?id=39725
Reviewed by Hajime Morita.
This patch introduces auto scrolling functionality during drag-and-drop
when drop source is near edge of scrollable element.
When drop source is inside 20px of scrollable element more than 200ms,
scrollable element is automatically scrolled every 50ms toward drop
source position, e.g. vertically scroll up when drop source is in top
edge.
Test: fast/events/drag-and-drop-autoscroll.html
* page/AutoscrollController.cpp:
(WebCore::AutoscrollController::AutoscrollController): Changed to initialize m_dragAndDropAutoscrollStartTime.
(WebCore::AutoscrollController::updateDragAndDrop): Added for start/stop autoscroll during drag-and-drop.
(WebCore::AutoscrollController::autoscrollTimerFired): Changed to add autoscroll for drag-and-drop, and to pass last know position to RenderBox::autoscroll().
* page/AutoscrollController.h:
(AutoscrollController): Changed to add updateDragAndDrop() and m_dragAndDropAutoscrollReferencePosition and m_dragAndDropAutoscrollStartTime.
* page/EventHandler.cpp:
(WebCore::EventHandler::updateDragAndDrop): Changed to call AutoscrollController::updateDragAndDrop().
* rendering/RenderBox.cpp:
(WebCore::RenderBox::autoscroll): Changed for new parameter position.
(WebCore::RenderBox::calculateAutoscrollDirection): Added for autoscroll.
* rendering/RenderBox.h:
(RenderBox):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::autoscroll): Changed for new parameter position and move updateSelectionForMouseDrag() to AutoscrollController.
* rendering/RenderLayer.h:
(RenderLayer):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::autoscroll): Changed for new parameter position.
* rendering/RenderListBox.h:
(RenderListBox):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::autoscroll): Changed for new parameter position.
* rendering/RenderTextControlSingleLine.h:
(RenderTextControlSingleLine):
2013-01-08 Jochen Eisinger <jochen@chromium.org>
REGRESSION(r139036): 'WebCore::DateTimeSymbolicFieldElement::isInRange' hides overloaded virtual function
https://bugs.webkit.org/show_bug.cgi?id=106311
Unreviewed build fix.
* html/shadow/DateTimeSymbolicFieldElement.cpp:
(WebCore::DateTimeSymbolicFieldElement::stepDown):
(WebCore::DateTimeSymbolicFieldElement::stepUp):
* html/shadow/DateTimeSymbolicFieldElement.h:
(WebCore::DateTimeSymbolicFieldElement::indexIsInRange): renamed method to avoid hiding Element::isInRange
2013-01-08 Adam Barth <abarth@webkit.org>
HTMLTreeBuilder shouldn't keep a Document pointer
https://bugs.webkit.org/show_bug.cgi?id=106268
Reviewed by Eric Seidel.
The tree builder shouldn't interact with the Document directly.
Instead, the tree builder should use the HTMLConstructionSite to
interact with the document.
Unfortunately, the HTMLTreeBuilder does need to read back one bit of
information (the quirks mode) from the Document. Currently the
HTMLConstructionSite reads the information directly from the Document.
If/when we move the parser onto its own thread, we'll need to keep
track of this bit on the parser thread. (We should be able to
encapsulate all that logic in the HTMLConstructionSite.)
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::setDefaultCompatibilityMode):
(WebCore):
(WebCore::HTMLConstructionSite::finishedParsing):
(WebCore::HTMLConstructionSite::inQuirksMode):
* html/parser/HTMLConstructionSite.h:
(HTMLConstructionSite):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::detach):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::defaultForInitial):
(WebCore::HTMLTreeBuilder::finished):
* html/parser/HTMLTreeBuilder.h:
(HTMLTreeBuilder):
2013-01-08 Yuki Sekiguchi <yuki.sekiguchi@access-company.com>
Float block's logical top margin is illegal in vertical writing mode.
https://bugs.webkit.org/show_bug.cgi?id=96597
Reviewed by Hajime Morita.
flipFloatForWritingModeForChild() should use child->renderer()->width() not child->width() like horizontal writing mode.
Test: fast/writing-mode/vertical-float-margin.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::flipFloatForWritingModeForChild):
2013-01-07 Kent Tamura <tkent@chromium.org>
REGRESSION(r137406): Text inside an empty optgroup prevents subsequent options from appearing
https://bugs.webkit.org/show_bug.cgi?id=106298
Reviewed by Ryosuke Niwa.
Test: fast/forms/select/select-empty-optgroup.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::recalcListItems):
Traverse to the first element within the 'current' only if it exists.
2013-01-07 Steve Block <steveblock@chromium.org>
Use toSize() to convert from Int/FloatPoint to Int/FloatSize
https://bugs.webkit.org/show_bug.cgi?id=105992
Reviewed by Kentaro Hara.
Refactoring only, no change in behavior.
* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::computePath):
* platform/ScrollView.h:
(WebCore::ScrollView::scrollOffset):
* platform/graphics/FloatPoint.h:
(WebCore::toFloatSize):
Add 'inline FloatSize toFloatSize(const FloatPoint&)' to match IntPoint.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2013-01-07 Kunihiko Sakamoto <ksakamoto@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Step-up/-down of month/day field should respect min/max attributes
https://bugs.webkit.org/show_bug.cgi?id=106212
Reviewed by Kent Tamura.
Make step-up/-down of the month and day fields respect the min/max
attributes of the element.
Note that these fields still accept any keyboard inputs (the element
becomes 'invalid' state when out-of-bounds values entered).
Tests: fast/forms/date-multiple-fields/date-multiple-fields-readonly-subfield.html
fast/forms/date-multiple-fields/date-multiple-fields-stepup-stepdown-from-renderer.html
fast/forms/month-multiple-fields/month-multiple-fields-readonly-subfield.html
fast/forms/month-multiple-fields/month-multiple-fields-stepup-stepdown-from-renderer.html
* css/html.css: Add CSS rules for month and day fields.
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitField):
Compute minimum/maximum values of month/day fields from the min/max
parameters of the element. If minimum, maximum, and current value is
the same, makes the field read-only.
* html/shadow/DateTimeFieldElements.cpp:
(WebCore::DateTimeAMPMFieldElement::DateTimeAMPMFieldElement): Add mininum/maximum arguments.
(WebCore::DateTimeDayFieldElement::DateTimeDayFieldElement): Ditto.
(WebCore::DateTimeDayFieldElement::create): Ditto.
(WebCore::DateTimeDayFieldElement::clampValueForHardLimits): Added.
(WebCore::DateTimeMonthFieldElement::DateTimeMonthFieldElement): Add mininum/maximum arguments.
(WebCore::DateTimeMonthFieldElement::create): Ditto.
(WebCore::DateTimeMonthFieldElement::clampValueForHardLimits): Added.
(WebCore::DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement): Add mininum/maximum arguments.
(WebCore::DateTimeSymbolicMonthFieldElement::create): Ditto.
* html/shadow/DateTimeFieldElements.h:
(DateTimeDayFieldElement): Add mininum/maximum arguments and declare clampValueForHardLimits.
(DateTimeMonthFieldElement): Ditto.
(DateTimeSymbolicMonthFieldElement): Add mininum/maximum arguments.
* html/shadow/DateTimeSymbolicFieldElement.cpp:
(WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement): Add mininum/maximum arguments.
(WebCore::DateTimeSymbolicFieldElement::maximum): Returns m_maximumIndex + 1 as it assumes 1-origin value.
(WebCore::DateTimeSymbolicFieldElement::minimum): Ditto.
(WebCore::DateTimeSymbolicFieldElement::stepDown): Restrict value to m_minimumIndex-m_maximumIndex.
(WebCore::DateTimeSymbolicFieldElement::stepUp): Ditto.
* html/shadow/DateTimeSymbolicFieldElement.h:
(DateTimeSymbolicFieldElement): Add m_minimumIndex and m_maximumIndex.
(WebCore::DateTimeSymbolicFieldElement::isInRange): Added.
2013-01-07 Viatcheslav Ostapenko <sl.ostapenko@samsung.com>
[EFL][WK2][WebGL] The top left side of the screen is shown inside the canvas element
https://bugs.webkit.org/show_bug.cgi?id=105136
Reviewed by Noam Rosenthal.
Use glXSwapBuffers to force resize of GL surface after X window resize.
Fixes fast/canvas/webgl/webgl-composite-modes.html pixel test on EFL platform.
* platform/graphics/surfaces/glx/X11WindowResources.cpp:
(WebCore::X11OffScreenWindow::reSizeWindow):
2013-01-07 Steve Block <steveblock@chromium.org>
Use explicit constructor to convert from Int/FloatSize to Int/FloatPoint
https://bugs.webkit.org/show_bug.cgi?id=106209
Reviewed by Kentaro Hara.
Refactoring only, no functional change.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2013-01-07 Viatcheslav Ostapenko <sl.ostapenko@samsung.com>
[EFL][WebGL] Crash of WebKitTestRunner when running webgl layout tests
https://bugs.webkit.org/show_bug.cgi?id=105936
Reviewed by Laszlo Gombos.
If canvas window becomes invalid don't create pixmap from it and don't
use it for painting.
Improves stability of existing webgl layout tests.
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::createPixmap):
(WebCore::GraphicsSurfacePrivate::size):
(WebCore::GraphicsSurface::platformGetTextureID):
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
2013-01-07 Hajime Morrita <morrita@google.com>
Document::m_activeNode should be always an Element.
https://bugs.webkit.org/show_bug.cgi?id=106193
Reviewed by Ryosuke Niwa.
r137277 tightened an invariant that assumes that active node is
always an element. But Document::updateHoverActiveState() didn't
respect that assumption. This change forces it.
Test: svg/custom/text-use-click-crash.html
* dom/Document.cpp:
(WebCore::Document::removedLastRef):
(WebCore::Document::detach):
(WebCore::Document::setActiveNode):
(WebCore::Document::activeChainNodeDetached):
(WebCore::Document::updateHoverActiveState):
* dom/Document.h:
(WebCore::Document::activeElement): Renamed from m_activeNode for the clarification.
(Document):
2013-01-07 Hajime Morrita <morrita@google.com>
WebKit should compile on Mac with --shadow-dom
https://bugs.webkit.org/show_bug.cgi?id=105469
Reviewed by Dimitri Glazkov.
No new tests. Just changing build files.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* dom/Element.idl:
2013-01-07 Stephen White <senorblanco@chromium.org>
Add a flag to control canvas antialiasing.
https://bugs.webkit.org/show_bug.cgi?id=106255
Reviewed by Darin Fisher.
This flag is not exposed through TestRunner or DRT, so no testing is
possible yet.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createImageBuffer):
* page/Settings.in:
2013-01-07 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Implement grid items sizing for fixed minmax grid tracks
https://bugs.webkit.org/show_bug.cgi?id=104700
Reviewed by Tony Chang.
This change implements parts of the minmax() track sizing algorithm. The chosen subset enables us
to resolve any sizing function that doesn't size based on the content (min-content, max-content).
Tests: fast/css-grid-layout/minmax-fixed-logical-height-only.html
fast/css-grid-layout/minmax-fixed-logical-width-only.html
* rendering/RenderGrid.cpp:
(WebCore::GridTrack::GridTrack):
Added a new member to hold the maximum track breadth.
(WebCore::RenderGrid::computePreferredLogicalWidths):
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
Updated these functions to work on both min and max track breadth. In order to match
the specification, if max track breadth < min track breadth, we ignore the max track breadth.
For computedUsedBreadthOfGridTracks, it also involves calling distributeSpaceToTracks.
(WebCore::RenderGrid::computeUsedBreadthOfLength):
New helper function that compute a single length's size.
(WebCore::sortByGridTrackGrowthPotential):
Ordering function for the sorting the track: it orders the track per increasing potential
growth (defined as the difference between max breadth and the currently used breadth).
(WebCore::RenderGrid::distributeSpaceToTracks):
Added this function that matches the specification's algorithm. Only the relevant bits from
the specification were implemented for now (for example, SubsetOfTracksForGrowthBeyondTrackGrowthConstraint
is always the empty set so it was omitted).
* rendering/RenderGrid.h:
Added the new functions and declared GridTrack as public into the WebCore namespace.
* rendering/style/GridTrackSize.h:
(WebCore::GridTrackSize::minTrackBreadth):
(WebCore::GridTrackSize::maxTrackBreadth):
Removed 2 ASSERTs as the layout algorithm doesn't care if the min / max were
set from a single track breadth or through minmax().
2013-01-07 Xianzhu Wang <wangxianzhu@chromium.org>
Add a setting to enable composited scrolling for frames
https://bugs.webkit.org/show_bug.cgi?id=104950
Reviewed by James Robinson.
Test: compositing/iframes/iframe-composited-scrolling.html
* page/FrameView.cpp:
(WebCore::FrameView::usesCompositedScrolling): Returns true if compositedScrollingForFramesEnabled and the frame is in forced compositing mode (which is set when forced compositing mode and compositing for scrollable frames are enabled), so that ScrollingCoordinator won't include the region of the frame in the nonFastScrollableRegion.
(WebCore):
* page/FrameView.h:
(FrameView):
* page/Settings.in: Add compositedScrollingForFramesEnabled setting.
* page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
(WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated): Changed the comment about which ScrollableAreas are non-fast-scrollable.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::frameViewDidScroll): Let ScrollongCoordinator know when the scrolling changes for a frame with composited scrolling enabled.
2013-01-07 Alexandre Elias <aelias@chromium.org>
Divide gesture scroll delta by scale factor
https://bugs.webkit.org/show_bug.cgi?id=106263
Reviewed by Adam Barth.
Gesture scroll deltas were not being adjusted by the frame's scale
factors, resulting in overly fast main-thread scrolling when zoomed
in.
New test: fast/events/touch/gesture/touch-gesture-scroll-div-scaled.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureScrollCore):
2013-01-07 Adam Barth <abarth@webkit.org>
HTMLTreeBuilder should not depend on Frame
https://bugs.webkit.org/show_bug.cgi?id=106256
Reviewed by Eric Seidel.
Rather than have the tree builder ask the Frame whether scripting and
plugins are enabled, we now push that information to the tree builder
via HTMLParserOptions, letting us remove the Frame dependency from the
tree builder.
As a consequence of this change, the "script enabled" bit in the parser
is now locked in when the parser starts. This bit doesn't actually
control when script execute, only how the <noscript> element is parsed.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::tokenizerStateForContextElement):
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
* html/parser/HTMLMetaCharsetParser.cpp:
(WebCore::HTMLMetaCharsetParser::HTMLMetaCharsetParser):
(WebCore::HTMLMetaCharsetParser::checkForMetaCharset):
* html/parser/HTMLParserOptions.cpp:
(WebCore::HTMLParserOptions::HTMLParserOptions):
* html/parser/HTMLParserOptions.h:
(HTMLParserOptions):
(WebCore::HTMLParserOptions::HTMLParserOptions):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
(WebCore::HTMLPreloadScanner::processToken):
* html/parser/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::HTMLTokenizer):
(WebCore::HTMLTokenizer::nextToken):
(WebCore::HTMLTokenizer::updateStateFor):
* html/parser/HTMLTokenizer.h:
(WebCore::HTMLTokenizer::create):
(HTMLTokenizer):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
* html/parser/HTMLTreeBuilder.h:
* html/parser/HTMLViewSourceParser.cpp:
(WebCore::HTMLViewSourceParser::HTMLViewSourceParser):
(WebCore::HTMLViewSourceParser::updateTokenizerState):
2013-01-07 Tony Chang <tony@chromium.org>
Remove more internals.settings that are autogenerated
https://bugs.webkit.org/show_bug.cgi?id=106253
Reviewed by Adam Barth.
Remove 8 methods that are autogenerated by Settings.in.
No new tests, this is a refactor and is convered by existing tests.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Remove backup.
(WebCore::InternalSettings::Backup::restoreTo): Remove restore.
* testing/InternalSettings.h:
(Backup): Remove member variables and functions.
(InternalSettings):
* testing/InternalSettings.idl: Remove functions.
2013-01-07 Ryosuke Niwa <rniwa@webkit.org>
Another incremental build fix after r139013.
* mathml/MathMLAllInOne.cpp:
2013-01-07 Ryosuke Niwa <rniwa@webkit.org>
Incremental build system on Windows port does not necessarily rebuild RenderBox.cpp after r139013.
* rendering/RenderingAllInOne.cpp:
2013-01-07 Emil A Eklund <eae@chromium.org>
REGRESSION(SUBPIXEL_LAYOUT): el.offsetWidth < el.clientWidth for elements of a certain size
https://bugs.webkit.org/show_bug.cgi?id=106107
Reviewed by Levi Weintraub.
Add overloaded pixelSnappedOffsetWidth|Height methods to
RenderBox that do pixel snapping with the same offset
as clientWidth/height to ensure consistent rounding.
Test: fast/sub-pixel/client-and-offset-width.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::pixelSnappedOffsetWidth):
(WebCore::RenderBox::pixelSnappedOffsetHeight):
Snap using the same offset as the clientWidth/height versions.
* rendering/RenderBox.h:
Remove out of date FIXME and add OVERRIDE keyword.
* rendering/RenderBoxModelObject.h:
Mark pixelSnappedOffsetWidth|Height as virtual.
2013-01-07 Adam Barth <abarth@webkit.org>
Introduce HTMLParserOptions to encapsulate HTML parser options
https://bugs.webkit.org/show_bug.cgi?id=106251
Reviewed by Eric Seidel.
Currently, the HTMLTreeBuilder (and potentially other parts of the
parser) use their Document* to read configuration information from the
Document (such as Settings). This patch introduces the
HTMLParserOptions class to encapsulate that information, making it
easier to move the HTML parser to a background thread (because the
HTMLTreeBuilder won't need to talk to the Document directly).
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::pumpTokenizer):
(WebCore::HTMLDocumentParser::insert):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
* html/parser/HTMLPreloadScanner.h:
(WebCore):
(HTMLPreloadScanner):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
* html/parser/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::create):
(HTMLTreeBuilder):
* html/parser/HTMLViewSourceParser.cpp:
(WebCore::HTMLViewSourceParser::HTMLViewSourceParser):
2013-01-07 Joseph Pecoraro <pecoraro@apple.com>
Minor improvements to HTMLMediaElement
https://bugs.webkit.org/show_bug.cgi?id=105353
Reviewed by Eric Carlson.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canPlayType):
(WebCore::createFileURLForApplicationCacheResource):
(WebCore::stringForNetworkState):
(WebCore::HTMLMediaElement::preload):
(WebCore::HTMLMediaElement::getPluginProxyParams):
Use ASCIILiteral for literal strings becoming WTFStrings.
(WebCore::HTMLMediaElement::setLoop):
By going through setAttribute, parseAttribute would already take care of
updating the disable sleep, so the call here is not needed.
2013-01-07 Joseph Pecoraro <pecoraro@apple.com>
String improvements in geolocation and notifications modules
https://bugs.webkit.org/show_bug.cgi?id=105352
Reviewed by Sam Weinig.
* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::GeoNotifier::timerFired):
(WebCore::Geolocation::startRequest):
(WebCore::Geolocation::requestUsesCachedPosition):
(WebCore::Geolocation::makeCachedPositionCallbacks):
(WebCore::Geolocation::setIsAllowed):
(WebCore::Geolocation::cancelRequests):
(WebCore::Geolocation::handlePendingPermissionNotifiers):
* Modules/geolocation/GeolocationController.cpp:
(WebCore::GeolocationController::positionChanged):
* Modules/notifications/WorkerContextNotifications.cpp:
Use ASCIILiteral for constant strings becoming WTFStrings.
(WebCore::WorkerContextNotifications::from):
Use AtomicString::ConstructFromLiteral for the static local.
2013-01-07 Chris Fleizach <cfleizach@apple.com>
AX: the text of render counters are not exposed to Accessibility
https://bugs.webkit.org/show_bug.cgi?id=103794
Reviewed by Ryosuke Niwa.
Support RenderText objects that don't have nodes (like RenderCounter).
Test: accessibility/render-counter-text.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textUnderElement):
2013-01-07 Tim Horton <timothy_horton@apple.com>
Tiled-layer TileCaches shouldn't unparent offscreen tiles
https://bugs.webkit.org/show_bug.cgi?id=106258
<rdar://problem/12969116>
Reviewed by Simon Fraser.
Add a setting on TiledBacking (implemented on TileCache) that controls whether or not
the TileCache should unparent offscreen tiles. We can't use this behavior for tiled-layer TileCaches
currently because m_isInWindow is not updated for tiled-layer TileCaches, and because we haven't
decided exactly what their behavior should be. So, revert to the old behavior for them.
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileCache.h:
(TileCache): Add setUnparentsOffscreenTiles/unparentsOffscreenTiles.
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::TileCache): m_unparentsOffscreenTiles defaults to false.
(WebCore::TileCache::revalidateTiles):
Return to the old behavior of always adding new layers to the layer tree regardless of m_isInWindow if m_unparentsOffscreenTiles is false.
Return to the old behavior of never unparenting tiles regardless of m_isInWindow if m_unparentsOffscreenTiles is false.
(WebCore::TileCache::ensureTilesForRect): Return to the old behavior of always ensuring tiles regardless of m_isInWindow if m_unparentsOffscreenTiles is false.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking): Tell primary TileCaches that it's OK to unparent offscreen tiles.
2013-01-07 Justin Novosad <junov@google.com>
Fixing memory read after free in CanvasRenderingContext2D::accessFont
https://bugs.webkit.org/show_bug.cgi?id=106244
Reviewed by Abhishek Arya.
Using a temporary String object to hold ref count on string that is
passed by reference in CanvasRenderingContext2D::accessFont.
Test: fast/canvas/canvas-measureText.html
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::accessFont):
2013-01-07 Anders Carlsson <andersca@apple.com>
DOMEvents.h should include DOMProgressEvent.h
https://bugs.webkit.org/show_bug.cgi?id=106250
Reviewed by Sam Weinig.
DOMProgressEvent.h is already installed as a public header, so it should also be included by DOMEvents.h.
* bindings/objc/DOMEvents.h:
2013-01-07 Xianzhu Wang <wangxianzhu@chromium.org>
Add window.internals.nonFastScrollableRects for testing scrollable areas in fast/slow paths
https://bugs.webkit.org/show_bug.cgi?id=105546
Reviewed by James Robinson.
No new tests. Added test API for new tests of other bugs.
* WebCore.exp.in:
* page/Page.cpp:
(WebCore::Page::nonFastScrollableRects):
(WebCore):
* page/Page.h:
(WebCore):
(Page):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::computeNonFastScrollableRegion): Change to public to allow Page::nonFastScrollableRects to access.
* page/scrolling/ScrollingCoordinator.h:
(ScrollingCoordinator):
* testing/Internals.cpp:
(WebCore::Internals::nonFastScrollableRects):
(WebCore):
* testing/Internals.h:
* testing/Internals.idl:
2013-01-07 Tom Sepez <tsepez@chromium.org>
Document::initSecurityContext() gives parent security context to iframes with invalid URLs.
https://bugs.webkit.org/show_bug.cgi?id=104960
Reviewed by Adam Barth.
Change covers the case of an invalid non-empty URL. We know nothing
about that kind of URL and choose not to inherit origins.
* dom/Document.cpp:
(WebCore::shouldInheritSecurityOriginFromOwner):
2013-01-07 Chris Fleizach <cfleizach@apple.com>
AX: Regression: Contextual menu not following with VO cursor in HTML content when item is scrolled
https://bugs.webkit.org/show_bug.cgi?id=70075
Reviewed by Anders Carlsson.
On WK2 only, when accessibility opens a contextual menu, it does not honor the scroll offset.
On WK1, the attachment views handle this conversion when it's needed, but on WK2 it needs to be done manually
(similar to how the accessibility position is calculated).
No test. Cannot test the location of context menu popups on WK2 yet.
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):
2013-01-07 Abhishek Arya <inferno@chromium.org>
Heap-buffer-overflow in WebCore::RenderBlock::clone.
https://bugs.webkit.org/show_bug.cgi?id=101984
Reviewed by Julien Chaffraix.
Add a global in RenderBlock to prevent recursion inside splitFlow.
While inside splitFlow (multi-column handling), we move many children
using fullRemoveInsert=true, causing RenderBlock::addChild to be called
and recursing in splitFlow. This messes the tree splitting happening in
RenderBlock::splitBlocks and can cause bad casts.
Test: fast/multicol/recursive-split-flow-crash.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
2013-01-07 Alok Priyadarshi <alokp@chromium.org>
[chromium] Fix PlatformContextSkia::setDrawingToImageBuffer abuse
https://bugs.webkit.org/show_bug.cgi?id=104956
Reviewed by James Robinson.
Replaced PlatformContextSkia::SetDrawingToImageBuffer with GraphicsContext::setShouldSmoothFonts.
No new tests needed. No change in functionality.
* platform/graphics/chromium/CompositorHUDFontAtlas.cpp:
(WebCore::CompositorHUDFontAtlas::generateFontAtlas):
* platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
(WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::ImageBuffer::ImageBuffer):
* platform/graphics/skia/PlatformContextSkia.cpp:
(WebCore::PlatformContextSkia::couldUseLCDRenderedText):
(WebCore):
2013-01-07 Enrica Casucci <enrica@apple.com>
Some characters are not rotated properly in vertical text
https://bugs.webkit.org/show_bug.cgi?id=105663
<rdar://problem/12738911>
Reviewed by Dan Bernstein.
Test: platform/mac/fast/text/vertical-no-sideways.html
* platform/graphics/Font.cpp:
(WebCore::Font::isCJKIdeographOrSymbol): Added several characters to the list.
* platform/graphics/FontFastPath.cpp:
(WebCore::shouldIgnoreRotation): Added
(WebCore::Font::glyphDataAndPageForNonCJKCharacterWithGlyphOrientation): Added logic to avoid
rotation for all the characters listed in shouldIgnoreRotation.
2013-01-07 Mike West <mkwst@chromium.org>
Make the IFRAME_SEAMLESS flag runtime-enabled.
https://bugs.webkit.org/show_bug.cgi?id=106213
Reviewed by Ojan Vafai.
Seamless IFrames live behind the IFRAME_SEAMLESS compile-time flag, this
patch adds another layer to that in order to enable runtime decisions
about when it should be active. This will allow ports (Chromium, for
instance) to toggle the feature on/off for particular builds without
recompiling from scratch.
* WebCore.exp.in:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures):
(WebCore::RuntimeEnabledFeatures::seamlessIFramesEnabled):
(WebCore::RuntimeEnabledFeatures::setSeamlessIFramesEnabled):
Add seamless IFrames to the set of runtime controlled features.
* dom/Document.cpp:
(WebCore::Document::shouldDisplaySeamlesslyWithParent):
If seamless IFrames aren't runtime enabled, always return false from
Document::shouldDisplaySeamlesslyWithParent. As this method already
acts as the single gate that controls the rest of the system, it's
the only place we need to make the runtime check.
2013-01-07 Eric Carlson <eric.carlson@apple.com>
LayoutUnit(unsigned long long value) compile failure
https://bugs.webkit.org/show_bug.cgi?id=106239
Cast the result of ('unsigned long long' * 'int') to an int before storing in m_value
to avoid compile failure on some platforms.
Reviewed by Ryosuke Niwa.
* platform/LayoutUnit.h:
(WebCore::LayoutUnit::LayoutUnit): Cast to int after multiplication.
2013-01-07 Joe Mason <jmason@rim.com>
[BlackBerry] Handle the new AuthRetry result code in NetworkJob::notifyAuthReceived
https://bugs.webkit.org/show_bug.cgi?id=106233
Reviewed by Rob Buis.
Internal PR: 270683
FilterStream::notifyAuthReceived has a new result code, AuthRetry. When it's received we
need to handle it by resending the request with the same credentials.
Reviewed internally by Leo Yang.
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::notifyAuthReceived):
* platform/network/blackberry/NetworkJob.h:
(NetworkJob):
2013-01-07 Philip Rogers <pdr@google.com>
Clear pending container size requests as early as possible
https://bugs.webkit.org/show_bug.cgi?id=106162
Reviewed by Eric Seidel.
http://trac.webkit.org/changeset/137981 contained a bug where pending container size
requests were only cleared for images that use container sizes. Bitmap images do not use
container sizes so these requests were not being cleared. This patch does the trivial
refactoring so that container size requests are cleared as early as possible.
No new tests as this is just a refactoring of some messy code added in r137981.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::createImage):
2013-01-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r137632.
http://trac.webkit.org/changeset/137632
https://bugs.webkit.org/show_bug.cgi?id=106237
Caused major security regressions on ClusterFuzz (Requested by
inferno-sec on #webkit).
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::startDelayUpdateScrollInfo):
(WebCore::RenderBlock::finishDelayUpdateScrollInfo):
2013-01-07 Victor Carbune <victor@rosedu.org>
[Track] Rendering crash
https://bugs.webkit.org/show_bug.cgi?id=106199
Reviewed by Eric Carlson.
The browser is crashing if a text track is added through JavaScript,
due to the fact that the containing block is not marked as inline at
the time RenderTextTrackCue::layout() is called. The fix consists
of ensuring that the pseudo id is set, even if the track isn't
yet visible.
Test: media/track/track-cue-inline-assertion-crash.html
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::updateDisplayTree): The pseudo-id should
be set when the display tree is generated.
(WebCore::TextTrackCue::getDisplayTree): Added extra check to not
do unneccessary logic if the track will never be displayed.
2013-01-07 Michael Pruett <michael@68k.org>
[JSC] Copy non-index properties of arrays in SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=105575
Reviewed by Oliver Hunt.
The structured cloning algorithm requires copying all properties of
array objects, including non-index properties.
Tests: fast/storage/serialized-script-value.html
storage/indexeddb/structured-clone.html
* bindings/js/SerializedScriptValue.cpp:
(WebCore):
(WebCore::CloneSerializer::serialize):
(WebCore::CloneDeserializer::putProperty):
(WebCore::CloneDeserializer::deserialize):
2013-01-07 Alec Flett <alecflett@chromium.org>
IndexedDB: Stub out async IDBDatabaseBackendInterface::createObjectStore
https://bugs.webkit.org/show_bug.cgi?id=106148
Reviewed by Adam Barth.
These methods are becoming async in multiprocess ports, so stub out
versions that have no return values.
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(WebCore::IDBDatabaseBackendImpl::createObjectStore):
(WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(IDBDatabaseBackendInterface):
2013-01-04 Alexey Proskuryakov <ap@apple.com>
ResourceHandle::willLoadFromCache is evil
https://bugs.webkit.org/show_bug.cgi?id=106147
Reviewed by Brady Eidson.
For back/forward navigations to a page that's a result of form submission, we may
never silently re-submit the form. So, we show a warning dialog when about to re-submit,
but try to load from cache if possible.
This patch changes the logic so that we always try to fetch from cache, without
any preflighting. If cache load fails, we restart the load as a known re-submit.
No behavior change expected, so no tests.
* html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::handleClick):
Added a FIXME.
* loader/DocumentLoader.cpp: (WebCore::DocumentLoader::startLoadingMainResource):
Amended a FIXME with some information about why this call may still be needed.
* loader/FrameLoader.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURLIntoChildFrame): Pass an explicit argument for unchanged caching behavior.
(WebCore::FrameLoader::reloadWithOverrideEncoding): Added a FIXME. This function
can silently re-submit a form.
(WebCore::FrameLoader::addExtraFieldsToMainResourceRequest): Added a FIXME about
an incorrect use of current load type.
(WebCore::FrameLoader::addExtraFieldsToRequest): Make sure that a correct caching
policy is used for subresources even if main resource was loaded from cache. We
didn't need that before because initial request had wrong extra fields due to a use
of m_loadType when it was first called.
Removed code to change caching policy for b/f navigations. This function does not
have enough context to decide what the policy should be.
(WebCore::FrameLoader::loadDifferentDocumentItem): Added an argument telling the
function whether it should attempt loading from cache. It should do that on first
attempt to navigate to a form submission result, but not if that failed.
Pass a correct loadType - m_loadType is one for _previous_ load.
Removed a special case for https - we've long stopped prohibiting caching of https
resources, and using a resource that's already cached should definitely be allowed.
(WebCore::FrameLoader::loadItem): Pass an explicit argument for unchanged caching behavior.
(WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad): Added.
* loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::notifyFinished):
Removed a check for m_resource being null, because we were immediately dereferencing
it anyway.
Call retryAfterFailedCacheOnlyMainResourceLoad() to let FrameLoader restart the navigation.
* platform/network/ResourceHandle.h:
* platform/network/blackberry/ResourceHandleBlackBerry.cpp:
* platform/network/cf/ResourceHandleCFNet.cpp:
* platform/network/chromium/ResourceHandle.cpp:
* platform/network/curl/ResourceHandleCurl.cpp:
* platform/network/mac/ResourceHandleMac.mm:
* platform/network/qt/ResourceHandleQt.cpp:
* platform/network/soup/ResourceHandleSoup.cpp:
* platform/network/win/ResourceHandleWin.cpp:
Removed willLoadFromCache() - the new logic is cross-platform.
2013-01-07 Alberto Garcia <agarcia@igalia.com>
[GTK] Disable deprecation warnings for GStaticRecMutex
https://bugs.webkit.org/show_bug.cgi?id=105918
Reviewed by Philippe Normand.
GStaticRecMutex is deprecated since glib 2.32, but we can't remove
it because it's needed by GStreamer 0.10. The solution is to
disable the deprecation warnings for that code alone.
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
2013-01-07 Philip Rogers <pdr@google.com>
Refactor client removal in CachedResource::switchClientsToRevalidatedResource
https://bugs.webkit.org/show_bug.cgi?id=106206
Previously switchClientsToRevalidatedResource() failed to call didRemoveClient() for each
client and instead simply cleared m_clients. This patch removes an incorrect comment and
refactors the code so that removeClient() and didRemoveClient() are properly called.
Reviewed by Nate Chapin.
No new tests as there are no observable changes from this refactoring.
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::switchClientsToRevalidatedResource):
2013-01-07 Julien Chaffraix <jchaffraix@webkit.org>
Support size_t multiplication and division operators on LayoutUnit
https://bugs.webkit.org/show_bug.cgi?id=83848
Reviewed by Emil A Eklund.
Per Darin's suggestion, adding a version of the operator for most unsigned types (excluding
only unsigned char). This should automatically cover size_t as it should be one of these.
Test: TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp
* platform/LayoutUnit.h:
(WebCore::LayoutUnit::LayoutUnit):
(WebCore::operator*):
(WebCore::operator/):
Added the operators and (possibly saturating) constructors for unsigned short, unsigned long,
unsigned long long.
2013-01-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r138944.
http://trac.webkit.org/changeset/138944
https://bugs.webkit.org/show_bug.cgi?id=106223
It made 28 tests crash (Requested by Ossy on #webkit).
* plugins/qt/PluginPackageQt.cpp:
(WebCore::PluginPackage::fetchInfo):
(WebCore::PluginPackage::load):
2013-01-07 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Build fixes after r138413
https://bugs.webkit.org/show_bug.cgi?id=106087
Reviewed by Alexey Proskuryakov.
* WebCore.vcproj/WebCore.vcproj: Added NetworkStorageSessionStub.cpp,
and removed NetworkStorageSessionCFNet.cpp for WinCairo build.
* platform/win/TemporaryLinkStubs.cpp: Include fix.
2013-01-07 David Faure <faure@kde.org>
[Qt] Major performance improvement in Qt's PluginDatabase implementation
https://bugs.webkit.org/show_bug.cgi?id=106140
Reviewed by Simon Hausmann.
No new tests, only a performance improvement.
* plugins/qt/PluginPackageQt.cpp:
(WebCore::PluginPackage::fetchInfo): Don't do a full-fledged load(), load the module directly.
(WebCore::PluginPackage::load): Use existing module if fetchInfo created it.
2013-01-07 Gabor Rapcsanyi <rgabor@webkit.org>
Optimizing RGBA16, RGB16, ARGB16, BGRA16 unpacking functions with NEON intrinsics
https://bugs.webkit.org/show_bug.cgi?id=103614
Reviewed by Zoltan Herczeg.
Optimizing RGBA16, RGB16, ARGB16, BGRA16 unpacking functions in GraphicsContext3D
with ARM NEON intrinsics. The optimized functions are 2-3x faster than the origin.
* platform/graphics/GraphicsContext3D.cpp:
(WebCore):
* platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
(WebCore::SIMD::unpackOneRowOfRGBA16LittleToRGBA8):
(SIMD):
(WebCore::SIMD::unpackOneRowOfRGB16LittleToRGBA8):
(WebCore::SIMD::unpackOneRowOfARGB16LittleToRGBA8):
(WebCore::SIMD::unpackOneRowOfBGRA16LittleToRGBA8):
2013-01-07 Christophe Dumez <christophe.dumez@intel.com>
Regression(r138786): Causes webaudio tests to crash
https://bugs.webkit.org/show_bug.cgi?id=106182
Reviewed by Philippe Normand.
Partially revert r138786 since it causes crashes in webaudio
tests. The WebProcess would actually become unresponsive due
to source element never going to PLAYING state.
Only the changes to webKitWebAudioSrcChangeState() were reverted.
No new tests, already covered by existing tests.
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcChangeState):
2013-01-07 Hayato Ito <hayato@chromium.org>
Cannot compile with ENABLE_SHADOW_DOM=0 and ENABLE_STYLE_SCOPED=1
https://bugs.webkit.org/show_bug.cgi?id=106207
Reviewed by Hajime Morita.
Guard StyleScopeResolver::addHostRule with SHADOW_DOM flag.
No tests, as no change in behavior.
* css/StyleScopeResolver.cpp:
(WebCore):
2013-01-07 Jon Lee <jonlee@apple.com>
Missing amendments to r138927. Amend Changelog to remove item about Timer.h, which was not changed.
* rendering/RenderSnapshottedPlugIn.cpp: Rename stopAndRestartDelayTimer() to resetDelayTimer().
(WebCore::RenderSnapshottedPlugIn::updateSnapshot):
(WebCore::RenderSnapshottedPlugIn::handleEvent):
(WebCore::RenderSnapshottedPlugIn::resetDelayTimer):
* rendering/RenderSnapshottedPlugIn.h:
2013-01-06 Jon Lee <jonlee@apple.com>
Show label automatically for plug-ins of significant size
https://bugs.webkit.org/show_bug.cgi?id=106146
<rdar://problem/12783010>
Reviewed by Simon Fraser.
For significantly sized plug-ins, trigger a timer that displays the label automatically
without requiring the user to mouse over the element first. The trickiness of the logic
here is that there are two delays involved-- one for whether the user mouses over (shorter),
and one for when the label is shown automatically (longer). Mousing over a plug-in that is
marked to show it automatically should have the timer delay switched. And if the label
showed automatically, mousing in and out of the element should not change that label's
state.
* html/HTMLPlugInImageElement.cpp:
(WebCore): Add constants that determine whether the plug-in is of a significant size.
(WebCore::shouldPlugInShowLabelAutomatically): Based on the size of the frame view and the
clipped plug-in size, determine whether the label should show automatically. If the plug-in is
not contained within the bounds of the frame view, or is not at least as large as the threshold
size, then do not show the label automatically.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): After we've determined that
the plug-in should not auto-start, make a check to see if the label should show automatically.
Also, update some of the logging.
(WebCore::HTMLPlugInImageElement::subframeLoaderDidCreatePlugIn): Update the logging.
* rendering/RenderSnapshottedPlugIn.h: Rename the timer to m_showLabelDelayTimer since
it can fire for two different reasons. Add some additional state variables, and an enum
to explain why the label appeared.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore): Change hoverDelay to showLabelAfterMouseOverDelay. Add a new, longer delay for
when the plug-in is supposed to auto-show the label.
(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Initialize the member variables.
(WebCore::RenderSnapshottedPlugIn::updateSnapshot): When the snapshot image is updated,
start the timer to auto-show the label.
(WebCore::RenderSnapshottedPlugIn::paintLabel): Avoid painting the label only if the element
is not hovered and the user was mousing over the plug-in. Otherwise, the plug-in is supposed
to show automatically, and we should paint. Mark the renderer as having showed the label at
least once.
(WebCore::RenderSnapshottedPlugIn::showLabelDelayTimerFired): Renamed to reflect the
purpose of the timer.
(WebCore::RenderSnapshottedPlugIn::setShouldShowLabelAutomatically): Set the variable that
determines whether, in general, this plug-in should show the label automatically even
without user input.
(WebCore::RenderSnapshottedPlugIn::handleEvent): If the user mouses over the plug-in,
only reset the show timer is the label has never appeared before, or if it has, that
it's not because the label was supposed to show automatically. That is, if the label is
supposed to show automatically, the label should remain visible. This is also true when
the user mouses out of the plug-in. If the user moused out before the time had a chance
to fire and show the label for the first time, then we check to see if the plug-in should
be displaying the label automatically, and if so, restart the timer using the longer delay.
(WebCore::RenderSnapshottedPlugIn::stopAndRestartDelayTimer): Convenience function to
update the m_showReason variable, and reset the timer with the appropriate delay.
2013-01-06 Abhishek Arya <inferno@chromium.org>
Heap-use-after-free in DocumentLoader::stopLoading
https://bugs.webkit.org/show_bug.cgi?id=103656
Reviewed by Eric Seidel.
Test: fast/dom/ready-state-change-crash.html
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::prepareToStopParsing): Bail out
if the parser is detached due to mutation event.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopLoading): Move the protectors for
frame and document loader to the start of the function. Call to
m_frame->loader()->stopLoading() can change document ready state
and fire mutation event which might blow the document loader from
underneath.
2013-01-06 Takashi Sakamoto <tasak@google.com>
[Shadow DOM]: crash in WebCore::ElementShadow::setValidityUndetermined
https://bugs.webkit.org/show_bug.cgi?id=106203
Reviewed by Hajime Morita.
InsertionPoint should check whether ElementShadow is available or not
before invoking its methods.
No new tests. Webcomponents_fuzzer reported this bug. Would like to
use the fuzzer to check this issue.
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::getDistributedNodes):
(WebCore::InsertionPoint::childrenChanged):
(WebCore::InsertionPoint::insertedInto):
Added ifs to check whether ElementShadow is available or not before
invoking ElementShadow's methods, i.e. setValidityUndetermined,
invalidateDistribution, and ensureDistributionDocument.
2013-01-06 Shinya Kawanaka <shinyak@chromium.org>
RenderImage should not use shadowAncestorNode
https://bugs.webkit.org/show_bug.cgi?id=97871
Reviewed by Dimitri Glazkov.
Since shadowAncestorNode() does not return 0, this if-condition will never hold.
shadowHost() should be used instead.
No change in logic, refactoring.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::hostImageElement):
2013-01-06 Sebastian Dröge <sebastian.droege@collabora.co.uk>
Bug 106177 - [GStreamer] Don't call gst_video_info_from_caps() with non-fixed caps
https://bugs.webkit.org/show_bug.cgi?id=106177
Reviewed by Martin Robinson.
* platform/graphics/gstreamer/GStreamerVersioning.cpp:
(getVideoSizeAndFormatFromCaps):
Don't call gst_video_info_from_caps() with non-fixed caps as
it will cause assertions.
2013-01-06 Abhishek Arya <inferno@chromium.org>
Heap-use-after-free in WebCore::Document::implicitClose
https://bugs.webkit.org/show_bug.cgi?id=105655
Reviewed by Eric Seidel.
Test: fast/dom/window-load-crash.html
* dom/Document.cpp:
(WebCore::Document::implicitClose): RefPtr protect |this| document since it
can be destroyed in the dispatchWindowLoadEvent call.
2013-01-06 Mike West <mkwst@chromium.org>
Seamless: IFrame's padding isn't taken into account when calculating its height.
https://bugs.webkit.org/show_bug.cgi?id=106167
Reviewed by Eric Seidel.
IFrames rendered seamlessly don't currently calculate their height
correctly when padding is applied to the frame itself. This patch adds
padding calculations to RenderIFrame::layoutSeamlessly to ensure that
the seamless frame is correctly sized.
* rendering/RenderIFrame.cpp:
(WebCore::RenderIFrame::layoutSeamlessly):
2013-01-05 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION: [Mac] Intermittent crashes in AXObjectCache::notificationPostTimerFired
https://bugs.webkit.org/show_bug.cgi?id=106106
Reviewed by Eric Seidel.
The crash was cause by notification post timer firing after the object destruction had taken place.
Clear the timer so that this won't happen. Also make sure the document doesn't go away while we're
going through m_notificationsToPost.
No new tests since crashes have been caught by various layout tests, and we can't easily
create a deterministic layout test for this particular crash.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::notificationPostTimerFired):
2013-01-05 Michael Pruett <michael@68k.org>
IndexedDB: Replace int64 with int64_t
https://bugs.webkit.org/show_bug.cgi?id=106189
Reviewed by Sam Weinig.
Cleaning up coding inconsistencies, no change in behavior.
Tests: storage/indexeddb/*
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::GetOperation::create):
2013-01-05 Elliott Sprehn <esprehn@chromium.org>
Remove RenderObjectChildList::beforePseudoElementRenderer and afterPseudoElementRenderer
https://bugs.webkit.org/show_bug.cgi?id=106132
Reviewed by Abhishek Arya.
We no longer need the complicated traversals in beforePseudoElementRenderer
and afterPseudoElementRenderer since we can get the renderers of pseudo
elements through the node. This removes all that code and swaps it for
Element::pseudoElementRenderer.
This is possible now that r138850 removed all the now incorrect manual
management of pseudo element renderers from the render tree that was
left over from before the switch to DOM based pseudo elements.
No new tests, just refactoring.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* dom/Element.cpp:
(WebCore::Element::pseudoElementRenderer):
Added, gets the renderer of the pseudo element by PseudoId if it
exists.
* dom/Element.h:
(Element):
* dom/NodeRenderingTraversal.cpp:
(WebCore::NodeRenderingTraversal::nextSiblingSlow):
(WebCore::NodeRenderingTraversal::previousSiblingSlow):
* rendering/RenderCounter.cpp:
(WebCore::previousInPreOrder):
(WebCore::previousSiblingOrParent):
(WebCore::nextInPreOrder):
* rendering/RenderObject.h:
(WebCore::RenderObject::lastChild):
* rendering/RenderObjectChildList.cpp:
* rendering/RenderObjectChildList.h:
(RenderObjectChildList):
* rendering/RenderTreeAsText.cpp:
(WebCore::counterValueForElement):
2013-01-05 Robert Hogan <robert@webkit.org>
Heap-use-after-free in WebCore::RenderBlock::insertIntoTrackedRendererMaps
https://bugs.webkit.org/show_bug.cgi?id=105654
Reviewed by Simon Fraser.
As with position:relative, position:sticky does not apply to table sections.
Test: fast/block/sticky-position-containing-block-crash.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
2013-01-05 Mike West <mkwst@chromium.org>
Cleanup: mayDisplaySeamlessWithParent -> mayDisplaySeamless_ly_WithParent
https://bugs.webkit.org/show_bug.cgi?id=106169
Reviewed by Eric Seidel.
This patch renames SecurityContext's 'm_mayDisplaySeamlessWithParent' to
'm_mayDisplaySeamlesslyWithParent'. Because adverbs matter.
* dom/Document.cpp:
(WebCore::Document::initSecurityContext):
(WebCore::Document::shouldDisplaySeamlesslyWithParent):
* dom/SecurityContext.cpp:
(WebCore::SecurityContext::SecurityContext):
* dom/SecurityContext.h:
(SecurityContext):
2013-01-05 Mike West <mkwst@chromium.org>
seamless iframes don't take border into account properly and make the iframe too small.
https://bugs.webkit.org/show_bug.cgi?id=90827
Reviewed by Ojan Vafai.
Seamless IFrames were incorrectly calculating their width; borders and
padding of the child document were accidentally left out of the end
result. This tiny patch adds the border/padding width to the calculated
width for the seamless IFrame, bringing things back into line with
expectations.
Test: fast/frames/seamless/seamless-border-padding.html
* rendering/RenderIFrame.cpp:
(WebCore::RenderIFrame::minPreferredLogicalWidth):
(WebCore::RenderIFrame::maxPreferredLogicalWidth):
Add borderAndPaddingLogicalWidth() to the result of both methods.
2013-01-05 Min Qin <qinmin@chromium.org>
MediaControls::show() should make controls opaque
https://bugs.webkit.org/show_bug.cgi?id=106034
Reviewed by Eric Carlson.
When a video enters fullscreen, webkit starts a timer to make the control transparent when the timer expires.
If the user exits fullscreen while the timer expires, webkit will call mediaControls::show().
However, show() actually displays nothing as the control is transparent.
The user had to move his mouse outside the video rect and move it back in order to show the controls.
Simply clicking/moving the mouse inside the video rect will not make the control opaque.
Test: media/video-controls-visible-exiting-fullscreen.html
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::show):
2013-01-05 Alec Flett <alecflett@chromium.org>
IndexedDB: Migrate backend ObjectStore calls to use transaction id
https://bugs.webkit.org/show_bug.cgi?id=102741
Reviewed by Tony Chang.
Fully migrate 8 core data calls (get, put, setIndexKeys, setIndexesReady,
openCursor, count, deleteRange, and clear) into IDBDatabaseBackendImpl,
combining common code from IDBObjectStoreBackendImpl and IDBIndexBackendImpl
in order to simplify the backend interface. These calls are now
implemented in terms of an int64_t-based transactionId rather than
an IDBTransactionBackendInterface, which simplifies the ownership model
between the frontend and the backend.
In addition, remove references to IDBObjectStoreBackend* from IDBIndex,
as it is no longer needed.
A few duplicate IDB_TRACE methods have been removed from wrapper methods
that call another method that already have IDB_TRACE's.
Finally, IDBCursorBackendImpl now no longer holds onto an
IDBObjectStoreBackendImpl*, so its destruction and member variables are
simplified, and reordered to match proper destruction order.
* Modules/indexeddb/IDBCursorBackendImpl.cpp: Reordered to account for proper destruction.
(WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
(WebCore::IDBCursorBackendImpl::~IDBCursorBackendImpl):
(WebCore::IDBCursorBackendImpl::deleteFunction):
* Modules/indexeddb/IDBCursorBackendImpl.h:
(WebCore::IDBCursorBackendImpl::create):
(IDBCursorBackendImpl):
* Modules/indexeddb/IDBDatabase.h:
(WebCore::IDBDatabase::backend):
(IDBDatabase):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(GetOperation): Combined from IDBObjectStoreBackendImpl/IDBIndexBackendImpl::*RetrievalOperation
(WebCore::GetOperation::create):
(WebCore::GetOperation::GetOperation):
(WebCore):
(PutOperation): Combined from IDBObjectStoreBackendImpl/IDBIndexBackendImpl::*StorageOperation.
(WebCore::PutOperation::create):
(WebCore::PutOperation::PutOperation):
(SetIndexesReadyOperation): Moved from IDBObjectStoreBackendImpl::IndexesReadyOperation
(WebCore::SetIndexesReadyOperation::create):
(WebCore::SetIndexesReadyOperation::SetIndexesReadyOperation):
(OpenCursorOperation): Combined from IDBObjectStoreBackendImpl/IDBIndexBackendImpl::Open*CursorOperation
(WebCore::OpenCursorOperation::create):
(WebCore::OpenCursorOperation::OpenCursorOperation):
(CountOperation): Combined from IDBObjectStoreBackendImpl/IDBIndexBackendImpl::CountOperation
(WebCore::CountOperation::create):
(WebCore::CountOperation::CountOperation):
(DeleteRangeOperation): Moved from IDBObjectStoreBackendImpl::DeleteOperation
(WebCore::DeleteRangeOperation::create):
(WebCore::DeleteRangeOperation::DeleteRangeOperation):
(ClearOperation): Moved from IDBObjectStoreBackendImpl::ClearOperation
(WebCore::ClearOperation::create):
(WebCore::ClearOperation::ClearOperation):
(WebCore::IDBDatabaseBackendImpl::get): Combined from IDBObjectStoreBackendImpl/IDBIndexBackendImpl::get*
(WebCore::GetOperation::perform):
(WebCore::IDBDatabaseBackendImpl::put): Moved from IDBObjectStoreBackendImpl::put
(WebCore::PutOperation::perform):
(WebCore::IDBDatabaseBackendImpl::setIndexKeys): Moved from IDBObjectStoreBackendImpl::setIndexKeys
(WebCore::IDBDatabaseBackendImpl::setIndexesReady):
(WebCore::SetIndexesReadyOperation::perform):
(WebCore::IDBDatabaseBackendImpl::openCursor):
(WebCore::IDBDatabaseBackendImpl::count):
(WebCore::CountOperation::perform):
(WebCore::IDBDatabaseBackendImpl::deleteRange):
(WebCore::DeleteRangeOperation::perform):
(WebCore::IDBDatabaseBackendImpl::clear):
(WebCore::ClearOperation::perform):
(WebCore::OpenCursorOperation::perform):
* Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::IDBIndex):
(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::count):
(WebCore::IDBIndex::openKeyCursor):
(WebCore::IDBIndex::get):
(WebCore::IDBIndex::getKey):
(WebCore::IDBIndex::backendDB):
(WebCore):
* Modules/indexeddb/IDBIndex.h:
(WebCore::IDBIndex::create):
(IDBIndex):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
* Modules/indexeddb/IDBIndexBackendImpl.h:
(WebCore::IDBIndexBackendImpl::create):
(WebCore::IDBIndexBackendImpl::openCursor):
(WebCore::IDBIndexBackendImpl::count):
(WebCore::IDBIndexBackendImpl::openKeyCursor):
(WebCore::IDBIndexBackendImpl::get):
(WebCore::IDBIndexBackendImpl::getKey):
(IDBIndexBackendImpl):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::put):
(WebCore::IDBObjectStore::deleteFunction):
(WebCore::IDBObjectStore::clear):
(WebCore):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::openCursor):
(WebCore::IDBObjectStore::count):
(WebCore::IDBObjectStore::backendDB):
* Modules/indexeddb/IDBObjectStore.h:
(WebCore::IDBObjectStore::id):
(IDBObjectStore):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::createIndex):
(WebCore::IDBObjectStoreBackendImpl::loadIndexes):
(WebCore::IDBObjectStoreBackendImpl::generateKey):
(WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(WebCore::IDBObjectStoreBackendImpl::get):
(WebCore::IDBObjectStoreBackendImpl::put):
(WebCore::IDBObjectStoreBackendImpl::deleteFunction):
(WebCore::IDBObjectStoreBackendImpl::clear):
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
(WebCore::IDBObjectStoreBackendImpl::openCursor):
(WebCore::IDBObjectStoreBackendImpl::count):
(IDBObjectStoreBackendImpl):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(WebCore::IDBTransactionBackendImpl::database):
(IDBTransactionBackendImpl):
2013-01-05 Robert Hogan <robert@webkit.org>
Max width of a floated container with floated children calculated incorrectly
https://bugs.webkit.org/show_bug.cgi?id=47975
Accumulate the width of child floats in the correct counter so that it gets reset
as expected when a subsequent sibling decides to clear it.
Reviewed by Levi Weintraub.
Test: fast/block/float/max-width-clear-float-with-overflow-hidden.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
2013-01-05 Alec Flett <alecflett@chromium.org>
IndexedDB: Stub out IDBDatabaseBackendInterface::createIndex/deleteIndex
https://bugs.webkit.org/show_bug.cgi?id=106117
Reviewed by Adam Barth.
No new tests, these are just stubs for refactoring.
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(WebCore::IDBDatabaseBackendImpl::createIndex):
(WebCore::IDBDatabaseBackendImpl::deleteIndex):
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(IDBDatabaseBackendInterface):
2013-01-05 Takashi Sakamoto <tasak@google.com>
[Shadow DOM]: Some named elements in ShadowTree visible on nesting document level
https://bugs.webkit.org/show_bug.cgi?id=105617
Reviewed by Dimitri Glazkov.
According to the shadow dom spec, the nodes and named elements are not
accessible using shadow host's document DOM tree accessors or with
Window object named properties. c.f.
https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#upper-boundary-encapsulation
Test: fast/dom/shadow/element-name-in-shadow.html
* dom/Element.h:
(WebCore::Element::updateName):
Check whether the given element is in a shadow dom tree or not. If in
a shadow dom tree, don't register the name.
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::insertedInto):
(WebCore::HTMLIFrameElement::removedFrom):
(WebCore::HTMLIFrameElement::parseAttribute):
HTMLIFrameElement doesn't use updateName. Instead the element uses
addExtraNamedItem and removeExtraNameItem in HTMLIFrameElement.cpp.
2013-01-05 Chris Rogers <crogers@google.com>
Implement MediaStreamSource::setAudioFormat()
https://bugs.webkit.org/show_bug.cgi?id=106053
Reviewed by Kenneth Russell.
MediaStreamAudioDestinationNode needs to be able to tell its associated
MediaStreamSource about the audio format (number of channels and sample-rate).
* Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
* platform/audio/AudioDestinationConsumer.h:
(AudioDestinationConsumer):
* platform/chromium/support/WebMediaStreamSource.cpp:
(ConsumerWrapper):
(WebKit::ConsumerWrapper::setFormat):
(WebKit):
* platform/mediastream/MediaStreamSource.cpp:
(WebCore::MediaStreamSource::setAudioFormat):
(WebCore):
* platform/mediastream/MediaStreamSource.h:
(MediaStreamSource):
2013-01-05 Zeno Albisser <zeno@webkit.org>
[Texmap] TextureMapperGL should reset ARRAY_BUFFER after painting.
https://bugs.webkit.org/show_bug.cgi?id=106098
This fixes the issue of the address bar disappearing in
Qt/MiniBrowser after r138555.
Reviewed by Jocelyn Turcotte.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawEdgeTriangles):
(WebCore::TextureMapperGL::drawUnitRect):
2013-01-04 Ryosuke Niwa <rniwa@webkit.org>
Chromium windows compile fails because of the assertion in NodeRareData
https://bugs.webkit.org/show_bug.cgi?id=106149
Reviewed by Andreas Kling.
MSVC adds padding between bitfields of different types for better alignment.
Since we care more about the memory usage, use unsigned for all bitfields to work around this behavior.
* dom/NodeRareData.cpp:
(SameSizeAsNodeRareData):
(WebCore):
* dom/NodeRareData.h:
(WebCore::NodeRareData::isWebVTTNode):
(WebCore::NodeRareData::isWebVTTFutureNode):
(NodeRareData):
2013-01-04 Dan Bernstein <mitz@apple.com>
Updated the exports file.
Rubber-stamped by Andy Estes.
* WebCore.exp.in: Moved the DOMHTMLTableCellElement export out of the !PLATFORM(IOS) section.
2013-01-04 Jon Lee <jonlee@apple.com>
Update margin for label to 0
https://bugs.webkit.org/show_bug.cgi?id=106152
<rdar://problem/12961387>
Reviewed by Brian Weinstein.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore): Change the margin constant from 10 to 0.
2013-01-04 Benjamin Poulain <benjamin@webkit.org>
Optimize TransformationMatrix::multiply() for x86_64
https://bugs.webkit.org/show_bug.cgi?id=105719
Reviewed by Sam Weinig.
On x86_64, we have access to 16 XMM registers. This can hold 32 double values.
We can use that in two ways to optimize matrix multiplications:
-Keep the source matrix completely in registers. Write the result directly in
the source matrix's memory. This avoids the memcpy at the end of the multiplication
and various memory operations.
-Use SIMD with SSE to perform 2 operations at a time.
The parameter from the second matrix are loaded one by one in XMM registers.
Loading them with SSE then shuffling the values perform worse than loading
one by one.
This is only enabled on 64bits as x86 only has access to 8 XMM registers and
the function should be written differently.
On a i5, TransformationMatrix::multiply() perform about 3 times faster with the change.
* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::multiply):
* platform/graphics/transforms/TransformationMatrix.h:
(TransformationMatrix): Fix an incorrect comment. Unify the comment with the cpp file.
2013-01-04 Joshua Bell <jsbell@chromium.org>
Unreviewed, fix Apple Win build following http://trac.webkit.org/changeset/138838
https://bugs.webkit.org/show_bug.cgi?id=105927
* WebCore.vcproj/WebCoreTestSupport.vcproj:
2013-01-04 Abhishek Arya <inferno@chromium.org>
Heap-use-after-free in WebCore::XMLDocumentParser::doEnd
https://bugs.webkit.org/show_bug.cgi?id=100152
Reviewed by Adam Barth.
XMLDocumentParser can be blown away inside document()->styleResolverChanged()
call. Protect it with a local RefPtr in Document::explitClose.
No new tests. The site specific dependencies are hard to minimize.
* dom/Document.cpp:
(WebCore::Document::explicitClose): RefPtr m_parser into a local, since
it can be detached and nulled out in DocumentWriter::end().
* xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::end): Bail out when we are detached.
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::doEnd): Bail out when we are detached.
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::doEnd): Bail out when we are detached.
2013-01-04 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r138394): platform/mac/accessibility/file-upload-button-subrole.html is failing
https://bugs.webkit.org/show_bug.cgi?id=105778
Reviewed by Alexey Proskuryakov.
Rename "file upload" to "file upload button".
* English.lproj/Localizable.strings:
* platform/LocalizedStrings.cpp:
2013-01-04 Tim Horton <timothy_horton@apple.com>
[wk2] Remove non-visible tiles from the layer tree
https://bugs.webkit.org/show_bug.cgi?id=106061
<rdar://problem/12761821>
Reviewed by Simon Fraser.
Unparenting tiles which aren't currently on-screen can allow underlying
frameworks to manage the layer's backing stores more effectively than we can.
In addition, add a setting (AggressiveTileRetentionEnabled) which keeps more
tiles around (we don't remove tiles in cohorts, nor when the TileCache moves
out of the window), which is off by default.
* WebCore.exp.in: Export Settings::setAggressiveTileRetentionEnabled.
* page/Settings.cpp:
(WebCore::Settings::Settings): Initialize m_aggressiveTileRetentionEnabled to false.
(WebCore::Settings::setAggressiveTileRetentionEnabled): Added.
* page/Settings.h:
(WebCore::Settings::aggressiveTileRetentionEnabled): Added.
* platform/graphics/TiledBacking.h: Add setter/getter to hand aggressivelyRetainsTiles through to TiledBackings.
* platform/graphics/ca/mac/TileCache.h:
(TileCache): Turn TileValidationPolicy into TileValidationPolicyFlags, and add
a flag for unparenting all tiles.
Implement aggressivelyRetainsTiles setter/getter.
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::TileCache): Initialize m_aggressivelyRetainsTiles to false.
(WebCore::TileCache::setIsInWindow): Revalidate tiles immediately if the TileCache has just entered the window.
(WebCore::TileCache::tileRevalidationTimerFired):
This is called if coverage rect, tile cache layer bounds, or visibility changes. We will revalidate tiles:
- Removing all tiles from the layer tree for background tile caches.
- Not pruning old tiles if the aggressiveTileRetentionEnabled setting is on.
(WebCore::TileCache::revalidateTiles):
Adopt TileValidationPolicyFlags instead of the old enum, and use separate flags for foreground/background caches.
Unparent tiles when they move out of the tile coverage rect.
Only schedule the tile cohort removal timer if we're not aggressively keeping tiles around.
Ensure that tiles are re-added to the TileCache layer tree if they already exist.
Unparent all tiles if TileValidationPolicyFlags says to (from tileRevalidationTimerFired's background flags).
Only add new tiles to the TileCache's layer tree if we're currently in the window.
Don't prune secondary tiles if the visible rect changes; this will already occur because when the visibleRect
changes, we arrive via tileRevalidationTimerFired, which asks for PruneSecondaryTiles anyway (except if we're
aggressively retaining tiles). This prevents tiles from being deleted unexpectedly during rubber-banding or when zoomed (this part of the patch is thanks to Simon).
(WebCore::TileCache::ensureTilesForRect):
Don't ensure any tiles if the TileCache is offscreen.
Ensure that tiles are re-added to the TileCache layer tree if they already exist.
(WebCore::TileCache::drawTileMapContents):
Draw a thick purple border around tiles that have been unparented.
2013-01-04 Adam Barth <abarth@webkit.org>
HTMLTreeBuilder should ASSERT that it is on the main thread before touching elements
https://bugs.webkit.org/show_bug.cgi?id=106128
Reviewed by Eric Seidel.
Even if we move the HTML parser onto a background thread, we're likely
to keep fragment parsing on the main thread. These code paths touch
elements (which only exist on the main thread) but are only used during
fragment parsing. This patch adds ASSERTs to document that invariant.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::closestFormAncestor):
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
2013-01-04 Zoltan Horvath <zoltan@webkit.org>
[CSS Regions] @region rules inside media queries are ignored
https://bugs.webkit.org/show_bug.cgi?id=102388
Reviewed by David Hyatt.
Using @region rules in media queries was ignored, but we should accept and apply it.
Tests: fast/regions/region-rule-nested-region-rule.html
fast/regions/region-styling-mediaquery.html
* css/CSSGrammar.y.in: Add new ruleList for region rule to handle the media query case
and avoid using nested region rules.
* css/RuleSet.cpp:
(WebCore::RuleSet::addRulesFromSheet): Add case for region rules inside media queries.
2013-01-04 Dan Bernstein <mitz@apple.com>
[mac] WebKit1 has no equivalent of WKBundleNodeHandleCopyHTMLTableCellElementCellAbove
https://bugs.webkit.org/show_bug.cgi?id=106121
Reviewed by Adele Peterson.
Test: TestWebKitAPI/Tests/mac/DOMHTMLTableCellCellAbove.mm.
* bindings/objc/DOM.mm:
(-[DOMHTMLTableCellElement _cellAbove]): Added. Calls HTMLTableCellElement::cellAbove().
* bindings/objc/DOMPrivate.h: Added declaration of the above.
2013-01-04 Abhishek Arya <inferno@chromium.org>
Crash in WebCore::RenderBlock::willBeDestroyed
https://bugs.webkit.org/show_bug.cgi?id=103455
Reviewed by Eric Seidel.
It is not required to set beforeChild to :after child since DOM is
now pseudo element aware. See trac.webkit.org/changeset/137336. We
were incorrectly placing the inline continuation before the :after
content.
Test: fast/multicol/continuation-crash.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): remove beforeChild
setting to afterPseudoElementRenderer.
* rendering/RenderRuby.cpp:
(WebCore::RenderRubyAsInline::addChild): add missing beforeChild argument.
setting to afterPseudoElementRenderer.
(WebCore::RenderRubyAsBlock::addChild): add missing beforeChild argument.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::addChild): remove beforeChild
setting to afterPseudoElementRenderer.
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::addChild): remove beforeChild
setting to afterPseudoElementRenderer.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::addChild): remove beforeChild
setting to afterPseudoElementRenderer.
2013-01-04 Chris Rogers <crogers@google.com>
Implement WebIDL-style string constants in WebAudio (part 2)
https://bugs.webkit.org/show_bug.cgi?id=105977
Reviewed by Kentaro Hara.
See Deprecation Notes for more detail:
https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#DeprecationNotes
PannerNode, BiquadFilterNode, OscillatorNode constants must support WebIDL-style string constants.
Legacy support in the setters for the old integer values should be supported.
This patch handles the changes for BiquadFilterNode and PannerNode.
Test: webaudio/pannernode-basic.html
* GNUmakefile.list.am:
* Modules/webaudio/BiquadFilterNode.cpp:
(WebCore::BiquadFilterNode::type):
(WebCore):
(WebCore::BiquadFilterNode::setType):
* Modules/webaudio/BiquadFilterNode.h:
(BiquadFilterNode):
* Modules/webaudio/BiquadFilterNode.idl:
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::panningModel):
(WebCore):
(WebCore::PannerNode::setPanningModel):
(WebCore::PannerNode::distanceModel):
(WebCore::PannerNode::setDistanceModel):
* Modules/webaudio/PannerNode.h:
(PannerNode):
* Modules/webaudio/PannerNode.idl:
* Target.pri:
* UseJSC.cmake:
* UseV8.cmake:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBiquadFilterNodeCustom.cpp: Copied from Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp.
(WebCore):
(WebCore::JSBiquadFilterNode::setType):
* bindings/js/JSPannerNodeCustom.cpp: Copied from Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp.
(WebCore):
(WebCore::JSPannerNode::setPanningModel):
(WebCore::JSPannerNode::setDistanceModel):
* bindings/v8/custom/V8BiquadFilterNodeCustom.cpp: Copied from Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp.
(WebCore):
(WebCore::V8BiquadFilterNode::typeAccessorSetter):
* bindings/v8/custom/V8PannerNodeCustom.cpp: Added.
(WebCore):
(WebCore::V8PannerNode::panningModelAccessorSetter):
(WebCore::V8PannerNode::distanceModelAccessorSetter):
2013-01-04 Rick Byers <rbyers@chromium.org>
window.Touch and TouchList should exist when touch events are enabled
https://bugs.webkit.org/show_bug.cgi?id=96295
Reviewed by Kentaro Hara.
Add missing window.Touch and window.TouchList constructors under
ENABLE(TOUCH_EVENTS).
Make window.Touch, window.TouchList and window.TouchEvent enabled at runtime
under V8, to be consistent with all the other touch-related APIs.
Tests: fast/events/touch/document-create-touch-list.html
fast/js/global-constructors.html
* bindings/generic/RuntimeEnabledFeatures.h:
* dom/Document.idl:
* dom/Element.idl:
* page/DOMWindow.idl:
2013-01-04 Adam Klein <adamk@chromium.org>
[v8] Stop using an IDL to generate V8MutationCallback
https://bugs.webkit.org/show_bug.cgi?id=106122
Reviewed by Adam Barth.
The only real code in the generated V8MutationCallback.{h,cpp} files
were specifically written in CodeGeneratorV8 for its use. By instead
Using completely-hand-written versions of these files, the
CodeGenerator can be simplified (as can all generated Callbacks).
All the actually shared code is still shared via subclassing of
ActiveDOMCallback.
This introduces additional flexibility into the implementation of
MutationCallback which will be used when fixing the MutationObserver
memory leak (http://webkit.org/b/90661) for JSC.
No changes to JSC for now, just a FIXME in the IDL file.
No new tests, refactoringonly.
* WebCore.gypi:
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateCallbackHeader):
(GenerateCallbackImplementation):
* bindings/scripts/test/V8/V8TestCallback.cpp:
(WebCore::V8TestCallback::V8TestCallback):
* bindings/scripts/test/V8/V8TestCallback.h:
(WebCore::V8TestCallback::create):
(V8TestCallback):
* bindings/v8/V8MutationCallback.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8MutationCallbackCustom.cpp.
(WebCore::V8MutationCallback::V8MutationCallback):
(WebCore::V8MutationCallback::handleEvent):
* bindings/v8/V8MutationCallback.h: Added.
(V8MutationCallback):
(WebCore::V8MutationCallback::create):
(WebCore::V8MutationCallback::weakCallback):
* dom/MutationCallback.idl:
2013-01-04 Tony Chang <tony@chromium.org>
Remove some autogenerated settings from InternalSettings.idl
https://bugs.webkit.org/show_bug.cgi?id=106114
Reviewed by Ojan Vafai.
Remove 6 methods that are now autogenerated.
setAcceleratedFiltersEnabled was never called.
AcceleratedCompositingForOverflowScrollEnabled was never backed up/restored.
setEnableCompositingForFixedPosition and setEnableCompositingForScrollableFrames
are renamed to match the name in Settings.in.
No new tests, there should be no change in behavior. This is covered by
existing tests in compositing and platform/chromium/compositing.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Remove code.
(WebCore::InternalSettings::Backup::restoreTo): Remove code.
* testing/InternalSettings.h:
(Backup): Remove member variables.
(InternalSettings):
* testing/InternalSettings.idl: Remove methods that are no longer used.
2013-01-04 Ojan Vafai <ojan@chromium.org>
Vertical writing mode can overflow fixed size grandparent container
https://bugs.webkit.org/show_bug.cgi?id=93655
Reviewed by David Hyatt.
Add a hook to RenderBox::availableHeight to exclude the containing block's
margin, border and padding. This is for auto-sizing perpendicular writing modes
to restrict to the minimum of the fill-available height and the viewport height.
This will be used in a future patch to implement "height: fill-available".
This behavior was recently specced in http://dev.w3.org/csswg/css3-sizing/#extrinsic-sizing.
Test: fast/writing-mode/auto-sizing-orthogonal-flows.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::containingBlockAvailableLineWidthInRegion):
(WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
(WebCore::RenderBox::availableLogicalHeight):
(WebCore::RenderBox::availableLogicalHeightUsing):
* rendering/RenderBox.h:
(RenderBox):
(WebCore::RenderBox::availableWidth):
(WebCore::RenderBox::availableHeight):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::computeIntrinsicRatioInformation):
* rendering/RenderView.cpp:
(WebCore::RenderView::availableLogicalHeight):
* rendering/RenderView.h:
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
2013-01-04 Joshua Bell <jsbell@chromium.org>
Add tests for WebIDL type conversions
https://bugs.webkit.org/show_bug.cgi?id=105927
Reviewed by Adam Barth.
Expose attributes of various WebIDL types for testing ECMAScript value conversion,
including edge cases such as NaNs, Infinities, etc. These attributes hang off
a TypeConversions object created via window.internals.typeConversions().
Test: fast/js/webidl-type-mapping.html
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* WebCore.vcproj/WebCoreTestSupport.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* testing/Internals.cpp:
(WebCore::Internals::typeConversions):
(WebCore):
* testing/Internals.h:
(WebCore):
* testing/Internals.idl:
* testing/TypeConversions.h: Added.
(WebCore):
(TypeConversions):
(WebCore::TypeConversions::create):
(WebCore::TypeConversions::testLong):
(WebCore::TypeConversions::setTestLong):
(WebCore::TypeConversions::testUnsignedLong):
(WebCore::TypeConversions::setTestUnsignedLong):
(WebCore::TypeConversions::testLongLong):
(WebCore::TypeConversions::setTestLongLong):
(WebCore::TypeConversions::testUnsignedLongLong):
(WebCore::TypeConversions::setTestUnsignedLongLong):
(WebCore::TypeConversions::TypeConversions):
* testing/TypeConversions.idl: Added.
2013-01-04 Stephen White <senorblanco@chromium.org>
Invalidation of some SVG filter attributes on HTML content doesn't work
https://bugs.webkit.org/show_bug.cgi?id=105635
Reviewed by Dirk Schulze.
Since HTML elements with filters are only added to m_clientLayers, not
m_clients, and do not use the FilterInfo used by SVG filters on SVG
elements, they must be invalidated separately. Some filter attribute
invalidations call markAllClientsForInvalidation(), but some call
markClientForInvalidation() directly. These invaldations must also
invalidate m_clientLayers.
Test: css3/filters/reference-filter-update-on-attribute-change.html
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
(WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation):
* rendering/svg/RenderSVGResourceContainer.h:
Refactor client layer invalidation out into its own function.
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
Mark all client layers for invalidation when a filter primitve attribute is
changed.
2013-01-04 Mike West <mkwst@chromium.org>
CSP 1.1: Experiment with adding line numbers to violation reports.
https://bugs.webkit.org/show_bug.cgi?id=105374
Reviewed by Adam Barth.
Line numbers and URLs were added to the CSP 1.1 spec in
https://dvcs.w3.org/hg/content-security-policy/rev/e0270baace3d, and
already exist (and have for quite some time) in Firefox's
implementation. Based on developer feedback, it seems reasonable to
experiment a bit with adding them to WebKit's violation reports.
This patch generates a stack trace when constructing the violation
report object (iff a violation report object ought to be generated)
and adds a line number and URL to the object if possible.
Tests: http/tests/security/contentSecurityPolicy/report-uri-from-inline-javascript.html
http/tests/security/contentSecurityPolicy/report-uri-from-javascript.html
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::reportViolation):
Generate a stack trace when building the violation report: if it
has relevant detail, add the line number and URL to the report
object.
2013-01-04 Mike Lawther <mikelawther@chromium.org>
CSS3 calc: working with translate and scale transforms
https://bugs.webkit.org/show_bug.cgi?id=105985
Reviewed by Ojan Vafai.
Allow convertTo[Float|Int]Length functions to process calculated values.
Tests: css3/calc/transforms-scale.html
css3/calc/transforms-translate.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::convertToIntLength):
(WebCore::StyleResolver::convertToFloatLength):
2013-01-04 Elliott Sprehn <esprehn@chromium.org>
PseudoElement should never dispatch events
https://bugs.webkit.org/show_bug.cgi?id=106048
Reviewed by Ojan Vafai.
The new DOM based generated content can sometimes dispatch events
as a result of animations or transitions which is incorrect as it
exposes the PseudoElement to script. All event dispatch from a
PseudoElement should be ignored.
Per discussions with Tab Atkins in the future we might add support
by making events dispatched from a pseudo element fire with the
target as the parent element and add a new pseudo property to
events that has the value "before" or "after".
Test: fast/css-generated-content/pseudo-element-events.html
* dom/PseudoElement.h:
2013-01-04 Benjamin Poulain <benjamin@webkit.org>
WebKitCSSTransformValue::customCssText() should always allocate once
https://bugs.webkit.org/show_bug.cgi?id=105445
Reviewed by Alexis Menard.
When converting a WebKitCSSTransformValue to a String representation,
it was typically done with 2 memory allocations due to the string size in StringBuilder.
This patch changes the code to use the String Concatenate operations in order
to create the string at once.
The opening parenthesis is also moved in the prefix name in order to maximize
the range copied with memcopy.
* css/WebKitCSSTransformValue.cpp:
(WebCore::transformValueToCssString): New generic function for boxing values.
(WebCore::WebKitCSSTransformValue::customCssText):
(WebCore::WebKitCSSTransformValue::customSerializeResolvingVariables):
2013-01-04 James Robinson <jamesr@chromium.org>
[chromium] WebTransformationMatrix shouldn't alias memory for TransformationMatrix
https://bugs.webkit.org/show_bug.cgi?id=106025
Reviewed by Adrienne Walker.
* platform/chromium/support/WebTransformationMatrix.cpp:
(WebKit::WebTransformationMatrix::WebTransformationMatrix):
(WebKit::WebTransformationMatrix::reset):
(WebKit):
(WebKit::WebTransformationMatrix::operator=):
(WebKit::WebTransformationMatrix::operator==):
(WebKit::WebTransformationMatrix::inverse):
(WebKit::WebTransformationMatrix::to2dTransform):
(WebKit::WebTransformationMatrix::multiply):
(WebKit::WebTransformationMatrix::makeIdentity):
(WebKit::WebTransformationMatrix::translate):
(WebKit::WebTransformationMatrix::translate3d):
(WebKit::WebTransformationMatrix::translateRight3d):
(WebKit::WebTransformationMatrix::scale):
(WebKit::WebTransformationMatrix::scaleNonUniform):
(WebKit::WebTransformationMatrix::scale3d):
(WebKit::WebTransformationMatrix::rotate):
(WebKit::WebTransformationMatrix::rotate3d):
(WebKit::WebTransformationMatrix::skewX):
(WebKit::WebTransformationMatrix::skewY):
(WebKit::WebTransformationMatrix::applyPerspective):
(WebKit::WebTransformationMatrix::blend):
(WebKit::WebTransformationMatrix::hasPerspective):
(WebKit::WebTransformationMatrix::isInvertible):
(WebKit::WebTransformationMatrix::isBackFaceVisible):
(WebKit::WebTransformationMatrix::isIdentity):
(WebKit::WebTransformationMatrix::isIdentityOrTranslation):
(WebKit::WebTransformationMatrix::isIntegerTranslation):
(WebKit::WebTransformationMatrix::m11):
(WebKit::WebTransformationMatrix::setM11):
(WebKit::WebTransformationMatrix::m12):
(WebKit::WebTransformationMatrix::setM12):
(WebKit::WebTransformationMatrix::m13):
(WebKit::WebTransformationMatrix::setM13):
(WebKit::WebTransformationMatrix::m14):
(WebKit::WebTransformationMatrix::setM14):
(WebKit::WebTransformationMatrix::m21):
(WebKit::WebTransformationMatrix::setM21):
(WebKit::WebTransformationMatrix::m22):
(WebKit::WebTransformationMatrix::setM22):
(WebKit::WebTransformationMatrix::m23):
(WebKit::WebTransformationMatrix::setM23):
(WebKit::WebTransformationMatrix::m24):
(WebKit::WebTransformationMatrix::setM24):
(WebKit::WebTransformationMatrix::m31):
(WebKit::WebTransformationMatrix::setM31):
(WebKit::WebTransformationMatrix::m32):
(WebKit::WebTransformationMatrix::setM32):
(WebKit::WebTransformationMatrix::m33):
(WebKit::WebTransformationMatrix::setM33):
(WebKit::WebTransformationMatrix::m34):
(WebKit::WebTransformationMatrix::setM34):
(WebKit::WebTransformationMatrix::m41):
(WebKit::WebTransformationMatrix::setM41):
(WebKit::WebTransformationMatrix::m42):
(WebKit::WebTransformationMatrix::setM42):
(WebKit::WebTransformationMatrix::m43):
(WebKit::WebTransformationMatrix::setM43):
(WebKit::WebTransformationMatrix::m44):
(WebKit::WebTransformationMatrix::setM44):
(WebKit::WebTransformationMatrix::a):
(WebKit::WebTransformationMatrix::setA):
(WebKit::WebTransformationMatrix::b):
(WebKit::WebTransformationMatrix::setB):
(WebKit::WebTransformationMatrix::c):
(WebKit::WebTransformationMatrix::setC):
(WebKit::WebTransformationMatrix::d):
(WebKit::WebTransformationMatrix::setD):
(WebKit::WebTransformationMatrix::e):
(WebKit::WebTransformationMatrix::setE):
(WebKit::WebTransformationMatrix::f):
(WebKit::WebTransformationMatrix::setF):
(WebKit::WebTransformationMatrix::toWebCoreTransform):
2013-01-04 Stephen White <senorblanco@chromium.org>
CSS url() filters with forward references don't work
https://bugs.webkit.org/show_bug.cgi?id=90405
Based on a patch by Keyar Hood.
Reviewed by Dirk Schulze.
In order for CSS to reference SVG filters that will occur later in
the document, or will be added at a future time, we need a way to
notify the target element (the one the filter style is applied to)
when the correct SVG filter is added to the DOM.
There is already code for SVG elements that handles this problem, in
SVGResourcesCache. This patch allows any element to have a reference to
an SVG element in SVGResourceCache.
Tests: css3/filters/effect-reference-after.html
css3/filters/effect-reference-delete-crash.html
css3/filters/effect-reference-delete.html
css3/filters/effect-reference-removed-while-pending-resources.html
css3/filters/effect-reference-rename.html
css3/filters/effect-reference-reset-style-delete-crash.html
svg/filters/filter-cycle.html
* dom/Element.cpp:
(WebCore::Element::~Element):
(WebCore::Element::removedFrom):
When an Element is deleted or removed from its container, and it
has pending resources, remove it from the SVGResourceCache resources
on deletion or when removed from its container.
(WebCore::Element::hasPendingResources):
(WebCore::Element::setHasPendingResources):
(WebCore::Element::clearHasPendingResources):
Accessors for ElementRareData's new bit flag.
* dom/Element.h:
(WebCore::Element::buildPendingResource):
Virtual function to override for referenced elements (moved from SVGElement).
* dom/ElementRareData.h:
(WebCore::ElementRareData::hasPendingResources):
(WebCore::ElementRareData::setHasPendingResources):
(WebCore::ElementRareData::ElementRareData):
Add a new bit flag to indicate whether the element depends on pending resources or not, and accessors.
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
(NodeRareData):
The actual flag bit lives in NodeRareData, so it compacts better with
other flags.
* platform/graphics/texmap/TextureMapperImageBuffer.cpp:
(WebCore::BitmapTextureImageBuffer::applyFilters):
Changed to the new function signature for FilterEffectRenderer::build().
* rendering/FilterEffectRenderer.cpp:
(WebCore::createCustomFilterEffect):
(WebCore::FilterEffectRenderer::buildReferenceFilter):
Changed signature to accept a RenderObject rather than a Document, so we know which node to notify when the SVG filter arrives. If the referenced filter cannot be found, add its id as a pending reference.
(WebCore::FilterEffectRenderer::build):
* rendering/FilterEffectRenderer.h:
Change to signatures of build() and buildReferenceFilter() to pass
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
Use the new semantics for FilterEffectRenderer::build().
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::registerResource):
Call clearHasPendingResourceIfPossible on the SVGDocumentExtensions, not
on the element, since we want to support generic Elements.
* rendering/svg/SVGResourcesCache.cpp:
(WebCore::SVGResourcesCache::addResourcesFromRenderObject):
(WebCore::SVGResourcesCache::clientStyleChanged):
For non-SVG elements, set a synthetic style change when parent resources
are invalidated.
(WebCore::SVGResourcesCache::resourceDestroyed):
Add support for non-SVG Elements.
* svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::addPendingResource):
(WebCore::SVGDocumentExtensions::isElementPendingResources):
(WebCore::SVGDocumentExtensions::isElementPendingResource):
Changed to allow use of Element instead of SVGElement.
(WebCore::SVGDocumentExtensions::clearHasPendingResourcesIfPossible):
Moved from SVGElement, and made to work on any Element. This way,
we avoid adding this function to Element itself.
(WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
(WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
Changed to allow use of Element instead of SVGElement.
* svg/SVGDocumentExtensions.h:
SVGElement -> Element.
* svg/SVGElement.cpp:
(WebCore::SVGElement::~SVGElement):
(WebCore::SVGElement::removedFrom):
Don't handle pending resource notifications (Element will do it).
* svg/SVGElement.h:
All functions moved to Element, except for clearHasPendingResourcesIfPossible() moved to SVGDocumentExtensions.
* svg/SVGElementRareData.h:
(WebCore::SVGElementRareData::SVGElementRareData):
m_hasPendingResources and accessors moved to ElementRareData.
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
SVGElement -> Element, and call SVGDocumentExtensions for
clearHasPendingResourcesIfPossible().
2013-01-04 John Mellor <johnme@chromium.org>
Clamp font sizes to valid range in RenderStyle::setFontSize
https://bugs.webkit.org/show_bug.cgi?id=106014
Reviewed by Emil A Eklund.
There is a test-case attached to http://crbug.com/167443, but I can't
think of a good way of automatically testing this. Functionality
shouldn't change on normal pages.
* rendering/style/RenderStyleConstants.h:
Add constant for maximum allowed font size.
* css/StyleBuilder.cpp:
(WebCore::ApplyPropertyFontSize::applyValue):
Use constant from RenderStyleConstants.h instead of hardcoding.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::getComputedSizeFromSpecifiedSize):
Use constant from RenderStyleConstants.h instead of hardcoding.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setFontSize):
Clamp non-finite and out of range font sizes.
2013-01-04 Mike West <mkwst@chromium.org>
CSP: Blocked 'track' sources should only log once to the console.
https://bugs.webkit.org/show_bug.cgi?id=106091
Reviewed by Eric Carlson.
HTMLTrackElement posts a message to the console when track data is
blocked by Content Security Policy. Now that we're logging inside the
ContentSecurityPolicy object itself, there's no need for the
duplication. This patch drops the extra log message (and, as a
side-effect, adds a test that ensures that 'track' content is governed
by the 'media-src' directive).
Test: http/tests/security/contentSecurityPolicy/media-src-track-block.html
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::canLoadUrl):
2013-01-03 Jer Noble <jer.noble@apple.com>
Crash in media/unsupported-rtsp.html.
https://bugs.webkit.org/show_bug.cgi?id=106038
Reviewed by Eric Carlson.
Fixes media/unsupported-rtsp.html on Mac platforms which support AVAssetResourceLoadingRequest.
Check that the CachedResource passed in the notifyFinished method didn't fail or error before
passing its (possibly nil) contents to the AVAssetResourceLoadingRequest.
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
(WebCore::WebCoreAVFResourceLoader::notifyFinished):
(WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
2013-01-04 Mike West <mkwst@chromium.org>
CSP: 'frame-src' should block redirects to invalid sources.
https://bugs.webkit.org/show_bug.cgi?id=106084
Reviewed by Adam Barth.
The 'frame-src' CSP directive whitelists valid iframe targets, but
currently fails to correctly deal with redirection. As long as the
initial target is valid, any redirection goes through without
question. This patch moves the CSP check out of
SubframeLoader::loadSubframe, and into
PolicyChecker::checkNavigationPolicy. In the new location, the check
is well-positioned to check each URL in a redirect chain, as opposed
to checking only the initial target.
Test: http/tests/security/contentSecurityPolicy/frame-src-redirect-blocked.html
* loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy):
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::loadSubframe):
2013-01-04 Mike West <mkwst@chromium.org>
CSP: XHR from an isolated world should bypass a page's policy.
https://bugs.webkit.org/show_bug.cgi?id=104480
Reviewed by Adam Barth.
Connections of various types are governed by the page's Content Security
Policy 'connect-src' directive. In the special case of connections
generated from an isolated world, we'd like to bypass these restrictions
in order to allow things like extensions to enjoy their uniquely high-
privilege lifestyle. This patch does just that.
We'll lock them down to their own policy in webkit.org/b/104520, but
that's a bit far away at the moment. Soon!
Test: http/tests/security/isolatedWorld/bypass-main-world-csp-for-xhr.html
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::canRequest):
* page/EventSource.cpp:
(WebCore::EventSource::create):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::open):
Check whether or not code is running in an isolated world that has
its own Content Security Policy. If so, bypass the main world's CSP
checks. Isolated worlds gotta be free, man.
2013-01-04 Mike Lawther <mikelawther@chromium.org>
CSS3 calc: mixed percent/absolute for border-radius
https://bugs.webkit.org/show_bug.cgi?id=106046
Reviewed by Ojan Vafai.
Add the calculation evaluation to the border radius code.
Test: css3/calc/border-radius.html
* css/StyleBuilder.cpp:
(WebCore::ApplyPropertyBorderRadius::applyValue):
2013-01-04 John Mellor <johnme@chromium.org>
Early out from FontCache::releaseFontData if cached font data not found.
https://bugs.webkit.org/show_bug.cgi?id=106104
Reviewed by Abhishek Arya.
No tests, as no change in behavior.
* platform/graphics/FontCache.cpp:
(WebCore::FontCache::releaseFontData):
Early out in release builds if cached font data not found.
2013-01-04 Adam Klein <adamk@chromium.org>
Remove ENABLE_MUTATION_OBSERVERS #define
https://bugs.webkit.org/show_bug.cgi?id=105459
Reviewed by Ryosuke Niwa.
The flag has been on by default for quite awhile now (nearly a year)
and the feature is a standardized part of DOM4.
The only place it was disabled was under "unstable" features for the
gtk port, but the fact that it's shipping in several major WebKit
browsers as well as Firefox suggests that it's not too unstable.
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am: Removed ENABLE_MUTATION_OBSERVERS from the "unstable features" list.
* GNUmakefile.features.am.in:
* bindings/js/JSDictionary.cpp:
(WebCore):
(WebCore::JSDictionary::convertValue):
* bindings/js/JSDictionary.h:
* bindings/js/JSMainThreadExecState.cpp:
(WebCore::JSMainThreadExecState::didLeaveScriptContext):
* bindings/js/JSMutationCallbackCustom.cpp:
* bindings/js/JSMutationObserverCustom.cpp:
* bindings/v8/V8GCController.cpp:
* bindings/v8/V8RecursionScope.cpp:
(WebCore::V8RecursionScope::didLeaveScriptContext):
* bindings/v8/custom/V8MutationCallbackCustom.cpp:
* bindings/v8/custom/V8MutationObserverCustom.cpp:
* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::setCssText):
(WebCore::PropertySetCSSStyleDeclaration::setProperty):
(WebCore::PropertySetCSSStyleDeclaration::removeProperty):
(WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
* dom/CharacterData.cpp:
(WebCore::CharacterData::dispatchModifiedEvent):
* dom/ChildListMutationScope.cpp:
* dom/ChildListMutationScope.h:
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::willRemoveChild):
(WebCore::willRemoveChildren):
(WebCore::ContainerNode::appendChild):
(WebCore::updateTreeAfterInsertion):
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
(Document):
* dom/Element.cpp:
(WebCore::Element::willModifyAttribute):
* dom/MutationCallback.h:
* dom/MutationCallback.idl:
* dom/MutationObserver.cpp:
* dom/MutationObserver.h:
* dom/MutationObserver.idl:
* dom/MutationObserverInterestGroup.cpp:
* dom/MutationObserverInterestGroup.h:
* dom/MutationObserverRegistration.cpp:
* dom/MutationObserverRegistration.h:
* dom/MutationRecord.cpp:
* dom/MutationRecord.h:
* dom/MutationRecord.idl:
* dom/Node.cpp:
(WebCore::Node::clearRareData):
(WebCore::Node::setTextContent):
(WebCore::Node::didMoveToNewDocument):
(WebCore::Node::notifyMutationObserversNodeWillDetach):
* dom/Node.h:
(Node):
* dom/NodeRareData.cpp:
(SameSizeAsNodeRareData):
(WebCore::NodeRareData::reportMemoryUsage):
* dom/NodeRareData.h:
(NodeRareData):
(WebCore::NodeRareData::ensureTransientMutationObserverRegistry):
* editing/markup.cpp:
(WebCore::replaceChildrenWithFragment):
(WebCore::replaceChildrenWithText):
* page/DOMWindow.idl:
2013-01-04 Xianzhu Wang <wangxianzhu@chromium.org>
Change RenderLayerBacking::nameForLayer() to RenderLayer::name()
https://bugs.webkit.org/show_bug.cgi?id=105648
Reviewed by Simon Fraser.
No new tests. For debugging only.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::name):
(WebCore):
* rendering/RenderLayer.h:
(RenderLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
(WebCore::RenderLayerBacking::updateForegroundLayer):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::logLayerInfo):
2013-01-04 Rick Byers <rbyers@chromium.org>
Existence of window.Touch can break websites mobile device detection
https://bugs.webkit.org/show_bug.cgi?id=106071
Reviewed by Ojan Vafai.
Revert http://trac.webkit.org/changeset/135562 for now while I work
on a slightly safer version.
* page/DOMWindow.idl:
2013-01-04 Martin Robinson <mrobinson@igalia.com>
[GTK] [WebKit2] Clicking on a word that is selected in an editable area deletes it
https://bugs.webkit.org/show_bug.cgi?id=106045
Reviewed by Carlos Garcia Campos.
Be more selective about when to confirm WebKit compositions. If there is no current
preedit, reseting the GTK+ context shouldn't also do an empty confirmation in WebKit,
as this will trash the current selection. The second part of this patch also makes the
m_composingTextCurrently member more accurately reflect whether or not we are composing
text.
* platform/gtk/GtkInputMethodFilter.cpp:
(WebCore::GtkInputMethodFilter::notifyMouseButtonPress): Only confirm the current WebKit composition
if we have a preedit.
(WebCore::GtkInputMethodFilter::notifyFocusedOut): Ditto.
(WebCore::GtkInputMethodFilter::sendCompositionAndPreeditWithFakeKeyEvents): Don't clear the m_composingTextCurrently
member if we are not sending a confirmed composition.
2013-01-04 Max Feil <mfeil@rim.com>
[BlackBerry] Handle re-entrant destruction of MediaPlayerPrivate while a dialog is up
https://bugs.webkit.org/show_bug.cgi?id=105906
Reviewed by George Staikos.
Now that dialogs are not truly modal anymore, we need to
handle the case where MediaPlayerPrivate gets destroyed by
re-entrant calls while a dialog is up. We do this by deferring
the destruction of MMRPlayer until the user dismisses the dialog.
No new tests because user dialog input is not yet part of the
layouttest framework.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
(WebCore::MediaPlayerPrivate::onShowErrorDialog):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
(MediaPlayerPrivate):
2013-01-04 Anthony Scian <ascian@rim.com>
[Blackberry] Static code analysis warning fixes
https://bugs.webkit.org/show_bug.cgi?id=105679
Reviewed by Rob Buis.
klocwork 1855: fixed by caching page, check against NULL and use cached value
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::determineFullScreenMultiplier):
2013-01-04 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] The ExclusionPolygon classes should allow more than one type of "Edge" class
https://bugs.webkit.org/show_bug.cgi?id=106026
Reviewed by Dirk Schulze.
Refactored the ExclusionPolygonEdge class to pave the way for a similar
OffsetEdge class. The new VertexPair abstract base class provides the common
state and operations. ExclusionPolygonEdge now extends VertexPair and defines
ExclusionPolygon as a friend, since the ExclusionPolygon constructor initializes
its private state.
* rendering/ExclusionPolygon.cpp:
(WebCore::ExclusionPolygon::ExclusionPolygon): Use ExclusionPolygonEdge accessors instead of direct field access.
(WebCore::getVertexIntersectionVertices): Ditto.
* rendering/ExclusionPolygon.h:
(VertexPair): New abstract base class.
(WebCore::VertexPair::~VertexPair):
(WebCore::VertexPair::minX): This method was defined in ExclusionPolygonEdge.
(WebCore::VertexPair::minY): Ditto.
(WebCore::VertexPair::maxX): Ditto.
(WebCore::VertexPair::maxY): Ditto.
(ExclusionPolygonEdge): Now extends VertexPair.
(WebCore::ExclusionPolygonEdge::previousEdge): Refer to m_ private class fields, instead of public struct fields.
(WebCore::ExclusionPolygonEdge::nextEdge): Ditto.
(WebCore::ExclusionPolygonEdge::polygon): Ditto.
(WebCore::ExclusionPolygonEdge::vertexIndex1): Ditto.
(WebCore::ExclusionPolygonEdge::vertexIndex2): Ditto.
(WebCore::ExclusionPolygonEdge::edgeIndex): Ditto.
2013-01-04 Steve Block <steveblock@chromium.org>
Add 'float FloatPoint::slopeAngleRadians()'
https://bugs.webkit.org/show_bug.cgi?id=105997
Reviewed by Stephen White.
Refactoring only, no functional change.
* platform/graphics/FloatPoint.cpp:
(WebCore::FloatPoint::slopeAngleRadians):
(WebCore):
* platform/graphics/FloatPoint.h:
Add 'float FloatPoint::slopeAngleRadians() const'
* platform/graphics/PathTraversalState.cpp:
(WebCore::PathTraversalState::processSegment):
* rendering/svg/SVGMarkerData.h:
(WebCore::SVGMarkerData::currentAngle):
* svg/SVGPathParser.cpp:
(WebCore::SVGPathParser::decomposeArcToCubic):
2013-01-04 Zan Dobersek <zandobersek@gmail.com>
REGRESSION (r138184): transitions/transitions-parsing.html is failing on GTK
https://bugs.webkit.org/show_bug.cgi?id=105522
Reviewed by Xan Lopez.
Remove the feature define overriding for the unprefixed CSS transition property names
define as it is not required.
No new tests - no new functionality.
* GNUmakefile.am:
2013-01-04 Zan Dobersek <zandobersek@gmail.com>
[GObject bindings] Wrap event target interface code in feature define guards if necessary
https://bugs.webkit.org/show_bug.cgi?id=105743
Reviewed by Xan Lopez.
Wrap the event target interface implementation code in feature define guards if the interface
is guarded by a conditional. A warning is reported if these methods get called with the specific
feature being disabled.
This was spotted when building with the video track feature disabled was causing build failures.
No new tests - no new functionality. The bindings tests don't test event targets under conditionals.
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateEventTargetIface):
2012-12-18 Philippe Normand <pnormand@igalia.com>
[GStreamer] Port WebAudio backend to 1.0 APIs
https://bugs.webkit.org/show_bug.cgi?id=105293
Reviewed by Martin Robinson.
Port the AudioFileReader and AudioDestination to GStreamer 1.0
APIs. It would be preferable to rely on at least GStreamer 1.0.4
for this to work properly as that release contains two bug fixes
for the deinterleave and interleave elements.
* platform/audio/FFTFrame.cpp:
(WebCore::FFTFrame::reportMemoryUsage): Don't report GstFFTF32
structures anymore because they're opaque in GStreamer 1.0.
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore):
(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
The wavparse element in 1.0 has no sometimes-pads anymore.
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(AudioFileReader): The decodebin2 element has been renamed to
decodebin in GStreamer 1.0.
(WebCore::getGStreamerAudioCaps): Audio caps description changed a
lot in GStreamer 1.0, the function now handles both APIs.
(WebCore::copyGstreamerBuffersToAudioChannel): Adapted to
GstBufferList and GstBuffer API changes.
(WebCore::onAppsinkPullRequiredCallback): Pull a sample or buffer,
depending on which API we use.
(WebCore::AudioFileReader::~AudioFileReader): Protect
GstBufferListIterators in 0.10-only code path.
(WebCore):
(WebCore::AudioFileReader::handleSample): Pull an audio sample
from appsink and insert it in the appropriate buffer list.
(WebCore::AudioFileReader::handleNewDeinterleavePad): Handle
appsink API changes from GStreamer 0.10 to 1.0.
(WebCore::AudioFileReader::decodeAudioForBusCreation): Create the
correct decodebin element.
(WebCore::AudioFileReader::createBus): Protect GstBufferListIterators
in 0.10-only code path.
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(_WebKitWebAudioSourcePrivate): GstTask in GStreamer 1.0 uses a
GRecMutex instead of a (deprecated) GStaticRecMutex.
(getGStreamerMonoAudioCaps): Handle caps description changes
between GStreamer 0.10 and 1.0.
(webKitWebAudioGStreamerChannelPosition): POSITION_LFE in
GStreamer 1.0 is now POSITION_LFE1. Also map ChannelCenter to its
GStreamer equivalent.
(webkit_web_audio_src_class_init): Use generic setGstElementClassMetadata.
(webkit_web_audio_src_init): Handle GRecMutex initialisation.
(webKitWebAudioSrcConstructed): Set channel position on
capsfilter. This is done for GStreamer 1.0 code path only because
in 0.10 the caps have no way to store this information.
(webKitWebAudioSrcFinalize): Clear GRecMutex.
(webKitWebAudioSrcLoop): Handle GstBuffer API changes and add an
error check if buffers can't be chained to queue's source pad.
(webKitWebAudioSrcChangeState): As advised in the GStreamer docs,
fixup the state changes for this live source element: NO_PREROLL
in READY->PAUSED and start/stop the GstTask when going/coming
to/from PLAYING.
2013-01-04 Mihnea Ovidenie <mihnea@adobe.com>
[CSS Regions]Content overflowing last region displayed wrong
https://bugs.webkit.org/show_bug.cgi?id=105893
Reviewed by David Hyatt.
For the last region in the region chain and flipped writing modes (horizontal-bt, vertical-rl),
the clipping rect should take overflow into account in the writing mode direction, which is
different in these cases than the direction for non-flipped writing modes.
Tests: fast/regions/overflow-last-region-horiz-bt.html
fast/regions/overflow-last-region-vert-lr.html
fast/regions/overflow-last-region-vert-rl.html
fast/regions/overflow-last-region.html
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::computeRegionClippingRect): Helper function used to compute region clipping rect
for paint and hitTest.
(WebCore):
(WebCore::RenderFlowThread::paintFlowThreadPortionInRegion):
(WebCore::RenderFlowThread::hitTestFlowThreadPortionInRegion):
* rendering/RenderFlowThread.h:
2013-01-04 Dima Gorbik <dgorbik@apple.com>
Implement :future pseudo class for the WebVTT ::cue pseudo element
https://bugs.webkit.org/show_bug.cgi?id=105473
Reviewed by Antti Koivisto.
This patch changes the approach of showing past/future node objects.
Before upper-level containers were used to put past and future nodes inside. Styles were applied
to containers. Now styles could be applied directly to nodes by using ::cue(:future).
That allows to style future/past WebVTT nodes even if they are nested.
Existing test was modified to cover new cases.
* css/CSSSelector.cpp: added :future pseudo class support.
(WebCore::CSSSelector::pseudoId):
(WebCore::nameToPseudoTypeMap):
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
* css/SelectorChecker.cpp: ditto.
(WebCore::SelectorChecker::checkOneSelector):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithElement): define style sharing rules for WebVTT objects.
* css/mediaControls.css:
(video::-webkit-media-text-track-all-nodes):
(video::cue(:future)): added standard user-agent styles for the future nodes.
* dom/Element.cpp: setter functions don't have an argument now because WebVTT type enum was introduced and the right type is set
when the setter is being called.
(WebCore::Element::setIsWebVTTNode):
(WebCore):
(WebCore::Element::isWebVTTFutureNode):
(WebCore::Element::setIsWebVTTFutureNode):
* dom/Element.h:
(Element):
* dom/ElementRareData.h:
(ElementRareData):
* dom/NodeRareData.cpp:
(SameSizeAsNodeRareData): added a dummy enum value. Enum is integer type and is aligned in Windows when placed in the bitfield,
so it takes more space.
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
(WebCore::NodeRareData::isWebVTTNode):
(WebCore::NodeRareData::setIsWebVTTNode):
(WebCore::NodeRareData::isWebVTTFutureNode):
(WebCore::NodeRareData::setIsWebVTTFutureNode):
(NodeRareData):
* html/shadow/MediaControlElements.cpp:
(WebCore):
* html/track/TextTrack.h: add a WebVTT node object type enum.
(TextTrack):
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::allNodesShadowPseudoId):
(WebCore::TextTrackCue::TextTrackCue):
(WebCore::TextTrackCue::getCueAsHTML):
(WebCore):
(WebCore::TextTrackCue::setNodeObjectFlags): determine if the node is future or past and mark as WebVTT node.
This combines the functionality related to marking nodes implemented before in updateDisplayTree and
markNodesAsWebVTTNodes.
(WebCore::TextTrackCue::updateDisplayTree):
(WebCore::TextTrackCue::getDisplayTree):
* html/track/TextTrackCue.h:
(TextTrackCue):
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::constructTreeFromToken): no need to mark nodes as WebVTT nodes when parsing. This is done at the
rendering stage later.
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): the container name has changed.
2013-01-04 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION (r138222?): Assertion failure on appcache/main-resource-redirect.html
https://bugs.webkit.org/show_bug.cgi?id=105591
Reviewed by Brady Eidson.
Fixes crash in test http/tests/appcache/main-resource-redirect.html.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::willSendRequest): In case of loading
substitute data from application cache host due to a redirect,
make sure the substitute data identifier is initialized.
2013-01-03 Tony Chang <tony@chromium.org>
incorrect flexbox relayout with overflow, padding and absolute positioning
https://bugs.webkit.org/show_bug.cgi?id=106022
Reviewed by Ojan Vafai.
The problem was we were entering simplified layout, which doesn't apply the stretch
behavior for flex children. That should be fine if we had kept the override size from
the previous layout. So clear the override size during layout rather than after layout.
Not clearing the override size re-triggers bug 98611. Fix this by always forcing a
layout of an image if it has an override size set. The presence of an override size means
we did some special layout that may not be covered by re-computing the logical width and
height.
Test: css3/flexbox/stretch-simplified-layout.html
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock): Don't clear the override size after layout.
(WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Clear the override size right before layout.
* rendering/RenderFlexibleBox.h:
(RenderFlexibleBox): Remove clearChildOverrideSizes() since it's not called anymore.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageDimensionsChanged): If an override size is present, force a relayout.
Also cleaned up the code a bit to avoid computing the width and height unless we need to.
2013-01-03 Adam Klein <adamk@chromium.org>
Unreviewed rebaseline of binding tests after r138754
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateCallbackHeader): Remove unnecessary whitespace
* bindings/scripts/test/JS/JSTestCallback.h:
(WebCore::JSTestCallback::scriptExecutionContext):
(JSTestCallback):
* bindings/scripts/test/V8/V8TestCallback.h:
(WebCore::V8TestCallback::scriptExecutionContext):
(V8TestCallback):
2013-01-03 Antoine Quint <graouts@apple.com>
onload callback for <track> element attached to <video> does not fire
https://bugs.webkit.org/show_bug.cgi?id=103258
Reviewed by Eric Carlson.
We now correctly implement the track processing model per the latest spec at
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#start-the-track-processing-model.
For a <track> to load, three conditions must be met:
1. it must have a non-empty src
2. it must have a mode other than "disabled" (the default)
3. it must have a parent media element
We used to only check if we were able to load upon setting the track's src,
whereas a change of any of those conditions should have done this, which this
patch now correctly implements.
We also correctly implement the load model asynchronously after step 4, per
the spec, hence the split of the code previously entirely contained in
HTMLTrackElement::scheduleLoad() in another method fired on a timer.
Test: media/track/track-element-load-event.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::textTrackModeChanged):
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::HTMLTrackElement):
(WebCore::HTMLTrackElement::insertedInto):
(WebCore::HTMLTrackElement::parseAttribute):
(WebCore::HTMLTrackElement::scheduleLoad):
(WebCore):
(WebCore::HTMLTrackElement::loadTimerFired):
(WebCore::HTMLTrackElement::textTrackModeChanged):
* html/HTMLTrackElement.h:
* html/track/TextTrack.cpp:
(WebCore::TextTrack::removeAllCues):
(WebCore):
* html/track/TextTrack.h:
(TextTrack):
2013-01-03 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=105475
Nested fixed position elements incorrectly repositioned on scrolling
Reviewed by Simon Fraser.
The fix here is to ensure that the ScrollingTree reflects the same hierarchy as
the GraphicsLayer tree. And from there, we can correctly calculate the offset for
nested objects by keeping track of a cumulative delta that parents have been moved
by.
We already had to fix this same bug in ScrollingStateNode::removeChild(). The
index can be notFound when you are removing a grandchild.
* page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::removeChild):
parentScrollPositionDidChange() now takes a second parameter that represents the
delta that parent graphicsLayers have been moved by.
* page/scrolling/ScrollingTreeNode.h:
(ScrollingTreeNode):
* page/scrolling/ScrollingTreeScrollingNode.h:
* page/scrolling/mac/ScrollingTreeFixedNode.h:
(ScrollingTreeFixedNode):
attachToStateTree() now handles re-parenting.
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::attachToStateTree):
Properly adjust by and compute the new parameter cumulativeDelta. Adjusting by
this will prevent fixed children of fixed objects from moving when they are not
supposed to.
* page/scrolling/mac/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange):
Give parentScrollPositionDidChange() an initial delta of (0,0).
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
Properly adjust by and compute the new parameter cumulativeDelta. This math is
actually not quite right for sticky yet as the FIXME indicates.
* page/scrolling/mac/ScrollingTreeStickyNode.h:
(ScrollingTreeStickyNode):
* page/scrolling/mac/ScrollingTreeStickyNode.mm:
(WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange):
Re-named attachToScrollingCoordinator() to attachToScrollingCoordinatorWithParent
to make it clear that the node may already be attached, but it may need to be re-
parented.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::attachToScrollingCoordinatorWithParent):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBacking):
Always call attachToScrollingCoordinatorWithParent() in case the fixed node has
been re-parented.
(WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
2013-01-03 Simon Fraser <simon.fraser@apple.com>
Body background with background-attachment:fixed stays in place during rubber-banding
https://bugs.webkit.org/show_bug.cgi?id=67894
Reviewed by Beth Dakin.
Use FrameView::scrollOffsetForFixedPosition() to compute the location of the rect
used to position fixed backgrounds, since it takes rubber-banding into account.
No test because rubber-banding isn't testtable in layout tests.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
2013-01-03 Adam Klein <adamk@chromium.org>
[HTMLTemplateElement] When adopting a template element, also adopt its content into the appropriate document
https://bugs.webkit.org/show_bug.cgi?id=106039
Reviewed by Eric Seidel.
Implements the approach discussed in the spec bug:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=20129
Test: fast/dom/HTMLTemplateElement/ownerDocument-adoptNode.html
* html/HTMLTemplateElement.cpp:
(WebCore::HTMLTemplateElement::didMoveToNewDocument):
* html/HTMLTemplateElement.h:
(HTMLTemplateElement):
2013-01-03 Zoltan Horvath <zoltan@webkit.org>
[CSS Regions] Don't apply region flow to fullscreen video playing
https://bugs.webkit.org/show_bug.cgi?id=102388
Reviewed by David Hyatt.
In case of full screen video playing we want to watch the video full screen without applying the region flow.
Test: fast/regions/full-screen-video-from-region.html
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded): Don't move full screen video playing to FlowThread.
2013-01-03 Rafael Weinstein <rafaelw@chromium.org>
[Mutation Observers] prevent delivery while recipient context is suspended
https://bugs.webkit.org/show_bug.cgi?id=105810
Reviewed by Adam Barth.
Test: inspector/debugger/mutation-observer-suspend-while-paused.html
* dom/MutationObserver.cpp:
(WebCore::suspendedMutationObservers):
(WebCore):
(WebCore::MutationObserver::canDeliver):
(WebCore::MutationObserver::deliver):
(WebCore::MutationObserver::deliverAllMutations):
* dom/MutationObserver.h:
2013-01-03 Dan Bernstein <mitz@apple.com>
No way to obtain a DOMNode given a JS wrapper for a Node
https://bugs.webkit.org/show_bug.cgi?id=106033
Reviewed by Sam Weinig.
Test: TestWebKitAPI/Tests/mac/DOMNodeFromJSObject.mm.
* bindings/objc/DOM.mm:
(+[DOMNode _nodeFromJSWrapper:]): Added. If the given JSObjectRef is a wrapper for a Node,
returns the Objective-C wrapper for that node. Note that Objective-C wrappers are always
for the main world, regardless of which world the given JS wrapper comes from.
* bindings/objc/DOMPrivate.h: Added declaration of the above.
2013-01-03 Uday Kiran <udaykiran@motorola.com>
webkit fails IETC column-width-negative-001.htm
https://bugs.webkit.org/show_bug.cgi?id=84778
Reviewed by Tony Chang.
CSS3 multicolumn 'column-width' property value must be greater than zero.
http://dev.w3.org/csswg/css3-multicol/#column-width
Test: fast/multicol/column-width-zero.html
Negative value test covered by ietestcenter/css3/multicolumn/column-width-negative-001.htm
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Check for value greater than zero while parsing.
2013-01-03 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Add a missing state to RTCPeerConnection
https://bugs.webkit.org/show_bug.cgi?id=106017
Reviewed by Adam Barth.
Adding the missing ReadyStateHaveRemoteOffer which will show up in the spec soon.
Not testable, just another state.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::readyState):
* platform/mediastream/RTCPeerConnectionHandlerClient.h:
2013-01-03 Emil A Eklund <eae@chromium.org>
Fix overflow in LayoutUnit::ceil and floor for SATURATED_LAYOUT_ARITHMETIC
https://bugs.webkit.org/show_bug.cgi?id=105961
Reviewed by Levi Weintraub.
The LayoutUnit::ceil and floor methods overflows if given the
intMaxForLayoutUnit and intMinForLayoutUnit values respectively.
Check for the max/min value to avoid this.
Test: TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp
* platform/LayoutUnit.h:
(WebCore::LayoutUnit::ceil):
(WebCore::LayoutUnit::floor):
Check for the max/min value and return early to avoid overflow.
Use the UNLIKELY macro to avoid the cost of branch misprediction
for the common case.
2013-01-03 Elliott Sprehn <esprehn@gmail.com>
[Refactoring] Replace Node's Document pointer with a TreeScope pointer
https://bugs.webkit.org/show_bug.cgi?id=59816
Reviewed by Ryosuke Niwa.
Instead of giving every node in a shadow a rare data, which can be quite
large, we replace the Document pointer in Node with a TreeScope pointer
and we give TreeScope a pointer to it's document scope.
This introduces no branches in document() because in the common
case document() becomes equivalent to m_treeScope->m_documentScope where
the documentScope is actually m_treeScope so this shouldn't introduce a
perf regression.
Note also that TreeScope can never be null after r136328, and the document
pointer is only null for DocumentType nodes so we can use a special
no-document TreeScope for this case that always returns null from
documentScope().
My original patch in r137524 for this did not correctly handle the case
where the Document is being destroyed and we would then call guardDeref on
ourself in the middle of the Document destructor causing asserts. To fix
this we need to go back to the original model where Document passes
null to it's super constructor for the Document pointer and assigns
it's tree scope later, and we also need to clear the tree scope pointer
in Document's destructor.
No new tests, no change in behavior.
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::Document::suggestedMIMEType):
* dom/Document.h:
(WebCore::Node::isDocumentNode):
(WebCore::Node::Node):
* dom/Element.cpp:
(WebCore::Element::createRareData):
* dom/ElementRareData.h:
(ElementRareData):
(WebCore::ElementRareData::ElementRareData):
* dom/Node.cpp:
(WebCore::Node::~Node):
(WebCore::Node::createRareData):
(WebCore::Node::attach):
(WebCore::Node::reportMemoryUsage):
* dom/Node.h:
(WebCore::NodeRareDataBase::NodeRareDataBase):
(NodeRareDataBase):
(WebCore::Node::treeScope):
(WebCore::Node::inDocument):
(WebCore::Node::documentInternal):
(WebCore::Node::setTreeScope):
(Node):
* dom/NodeRareData.cpp:
(SameSizeAsNodeRareData):
(WebCore::NodeRareData::reportMemoryUsage):
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
* dom/TreeScope.cpp:
(SameSizeAsTreeScope):
(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::clearDocumentScope):
Needed to clear the document scope during Document destruction
so the Node destructor does not guardDeref the document that is
already being destroyed.
(WebCore::TreeScope::setParentTreeScope):
* dom/TreeScope.h:
(TreeScope):
(WebCore::TreeScope::documentScope):
(WebCore::TreeScope::noDocumentInstance):
Special shared tree scope that has a document scope that is always
null. This is needed for DocType nodes, and also for Documents
during construction.
(WebCore::TreeScope::setDocumentScope):
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
(WebCore::TreeScopeAdopter::moveNodeToNewDocument):
2013-01-03 Adam Klein <adamk@chromium.org>
Unreviewed build fix.
* dom/ContainerNode.cpp:
(WebCore::isInTemplateContent): s/UNUSED/UNUSED_PARAM/
2013-01-03 Adam Klein <adamk@chromium.org>
[HTMLTemplateElement] Disallow cycles within template content
https://bugs.webkit.org/show_bug.cgi?id=105066
Reviewed by Ojan Vafai.
Cycles in <template> content aren't quite as bad as cycles in normal
DOM trees, but they can easily cause crashes, e.g. in cloneNode and
innerHTML.
Shadow DOM has an analagous issue, and this patch tackles that problem
at the same time by creating a new method, Node::containsIncludingHostElements.
In order to disallow cycles, the HTMLTemplateElement.content
DocumentFragment needs a pointer to its host. The approach here
creates a new subclass with a host pointer and a new virtual method
to DocumentFragment to identify the subclass.
To avoid unnecessary virtual function calls, also changed how
Document::templateContentsOwnerDocument works to allow fast inlined
access and avoid lazy creation when not needed.
Tests: fast/dom/HTMLTemplateElement/cycles-in-shadow.html
fast/dom/HTMLTemplateElement/cycles.html
fast/dom/shadow/shadow-hierarchy-exception.html
* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/ContainerNode.cpp:
(WebCore::isInTemplateContent):
(WebCore::containsConsideringHostElements):
(WebCore::checkAcceptChild):
* dom/Document.cpp:
(WebCore::Document::ensureTemplateContentsOwnerDocument): Renamed to make clear that it lazily creates the Document. Updated all existing callers to call this method.
* dom/Document.h:
(Document):
(WebCore::Document::templateContentsOwnerDocument): Fast, inlined accessor for use in checkAcceptChild().
* dom/DocumentFragment.h:
(WebCore::DocumentFragment::isTemplateContent):
* dom/Node.cpp:
(WebCore::Node::containsIncludingShadowDOM): made const, simplified
(WebCore::Node::containsIncludingHostElements): Specialized version of Node::contains that knows how to jump over template content boundaries.
* dom/Node.h:
(Node):
* dom/TemplateContentDocumentFragment.h: Added.
(TemplateContentDocumentFragment): Subclass of DocumentFragment which stores its host template element.
(WebCore::TemplateContentDocumentFragment::create):
(WebCore::TemplateContentDocumentFragment::host):
(WebCore::TemplateContentDocumentFragment::TemplateContentDocumentFragment):
* editing/markup.cpp:
(WebCore::createFragmentForInnerOuterHTML):
* html/HTMLTemplateElement.cpp:
(WebCore::HTMLTemplateElement::content): Construct the new subclass.
2013-01-02 Jon Lee <jonlee@apple.com>
Revert auto-start plugins to snapshotted plugins after a period of inactivity
https://bugs.webkit.org/show_bug.cgi?id=105973
<rdar://problem/12947865>
Reviewed by Brady Eidson.
* html/HTMLPlugInElement.h:
(WebCore::HTMLPlugInElement::plugInOriginHash): Expose publicly for WebKit2.
Reorganize the protected members of the class.
* html/HTMLPlugInImageElement.h: Move the member to HTMLPlugInElement.
2013-01-03 Alexis Menard <alexis@webkit.org>
Querying transition-timing-function value on the computed style does not return keywords when it should.
https://bugs.webkit.org/show_bug.cgi?id=105442
Reviewed by Simon Fraser.
http://www.w3.org/TR/css3-transitions/#transition-timing-function-property
contains a set of predefined timing functions which under the hood are
implemented using cubic-bezier but it's an implementation detail that
should not be exposed. It seems to be more clear to return a CSS
keyword rather than the cubic-bezier form when querying the value of
the property on the computed style. In fact the spec even say that for
example the initial value is "ease" and not cubic-bezier(0.25, 0.1,
0.25, 1.0). We could also imagine that in the future these predefined
values could contain other values not represented by a cubic-bezier
form. This behavior also align with the "linear" keyword which return
"linear" rather than cubic-bezier(0.0, 0.0, 1.0, 1.0).
Test: transitions/transitions-parsing.html has been updated to cover
the new behavior as well as making sure that an explicitly set value of
cubic-bezier(0.25, 0.1, 0.25, 1.0) does not return "ease" but the
cubic-bezier() form.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::createAnimationValue):
(WebCore):
(WebCore::getTimingFunctionValue):
* css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapAnimationTimingFunction):
* platform/animation/TimingFunction.h:
(WebCore::CubicBezierTimingFunction::create):
(CubicBezierTimingFunction):
(WebCore::CubicBezierTimingFunction::operator==):
(WebCore::CubicBezierTimingFunction::timingFunctionPreset): Store the
preset value of the timing function if it is one when creating it
so we can use it later from the computed style.
(WebCore::CubicBezierTimingFunction::CubicBezierTimingFunction):
2013-01-03 Tony Chang <tony@chromium.org>
Generate internal.settings from Settings.in
https://bugs.webkit.org/show_bug.cgi?id=104740
Reviewed by Adam Barth.
If the setting is declared in Settings.in and is a basic type, generate a
setter function at internals.settings.
InternalSettingsGenerated.idl is created by make_settings.pl. InternalSettings.idl
inherits from InternalSettingsGenerated.idl so we can override generated functions if
needed or add additional custom setters.
This patch removes 2 password echo methods from InternalSettings.idl since they are
auto generated. There are other methods we could remove, but I'll do that in a followup.
No new tests, existing tests should pass. Specifically, editing/input/password* tests should pass.
* CMakeLists.txt: Add generated cpp file to the testing lib.
* DerivedSources.make: Add generated idl file and specify all the outputs of make_settings.pl
* DerivedSources.pri: Generate idl file before generating bindings and include generated idl
for bindings generation.
* GNUmakefile.am: Specify all the generated files of make_settings.pl. Add generated idl to
list of files to be processed and resulting output to be compiled.
* UseJSC.cmake: Add generated idl file to list of idl files to process.
* UseV8.cmake: Same as UseJSC.cmake.
* WebCore.gyp/WebCore.gyp: Run make_settings.pl earlier so we can run the output through the
bindings generator.
* WebCore.gypi: Add new files.
* WebCore.vcproj/WebCoreTestSupport.vcproj: Add new files.
* WebCore.xcodeproj/project.pbxproj: Add new files.
* bindings/scripts/CodeGenerator.pm:
(IDLFileForInterface): Add current directory to the include path so DerivedSources.make can
find the generated idl file.
* page/make_settings.pl:
(generateCode): Generate InternalSettingsGenerated.{idl,h,cpp}.
(generateSettingsMacrosHeader): Rename since we're generating 2 headers now.
(setterFunctionName): Helper function for naming a setter.
(printGetterAndSetter): Use setterFunctionName.
(enumerateParsedItems): Helper function that visits each parsed item.
(generateInternalSettingsIdlFile): Generate idl file.
(generateInternalSettingsHeaderFile): Generate header file.
(generateInternalSettingsCppFile): Generate C++ file.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Remove password echo members.
(WebCore::InternalSettings::Backup::restoreTo): Remove password echo members.
(InternalSettingsWrapper): We can't use RefCountedSupplemental because we're we're already
RefCounted. Create a wrapper class to wrap the RefCounted InternalSettings for Supplement<>::provideTo,
which uses an OwnPtr.
(WebCore::InternalSettingsWrapper::InternalSettingsWrapper): Wraps an InternalSettings that the Page can own.
(WebCore::InternalSettingsWrapper::~InternalSettingsWrapper): Clear's m_page when the Page goes away.
(WebCore::InternalSettingsWrapper::internalSettings): Unwrap InternalSettings.
(WebCore::InternalSettings::from): Update to use InternalSettingsWrapper.
(WebCore::InternalSettings::InternalSettings): Call base class constructor.
(WebCore::InternalSettings::resetToConsistentState): Renamed from reset() and pass through to base class.
Also remove unnecessary pageScaleFactor reset (done in Internals::resetToConsistentState).
* testing/InternalSettings.h:
(Backup): Remove password echo members.
(WebCore::InternalSettings::create): Create an instance instead of using new.
(WebCore::InternalSettings::hostDestroyed): Clear the page. This is similar to the code that
RefCountedSupplemental has.
* testing/InternalSettings.idl: Extends InternalSettingsGenerated.
* testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::resetInternalsObject): Rename to resetToConsistentState to be like other code.
* testing/v8/WebCoreTestSupport.cpp:
(WebCoreTestSupport::resetInternalsObject): Rename to resetToConsistentState to be like other code.
Remove an unused header.
2013-01-03 Rik Cabanier <cabanier@adobe.com>
Canvas blending tests fail on Mac WK2
https://bugs.webkit.org/show_bug.cgi?id=105943
Reviewed by Simon Fraser.
Tests that now pass:
LayoutTests/fast/canvas/canvas-blend-solid.html
LayoutTests/fast/canvas/canvas-blend-image.html
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
* testing/InternalSettings.h:
(Backup):
2013-01-03 Arko Saha <arko@motorola.com>
Microdata: Fix build failure after r137003
https://bugs.webkit.org/show_bug.cgi?id=106023
Reviewed by Ryosuke Niwa.
Set HTMLCollection::namedPropertyGetter as named property getter for
HTMLPropertiesCollection in GenerateImplementationNamedPropertyGetter.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateImplementationNamedPropertyGetter):
* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
(WebCore::V8HTMLCollection::namedPropertyGetter):
2013-01-03 Adam Klein <adamk@chromium.org>
Clear failed image loads when an <img> is adopted into a different document
https://bugs.webkit.org/show_bug.cgi?id=104409
Reviewed by Nate Chapin.
This avoids an assertion failure setImageWithoutConsideringPendingLoadEvent().
Test: loader/image-loader-adoptNode-assert.html
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement): Use new helper.
(WebCore::ImageLoader::updateFromElementIgnoringPreviousError): ditto
(WebCore::ImageLoader::elementDidMoveToNewDocument): ditto
(WebCore::ImageLoader::clearFailedLoadURL): Added a helper method to self-document the code.
(WebCore):
* loader/ImageLoader.h:
(ImageLoader):
2013-01-03 Vincent Scheib <scheib@chromium.org>
Sandbox-blocked pointer lock should log to the console.
https://bugs.webkit.org/show_bug.cgi?id=105794
Reviewed by Adrienne Walker.
When pointer lock is requested and is denied due to sandbox restrictions
a helpful message to web developers is sent to the developer console.
Existing test expectations updated.
* page/PointerLockController.cpp:
(WebCore::PointerLockController::requestPointerLock):
2013-01-03 Tom Sepez <tsepez@chromium.org>
PingLoader.h missing virtual and OVERRIDE keywords on its inherited methods.
https://bugs.webkit.org/show_bug.cgi?id=105975
Reviewed by Nate Chapin.
Change adds compile-time checks only, so no new tests.
* loader/PingLoader.h:
(PingLoader):
(WebCore::PingLoader::timeout):
2013-01-02 Levi Weintraub <leviw@chromium.org>
Fix incorrect assumption about in-flow descendants of inlines in touch event rect tracking
https://bugs.webkit.org/show_bug.cgi?id=105970
Reviewed by Simon Fraser.
Correcting the touch event target rect accumulation code to no longer incorrectly assume that
non-block renderers held only normal-flow children. The updated code will always walk the
complete renderer sub-tree, but only do the work of calculating the absolute rect when the
child won't necessarily fall inside its parent (floating, positioned, or transformed).
Tests: platform/chromium/fast/events/touch/compositor-touch-hit-rects.html updated to catch bug.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::accumulateRendererTouchEventTargetRects): Walk all renderer sub-trees. Also keeping
track of the last added parent container rect to avoid adding redundant rectangles.
(WebCore::accumulateDocumentEventTargetRects): Avoiding adding empty rects.
2013-01-03 Joshua Bell <jsbell@chromium.org>
IndexedDB: Simplify IDBTransactionBackendImpl::scheduleTask usage
https://bugs.webkit.org/show_bug.cgi?id=103536
Reviewed by Tony Chang.
Move responsibility for firing abort errors from requests that arrive on the
back-end after an asynchronous transaction abort out of WebCore, since the
front-end takes care of this as far as script is concerned.
No new tests - no behavior changes.
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::continueFunction):
(WebCore::IDBCursorBackendImpl::advance):
(WebCore::IDBCursorBackendImpl::prefetchContinue):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::openCursor):
(WebCore::IDBIndexBackendImpl::openKeyCursor):
(WebCore::IDBIndexBackendImpl::count):
(WebCore::IDBIndexBackendImpl::get):
(WebCore::IDBIndexBackendImpl::getKey):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::get):
(WebCore::IDBObjectStoreBackendImpl::put):
(WebCore::IDBObjectStoreBackendImpl::deleteFunction):
(WebCore::IDBObjectStoreBackendImpl::clear):
(WebCore::IDBObjectStoreBackendImpl::openCursor):
(WebCore::IDBObjectStoreBackendImpl::count):
2013-01-03 Tiancheng Jiang <tijiang@rim.com>
Update BB10 media render theme.
https://bugs.webkit.org/show_bug.cgi?id=105728
Reviewed by Yong Li.
Internally Reviewed by John Griggs.
Update GL friendly render method for audio volume.
Change the background color for embedded media player to semi-transparent.
Change remaining time font color to grey to match full screen video.
Change media slider thumb color to blue when pressed.
* css/mediaControlsBlackBerry.css:
(audio):
(audio::-webkit-media-controls-embedded-panel, video::-webkit-media-controls-embedded-panel):
(video::-webkit-media-controls-time-display-container, audio::-webkit-media-controls-time-display-container):
(video::-webkit-media-controls-timeline-container, audio::-webkit-media-controls-timeline-container):
(audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
(video::-webkit-media-controls-time-remaining-display, audio::-webkit-media-controls-time-remaining-display):
(audio::-webkit-media-controls-volume-slider-container):
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
(WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
2013-01-03 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r138640.
http://trac.webkit.org/changeset/138640
https://bugs.webkit.org/show_bug.cgi?id=106019
Causing crashes in multiply() (Requested by danakj on
#webkit).
* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore):
(WebCore::TransformationMatrix::multiply):
* platform/graphics/transforms/TransformationMatrix.h:
(TransformationMatrix):
2013-01-03 Mike West <mkwst@chromium.org>
The 'body' of seamless IFrames should default to 'margin: 0'
https://bugs.webkit.org/show_bug.cgi?id=90834
Reviewed by Antti Koivisto.
Documents displayed in seamless iframes should override the 'body'
element's normal 8px default margins with 0px, in order to ensure that
contents are displayed flush with the boundries of the seamless box.[1]
This patch does so by adding a new pseudoclass to allow the user agent
stylesheet to specify a different margin for seamless documents.
[1]: http://lists.w3.org/Archives/Public/public-whatwg-archive/2012Jul/0039.html
Test: fast/frames/seamless/seamless-body-margin.html
* css/CSSSelector.cpp:
(WebCore::CSSSelector::pseudoId):
(WebCore::nameToPseudoTypeMap):
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOneSelector):
* css/html.css:
(body:-webkit-seamless-document):
* rendering/style/RenderStyleConstants.h:
Define a new pseudoclass: '-webkit-seamless-document', which
matches for any element in a document that's rendered in a
seamless IFrame.
2013-01-03 Mike West <mkwst@chromium.org>
seamless iframes don't inherit styles when srcdoc is used
https://bugs.webkit.org/show_bug.cgi?id=103539
Reviewed by Antti Koivisto.
Seamless iframes populated via a 'srcdoc' attribute should always
inherit styles from their parent documents. At the moment, this is
only the case when they contain a stylesheet or some other markup
that forces a style recalculation on the document. Simple 'srcdoc'
attributes (e.g. "srcdoc='<p>This is a comment.</p>'") bail out of
recalculating style early, resulting in unstyled appearance.
This patch instructs WebCore to treat seamless documents as having an
updated StyleResolver regardless of what actions the parser takes,
which in turn ensures that the document's style is recalculated
correctly.
Test: fast/frames/seamless/seamless-srcdoc.html
* dom/Document.cpp:
(WebCore::Document::implicitOpen):
If it's a seamless document, notify it that its StyleResolver isn't
what it might have expected.
2013-01-03 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Implement SimpleFontData::platformBoundsForGlyph
https://bugs.webkit.org/show_bug.cgi?id=104127
Reviewed by Jocelyn Turcotte.
Implements platformBoundsForGlyph which is necessary for working MathML and Ruby.
* platform/graphics/qt/SimpleFontDataQt.cpp:
(WebCore::SimpleFontData::platformBoundsForGlyph):
2013-01-02 Steve Block <steveblock@chromium.org>
Remove superfluous 'IntPoint toPoint(const IntSize&)'
https://bugs.webkit.org/show_bug.cgi?id=105993
Reviewed by Eric Seidel.
Refactoring only, no change in behavior.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::elementAccessibilityHitTest):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleDrag):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
* platform/graphics/IntPoint.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollToOffset):
(WebCore::RenderLayer::offsetFromResizeCorner):
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
2013-01-02 Huang Dongsung <luxtella@company100.net>
[TexMap] Remove m_size in TextureMapperLayer.
https://bugs.webkit.org/show_bug.cgi?id=105781
Reviewed by Noam Rosenthal.
m_size is duplicated by State::size, so this patch removes it.
No new tests. Refactoring only.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computeTransformsRecursive):
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::isVisible):
(WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
* platform/graphics/texmap/TextureMapperLayer.h:
(WebCore::TextureMapperLayer::layerRect):
(TextureMapperLayer):
2013-01-02 Kenneth Russell <kbr@google.com>
[chromium] Creation of dedicated workers (isolates) leaks reference to HTMLDocument
https://bugs.webkit.org/show_bug.cgi?id=105367
Reviewed by Dmitry Titov.
Eliminated a Chromium-specific object wrapping WorkerMessagingProxy in order to fix a
lifetime management bug, which leaked every Document which started a dedicated worker.
Test: fast/workers/worker-document-leak.html
* workers/WorkerLoaderProxy.h:
(WorkerLoaderProxy):
Added Chromium-specific casting method to bridge two now-distinct class hierarchies.
* workers/WorkerMessagingProxy.h:
(WorkerMessagingProxy):
Made destructor protected instead of private to allow subclassing.
2013-01-02 Elliott Sprehn <esprehn@chromium.org>
Make ClassList::reset's purpose obvious and don't keep quirks string when not needed
https://bugs.webkit.org/show_bug.cgi?id=105963
Reviewed by Ojan Vafai.
ClassList::reset only exists to handle updating the special SpaceSplitString
for quirks mode documents. This adds a new method that makes this obvious and
instead of updating the string immediately clear the value and lazily
update it. We also clear the value whenever we're inserted into the
document so that when moving from a quirks mode document to a non-quirks
mode document we don't keep the SpaceSplitString around if it's not needed.
No new tests, I'm not sure how to write a test that we don't keep the
SpaceSplitString when moving between quirks and non-quirks mode documents.
* dom/Element.cpp:
(WebCore::Element::classAttributeChanged):
(WebCore::Element::insertedInto):
* dom/Element.h:
(Element):
* dom/ElementRareData.h:
(WebCore::ElementRareData::clearClassListValueForQuirksMode):
* html/ClassList.cpp:
* html/ClassList.h:
(WebCore::ClassList::clearValueForQuirksMode):
2013-01-02 Adam Barth <abarth@webkit.org>
[V8] V8DOMWrapper.cpp has many more includes than necessary
https://bugs.webkit.org/show_bug.cgi?id=105968
Reviewed by Kentaro Hara.
Now that this file isn't in charge of doing everything under the sun,
it can have a more focused set of include directives.
* bindings/v8/V8DOMWrapper.cpp:
2013-01-02 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL][CMAKE] Remove duplicated conditionals
https://bugs.webkit.org/show_bug.cgi?id=105905
Reviewed by Laszlo Gombos.
Remove conditionals from CMake build system, where the files being built are already wrapped with
the conditionals. It just messes cmake file up.
* PlatformEfl.cmake:
2013-01-02 Alexey Proskuryakov <ap@apple.com>
Release build fix.
* platform/network/cf/FormDataStreamCFNet.cpp: (WebCore::formFinalize):
Use ASSERT_UNUSED for an otherwise unused variable.
2013-01-02 Tony Chang <tony@chromium.org>
Unreviewed, rolling out r138661.
http://trac.webkit.org/changeset/138661
https://bugs.webkit.org/show_bug.cgi?id=104740
Compile problems on EFL
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.am:
* UseJSC.cmake:
* UseV8.cmake:
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* WebCore.vcproj/WebCoreTestSupport.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/CodeGenerator.pm:
(IDLFileForInterface):
* page/make_settings.pl:
(generateCode):
(generateHeader):
(printGetterAndSetter):
(printInitializer):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::from):
(WebCore::InternalSettings::InternalSettings):
(WebCore::InternalSettings::reset):
(WebCore::InternalSettings::setPasswordEchoEnabled):
(WebCore):
(WebCore::InternalSettings::setPasswordEchoDurationInSeconds):
* testing/InternalSettings.h:
(Backup):
(InternalSettings):
* testing/InternalSettings.idl:
* testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::resetInternalsObject):
* testing/v8/WebCoreTestSupport.cpp:
(WebCoreTestSupport::resetInternalsObject):
2013-01-02 Adam Barth <abarth@webkit.org>
[V8] There are some extra blank lines after removing INC_STATS
https://bugs.webkit.org/show_bug.cgi?id=105964
Reviewed by Ojan Vafai.
This patch is a followup to http://trac.webkit.org/changeset/138665
that removes some extra blank lines that sed wasn't smart enough to
delete for us.
* bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
(WebCore::V8CSSStyleDeclaration::namedPropertyQuery):
* bindings/v8/custom/V8DOMFormDataCustom.cpp:
(WebCore::V8DOMFormData::appendCallback):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::addEventListenerCallback):
(WebCore::V8DOMWindow::removeEventListenerCallback):
(WebCore::V8DOMWindow::postMessageCallback):
* bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
(WebCore::V8DedicatedWorkerContext::postMessageCallback):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::evaluateCallback):
* bindings/v8/custom/V8GeolocationCustom.cpp:
(WebCore::V8Geolocation::getCurrentPositionCallback):
(WebCore::V8Geolocation::watchPositionCallback):
* bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
(WebCore::V8HTMLAllCollection::namedPropertyGetter):
* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
(WebCore::V8HTMLCollection::namedPropertyGetter):
* bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
(WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::v8HTMLImageElementConstructorCallback):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
* bindings/v8/custom/V8MessagePortCustom.cpp:
(WebCore::V8MessagePort::postMessageCallback):
* bindings/v8/custom/V8NamedNodeMapCustom.cpp:
(WebCore::V8NamedNodeMap::namedPropertyGetter):
* bindings/v8/custom/V8NotificationCustom.cpp:
(WebCore::V8Notification::requestPermissionCallback):
* bindings/v8/custom/V8PopStateEventCustom.cpp:
(WebCore::V8PopStateEvent::stateAccessorGetter):
* bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
(WebCore::V8SQLResultSetRowList::itemCallback):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::V8SQLTransaction::executeSqlCallback):
* bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
(WebCore::V8SQLTransactionSync::executeSqlCallback):
* bindings/v8/custom/V8StorageCustom.cpp:
(WebCore::V8Storage::namedPropertyQuery):
* bindings/v8/custom/V8StyleSheetListCustom.cpp:
(WebCore::V8StyleSheetList::namedPropertyGetter):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
(WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallback):
(WebCore::V8WebGLRenderingContext::getParameterCallback):
(WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
(WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
(WebCore::V8WebGLRenderingContext::getUniformCallback):
* bindings/v8/custom/V8WorkerCustom.cpp:
(WebCore::V8Worker::postMessageCallback):
2013-01-02 Alexey Proskuryakov <ap@apple.com>
[WK2 NetworkProcess] Uploading fails if a client modified the request
https://bugs.webkit.org/show_bug.cgi?id=105965
Reviewed by Brady Eidson.
Associating streams with additional information via a side HashMap does not work,
because the stream we can see is an internal one, with address and other information
not matching a stream that we created.
It's surprising that this design issue was not causing major trouble without NetworkProcess.
* platform/network/cf/FormDataStreamCFNet.cpp:
(WebCore): Renamed FormContext to FormCreationContext, because this type only used
for creation. Later, we use FormStreamFields as context.
(WebCore::closeCurrentStream): Moved a star.
(WebCore::formCreate): We no longer have a side map to keep updated.
(WebCore::formFinalize): Ditto.
(WebCore::formCopyProperty): Added an accessor to get FormData pointer from a stream.
(WebCore::setHTTPBody): Ditto.
(WebCore::httpBodyFromStream): Use the new property to get FormData pointer.
2013-01-02 Elliott Sprehn <esprehn@chromium.org>
Clean up dispatchEvent overrides and overloads
https://bugs.webkit.org/show_bug.cgi?id=105959
Reviewed by Adam Barth.
Add OVERRIDE to all dispatchEvent overrides and use "using" instead of
reimplementing EventTarget::dispatchEvent in subclasses where having the
virtual override of dispatchEvent hides the overloads in
the superclass.
No new tests, just refactoring.
* Modules/indexeddb/IDBDatabase.h:
(IDBDatabase):
* Modules/indexeddb/IDBOpenDBRequest.h:
(IDBOpenDBRequest):
* Modules/indexeddb/IDBRequest.h:
(IDBRequest):
* Modules/indexeddb/IDBTransaction.h:
(IDBTransaction):
* dom/EventDispatchMediator.h:
(FocusEventDispatchMediator):
(BlurEventDispatchMediator):
* dom/GestureEvent.h:
(GestureEventDispatchMediator):
* dom/KeyboardEvent.h:
(KeyboardEventDispatchMediator):
* dom/MouseEvent.h:
* dom/Node.h:
(Node):
* dom/UIEvent.h:
(FocusInEventDispatchMediator):
(FocusOutEventDispatchMediator):
* dom/WheelEvent.h:
(WheelEventDispatchMediator):
* html/HTMLMediaElement.h:
* html/track/TextTrackCue.cpp:
* html/track/TextTrackCue.h:
(TextTrackCue):
* page/DOMWindow.h:
(DOMWindow):
* svg/SVGElementInstance.h:
(SVGElementInstance):
2013-01-02 David Grogan <dgrogan@chromium.org>
IndexedDB: Surface a few more leveldb errors.
https://bugs.webkit.org/show_bug.cgi?id=105670
Reviewed by Tony Chang.
Two calls to old LevelDBTransaction::get slipped through the cracks.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IndexKeyCursorImpl::loadCurrentRow):
(WebCore::IndexCursorImpl::loadCurrentRow):
Make these two functions use safeGet instead of get.
* platform/leveldb/LevelDBTransaction.cpp:
* platform/leveldb/LevelDBTransaction.h:
Remove get now that it is unused.
2013-01-02 Bem Jones-Bey <bjonesbe@adobe.com>
When a block's height is determined by min-height/max-height, children with percentage heights are sized incorrectly
https://bugs.webkit.org/show_bug.cgi?id=26559
Reviewed by Tony Chang.
Percentage logical height computation now takes into account the min and max height of the container.
Test: fast/block/min-max-height-percent-height-child.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::constrainContentBoxLogicalHeightByMinMax): Added. Like constrainLogicalHeightByMinMax,
but constrains the content box instead of the border box.
(WebCore):
(WebCore::RenderBox::computeContentLogicalHeight): Make const so it can be called from the const method
constrainContentBoxLogicalHeightByMinMax.
(WebCore::RenderBox::computePercentageLogicalHeight): Use constrainContentBoxLogicalHeightByMinMax to properly
respect min and max height on the containing box when computing the percentage height.
* rendering/RenderBox.h:
(RenderBox):
2013-01-02 Tony Chang <tony@chromium.org>
Unreviewed, force InternalSettings.cpp to rebuild to try and fix the Apple Win build.
* testing/InternalSettings.cpp:
2013-01-02 Alec Flett <alecflett@chromium.org>
IndexedDB: Use non-const buffers in put() to avoid copies
https://bugs.webkit.org/show_bug.cgi?id=105572
Reviewed by Adam Barth.
Change the new put() method to allow the implementation to consume
or adopt the vector, to avoid copying.
No new tests as this is an interface change that will be implemented later.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::put):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
2013-01-02 Adam Barth <abarth@webkit.org>
[V8] Remove INC_STATS because it is unused
https://bugs.webkit.org/show_bug.cgi?id=105957
Reviewed by Ojan Vafai.
We haven't been able to compile with INC_STATS turned on in a long
time. This patch just removes this ancient cruft. I generated this
patch using
find . -type f | xargs sed -i '/INC_STATS/d'
and then fixing up V8BindingMacros.h.
2013-01-02 Tony Chang <tony@chromium.org>
Generate internal.settings from Settings.in
https://bugs.webkit.org/show_bug.cgi?id=104740
Reviewed by Adam Barth.
If the setting is declared in Settings.in and is a basic type, generate a
setter function at internals.settings.
InternalSettingsGenerated.idl is created by make_settings.pl. InternalSettings.idl
inherits from InternalSettingsGenerated.idl so we can override generated functions if
needed or add additional custom setters.
This patch removes 2 password echo methods from InternalSettings.idl since they are
auto generated. There are other methods we could remove, but I'll do that in a followup.
No new tests, existing tests should pass. Specifically, editing/input/password* tests should pass.
* CMakeLists.txt: Add generated cpp file to the testing lib.
* DerivedSources.make: Add generated idl file and specify all the outputs of make_settings.pl
* DerivedSources.pri: Generate idl file before generating bindings and include generated idl
for bindings generation.
* GNUmakefile.am: Specify all the generated files of make_settings.pl. Add generated idl to
list of files to be processed and resulting output to be compiled.
* UseJSC.cmake: Add generated idl file to list of idl files to process.
* UseV8.cmake: Same as UseJSC.cmake.
* WebCore.gyp/WebCore.gyp: Run make_settings.pl earlier so we can run the output through the
bindings generator.
* WebCore.gypi: Add new files.
* WebCore.vcproj/WebCoreTestSupport.vcproj: Add new files.
* WebCore.xcodeproj/project.pbxproj: Add new files.
* bindings/scripts/CodeGenerator.pm:
(IDLFileForInterface): Add current directory to the include path so DerivedSources.make can
find the generated idl file.
* page/make_settings.pl:
(generateCode): Generate InternalSettingsGenerated.{idl,h,cpp}.
(generateSettingsMacrosHeader): Rename since we're generating 2 headers now.
(setterFunctionName): Helper function for naming a setter.
(printGetterAndSetter): Use setterFunctionName.
(enumerateParsedItems): Helper function that visits each parsed item.
(generateInternalSettingsIdlFile): Generate idl file.
(generateInternalSettingsHeaderFile): Generate header file.
(generateInternalSettingsCppFile): Generate C++ file.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Remove password echo members.
(WebCore::InternalSettings::Backup::restoreTo): Remove password echo members.
(InternalSettingsWrapper): We can't use RefCountedSupplemental because we're we're already
RefCounted. Create a wrapper class to wrap the RefCounted InternalSettings for Supplement<>::provideTo,
which uses an OwnPtr.
(WebCore::InternalSettingsWrapper::InternalSettingsWrapper): Wraps an InternalSettings that the Page can own.
(WebCore::InternalSettingsWrapper::~InternalSettingsWrapper): Clear's m_page when the Page goes away.
(WebCore::InternalSettingsWrapper::internalSettings): Unwrap InternalSettings.
(WebCore::InternalSettings::from): Update to use InternalSettingsWrapper.
(WebCore::InternalSettings::InternalSettings): Call base class constructor.
(WebCore::InternalSettings::resetToConsistentState): Renamed from reset() and pass through to base class.
Also remove unnecessary pageScaleFactor reset (done in Internals::resetToConsistentState).
* testing/InternalSettings.h:
(Backup): Remove password echo members.
(WebCore::InternalSettings::create): Create an instance instead of using new.
(WebCore::InternalSettings::hostDestroyed): Clear the page. This is similar to the code that
RefCountedSupplemental has.
* testing/InternalSettings.idl: Extends InternalSettingsGenerated.
* testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::resetInternalsObject): Rename to resetToConsistentState to be like other code.
* testing/v8/WebCoreTestSupport.cpp:
(WebCoreTestSupport::resetInternalsObject): Rename to resetToConsistentState to be like other code.
Remove an unused header.
2013-01-02 Adam Barth <abarth@webkit.org>
HTML preload scanner doesn't need to remember whether we're scanning the body
https://bugs.webkit.org/show_bug.cgi?id=105945
Reviewed by Eric Seidel.
As far as I can tell, no one uses this state.
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::CSSPreloadScanner):
(WebCore::CSSPreloadScanner::scan):
(WebCore::CSSPreloadScanner::emitRule):
* html/parser/CSSPreloadScanner.h:
(CSSPreloadScanner):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::PreloadTask::preload):
(WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
(WebCore::HTMLPreloadScanner::processToken):
* html/parser/HTMLPreloadScanner.h:
(HTMLPreloadScanner):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::preload):
* loader/cache/CachedResourceLoader.h:
(CachedResourceLoader):
2013-01-02 Abhishek Arya <inferno@chromium.org>
Crash in WebCore::Element::cloneElementWithoutChildren.
https://bugs.webkit.org/show_bug.cgi?id=105949
Reviewed by Ryosuke Niwa.
RefPtr |ancestors| vector since its elements can be destroyed from mutation events
fired in CompositeEditCommand::appendNode.
No new tests. The testcase relies on recursive DOM mutations and does not minimize.
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::getAncestorsInsideBlock):
(WebCore::InsertParagraphSeparatorCommand::cloneHierarchyUnderNewBlock):
(WebCore::InsertParagraphSeparatorCommand::doApply):
* editing/InsertParagraphSeparatorCommand.h:
(InsertParagraphSeparatorCommand):
2013-01-02 Douglas Stockwell <dstockwell@chromium.org>
Crash in WebCore::InlineBox::deleteLine
https://bugs.webkit.org/show_bug.cgi?id=93448
Reviewed by Eric Seidel.
When we ran off the end of the line while looking for line breaks in an
inline with white-space:nowrap nested in a block with white-space:pre
it was possible for the line break to be set at or before the current
position -- this could result in duplications in the render tree or
infinite looping.
This patch changes the "fixup" logic that runs after we have finished
iterating through elements and text and have potentially found a break
point. In the case of a block setting white-space:pre we would back up
a character in some cases. Not doing so could leave whitespace that
should have been collapsed at the end of an inline.
For example in '<span style="white-space:nowrap">x_</span>_y' if a
break was inserted before 'y' the space after 'x' would still be
rendered (rather than be collapsed with the break).
To avoid this problem we will not take the opportunity to break until
we have finished collapsing whitespace.
Tests: fast/text/whitespace/inline-whitespace-wrapping-1.html
fast/text/whitespace/inline-whitespace-wrapping-2.html
fast/text/whitespace/inline-whitespace-wrapping-3.html
fast/text/whitespace/inline-whitespace-wrapping-4.html
fast/text/whitespace/nowrap-white-space-collapse.html
fast/text/whitespace/pre-block-normal-inline-crash-1.html
fast/text/whitespace/pre-block-normal-inline-crash-2.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextLineBreak): Collapse
whitespace before breaking. Avoid setting the break before the current
position.
2013-01-02 Adam Barth <abarth@webkit.org>
Remove webkitPostMessage
https://bugs.webkit.org/show_bug.cgi?id=105910
Reviewed by Kentaro Hara.
The vendor-prefixed version of postMessage was never widely used.
We've been compiling it out of the Chromium port for a while now and
haven't received any reports of compatibility problems. I've done a
number of web searches for uses of the API and personally contacted a
handful of authors I found using the API, all of whom have now moved to
the identical unprefixed API. We've publicied the prefix removal in a
blog post:
http://blog.chromium.org/2012/11/a-web-developers-guide-to-latest-chrome.html
and discussed it on webkit-dev:
http://lists.macosforge.org/pipermail/webkit-dev/2012-September/022189.html
We've done our diligence, and now we should remove the API from the
remainder of the ports.
* bindings/js/JSDOMWindowCustom.cpp:
* bindings/js/JSDedicatedWorkerContextCustom.cpp:
* bindings/js/JSMessagePortCustom.cpp:
* bindings/js/JSWorkerCustom.cpp:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::postMessageCallback):
* bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
(WebCore::V8DedicatedWorkerContext::postMessageCallback):
* bindings/v8/custom/V8MessagePortCustom.cpp:
(WebCore::V8MessagePort::postMessageCallback):
* bindings/v8/custom/V8WorkerCustom.cpp:
(WebCore::V8Worker::postMessageCallback):
* dom/MessagePort.idl:
* page/DOMWindow.idl:
* workers/DedicatedWorkerContext.idl:
* workers/Worker.idl:
2013-01-02 Benjamin Poulain <benjamin@webkit.org>
Optimize TransformationMatrix::multiply() for x86_64
https://bugs.webkit.org/show_bug.cgi?id=105719
Reviewed by Sam Weinig.
On x86_64, we have access to 16 XMM registers. This can hold 32 double values.
We can use that in two ways to optimize matrix multiplications:
-Keep the source matrix completely in registers. Write the result directly in
the source matrix's memory. This avoids the memcpy at the end of the multiplication
and various memory operations.
-Use SIMD with SSE to perform 2 operations at a time.
The parameter from the second matrix are loaded one by one in XMM registers.
Loading them with SSE then shuffling the values perform worse than loading
one by one.
This is only enabled on 64bits as x86 only has access to 8 XMM registers and
the function should be written differently.
On a i5, TransformationMatrix::multiply() perform about 3 times faster with the change.
* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::multiply):
* platform/graphics/transforms/TransformationMatrix.h:
(TransformationMatrix): Fix an incorrect comment. Unify the comment with the cpp file.
2013-01-02 Mike West <mkwst@chromium.org>
Clean up the loadXXXStyle() idiom in StyleResolver.
https://bugs.webkit.org/show_bug.cgi?id=105903
Reviewed by Darin Adler.
This patch refactors 'loadViewSourceStyle' in order to avoid the
necessity of each call site checking whether the relevant data has
been loaded. The new 'viewSourceStyle' will load the data if required,
and return a pointer which can be used directly.
No new tests, as this refactoring should exhibit no visible change in
behavior.
* css/StyleResolver.cpp:
(WebCore::viewSourceStyle):
Lazily populate the static 'defaultViewSourceStyle' with data. I
haven't removed the outer variable, as it's used directly in
StyleResolver::reportMemoryUsage.
(WebCore::StyleResolver::matchUARules):
(WebCore::StyleResolver::collectFeatures):
Use the new hotness rather than the old, lame method.
2013-01-02 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r138627.
http://trac.webkit.org/changeset/138627
https://bugs.webkit.org/show_bug.cgi?id=105935
This patch doesn't fix Windows port build failure (Requested
by rniwa on #webkit).
* WebCore.vcproj/WebCore.vcproj:
2013-01-02 Elliott Sprehn <esprehn@chromium.org>
Transitions and animations do not apply to CSS ::before and ::after pseudo-elements
https://bugs.webkit.org/show_bug.cgi?id=92591
Reviewed by Eric Seidel.
The new DOM based :before and :after pseudo elements support animations
and transitions already, but I had disabled support so we could turn them
on in a separate step. This patch just removes the checks and adds tests.
This also adds two methods to internals to allow pausing animations and
transitions on pseudo elements at predictable locations so the tests
are not flaky.
Tests: fast/css-generated-content/pseudo-animation.html
fast/css-generated-content/pseudo-transition.html
* WebCore.exp.in:
* page/animation/AnimationController.cpp:
(WebCore::AnimationController::updateAnimations):
* testing/Internals.cpp:
(WebCore::Internals::pauseAnimationAtTimeOnPseudoElement):
(WebCore::Internals::pauseTransitionAtTimeOnPseudoElement):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2013-01-02 Chris Rogers <crogers@google.com>
Implement WebIDL-style string constants in WebAudio
https://bugs.webkit.org/show_bug.cgi?id=105058
Reviewed by Kentaro Hara.
See Deprecation Notes for more detail:
https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#DeprecationNotes
PannerNode, BiquadFilterNode, OscillatorNode constants must support WebIDL-style string constants.
Legacy support in the setters for the old integer values should be supported.
This patch handles the changes for OscillatorNode.
* GNUmakefile.list.am:
* Modules/webaudio/OscillatorNode.cpp:
(WebCore::OscillatorNode::OscillatorNode):
(WebCore::OscillatorNode::type):
(WebCore):
(WebCore::OscillatorNode::setType):
* Modules/webaudio/OscillatorNode.h:
* Modules/webaudio/OscillatorNode.idl:
* Target.pri:
* UseJSC.cmake:
* UseV8.cmake:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSOscillatorNodeCustom.cpp: Copied from Source/WebCore/Modules/webaudio/OscillatorNode.idl.
(WebCore):
(WebCore::JSOscillatorNode::setType):
* bindings/v8/custom/V8OscillatorNodeCustom.cpp: Copied from Source/WebCore/Modules/webaudio/OscillatorNode.idl.
(WebCore):
(WebCore::V8OscillatorNode::typeAccessorSetter):
2013-01-02 Robert Hogan <robert@webkit.org>
Regression (r132935): WebKit breaks between <nobr> tags
https://bugs.webkit.org/show_bug.cgi?id=11857
Reviewed by David Hyatt.
The fix for bug 29648 in http://trac.webkit.org/changeset/132935 was too broad - it caused us
to find linebreaks in autowrap containers between non-wrapping elements where there was no
whitespace to allow the break. This reverts the code change in r132935 and ensures we attempt
to move below floats when inside an autowrap container but leaves the treatment of non-wrapping
elements in an autowrap container unaffected.
Test: fast/inline/break-between-nobr.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
2013-01-02 Ryosuke Niwa <rniwa@webkit.org>
Another Windows port build fix attempt. Don't try to build WTF files in WebCore.
Rubber-stamped by Sam Weinig.
* WebCore.vcproj/WebCore.vcproj:
2013-01-02 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL] [WebGL] Minor cleanup in PlatformContext.
https://bugs.webkit.org/show_bug.cgi?id=105872
Reviewed by Kenneth Rohde Christiansen.
The logic to check for supported extensions is scattered in different classes i.e PlatformContext, eglcontext etc.
This patch cleans up any duplicate code and adds new api in GLPlatformContext to query for supported GL, EGL and GLX extensions.
* PlatformEfl.cmake:
* platform/graphics/opengl/GLPlatformContext.cpp:
(WebCore):
(WebCore::GLPlatformContext::createContext):
(WebCore::GLPlatformContext::supportsGLExtension):
(WebCore::GLPlatformContext::supportsEGLExtension):
(WebCore::GLPlatformContext::supportsGLXExtension):
(WebCore::GLPlatformContext::makeCurrent):
(WebCore::GLPlatformContext::initializeResetStatusExtension):
* platform/graphics/opengl/GLPlatformContext.h:
* platform/graphics/surfaces/egl/EGLContext.cpp:
(WebCore::isRobustnessExtSupported):
(WebCore::EGLOffScreenContext::initialize):
* platform/graphics/surfaces/glx/GLXContext.cpp:
(WebCore::initializeARBExtensions):
(WebCore::GLXOffScreenContext::initialize):
2013-01-02 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r138601.
http://trac.webkit.org/changeset/138601
https://bugs.webkit.org/show_bug.cgi?id=105917
Also not an optimal solution, needs more discussion.
(Requested by mkwst_ on #webkit).
* dom/Document.cpp:
(WebCore::Document::finishedParsing):
2013-01-02 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r138611.
http://trac.webkit.org/changeset/138611
https://bugs.webkit.org/show_bug.cgi?id=105916
Not an optimal solution, needs more discussion. (Requested by
mkwst_ on #webkit).
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.am:
* WebCore.gyp/WebCore.gyp:
* WebCore.vcproj/WebCore.vcproj:
* css/StyleResolver.cpp:
(WebCore):
(WebCore::StyleResolver::matchUARules):
(WebCore::StyleResolver::collectFeatures):
(WebCore::StyleResolver::reportMemoryUsage):
* css/seamless.css: Removed.
2013-01-02 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
[AC] Memory leak in GraphicsSurfacePrivate::findFBConfigWithAlpha()
https://bugs.webkit.org/show_bug.cgi?id=105770
Reviewed by Noam Rosenthal.
Free the memory returned by glXGetVisualFromFBConfig() using
XFree to avoid a memory leak.
No new tests. No change in behavior.
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::findFBConfigWithAlpha):
2013-01-02 Mike West <mkwst@chromium.org>
The 'body' of seamless IFrames should default to 'margin: 0'
https://bugs.webkit.org/show_bug.cgi?id=90834
Reviewed by Eric Seidel.
Documents displayed in seamless iframes should override the 'body'
element's normal 8px default margins with 0px, in order to ensure that
contents are displayed flush with the boundries of the seamless box.[1]
This patch does so by adding a new user agent stylesheet for seamless
documents, and teaching the StyleResolver how and when to apply it.
[1]: http://lists.w3.org/Archives/Public/public-whatwg-archive/2012Jul/0039.html
Test: fast/frames/seamless/seamless-body-margin.html
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.am:
* WebCore.gyp/WebCore.gyp:
* WebCore.vcproj/WebCore.vcproj:
* CMakeLists.txt:
Added a new CSS file! Let's tell everyone!
* css/StyleResolver.cpp:
(WebCore):
(WebCore::loadSeamlessStyle):
(WebCore::StyleResolver::matchUARules):
(WebCore::StyleResolver::collectFeatures):
(WebCore::StyleResolver::reportMemoryUsage):
Load the new stylesheet, and apply it to the document in
matchUARules iff the document should be displayed seamlessly.
* css/seamless.css: Added.
(body):
Stylesheet containing defaults for seamless documents.
2013-01-01 Dan Bernstein <mitz@apple.com>
<rdar://problem/12942239> Update copyright strings
Reviewed by Sam Weinig.
* Info.plist:
2013-01-01 KwangYong Choi <ky0.choi@samsung.com>
[EFL] Enable MHTML feature
https://bugs.webkit.org/show_bug.cgi?id=105815
Reviewed by Laszlo Gombos.
Add application/x-mimearchive type to archive mime types.
Add mht and mhtml to extension map.
No new tests. Existing layout tests pass.
* loader/archive/ArchiveFactory.cpp:
(WebCore::archiveMIMETypes):
* platform/efl/MIMETypeRegistryEfl.cpp:
(WebCore):
2013-01-01 Mike West <mkwst@chromium.org>
seamless iframes don't inherit styles when srcdoc is used
https://bugs.webkit.org/show_bug.cgi?id=103539
Reviewed by Eric Seidel.
Seamless iframes populated via a 'srcdoc' attribute should always
inherit styles from their parent documents. At the moment, this is
only the case when they contain a stylesheet or some other markup
that forces a style recalculation on the document. Simple 'srcdoc'
attributes (e.g. "srcdoc='<p>This is a comment.</p>'") bail out of
recalculating style early, resulting in unstyled appearance.
This patch instructs WebCore to treat seamless documents as having an
updated StyleResolver regardless of what actions the parser takes,
which in turn ensures that the document's style is recalculated
correctly.
Test: fast/frames/seamless/seamless-srcdoc.html
* dom/Document.cpp:
(WebCore::Document::finishedParsing):
If it's a seamless document, notify it that its StyleResolver isn't
what it might have expected.
2012-12-31 Jeff Rogers <jrogers@rim.com>
[BlackBerry] Fullscreen Media Time Indicators Background Incorrect
https://bugs.webkit.org/show_bug.cgi?id=105888
Reviewed by George Staikos.
Internal PR 272699.
Update fullscreen media controls CSS to fix time container background
color. Also fix transparency to be 80% opaque to and the time
remaining text color to match the system player.
No new tests as there is no functionality change.
* css/mediaControlsBlackBerryFullscreen.css:
(video:-webkit-full-screen::-webkit-media-controls-panel):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-display-container):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline-container):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-current-time-display):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-remaining-display):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container, video:-webkit-full-screen::-webkit-media-controls-play-button-container):
(video:-webkit-full-screen::-webkit-media-controls-placeholder):
2012-12-31 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][WebGL] Add compile time support for GLES2.
https://bugs.webkit.org/show_bug.cgi?id=105816
Reviewed by Kenneth Rohde Christiansen.
This patch adds build support for GLES2.
GLES2 support can be enabled during compile time by passing -DENABLE_GLES2=ON as
cmake config parameter. GLES2 options is not enabled by default. This patch doesn't
address all the build issues related to GLES2 but only adds the needed support in
PlatformEfl.cmake.
* PlatformEfl.cmake:
2012-12-31 Andy Chen <andchen@rim.com>
[BlackBerry] The HTML5 video fullscreen time indicator on the right cuts clipped when the video is longer than 1 hour
https://bugs.webkit.org/show_bug.cgi?id=105887
Reviewed by George Staikos.
The width of the time part was fixed. Remove it.
No new test is required because no functionality change.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
2012-12-30 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL] [WebGL] Rename EGLConfigHelper as EGLConfigSelector.
https://bugs.webkit.org/show_bug.cgi?id=105876
Reviewed by Kenneth Rohde Christiansen.
This is to sync the naming conventions of our classes in both EGL and GLX implementations.
In our GLX implementation, class responsible for the same functionality is named as GLXConfigSelector.
This patch renames EGLConfigHelper as EGLConfigSelector.
* PlatformEfl.cmake:
* platform/graphics/surfaces/egl/EGLConfigSelector.cpp: Renamed from Source/WebCore/platform/graphics/surfaces/egl/EGLConfigHelper.cpp.
(WebCore):
(WebCore::SharedEGLDisplay::deref):
(WebCore::SharedEGLDisplay::sharedEGLDisplay):
(WebCore::SharedEGLDisplay::SharedEGLDisplay):
(WebCore::SharedEGLDisplay::cleanup):
(WebCore::SharedEGLDisplay::~SharedEGLDisplay):
(WebCore::EGLConfigSelector::EGLConfigSelector):
(WebCore::EGLConfigSelector::~EGLConfigSelector):
(WebCore::EGLConfigSelector::display):
(WebCore::EGLConfigSelector::pBufferContextConfig):
(WebCore::EGLConfigSelector::surfaceContextConfig):
(WebCore::EGLConfigSelector::nativeVisualId):
(WebCore::EGLConfigSelector::reset):
(WebCore::EGLConfigSelector::createConfig):
* platform/graphics/surfaces/egl/EGLConfigSelector.h: Renamed from Source/WebCore/platform/graphics/surfaces/egl/EGLConfigHelper.h.
(WebCore):
(SharedEGLDisplay):
(WebCore::SharedEGLDisplay::create):
(EGLConfigSelector):
* platform/graphics/surfaces/egl/EGLSurface.cpp:
(WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
(WebCore::EGLWindowTransportSurface::configuration):
(WebCore::EGLWindowTransportSurface::destroy):
* platform/graphics/surfaces/egl/EGLSurface.h:
(EGLWindowTransportSurface):
2012-12-30 Philippe Normand <pnormand@igalia.com>
[GStreamer] webaudio/decode-audio-data-basic.html fails
https://bugs.webkit.org/show_bug.cgi?id=105298
Reviewed by Martin Robinson.
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::AudioFileReader::createBus): Return a null pointer if an
error happened while processing a media file.
2012-12-30 Christophe Dumez <christophe.dumez@intel.com>
Regression(r138545): Makes WebAudio tests crash
https://bugs.webkit.org/show_bug.cgi?id=105869
Reviewed by Philippe Normand.
Stop using smart pointers and adoptGRef() for the
GstBus object and call gst_object_unref() manually.
This fixes assertions hits when calling adoptGRef()
since the GstBus object has a floating reference.
Alternatively, we could keep using smart pointers
and stop calling adoptGRef() so that
gst_object_ref_sink() is called and the floating
flag is cleared but I think it is clearer to do
it manually here.
No new tests, already covered by existing tests.
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::messageCallback):
(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
(WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::AudioFileReader::~AudioFileReader):
(WebCore::AudioFileReader::decodeAudioForBusCreation):
2012-12-29 Dimitri Glazkov <dglazkov@chromium.org>
Rename StyleResolver's member variable that holds SelectorChecker to a proper name.
https://bugs.webkit.org/show_bug.cgi?id=105864
In https://bugs.webkit.org/show_bug.cgi?id=105660#c11, Antti suggested renaming m_checker to
m_selectorChecker. I've forgotten about that, but now I remembered it.
Reviewed by Eric Seidel.
No change in functionality, covered by existing tests.
* css/StyleResolver.cpp/h: Renamed all instances of m_checker to m_selectorChecker.
2012-12-29 Dimitri Glazkov <dglazkov@chromium.org>
Move pointer to Document up from SelectorChecker to StyleResolver.
https://bugs.webkit.org/show_bug.cgi?id=105863
Now that SelectorChecker is mostly stateless, it no longer needs to keep a pointer to Document, which
makes all the code in StyleResolver that reaches for it sort of weird.
Reviewed by Eric Seidel.
No change in functionality, covered by existing tests.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::SelectorChecker): Changed to take document as argument (only used to set bit fields).
(WebCore::SelectorChecker::checkOneSelector): Changed to use element document.
(WebCore::SelectorChecker::checkScrollbarPseudoClass): Ditto.
* css/SelectorChecker.h:
(WebCore): Removed unnecessary Document forward declaration.
(SelectorChecker): Changed constructor declaration, and removed m_document member.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver): Adjusted SelectorChecker initializer accordingly.
(WebCore::StyleResolver::initElement): Changed to use own document accessor.
(WebCore::StyleResolver::initForStyleResolve): Ditto.
(WebCore::StyleResolver::matchUARules): Ditto.
(WebCore::StyleResolver::styleForPage): Ditto.
(WebCore::StyleResolver::applyProperty): Ditto.
(WebCore::StyleResolver::checkForGenericFamilyChange): Ditto.
(WebCore::StyleResolver::initializeFontStyle): Ditto.
(WebCore::StyleResolver::setFontSize): Ditto.
* css/StyleResolver.h:
(WebCore::StyleResolver::document): Changed to use own member.
(WebCore::StyleResolver::documentSettings): Ditto.
(StyleResolver): Added m_document member.
* dom/SelectorQuery.cpp:
(WebCore::SelectorQuery::matches): Changed callsite to reflect new constructor signature.
(WebCore::SelectorQuery::queryAll): Ditto.
(WebCore::SelectorQuery::queryFirst): Ditto.
* html/shadow/ContentSelectorQuery.cpp:
(WebCore::ContentSelectorChecker::ContentSelectorChecker): Ditto.
(WebCore::ContentSelectorQuery::ContentSelectorQuery): Ditto.
* html/shadow/ContentSelectorQuery.h:
(ContentSelectorChecker): Removed unnecessary argument.
2012-12-29 Otto Derek Cheung <otcheung@rim.com>
[BlackBerry] Cookies with an IP domain are not being loaded properly into memory
https://bugs.webkit.org/show_bug.cgi?id=105859
PR 271597
Reviewed by George Staikos.
The isIP flag isn't persistented in the database. We need to check it
again when we load it into memory.
* platform/blackberry/CookieManager.cpp:
(WebCore::CookieManager::getBackingStoreCookies):
2012-12-29 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][WebGL] Refactor GLXImplementation.
https://bugs.webkit.org/show_bug.cgi?id=105825
Reviewed by Kenneth Rohde Christiansen.
This patch decouples native window management and logic to find surface configuration in GLX implementation.
* platform/graphics/opengl/GLDefs.h:
* platform/graphics/surfaces/glx/GLXConfigSelector.h: Renamed from Source/WebCore/platform/graphics/surfaces/glx/GLXWindowResources.h.
(WebCore):
(GLXConfigSelector):
(WebCore::GLXConfigSelector::GLXConfigSelector):
(WebCore::GLXConfigSelector::~GLXConfigSelector):
(WebCore::GLXConfigSelector::visualInfo):
(WebCore::GLXConfigSelector::pBufferContextConfig):
(WebCore::GLXConfigSelector::surfaceContextConfig):
(WebCore::GLXConfigSelector::reset):
(WebCore::GLXConfigSelector::createConfig):
Helper class to find surface configuration.
* platform/graphics/surfaces/glx/GLXContext.h:
(GLXOffScreenContext):
* platform/graphics/surfaces/glx/GLXSurface.cpp:
(WebCore::GLXTransportSurface::GLXTransportSurface):
(WebCore::GLXTransportSurface::configuration):
(WebCore::GLXTransportSurface::setGeometry):
(WebCore::GLXTransportSurface::destroy):
(WebCore::GLXPBuffer::GLXPBuffer):
(WebCore::GLXPBuffer::initialize):
(WebCore::GLXPBuffer::configuration):
* platform/graphics/surfaces/glx/GLXSurface.h:
(GLXTransportSurface):
(GLXPBuffer):
Inheritance changed from X11OffScreenWindow to GLPlatformSurface.
* platform/graphics/surfaces/glx/X11WindowResources.cpp:
(WebCore):
(WebCore::X11OffScreenWindow::X11OffScreenWindow):
(WebCore::X11OffScreenWindow::reSizeWindow):
(WebCore::X11OffScreenWindow::createOffscreenWindow):
(WebCore::X11OffScreenWindow::destroyWindow):
(WebCore::X11OffScreenWindow::nativeSharedDisplay):
(WebCore::X11OffScreenWindow::setVisualInfo):
(WebCore::X11OffScreenWindow::isXRenderExtensionSupported):
* platform/graphics/surfaces/glx/X11WindowResources.h:
(WebCore::SharedX11Resources::create):
(SharedX11Resources):
(X11OffScreenWindow):
Removed code related to surface configiration.
2012-12-29 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Timeline] cpu bar popover shows wrong duration / cpu time.
https://bugs.webkit.org/show_bug.cgi?id=105854
Reviewed by Vsevolod Vlasov.
Problem: CPU task indexes are already incremented before written to
data structure.
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._refreshMainThreadBars):
Use for loop to get correct indexes.
2012-12-28 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: instrument not instrumented members.
https://bugs.webkit.org/show_bug.cgi?id=105830
Reviewed by Vsevolod Vlasov.
In some cases we don't want to visit some class members.
As example we decided to skip pointers to interface classes such as GraphicLayerClient.
We could use addWeakPointer for them but it can't be used for nonpointer members.
In the offline discussion we came to a conclusion that we need a new instrumentation
method ignoreMember, which will be used for all the members which we won't like to visit/instrument.
DriveBy: Also I instrumented not yet instrumented members.
* bindings/v8/DOMWrapperMap.h:
(WebCore::DOMWrapperMap::reportMemoryUsage):
* bindings/v8/ScriptWrappable.h:
(WebCore::ScriptWrappable::reportMemoryUsage):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::reportMemoryUsage):
* platform/KURLGoogle.cpp:
(WebCore::KURLGooglePrivate::reportMemoryUsage):
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::reportMemoryUsage):
* platform/audio/AudioArray.h:
(WebCore::AudioArray::reportMemoryUsage):
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::reportMemoryUsage):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::reportMemoryUsage):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::RowStruct::reportMemoryUsage):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::reportMemoryUsage):
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::reportMemoryUsage):
2012-12-29 Andrey Lushnikov <lushnikov@chromium.com>
Web Inspector: refactor DefaultTextEditor - annotate handlers and fix getters style
https://bugs.webkit.org/show_bug.cgi?id=105829
Reviewed by Pavel Feldman.
Refactor DefaultTextEditor.js: improve handler method annotations,
remove "get" prefix from method names, get rid of unnecessary
delegation (e.g. see _handleCut).
No new tests: no change in behaviour.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor):
(WebInspector.DefaultTextEditor.prototype._contextMenu):
(WebInspector.DefaultTextEditor.prototype.selection):
(WebInspector.DefaultTextEditor.prototype.lastSelection):
(WebInspector.DefaultTextEditor.prototype.wasShown):
(WebInspector.DefaultTextEditor.prototype.willHide):
(WebInspector.TextEditorChunkedPanel.prototype.createNewChunk):
(WebInspector.TextEditorMainPanel):
(WebInspector.TextEditorMainPanel.prototype.wasShown):
(WebInspector.TextEditorMainPanel.prototype.willHide):
(WebInspector.TextEditorMainPanel.prototype.populateContextMenu):
(WebInspector.TextEditorMainPanel.prototype.splitChunkOnALine):
(WebInspector.TextEditorMainPanel.prototype.expandChunks):
(WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
(WebInspector.TextEditorMainPanel.prototype.selection):
(WebInspector.TextEditorMainPanel.prototype.lastSelection):
(WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
(WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
(WebInspector.TextEditorMainPanel.prototype._handleTextInput):
(WebInspector.TextEditorMainPanel.prototype.handleKeyDown):
(WebInspector.TextEditorMainPanel.prototype._handleCut):
2012-12-28 No'am Rosenthal <noam@webkit.org>
REGRESSION: r138555 asserts on Linux EFL/Qt debug builds
https://bugs.webkit.org/show_bug.cgi?id=105848
Unreviewed test fix.
* platform/graphics/texmap/TextureMapperShaderManager.cpp:
Added parameter name to noop shader.
2012-12-28 No'am Rosenthal <noam@webkit.org>
[Texmap] Use a transform uniform instead of u_flip/u_textureSize
https://bugs.webkit.org/show_bug.cgi?id=105809
Reviewed by Martin Robinson.
In order to support tiled-patterns, we'd have to apply texture-space transformations in the
vertex shader.
This patch cleans up the current texture-space transformations, and uses
single matrix uniform instead of the current uniforms.
No new tests, refactor only.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
* platform/graphics/texmap/TextureMapperShaderManager.cpp:
(WebCore):
* platform/graphics/texmap/TextureMapperShaderManager.h:
(TextureMapperShaderProgram):
2012-12-28 No'am Rosenthal <noam@webkit.org>
[Texmap] Edge antialiasing in TextureMapper could be done with less per-pixel calls
https://bugs.webkit.org/show_bug.cgi?id=105377
Reviewed by Kenneth Rohde Christiansen.
Instead of passing 8 quad edge coefficients as uniforms and analyze the distance in the
fragment shader, we render the antialiased quad as 4 edge triangles, which originate in the
center of the quad.
The vertex shader expands the quad based on the screen transform, and applies a value to each vertex to be interpolated by the GPU.
It is very difficult to test performance gain; However, the following is apparent:
- The matrix multiplications and inversions done before in the quad inflation code were
always visible in instruments/valgrind and they are now gone.
- We now perform a single smoothstep() command per pixel instead of 8 clamp(dot()) commands.
- It should now be possible to antialias individual edges.
Covered by existing tests.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGLData::getStaticVBO):
Cache the unit-rect and edge-triangle vertex data in a VBO.
(WebCore::TextureMapperGLData::~TextureMapperGLData):
Clear the cached VBOs upon destruction.
(WebCore::TextureMapperGL::drawBorder):
(WebCore::TextureMapperGL::drawTexture):
Removed call to useProgram, since it's already called in drawTexturedQuadWithProgram.
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
(WebCore::TextureMapperGL::drawSolidColor):
Use the new signature "draw" instead of "drawQuad".
(WebCore::TextureMapperGL::drawEdgeTriangles):
(WebCore::TextureMapperGL::drawUnitRect):
(WebCore::TextureMapperGL::draw):
Removed DrawQuad, instead draw either a unit rect or edge triangles.
(WebCore::TextureMapperGL::beginClip):
Use the new setMatrix function.
* platform/graphics/texmap/TextureMapperGL.h:
Added a paint flag for antialiasing.
* platform/graphics/texmap/TextureMapperShaderManager.cpp:
(WebCore::TextureMapperShaderProgram::setMatrix):
Since we now set the matrix in multiple locations, added a convenience
function for matrix uniform.
(WebCore::getShaderSpec):
Update the vertex and fragment shader to account for the new antialiasing
mechanism.
* platform/graphics/texmap/TextureMapperShaderManager.h:
(TextureMapperShaderProgram):
2012-12-28 Mark Rowe <mrowe@apple.com>
Move logic for extracting the OS X marketing version in to WebCore
<http://webkit.org/b/105841> / <rdar://problem/10736041>
Reviewed by Dan Bernstein.
The logic for extracting the OS X markerting version is moved in to systemMarketingVersion
from WebKitSystemInterface (post-10.8) and WebKit (pre-10.8).
* WebCore.exp.in: Export systemMarketingVersion and remove the old WKSI symbol.
* WebCore.xcodeproj/project.pbxproj: Add the new files.
* platform/mac/SystemVersionMac.h: Added.
* platform/mac/SystemVersionMac.mm: Added.
(WebCore::createSystemMarketingVersion): Read the marketing version out of SystemVersion.plist
(WebCore::callGestalt):
(WebCore::createSystemMarketingVersion): Build the marketing version by piecing together the results
of calls to Gestalt.
(WebCore::systemMarketingVersion): Return the cached string.
* platform/mac/WebCoreSystemInterface.h: Remove the old WKSI symbol.
* platform/mac/WebCoreSystemInterface.mm: Ditto.
2012-12-28 Rafael Weinstein <rafaelw@chromium.org>
[Templates]: Fix assert in colgroup parse handling
https://bugs.webkit.org/show_bug.cgi?id=105837
Reviewed by Eric Seidel.
Tests added to html5lib.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTag):
2012-12-28 Philippe Normand <pnormand@igalia.com>
[GStreamer] GstMessage handler in AudioDestination
https://bugs.webkit.org/show_bug.cgi?id=105292
Reviewed by Martin Robinson.
Handle GStreamer warnings and errors coming from the playback
pipeline. For now we only display warnings on the console.
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::messageCallback):
(WebCore):
(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
(WebCore::AudioDestinationGStreamer::finishBuildingPipelineAfterWavParserPadReady):
(WebCore::AudioDestinationGStreamer::handleMessage):
* platform/audio/gstreamer/AudioDestinationGStreamer.h:
(AudioDestinationGStreamer):
2012-12-28 Martin Robinson <mrobinson@igalia.com>
[GTK][WK2] Add support for IME Composition
https://bugs.webkit.org/show_bug.cgi?id=65093
Reviewed by Carlos Garcia Campos.
No new tests. The GtkInputMethodFilter is covered by unit tests in TestWebKitAPI.
Doing functional tests for this behavior is much more complex.
* platform/gtk/GtkInputMethodFilter.cpp:
(WebCore::GtkInputMethodFilter::sendCompositionAndPreeditWithFakeKeyEvents): Now
pass along whether or not an event was faked.
* platform/gtk/GtkInputMethodFilter.h: Ditto.
2012-12-27 Emil A Eklund <eae@chromium.org>
REGRESSION (r138196): Regions with text-overflow: ellipsis; are being ellipsized unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=105600
Reviewed by Darin Adler.
Pixel-snap lineBoxEdge before comparing with the block edge as
the lineBox edge isn't guaranteed to be snapped to device pixels
on all platforms.
Test: fast/sub-pixel/ellipsis-table.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::checkLinesForTextOverflow):
2012-12-28 Brandon Jones <bajones@chromium.org>
[chromium] DrawingBuffer initialization loop breaks if completely out of memory
https://bugs.webkit.org/show_bug.cgi?id=105732
Reviewed by Kenneth Russell.
When DrawingBuffer allocation fails because s_currentResourceUsePixels is maxed out
it now forces WebGLRenderingContext creation to fail gracefully.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::create): On Chromium, check for failure to allocate a DrawingBuffer
2012-12-28 Dan Bernstein <mitz@apple.com>
Slightly clean up WebCore's Base.xcconfig
https://bugs.webkit.org/show_bug.cgi?id=105808
Reviewed by Sam Weinig.
* Configurations/Base.xcconfig: Simplify the definition of GCC_GENERATE_DEBUGGING_SYMBOLS,
which is always YES.
2012-12-28 Rafael Weinstein <rafaelw@chromium.org>
Heap-use-after-free in WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement
https://bugs.webkit.org/show_bug.cgi?id=105780
Reviewed by Eric Seidel.
This was regression was created by the HTMLTemplateElement implementation. The issue was a missed instance of
"fragment or template contents" case related to the parsing of colgroups.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processCharacterBuffer):
(WebCore::HTMLTreeBuilder::processEndOfFile):
2012-12-27 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Introduce uri as a UISourceCode unique identifier in workspace.
https://bugs.webkit.org/show_bug.cgi?id=105799
Reviewed by Pavel Feldman.
Added uri field to UISourceCode.
Debugger and LiveEdit uiSourceCodes are now created through WorkspaceProviders (not projects yet though)
which are responsible for unique uri generation.
Extracted generic content provider based WorkspaceProvider functionality and url-to-uri conversion logic to ContentProviderWorkspaceProvider class.
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.sourceFileId):
* inspector/front-end/CompilerScriptMapping.js:
* inspector/front-end/DebuggerScriptMapping.js:
(WebInspector.DebuggerScriptMapping):
* inspector/front-end/DefaultScriptMapping.js:
(WebInspector.DefaultScriptMapping):
(WebInspector.DefaultScriptMapping.prototype.addScript):
(WebInspector.DebuggerWorkspaceProvider):
(WebInspector.DebuggerWorkspaceProvider.prototype.addDebuggerFile):
* inspector/front-end/LiveEditSupport.js:
(WebInspector.LiveEditSupport):
(WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
(WebInspector.LiveEditWorkspaceProvider):
(WebInspector.LiveEditWorkspaceProvider.prototype.addLiveEditFile):
* inspector/front-end/NetworkUISourceCodeProvider.js:
(WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
* inspector/front-end/NetworkWorkspaceProvider.js:
(WebInspector.ContentProviderWorkspaceProvider):
(WebInspector.ContentProviderWorkspaceProvider.uriForURL):
(WebInspector.ContentProviderWorkspaceProvider.prototype.addFile):
(WebInspector.ContentProviderWorkspaceProvider.prototype.uniqueURI):
(WebInspector.NetworkWorkspaceProvider):
(WebInspector.NetworkWorkspaceProvider.prototype.addNetworkFile):
* inspector/front-end/SASSSourceMapping.js:
(_bindUISourceCode):
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
* inspector/front-end/TabbedEditorContainer.js:
(WebInspector.TabbedEditorContainer):
(WebInspector.TabbedEditorContainer.prototype._scrollChanged):
(WebInspector.TabbedEditorContainer.prototype._selectionChanged):
(WebInspector.TabbedEditorContainer.prototype._editorClosedByUserAction):
(WebInspector.TabbedEditorContainer.prototype._updateHistory.tabIdToURI):
(WebInspector.TabbedEditorContainer.prototype._updateHistory):
(WebInspector.TabbedEditorContainer.prototype._appendFileTab):
(WebInspector.TabbedEditorContainer.prototype.reset):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode):
(WebInspector.UISourceCode.prototype.uri):
* inspector/front-end/Workspace.js:
(WebInspector.FileDescriptor):
(WebInspector.Project.prototype._fileAdded):
(WebInspector.Project.prototype._fileRemoved):
(WebInspector.Project.prototype.uiSourceCodeForURI):
(WebInspector.Workspace):
(WebInspector.Workspace.prototype.uiSourceCodeForURI):
(WebInspector.Workspace.prototype.addTemporaryUISourceCode):
(WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
(WebInspector.Workspace.prototype.requestFileContent):
(WebInspector.Workspace.prototype.setFileContent):
(WebInspector.Workspace.prototype.searchInFileContent):
(WebInspector.Workspace.prototype.reset):
* inspector/front-end/inspector.js:
2012-12-28 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: debugger should step into event handler on event dispatch
https://bugs.webkit.org/show_bug.cgi?id=105827
Reviewed by Pavel Feldman.
Added m_pauseInNextEventListener to InspectorDOMDebuggerAgent. The flag is set
to true when "step into" is pressed and reset to false when either JS execution
pauses, the agent gets disabled or JS call stack becomes empty. If the flag is
true and the next JS stetement to be executed belongs to a JS event listener we
will stop in that listener, otherwise we have two options:
1) Control flow directly(without comming through the native bindings) reaches some JS
statement and will pause in the corresponding JS function, in which case the
flag will be reset;
2) JS call stack becomes empty and execution will continue in the native code. We
use didProcessTask to detect such cases and reset the flag to false every time
event queue finishes next task.
Test: inspector/debugger/debugger-step-into-event-listener.html
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::reportMemoryUsage):
(WebCore::InspectorController::didProcessTask):
* inspector/InspectorController.h:
(WebCore):
(InspectorController):
* inspector/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
(WebCore::InspectorDOMDebuggerAgent::stepInto):
(WebCore):
(WebCore::InspectorDOMDebuggerAgent::didPause):
(WebCore::InspectorDOMDebuggerAgent::cancelStepIntoEventListener):
(WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
(WebCore::InspectorDOMDebuggerAgent::clear):
* inspector/InspectorDOMDebuggerAgent.h:
(InspectorDOMDebuggerAgent):
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::stepInto):
(WebCore::InspectorDebuggerAgent::didPause):
* inspector/InspectorDebuggerAgent.h:
(Listener):
2012-12-28 Andrey Lushnikov <lushnikov@chromium.com>
Web Inspector: enable mutation observer in LayoutTests
https://bugs.webkit.org/show_bug.cgi?id=105826
Reviewed by Pavel Feldman.
Enable mutation observer in LayoutTests.
No new tests: no change in behaviour.
* inspector/front-end/DOMExtension.js:
2012-12-28 Philippe Normand <pnormand@igalia.com>
[GTK] Some GStreamer-related files don't need to be in libWebCoreGTK
https://bugs.webkit.org/show_bug.cgi?id=105807
Reviewed by Martin Robinson.
* GNUmakefile.list.am: Move some modules not using GTK nor Cairo
to libWebCorePlatform.
2012-12-28 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: rename distanceToWindow to distance
https://bugs.webkit.org/show_bug.cgi?id=105823
Reviewed by Pavel Feldman.
Renamed distanceToWindow to distance. Introduced a method on HeapSnapshot
that allows to check if given node should be displayed to the user as having
distance 1.
* inspector/front-end/HeapSnapshot.js:
(WebInspector.HeapSnapshotEdge.prototype.serialize):
(WebInspector.HeapSnapshotRetainerEdge.prototype.serialize):
(WebInspector.HeapSnapshotNode.prototype.distance):
(WebInspector.HeapSnapshotNode.prototype.serialize):
(WebInspector.HeapSnapshot.prototype._init):
(WebInspector.HeapSnapshot.prototype.dispose):
(WebInspector.HeapSnapshot.prototype.canHaveDistanceOne):
(WebInspector.HeapSnapshot.prototype._calculateDistances):
(WebInspector.HeapSnapshot.prototype._bfs):
(WebInspector.HeapSnapshot.prototype._buildAggregates):
* inspector/front-end/HeapSnapshotDataGrids.js:
(WebInspector.HeapSnapshotRetainmentDataGrid):
(WebInspector.HeapSnapshotRetainmentDataGrid.prototype._sortFields):
(WebInspector.HeapSnapshotConstructorsDataGrid):
(WebInspector.HeapSnapshotConstructorsDataGrid.prototype._sortFields):
* inspector/front-end/HeapSnapshotGridNodes.js:
(WebInspector.HeapSnapshotGenericObjectNode):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
(WebInspector.HeapSnapshotObjectNode):
(WebInspector.HeapSnapshotObjectNode.prototype.comparator):
(WebInspector.HeapSnapshotObjectNode.prototype._enhanceData):
(WebInspector.HeapSnapshotInstanceNode.prototype.comparator):
(WebInspector.HeapSnapshotConstructorNode):
(WebInspector.HeapSnapshotConstructorNode.prototype.comparator):
(WebInspector.HeapSnapshotConstructorNode.prototype.get data):
* inspector/front-end/JSHeapSnapshot.js:
(WebInspector.JSHeapSnapshot.prototype.canHaveDistanceOne):
2012-12-28 Andrey Lushnikov <lushnikov@chromium.com>
Web Inspector: refactor DefaultTextEditor's private methods
https://bugs.webkit.org/show_bug.cgi?id=105797
Reviewed by Pavel Feldman.
- Refactor private methods to public if they are called from external classes
- Get rid of external private variable access.
No tests: no change in behaviour.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype.freeCachedElements):
(WebInspector.DefaultTextEditor.prototype._handleTextInput):
(WebInspector.DefaultTextEditor.prototype._handleKeyDown):
(WebInspector.DefaultTextEditor.prototype._handleCut):
(WebInspector.DefaultTextEditor.prototype._contextMenu):
(WebInspector.DefaultTextEditor.prototype._handleScrollChanged):
(WebInspector.DefaultTextEditor.prototype.selection):
(WebInspector.DefaultTextEditor.prototype.lastSelection):
(WebInspector.DefaultTextEditor.prototype.setSelection):
(WebInspector.DefaultTextEditor.prototype.wasShown):
(WebInspector.DefaultTextEditor.prototype._handleFocused):
(WebInspector.DefaultTextEditor.prototype.willHide):
(WebInspector.DefaultTextEditor.prototype.highlightExpression):
(WebInspector.DefaultTextEditor.prototype.overrideViewportForTest):
(WebInspector.TextEditorChunkedPanel.prototype.buildChunks):
(WebInspector.TextEditorChunkedPanel.prototype.makeLineAChunk):
(WebInspector.TextEditorChunkedPanel.prototype.splitChunkOnALine):
(WebInspector.TextEditorChunkedPanel.prototype.createNewChunk):
(WebInspector.TextEditorChunkedPanel.prototype.scroll):
(WebInspector.TextEditorChunkedPanel.prototype._scheduleRepaintAll):
(WebInspector.TextEditorChunkedPanel.prototype.endUpdates):
(WebInspector.TextEditorChunkedPanel.prototype.chunkForLine):
(WebInspector.TextEditorChunkedPanel.prototype.findVisibleChunks):
(WebInspector.TextEditorChunkedPanel.prototype.repaintAll):
(WebInspector.TextEditorChunkedPanel.prototype.scrollTop):
(WebInspector.TextEditorChunkedPanel.prototype.clientHeight):
(WebInspector.TextEditorChunkedPanel.prototype.expandChunks):
(WebInspector.TextEditorChunkedPanel.prototype.totalHeight):
(WebInspector.TextEditorChunkedPanel.prototype.resize):
(WebInspector.TextEditorGutterPanel):
(WebInspector.TextEditorGutterPanel.prototype.freeCachedElements):
(WebInspector.TextEditorGutterPanel.prototype.createNewChunk):
(WebInspector.TextEditorGutterPanel.prototype.textChanged):
(WebInspector.TextEditorGutterChunk.prototype.get height):
(WebInspector.TextEditorMainPanel):
(WebInspector.TextEditorMainPanel.prototype.wasShown):
(WebInspector.TextEditorMainPanel.prototype.willHide):
(WebInspector.TextEditorMainPanel.prototype.highlightLine):
(WebInspector.TextEditorMainPanel.prototype.freeCachedElements):
(WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
(WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
(WebInspector.TextEditorMainPanel.prototype.splitChunkOnALine):
(WebInspector.TextEditorMainPanel.prototype.buildChunks):
(WebInspector.TextEditorMainPanel.prototype.createNewChunk):
(WebInspector.TextEditorMainPanel.prototype.expandChunks):
(WebInspector.TextEditorMainPanel.prototype._schedulePaintLines):
(WebInspector.TextEditorMainPanel.prototype._paintLines):
(WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
(WebInspector.TextEditorMainPanel.prototype.getSelection):
(WebInspector.TextEditorMainPanel.prototype.getLastSelection):
(WebInspector.TextEditorMainPanel.prototype.setLastSelection):
(WebInspector.TextEditorMainPanel.prototype.restoreSelection):
(WebInspector.TextEditorMainPanel.prototype._selectionToPosition):
(WebInspector.TextEditorMainPanel.prototype.enclosingLineRowOrSelf):
(WebInspector.TextEditorMainPanel.prototype._createLink):
(WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
(WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
(WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
(WebInspector.TextEditorMainPanel.prototype._removeDecorationsInRange):
(WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
(WebInspector.TextEditorMainPanel.prototype._updateHighlightsForRange):
(WebInspector.TextEditorMainPanel.prototype.handleSelectionChange):
(WebInspector.TextEditorMainPanel.prototype.handleTextInput):
(WebInspector.TextEditorMainPanel.prototype.handleKeyDown):
(WebInspector.TextEditorMainPanel.prototype.handleCut):
(WebInspector.TextEditorMainPanel.prototype.overrideViewportForTest):
(WebInspector.TextEditorMainChunk.prototype.get height):
2012-12-28 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][WebGL] Add GLES2 support in GraphicsContext3DEfl.
https://bugs.webkit.org/show_bug.cgi?id=105805
Reviewed by Kenneth Rohde Christiansen.
This is in preparation for adding GLES2 support.
This patch adds OPENGL_ES_2 checks in GraphicsContext3DEFl.
With this patch, GraphicsContext3DPrivate uses the FramebufferBlit extension supported by Extensions3D.
* platform/graphics/GraphicsContext3D.h:
(GraphicsContext3D):
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(GraphicsContext3DPrivate::copyToGraphicsSurface):
* platform/graphics/opengl/GLDefs.h:
2012-12-27 Dimitri Glazkov <dglazkov@chromium.org>
Fix styling/formatting errors, pointed out by Darin Adler while reviewing
https://bugs.webkit.org/show_bug.cgi?id=105752
No functional changes, thus no new tests.
* dom/VisitedLinkState.cpp:
(WebCore::VisitedLinkState::VisitedLinkState): Fixed up constructor syntax.
(WebCore::linkHashForElement): Expanded abbreviation.
2012-12-27 Mike West <mkwst@chromium.org>
Add context to the console message generated by Document::printNavigationErrorMessage.
https://bugs.webkit.org/show_bug.cgi?id=105774
Reviewed by Darin Adler.
When blocking frame navigations, we should give developers more
contextual detail about why the navigation has been blocked. This patch
adds context specifically for sandboxed frames', and gives a slightly
more detailed generic response for all other blockages.
No new tests; the changes to the error message are covered via
rebaselines to existing navigation tests.
* dom/Document.cpp:
(WebCore::printNavigationErrorMessage):
(WebCore::Document::canNavigate):
Pass in a 'reason' parameter when calling printNavigationErrorMessage
to report a blocked navigation.
2012-12-27 Dimitri Glazkov <dglazkov@chromium.org>
Move visited link-checking (and caching) code out of SelectorChecker.
https://bugs.webkit.org/show_bug.cgi?id=105752
SelectorChecker knew too much about visited links and how links are stored in DOM. This change
moves the code to more relevant locations and moves the visited links cache all the way up to Document,
introducing VisitedLinkState class to manage the state of visited links.
Relanding without a null-ptr ref.
Reviewed by Antti Koivisto.
No change in behavior, covered by existing tests.
* CMakeLists.txt: Added VisitedLinkState to build system.
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* css/SelectorChecker.cpp: Moved visited-link state code out to VisitedLinkState class.
* css/SelectorChecker.h: Ditto.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::initElement): Changed callsite to use VisitedLinkState.
* css/StyleResolver.h: Removed plumb-throughs that are now unnecessary.
* dom/DOMAllInOne.cpp: Added VisitedLinkState to build system.
* dom/Document.cpp: Added VisitedLinkState initalizer.
* dom/Document.h: Added VisitedLinkState member.
* dom/VisitedLinkState.cpp: Added.
* dom/VisitedLinkState.h: Added.
* history/CachedPage.cpp:
(WebCore::CachedPage::restore): Changed callsite to use VisitedLinkState.
* page/Page.cpp:
(WebCore::Page::allVisitedStateChanged): Ditto.
(WebCore::Page::visitedStateChanged): Ditto.
2012-12-27 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][WebGL] Implement EGL support with GLX.
https://bugs.webkit.org/show_bug.cgi?id=105602
Reviewed by Kenneth Rohde Christiansen.
This is in preparation for adding GLES2 support.
This patch adds support for EGL with GLX backend. EGL support can be enabled during compile time
by passing -DENABLE_EGL=ON as cmake config parameter. This is disabled by default.
* PlatformEfl.cmake:
* platform/graphics/opengl/GLDefs.h:
(WebCore):
* platform/graphics/opengl/GLPlatformContext.cpp:
(WebCore):
(WebCore::GLPlatformContext::createContext): Added GLX checks.
(WebCore::GLPlatformContext::createOffScreenContext): Added support for creating EGLOffscreen Context.
(WebCore::GLPlatformContext::createCurrentContextWrapper): Added support for creating EGLCurrentContextWrapper.
* platform/graphics/opengl/GLPlatformContext.h:
* platform/graphics/opengl/GLPlatformSurface.cpp:
(WebCore::GLPlatformSurface::createTransportSurface): Added support for creating EGLSurface.
* platform/graphics/surfaces/egl/EGLContext.cpp: Added.
(WebCore):
(WebCore::isRobustnessExtSupported):
(WebCore::EGLCurrentContextWrapper::EGLCurrentContextWrapper):
(WebCore::EGLCurrentContextWrapper::handle):
(WebCore::EGLOffScreenContext::EGLOffScreenContext):
(WebCore::EGLOffScreenContext::initialize):
(WebCore::EGLOffScreenContext::~EGLOffScreenContext):
(WebCore::EGLOffScreenContext::isCurrentContext):
(WebCore::EGLOffScreenContext::platformMakeCurrent):
(WebCore::EGLOffScreenContext::platformReleaseCurrent):
(WebCore::EGLOffScreenContext::freeResources):
(WebCore::EGLOffScreenContext::destroy):
* platform/graphics/surfaces/egl/EGLContext.h:
(WebCore):
(EGLCurrentContextWrapper):
(WebCore::EGLCurrentContextWrapper::~EGLCurrentContextWrapper):
(EGLOffScreenContext):
EGL implementation for Context Management.
* platform/graphics/surfaces/egl/EGLSurface.cpp: Added.
(WebCore):
(WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
(WebCore::EGLWindowTransportSurface::~EGLWindowTransportSurface):
(WebCore::EGLWindowTransportSurface::configuration):
(WebCore::EGLWindowTransportSurface::swapBuffers):
(WebCore::EGLWindowTransportSurface::destroy):
(WebCore::EGLWindowTransportSurface::freeEGLResources):
* platform/graphics/surfaces/egl/EGLSurface.h:
(WebCore):
(EGLWindowTransportSurface):
EGL implementation for Offscreen Surface. The surface is backed by native window.
* platform/graphics/surfaces/egl/EGLConfigHelper.cpp: Added.
(WebCore):
(WebCore::SharedEGLDisplay::deref):
(WebCore::SharedEGLDisplay::sharedEGLDisplay):
(WebCore::SharedEGLDisplay::SharedEGLDisplay):
(WebCore::SharedEGLDisplay::cleanup):
(WebCore::SharedEGLDisplay::~SharedEGLDisplay):
(WebCore::EGLConfigHelper::EGLConfigHelper):
(WebCore::EGLConfigHelper::~EGLConfigHelper):
(WebCore::EGLConfigHelper::display):
(WebCore::EGLConfigHelper::pBufferContextConfig):
(WebCore::EGLConfigHelper::surfaceContextConfig):
(WebCore::EGLConfigHelper::nativeVisualId):
(WebCore::EGLConfigHelper::reset):
(WebCore::EGLConfigHelper::createConfig):
Helper class to initialize EGL resources and choose right EGL configuration.
2012-12-27 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r138509.
http://trac.webkit.org/changeset/138509
https://bugs.webkit.org/show_bug.cgi?id=105806
Caused several tests to crash (Requested by fsamuel on
#webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* css/SelectorChecker.cpp:
(WebCore::linkAttribute):
(WebCore):
(WebCore::SelectorChecker::determineLinkStateSlowCase):
(WebCore::SelectorChecker::allVisitedStateChanged):
(WebCore::SelectorChecker::visitedStateChanged):
* css/SelectorChecker.h:
(SelectorChecker):
(WebCore::SelectorChecker::determineLinkState):
(WebCore):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::initElement):
* css/StyleResolver.h:
(WebCore::StyleResolver::allVisitedStateChanged):
(WebCore::StyleResolver::visitedStateChanged):
(StyleResolver):
* dom/DOMAllInOne.cpp:
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
(WebCore):
(Document):
* dom/VisitedLinkState.cpp: Removed.
* dom/VisitedLinkState.h: Removed.
* history/CachedPage.cpp:
(WebCore::CachedPage::restore):
* page/Page.cpp:
(WebCore::Page::allVisitedStateChanged):
(WebCore::Page::visitedStateChanged):
2012-12-27 Dimitri Glazkov <dglazkov@chromium.org>
Move visited link-checking (and caching) code out of SelectorChecker.
https://bugs.webkit.org/show_bug.cgi?id=105752
SelectorChecker knew too much about visited links and how links are stored in DOM. This change
moves the code to more relevant locations and moves the visited links cache all the way up to Document,
introducing VisitedLinkState class to manage the state of visited links.
Reviewed by Antti Koivisto.
No change in behavior, covered by existing tests.
* CMakeLists.txt: Added VisitedLinkState to build system.
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* css/SelectorChecker.cpp: Moved visited-link state code out to VisitedLinkState class.
* css/SelectorChecker.h: Ditto.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::initElement): Changed callsite to use VisitedLinkState.
* css/StyleResolver.h: Removed plumb-throughs that are now unnecessary.
* dom/DOMAllInOne.cpp: Added VisitedLinkState to build system.
* dom/Document.cpp: Added VisitedLinkState initalizer.
* dom/Document.h: Added VisitedLinkState member.
* dom/VisitedLinkState.cpp: Added.
* dom/VisitedLinkState.h: Added.
* history/CachedPage.cpp:
(WebCore::CachedPage::restore): Changed callsite to use VisitedLinkState.
* page/Page.cpp:
(WebCore::Page::allVisitedStateChanged): Ditto.
(WebCore::Page::visitedStateChanged): Ditto.
2012-12-27 Huang Dongsung <luxtella@company100.net>
[TexMap] Minor refactoring of TextureMapperLayer.
https://bugs.webkit.org/show_bug.cgi?id=105782
Reviewed by Darin Adler.
This patch has two refactorings.
1. Replace TextureMapperPaintOptions from header to implementation file.
2. Add non copyable property to TextureMapperLayer.
No new tests. Refactoring only.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(TextureMapperPaintOptions):
(WebCore::TextureMapperPaintOptions::TextureMapperPaintOptions):
(WebCore):
* platform/graphics/texmap/TextureMapperLayer.h:
(WebCore):
(TextureMapperLayer):
2012-12-27 Yury Semikhatsky <yurys@chromium.org>
Unreviewed. Use real worker in heap profiler instead of the fake one
(was accidentally switched to the fake worker).
* inspector/front-end/HeapSnapshotProxy.js:
(WebInspector.HeapSnapshotWorker):
2012-12-27 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: [Regression] Can not set breakpoints in scripts loaded with source map.
https://bugs.webkit.org/show_bug.cgi?id=105801
Reviewed by Alexander Pavlov.
ResourceScriptMapping now pushes itself to script's source mappings in addScript method.
Binding script to uiSourceCode loaded later is only triggering updateLocations() now.
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping.prototype.addScript):
(WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
* inspector/front-end/Script.js:
(WebInspector.Script.prototype.disableSourceMapping):
(WebInspector.Script.prototype.enableSourceMapping):
(WebInspector.Script.prototype.pushSourceMapping):
(WebInspector.Script.prototype.popSourceMapping):
(WebInspector.Script.prototype.updateLocations):
2012-12-27 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: remove support for legacy heap graph node format
https://bugs.webkit.org/show_bug.cgi?id=105802
Reviewed by Pavel Feldman.
Removed support for old heap graph node format: we now always store edge count
in each node instead of the first edge index.
* inspector/front-end/HeapSnapshot.js:
(WebInspector.HeapSnapshot.prototype._buildEdgeIndexes):
2012-12-27 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: move js heap snapshot preprocessing to JSHeapSnapshot
https://bugs.webkit.org/show_bug.cgi?id=105798
Reviewed by Pavel Feldman.
HeapSnapshot.js refactorings:
- moved _markInvisibleEdges implementation into JSHeapSnapshot
- moved _calculateFlags implementation into JSHeapSnapshot
- moved _flags array into JSHeapSnapshot
- instead of returning node flags as a field on each node, requesting
snapshot node flag constants from the heap snapshot worker and then
checking for the flags in HeapSnapshotGridNodes now return two optional
boolean fields on each node: canBeQueried and detachedDOMTreeNode
- removed unused propertyAccessor property from serialized heap node
- moved node and edge serialization from providers to the node and edge
classes, js specific fields are serialized only for JSHeapSnapshotNode
- renamed first() to rewind() on providers and iterators
* inspector/front-end/HeapSnapshot.js:
(WebInspector.HeapSnapshotEdge.prototype.serialize):
(WebInspector.HeapSnapshotEdgeIterator.prototype.rewind):
(WebInspector.HeapSnapshotRetainerEdge.prototype.serialize):
(WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.rewind):
(WebInspector.HeapSnapshotNode.prototype.isUserObject):
(WebInspector.HeapSnapshotNode.prototype.serialize):
(WebInspector.HeapSnapshotNodeIterator.prototype.rewind):
(WebInspector.HeapSnapshot.prototype._init):
(WebInspector.HeapSnapshot.prototype._buildAggregates):
(WebInspector.HeapSnapshot.prototype._calculateClassesRetainedSize):
(WebInspector.HeapSnapshot.prototype._buildPostOrderIndex):
(WebInspector.HeapSnapshot.prototype._buildDominatorTree):
(WebInspector.HeapSnapshot.prototype._markInvisibleEdges):
(WebInspector.HeapSnapshot.prototype._calculateFlags):
(WebInspector.HeapSnapshot.prototype.userObjectsMapAndFlag):
(WebInspector.HeapSnapshot.prototype.):
(WebInspector.HeapSnapshot.prototype.createNodesProviderForClass):
(WebInspector.HeapSnapshot.prototype.updateStaticData):
(WebInspector.HeapSnapshotFilteredOrderedIterator.prototype._createIterationOrder):
(WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.rewind):
(WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.isEmpty):
(WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.serializeItemsRange):
(WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.sortAndRewind):
* inspector/front-end/HeapSnapshotGridNodes.js:
(WebInspector.HeapSnapshotGenericObjectNode):
(WebInspector.HeapSnapshotObjectNode):
* inspector/front-end/HeapSnapshotProxy.js:
* inspector/front-end/JSHeapSnapshot.js:
(WebInspector.JSHeapSnapshot):
(WebInspector.JSHeapSnapshot.prototype._markInvisibleEdges):
(WebInspector.JSHeapSnapshot.prototype._calculateFlags):
(WebInspector.JSHeapSnapshot.prototype.userObjectsMapAndFlag):
(WebInspector.JSHeapSnapshot.prototype._flagsOfNode):
(WebInspector.JSHeapSnapshot.prototype._markDetachedDOMTreeNodes):
(WebInspector.JSHeapSnapshot.prototype._markQueriableHeapObjects):
(WebInspector.JSHeapSnapshot.prototype._markPageOwnedNodes):
(WebInspector.JSHeapSnapshotNode.prototype.isUserObject):
(WebInspector.JSHeapSnapshotNode.prototype.serialize):
2012-12-27 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Refactor SourceMapParser to enable range-based sourcemap
https://bugs.webkit.org/show_bug.cgi?id=105764
Reviewed by Vsevolod Vlasov.
Test: inspector/styles/range-based-mapping.html
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/CompilerScriptMapping.js:
(WebInspector.CompilerScriptMapping):
(WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
* inspector/front-end/SourceMap.js: Copied from Source/WebCore/inspector/front-end/CompilerScriptMapping.js.
(WebInspector.SourceMap):
Abstract. Renamed from SourceMapParser and supports only direct (generated -> originating source) mapping via findEntry()
(WebInspector.SourceMap.prototype.sources):
(WebInspector.SourceMap.prototype.sourceContent):
(WebInspector.SourceMap.prototype._parseMappingPayload):
(WebInspector.SourceMap.prototype._parseSections):
(WebInspector.SourceMap.prototype._parseMap):
(WebInspector.SourceMap.prototype._isSeparator):
(WebInspector.SourceMap.prototype._decodeVLQ):
(WebInspector.SourceMap.prototype._canonicalizeURL):
(WebInspector.SourceMap.StringCharIterator):
(WebInspector.SourceMap.StringCharIterator.prototype.next):
(WebInspector.SourceMap.StringCharIterator.prototype.peek):
(WebInspector.SourceMap.StringCharIterator.prototype.hasNext):
(WebInspector.PositionBasedSourceMap):
Extends SourceMap and provides direct (compiled -> original source)
and reverse (original -> compiled source) position mapping via findEntryReversed().
(WebInspector.PositionBasedSourceMap.prototype.findEntry):
(WebInspector.PositionBasedSourceMap.prototype.findEntryReversed):
(WebInspector.PositionBasedSourceMap.prototype._parseMap):
(WebInspector.RangeBasedSourceMap):
Extends SourceMap and provides direct range mapping
(compiled source position -> original source range) via findSourceRange().
(WebInspector.RangeBasedSourceMap.MappingComparator):
(WebInspector.RangeBasedSourceMap.prototype.findSourceRange):
(WebInspector.RangeBasedSourceMap.prototype._rangeForStartIndex):
(WebInspector.SourceRange):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2012-12-25 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] report if there is any uninstrumented canvas on a page
https://bugs.webkit.org/show_bug.cgi?id=105721
Reviewed by Yury Semikhatsky.
Adding a method to the protocol to report if there is any uninstrumented canvas on a page.
Test: inspector/profiler/canvas2d/canvas-has-uninstrumented-canvases.html
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
* inspector/Inspector.json:
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
(WebCore::InspectorCanvasAgent::enable):
(WebCore::InspectorCanvasAgent::disable):
(WebCore::InspectorCanvasAgent::hasUninstrumentedCanvases):
(WebCore):
(WebCore::InspectorCanvasAgent::captureFrame):
(WebCore::InspectorCanvasAgent::startCapturing):
(WebCore::InspectorCanvasAgent::stopCapturing):
(WebCore::InspectorCanvasAgent::getTraceLog):
(WebCore::InspectorCanvasAgent::replayTraceLog):
(WebCore::InspectorCanvasAgent::ensureHasUninstrumentedCanvasesCalculated):
(WebCore::InspectorCanvasAgent::checkIsEnabled):
(WebCore::InspectorCanvasAgent::reset):
* inspector/InspectorCanvasAgent.h:
(WebCore):
(InspectorCanvasAgent):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
2012-12-27 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Simplify script mappings by introducing DefaultScriptMapping.
https://bugs.webkit.org/show_bug.cgi?id=103038
Reviewed by Pavel Feldman.
DefaultScriptMapping creates a uiSourceCode for each script and set itself as a mapping for the script.
Script can now have a stack of (possibly disabled) mappings, allowing to try several mappings when calculating uiLocation.
LiveEditSupport object is added on WebInspector to support live editing of readonly DefaultScriptMapping's uiSourceCodes.
DefaultScriptMapping is now the only mapping that creates temporary uiSourceCodes.
* English.lproj/localizedStrings.js:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager):
(WebInspector.BreakpointManager.sourceFileId):
(WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
* inspector/front-end/CompilerScriptMapping.js:
(WebInspector.CompilerScriptMapping):
(WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
(WebInspector.CompilerScriptMapping.prototype.uiLocationToRawLocation):
(WebInspector.CompilerScriptMapping.prototype._reset):
* inspector/front-end/DebuggerModel.js:
(WebInspector.DebuggerModel.prototype._parsedScriptSource):
* inspector/front-end/DebuggerScriptMapping.js:
(WebInspector.DebuggerScriptMapping):
* inspector/front-end/DefaultScriptMapping.js: Added.
* inspector/front-end/LiveEditSupport.js: Added.
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
(WebInspector.ResourceScriptMapping.prototype.addScript):
(WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
(WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
(WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
(WebInspector.ResourceScriptMapping.prototype._workspaceUISourceCodeForScript):
(WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode):
(WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
(WebInspector.ResourceScriptMapping.prototype._reset):
* inspector/front-end/Script.js:
(WebInspector.Script):
(WebInspector.Script.prototype.):
(WebInspector.Script.prototype.editSource):
(WebInspector.Script.prototype.setIsDynamicScript):
(WebInspector.Script.prototype.isDynamicScript):
(WebInspector.Script.prototype.rawLocationToUILocation):
(WebInspector.Script.prototype._enabledSourceMappings):
(WebInspector.Script.prototype._sourceMappingsDiffer):
(WebInspector.Script.prototype.disableSourceMapping):
(WebInspector.Script.prototype.enableSourceMapping):
(WebInspector.Script.prototype.pushSourceMapping):
(WebInspector.Script.prototype.popSourceMapping):
(WebInspector.Script.prototype._updateLocations):
(WebInspector.Script.prototype.createLiveLocation):
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.ScriptSnippetModel.prototype._projectWillReset):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._addUISourceCode):
(WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
(WebInspector.ScriptsPanel.prototype._createSourceFrame):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/Workspace.js:
(WebInspector.Workspace.prototype.addTemporaryUISourceCode):
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
2012-12-27 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: console.profileEnd() crashes if called without arguments
https://bugs.webkit.org/show_bug.cgi?id=105759
Reviewed by Vsevolod Vlasov.
Test: inspector/profiler/cpu-profiler-parameterless-profile-end-crash.html
API allows to finish profile without specifying its name.
Profiler tracks profiles stack and finishes outermost profile.
Finished profile title will be used instead of user-specified one.
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::stop): Use title provided by profiler.
2012-12-26 No'am Rosenthal <noam@webkit.org>
[Texmap] Instead of having multiple shaders sources with lots of duplication, we should have one shader source with MACRO variants
https://bugs.webkit.org/show_bug.cgi?id=104815
Reviewed by Kenneth Rohde Christiansen.
Created templates for the vertex and fragment shaders, and added some MACROs in
TextureMapperShaderManager to allow GLSL precompiler-based configuration.
The template follows a pattern where the main function in the shader calls
applyFooBarIfNeeded(), while applyFooBar() is implemented. The Macros prepended to the template define whether applyIfNeeded resolves to the real function or to a noop.
In addition, made some small changes to the filter shaders so that they can use the same code as the normal shaders.
Covered by existing pixel/ref tests when run on Qt/EFL/GTK.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::TextureMapperGL::drawTextureWithAntialiasing):
(WebCore::optionsForFilterType):
(WebCore):
(WebCore::getPassesRequiredForFilter):
(WebCore::prepareFilterProgram):
(WebCore::TextureMapperGL::drawFiltered):
(WebCore::BitmapTextureGL::applyFilters):
Always draw using the drawQuad function, and use the new TextureMapperShaderManager::Options mask instead of the old ShaderKey.
* platform/graphics/texmap/TextureMapperShaderManager.cpp:
(WebCore):
(WebCore::getShaderSpec):
(WebCore::TextureMapperShaderManager::getShaderProgram):
* platform/graphics/texmap/TextureMapperShaderManager.h:
(TextureMapperShaderProgram):
(TextureMapperShaderManager):
2012-12-26 Huang Dongsung <luxtella@company100.net>
[TexMap] A Minor optimization of GraphicsLayerTransform.
https://bugs.webkit.org/show_bug.cgi?id=105758
Reviewed by Noam Rosenthal.
Only multiply the transformation matrices if the paramaters are actually
changed.
This optimizes the code path called from flushCompositingStateForThisLayerOnly(),
and potentially setAnimatedTransform().
No new tests. Refactoring only.
* platform/graphics/GraphicsLayerTransform.cpp:
(WebCore::GraphicsLayerTransform::setPosition):
(WebCore::GraphicsLayerTransform::setSize):
(WebCore::GraphicsLayerTransform::setAnchorPoint):
(WebCore::GraphicsLayerTransform::setFlattening):
(WebCore::GraphicsLayerTransform::setLocalTransform):
(WebCore::GraphicsLayerTransform::setChildrenTransform):
2012-12-26 Huang Dongsung <luxtella@company100.net>
[TexMap] Remove unused members and methods in TextureMapperLayer.
https://bugs.webkit.org/show_bug.cgi?id=105755
Reviewed by Noam Rosenthal.
No new tests. Refactoring only.
* platform/graphics/texmap/TextureMapperLayer.h:
(TextureMapperLayer):
(State):
(WebCore::TextureMapperLayer::State::State):
2012-12-26 Andreas Kling <akling@apple.com>
[Mac] MemoryPressureHandler: Occasional crashes in uninstall() when responding to memory pressure signal.
<http://webkit.org/b/105772>
Reviewed by Stephanie Lewis.
We can't synchronously dereference _cache_event_source in uninstall() just because m_installed
is true -- the block that initializes _cache_event_source is asynchronous and may not have executed.
Fix this by performing the uninstallation asynchronously on the main queue as well.
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::uninstall):
2012-12-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r137905.
http://trac.webkit.org/changeset/137905
https://bugs.webkit.org/show_bug.cgi?id=105765
Popover does not disappear when hovering another identifier in
sources panel. (Requested by vsevik on #webkit).
* inspector/front-end/Popover.js:
(WebInspector.Popover.prototype._innerShow):
* inspector/front-end/popover.css:
(.popover):
2012-12-26 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Resources] Table lose focus (selection) after deleting cookie.
https://bugs.webkit.org/show_bug.cgi?id=105716
Reviewed by Yury Semikhatsky.
This makes deletion of a set of cookies (using keyboard) painful.
* inspector/front-end/CookieItemsView.js: Call method instead of getter.
* inspector/front-end/CookiesTable.js: Remember and use next selected
cookie value.
2012-12-26 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: extract JS heap profiler specifics into JSHeapSnapshot.js
https://bugs.webkit.org/show_bug.cgi?id=105768
Reviewed by Pavel Feldman.
Inroduced JSHeapSnapshot, JSHeapSnapshotNode, JSHeapSnapshotEdge and JSHeapSnapshotRetainerEdge which
should encapsulate logic specific to JS-heap.
No behavioral changes, covered with existing heap profiler tests.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/HeapSnapshot.js:
(WebInspector.HeapSnapshotEdge.prototype.hasStringName):
(WebInspector.HeapSnapshotEdge.prototype.name):
(WebInspector.HeapSnapshotEdge.prototype.node):
(WebInspector.HeapSnapshotEdge.prototype.toString):
(WebInspector.HeapSnapshotRetainerEdge.prototype._node):
(WebInspector.HeapSnapshotRetainerEdge.prototype._edge):
(WebInspector.HeapSnapshotNode.prototype.className):
(WebInspector.HeapSnapshotNode.prototype.classIndex):
(WebInspector.HeapSnapshotNode.prototype.edges):
(WebInspector.HeapSnapshotNode.prototype.id):
(WebInspector.HeapSnapshotNode.prototype.retainers):
(WebInspector.HeapSnapshot.prototype.createNode):
(WebInspector.HeapSnapshot.prototype.createEdge):
(WebInspector.HeapSnapshot.prototype.createRetainingEdge):
(WebInspector.HeapSnapshot.prototype.rootNode):
(WebInspector.HeapSnapshot.prototype.aggregatesForDiff):
(WebInspector.HeapSnapshot.prototype._buildAggregates):
(WebInspector.HeapSnapshot.prototype._calculateClassesRetainedSize):
(WebInspector.HeapSnapshot.prototype._sortAggregateIndexes):
(WebInspector.HeapSnapshot.prototype._calculateDiffForClass):
(WebInspector.HeapSnapshot.prototype.createEdgesProvider):
(WebInspector.HeapSnapshot.prototype.createRetainingEdgesProvider):
(WebInspector.HeapSnapshot.prototype.createNodesProviderForDominator):
(WebInspector.HeapSnapshotNodesProvider.prototype.nodePosition):
* inspector/front-end/HeapSnapshotLoader.js:
(WebInspector.HeapSnapshotLoader.prototype.buildSnapshot):
* inspector/front-end/HeapSnapshotProxy.js:
(WebInspector.HeapSnapshotWorker):
* inspector/front-end/HeapSnapshotWorker.js:
* inspector/front-end/JSHeapSnapshot.js: Added.
(WebInspector.JSHeapSnapshot):
(WebInspector.JSHeapSnapshot.prototype.createNode):
(WebInspector.JSHeapSnapshot.prototype.createEdge):
(WebInspector.JSHeapSnapshot.prototype.createRetainingEdge):
(WebInspector.JSHeapSnapshotNode):
(WebInspector.JSHeapSnapshotNode.prototype.canBeQueried):
(WebInspector.JSHeapSnapshotNode.prototype.isPageObject):
(WebInspector.JSHeapSnapshotNode.prototype.distanceToWindow):
(WebInspector.JSHeapSnapshotNode.prototype.className):
(WebInspector.JSHeapSnapshotNode.prototype.classIndex):
(WebInspector.JSHeapSnapshotNode.prototype.id):
(WebInspector.JSHeapSnapshotNode.prototype.isHidden):
(WebInspector.JSHeapSnapshotNode.prototype.isNative):
(WebInspector.JSHeapSnapshotNode.prototype.isSynthetic):
(WebInspector.JSHeapSnapshotNode.prototype.isWindow):
(WebInspector.JSHeapSnapshotNode.prototype.isDetachedDOMTreesRoot):
(WebInspector.JSHeapSnapshotNode.prototype.isDetachedDOMTree):
(WebInspector.JSHeapSnapshotEdge):
(WebInspector.JSHeapSnapshotEdge.prototype.clone):
(WebInspector.JSHeapSnapshotEdge.prototype.hasStringName):
(WebInspector.JSHeapSnapshotEdge.prototype.isElement):
(WebInspector.JSHeapSnapshotEdge.prototype.isHidden):
(WebInspector.JSHeapSnapshotEdge.prototype.isWeak):
(WebInspector.JSHeapSnapshotEdge.prototype.isInternal):
(WebInspector.JSHeapSnapshotEdge.prototype.isInvisible):
(WebInspector.JSHeapSnapshotEdge.prototype.isShortcut):
(WebInspector.JSHeapSnapshotEdge.prototype.name):
(WebInspector.JSHeapSnapshotEdge.prototype.toString):
(WebInspector.JSHeapSnapshotEdge.prototype._hasStringName):
(WebInspector.JSHeapSnapshotEdge.prototype._name):
(WebInspector.JSHeapSnapshotEdge.prototype._nameOrIndex):
(WebInspector.JSHeapSnapshotEdge.prototype._type):
(WebInspector.JSHeapSnapshotRetainerEdge):
(WebInspector.JSHeapSnapshotRetainerEdge.prototype.clone):
(WebInspector.JSHeapSnapshotRetainerEdge.prototype.isElement):
(WebInspector.JSHeapSnapshotRetainerEdge.prototype.isHidden):
(WebInspector.JSHeapSnapshotRetainerEdge.prototype.isInternal):
(WebInspector.JSHeapSnapshotRetainerEdge.prototype.isInvisible):
(WebInspector.JSHeapSnapshotRetainerEdge.prototype.isShortcut):
(WebInspector.JSHeapSnapshotRetainerEdge.prototype.isWeak):
* inspector/front-end/ProfilesPanel.js:
* inspector/front-end/WebKit.qrc:
2012-12-26 Patrick Gansterer <paroga@webkit.org>
[WIN] Build fix for !USE(CFNETWORK) after r138413.
* platform/network/NetworkStorageSession.h:
(WebCore):
2012-12-26 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: prepare HeapSnapshot.js for use with native heap snapshot
https://bugs.webkit.org/show_bug.cgi?id=105763
Reviewed by Alexander Pavlov.
HeapSnapshot.js now expects root node to be either the first or the last (real) one
in the list of all nodes.
* inspector/HeapGraphSerializer.cpp:
(HeapGraphNode):
(WebCore::HeapGraphSerializer::serialize): reordered node and edge fields so that the go in
the same order as in the JS heap snapshot.
* inspector/front-end/HeapSnapshot.js:
(WebInspector.HeapSnapshot.prototype._buildAggregates):
(WebInspector.HeapSnapshot.prototype._buildDominatedNodes):
* inspector/front-end/NativeHeapGraph.js:
(WebInspector.NativeHeapGraph):
(WebInspector.NativeHeapGraph.prototype.root): now there is explicit root node which is the last
one in the list, use it.
(WebInspector.NativeHeapGraph.prototype._calculateNodeEdgeIndexes):
(WebInspector.NativeHeapGraph.prototype._addDummyNode): fixed dummy node first edge index.
(WebInspector.NativeHeapGraph.Edge.prototype.target):
(WebInspector.NativeHeapGraph.Node.prototype.referencedNodes):
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeSnapshotNode.prototype._addChildrenFromGraph): switched to use of the root node
(WebInspector.NativeHeapGraphDataGridRoot.prototype._populate):
2012-12-26 Pan Deng <pan.deng@intel.com>
[Web Inspector]Remove Preview and Response tab from network panel in case websocket.
https://bugs.webkit.org/show_bug.cgi?id=105754
Reviewed by Pavel Feldman.
Network item views for websocket is not consistent before/after receiving a frame.
This change keeps Headers, Frames and Cookies tab for websocket.
No new tests.
* inspector/front-end/NetworkItemView.js:
(WebInspector.NetworkItemView):
2012-12-25 John Griggs <jgriggs@rim.com>
[BlackBerry] Media controls are drawn on top of one another for media with unknown duration.
https://bugs.webkit.org/show_bug.cgi?id=105747
Reviewed by George Staikos.
No need to reposition controls when there is no timeline element, this mispositions them in the new design.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
2012-12-25 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Crash when modifying a rule that has been removed through JavaScript
https://bugs.webkit.org/show_bug.cgi?id=105718
Reviewed by Yury Semikhatsky.
CSSStyleRules should be stored by RefPtr's to avoid using stale pointers to deleted instances.
Test: inspector/styles/removed-rule-crash.html
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::ruleForId):
(WebCore::InspectorStyleSheet::revalidateStyle):
(WebCore::InspectorStyleSheet::buildArrayForRuleList):
(WebCore::InspectorStyleSheet::collectFlatRules):
* inspector/InspectorStyleSheet.h:
(InspectorStyleSheet):
2012-12-25 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Console] Add "Replay XHR" context menu item for corresponding messages.
https://bugs.webkit.org/show_bug.cgi?id=105714
Reviewed by Pavel Feldman.
Expose "request" value from console message object and use it in console
context menu generator.
* inspector/front-end/ConsoleMessage.js: Expose "request".
* inspector/front-end/ConsoleView.js: Add "Replay XHR" menu item.
* inspector/front-end/NetworkPanel.js: Fix whitespaces.
2012-12-25 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Make InspectorState instances per-agent, corresponding to JSON map entries in the cookie
https://bugs.webkit.org/show_bug.cgi?id=105722
Reviewed by Yury Semikhatsky.
Inspector state cookie (in JSON format) has become a map (agent name -> "properties object")
to avoid cross-agent property name clashes in a single property namespace.
As such, InspectorState corresponds to a single "properties object" and is now per-agent,
managed by an InspectorCompositeState (which is owned by [Worker]InspectorController).
Since InspectorCompositeState maps "properties objects" by their agent names, InspectorStates are created
by InspectorCompositeState in the InspectorBaseAgentInterface ctor, using the respective agent name.
No new tests, no change in visible behavior.
* inspector/InspectorAgent.cpp: Pass InspectorCompositeState rather than InspectorState.
* inspector/InspectorAgent.h: Ditto.
* inspector/InspectorApplicationCacheAgent.cpp: Ditto.
* inspector/InspectorApplicationCacheAgent.h: Ditto.
* inspector/InspectorBaseAgent.cpp: Ditto.
(WebCore::InspectorBaseAgentInterface::InspectorBaseAgentInterface):
Create InspectorState via InspectorCompositeState::createAgentState(agentName).
* inspector/InspectorBaseAgent.h: Pass InspectorCompositeState rather than InspectorState.
* inspector/InspectorCSSAgent.cpp: Ditto.
* inspector/InspectorCSSAgent.h: Ditto.
* inspector/InspectorCanvasAgent.cpp: Ditto.
* inspector/InspectorCanvasAgent.h: Ditto.
* inspector/InspectorConsoleAgent.cpp: Ditto.
* inspector/InspectorConsoleAgent.h: Ditto.
* inspector/InspectorController.cpp: Use InspectorCompositeState rather than InspectorState.
* inspector/InspectorController.h: Ditto.
* inspector/InspectorDOMAgent.cpp: Pass InspectorCompositeState rather than InspectorState.
(WebCore::InspectorDOMAgent::InspectorDOMAgent): Ditto.
* inspector/InspectorDOMAgent.h: Ditto.
* inspector/InspectorDOMDebuggerAgent.cpp: Ditto.
* inspector/InspectorDOMDebuggerAgent.h: Ditto.
* inspector/InspectorDOMStorageAgent.cpp: Ditto.
* inspector/InspectorDOMStorageAgent.h: Ditto.
* inspector/InspectorDatabaseAgent.cpp: Ditto.
* inspector/InspectorDatabaseAgent.h: Ditto.
* inspector/InspectorDebuggerAgent.cpp: Ditto.
* inspector/InspectorDebuggerAgent.h: Ditto.
* inspector/InspectorFileSystemAgent.cpp: Ditto.
* inspector/InspectorFileSystemAgent.h: Ditto.
* inspector/InspectorIndexedDBAgent.cpp: Ditto.
* inspector/InspectorIndexedDBAgent.h: Ditto.
* inspector/InspectorInputAgent.cpp: Ditto.
* inspector/InspectorInputAgent.h: Ditto.
* inspector/InspectorLayerTreeAgent.cpp: Ditto.
* inspector/InspectorLayerTreeAgent.h: Ditto.
* inspector/InspectorMemoryAgent.cpp: Ditto.
* inspector/InspectorMemoryAgent.h: Ditto.
* inspector/InspectorPageAgent.cpp: Ditto.
* inspector/InspectorPageAgent.h: Ditto.
* inspector/InspectorProfilerAgent.cpp: Ditto.
* inspector/InspectorProfilerAgent.h: Ditto.
* inspector/InspectorResourceAgent.cpp: Ditto.
* inspector/InspectorResourceAgent.h: Ditto.
* inspector/InspectorRuntimeAgent.cpp: Ditto.
* inspector/InspectorRuntimeAgent.h: Ditto.
* inspector/InspectorState.cpp: Introduce InspectorCompositeState, refactor.
(WebCore::InspectorState::updateCookie): Delegates to the owning InspectorCompositeState instance.
(WebCore::InspectorState::setFromCookie): Gets called from InspectorCompositeState::loadFromCookie().
(WebCore::InspectorState::remove): Don't forget to update the cookie.
(WebCore::InspectorCompositeState::createAgentState): Creates an InspectorState instance for a named agent.
(WebCore::InspectorCompositeState::loadFromCookie): Restores InspectorStates from a cookie.
(WebCore::InspectorCompositeState::inspectorStateUpdated): Delegate invoked from InspectorState::updateCookie().
* inspector/InspectorState.h:
(InspectorStateUpdateListener): InspectorCompositeState API exposed to InspectorState.
* inspector/InspectorTimelineAgent.cpp: Pass InspectorCompositeState rather than InspectorState.
* inspector/InspectorTimelineAgent.h: Ditto.
* inspector/InspectorWorkerAgent.cpp: Ditto.
* inspector/InspectorWorkerAgent.h: Ditto.
* inspector/PageConsoleAgent.cpp: Ditto.
* inspector/PageConsoleAgent.h: Ditto.
* inspector/PageDebuggerAgent.cpp: Ditto.
* inspector/PageDebuggerAgent.h: Ditto.
* inspector/PageRuntimeAgent.cpp: Ditto.
* inspector/PageRuntimeAgent.h: Ditto.
* inspector/WorkerConsoleAgent.cpp: Ditto.
* inspector/WorkerConsoleAgent.h: Ditto.
* inspector/WorkerDebuggerAgent.cpp: Ditto.
* inspector/WorkerDebuggerAgent.h: Ditto.
* inspector/WorkerInspectorController.cpp: Ditto.
* inspector/WorkerInspectorController.h: Ditto.
* inspector/WorkerRuntimeAgent.cpp: Ditto.
* inspector/WorkerRuntimeAgent.h: Ditto.
2012-12-24 Yury Semikhatsky <yurys@chromium.org>
Memory instrumentation: provide a way to mark a node as a root
https://bugs.webkit.org/show_bug.cgi?id=105737
Reviewed by Alexander Pavlov.
Extended HeapGraphSerializer to add a fake root node with edges to all
real instrumentation roots.
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::reportNode):
(WebCore::HeapGraphSerializer::addRootNode):
(WebCore):
* inspector/HeapGraphSerializer.h:
(HeapGraphSerializer):
2012-12-24 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: add message listener only in case of standalone test-runner.html
https://bugs.webkit.org/show_bug.cgi?id=105715
Reviewed by Pavel Feldman.
Tell InspectorFrontendAPI that it is launched by standalone test runner so that it
can decide whether message event listener should be added.
* inspector/front-end/InspectorFrontendAPI.js:
* inspector/front-end/test-runner.html:
2012-12-24 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: propagate member type as edge type to the serialized heap graph.
https://bugs.webkit.org/show_bug.cgi?id=105725
Reviewed by Yury Semikhatsky.
MemoryOwningType was renamed to MemberType.
Source argument were removed from reportEdge, reportLeaf and other edge related methods because it is not necessary.
MemberType argument was propagated from MemoryInstrumentation down to HeapGraphSerializer.
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphEdge::HeapGraphEdge):
(HeapGraphEdge):
(WebCore::HeapGraphSerializer::HeapGraphSerializer):
(WebCore::HeapGraphSerializer::reportEdge):
(WebCore::HeapGraphSerializer::reportLeaf):
(WebCore::HeapGraphSerializer::serialize):
* inspector/HeapGraphSerializer.h:
(HeapGraphSerializer):
* inspector/MemoryInstrumentationImpl.cpp:
(WebCore::MemoryInstrumentationClientImpl::reportEdge):
(WebCore::MemoryInstrumentationClientImpl::reportLeaf):
* inspector/MemoryInstrumentationImpl.h:
(MemoryInstrumentationClientImpl):
2012-12-24 Takashi Sakamoto <tasak@google.com>
::first-letter { overflow: -webkit-paged-y } causes crash
https://bugs.webkit.org/show_bug.cgi?id=105393
Reviewed by Beth Dakin.
Should check whether e is available or not before invoking
e->hasTagName in adjustRenderStyle in StyleResolver.cpp.
Test: fast/css/pseudo-element-opagedxy-crash.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
If adjustRenderStyle is invoked in pseudoStyleForElement, the given
element is 0. So e is not available. However if the given style's
overflowY is OPAGEDX or OPAGEDY, adjustRenderStyle doesn't check
whether e is available or not before e->hasTagName.
This causes a crash.
2012-12-24 Alexei Filippov <alph@chromium.org>
Web Inspector: add async API for passing renderer process memory stats
https://bugs.webkit.org/show_bug.cgi?id=105278
Reviewed by Yury Semikhatsky.
On some platforms (e.g. Linux) it may take some time to collect
total process memory information as it involves an IPC out of a
sandboxed renderer process. So add an async way to collect the statistics.
* platform/MemoryUsageSupport.cpp:
(WebCore::MemoryUsageSupport::requestProcessMemorySizes):
(WebCore):
* platform/MemoryUsageSupport.h:
(MemoryUsageSupport):
(ProcessMemorySizesCallback):
(WebCore::MemoryUsageSupport::ProcessMemorySizesCallback::~ProcessMemorySizesCallback):
* platform/chromium/MemoryUsageSupportChromium.cpp:
(WebCore::MemoryUsageSupport::requestProcessMemorySizes):
(WebCore):
* platform/qt/MemoryUsageSupportQt.cpp:
(WebCore::MemoryUsageSupport::requestProcessMemorySizes):
(WebCore):
2012-12-24 Laszlo Gombos <l.gombos@samsung.com>
Remove wtf/Platform.h includes from {c|cpp} files
https://bugs.webkit.org/show_bug.cgi?id=105678
Reviewed by Kentaro Hara.
Remove wtf/Platform.h from the include list as it is already
included in config.h.
No new tests as there is no new functionality.
* rendering/svg/RenderSVGRect.cpp:
2012-12-24 Kentaro Hara <haraken@chromium.org>
Follow up fixes for r137739
https://bugs.webkit.org/show_bug.cgi?id=104982
Reviewed by Ryosuke Niwa.
Applied darin's comments in https://bugs.webkit.org/show_bug.cgi?id=104982#c18
No tests. No change in behavior.
* dom/ContainerNode.h:
(WebCore::ChildNodesLazySnapshot::nextNode):
2012-12-24 Tiancheng Jiang <tijiang@rim.com>
Update BB10 media render theme.
https://bugs.webkit.org/show_bug.cgi?id=105728
Reviewed by Rob Buis.
Internally reviewed by John Griggs.
Use GL renderer to paint media control.
* css/mediaControlsBlackBerry.css:
(audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
(WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
2012-12-24 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r138436.
http://trac.webkit.org/changeset/138436
https://bugs.webkit.org/show_bug.cgi?id=105723
Asserts on state restoration in debug builds (Requested by
apavlov on #webkit).
* inspector/InspectorAgent.cpp:
(InspectorAgentState):
(WebCore::InspectorAgent::enable):
(WebCore::InspectorAgent::disable):
(WebCore::InspectorAgent::evaluateForTestInFrontend):
(WebCore::InspectorAgent::inspect):
* inspector/InspectorApplicationCacheAgent.cpp:
(ApplicationCacheAgentState):
(WebCore::InspectorApplicationCacheAgent::restore):
(WebCore::InspectorApplicationCacheAgent::enable):
* inspector/InspectorCSSAgent.cpp:
(CSSAgentState):
(WebCore::InspectorCSSAgent::restore):
(WebCore::InspectorCSSAgent::enable):
(WebCore::InspectorCSSAgent::disable):
* inspector/InspectorCanvasAgent.cpp:
(CanvasAgentState):
(WebCore::InspectorCanvasAgent::restore):
(WebCore::InspectorCanvasAgent::enable):
(WebCore::InspectorCanvasAgent::disable):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorController.h:
(WebCore):
(InspectorController):
* inspector/InspectorDOMStorageAgent.cpp:
(DOMStorageAgentState):
(WebCore::InspectorDOMStorageAgent::restore):
(WebCore::InspectorDOMStorageAgent::enable):
(WebCore::InspectorDOMStorageAgent::disable):
* inspector/InspectorDatabaseAgent.cpp:
(DatabaseAgentState):
(WebCore):
(WebCore::InspectorDatabaseAgent::enable):
(WebCore::InspectorDatabaseAgent::disable):
(WebCore::InspectorDatabaseAgent::restore):
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::disable):
* inspector/InspectorFileSystemAgent.cpp:
(FileSystemAgentState):
(WebCore):
(WebCore::InspectorFileSystemAgent::enable):
(WebCore::InspectorFileSystemAgent::disable):
(WebCore::InspectorFileSystemAgent::clearFrontend):
(WebCore::InspectorFileSystemAgent::restore):
* inspector/InspectorIndexedDBAgent.cpp:
(IndexedDBAgentState):
(WebCore):
(WebCore::InspectorIndexedDBAgent::restore):
(WebCore::InspectorIndexedDBAgent::enable):
(WebCore::InspectorIndexedDBAgent::disable):
* inspector/InspectorLayerTreeAgent.cpp:
(LayerTreeAgentState):
(WebCore::InspectorLayerTreeAgent::restore):
(WebCore::InspectorLayerTreeAgent::enable):
(WebCore::InspectorLayerTreeAgent::disable):
* inspector/InspectorPageAgent.cpp:
(PageAgentState):
(WebCore::InspectorPageAgent::restore):
(WebCore::InspectorPageAgent::webViewResized):
(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::addScriptToEvaluateOnLoad):
(WebCore::InspectorPageAgent::removeScriptToEvaluateOnLoad):
(WebCore::InspectorPageAgent::setDeviceMetricsOverride):
(WebCore::InspectorPageAgent::setShowPaintRects):
(WebCore::InspectorPageAgent::setShowFPSCounter):
(WebCore::InspectorPageAgent::setScriptExecutionDisabled):
(WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
(WebCore::InspectorPageAgent::applyScreenWidthOverride):
(WebCore::InspectorPageAgent::applyScreenHeightOverride):
(WebCore::InspectorPageAgent::didPaint):
(WebCore::InspectorPageAgent::didLayout):
(WebCore::InspectorPageAgent::setEmulatedMedia):
(WebCore::InspectorPageAgent::applyEmulatedMedia):
* inspector/InspectorResourceAgent.cpp:
(ResourceAgentState):
(WebCore::InspectorResourceAgent::restore):
(WebCore::InspectorResourceAgent::~InspectorResourceAgent):
(WebCore::InspectorResourceAgent::enable):
(WebCore::InspectorResourceAgent::disable):
* inspector/InspectorState.cpp:
(WebCore::InspectorState::InspectorState):
(WebCore::InspectorState::loadFromCookie):
(WebCore):
(WebCore::InspectorState::mute):
(WebCore::InspectorState::unmute):
(WebCore::InspectorState::updateCookie):
(WebCore::InspectorState::remove):
* inspector/InspectorState.h:
(WebCore):
(InspectorState):
(WebCore::InspectorState::setLong):
* inspector/InspectorTimelineAgent.cpp:
(TimelineAgentState):
(WebCore::InspectorTimelineAgent::restore):
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::stop):
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
* inspector/WorkerInspectorController.h:
(WebCore):
(WorkerInspectorController):
2012-12-24 Peter Rybin <prybin@chromium.org>
Web Inspector: Keep LiveEdit API disabled when idle
https://bugs.webkit.org/show_bug.cgi?id=104039
Reviewed by Pavel Feldman.
Guards are added to LiveEdit call
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::setScriptSource):
2012-12-24 Andrey Lushnikov <lushnikov@chromium.com>
Web Inspector: refactor TextEditorHighlighter's highlight attributes to dense array
https://bugs.webkit.org/show_bug.cgi?id=105626
Reviewed by Pavel Feldman.
Refactor highlight attributes from sparse array to dense array.
No new tests: no behaviour changes, coverage provided by existing tests.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._paintLine):
(WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
* inspector/front-end/TextEditorHighlighter.js:
(WebInspector.TextEditorHighlighter.prototype._highlightLines):
2012-12-21 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Make use of the new InspectorState::remove() in inspector agents
https://bugs.webkit.org/show_bug.cgi?id=105438
Reviewed by Yury Semikhatsky.
This patch introduces the following refactorings:
- setting property values of InspectorState to "empty" objects has been replaced by removing them from the state;
- InspectorState instance is no longer shared across agents, so that the property names can no longer clash.
Instead, InspectorCompositeState creates and owns InspectorState instances for every agent;
- agent-specific prefix has been stripped from most property names, where it looked synthetic.
- updateCookie() is called from InspectorState::remove().
No new tests, as there is no visible change in the behavior.
* inspector/InspectorAgent.cpp: Agent-specific property name prefix stripped.
* inspector/InspectorApplicationCacheAgent.cpp: Ditto.
* inspector/InspectorCSSAgent.cpp: Ditto.
* inspector/InspectorCanvasAgent.cpp: Ditto.
* inspector/InspectorController.cpp: Make use of InspectorCompositeState rather than InspectorState.
* inspector/InspectorController.h: Ditto.
* inspector/InspectorDOMStorageAgent.cpp: Agent-specific property name prefix stripped.
* inspector/InspectorDatabaseAgent.cpp: Ditto.
* inspector/InspectorDebuggerAgent.cpp: Ditto.
(WebCore::InspectorDebuggerAgent::disable):
Use "remove" instead of setting an empty object.
* inspector/InspectorFileSystemAgent.cpp: Agent-specific property name prefix stripped.
* inspector/InspectorIndexedDBAgent.cpp: Ditto.
* inspector/InspectorLayerTreeAgent.cpp: Ditto.
* inspector/InspectorPageAgent.cpp: Ditto.
(WebCore::InspectorPageAgent::disable):
Use "remove" instead of setting empty values for certain properties.
(WebCore::InspectorPageAgent::addScriptToEvaluateOnLoad):
Remove unnecessary code (object is created and put into the map if none is found).
* inspector/InspectorResourceAgent.cpp: Agent-specific property name prefix stripped.
(WebCore::InspectorResourceAgent::disable):
Use "remove" instead of setting an empty object for userAgentOverride.
* inspector/InspectorState.cpp: Add InspectorCompositeState.
(WebCore::InspectorState::setFromCookie): Gets invoked from InspectorCompositeState::loadFromCookie().
(WebCore::InspectorState::updateCookie): Call updateCookie().
(WebCore::InspectorCompositeState::createAgentState): Creates an InspectorState instance to be passed to an agent.
* inspector/InspectorState.h: Add InspectorCompositeState.
(WebCore::InspectorState::setLong): Fix cast.
* inspector/InspectorTimelineAgent.cpp: Agent-specific property name prefix stripped.
* inspector/WorkerInspectorController.cpp: Make use of InspectorCompositeState rather than InspectorState.
* inspector/WorkerInspectorController.h: Ditto.
2012-12-23 Dimitri Glazkov <dglazkov@chromium.org>
Split fast-rejection filter logic off SelectorChecker.
https://bugs.webkit.org/show_bug.cgi?id=105660
The awesome Bloom filter and parent stack logic don't need to be in SelectorChecker. They nicely factor out
into their own pretty thing, named thereby SelectorFilter.
Reviewed by Eric Seidel.
No change in functionality, covered by existing tests.
* CMakeLists.txt: Added SelectorFilter to build systems.
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* css/CSSAllInOne.cpp: Ditto.
* css/RuleSet.cpp: Changed to use SelectorFilter.
(WebCore::RuleData::RuleData): Ditto.
* css/SelectorChecker.cpp: Ditto.
* css/SelectorChecker.h: Ditto.
(SelectorChecker):
* css/StyleResolver.cpp: Ditto.
(WebCore):
(WebCore::StyleResolver::pushParentElement): Ditto.
(WebCore::StyleResolver::popParentElement): Ditto.
(WebCore::StyleResolver::collectMatchingRulesForList): Ditto.
* css/StyleResolver.h:
(StyleResolver): Ditto.
2012-12-23 Qiankun Miao <qiankun.miao@intel.com>
Remove unused reference to "class LayerChromium"
https://bugs.webkit.org/show_bug.cgi?id=105502
Reviewed by Kentaro Hara.
class LayerChromium doesn't exist any more. Just remove the unused
code.
* platform/graphics/chromium/Canvas2DLayerBridge.h:
2012-12-23 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/12808377> Network process should respect cookie accept policy
https://bugs.webkit.org/show_bug.cgi?id=105684
Reviewed by Sam Weinig.
Changed cookie change observer to not use platform strategies, to make it usable
in NetworkProcess. startObservingCookieChanges() now just takes a callback pointer.
* WebCore.exp.in:
* platform/CookiesStrategy.h:
* platform/network/CookieStorage.h:
* platform/network/cf/CookieStorageCFNet.cpp:
(WebCore::notifyCookiesChangedOnMainThread):
(WebCore::startObservingCookieChanges):
* platform/network/mac/CookieStorageMac.mm:
(-[WebCookieStorageObjCAdapter notifyCookiesChangedOnMainThread]):
(-[WebCookieStorageObjCAdapter startListeningForCookieChangeNotificationsWithCallback:]):
(WebCore::startObservingCookieChanges):
2012-12-23 Tony Chang <tony@chromium.org>
[Qt][Mac] Unreviewed fix the build after r138413
https://bugs.webkit.org/show_bug.cgi?id=105686
Don't use a temporary const reference so the compiler doesn't make a copy.
An example compile error (clang):
Source/WebCore/loader/CookieJar.cpp:73:67: error: copying parameter of type 'WebCore::NetworkStorageSession' invokes deleted constructor
return platformStrategies()->cookiesStrategy()->cookiesForDOM(SESSION(document), document->firstPartyForCookies(), url);
* loader/CookieJar.cpp:
(WebCore::cookies):
(WebCore::setCookies):
(WebCore::cookiesEnabled):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::getRawCookies):
(WebCore::deleteCookie):
2012-12-22 Alexey Proskuryakov <ap@apple.com>
Add a separate class for networking related storage
https://bugs.webkit.org/show_bug.cgi?id=105676
Reviewed by Sam Weinig.
NetworkingContext combines a reference to storage (cookies and more) and data that's
only meaningful when loading. This makes it very ugly to use for cookie manipulation
when there is no load (e.g. for document.cookie).
Adding NetworkStorageSession, which encorportes network-related sesion data, such
as cookies and session HTTP credentials.
For some ports, refactoring is not finished, NetworkStorageSession being a wrapper
for NetworkingContext.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Updated for new files and functions.
* platform/network/PlatformCookieJar.h:
* loader/CookieJar.cpp:
* platform/CookiesStrategy.h:
* platform/network/cf/CookieJarCFNet.cpp:
* platform/network/chromium/CookieJarChromium.cpp:
* platform/network/curl/CookieJarCurl.cpp:
* platform/network/mac/CookieJarMac.mm:
* platform/network/qt/CookieJarQt.cpp:
* platform/network/soup/CookieJarSoup.cpp:
* platform/network/win/CookieJarWin.cpp:
PlatformCookieJar and strategy cookie functions now take a NetworkStorageSession
instead of NetworkingContext.
Note that they take a const reference to support creating a temporary session
wrapper for ports that just wrap a NetworkingContext.
* loader/ResourceLoader.cpp:
* loader/cache/CachedResource.h:
* platform/network/BlobResourceHandle.cpp:
* platform/network/ResourceHandle.cpp:
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleInternal.h:
* platform/network/chromium/ResourceHandle.cpp:
* platform/network/curl/ResourceHandleCurl.cpp:
* platform/network/mac/ResourceHandleMac.mm:
* platform/network/qt/QNetworkReplyHandler.cpp:
* platform/network/soup/DNSSoup.cpp:
* platform/network/soup/ResourceHandleSoup.cpp:
* platform/network/win/ResourceHandleWin.cpp:
ResourceHandle no longer includes unneeded NetworkingContext.h and AuthenticationClient.h.
This avoids near-world rebuilds on any NetworkingContext change.
* platform/network/NetworkStorageSession.h: Added.
* platform/network/NetworkStorageSessionStub.cpp: Added.
* platform/network/cf/NetworkStorageSessionCFNet.cpp: Added.
Good new stuff. Stub version just wraps NetworkingContext for platforms that still
need to finish the refactoring.
* platform/network/NetworkingContext.h:
The context now has a NetworkStorageSession, and doesn't expose CFNet level objects directly.
* platform/network/cf/CookieStorageCFNet.cpp:
* platform/network/cf/CookieStorageCFNet.h: Removed.
We no longer have separate free functions to track storage, it's part of NetworkStorageSession now.
* platform/network/cf/ResourceHandleCFNet.cpp: Updated to use NetworkStorageSession.
* platform/network/mac/CookieStorageMac.mm: Dont include CookieStorageCFNet.h, it
was not needed.
2012-12-22 Nico Weber <thakis@chromium.org>
InlineTextBox: Remove potentially confusing "} if" pattern.
https://bugs.webkit.org/show_bug.cgi?id=105499
Reviewed by Ojan Vafai.
It's not clear to me on first look if this is intentional or missing
an "else" (and this pattern was used in just one other place in
webkit, which I've removed). It turns out no else is missing here,
this is checked by fast/text/justified-selection.html
* rendering/InlineTextBox.cpp:
(WebCore::paintTextWithShadows):
2012-12-21 Jan Keromnes <janx@linux.com>
Web Inspector: Update CodeMirror to stable
https://bugs.webkit.org/show_bug.cgi?id=105653
Reviewed by Pavel Feldman.
Fixes several minor issues, including throw scroll on mac.
* inspector/front-end/cm/codemirror.css:
(.cm-negative):
(.cm-positive):
(.CodeMirror-gutter):
(.cm-searching):
* inspector/front-end/cm/codemirror.js:
(window.CodeMirror):
(window.CodeMirror.):
* inspector/front-end/cm/css.js:
(.):
* inspector/front-end/cm/htmlmixed.js:
(.):
* inspector/front-end/cm/javascript.js:
(.):
* inspector/front-end/cm/xml.js:
2012-12-21 Elliott Sprehn <esprehn@chromium.org>
Replace documentFragmentIsShadowRoot with isTreeScope
https://bugs.webkit.org/show_bug.cgi?id=105345
Reviewed by Dimitri Glazkov.
We can replace documentFragmentIsShadowRoot with isTreeScope() which is
trival to detect by checking treeScope()->rootNode() == this. To do this
we must stop adopting ShadowRoots into the document when they're removed,
which was always wrong anyway as it meant that the TreeScope of a ShadowRoot
was no longer itself after it had been removed. It also meant that the
children of a ShadowRoot that was removed were no longer in it's tree scope
despite being descendants of it.
Making this simplification allows further simplication like
Node::containingShadowRoot can be made O(1) instead of O(k) where k is
the depth of the node.
No new tests, just refactoring.
* WebCore.exp.in:
* dom/DocumentFragment.h:
(DocumentFragment):
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::removeAllShadowRoots):
* dom/Node.cpp:
(WebCore::Node::setTreeScope):
(WebCore::Node::isTreeScope):
(WebCore):
* dom/Node.h:
(Node):
(WebCore::Node::isShadowRoot):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::~ShadowRoot):
* dom/ShadowRoot.h:
(ShadowRoot):
2012-12-21 Xianzhu Wang <wangxianzhu@chromium.org>
[Chromium-Android] Use harfbuzz-ng instead of harfbuzz-old on Android
https://bugs.webkit.org/show_bug.cgi?id=104410
Using harfbuzz-ng we can avoid many bugs of the obsolete harfbuzz-old.
Reviewed by Eric Seidel.
No new tests. No change of functionality. Existing tests should pass.
* WebCore.gyp/WebCore.gyp: Use harfbuzz-ng on Android.
2012-12-21 Joshua Bell <jsbell@chromium.org>
IndexedDB: Combine openConnection and openConnectionWithVersion
https://bugs.webkit.org/show_bug.cgi?id=105658
Reviewed by Tony Chang.
Combine the logic from these two methods. Mostly a refactor, but in the "pending calls"
case the behavior is slightly altered since the version and no-version queues were
previously separate, so the order changes. The new order matches the spec and FF/IE
behavior, and a test is added to verify this.
Chromium's webkit_unit_tests rely on a quirk to bypass the upgrade mechanism; the usage
is slightly altered and made more explicit, and requires a small amount of test-only code.
Test: storage/indexeddb/open-ordering.html
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create):
(WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
(WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::openConnection):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
(WebCore::IDBDatabaseBackendImpl::close):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::open):
2012-12-21 Brady Eidson <beidson@apple.com>
Update localizable strings as a followup to http://trac.webkit.org/changeset/138387
https://bugs.webkit.org/show_bug.cgi?id=105592
Rubberstamped by Alexey Proskuryakov.
* English.lproj/Localizable.strings: Added a new error string.
2012-12-21 Kenneth Russell <kbr@google.com>
Expose ArrayBufferView constructor on DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=105605
Reviewed by Sam Weinig.
Update IDL to track recent spec change exposing ArrayBufferView
constructor on DOMWindow for instanceof checks. There are no
constructors exposed in the Web IDL, however, so calling it via
operator new throws TypeError.
Test (updated): fast/canvas/webgl/array-unit-tests.html
* html/canvas/ArrayBufferView.idl:
Removed OmitConstructor attribute.
* page/DOMWindow.idl:
Exposed ArrayBufferView constructor function attribute.
2012-12-21 Brady Eidson <beidson@apple.com>
Remove ResourceLoadScheduler::addMainResourceLoad and all related code
<rdar://problem/12925275> and https://bugs.webkit.org/show_bug.cgi?id=105644
Reviewed by Alexey Proskuryakov.
Now that main resources loads are scheduled (bug 49246) we don't need this stuff anymore.
No new tests (No change in behavior).
* WebCore.exp.in:
* loader/ResourceLoadScheduler.cpp:
* loader/ResourceLoadScheduler.h:
2012-12-21 Viatcheslav Ostapenko <sl.ostapenko@samsung.com>
[WebGL][EFL][Qt] Transparent canvas composited non-transparent
https://bugs.webkit.org/show_bug.cgi?id=105325
Reviewed by Kenneth Rohde Christiansen.
glXPixmap is always created without alpha channel because 1st GLXFBConfig
in a list doesn't support transparency.
Use the same code that is used to find GLXFBConfig with alpha for window
creation in GraphicsSurfacePrivate::createPixmap(). Code is moved to
findFBConfigWithAlpha() method.
Covered by fast/canvas/webgl/webgl-composite-modes-repaint.html
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createPixmap):
(WebCore::GraphicsSurfacePrivate::findFBConfigWithAlpha):
(GraphicsSurfacePrivate):
2012-12-21 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, rolling out r138376.
http://trac.webkit.org/changeset/138376
https://bugs.webkit.org/show_bug.cgi?id=104995
Broke a bunch of tests on mac.
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::nodeName):
(WebCore):
* dom/ShadowRoot.h:
(ShadowRoot):
2012-12-21 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r138237.
http://trac.webkit.org/changeset/138237
https://bugs.webkit.org/show_bug.cgi?id=105637
Regresses web inspector's editor performance. (Requested by
pfeldman on #webkit).
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
(WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
(WebInspector.TextEditorMainChunk.prototype.expand):
2012-12-21 Ilya Tikhonovsky <loislo@chromium.org>
Various tests in media/track are intermittently crashing.
https://bugs.webkit.org/show_bug.cgi?id=105606
Reviewed by Eric Seidel.
The root of problem is the fact that we update tracks even if we are in process of deleting the document.
Media element can stop doing that if the document informed the element via ::stop that it is going away.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::endIgnoringTrackDisplayUpdateRequests):
2012-12-21 Alexei Svitkine <asvitkine@chromium.org>
[Chromium/Mac] Don't send an onclick event from a ctrl-click
https://bugs.webkit.org/show_bug.cgi?id=105554
Reviewed by Dimitri Glazkov.
Don't send the onclick event on a control click event (which
triggers the context menu on the Mac). This matches the
behaviour of the Apple Mac port, although the Apple port
does this by checking whether the context menu is visible
in WebPage::mouseEvent().
This is a fix for http://crbug.com/146143
Test: fast/events/controlclick-no-onclick.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseReleaseEvent):
2012-12-21 Shinya Kawanaka <shinyak@chromium.org>
Implement ShadowRoot::elementFromPoint
https://bugs.webkit.org/show_bug.cgi?id=104579
Reviewed by Dimitri Glazkov.
Move elementFromPoint and nodeFromPoint to TreeScope from Document so that ShadowRoot can call it.
In the elementFromPoint(), the element taken by nodeFromPoint is not in the same tree scope, its ancestor is returned.
Since nodeFromPoint does not return the shadow ancestor of the result node, I don't make it TreeScope method.
Test: fast/dom/shadow/elementfrompoint.html
* dom/Document.cpp:
(WebCore::Document::elementFromPoint): Code is shared with TreeScope.
(WebCore::Document::caretRangeFromPoint):
* dom/ShadowRoot.idl:
* dom/TreeScope.cpp:
(WebCore::nodeFromPoint): Moved from Document.cpp
(WebCore):
(WebCore::TreeScope::elementFromPoint):
* dom/TreeScope.h:
(WebCore):
(TreeScope):
2012-12-21 Kenneth Rohde Christiansen <kenneth@webkit.org>
[EFL][WK2] Never create WebCore scrollbars for EFL/WK2
https://bugs.webkit.org/show_bug.cgi?id=105632
Reviewed by Antonio Gomes.
For delegates scroll we must not use the scroll animator,
or similar as those depends on creating WebCore scrollbars.
Handle the wheel event manually for delegates scrolling.
* page/FrameView.cpp:
(WebCore::FrameView::wheelEvent):
2012-12-21 Shinya Kawanaka <shinyak@chromium.org>
[Shadow DOM]: ShadowRoot wrong nodeName attribute
https://bugs.webkit.org/show_bug.cgi?id=104995
Reviewed by Dimitri Glazkov.
According to the Shadow DOM spec, ShadowRoot.nodeName should return '#document-fragment' instead of '#shadow-root'.
We remove ShadowRoot::nodeName.
No new tests, covered by existing tests.
* dom/ShadowRoot.cpp:
* dom/ShadowRoot.h:
(ShadowRoot):
2012-12-21 Mihai Parparita <mihaip@chromium.org>
Slow performance with <select> with many options and size >= 2
https://bugs.webkit.org/show_bug.cgi?id=105483
Reviewed by Eric Seidel.
Avoids creating renderers for children of list <select>s that are not
<option> or <optgroup>. This is both more correct (no other browser
displays them) and provides a performance benefit (direct text children
of <select> would have O(N^2) behavior; this usually happened due to
whitespace between <option>...</option> tags).
Test: fast/forms/menulist-no-renderer-for-unexpected-children.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::childShouldCreateRenderer):
2012-12-21 Keishi Hattori <keishi@webkit.org>
Fix typing zero into multiple field input
https://bugs.webkit.org/show_bug.cgi?id=105501
Reviewed by Kent Tamura.
We have a couple of problems when handling zero in a multiple fields
element.
1. Typing '02' into a month field will set '12'.
2. Typing '0' into 12 hour hour field will set '12' and move to the
focus to the next field.
This change adds a type ahead buffer so we can handle these cases
properly. If the value in the type ahead buffer is valid we set it so a
change event will fire.
Added tests to *-multiple-fields-keyboard-events.html.
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore::DateTimeNumericFieldElement::didBlur): Clear the type ahead
buffer. handleKeyboardEvent() won't set the type ahead value if it is
not in range, so we set the value here.
(WebCore::DateTimeNumericFieldElement::handleKeyboardEvent):
(WebCore::DateTimeNumericFieldElement::setEmptyValue): Clear type ahead buffer.
(WebCore::DateTimeNumericFieldElement::setValueAsInteger):
(WebCore::DateTimeNumericFieldElement::stepDown): Clear type ahead buffer.
(WebCore::DateTimeNumericFieldElement::stepUp): Clear type ahead buffer.
(WebCore::DateTimeNumericFieldElement::typeAheadValue): Returns integer
value for the type ahead characters.
(WebCore):
(WebCore::DateTimeNumericFieldElement::visibleValue): If we have type
ahead characters, show that.
* html/shadow/DateTimeNumericFieldElement.h:
(DateTimeNumericFieldElement):
2012-12-21 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GStreamer] Buffering ranges are reported incorrectly with GStreamer 1.0
https://bugs.webkit.org/show_bug.cgi?id=105319
Reviewed by Philippe Normand.
We add the gPercentMax constant to select between 100 and
GST_FORMAT_PERCENT_MAX depending if we are compiling against
GStreamer 0.10 or 1.0 and we use that in the corresponding method.
Current tests should suffice.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::buffered): Added the use of
gPercentMax constant instead of 100 to have the different code
paths for GStreamer 0.10 and 1.0.
2012-12-21 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Cannot drop files/URLs on PDFPlugin
https://bugs.webkit.org/show_bug.cgi?id=105516
<rdar://problem/12729443>
Reviewed by Alexey Proskuryakov.
* page/DragController.cpp:
(WebCore::DragController::operationForLoad): If we drag over a PluginDocument, check if its PluginView
claims to support navigation resulting from a drag (only PDFPlugin will for now). If it does, allow the drag.
* plugins/PluginViewBase.h:
(WebCore::PluginViewBase::shouldAllowNavigationFromDrags): Add shouldAllowNavigationFromDrags.
2012-12-21 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r138338.
http://trac.webkit.org/changeset/138338
https://bugs.webkit.org/show_bug.cgi?id=105621
speculative rollout because fast/dom/shadow/content-element-
distributed-nodes.html is crashing on linux debug. (Requested
by loislo on #webkit).
* WebCore.exp.in:
* dom/DocumentFragment.h:
* dom/Node.cpp:
(WebCore::Node::documentFragmentIsShadowRoot):
(WebCore):
* dom/Node.h:
(Node):
(WebCore::Node::isShadowRoot):
* dom/ShadowRoot.h:
2012-12-21 Adam Bergkvist <adam.bergkvist@ericsson.com>
MediaStream API: Update the MediaStream constructor
https://bugs.webkit.org/show_bug.cgi?id=98416
Reviewed by Adam Barth.
Updated the MediaStream constructor to support the more general argument
list from the latest Media Capture and Streams specification:
http://dev.w3.org/2011/webrtc/editor/getusermedia.html
Added more test cases to existing tests.
* Modules/mediastream/MediaStream.cpp:
(WebCore::containsSource):
(WebCore):
(WebCore::processTrack):
(WebCore::createFromSourceVectors):
(WebCore::MediaStream::create):
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/MediaStream.idl:
2012-12-20 Ryosuke Niwa <rniwa@webkit.org>
More fix after r138348.
* platform/network/cf/SocketStreamHandleCFNet.cpp:
(WebCore::SocketStreamHandle::createStreams):
2012-12-20 Alexey Proskuryakov <ap@apple.com>
Disable Nagle algorithm on WebSocket implementation for CF.
https://bugs.webkit.org/show_bug.cgi?id=102079
Build fix. Disable the new code on Lion, _kCFStreamSocketSetNoDelay apparently
cannot be used on this OS version.
* platform/network/cf/SocketStreamHandleCFNet.cpp:
(WebCore::SocketStreamHandle::createStreams):
2012-12-20 KyungTae Kim <ktf.kim@samsung.com>
Fix build warnings related with gstreamer
https://bugs.webkit.org/show_bug.cgi?id=105614
Reviewed by Kentaro Hara.
The below functions have unused parameters.
Remove the parameter names to fix 'unused parameter' build warnings.
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::onGStreamerWavparsePadAddedCallback):
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::messageCallback):
(WebCore::onGStreamerDeinterleavePadAddedCallback):
(WebCore::onGStreamerDeinterleaveReadyCallback):
(WebCore::onGStreamerDecodebinPadAddedCallback):
2012-12-20 Takashi Toyoshima <toyoshim@chromium.org>
Disable Nagle algorithm on WebSocket implementation for CF.
https://bugs.webkit.org/show_bug.cgi?id=102079
Reviewed by Alexey Proskuryakov.
Set TCP_NODELAY on CFWriteStream for SocketStreamHandle to improve
communication latency. Combination of Nagle and delayed-ACK could
affect performance in some environment, e.g., over Wifi network.
* platform/network/cf/SocketStreamHandleCFNet.cpp:
(WebCore::SocketStreamHandle::createStreams):
2012-12-20 Huang Dongsung <luxtella@company100.net>
[WebGL][EFL][Qt][GTK] Jelly fishes leave trails on webgl canvas.
https://bugs.webkit.org/show_bug.cgi?id=105326
Reviewed by Noam Rosenthal.
Clear a drawing buffer after compositing if preserveDrawingBuffer is
false.
http://www.khronos.org/registry/webgl/specs/latest/#2.2
No new tests. Covered by existing webgl-preserve-drawing-buffer-repaint test.
* platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(GraphicsContext3DPrivate::copyToGraphicsSurface):
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
(WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
2012-12-20 Filip Pizlo <fpizlo@apple.com>
Create a variable name for a RAII scope so it doesn't die immediately.
Reviewed by Sam Weinig.
No new tests.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::textTrackAddCues):
(WebCore::HTMLMediaElement::textTrackRemoveCues):
(WebCore::HTMLMediaElement::removeTrack):
(WebCore::HTMLMediaElement::removeAllInbandTracks):
2012-12-20 Elliott Sprehn <esprehn@chromium.org>
Replace documentFragmentIsShadowRoot with isTreeScope
https://bugs.webkit.org/show_bug.cgi?id=105345
Reviewed by Dimitri Glazkov.
We can replace documentFragmentIsShadowRoot with isTreeScope() which is
trival to detect by checking treeScope()->rootNode() == this;
No new tests, just refactoring.
* WebCore.exp.in:
* dom/DocumentFragment.h:
(DocumentFragment):
* dom/Node.cpp:
(WebCore::Node::isTreeScope):
* dom/Node.h:
(Node):
(WebCore::Node::isShadowRoot):
* dom/ShadowRoot.h:
(ShadowRoot):
2012-12-20 Rik Cabanier <cabanier@adobe.com>
Add canvas blending modes using Core Graphics
https://bugs.webkit.org/show_bug.cgi?id=100070
Reviewed by Dirk Schulze.
globalCompositeOperation is extended so it takes blend modes as well as compositing operators.
This patch adds an implementation for the Core Graphics port.
Tests: fast/canvas/canvas-blend-image.html
fast/canvas/canvas-blend-solid.html
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setGlobalCompositeOperation): Passed blendMode to underlying layer.
(WebCore::CanvasRenderingContext2D::drawImage): Passed blendMode to underlying drawImage call.
(WebCore::CanvasRenderingContext2D::drawImageFromRect): Passed blendMode to platofrm layer.
* html/canvas/CanvasRenderingContext2D.h:
(CanvasRenderingContext2D): Eextended drawImage with new blendmode parameter.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation): Passed blendmode to Core Graphics API.
2012-12-20 KyungTae Kim <ktf.kim@samsung.com>
Percentage min/max width replaced element may incorrectly rendered
https://bugs.webkit.org/show_bug.cgi?id=105264
Reviewed by Tony Chang.
To make do not include percentage min width in preferred logical width calculation,
because we cannot resolve it for preferred width.
Test: fast/css/percent-min-width-img-src-change.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalWidth):
Modify includeMaxWidth parameter to shouldComputePreferred.
(WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth):
Modify includeMaxWidth parameter to shouldComputePreferred.
If shouldComputePreferred is ComputePreferred,
don't use minLogicalWidth or maxLogicalWidth if they are percent type.
* rendering/RenderBox.h:
(RenderBox):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeReplacedLogicalWidth):
Modify includeMaxWidth parameter to shouldComputePreferred.
(WebCore::RenderReplaced::computeMaxPreferredLogicalWidth):
Modify from set includeMaxWidth=false to set shouldComputePreferred=ComputePreferred.
* rendering/RenderReplaced.h:
(RenderReplaced):
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
Modify includeMaxWidth parameter to shouldComputePreferred.
* rendering/RenderSVGRoot.h:
(RenderSVGRoot):
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::computeReplacedLogicalWidth):
Modify includeMaxWidth parameter to shouldComputePreferred.
* rendering/RenderVideo.h:
(RenderVideo):
2012-12-20 Alexey Proskuryakov <ap@apple.com>
REGRESSION (r138191): Tests crash in ResourceRequest::setStorageSession
https://bugs.webkit.org/show_bug.cgi?id=105563
Reviewed by Brady Eidson.
Partially fixes crashing http/tests/appcache/main-resource-redirect.html
(but there is an unrelated regression affecting this test).
* platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::willSendRequest):
* platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::willSendRequest):
The client can make the object get destoryed, protect it to avoid accessing deleted memory.
2012-12-20 Viatcheslav Ostapenko <sl.ostapenko@samsung.com>
[EFL] [WebGL] [Wk2] Contents are not rendered properly.
https://bugs.webkit.org/show_bug.cgi?id=104664
Reviewed by Noam Rosenthal.
WebGL pages that render more than one frame are broken. Only 1st
frame comes to the UI side. All webgl repaint tests fail because
of this.
Specification of EXT_texture_from_pixmap extension here
http://www.opengl.org/registry/specs/EXT/texture_from_pixmap.txt
says, that:
"The contents of the texture after the drawable has been bound are defined
as the result of all rendering that has completed before the call to
glXBindTexImageEXT."
It means that in order to get updates for every frame glXBindTexImageEXT has
to be called on every frame update.
Covered by existing fast/canavs/webgl/*repaint tests.
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::isReceiver):
(WebCore::GraphicsSurface::platformSwapBuffers):
* platform/graphics/texmap/TextureMapperBackingStore.cpp:
(WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
2012-12-20 Ryuan Choi <ryuan.choi@samsung.com>
[EFL] Build break with latest EFL libraries.
https://bugs.webkit.org/show_bug.cgi?id=104827
Reviewed by Laszlo Gombos.
The eo EFL package is introduced and evas and ecore use it since 1.8.
While introducing Eo, EFL changed several structures of Evas and Ecore
from own specific class to Eo.
So, this patch adds FindEo and changes declaration of Evas, Evas_Object,
Ecore_Timer to build with latest EFL libraries.
* PlatformEfl.cmake: Includes eo EFL library.
* platform/Widget.h: Modified declaration of Evas and Evas_Object.
In addition, removed unnecessary declaration.
* platform/efl/EflScreenUtilities.h: Modified declaration of Evas.
* platform/efl/RenderThemeEfl.h: Removed unnecessary declaration.
* platform/graphics/Icon.h: Ditto.
* platform/graphics/Image.h: Modified declaration of Evas and Evas_Object.
2012-12-20 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r138270.
http://trac.webkit.org/changeset/138270
https://bugs.webkit.org/show_bug.cgi?id=105589
Many media tests are failing/crashing intermittently, often
pointing at WebCore::HTMLTrackElement::didCompleteLoad as
culprit (Requested by dino_ on #webkit).
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::textTrackModeChanged):
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::HTMLTrackElement):
(WebCore::HTMLTrackElement::insertedInto):
(WebCore::HTMLTrackElement::parseAttribute):
(WebCore::HTMLTrackElement::scheduleLoad):
(WebCore::HTMLTrackElement::textTrackModeChanged):
* html/HTMLTrackElement.h:
* html/track/TextTrack.cpp:
* html/track/TextTrack.h:
2012-12-20 Pratik Solanki <psolanki@apple.com>
Rename HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) to USE(NETWORK_CFDATA_ARRAY_CALLBACK)
https://bugs.webkit.org/show_bug.cgi?id=105578
Reviewed by Alexey Proskuryakov.
* loader/ResourceBuffer.cpp: Remove duplicate append() call that was under the wrong ifdef.
* loader/ResourceBuffer.h:
2012-12-20 Elliott Sprehn <esprehn@chromium.org>
RenderBlock hit testing should ignore PseudoElements
https://bugs.webkit.org/show_bug.cgi?id=105545
Reviewed by Eric Seidel.
Use nonPseudoNode() in hit testing code in RenderBlock and RenderBox so
that when clicking on the box generated by a pseudo element we never
generate a Position for the PseudoElement, but instead for the
generating node.
Test: fast/css-generated-content/block-and-box-hit-testing.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::positionForBox):
(WebCore::isEditingBoundary):
(WebCore::positionForPointRespectingEditingBoundaries):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::positionForPoint):
2012-12-20 Stephen Chenney <schenney@chromium.org>
SVG: <altglpyh> for a surrogate pair character in a ligature fails
https://bugs.webkit.org/show_bug.cgi?id=102969
Reviewed by Dirk Schulze.
There are two issues with SVG <altglyph> tags applied to surrogate
fonts, particularly when mixed with non-standard forms (arabic,
vertical, etc.).
First, there is an assertion that is invalid when an alt glyph is
substituted for the surrogate, because the text chunk that is consumed
by an alt glyph is the entire run, whereas we assert that a
surrogate's chunk is length 2 regardless. That assertion has been
removed.
Second, when an arabic character or some other characters requiring a
special form appears before the surrogate pair character inside the alt
glyph tag, we reject the alt glyph because it is not compatible with the form.
However, when we process the next character - the surrogate pair - we
do accept the alt glyph. This breaks all the indexes because we have
already consumed part of the run that is now considered the alt glyph.
Chaos ensues. This patch forces us to always accept alt glyph
characters (assuming we have some glyph to draw). This better matches
the intent of the spec - if someone specifies an alt glyph they are
explicitly stating which glyph they want used. We should not argue
with the content author.
Tests: svg/text/alt-glyph-for-surrogate-pair-expected.svg
svg/text/alt-glyph-for-surrogate-pair.svg
* rendering/svg/SVGTextLayoutEngine.cpp:
(WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath): Fix some poor code.
* rendering/svg/SVGTextMetricsBuilder.cpp:
(WebCore::SVGTextMetricsBuilder::advanceSimpleText): Remove an assert that is not always valid.
* svg/SVGFontData.cpp:
(WebCore::SVGFontData::applySVGGlyphSelection): Always return an altGlyph when found. Do not check it compatibility.
2012-12-20 Adam Klein <adamk@chromium.org>
Properly process <template> end tags when in TemplateContentsMode
https://bugs.webkit.org/show_bug.cgi?id=105556
Reviewed by Eric Seidel.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTag): Take care of the FIXME and just call
processTemplateEndTag() instead of incorrectly special-casing the end tag behavior in some cases.
2012-12-20 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][WebGL][Wk2] Replace HAVE(GLX) checks with USE(GLX)
https://bugs.webkit.org/show_bug.cgi?id=105431
Reviewed by Kenneth Rohde Christiansen.
This patch changes the check HAVE(GLX) to USE(GLX).
This would enable us to choose our preferred GL backend during build time.
This patch also adds an additional api to query the shared buffer handle.
Buffer handle is not same as gl surface and would depend on how the content is
backed up.
* platform/graphics/opengl/GLDefs.h:
(WebCore):
* platform/graphics/opengl/GLPlatformContext.cpp:
(WebCore::GLPlatformContext::createContext):
(WebCore::GLPlatformContext::createOffScreenContext):
(WebCore::GLPlatformContext::createCurrentContextWrapper):
* platform/graphics/opengl/GLPlatformSurface.cpp:
(WebCore::GLPlatformSurface::createOffscreenSurface):
(WebCore::GLPlatformSurface::createTransportSurface):
(WebCore::GLPlatformSurface::GLPlatformSurface):
(WebCore::GLPlatformSurface::handle):
(WebCore):
(WebCore::GLPlatformSurface::drawable):
* platform/graphics/opengl/GLPlatformSurface.h:
(GLPlatformSurface):
* platform/graphics/surfaces/glx/GLXContext.cpp:
* platform/graphics/surfaces/glx/GLXContext.h:
* platform/graphics/surfaces/glx/GLXSurface.cpp:
(WebCore::GLXTransportSurface::GLXTransportSurface):
(WebCore::GLXTransportSurface::destroy):
(WebCore::GLXPBuffer::initialize):
(WebCore::GLXPBuffer::freeResources):
* platform/graphics/surfaces/glx/GLXSurface.h:
* platform/graphics/surfaces/glx/GLXWindowResources.h:
* platform/graphics/surfaces/glx/X11WindowResources.cpp:
(WebCore::X11OffScreenWindow::X11OffScreenWindow):
(WebCore::X11OffScreenWindow::setGeometry):
(WebCore::X11OffScreenWindow::createOffscreenWindow):
(WebCore::X11OffScreenWindow::destroyWindow):
* platform/graphics/surfaces/glx/X11WindowResources.h:
(WebCore):
(DummySharedResources):
(WebCore::DummySharedResources::create):
(WebCore::DummySharedResources::nativeDisplay):
(WebCore::DummySharedResources::pBufferContextConfig):
(WebCore::DummySharedResources::surfaceContextConfig):
(WebCore::DummySharedResources::DummySharedResources):
(WebCore::DummySharedResources::~DummySharedResources):
2012-12-20 Emil A Eklund <eae@chromium.org>
[flexbox] Fix handling of very large flex grow/shrink values
https://bugs.webkit.org/show_bug.cgi?id=105579
Reviewed by Tony Chang.
Add isfinite to childSize calculation in RenderFlexibleBox::
resolveFlexibleLengths to avoid overflow.
Covered by css3/flexbox/flex-algorithm.html.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::resolveFlexibleLengths):
Check if value is finite before adding to childSize.
2012-12-20 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r138265.
http://trac.webkit.org/changeset/138265
https://bugs.webkit.org/show_bug.cgi?id=105586
Accidentally committed extra code that is not reviewed and
shouldn't go with this commit. (Requested by ostap on
#webkit).
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createPixmap):
(GraphicsSurfacePrivate):
(WebCore::GraphicsSurface::platformSwapBuffers):
* platform/graphics/texmap/TextureMapperBackingStore.cpp:
(WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
2012-12-20 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r133820?): SimplifyMarkupTest API test asserts
https://bugs.webkit.org/show_bug.cgi?id=105370
Reviewed by Simon Fraser.
The bug was caused by SimplifyMarkupCommand::doApply calling removeNodePreservingChildren on nodes
that have already been removed. We normally check this condition in pruneSubsequentAncestorsToRemove
but we weren't checking it when there were no ancestor to remove because we early exited in that case.
Fixed the bug by doing the early exit for when the node's parent had already been removed first.
Test: TestWebKitAPI/Tests/mac/SimplifyMarkup.mm
* editing/SimplifyMarkupCommand.cpp:
(WebCore::SimplifyMarkupCommand::doApply):
(WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove): Also removed an unused variable
nodeAfterHighestAncestorToRemove.
2012-12-20 Antti Koivisto <antti@apple.com>
Font description not synchronized correctly on orientation affecting property changes
https://bugs.webkit.org/show_bug.cgi?id=105533
Reviewed by Enrica Casucci.
In StyleResolver checkForOrientationChange() function checks if the new computed orientation differs from the parent
orientation and updates the style's font description only if it does. This is not correct as equal values do not guarantee
the new font description is actually up to date. We can leave the function with the computed orientation and the font
description still out of sync.
Fix by bailing out fast only if the font description is already in sync.
No layout test yet, verified with a test app.
* css/StyleResolver.cpp:
(WebCore::checkForOrientationChange):
(WebCore::StyleResolver::updateFont):
2012-12-20 Ryan Sleevi <rsleevi@chromium.org>
window.crypto.getRandomValues should return the input ArrayBufferView
https://bugs.webkit.org/show_bug.cgi?id=104845
The W3C Web Crypto API FPWD, as well as the WHATWG February 2012 draft,
define crypto.getRandomValues() as returning the input ArrayBufferView,
to allow function call chaining. Update the implementation to match
the current spec, rather than the old spec of void/undefined.
Reviewed by Kentaro Hara.
Test: security/crypto-random-values-types.html
* GNUmakefile.list.am:
* Target.pri:
* UseJSC.cmake:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSCryptoCustom.cpp: Added.
(WebCore):
(WebCore::JSCrypto::getRandomValues):
Added custom getRandomValues implementation so that the input wrapped
ArrayBufferView can be returned directly to the caller. This is to
preserve the underlying type and indexing accessor for the TypedArray
subclass.
* bindings/v8/custom/V8CryptoCustom.cpp: Added.
(WebCore):
(WebCore::V8Crypto::getRandomValuesCallback):
Added custom getRandomValues implementation so that the input wrapped
ArrayBufferView can be returned directly to the caller. This is to
preserve the underlying type and indexing accessor for the TypedArray
subclass.
* page/Crypto.idl:
2012-12-20 Erik Arvidsson <arv@chromium.org>
CodeGen: Make [Reflect] use getIdAttribute and getNameAttribute
https://bugs.webkit.org/show_bug.cgi?id=105549
Reviewed by Andreas Kling.
Let the codegen use getIdAttribute and getNameAttribute when we know the attribute
is HTMLNames::idAttr or HTMLNames::nameAttr respectively. The more specialized functions
do not search for the attribute if it knows that the element does not have that attribute
speeding up the case where id or name are not present.
This improves Dromaeo/dom-attr by 5% and Bindings/undefined-id-getter by 2%
No new tests. No change in behavior
* bindings/scripts/CodeGenerator.pm:
2012-12-20 Erik Arvidsson <arv@chromium.org>
fastAttributeLookupAllowed: classAttr is only animatable by SVG styled elements
https://bugs.webkit.org/show_bug.cgi?id=105565
Reviewed by Eric Seidel.
When it comes to determining if we can use fastGetAttribute we should not penalize
all classAttr access just because some SVG styled elements does funky things with
className.
This makes classAttr considered animatable only for styled SVG elements.
No new tests. No change in behavior.
* bindings/scripts/CodeGenerator.pm:
* dom/Element.cpp:
* svg/SVGElement.cpp:
* svg/SVGElement.h:
2012-12-20 Huang Dongsung <luxtella@company100.net>
[TexMap] Remove ParentChange in TextureMapperLayer.
https://bugs.webkit.org/show_bug.cgi?id=105494
Reviewed by Noam Rosenthal.
ParentChange is useless, because ChildrenChange is enough. In addition,
GraphicsLayer uses setParent() method internally. This patch copies
GraphicsLayer::setChildren() into TextureMapperLayer::setChildren().
No new tests. Covered by existing tests.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore):
(WebCore::GraphicsLayerTextureMapper::setChildren):
Match the similar style of replaceChild().
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(GraphicsLayerTextureMapper):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
(WebCore::TextureMapperLayer::setChildren):
Copied from GraphicsLayer::setChildren().
(WebCore):
(WebCore::TextureMapperLayer::addChild):
Copied from GraphicsLayer::addChild().
(WebCore::TextureMapperLayer::removeFromParent):
Copied from GraphicsLayer::removeFromParent().
(WebCore::TextureMapperLayer::removeAllChildren):
Copied from GraphicsLayer::removeAllChildren().
* platform/graphics/texmap/TextureMapperLayer.h:
(TextureMapperLayer):
2012-12-20 Alec Flett <alecflett@chromium.org>
IndexedDB: Cursor and IndexWriter cleanup for refactor
https://bugs.webkit.org/show_bug.cgi?id=105449
Reviewed by Tony Chang.
This is a cleanup of some code to make the refactor that is coming
in https://bugs.webkit.org/show_bug.cgi?id=102741 cleaner. Some
CursorType assertions have been removed because the code will be
used in more generic circumstances in a future patch.
The previously-private IndexWriter has been pulled into
IDBObjectStoreBackendImpl and made to just use IDB*Metadata
so it can be reused later.
No new tests as this does not change the logic of executing code.
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
(WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
* Modules/indexeddb/IDBCursorBackendImpl.h:
(WebCore::IDBCursorBackendImpl::create):
(WebCore::IDBCursorBackendImpl::value):
(IDBCursorBackendImpl):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::create):
(WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::OpenIndexCursorOperation):
(IDBIndexBackendImpl::OpenIndexCursorOperation):
(WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::perform):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::IndexWriter::verifyIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::IndexWriter::writeIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::IndexWriter::addingKeyAllowed):
(WebCore::IDBObjectStoreBackendImpl::makeIndexWriters):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(IndexWriter):
(WebCore::IDBObjectStoreBackendImpl::IndexWriter::IndexWriter):
(IDBObjectStoreBackendImpl):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::setCursorDetails):
(WebCore::IDBRequest::setResultCursor):
(WebCore::IDBRequest::onSuccess):
* Modules/indexeddb/IDBRequest.h:
(IDBRequest):
2012-12-20 Alexey Proskuryakov <ap@apple.com>
REGRESSION (r138191): Tests fail in ResourceRequest::setStorageSession
https://bugs.webkit.org/show_bug.cgi?id=105563
Reviewed by Sam Weinig.
* platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::willSendRequest):
* platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::willSendRequest):
Don't try to appky a session if client canceled the request by setting it ot a null one.
* platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::setStorageSession):
* platform/network/mac/ResourceRequestMac.mm: (WebCore::ResourceRequest::setStorageSession):
Update platform request, so that the session does not get lost once it's updated later.
2012-12-20 Nate Chapin <japhet@chromium.org>
Rename shouldBufferData to dataBufferingPolicy
https://bugs.webkit.org/show_bug.cgi?id=105450
Reviewed by Alexey Proskuryakov.
No new tests, simple rename.
* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::appendBytes):
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::didReceiveData):
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadRequest):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::setDataBufferingPolicy):
* loader/MainResourceLoader.h:
(MainResourceLoader):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::setDataBufferingPolicy):
(WebCore::ResourceLoader::addData):
(WebCore::ResourceLoader::willStopBufferingData):
* loader/ResourceLoader.h:
(ResourceLoader):
* loader/ResourceLoaderOptions.h:
(WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
(ResourceLoaderOptions):
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::data):
(WebCore::CachedRawResource::setDataBufferingPolicy):
(WebCore::CachedRawResource::canReuse):
* loader/cache/CachedRawResource.h:
(CachedRawResource):
* loader/cache/CachedResource.h:
(WebCore::CachedResource::dataBufferingPolicy):
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::didReceiveDataArray):
* page/EventSource.cpp:
(WebCore::EventSource::connect):
2012-12-19 Dean Jackson <dino@apple.com>
Track menu in wrong location when fullscreen
https://bugs.webkit.org/show_bug.cgi?id=105234
Reviewed by Eric Carlson.
Add a rule to position the captions menu in the correct location
when the <video> is fullscreen. Also a drive-by removal of unnecessary
CSS selectors, and changing an encoded PNG into an SVG.
* css/fullscreenQuickTime.css:
(video:-webkit-full-screen::-webkit-media-controls-closed-captions-container): Add a rule to position
the menu when in fullscreen.
* css/mediaControlsQuickTime.css: Remove the unnecessary <audio> selectors.
(video::-webkit-media-controls-toggle-closed-captions-button):
(video::-webkit-media-controls-closed-captions-container):
(video::-webkit-media-controls-closed-captions-track-list):
2012-12-19 Dean Jackson <dino@apple.com>
Follow WebVTT line breaking rules
https://bugs.webkit.org/show_bug.cgi?id=105496
Reviewed by Eric Carlson.
WebVTT requires that captions never overflow their containers. In other
words, that it is ok to break within words rather than hide content.
Implement this by using CSS's word-break property.
Test: media/track/track-word-breaking.html
* css/mediaControls.css:
(video::-webkit-media-text-track-container): Add word-break.
* css/mediaControlsQuickTime.css: Drive-by cleanup to make sure selection doesn't happen.
(audio::-webkit-media-controls-closed-captions-container, video::-webkit-media-controls-closed-captions-container):
(audio::-webkit-media-controls-closed-captions-track-list, video::-webkit-media-controls-closed-captions-track-list):
2012-12-20 James Simonsen <simonjam@chromium.org>
[Resource Timing] 304 responses should show up in the timing buffer
https://bugs.webkit.org/show_bug.cgi?id=105490
Reviewed by Tony Gentilcore.
Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_cached.html
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::loadDone):
2012-12-19 Simon Fraser <simon.fraser@apple.com>
Lots of sticky tests failing in WK2
https://bugs.webkit.org/show_bug.cgi?id=105464
Reviewed by Brady Eidson.
Fixing this bug altered the timing of InternalSettings::Backup()
and restoreTo(), such that 'canStartMedia' on Page would get saved as false,
and then restored as false, which breaks all media tests.
'canStartMedia' is set to false initially by the WebPage constructor, and is also
set to false when the WKView leaves the window, so treating it like other Settings
that can be saved and restored is unreliable, as seen here. It's easier and simpler
to just always reset it to 'true' between tests.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::InternalSettings):
(WebCore::InternalSettings::reset):
* testing/InternalSettings.h:
(Backup):
2012-12-20 Erik Arvidsson <arv@chromium.org>
REGRESSION(r138263): Don't use fastGetAttribute for HTMLNames::classAttr because it breaks on SVGElement
https://bugs.webkit.org/show_bug.cgi?id=105555
Reviewed by Tony Chang.
The code generated generated code that uses fastGetAttribute for the className WebIDL attribute getter.
However, this attribute is animatable in SVG so we cannot use the fast function for it.
No new tests. The assert is no longer hit.
* bindings/scripts/CodeGenerator.pm:
2012-12-20 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add API to set a TLS errors policy to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=104482
Reviewed by Martin Robinson.
* platform/network/soup/ResourceError.h:
(WebCore::ResourceError::setTLSErrors): Set the TLS error flags.
(WebCore::ResourceError::setCertificate): Set the certificate.
* platform/network/soup/ResourceErrorSoup.cpp:
(WebCore::ResourceError::tlsError): Set the given TLS errors and
certificate to the ResourceError.
(WebCore::ResourceError::platformCopy): Copy also the TLS errors
and the certificate.
(WebCore::ResourceError::platformCompare): Compare also the TLS
errors.
2012-12-20 Antoine Quint <graouts@apple.com>
onload callback for <track> element attached to <video> does not fire
https://bugs.webkit.org/show_bug.cgi?id=103258
Reviewed by Eric Carlson.
We now correctly implement the track processing model per the latest spec at
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#start-the-track-processing-model.
For a <track> to load, three conditions must be met:
1. it must have a non-empty src
2. it must have a mode other than "disabled" (the default)
3. it must have a parent media element
We used to only check if we were able to load upon setting the track's src,
whereas a change of any of those conditions should have done this, which this
patch now correctly implements.
We also correctly implement the load model asynchronously after step 4, per
the spec, hence the split of the code previously entirely contained in
HTMLTrackElement::scheduleLoad() in another method fired on a timer.
Test: media/track/track-element-load-event.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::textTrackModeChanged):
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::HTMLTrackElement):
(WebCore::HTMLTrackElement::insertedInto):
(WebCore::HTMLTrackElement::parseAttribute):
(WebCore::HTMLTrackElement::scheduleLoad):
(WebCore):
(WebCore::HTMLTrackElement::loadTimerFired):
(WebCore::HTMLTrackElement::textTrackModeChanged):
* html/HTMLTrackElement.h:
* html/track/TextTrack.cpp:
(WebCore::TextTrack::removeAllCues):
(WebCore):
* html/track/TextTrack.h:
(TextTrack):
2012-12-20 Joshua Bell <jsbell@chromium.org>
IndexedDB: Layout test showing delete database getting two blocked events
https://bugs.webkit.org/show_bug.cgi?id=92674
Reviewed by Tony Chang.
Match the steps specified behavior for deleteDatabase() in the spec: versionchange/blocked
events fire if necessary, then waits until a condition is satisfied before continuing with
the steps to delete the database. The bug was caused by retrying the full call again. Events
are also now sent out immediately when a "versionchange" transaction is running, rather
than entering a limbo state - again, the new behavior matches the spec more accurately.
Tests: storage/indexeddb/delete-in-upgradeneeded-close-in-open-success.html
storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange.html
storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange.html
storage/indexeddb/intversion-gated-on-delete.html
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::deleteDatabase): First half of the steps.
(WebCore):
(WebCore::IDBDatabaseBackendImpl::isDeleteDatabaseBlocked): Pull out condition test.
(WebCore::IDBDatabaseBackendImpl::deleteDatabaseFinal): Second half of the of steps.
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
2012-12-20 Viatcheslav Ostapenko <sl.ostapenko@samsung.com>
[EFL] [WebGL] [Wk2] Contents are not rendered properly.
https://bugs.webkit.org/show_bug.cgi?id=104664
Reviewed by Noam Rosenthal.
WebGL pages that render more than one frame are broken. Only 1st
frame comes to the UI side. All webgl repaint tests fail because
of this.
Specification of EXT_texture_from_pixmap extension here
http://www.opengl.org/registry/specs/EXT/texture_from_pixmap.txt
says, that:
"The contents of the texture after the drawable has been bound are defined
as the result of all rendering that has completed before the call to
glXBindTexImageEXT."
It means that in order to get updates for every frame glXBindTexImageEXT has
to be called on every frame update.
Covered by existing fast/canavs/webgl/*repaint tests.
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::isReceiver):
(WebCore::GraphicsSurface::platformSwapBuffers):
* platform/graphics/texmap/TextureMapperBackingStore.cpp:
(WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
2012-12-20 Erik Arvidsson <arv@chromium.org>
CodeGen: Make [Reflect] use fastGetAttribute and fastHasAttribute
https://bugs.webkit.org/show_bug.cgi?id=105540
Reviewed by Andreas Kling.
Currently the codegen generates code that use getAttribute and hasAttribute. We can use
fastGetAttribute and fastHasAttribute when we use a non SVG animated attribute and not
HTML::styleAttr.
This improves Bindings/id-getter by 16% and Dromaeo/dom-attr by 21%.
No new tests. No change in behavior.
* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/scripts/test/CPP/WebDOMTestObj.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
* bindings/scripts/test/V8/V8TestObj.cpp:
2012-12-20 Tiancheng Jiang <tijiang@rim.com>
[BlackBerry]Change fullscreen back button size
https://bugs.webkit.org/show_bug.cgi?id=105541
Reviewed by Rob Buis.
Internally Reviewed by John Griggs.
Resize fullscreen mode back button size to meet browser back button size.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore):
(WebCore::RenderThemeBlackBerry::paintMediaFullscreenButton):
2012-12-20 Dominic Mazzoni <dmazzoni@google.com>
AX: support clickPoint in DRT for chromium
https://bugs.webkit.org/show_bug.cgi?id=97359
Reviewed by Chris Fleizach.
When computing the accessible bounding box of an
SVG root, be sure to call a method that uses transforms,
otherwise an assertion fails.
Newly unskipped tests: accessibility/svg-bounds.html and
accessibility/svg-remote-element.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::boundingBoxRect):
2012-12-20 Carlos Garcia Campos <cgarcia@igalia.com>
[Qt]REGRESSION(r138222): It made fast/forms/number/number-spinbutton-click-in-iframe.html crash
https://bugs.webkit.org/show_bug.cgi?id=105529
Reviewed by Nate Chapin.
Make sure assignIdentifierToInitialRequest() and
dispatchWillSendRequest() are called before all other
notification callbacks for the substitute data.
Fixes a crash in fast/forms/number/number-spinbutton-click-in-iframe.html.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::load): Call
handleSubstituteDataLoadSoon() after assigning the substitute data
identifier.
2012-12-20 Kunihiko Sakamoto <ksakamoto@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Add minimum/maximum value to DateTimeEditElement::LayoutParameters
https://bugs.webkit.org/show_bug.cgi?id=105510
Reviewed by Kent Tamura.
Add two DateComponents fields, minimum and maximum, to DateTimeEditElement::LayoutParameters, replacing minimumYear and maximumYear.
They will be used to limit selectable values of month, day, etc.
No new tests. No behavior change.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp: Removed fullYear().
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType): Ditto.
* html/DateInputType.cpp:
(WebCore::DateInputType::setupLayoutParameters): Populates minimum/maximum.
* html/DateTimeInputType.cpp:
(WebCore::DateTimeInputType::setupLayoutParameters): Ditto.
* html/DateTimeLocalInputType.cpp:
(WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
* html/MonthInputType.cpp:
(WebCore::MonthInputType::setupLayoutParameters): Ditto.
* html/WeekInputType.cpp:
(WebCore::WeekInputType::setupLayoutParameters): Ditto.
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitField): Replace the usage of minimumYear/maximumYear with minimum/maximum DateComponents.
* html/shadow/DateTimeEditElement.h:
(LayoutParameters): Removed minimumYear, maximumYear, and undefinedYear(), and added minimum and maximum fields.
(WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
2012-12-20 Zan Dobersek <zandobersek@gmail.com>
[GTK] Remove the --enable-unstable-features configuration option
https://bugs.webkit.org/show_bug.cgi?id=105327
Reviewed by Martin Robinson.
Remove the ENABLE_UNSTABLE_FEATURES guards in various GNUmakefiles now that
the configuration option is removed.
No new tests - no new testable functionality.
* GNUmakefile.am: Remove the ENABLE_UNSTABLE_FEATURES guards in GNUmakefile.am
where they were used to override certain feature define values in case of a release build.
* GNUmakefile.features.am.in: Adjust the default value for the feature defines that were
previously overriden in release builds. This feature define list will eventually represent
feature status in release builds with overriding being done through build-webkit.
* bindings/gobject/GNUmakefile.am: Move the DOM bindings targets that were previously guarded
by the ENABLE_UNSTABLE_FEATURES guards to the common listing of the video-dependent DOM bindings.
2012-12-20 Florin Malita <fmalita@chromium.org>
Incorrect color space conversion for FEImage
https://bugs.webkit.org/show_bug.cgi?id=105437
Reviewed by Dirk Schulze.
When no color-interpolation-filters property is specified, SVG filters are assumed to
operate in LinearRGB color space (http://www.w3.org/TR/SVG/filters.html#FilterPrimitivesOverviewIntro).
Currently, FilterEffect relies on filters generating results in the same color space they
are requested to use (LinearRGB by default) - but this is not true for FEImage as its
result is always a DeviceRGB image buffer. Hence, in FEImage's case, the filter chain
performs an invalid LinearRGB->DeviceRGB conversion at the end (for an image buffer already
encoded in DeviceRGB).
This patch introduces a mechanism for filters to override the requested result color space
and updates FEImage to always mark its result as DeviceRGB. If a dependent filter requires
input in a different color space, FilterEffect::apply() already handles the conversion.
No new tests - existing tests cover this extensively, after rebaseline.
* platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::transformResultColorSpace):
Minor cleanup: asImageBuffer() already handles this logic.
* platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::setResultColorSpace):
(FilterEffect):
New method for overriding the result color space.
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::apply):
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::postApplyResource):
Do not perform an explicit conversion in these places, as the result color space may be
different from the requested color space. Let FilterEffect::transformResultColorSpace()
figure it out.
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::platformApplySoftware):
FEImage results are always ColorSpaceDeviceRGB.
2012-12-20 Dominik Röttsches <dominik.rottsches@intel.com>
[EFL] MiniBrowser does not play Infinite Gangnam Style
https://bugs.webkit.org/show_bug.cgi?id=103531
Reviewed by Kenneth Rohde Christiansen.
Specifying additional define to avoid deprecation warning.
No new tests, compile time change which doesn't affect behavior.
* PlatformEfl.cmake:
2012-12-19 Simon Hausmann <simon.hausmann@digia.com>, Jedrzej Nowacki <jedrzej.nowacki@digia.com>
[Qt] JS bridge does not transmit QVariants anymore in Qt5
https://bugs.webkit.org/show_bug.cgi?id=104540
Reviewed by Kenneth Rohde Christiansen.
A data corruption exists in the QObject bridge when calling slots that
take a QVariant.
The calling convention for slots is that the void* parameter array must
contain pointers to the actually required destination argument type. If
a function takes an int for example, the corresponding entry in the
void* parameter array must be a pointer to an int that the moc
generated code then can "safely" cast to an int* and dereference.
Similarly if the function takes a QVariant it must be a pointer to a
QVariant.
We implement this calling convention by constructing QVariants of the
requested parameter types and passing the value of data() into the
void* parameter array. This works fine for all types except if the
requested type is a QVariant. In that case data() will _not_ return a
pointer that can later be safely casted to a QVariant pointer and
dereferenced. Instead we must use the address of our variant to ensure
a working cast.
Our auto tests cover this case, but they worked by accident because the
provided pointer when casted to a QVariant happens to have the correct
type id that doesn't produce the warning seen in the test case of the
provided example and the unit test just copies the QVariant and thus
pointer.
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtMethodMatchType::typeId): Replace string based meta
type id determination of QVariant with a quicker table lookup.
(JSC::Bindings::findMethodIndex): Remember the chosen (requested) types
and pass the pointer to the QVariant instead of its data() pointer if
requested.
(JSC::Bindings::QtRuntimeMethod::call): Fixed determination of whether
we need to convert a return value or not solely based on the return
type _specified_ in the meta method instead of the variant value
returned. The latter is not sufficient because a slot can return an
invalid variant, which is not the same as returning void. This was
triggered by an unit test that accidentally passed due to this memory
corruption in the first place.
2012-12-20 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: extract native heap graph representation into a separate file
https://bugs.webkit.org/show_bug.cgi?id=105524
Reviewed by Alexander Pavlov.
Moved native heap graph parser into NativeHeapGraph.js, renamed NativeHeapGraphNode to NativeHeapGraph.Node
and NativeHeapGraphEdge to NativeHeapGraph.Edge
Removed unused pie chart view.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution): fixed optional parameter handling
* WebCore.gypi:
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* inspector/compile-front-end.py:
* inspector/front-end/NativeHeapGraph.js: Added.
(WebInspector.NativeHeapGraph):
(WebInspector.NativeHeapGraph.prototype.rootNodes):
(WebInspector.NativeHeapGraph.prototype._calculateNodeEdgeIndexes):
(WebInspector.NativeHeapGraph.prototype._addDummyNode):
(WebInspector.NativeHeapGraph.Edge):
(WebInspector.NativeHeapGraph.Edge.prototype.type):
(WebInspector.NativeHeapGraph.Edge.prototype.name):
(WebInspector.NativeHeapGraph.Edge.prototype.target):
(WebInspector.NativeHeapGraph.Edge.prototype._getStringField):
(WebInspector.NativeHeapGraph.Edge.prototype.toString):
(WebInspector.NativeHeapGraph.Node):
(WebInspector.NativeHeapGraph.Node.prototype.id):
(WebInspector.NativeHeapGraph.Node.prototype.type):
(WebInspector.NativeHeapGraph.Node.prototype.size):
(WebInspector.NativeHeapGraph.Node.prototype.className):
(WebInspector.NativeHeapGraph.Node.prototype.name):
(WebInspector.NativeHeapGraph.Node.prototype.hasReferencedNodes):
(WebInspector.NativeHeapGraph.Node.prototype.referencedNodes):
(WebInspector.NativeHeapGraph.Node.prototype.outgoingEdges):
(WebInspector.NativeHeapGraph.Node.prototype.targetOfEdge):
(WebInspector.NativeHeapGraph.Node.prototype.targetsOfAllEdges):
(WebInspector.NativeHeapGraph.Node.prototype._firstEdgePoistion):
(WebInspector.NativeHeapGraph.Node.prototype._afterLastEdgePosition):
(WebInspector.NativeHeapGraph.Node.prototype._getStringField):
(WebInspector.NativeHeapGraph.Node.prototype.toString):
* inspector/front-end/NativeMemorySnapshotView.js:
* inspector/front-end/ProfilesPanel.js:
* inspector/front-end/WebKit.qrc:
2012-12-20 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Timeline: enhance short-records filter.
https://bugs.webkit.org/show_bug.cgi?id=101749
Reviewed by Pavel Feldman.
Currently filter could be "on" (accepting records longer than 15ms) or
"off" (accepting all records). Adding some options between 0ms and 15ms
will make this feature much more useful.
Additional changes:
- removed hardcoded size constant WebInspector.StatusBarComboBox.width
* English.lproj/localizedStrings.js: Added new / removed orphan strings.
* inspector/front-end/ProfilesPanel.js: Changed offset calculation.
* inspector/front-end/TimelineOverviewPane.js: Enhanced filter.
* inspector/front-end/TimelinePanel.js: Replaced button with combobox.
(WebInspector.TimelineIsLongFilter): Enhanced filter.
* inspector/front-end/TimelinePresentationModel.js:
Removed Record "isLong" method.
* inspector/front-end/timelinePanel.css: Removed orphan styles.
2012-12-20 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [CPU Profile] Idle time is always 0
https://bugs.webkit.org/show_bug.cgi?id=105509
Reviewed by Pavel Feldman.
Fix: pass correct profile object to method.
* inspector/front-end/CPUProfileView.js:
(WebInspector.CPUProfileView.profileCallback):
(WebInspector.CPUProfileView.prototype._injectIdleTimeNode):
2012-12-20 Andrey Lushnikov <lushnikov@chromium.com>
Web Inspector: fix |_repaintAll| behaviour of a DefaultTextEditor
https://bugs.webkit.org/show_bug.cgi?id=105429
Reviewed by Pavel Feldman.
Override |_repainAll| method in TextEditorMainPanel and manually
repaint visible chunks.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine): Call |_repaintAll| method because |expand()| does not do any repaints anymore.
(WebInspector.TextEditorChunkedPanel.prototype._repaintAll): Return |false| in case of fast return, and |true| otherwise.
(WebInspector.TextEditorMainPanel.prototype._repaintAll): Added.
(WebInspector.TextEditorMainChunk.prototype.expand): Remove painting operations.
2012-12-19 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: introduce Page.captureScreenshot
https://bugs.webkit.org/show_bug.cgi?id=105315
Reviewed by Yury Semikhatsky.
It will be primarily used by the automation clients, but maybe we find a good place
for it in the front-end as well.
* inspector/Inspector.json:
* inspector/InspectorClient.h:
(WebCore::InspectorClient::captureScreenshot):
(InspectorClient):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::captureScreenshot):
(WebCore):
* inspector/InspectorPageAgent.h:
2012-12-19 Carlos Garcia Campos <cgarcia@igalia.com>
Make order iterator member stack allocated in RenderFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=104366
Reviewed by Tony Chang.
It avoids a heap allocation during layout.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::OrderIterator::OrderIterator):
(WebCore::RenderFlexibleBox::OrderIterator::setOrderValues):
(WebCore::RenderFlexibleBox::OrderIterator::first):
(WebCore::RenderFlexibleBox::OrderIterator::next):
(WebCore::RenderFlexibleBox::OrderIterator::reset):
(WebCore::RenderFlexibleBox::RenderFlexibleBox):
(WebCore::RenderFlexibleBox::firstLineBoxBaseline):
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::appendChildFrameRects):
(WebCore::RenderFlexibleBox::repaintChildrenDuringLayoutIfMoved):
(WebCore::RenderFlexibleBox::paintChildren):
(WebCore::RenderFlexibleBox::layoutFlexItems):
(WebCore::RenderFlexibleBox::computeNextFlexLine):
(WebCore::RenderFlexibleBox::alignFlexLines):
(WebCore::RenderFlexibleBox::alignChildren):
(WebCore::RenderFlexibleBox::flipForRightToLeftColumn):
(WebCore::RenderFlexibleBox::flipForWrapReverse):
* rendering/RenderFlexibleBox.h:
(OrderIterator):
(WebCore::RenderFlexibleBox::OrderIterator::currentChild):
(RenderFlexibleBox):
2012-12-20 Huang Dongsung <luxtella@company100.net>
Remove GraphicsLayer::setGraphicsLayerFactory().
https://bugs.webkit.org/show_bug.cgi?id=105503
Reviewed by Kenneth Rohde Christiansen.
We don't need GraphicsLayer::setGraphicsLayerFactory() anymore. After r130302,
we have used a graphics layer factory explicitly.
No new tests. Refactoring only.
* platform/graphics/GraphicsLayer.cpp:
* platform/graphics/GraphicsLayer.h:
(GraphicsLayer):
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayer::create):
2012-12-20 Dominik Röttsches <dominik.rottsches@intel.com>
[WK2] WebAudio WKTR support
https://bugs.webkit.org/show_bug.cgi?id=95084
Reviewed by Kenneth Rohde Christiansen.
Mac build fixes for adding WebAudio WKTR support.
No new tests, enables audio testing using WebKitTestRunner.
* WebCore.exp.in: toUint8Array symbol exported.
* WebCore.xcodeproj/project.pbxproj: JSUint8Array.h and JSArrayBufferView.h headers made available as private headers.
2012-12-20 Patrick Gansterer <paroga@webkit.org>
Build fix for WinCE after r137534.
* inspector/InspectorInstrumentation.h:
(WebCore):
2012-12-19 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: deny access from injected script to nodes from document with another origin
https://bugs.webkit.org/show_bug.cgi?id=105423
Reviewed by Pavel Feldman.
Check that calling context can access the document inspected node belong to
before returning JS wrapper for the node.
Test: http/tests/inspector-protocol/access-inspected-object.html
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::inspectedObject):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::InjectedScriptHost::nodeAsScriptValue):
2012-12-19 Nico Weber <thakis@chromium.org>
Remove slighly confusing "} if" pattern
https://bugs.webkit.org/show_bug.cgi?id=105492
Reviewed by Andreas Kling.
ADVANCE_TO ends in a goto statement, so this doesn't change behavior.
* html/parser/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::nextToken):
2012-12-19 Mark Pilgrim <pilgrim@chromium.org>
[Chromium] Remove idbFactory from PlatformSupport
https://bugs.webkit.org/show_bug.cgi?id=105460
Reviewed by Darin Fisher.
Part of a larger refactoring series; see tracking bug 82948.
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* platform/chromium/PlatformSupport.h: Removed.
* storage/chromium: Removed.
* storage/chromium/IDBFactoryBackendInterface.cpp: Removed.
2012-12-19 Eric Carlson <eric.carlson@apple.com>
Crash in TextTrack::trackIndexRelativeToRenderedTracks()
https://bugs.webkit.org/show_bug.cgi?id=105371
Reviewed by Simon Fraser.
Add an RAII object to manage text track update blocking, use it to always process the
current cues to ensure that cues from a track that is deleted are removed from the
shadow DOM before the next layout.
No new tests, this fixes a crash in media/video-controls-captions-trackmenu.html.
* html/HTMLMediaElement.cpp:
(WebCore::TrackDisplayUpdateScope::TrackDisplayUpdateScope): New, call beginIgnoringTrackDisplayUpdateRequests.
(WebCore::TrackDisplayUpdateScope::~TrackDisplayUpdateScope): New, call endIgnoringTrackDisplayUpdateRequests.
(WebCore::HTMLMediaElement::beginIgnoringTrackDisplayUpdateRequests):
(WebCore::HTMLMediaElement::endIgnoringTrackDisplayUpdateRequests): Call updateActiveTextTrackCues
when the ignore count reaches zero.
(WebCore::HTMLMediaElement::textTrackAddCues): Use TrackDisplayUpdateScope instead of calling
beginIgnoringTrackDisplayUpdateRequests and endIgnoringTrackDisplayUpdateRequests directly.
(WebCore::HTMLMediaElement::textTrackRemoveCues): Ditto.
(WebCore::HTMLMediaElement::removeTrack): Ditto.
(WebCore::HTMLMediaElement::removeAllInbandTracks): Ditto.
(WebCore::HTMLMediaElement::didRemoveTrack): Ditto. Call removeTrack.
* html/HTMLMediaElement.h: Declare TrackDisplayUpdateScope as a friend of HTMLMediaElement so it
can call protected methods.
2012-12-19 Nate Chapin <japhet@chromium.org>
REGRESSION(r137607): resource load client callbacks are not called for the main resource when loading HTML string
https://bugs.webkit.org/show_bug.cgi?id=105330
Reviewed by Brady Eidson.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::responseReceived):
(WebCore::MainResourceLoader::dataReceived):
(WebCore::MainResourceLoader::didFinishLoading):
(WebCore::MainResourceLoader::load):
(WebCore::MainResourceLoader::identifier):
* loader/MainResourceLoader.h:
(MainResourceLoader):
2012-12-19 Cosmin Truta <ctruta@rim.com>
[BlackBerry] RSS reader mangles UTF-8
https://bugs.webkit.org/show_bug.cgi?id=105440
RIM PR 235099
Reviewed by Yong Li.
Reviewed internally by Liam Quinn.
The HTML string built from RSS parse data is encoded in UTF-8,
and it should not be converted to UTF-8 repeatedly.
* platform/network/blackberry/rss/RSSFilterStream.cpp:
(WebCore::RSSFilterStream::convertContentToHtml):
* platform/network/blackberry/rss/RSSGenerator.cpp:
(WebCore::RSSGenerator::generateHtml):
2012-12-19 Jon Lee <jonlee@apple.com>
Leak in StringImpl::createCFString()
https://bugs.webkit.org/show_bug.cgi?id=105485
<rdar://problem/12801963>
Reviewed by Anders Carlsson.
* platform/text/cf/StringImplCF.cpp:
(WTF::StringImpl::createCFString): Missing adoptCF()'s.
2012-12-19 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/12890242> [WK2 NetworkProcess] Client doesn't receive SSL certificates
https://bugs.webkit.org/show_bug.cgi?id=105467
Reviewed by Brady Eidson.
Implement a way to store certificate chain in ResourceResponse separately from
NSURLResponse. There is no way to re-add it to a deserialized NSURLResponse.
* WebCore.exp.in:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
* platform/network/cf/ResourceResponse.h:
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::setCertificateChain):
(WebCore::ResourceResponse::certificateChain):
2012-12-19 Gustavo Noronha Silva <gns@gnome.org>
Unreviewed. Add new strings to GTK+'s implementation of
LocalizedStrings, using glib's context-aware macro.
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore):
(WebCore::textTrackClosedCaptionsText):
(WebCore::textTrackSubtitlesText):
(WebCore::textTrackOffText):
(WebCore::textTrackNoLabelText):
2012-12-18 James Simonsen <simonjam@chromium.org>
Set the original resource's response even on a 304
https://bugs.webkit.org/show_bug.cgi?id=105373
Reviewed by Nate Chapin.
The existing setResponse was renamed to responseReceived to better reflect what it does. A new
setResponse was added that only sets the response. This is used in the 304 case.
No new tests. A new Resource Timing test will depend on this soon.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveResponse):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::responseReceived):
* loader/cache/CachedImage.h:
(CachedImage):
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::responseReceived):
* loader/cache/CachedRawResource.h:
(CachedRawResource):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::responseReceived):
* loader/cache/CachedResource.h:
(CachedResource):
(WebCore::CachedResource::setResponse):
2012-12-19 Emil A Eklund <eae@chromium.org>
[Regression] text-overflow ellipsis clips content when zoomed
https://bugs.webkit.org/show_bug.cgi?id=105456
Reviewed by Levi Weintraub.
At certain zoom levels text-overflow ellipsis incorrectly clips
content and displays the ellipsis even though the full content
would fit.
Test: fast/sub-pixel/ellipsis-zoom.html
* rendering/RenderBlock.h:
(WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine):
Add bug url to FIXME.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::checkLinesForTextOverflow):
Pixel snap the content edge before comparing with the line box
edge as the line box edge is aligned to a pixel boundary.
2012-12-19 Antti Koivisto <antti@apple.com>
Use ElementTraversal in LiveNodeListBase
https://bugs.webkit.org/show_bug.cgi?id=105324
Reviewed by Ryosuke Niwa.
Factor the code so that we get clean minimally branchy traversal functions for all the common cases.
This patch changes the more performance critical forward traversal only, backwards traversal is unaffected for now.
Instruments thinks it is a progression at least in DOM/DOMDivWalk.html. Bots should tell more.
* dom/ClassNodeList.cpp:
(WebCore::ClassNodeList::nodeMatches):
* dom/ClassNodeList.h:
(ClassNodeList):
(WebCore::ClassNodeList::create):
(WebCore):
(WebCore::ClassNodeList::nodeMatchesInlined):
Add inlined version of the matching function for class lists.
* dom/LiveNodeList.cpp:
(WebCore::LiveNodeListBase::rootContainerNode):
Root is always ContainerNode if the list has anything in it. Traversal functions are slightly more
efficient if we know we are operating on ContainerNodes.
(WebCore):
* dom/LiveNodeList.h:
(LiveNodeListBase):
(WebCore::LiveNodeListBase::shouldOnlyIncludeDirectChildren):
* dom/Node.cpp:
(WebCore::Node::getElementsByTagName):
* dom/TagNodeList.cpp:
(WebCore::TagNodeList::TagNodeList):
(WebCore::TagNodeList::~TagNodeList):
(WebCore::HTMLTagNodeList::HTMLTagNodeList):
(WebCore::HTMLTagNodeList::nodeMatches):
* dom/TagNodeList.h:
(WebCore):
(TagNodeList):
(WebCore::TagNodeList::create):
(HTMLTagNodeList):
(WebCore::HTMLTagNodeList::create):
Use separate ContainerType enum value for HTMLTagNodeList so we can tell it apart from TagNodeList.
(WebCore::HTMLTagNodeList::nodeMatchesInlined):
Add inlined version of the matching function for tag lists.
* html/CollectionType.h:
* html/HTMLCollection.cpp:
(WebCore::shouldOnlyIncludeDirectChildren):
(WebCore::rootTypeFromCollectionType):
(WebCore::invalidationTypeExcludingIdAndNameAttributes):
(WebCore):
(WebCore::isMatchingElement):
List type templated matching functions for common cases.
(WebCore::HTMLCollection::HTMLCollection):
(WebCore::HTMLCollection::create):
(WebCore::HTMLCollection::~HTMLCollection):
(WebCore::previousNode):
(WebCore::lastNode):
(WebCore::LiveNodeListBase::iterateForPreviousNode):
(WebCore::LiveNodeListBase::itemBefore):
Leave the backwards traversal unchanged for now but remove the forward traversal code.
(WebCore::firstMatchingElement):
(WebCore::nextMatchingElement):
(WebCore::firstMatchingChildElement):
(WebCore::nextMatchingChildElement):
(WebCore::traverseMatchingElementsForwardToOffset):
List type templated traversal functions with matching. Separate functions for first and subsequent elements
(WebCore::LiveNodeListBase::traverseChildNodeListForwardToOffset):
(WebCore::LiveNodeListBase::traverseLiveNodeListFirstElement):
(WebCore::LiveNodeListBase::traverseLiveNodeListForwardToOffset):
LiveNodeList traversal, picking the right template.
(WebCore::LiveNodeListBase::item):
(WebCore::LiveNodeListBase::itemBeforeOrAfterCachedItem):
Switch to new traversal functions.
(WebCore::HTMLCollection::traverseFirstElement):
(WebCore::HTMLCollection::traverseForwardToOffset):
(WebCore::HTMLCollection::traverseNextElement):
HTMLCollection traversal, picking the right template.
(WebCore::HTMLCollection::namedItem):
(WebCore::HTMLCollection::updateNameCache):
Switch to new traversal functions.
* html/HTMLCollection.h:
(HTMLCollection):
2012-12-19 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/12896478> Cannot log into gmail/facebook with NetworkProcess and private browsing enabled
https://bugs.webkit.org/show_bug.cgi?id=105454
Reviewed by Brady Eidson.
Request was using a wrong session after a redirect, because session cannot be
preserved over IPC.
Just set the storage session after calling the client, it is not really meaningful
for a client to change session behind WebKit's back.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::willSendRequest):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::willSendRequest):
2012-12-19 Alexis Menard <alexis@webkit.org>
Implement CSS parsing for CSS transitions unprefixed.
https://bugs.webkit.org/show_bug.cgi?id=104804
Reviewed by Dean Jackson.
Add support of an unprefixed version of CSS transitions modules by adding unprefixed versions
of each CSS properties. The work is protected behind the flag ENABLE_CSS_TRANSFORMS_ANIMATIONS_TRANSITIONS_UNPREFIXED
to cover the work of unprefixing Transforms, Animations and Transitions. It will let the possibility of each ports to turn it off
in their release branches until we're confident that these CSS properties are ready to be unprefixed.
Test: transitions/transitions-parsing.html
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
* GNUmakefile.features.am.in:
* css/CSSPropertyNames.in: alias the unprefixed versions to the prefixed versions.
2012-12-12 Antonio Gomes <a1.gomes@sisa.samsung.com>
Make RenderLayerCompositor::requiresCompositingForScrollableFrame scrollbars agnostic
https://bugs.webkit.org/show_bug.cgi?id=97903
Reviewed by Simon Fraser.
Some ports (including Qt-wk1 and BlackBerry) allow disabling
scrollbars at FrameView creation level. Regardless the scrollbars
presence though, their frame's content can still be scrolled as needed.
The said, checking for the scrollbars presence in order to determine
the scrollability of an inner frame is flaky, as done in RenderLayerCompositor::requiresCompositingForScrollableFrame.
Instead, the patch factors out part of the logic in
FrameView::updateScrollableAreaSet into a new ::isScrollable method.
The later can be used to check the scrollability of a given FrameView.
No new tests added, since there is no behavior change: ports like Chromium and others
who currently check for the scrollbars presence in order to determine
an inner frame scrollability should not be affected.
* page/FrameView.cpp:
(WebCore::FrameView::isScrollable):
(WebCore):
(WebCore::FrameView::updateScrollableAreaSet):
* page/FrameView.h:
(FrameView):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame):
2012-12-18 Roger Fong <roger_fong@apple.com>
Popup menu on Windows should fade in instead of sliding in.
https://bugs.webkit.org/show_bug.cgi?id=105358
<rdar://problem/7611211>
Reviewed by Timothy Horton.
Changing popup menu display animation to match what most other Windows applications do.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::show):
2012-12-19 Levi Weintraub <leviw@chromium.org>
Correct missing touch event handler de-registration for nested Documents and DOMWindows
https://bugs.webkit.org/show_bug.cgi?id=105384
Reviewed by James Robinson.
Correcting case by which a nested DOMWindow wouldn't clean up its event handler references
on its Document when removeAllEventListeners was called. Also, correctly propagating this
from a nested Document to its owner Document.
Updating fast/events/touch/touch-handler-count.html to catch this bug.
* dom/Document.cpp:
(WebCore::Document::didRemoveEventTargetNode):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::removeAllEventListeners):
2012-12-18 Simon Fraser <simon.fraser@apple.com>
Fix regression from r137923 that caused all tiles to paint when scrolling
https://bugs.webkit.org/show_bug.cgi?id=105394
Reviewed by Dean Jackson.
r137923 removed a 'continue' from the loop that ensures we have tile coverage,
but this caused us to issue repaints for all existing tiles.
Fix to 'continue' when the tile size is unchanged. Also remove 'primaryLayerCount'
which was unused.
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::revalidateTiles):
2012-12-19 Nate Chapin <japhet@chromium.org>
REGRESSION(r137607): PluginDocument loads consume huge amounts of memory
https://bugs.webkit.org/show_bug.cgi?id=105359
Reviewed by Alexey Proskuryakov.
No new tests, verified manually that http://www.scb.se/statistik/_publikationer/NR0001_2012K02_TI_A28TI1203.pdf
no longer consumes several GB of memory.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::setShouldBufferData): shouldBufferData is an enum, not a boolean, so this is reversed.
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::data): If the dataReceived() callback tells us to stop buffering data, be sure to
notify the ResourceLoader and clear the data buffer.
2012-12-19 Gavin Peters <gavinp@chromium.org>
[chromium] WebCore::Prerender::didStartPrerender depends on LinkLoader
https://bugs.webkit.org/show_bug.cgi?id=105290
Reviewed by Abhishek Arya.
The LinkLoader now removes itself from its prerender in time.
Tested in unit tests, PrerenderingTest.FastRemoveElement.
* loader/LinkLoader.cpp:
(WebCore::LinkLoader::~LinkLoader):
(WebCore::LinkLoader::released):
2012-12-19 Brian Salomon <bsalomon@google.com>
[Chromium/Skia] Check whether bitmap has pixels in image encoders
https://bugs.webkit.org/show_bug.cgi?id=105349
Reviewed by Stephen White.
This adds NULL checks to the JPEG, PNG, WEBP encoders.
Difficult to test as condition occurs when OOM.
* platform/image-encoders/skia/JPEGImageEncoder.cpp:
(WebCore::JPEGImageEncoder::encode):
* platform/image-encoders/skia/PNGImageEncoder.cpp:
(WebCore::PNGImageEncoder::encode):
* platform/image-encoders/skia/WEBPImageEncoder.cpp:
(WebCore::WEBPImageEncoder::encode):
2012-12-19 Arpita Bahuguna <arpitabahuguna@gmail.com>
Unable to place the caret at the end of the first line, when followed by a block, in the vertical writing mode.
https://bugs.webkit.org/show_bug.cgi?id=104794
Reviewed by Ryosuke Niwa.
In the vertical writing mode, when trying to place the caret at the end
of a text line which is followed by a block, the local point sent as
part of the hitTest result in the mouse click event is not correct.
When clicking on the empty region (beyond the text) in the first line,
the local point computed is not in accordance with the writing mode.
Test: editing/selection/caret-at-end-of-text-line-followed-by-block-in-vertical-mode.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::nodeAtPoint):
Modified the code to handle the point as per the writing mode when
computing the hitTest result. Calling flipForWritingMode() on the
point for achieving the same.
2012-12-19 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r138157.
http://trac.webkit.org/changeset/138157
https://bugs.webkit.org/show_bug.cgi?id=105439
Crashes with assertion failures in EFL debug build. (Requested
by drott on #webkit).
* platform/graphics/texmap/TextureMapperGL.cpp:
(SharedGLData):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawTextureWithAntialiasing):
(WebCore::keyForFilterType):
(WebCore::prepareFilterProgram):
(WebCore::TextureMapperGL::drawFiltered):
(WebCore::TextureMapperGL::beginClip):
* platform/graphics/texmap/TextureMapperShaderManager.cpp:
(WebCore):
(ShaderSpec):
(WebCore::ShaderSpec::ShaderSpec):
(WebCore::getShaderSpec):
(WebCore::TextureMapperShaderManager::getShaderProgram):
* platform/graphics/texmap/TextureMapperShaderManager.h:
(TextureMapperShaderProgram):
(TextureMapperShaderManager):
2012-12-19 Zan Dobersek <zandobersek@gmail.com>
[GTK] Enable Navigation Timing by default
https://bugs.webkit.org/show_bug.cgi?id=105322
Reviewed by Martin Robinson.
The Navigation Timing specification (of which implementation is guarder
by the ENABLE_WEB_TIMING feature define) has been promoted to the W3C Recommendation
status. Because of this we should enable it by default in the release builds of
the GTK port.
No new tests - they already exist and are in majority passing.
* GNUmakefile.am:
* bindings/gobject/GNUmakefile.am: Move the DOM bindings for interfaces related to this
feature out of the unstable features define guard and into the general list.
2012-12-19 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: default font on mac is Monaco (should do be Menlo)
https://bugs.webkit.org/show_bug.cgi?id=105435
Reviewed by Alexander Pavlov.
Regressed when I introduced mountain lion modifier in the inspector.css.
* inspector/front-end/inspector.css:
(body.platform-mac .monospace, body.platform-mac .source-code):
(body.platform-mac.platform-mac-tiger .source-code):
2012-12-19 Hayato Ito <hayato@chromium.org>
Expose WebKitShadowRoot constructor to DOMWindow.
https://bugs.webkit.org/show_bug.cgi?id=105385
Reviewed by Dimitri Glazkov.
This is a follow-up patch for r137870. WebKitShadowRoot
constructor should be in DOMWindow, just like all of the other
not-callable-constructors like HTMLDivElement, etc. We need it
for instanceof tests and so on.
Test: fast/dom/shadow/shadow-root-js-api.html
fast/js/global-constructors-expected.html
* page/DOMWindow.idl:
2012-12-19 Andrey Lushnikov <lushnikov@chromium.com>
Web Inspector: refactor DefaultTextEditor's |expanded| setters
https://bugs.webkit.org/show_bug.cgi?id=105415
Reviewed by Pavel Feldman.
Refactor |expanded| setters and getters into |collapse()|, |expand()|
and |expanded()| methods
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
(WebInspector.TextEditorChunkedPanel.prototype._expandChunks):
(WebInspector.TextEditorGutterPanel.prototype.textChanged):
(WebInspector.TextEditorGutterChunk.prototype.expanded): Added.
(WebInspector.TextEditorGutterChunk.prototype.collapse): Added.
(WebInspector.TextEditorGutterChunk.prototype.expand): Added.
(WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
(WebInspector.TextEditorMainPanel.prototype._updateHighlightsForRange):
(WebInspector.TextEditorMainChunk.prototype.expanded): Added.
(WebInspector.TextEditorMainChunk.prototype.collapse): Added.
(WebInspector.TextEditorMainChunk.prototype.expand): Added.
2012-12-19 Pan Deng <pan.deng@intel.com>
Web Inspector: Use Document* as argument in WebSocket Instrumentation.
https://bugs.webkit.org/show_bug.cgi?id=105279.
Reviewed by Pavel Feldman.
Some WebSocket instrumentation fuctions adopted ScriptExecutionContext* as argument, it is not clear that
their clients and implementations are all using Document*. This patch adopt Document* as argument, and
Document* could supply more information in future.
No functionality changed, no new tests.
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::didCreateWebSocket):
(WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
(WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
(WebCore::InspectorInstrumentation::didCloseWebSocket):
2012-12-19 Tim Volodine <timvolodine@chromium.org>
Text Autosizing: Work out what to do about form controls
https://bugs.webkit.org/show_bug.cgi?id=102560
Reviewed by Kenneth Rohde Christiansen.
Disallow autosizing of form input controls like buttons, text input fields, selection controls, radio buttons
and check boxes. This is a short term solution to avoid inconsistent autosizing of form controls (which is
worse than not autosizing at all).
Tests: fast/text-autosizing/form-controls-autosizing-button-input-elements.html
fast/text-autosizing/form-controls-autosizing-checkbox-input-element.html
fast/text-autosizing/form-controls-autosizing-radio-input-element.html
fast/text-autosizing/form-controls-autosizing-select-element.html
fast/text-autosizing/form-controls-autosizing-textfield-input-elements.html
* rendering/TextAutosizer.cpp:
(WebCore):
(WebCore::formInputTags):
(WebCore::TextAutosizer::isAutosizingContainer):
(WebCore::TextAutosizer::contentHeightIsConstrained):
(WebCore::TextAutosizer::containerShouldBeAutosized):
(WebCore::TextAutosizer::containerContainsOneOfTags):
* rendering/TextAutosizer.h:
2012-12-19 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Add Workspace.setFileContent() method
https://bugs.webkit.org/show_bug.cgi?id=105434
Reviewed by Pavel Feldman.
Added method that will be usedto save file system-based uiSourceCodes to the disk.
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype._commitContent):
* inspector/front-end/Workspace.js:
(WebInspector.WorkspaceProvider.prototype.setFileContent):
(WebInspector.Project.prototype.setFileContent):
2012-12-19 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Rename workspace path to uri.
https://bugs.webkit.org/show_bug.cgi?id=105433
Reviewed by Pavel Feldman.
URI should later become file unique id / address in workspace.
* inspector/front-end/NetworkWorkspaceProvider.js:
(WebInspector.NetworkWorkspaceProvider.prototype.requestFileContent):
(WebInspector.NetworkWorkspaceProvider.prototype.setFileContent):
(WebInspector.NetworkWorkspaceProvider.prototype.searchInFileContent):
(WebInspector.NetworkWorkspaceProvider.prototype.addFile):
(WebInspector.NetworkWorkspaceProvider.prototype.removeFile):
* inspector/front-end/Workspace.js:
(WebInspector.FileDescriptor):
(WebInspector.WorkspaceProvider.prototype.requestFileContent):
(WebInspector.WorkspaceProvider.prototype.searchInFileContent):
(WebInspector.Project.prototype._fileAdded):
(WebInspector.Project.prototype._fileRemoved):
(WebInspector.Project.prototype.requestFileContent):
(WebInspector.Project.prototype.searchInFileContent):
(WebInspector.Workspace.prototype.addTemporaryUISourceCode):
2012-12-14 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Refactor CSS[Keyword]Completions to augment property metadata
https://bugs.webkit.org/show_bug.cgi?id=105020
Reviewed by Pavel Feldman.
- CSSCompletions and CSSKeywordCompletions of WebInspector have been merged into CSSMetadata.
- Valid value keyword lists have been added or augmented for some properties.
- Some properties have been made inherited or color-aware.
* English.lproj/localizedStrings.js:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/CSSCompletions.js: Removed.
* inspector/front-end/CSSKeywordCompletions.js: Removed.
* inspector/front-end/CSSMetadata.js: Added.
(WebInspector.CSSMetadata):
(WebInspector.CSSMetadata.isColorAwareProperty):
(WebInspector.CSSMetadata.colors):
(WebInspector.CSSMetadata.valuesForProperty):
(WebInspector.CSSMetadata.descriptor):
(WebInspector.CSSMetadata.requestCSSShorthandData):
(WebInspector.CSSMetadata.cssPropertiesMetainfoKeySet):
(WebInspector.CSSMetadata.prototype.startsWith):
(WebInspector.CSSMetadata.prototype.mostUsedOf):
(WebInspector.CSSMetadata.prototype._firstIndexOfPrefix):
(WebInspector.CSSMetadata.prototype.keySet):
(WebInspector.CSSMetadata.prototype.next):
(WebInspector.CSSMetadata.prototype.previous):
(WebInspector.CSSMetadata.prototype._closest):
(WebInspector.CSSMetadata.prototype.longhands):
(WebInspector.CSSMetadata.prototype.shorthands):
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSStyleDeclaration.prototype.longhandProperties):
* inspector/front-end/SourceCSSTokenizer.js:
(WebInspector.SourceCSSTokenizer):
* inspector/front-end/SourceCSSTokenizer.re2js:
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.createExclamationMark):
(WebInspector.StylesSidebarPane.prototype._markUsedProperties):
(WebInspector.StylesSidebarPane.prototype._containsInherited):
(WebInspector.StylePropertiesSection.prototype.isPropertyInherited):
(WebInspector.StylePropertiesSection.prototype.isPropertyOverloaded):
(WebInspector.StylePropertiesSection.prototype.onpopulate):
(WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
(WebInspector.StylePropertyTreeElement.prototype):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
2012-12-19 No'am Rosenthal <noam@webkit.org>
[Texmap] Instead of having multiple shaders sources with lots of duplication, we should have one shader source with MACRO variants
https://bugs.webkit.org/show_bug.cgi?id=104815
Reviewed by Kenneth Rohde Christiansen.
Created templates for the vertex and fragment shaders, and added some MACROs in
TextureMapperShaderManager to allow GLSL precompiler-based configuration.
The template follows a pattern where the main function in the shader calls
applyFooBarIfNeeded(), while applyFooBar() is implemented. The Macros prepended to the template define whether applyIfNeeded resolves to the real function or to a noop.
In addition, made some small changes to the filter shaders so that they can use the same code as the normal shaders.
Covered by existing pixel/ref tests when run on Qt/EFL/GTK.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::TextureMapperGL::drawTextureWithAntialiasing):
(WebCore::optionsForFilterType):
(WebCore):
(WebCore::getPassesRequiredForFilter):
(WebCore::prepareFilterProgram):
(WebCore::TextureMapperGL::drawFiltered):
(WebCore::BitmapTextureGL::applyFilters):
Always draw using the drawQuad function, and use the new TextureMapperShaderManager::Options mask instead of the old ShaderKey.
* platform/graphics/texmap/TextureMapperShaderManager.cpp:
(WebCore):
(WebCore::getShaderSpec):
(WebCore::TextureMapperShaderManager::getShaderProgram):
* platform/graphics/texmap/TextureMapperShaderManager.h:
(TextureMapperShaderProgram):
(TextureMapperShaderManager):
2012-12-19 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Support removing several tabs from TabbedEditorContainer/TabbedPane at once.
https://bugs.webkit.org/show_bug.cgi?id=104881
Reviewed by Alexander Pavlov.
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
* inspector/front-end/TabbedEditorContainer.js:
(WebInspector.TabbedEditorContainer.prototype.removeUISourceCode):
* inspector/front-end/TabbedPane.js:
(WebInspector.TabbedPane.prototype.closeTab):
(WebInspector.TabbedPane.prototype.closeTabs):
2012-12-19 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: scripts to evaluate on load are not removed from inspector state when Page agent is disabled
https://bugs.webkit.org/show_bug.cgi?id=105422
Reviewed by Alexander Pavlov.
- reset scripts to evaluate on load when InspectorPageAgent is disabled.
- added InspectorState::remove();
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::disable):
* inspector/InspectorState.cpp:
(WebCore::InspectorState::remove):
(WebCore):
* inspector/InspectorState.h:
(InspectorState):
2012-12-19 Kunihiko Sakamoto <ksakamoto@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Make year field readonly if min and max have the same year
https://bugs.webkit.org/show_bug.cgi?id=105383
Reviewed by Kent Tamura.
Make year field readonly if min and max have the same year, and it does not have
value with different year.
Test: fast/forms/date-multiple-fields/date-multiple-fields-readonly-subfield.html
* css/html.css: Add CSS rule for the year field.
* html/shadow/DateTimeEditElement.cpp:
(DateTimeEditBuilder):
(WebCore::DateTimeEditBuilder::visitField): Make year-field readonly when appropriate.
(WebCore::DateTimeEditBuilder::shouldYearFieldReadOnly): Added.
2012-12-19 Max Feil <mfeil@rim.com>
[BlackBerry] Fix undesired re-entrant calls during media error dialog
https://bugs.webkit.org/show_bug.cgi?id=105398
Reviewed by Rob Buis.
A recent change in libwebview (PR194379) to the dialog
handling means that dialogs are not truly blocking anymore.
While the dialog is up, a sub-event loop is called. Therefore
the HTML5 media code will continue processing pps messages from
mm-renderer, responding to periodic timers, etc., all while a
media error dialog call higher up in the stack is waiting for
the user to respond. Unfortunately certain places in our code
do not anticipate being called in this re-entrant way.
This patch restores previous behaviour, covered by existing tests.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
2012-12-19 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [REGRESSION] The last remembered tab is not restored when the Settings dialog is opened
https://bugs.webkit.org/show_bug.cgi?id=105414
Reviewed by Vsevolod Vlasov.
Do not force the "General" tab when opening settings upon the Cog button click.
* inspector/front-end/SettingsScreen.js:
(WebInspector.SettingsController.prototype._mouseUp):
2012-12-19 Renata Hodovan <reni@webkit.org>
CSSParser crases, when no context is available, and the value is a valid keyword
https://bugs.webkit.org/show_bug.cgi?id=105275
Reviewed by Tony Chang.
ParserContext could be null even if the keyword is valid. We have to check it.
Test: fast/css/invalid-parsercontext-valid-keyword-crash.svg
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
2012-12-19 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][WebGL] Refactor GLXSurface.
https://bugs.webkit.org/show_bug.cgi?id=105357
Reviewed by Kenneth Rohde Christiansen.
This is in preparation for adding EGL support.
There is lot of X related code which could be shared between our current GLX implementation
and EGL. This patch makes it possible to share the common code but doesn't change any functionality.
* PlatformEfl.cmake:
* platform/graphics/surfaces/glx/GLXSurface.cpp:
(WebCore):
(WebCore::GLXTransportSurface::GLXTransportSurface):
(WebCore::GLXTransportSurface::configuration):
(WebCore::GLXTransportSurface::destroy):
(WebCore::GLXTransportSurface::freeResources):
(WebCore::GLXPBuffer::GLXPBuffer):
(WebCore::GLXPBuffer::initialize):
(WebCore::GLXPBuffer::configuration):
(WebCore::GLXPBuffer::setGeometry):
* platform/graphics/surfaces/glx/GLXSurface.h:
(GLXTransportSurface):
(GLXPBuffer):
GLX related implementation.
* platform/graphics/surfaces/glx/GLXWindowResources.h: Added.
(WebCore):
(SharedGLXResources):
(WebCore::SharedGLXResources::create):
(WebCore::SharedGLXResources::nativeDisplay):
(WebCore::SharedGLXResources::pBufferContextConfig):
(WebCore::SharedGLXResources::surfaceContextConfig):
(WebCore::SharedGLXResources::SharedGLXResources):
(WebCore::SharedGLXResources::createConfig):
Moving X related code to a seperate class.
* platform/graphics/surfaces/glx/X11WindowResources.cpp: Added.
(WebCore):
(WebCore::X11OffScreenWindow::X11OffScreenWindow):
(WebCore::X11OffScreenWindow::~X11OffScreenWindow):
(WebCore::X11OffScreenWindow::setGeometry):
(WebCore::X11OffScreenWindow::createOffscreenWindow):
* platform/graphics/surfaces/glx/X11WindowResources.h: Added.
(WebCore):
(SharedX11Resources):
(WebCore::SharedX11Resources::deref):
(WebCore::SharedX11Resources::x11Display):
(WebCore::SharedX11Resources::getXWindow):
(WebCore::SharedX11Resources::visualInfo):
(WebCore::SharedX11Resources::isXRenderExtensionSupported):
(WebCore::SharedX11Resources::SharedX11Resources):
(WebCore::SharedX11Resources::~SharedX11Resources):
(X11OffScreenWindow):
2012-12-19 Tommy Widenflycht <tommyw@chromium.org>
[JSC] Add support for overloaded constructors
https://bugs.webkit.org/show_bug.cgi?id=103226
Reviewed by Kentaro Hara.
This patch adds the same support for overloaded constructors to JSC as V8.
As proof of implementation soundness WebSockets custom constructor is removed.
Existing tests cover patch. As they should.
* GNUmakefile.list.am:
* Modules/websockets/WebSocket.idl:
* Target.pri:
* UseJSC.cmake:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSWebSocketCustom.cpp: Removed.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorDeclaration):
(GenerateConstructorDefinitions):
(GenerateOverloadedConstructorDefinition):
(GenerateConstructorDefinition):
(GenerateConstructorHelperMethods):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors1):
(WebCore):
(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors2):
(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors3):
(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors4):
(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
(JSTestOverloadedConstructorsConstructor):
2012-12-19 Seokju Kwon <seokju.kwon@gmail.com>
Pass debuggerTaskMode as a parameter in WorkerScriptDebugServer constructor
https://bugs.webkit.org/show_bug.cgi?id=105085
Reviewed by Yury Semikhatsky.
Leave WorkerDebuggerAgent::debuggerTaskMode
and remove WorkerScriptDebugServer::debuggerTaskMode.
No new tests, no behavior change.
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
* bindings/js/WorkerScriptDebugServer.h:
(WorkerScriptDebugServer):
* bindings/v8/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
(WebCore::WorkerScriptDebugServer::runMessageLoopOnPause):
* bindings/v8/WorkerScriptDebugServer.h:
(WorkerScriptDebugServer):
* inspector/WorkerDebuggerAgent.cpp:
(WebCore::WorkerDebuggerAgent::WorkerDebuggerAgent):
2012-12-19 Ilya Tikhonovsky <loislo@chromium.org>
Unreviewed, rolling out r138129.
http://trac.webkit.org/changeset/138129
https://bugs.webkit.org/show_bug.cgi?id=105399
reapply patch r138123. The problem was on chromium side at r173875.
* dom/Element.cpp:
(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):
* dom/Element.h:
(WebCore::Node::insertedInto):
(WebCore):
(WebCore::Node::removedFrom):
* dom/Node.cpp:
2012-12-19 Takashi Sakamoto <tasak@google.com>
[Shadow] TITLE elements in Shadow DOM should not affect document.title attribute
https://bugs.webkit.org/show_bug.cgi?id=85864
Reviewed by Ryosuke Niwa.
Modified HTMLTitleElement to check whether a title element is in a
shadow tree or not when it is inserted or removed. Now if a title
element has been just removed from or inserted into a shadow tree,
document.title is not updated independent of inDocument(). If the
title element is not in a shadow tree and in document,
document.title is updated.
Test: fast/dom/shadow/title-element-in-shadow.html
* html/HTMLTitleElement.cpp:
(WebCore::HTMLTitleElement::insertedInto):
Added a condition: isInShadowTree() to the code which checks
inDocument or not.
(WebCore::HTMLTitleElement::removedFrom):
Added a condition: insertionPoint.isInShadowTree() to the code which
checks an insertion point is in a document or not.
(WebCore::HTMLTitleElement::childrenChanged):
Added a condition: isInShadowTree() before setTitle.
If not isInShadowTree, modified to removeTitle from document.
2012-12-19 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r138123.
http://trac.webkit.org/changeset/138123
https://bugs.webkit.org/show_bug.cgi?id=105399
It broke compositing/visibility/visibility-simple-video-
layer.html (Requested by loislo on #webkit).
* dom/Element.cpp:
(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):
* dom/Element.h:
* dom/Node.cpp:
(WebCore::Node::insertedInto):
(WebCore):
(WebCore::Node::removedFrom):
2012-12-18 Shinya Kawanaka <shinyak@chromium.org>
ShadowRoot.getElementById() returns a deleted element
https://bugs.webkit.org/show_bug.cgi?id=105243
Reviewed by Dimitri Glazkov.
Only when the treeScope of an element and the treeScope of insertionPoint is the same in insertedInto or removedFrom,
we can call updatedId() etc. However, we didn't check it's same.
For removedFrom, since an element has been removed, treeScope() doesn't return the original treeScope but document()
every time.
This patch might hurt html5-full-render a bit: the result is here. The first 2 results are without this patch,
the last 2 results are with this patch.
Dromaeo/dom-modify [runs/s]
35.97, 36.09 --> 36.05, 35.69
Parser/html5-full-render [ms]
4156.58, 4166.09 --> 4155.22, 4216.38
Test: fast/dom/shadow/getelementbyid-shadow.html
* dom/Element.cpp:
(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):
* dom/Element.h:
(WebCore::Node::insertedInto): Moved from Node.cpp to make this inline.
(WebCore):
(WebCore::Node::removedFrom): ditto.
* dom/Node.cpp:
2012-12-18 Vivek Galatage <vivek.vg@samsung.com>
Web Inspector: AuditLauncherView UI components should be disabled until ongoing audit finishes
https://bugs.webkit.org/show_bug.cgi?id=105389
Reviewed by Alexander Pavlov.
While the Audit request is on-going, UI components on the AuditLauncherView are disabled
until the request is completed or explicitly stopped. Also changed the _categoriesElement
from div to fieldset and modified the associated CSS file accordingly.
No new tests as this is a UI change.
* inspector/front-end/AuditLauncherView.js:
(WebInspector.AuditLauncherView.prototype._setAuditRunning):
(WebInspector.AuditLauncherView.prototype._toggleUIComponents):
* inspector/front-end/auditsPanel.css:
(.audit-launcher-view fieldset.audit-categories-container):
2012-12-18 KyungTae Kim <ktf.kim@samsung.com>
[EFL] regression(r138071) Add mission functions for build fix
https://bugs.webkit.org/show_bug.cgi?id=105392
Unreviewed build fix.
r138071 add new functions to LocalizedStrings.cpp, but EFL port doesn't use them.
So, add those functions to LocalizedStringsEfl.cpp
* platform/efl/LocalizedStringsEfl.cpp:
(WebCore):
(WebCore::textTrackClosedCaptionsText):
(WebCore::textTrackSubtitlesText):
(WebCore::textTrackOffText):
(WebCore::textTrackNoLabelText):
2012-12-18 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Chromium] profiler - differentiate between native code (program) and idle time
https://bugs.webkit.org/show_bug.cgi?id=88446
Reviewed by Pavel Feldman.
Now idleTime is supplied in profile object. In this patch, idleTime,
if any, is subtracted from "(program)" node, and new node "(idle)" is
injected as a top level node to profile.
* inspector/front-end/CPUProfileView.js:
(WebInspector.CPUProfileView.profileCallback): Call _injectIdleTimeNode
if non-zero idleTime is specified.
(WebInspector.CPUProfileView.prototype._injectIdleTimeNode): Lookup for
"(program)" node, modify it, add "(idle)" node.
2012-12-18 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r138097.
http://trac.webkit.org/changeset/138097
https://bugs.webkit.org/show_bug.cgi?id=105386
multiple crashes on media tests (Requested by loislo on
#webkit).
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canPlayType):
(WebCore::createFileURLForApplicationCacheResource):
(WebCore::stringForNetworkState):
(WebCore::HTMLMediaElement::preload):
(WebCore::HTMLMediaElement::setLoop):
(WebCore::HTMLMediaElement::getPluginProxyParams):
2012-12-18 Julien Chaffraix <jchaffraix@webkit.org>
Free one bit in RenderObject
https://bugs.webkit.org/show_bug.cgi?id=105065
Reviewed by Simon Fraser.
This change uses the mutual exclusivity between the different position bits to pack
the information more efficiently. Because you can be only in one position at any point
in time, you only need to store 4 states in RenderObject (ie 2 bits of information) but
we were using 3 bits to store this information, thus losing one bit that I am reclaiming.
The change covers the 3 bits into a single PositionState. In order to avoid any extra branch
on the common code path, the logic was modified to be able to convert a EPosition to a PositionState
using only a bit mask. This also means that we now sets up and clears all the bits at once instead
of several calls, which matches more closely what happens at style change.
Change covered by existing tests.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::updateFromStyle):
Removed a call, superseed by the one in RenderBoxModelObject::updateFromStyle.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::updateFromStyle):
Changed to set the positioned bits in only one call to setPositionedState.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
Changed to clear all positioned bits at once.
* rendering/RenderScrollbarPart.cpp:
(WebCore::RenderScrollbarPart::styleDidChange):
Ditto, which was probably the intent anyway.
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
Changed to explicitly be AbsolutelyPositioned, not that it really matters as we only store
the out-of-flow information.
* rendering/RenderObject.h:
(WebCore::RenderObject::isOutOfFlowPositioned):
(WebCore::RenderObject::isInFlowPositioned):
(WebCore::RenderObject::isRelPositioned):
(WebCore::RenderObject::isStickyPositioned):
(WebCore::RenderObject::isPositioned):
(WebCore::RenderObject::clearPositionedState):
Updated after the renaming below.
(WebCore::RenderObject::setPositionState):
Ditto, but added an ASSERT to ensure that the out-of-flow bit is only set on boxes, to match
existing code.
* rendering/style/RenderStyleConstants.h:
Changed the values so that the conversion to PositionState is a simple bit mask, e.g
FixedPosition & 0x3 == AbsolutePosition as we only store the out-of-flow position information.
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
Introduced PositionState to hold the different bits.
(WebCore::RenderObject::RenderObjectBitfields::setPositionedState):
(WebCore::RenderObject::RenderObjectBitfields::clearPositionedState):
(WebCore::RenderObject::RenderObjectBitfields::isOutOfFlowPositioned):
(WebCore::RenderObject::RenderObjectBitfields::isRelPositioned):
(WebCore::RenderObject::RenderObjectBitfields::isStickyPositioned):
(WebCore::RenderObject::RenderObjectBitfields::isPositioned):
Re-implemented these getters / setters and renamed them to match our style while at it.
2012-12-18 Anton Vayvod <avayvod@chromium.org>
Text Autosizing: containers wider than their enclosing clusters should be autosized as separate clusters
https://bugs.webkit.org/show_bug.cgi?id=103627
Reviewed by Julien Chaffraix.
Some blocks of texts might be wider than their parent clusters and need to be autosized separately.
isAutosizingCluster() now checks for the width of the container being greater than the width of the lowest
common ancestor of the text nodes of the enclosing cluster. This block containing all text is passed to all
tree traversal methods.
An overloaded version is added for cases when we don't have the lowest common ancestor yet.
The change fixes several cases covered by existing tests.
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::processSubtree):
Calls processCluster with a new number of arguments.
(WebCore::TextAutosizer::processCluster):
Passes block containing all text nodes into processContainer. Assertion removed since it can no longer be
checked without passing an additional parameter (the parent block containing all text) to the function
for the sake of this assertion only.
(WebCore::TextAutosizer::processContainer):
|parentBlockContainingAllText| parameter passed into isAutosizingCluster.
(WebCore::TextAutosizer::isAutosizingCluster(const RenderBlock*, const RenderBlock*)):
The overloaded method that is used when the render block checked is already known to be an autosizing
container and there's full information necessary to determine if it's a cluster like the parent block
containing all text within the enclosing cluster.
Considers a block a cluster if it is wider than its parent block containing all text within enclosing
cluster.
(WebCore::TextAutosizer::isAutosizingCluster(const RenderObject*)):
The overloaded method that checks for the given object to be an autosizing container first (for
convenience of the caller) and doesn't require information about the parent cluster. Used when such
information is not available, for example, in the process of retrieving the information for the parent
cluster or when looking for the root cluster in the tree.
(WebCore::TextAutosizer::clusterShouldBeAutosized):
Passes new parameter to measureDescendantTextWidth.
(WebCore::TextAutosizer::measureDescendantTextWidth):
Uses blockContainingAllText parameter to pass to isAutosizingCluster.
(WebCore::TextAutosizer::findDeepestBlockContainingAllText):
Assertion removed since it can no longer be checked without passing an additional parameter (the
parent block containing all text) to the function for the sake of this assertion only.
(WebCore::TextAutosizer::findFirstTextLeafNotInCluster):
Uses shorter isAutosizingCluster call.
2012-12-18 Alexey Proskuryakov <ap@apple.com>
Remove unnecessary functions from CookiesStrategy
https://bugs.webkit.org/show_bug.cgi?id=105369
Reviewed by Brady Eidson.
Remove CookieJar functions that are only ever called from WebKit.
* WebCore.exp.in:
* loader/CookieJar.cpp:
* loader/CookieJar.h:
* platform/CookiesStrategy.h:
2012-12-18 ChangSeok Oh <shivamidow@gmail.com>
[GTK][AC] Assertion failed while destroying GraphicsLayer
https://bugs.webkit.org/show_bug.cgi?id=105312
Reviewed by Gustavo Noronha Silva.
According to the comment in GraphicsLayer::~GraphicsLayer(), we should call
willBeDestroyed() before destructor of GraphicsLayer.
No new tests since this patch can be covered by already existing gtk ac tests.
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::GraphicsLayerClutter::~GraphicsLayerClutter): call willBeDestroyed()
2012-12-18 Joseph Pecoraro <pecoraro@apple.com>
Minor improvements to HTMLMediaElement
https://bugs.webkit.org/show_bug.cgi?id=105353
Reviewed by Eric Carlson.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canPlayType):
(WebCore::createFileURLForApplicationCacheResource):
(WebCore::stringForNetworkState):
(WebCore::HTMLMediaElement::preload):
(WebCore::HTMLMediaElement::getPluginProxyParams):
Use ASCIILiteral for literal strings becoming WTFStrings.
(WebCore::HTMLMediaElement::setLoop):
By going through setAttribute, parseAttribute would already take care of
updating the disable sleep, so the call here is not needed.
2012-12-18 Levi Weintraub <leviw@chromium.org>
Input elements with default touch handlers don't update handler counts when changing documents
https://bugs.webkit.org/show_bug.cgi?id=105334
Reviewed by James Robinson.
When an Input element with default touch event handlers changes documents, it failed to
update the touch event handler sets in both the old and new document. This patch fixes this
case.
Test: fast/events/touch/touch-input-element-change-documents.html
* dom/Document.h:
(WebCore::Document::didRemoveTouchEventTargetNode) This function makes sense when touch
handling is enabled, regardless of whether we're tracking the rects.
* dom/Document.cpp:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::~HTMLInputElement): Switch from didRemoveTouchEventHandler to
didRemoveTouchEventTargetNode, since we don't care about counts in the destructor.
(WebCore::HTMLInputElement::updateType): Fixing incorrect indentation.
(WebCore::HTMLInputElement::didMoveToNewDocument): Adding the node to the new document and
removing it from the old.
2012-12-18 Mark Lam <mark.lam@apple.com>
Fixed bad merge in "Initial refactoring of database functionality into the manager and server".
https://bugs.webkit.org/show_bug.cgi?id=104748.
Not reviewed.
No new tests.
* Modules/webdatabase/DBBackendServer.cpp:
2012-12-18 Mark Lam <mark.lam@apple.com>
Initial refactoring of database functionality into the manager and server.
https://bugs.webkit.org/show_bug.cgi?id=104748.
Reviewed by Brady Eidson.
This is not a complete refactor, but a stepping stone on the way to isolating
script side database activity from the SQL backend.
No new tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/AbstractDatabase.cpp:
(WebCore):
(WebCore::updateGuidVersionMap):
(WebCore::guidForOriginAndName):
(WebCore::AbstractDatabase::AbstractDatabase):
(WebCore::AbstractDatabase::maximumSize):
* Modules/webdatabase/AbstractDatabase.h:
(AbstractDatabase):
- Moved isAvailable() and setIsAvailable() to the DatabaseManager.
* Modules/webdatabase/AbstractDatabaseServer.h:
(AbstractDatabaseServer):
* Modules/webdatabase/DBBackendServer.cpp: Added.
(WebCore::DBBackend::Server::initialize):
(WebCore::DBBackend::Server::setClient):
(WebCore::DBBackend::Server::databaseDirectoryPath):
(WebCore::DBBackend::Server::setDatabaseDirectoryPath):
(WebCore::DBBackend::Server::fullPathForDatabase):
(WebCore::DBBackend::Server::hasEntryForOrigin):
(WebCore::DBBackend::Server::origins):
(WebCore::DBBackend::Server::databaseNamesForOrigin):
(WebCore::DBBackend::Server::detailsForNameAndOrigin):
(WebCore::DBBackend::Server::usageForOrigin):
(WebCore::DBBackend::Server::quotaForOrigin):
(WebCore::DBBackend::Server::setQuota):
(WebCore::DBBackend::Server::deleteAllDatabases):
(WebCore::DBBackend::Server::deleteOrigin):
(WebCore::DBBackend::Server::deleteDatabase):
(WebCore::DBBackend::Server::scheduleNotifyDatabaseChanged):
(WebCore::DBBackend::Server::databaseChanged):
(WebCore::DBBackend::Server::closeDatabasesImmediately):
(WebCore::DBBackend::Server::interruptAllDatabasesForContext):
(WebCore::DBBackend::Server::canEstablishDatabase):
(WebCore::DBBackend::Server::addOpenDatabase):
(WebCore::DBBackend::Server::removeOpenDatabase):
(WebCore::DBBackend::Server::setDatabaseDetails):
(WebCore::DBBackend::Server::getMaxSizeForDatabase):
- Refactored all calls to the DatabaseTracker to go thru the DBBackend::Server.
* Modules/webdatabase/DBBackendServer.h:
* Modules/webdatabase/DOMWindowWebDatabase.cpp:
(WebCore::DOMWindowWebDatabase::openDatabase):
* Modules/webdatabase/Database.cpp:
(WebCore::Database::close):
(WebCore::Database::maximumSize):
* Modules/webdatabase/Database.h:
(Database):
- Moved the openDatabase() factory method to the DatabaseManager.
- Removed the unused deliverPendingCallback() prototype.
* Modules/webdatabase/DatabaseBasicTypes.h: Added.
- A place to define some common basic types used by the database module.
* Modules/webdatabase/DatabaseContext.cpp:
(WebCore::DatabaseContext::databaseExceededQuota):
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::DatabaseManager):
(WebCore::DatabaseManager::initialize):
(WebCore::DatabaseManager::setClient):
(WebCore::DatabaseManager::databaseDirectoryPath):
(WebCore::DatabaseManager::setDatabaseDirectoryPath):
(WebCore::DatabaseManager::isAvailable):
(WebCore::DatabaseManager::setIsAvailable):
(DatabaseCreationCallbackTask):
(WebCore::DatabaseCreationCallbackTask::create):
(WebCore::DatabaseCreationCallbackTask::performTask):
(WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask):
(WebCore::DatabaseManager::openDatabase):
(WebCore::DatabaseManager::openDatabaseSync):
(WebCore::DatabaseManager::setHasOpenDatabases):
(WebCore::DatabaseManager::fullPathForDatabase):
(WebCore::DatabaseManager::hasEntryForOrigin):
(WebCore::DatabaseManager::origins):
(WebCore::DatabaseManager::databaseNamesForOrigin):
(WebCore::DatabaseManager::detailsForNameAndOrigin):
(WebCore::DatabaseManager::usageForOrigin):
(WebCore::DatabaseManager::quotaForOrigin):
(WebCore::DatabaseManager::setQuota):
(WebCore::DatabaseManager::deleteAllDatabases):
(WebCore::DatabaseManager::deleteOrigin):
(WebCore::DatabaseManager::deleteDatabase):
(WebCore::DatabaseManager::scheduleNotifyDatabaseChanged):
(WebCore::DatabaseManager::databaseChanged):
(WebCore::DatabaseManager::closeDatabasesImmediately):
(WebCore::DatabaseManager::interruptAllDatabasesForContext):
(WebCore::DatabaseManager::canEstablishDatabase):
(WebCore::DatabaseManager::addOpenDatabase):
(WebCore::DatabaseManager::removeOpenDatabase):
(WebCore::DatabaseManager::setDatabaseDetails):
(WebCore::DatabaseManager::getMaxSizeForDatabase):
* Modules/webdatabase/DatabaseManager.h:
(DatabaseManager):
* Modules/webdatabase/DatabaseSync.cpp:
(WebCore::DatabaseSync::~DatabaseSync):
(WebCore::DatabaseSync::closeImmediately):
* Modules/webdatabase/DatabaseSync.h:
(DatabaseSync):
- Moved the openDatabaseSync() factory method to the DatabaseManager.
* Modules/webdatabase/DatabaseTask.h:
* Modules/webdatabase/SQLResultSet.h:
* Modules/webdatabase/SQLStatementSync.h:
* Modules/webdatabase/SQLTransaction.h:
* Modules/webdatabase/SQLTransactionClient.cpp:
(WebCore::SQLTransactionClient::didCommitWriteTransaction):
(WebCore::SQLTransactionClient::didExecuteStatement):
(WebCore::SQLTransactionClient::didExceedQuota):
* Modules/webdatabase/SQLTransactionSync.h:
* Modules/webdatabase/WorkerContextWebDatabase.cpp:
(WebCore::WorkerContextWebDatabase::openDatabase):
(WebCore::WorkerContextWebDatabase::openDatabaseSync):
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
2012-12-18 Per-Erik Brodin <per-erik.brodin@ericsson.com>
EventSource should support CORS
https://bugs.webkit.org/show_bug.cgi?id=61862
Reviewed by Alexey Proskuryakov.
Enabled CORS in EventSource with optional constructor argument to
indicate whether credentials should be included or not, as per the spec.
Added didFailAccessControlCheck to ThreadableLoaderClient to be able to
properly distinguish CORS failures from other errors.
Tests: http/tests/eventsource/eventsource-cors-basic.html
http/tests/eventsource/eventsource-cors-no-server.html
http/tests/eventsource/eventsource-cors-with-credentials.html
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::preflightFailure):
* loader/ThreadableLoaderClient.h:
(WebCore::ThreadableLoaderClient::didFailAccessControlCheck):
* loader/ThreadableLoaderClientWrapper.h:
(WebCore::ThreadableLoaderClientWrapper::didFailAccessControlCheck):
(ThreadableLoaderClientWrapper):
* loader/WorkerThreadableLoader.cpp:
(WebCore::workerContextDidFailAccessControlCheck):
(WebCore):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFailAccessControlCheck):
* loader/WorkerThreadableLoader.h:
(MainThreadBridge):
* page/EventSource.cpp:
(WebCore::EventSource::EventSource):
(WebCore::EventSource::create):
(WebCore::EventSource::connect):
(WebCore::EventSource::withCredentials):
(WebCore):
(WebCore::EventSource::didReceiveResponse):
(WebCore::EventSource::didFailAccessControlCheck):
(WebCore::EventSource::didFailRedirectCheck):
(WebCore::EventSource::abortConnectionAttempt):
(WebCore::EventSource::parseEventStreamLine):
(WebCore::EventSource::createMessageEvent):
* page/EventSource.h:
(WebCore):
(EventSource):
(WebCore::EventSource::refEventTarget):
(WebCore::EventSource::derefEventTarget):
* page/EventSource.idl:
2012-12-18 Michael Pruett <michael@68k.org>
IndexedDB: Implement custom bindings for parsing options
https://bugs.webkit.org/show_bug.cgi?id=96614
Reviewed by Darin Adler.
Parsing the options dictionary in IDBDatabase.createObjectStore()
and IDBObjectStore.createIndex() requires custom bindings in JSC.
Tests: storage/indexeddb/*
* GNUmakefile.list.am:
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::createObjectStore):
(WebCore):
* Modules/indexeddb/IDBDatabase.h:
(IDBDatabase):
* Modules/indexeddb/IDBDatabase.idl:
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::createIndex):
(WebCore):
* Modules/indexeddb/IDBObjectStore.h:
(IDBObjectStore):
* Modules/indexeddb/IDBObjectStore.idl:
* UseJSC.cmake:
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::idbKeyPathFromValue): Added utility function for converting a JSValue to an IDBKeyPath.
(WebCore):
* bindings/js/IDBBindingUtilities.h:
(WebCore):
* bindings/js/JSIDBDatabaseCustom.cpp: Added.
(WebCore):
(WebCore::JSIDBDatabase::createObjectStore):
* bindings/js/JSIDBObjectStoreCustom.cpp: Added.
(WebCore):
(WebCore::JSIDBObjectStore::createIndex):
2012-12-18 Yuki Sekiguchi <yuki.sekiguchi@access-company.com>
Cannot click an element at 2nd line or more inside inline-block in vertical writing mode.
https://bugs.webkit.org/show_bug.cgi?id=104775
Reviewed by Dean Jackson.
If the parent of an inline box changes writing mode, then the inline box must flip incoming hit point coordinates.
Otherwise, the coordinate will be misunderstood because the box has a different origin from its parent.
If the InlineBox doesn't flip its offset, its children will use the wrong offset
because they don't know their grandparent changed writing modes.
InlineBox::nodeAtPoint should flip accumulatedOffset like InlineBox::paint().
Test: fast/writing-mode/vertical-inline-block-hittest.html
* rendering/InlineBox.cpp:
(WebCore::InlineBox::nodeAtPoint):
2012-12-18 Simon Fraser <simon.fraser@apple.com>
Allow position:sticky elements to be moved by the scrolling thread
https://bugs.webkit.org/show_bug.cgi?id=105245
Reviewed by Beth Dakin.
Allow sticky position elements to be repositioned on the scrolling thread.
RenderLayerCompositor::requiresCompositingForPosition() is changed to make
all position:-webkit-sticky elements composited.
Sticky position constraints are already communicated to the ScrollingCoordinator,
but now we created ScrollingStateStickyNodes for them, and send the constraints
over to the scrolling thread for new ScrollingTreeStickyNodes. That allows
their layers to be repositioned on the scrolling thread.
Tests: platform/mac/tiled-drawing/sticky/sticky-horizontal.html
platform/mac/tiled-drawing/sticky/sticky-vertical.html
* WebCore.xcodeproj/project.pbxproj: Add new files.
* page/scrolling/ScrollingConstraints.h:
(WebCore::StickyPositionViewportConstraints::absoluteContainingBlockRect): New accessors.
(WebCore::StickyPositionViewportConstraints::absoluteStickyBoxRect):
(WebCore::StickyPositionViewportConstraints::operator==):
(WebCore::StickyPositionViewportConstraints::operator!=):
* page/scrolling/ScrollingCoordinator.h: Added StickyNode type.
* page/scrolling/ScrollingStateFixedNode.cpp:
(WebCore::ScrollingStateFixedNode::syncLayerPositionForViewportRect):
New virtual method that allows different kinds of nodes to sync layer positions.
* page/scrolling/ScrollingStateFixedNode.h:
* page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::isStickyNode):
(WebCore::ScrollingStateNode::syncLayerPositionForViewportRect):
* page/scrolling/ScrollingStateStickyNode.cpp: Added.
(WebCore::ScrollingStateStickyNode::create):
(WebCore::ScrollingStateStickyNode::ScrollingStateStickyNode):
(WebCore::ScrollingStateStickyNode::~ScrollingStateStickyNode):
(WebCore::ScrollingStateStickyNode::clone):
(WebCore::ScrollingStateStickyNode::updateConstraints):
(WebCore::ScrollingStateStickyNode::syncLayerPositionForViewportRect):
(WebCore::ScrollingStateStickyNode::dumpProperties):
* page/scrolling/ScrollingStateStickyNode.h: Copied from Source/WebCore/page/scrolling/ScrollingStateFixedNode.h.
(ScrollingStateStickyNode):
(WebCore::ScrollingStateStickyNode::viewportConstraints):
(WebCore::toScrollingStateStickyNode):
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::updateTreeFromStateNode):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::attachToStateTree): Handle sticky nodes.
(WebCore::ScrollingCoordinatorMac::syncChildPositions): Generalize to different kinds of nodes by
calling a virtual method on the node.
(WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
* page/scrolling/mac/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
* page/scrolling/mac/ScrollingTreeStickyNode.h: Added.
(ScrollingTreeStickyNode):
* page/scrolling/mac/ScrollingTreeStickyNode.mm: Copied from Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.mm.
(WebCore::ScrollingTreeStickyNode::create):
(WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode):
(WebCore::ScrollingTreeStickyNode::~ScrollingTreeStickyNode):
(WebCore::ScrollingTreeStickyNode::update):
(WebCore::operator*):
(WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::attachToScrollingCoordinator):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
(WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
(WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
(WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
2012-12-18 David Grogan <dgrogan@chromium.org>
IndexedDB: Split BackingStore histogram
https://bugs.webkit.org/show_bug.cgi?id=105222
Reviewed by Tony Chang.
Add separate histograms for Consistency, Write, and Read errors.
Recategorize some read errors as consistency errors.
Tested the preprocessor logic by manually making some functions fail
and printing the histogram string from chromium code.
Next up is logging successes to get an idea of which functions have
the highest failure _rate_.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::recordInternalError):
(WebCore):
(WebCore::setUpMetadata):
(WebCore::IDBBackingStore::getIDBDatabaseMetaData):
(WebCore::getNewDatabaseId):
(WebCore::IDBBackingStore::createIDBDatabaseMetaData):
(WebCore::IDBBackingStore::getObjectStores):
(WebCore::setMaxObjectStoreId):
(WebCore::IDBBackingStore::deleteObjectStore):
(WebCore::IDBBackingStore::getRecord):
(WebCore::getNewVersionNumber):
(WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBBackingStore::getIndexes):
(WebCore::setMaxIndexId):
(WebCore::versionExists):
(WebCore::IDBBackingStore::findKeyInIndex):
(WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
(WebCore::IDBBackingStore::keyExistsInIndex):
(WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
(WebCore::ObjectStoreCursorImpl::loadCurrentRow):
(WebCore::IndexKeyCursorImpl::loadCurrentRow):
(WebCore::IndexCursorImpl::loadCurrentRow):
2012-12-18 Dean Jackson <dino@apple.com>
Track menu needs localization
https://bugs.webkit.org/show_bug.cgi?id=105233
Reviewed by Eric Carlson.
Allow the UI strings in the closed captions menu to be localized, and
profile strings for the English locale.
Test: media/video-controls-captions-trackmenu-localized.html
* English.lproj/Localizable.strings: Adds the four new captions strings.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): Use localized getters.
* platform/LocalizedStrings.cpp:
(WebCore::textTrackClosedCaptionsText): New localized string getter.
(WebCore::textTrackSubtitlesText): Ditto.
(WebCore::textTrackOffText): Ditto.
(WebCore::textTrackNoLabelText): Ditto.
* platform/LocalizedStrings.h:
2012-12-18 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=102579
[mac] Enable scaled cursors
Reviewed by Dean Jackson.
Not much is required to get this turned on. We just need the feature to be
defined, and we need to initialize m_imageScaleFactor in the Cursor constructors.
* Configurations/FeatureDefines.xcconfig:
* platform/mac/CursorMac.mm:
(WebCore::Cursor::Cursor):
(WebCore::Cursor::operator=):
2012-12-18 Joseph Pecoraro <pecoraro@apple.com>
[Mac] Add Build Phase to Check Headers for Inappropriate Macros (Platform.h macros)
https://bugs.webkit.org/show_bug.cgi?id=104279
Reviewed by David Kilzer.
Set the executable as an input path on the check-* build phases.
* WebCore.xcodeproj/project.pbxproj:
2012-12-18 Adam Klein <adamk@chromium.org>
[HTMLTemplateElement] Prevent first-level recursive <template> from resetting the implied context
https://bugs.webkit.org/show_bug.cgi?id=104142
Reviewed by Eric Seidel.
This patch adds a stack of InsertionModes retains the chosen
"implied context" for each template element.
Based on a patch by Rafael Weinstein.
Tests added to html5lib/run-template.html
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder): Initialize the stack appropriately for HTMLTemplateElement.innerHTML.
(WebCore::HTMLTreeBuilder::processTemplateStartTag):
(WebCore::HTMLTreeBuilder::processTemplateEndTag):
(WebCore::HTMLTreeBuilder::processStartTag): Once we've figured out the insertion mode for a given <template> store it in the stack.
(WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processEndOfFile): Clear the stack if we hit end of file to allow the assertion in finish().
(WebCore::HTMLTreeBuilder::finished):
* html/parser/HTMLTreeBuilder.h:
(HTMLTreeBuilder):
2012-12-18 Andrew Lo <anlo@rim.com>
[BlackBerry] Use midpoint for fixed position heuristic
https://bugs.webkit.org/show_bug.cgi?id=105329
Reviewed by Rob Buis.
Internally reviewed by Joe Mason.
Use the midpoint of the layer when determining whether the
fixed-position layer is on the top or bottom half of the screen
rather than the top of the layer.
Internal PR 237073.
No new tests are needed.
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::updateLayersRecursive):
2012-12-18 Andrew Lo <anlo@rim.com>
[BlackBerry] Fixed position elements should be fixed position on x axis
https://bugs.webkit.org/show_bug.cgi?id=105333
Reviewed by Rob Buis.
Internally reviewed by Joe Mason.
Have fixed position elements be fixed on the X axis as well as Y.
This better aligns with what other ports are doing.
Internal PR237073.
No new tests are needed.
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::updateLayersRecursive):
2012-12-18 James Simonsen <simonjam@chromium.org>
[Resource Timing] Populate responseEnd on cross-origin requests
https://bugs.webkit.org/show_bug.cgi?id=105231
Reviewed by Tony Gentilcore.
No new tests. Covered by existing cross-origin test, but masked by iframe bug.
* page/PerformanceResourceTiming.cpp:
(WebCore::PerformanceResourceTiming::responseEnd):
2012-12-18 Tim Horton <timothy_horton@apple.com>
Unreviewed build fix after http://trac.webkit.org/changeset/138041
Need to cast int64_t to int32_t to avoid a warning on some compilers.
* platform/LayoutUnit.h:
(WebCore::boundedMultiply):
2012-12-18 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] shape-inside layout fails to adjust first line correctly for writing-mode: vertical-rl
https://bugs.webkit.org/show_bug.cgi?id=104419
Reviewed by Dirk Schulze.
ExclusionShapes no longer maintain a private "internal" coordinate system,
they're now defined in logical coordinates. The createExclusionShape() method
now handles the one-time conversion from physical to logical coordinates.
Test: fast/exclusions/shape-inside/shape-inside-rounded-rectangle-fit-003.html
* rendering/ExclusionPolygon.cpp:
(WebCore::ExclusionPolygon::getExcludedIntervals): Removed logical to internal coordinate conversions.
(WebCore::ExclusionPolygon::getIncludedIntervals): Ditto.
(WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): Ditto.
* rendering/ExclusionPolygon.h:
* rendering/ExclusionRectangle.cpp:
(WebCore::ExclusionRectangle::getExcludedIntervals): Removed logical to internal coordinate conversions.
(WebCore::ExclusionRectangle::getIncludedIntervals): Ditto.
(WebCore::ExclusionRectangle::firstIncludedIntervalLogicalTop): Ditto.
* rendering/ExclusionRectangle.h:
* rendering/ExclusionShape.cpp:
(WebCore::physicalRectToLogical): Convert a FloatRect defined with coordinates to logical coordinates.
(WebCore::physicalPointToLogical): Similar.
(WebCore::physicalSizeToLogical): Simlar.
(WebCore::ExclusionShape::createExclusionShape): Convert shapes from physical to logical coordinates.
* rendering/ExclusionShape.h:
(ExclusionShape): Removed internal to logical coordinate conversion utility methods.
2012-12-17 Emil A Eklund <eae@chromium.org>
Optimize LayoutUnit::boundedMultiply
https://bugs.webkit.org/show_bug.cgi?id=105216
Reviewed by Levi Weintraub.
LayoutUnit::boundedMultiply is used for multiplication that's
prone to overflow and for all LayoutUnit multiplication if
SATURATED_LAYOUT_ARITHMETIC is enabled. The current approach is
quite inefficient.
Change it to use a more efficient saturated multiplication
implementation. As the implementation needs to use
kFixedPointDenominator it is implemented in LayoutUnit.h instead
of in wtf/SaturatedArithmetic.h.
Test: Covered by TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp
* platform/LayoutUnit.h:
(WebCore::boundedMultiply):
2012-12-18 Bear Travis <betravis@adobe.com>
[CSS Exclusions] Blocks should not re-use their parent's ExclusionShapeInsideInfo
if they participate in inline layout
https://bugs.webkit.org/show_bug.cgi?id=104582
Reviewed by Julien Chaffraix.
Blocks that participate in inline layout should not re-use a parent's
ExclusionShapeInsideInfo, as the parent and child would both use the info for
layout at the same time. This patch alters LayoutState to not include
ExclusionShapeInsideInfo if the current block participates in inline layout (ie,
it is a float, inline-block, or inline-table).
Test: fast/exclusions/shape-inside/shape-inside-recursive-layout.html
* rendering/ExclusionShapeInsideInfo.h:
(WebCore::ExclusionShapeInsideInfo::ownerBlock): Return the block associated with
the shape-inside style.
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState): Do not re-use ExclusionShapeInsideInfo
on a block that participates in inline layout (floats and inline blocks).
* rendering/RenderBlock.h:
(WebCore::RenderBlock::allowsExclusionShapeInsideInfoSharing): Returns whether the
block can re-use an ExclusionShapeInsideInfo from its parent block.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange): Adding an assert to make sure
we do not overwrite ExclusionShapeInsideInfo's state during a recursive layout.
* rendering/RenderView.h:
(WebCore::RenderView::pushLayoutState): Push a new LayoutState in the case that
ExclusionShapeInsideInfo exists but should not be propagated.
2012-12-18 Tony Chang <tony@chromium.org>
REGRESSION(r136324): flex items with percent heights not resizing
https://bugs.webkit.org/show_bug.cgi?id=105213
Reviewed by Ojan Vafai.
We were missing some of the logic for when to relayout a flex child. Refactor
the code in RenderBlock::layoutBlockChildren so we can use it in RenderFlexibleBox.
Test: css3/flexbox/flexitem-percent-height-change.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateNeedsLayoutAndPreferredLogicalWidthsDirtyBeforeBlockChildLayout):
Pull out logic needed by RenderFlexibleBox.
(WebCore::RenderBlock::layoutBlockChildren): Use helper method.
* rendering/RenderBlock.h:
(RenderBlock): Add updateNeedsLayoutAndPreferredLogicalWidthsDirtyBeforeBlockChildLayout.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock): Pass through relayoutChildren bool.
(WebCore::RenderFlexibleBox::layoutFlexItems): Pass through relayoutChildren and mark the child as needing
layout if it has a percent height.
(WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): We need to always layout here since we're
trying to get the preferred size.
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
* rendering/RenderFlexibleBox.h:
2012-12-17 Simon Fraser <simon.fraser@apple.com>
Fix position:-webkit-sticky behavior when zoomed
https://bugs.webkit.org/show_bug.cgi?id=105251
Reviewed by Dean Jackson.
Position sticky elements were misplaced when stickily-constrained, under zooming.
The cause was that some of the functions used to compute sticky position
took page scale into account, and some did not.
Fix by using localToContainerQuad(..., view()) to compute RenderView-relative
quads, which avoids page scale, so all the constraints math is done ignoring
page scale. This also requires that we compute a scale-free viewport rect
in stickyPositionOffset().
Test: fast/css/sticky/sticky-top-zoomed.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
(WebCore::RenderBoxModelObject::stickyPositionOffset):
2012-12-18 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: DataGrid cell values are "clipped" in editing mode.
https://bugs.webkit.org/show_bug.cgi?id=105277
Reviewed by Pavel Feldman.
UIUtils expects that "text-overflow" is not "ellipsis".
* inspector/front-end/dataGrid.css:
(.data-grid td.editing > div): Override text-overflow for editing mode.
2012-12-18 Ken Kania <kkania@chromium.org>
[Inspector] Add frameId for frame owner nodes.
https://bugs.webkit.org/show_bug.cgi?id=105317
Reviewed by Pavel Feldman.
This is needed to translate from a node ID to the execution context ID for
evaluating scripts in the associated frame.
* inspector/Inspector.json:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForNode):
2012-12-18 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Compile fix.
https://bugs.webkit.org/show_bug.cgi?id=105175
Reviewed by Simon Fraser.
* rendering/RenderLayer.h: Compile fixes for USE(ACCELERATED_COMPOSITING) mismatch.
2012-12-18 Emil A Eklund <eae@chromium.org>
Have kFixedPointDenominator be constant across ports
https://bugs.webkit.org/show_bug.cgi?id=104843
Reviewed by Julien Chaffraix.
Currently the kFixedPointDenominator constant is set to either
64 or 1 depending on the SUBPIXEL_LAYOUT flag. As this constant
is used to limit the range of supported values this results in
inconsistencies across ports.
Change kFixedPointDenominator to always be 64 and introduce a
new constant (kEffectiveFixedPointDenominator) that varies.
This ensures that the same range of values are supported across
ports regardless of the SUBPIXEL_LAYOUT flag.
Covered by fast/css/large-numbers.html and fast/css/large-number-round-trip.html
* platform/LayoutUnit.h:
Add kEffectiveFixedPointDenominator constant and change
LayoutUnit code to use it instead of kFixedPointDenominator
which is now set to 64 regardless of the SUBPIXEL_LAYOUT flag.
2012-12-18 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r137979.
http://trac.webkit.org/changeset/137979
https://bugs.webkit.org/show_bug.cgi?id=105311
nodeName returned by the inspector protocol commands should
match one accessible fro JS (Requested by yurys_ on #webkit).
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForNode):
2012-12-18 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Styles] Selector matches are not marked after property editing
https://bugs.webkit.org/show_bug.cgi?id=105284
Reviewed by Vsevolod Vlasov.
Once a property edit is committed, the selector markup is reset and needs to be re-applied.
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertiesSection.prototype.update):
2012-12-18 Eric Carlson <eric.carlson@apple.com>
Add in-band text track cues only once
https://bugs.webkit.org/show_bug.cgi?id=104593
Reviewed by Dean Jackson.
Test: media/track/track-in-band-cues-added-once.html
* html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::hasCue): New.
* html/track/InbandTextTrack.h:
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::setCueSettings): Remember the raw cue settings so they can be accessed later.
* html/track/TextTrackCue.h:
* platform/graphics/InbandTextTrackPrivateClient.h: Declare hasCue.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processCue): Early return if m_player has been cleared.
(WebCore::InbandTextTrackPrivateAVF::setMode): Ditto.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::seek): Clear the partially accumulated cue when the seek
starts, not when it completes.
(WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Ditto.
(WebCore::MediaPlayerPrivateAVFoundation::flushCurrentCue): Don't add a cue if it is already in the
text track cue list.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::clearTextTracks): Drive-by cleanup, clear the track list completely.
2012-12-18 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] Ordering of cookies displayed is nondeterministic.
https://bugs.webkit.org/show_bug.cgi?id=105272
Reviewed by Vsevolod Vlasov.
This patch fixes double-selection of request and sets default ordering
of cookies.
* inspector/front-end/CookiesTable.js: By default sort by name.
* inspector/front-end/NetworkPanel.js: Do not fire "select" on
mouse-click in viewing-request mode.
2012-12-18 Alexander Pavlov <apavlov@chromium.org>
Unreviewed, rolling out r138011.
http://trac.webkit.org/changeset/138011
https://bugs.webkit.org/show_bug.cgi?id=105272
WebInspector: Broke request selection in the Network panel
* inspector/front-end/CookiesTable.js:
(WebInspector.CookiesTable):
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkPanel.prototype._toggleGridMode):
(WebInspector.NetworkPanel.prototype._toggleViewingRequestMode):
(WebInspector.NetworkDataGridNode.prototype.createCells):
(WebInspector.NetworkDataGridNode.prototype.get selectable):
2012-12-18 Nate Chapin <japhet@chromium.org>
REGRESSION (r137607): Cannot download files, stuck in “Preparing to download”
https://bugs.webkit.org/show_bug.cgi?id=105044
Reviewed by Antti Koivisto.
The work done by DocumentLoader::mainReceivedError() changed subtly in r137607,
such that it cancels the ResourceHandle. We want to treat switching to a download
like a failure, where WebCore assumes that the load is finished, and no
cancellation is required.
No new tests, tested manually by verifying that downloading files works in
Safari Mac.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::continueAfterContentPolicy):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::cancel): Remove the workaround added in r137763.
2012-12-18 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: [Network] Ordering of cookies displayed is nondeterministic.
https://bugs.webkit.org/show_bug.cgi?id=105272
Reviewed by Alexander Pavlov.
This patch fixes double-selection of request and sets default ordering
of cookies.
* inspector/front-end/CookiesTable.js: By default sort by name.
* inspector/front-end/NetworkPanel.js: Remove redundant member, make
rows "not-selectable", activate request selection on "mouse-down".
2012-12-18 Tommy Widenflycht <tommyw@chromium.org>
[JSC] Refactoring CodeGeneratorJS.pm to simplify adding support for overloaded constructors
https://bugs.webkit.org/show_bug.cgi?id=105271
Reviewed by Kentaro Hara.
This patch splits the very large function that generates constructor code into a few smaller ones.
No changes in actual generated code but some functions in the generated bindings code moves.
Existing tests cover patch.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateConstructorDefinitions):
(GenerateConstructorDefinition):
(GenerateConstructorSupportDefinitions):
(IsCustomConstructable):
(IsConstructable):
* bindings/scripts/test/JS/JSFloat64Array.cpp:
(WebCore::JSFloat64ArrayConstructor::constructJSFloat64Array):
(WebCore):
(WebCore::toJS):
(WebCore::JSFloat64Array::indexSetter):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore):
(WebCore::JSTestEventConstructorConstructor::JSTestEventConstructorConstructor):
(WebCore::JSTestEventConstructorConstructor::finishCreation):
(WebCore::JSTestEventConstructorConstructor::getOwnPropertySlot):
(WebCore::JSTestEventConstructorConstructor::getOwnPropertyDescriptor):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
(WebCore):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore):
(WebCore::JSTestNamedConstructorNamedConstructor::JSTestNamedConstructorNamedConstructor):
(WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNodeConstructor::constructJSTestNode):
(WebCore):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::constructJSTestObj):
(WebCore):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):
(WebCore):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
(WebCore):
2012-12-18 Max Feil <mfeil@rim.com>
[BlackBerry] Add support for setMuted() for media
https://bugs.webkit.org/show_bug.cgi?id=105254
Reviewed by George Staikos.
Simply pass the API call through to the platform layer.
Covered by existing tests.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::setMuted):
(WebCore):
(WebCore::MediaPlayerPrivate::muted):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
(MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::supportsMuting):
2012-12-18 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: show cached images under MemoryCache -> Images section
https://bugs.webkit.org/show_bug.cgi?id=105261
Reviewed by Pavel Feldman.
Provided class name and name for several objects related to CachedImage.
Changed native memory snapsho view so that MemoryCache.Image section can
be expanded into individual images.
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeMemorySnapshotView):
(WebInspector.NativeSnapshotNode.prototype._addChildrenFromGraph):
(WebInspector.NativeHeapGraphEdge):
(WebInspector.NativeHeapGraphEdge.prototype.type):
(WebInspector.NativeHeapGraphEdge.prototype.name):
(WebInspector.NativeHeapGraphEdge.prototype.target):
(WebInspector.NativeHeapGraphEdge.prototype._getStringField):
(WebInspector.NativeHeapGraphEdge.prototype.toString):
(WebInspector.NativeHeapGraphNode.prototype.size):
(WebInspector.NativeHeapGraphNode.prototype.referencedNodes):
(WebInspector.NativeHeapGraphNode.prototype.outgoingEdges):
(WebInspector.NativeHeapGraphNode.prototype.targetOfEdge):
(WebInspector.NativeHeapGraphNode.prototype.targetsOfAllEdges):
(WebInspector.NativeHeapGraphNode.prototype._firstEdgePoistion):
(WebInspector.NativeHeapGraphNode.prototype._afterLastEdgePosition):
(WebInspector.NativeHeapGraphNode.prototype._getStringField):
(WebInspector.NativeHeapGraphNode.prototype.toString):
(WebInspector.NativeHeapGraph):
(WebInspector.NativeHeapGraph.prototype.rootNodes):
(WebInspector.NativeHeapGraph.prototype._calculateNodeEdgeIndexes):
(WebInspector.NativeHeapGraph.prototype._addDummyNode):
(WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
(WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::reportMemoryUsage):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::reportMemoryUsage):
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::reportMemoryUsage):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::reportMemoryUsage):
(WebCore::FrameData::reportMemoryUsage):
* platform/graphics/Image.cpp:
(WebCore::Image::reportMemoryUsage):
* platform/graphics/skia/MemoryInstrumentationSkia.cpp:
(reportMemoryUsage):
2012-12-18 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Calculate "idle" time for CPU profiles.
https://bugs.webkit.org/show_bug.cgi?id=103120
Reviewed by Pavel Feldman.
CPU profiles contain a very confusing "(program)" item.
It is time when there is no JS stack.
That could be either idle time, or time when browser is doing something.
To split "(program)" item to idle and really program time we are to
calculate idle time during profiling.
* bindings/js/ScriptProfile.cpp: Added "idleTime" getter.
* bindings/js/ScriptProfile.h: Ditto.
* bindings/js/ScriptProfiler.h:
Added getter of thread-local map of currently written profiles.
* bindings/v8/ScriptProfile.cpp: Added "idleTime" getter.
* bindings/v8/ScriptProfile.h: Ditto.
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::start): Put profile name to map.
(WebCore::ScriptProfiler::stop): Remove profile name from map;
pass idleTime to profile constructor.
* bindings/v8/ScriptProfiler.h:
Added getter of thread-local map of currently written profiles.
* inspector/Inspector.json: Added "idleTime" field to profile.
* inspector/InspectorController.cpp: Pass hooks to profiler agent.
* inspector/InspectorProfilerAgent.cpp:
Add idle time to currently written profiles.
* inspector/InspectorProfilerAgent.h:
Added member to hold reference to map of currently written profiles.
* inspector/InspectorTimelineAgent.h:
Cleanup.
* inspector/ScriptProfile.idl:
Add "idleTime" member.
2012-12-17 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: MediaQueryList listener silently catches errors
https://bugs.webkit.org/show_bug.cgi?id=105162
Reviewed by Alexander Pavlov.
Drive-by: removed unused ScriptCallback::call(bool).
Test: inspector-protocol/media-query-listener-exception.html
* bindings/js/ScriptFunctionCall.cpp:
(WebCore::ScriptCallback::call):
* bindings/js/ScriptFunctionCall.h:
(ScriptCallback):
* bindings/v8/ScriptFunctionCall.cpp: report uncaught exception to the inspector
if it was thrown during the function call.
(WebCore::ScriptCallback::call):
* bindings/v8/ScriptFunctionCall.h:
(ScriptCallback):
2012-12-18 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Network: display JavaScript stack in case of script initiator.
https://bugs.webkit.org/show_bug.cgi?id=104899
Reviewed by Vsevolod Vlasov.
Show popup with navigavle stack-trace.
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._getPopoverAnchor):
Added new target.
(WebInspector.NetworkLogView.prototype._showPopover):
Added case for new target.
(WebInspector.NetworkLogView.prototype._generateScriptInitiatedPopoverContent):
Generates table with stack trace items.
(WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
Added target marker, removed annoying titles.
2012-12-18 Tamas Czene <tczene@inf.u-szeged.hu>
Style fix to OpenCL SVG Filters
https://bugs.webkit.org/show_bug.cgi?id=105265
Reviewed by Zoltan Herczeg.
Inserted missing spaces and correct copyright text. There were no vital changes.
* platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
(WebCore):
* platform/graphics/gpu/opencl/FilterContextOpenCL.h:
(FilterContextOpenCL):
* platform/graphics/gpu/opencl/OpenCLFEColorMatrix.cpp:
(WebCore::FilterContextOpenCL::applyFEColorMatrix):
* platform/graphics/gpu/opencl/OpenCLFETurbulence.cpp:
(WebCore):
(WebCore::FilterContextOpenCL::compileFETurbulence):
(WebCore::FilterContextOpenCL::applyFETurbulence):
(WebCore::FETurbulence::platformApplyOpenCL):
* platform/graphics/gpu/opencl/OpenCLHandle.h:
2012-12-17 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [WebGL] handle video elements used in WebGL
https://bugs.webkit.org/show_bug.cgi?id=105170
Reviewed by Yury Semikhatsky.
Copy current image of video elements into a canvas to use it later in the replay.
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
2012-12-17 Luke Macpherson <macpherson@chromium.org>
Add ASSERTions to ensure that CSSPropertys that are variables only ever refer to CSSValues that are variables.
https://bugs.webkit.org/show_bug.cgi?id=104876
Reviewed by Steve Block.
Add assertions to CSSProperty constructors to make that if it is initialized with CSSPropertyVariable that
the value type associated with it is also a variable. This is already asserted at read time, but ASSERTing
here will produce a more useful backtrace.
No new tests as functionality unchanged.
* css/CSSProperty.h:
(WebCore::CSSProperty::CSSProperty):
2012-12-17 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Make inspector scripts sourceURL absolute.
https://bugs.webkit.org/show_bug.cgi?id=105166
Reviewed by Yury Semikhatsky.
* inspector/front-end/utilities.js:
2012-12-17 Huang Dongsung <luxtella@company100.net>
REGRESSION(r137442): Crash because of an uninitialized member.
https://bugs.webkit.org/show_bug.cgi?id=105246
Reviewed by Noam Rosenthal.
TextureMapperGL defines m_context although TextureMapper defines m_context.
r137442 removes the initialization code in TextureMapperGL, which is
what causes this regression. This patch removes the duplicated member
in TextureMapperGL.
No new tests. Covered by existing tests.
* platform/graphics/texmap/TextureMapper.cpp:
(WebCore::TextureMapper::TextureMapper):
* platform/graphics/texmap/TextureMapper.h:
(WebCore::TextureMapper::setGraphicsContext):
(WebCore::TextureMapper::graphicsContext):
(TextureMapper):
* platform/graphics/texmap/TextureMapperGL.h:
(WebCore):
2012-12-17 Philip Rogers <pdr@google.com>
Queue container size requests while images are loading.
https://bugs.webkit.org/show_bug.cgi?id=105097
Reviewed by Dean Jackson.
We use CachedImage::setContainerSizeForRenderer(...) to notify images of requesting
container sizes. Unfortunately, if the image is not yet loaded we ignore this container
size information! This patch stores requesting container sizes made while the image is
not yet loaded.
This patch fixes a bug where SVG images would display incorrectly on the first load but
correctly thereafter. Additionally, this bug caused the SVGImageCache to not be used in many
real world scenarios.
This patch is loosely based on a patch by blambov in WK98403.
Test: http/tests/misc/svg-image-delayed-size-negotiation.html
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::didRemoveClient):
(WebCore::CachedImage::allClientsRemoved):
(WebCore::CachedImage::setContainerSizeForRenderer):
(WebCore::CachedImage::clear):
(WebCore::CachedImage::createImage):
* loader/cache/CachedImage.h:
A new map has been added to track renderer -> size information before an image has
loaded. Note that this affects all images (not just images that require container size
information) but we cannot know the image type before the image has loaded.
2012-12-17 Shinya Kawanaka <shinyak@chromium.org>
Web Inspector: need to visually distinguish UA shadow roots
https://bugs.webkit.org/show_bug.cgi?id=104877
Reviewed by Yury Semikhatsky.
Now we have an option to show ShadowRoot in the Inspector. Since the Inspector has displayed UserAgent ShadowRoot and
Author ShadowRoot as the same #shadow-root, a user could not distinguish them.
We would like to show UserAgent ShadowRoot as #webkit-shadow-root.
Test: inspector/shadow-root.html
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForNode): Make nodeName of UserAgent ShadowRoot #webkit-shadow-root.
Since the correct nodeName of ShadowRoot is #document-fragment, we have to specify the nodeName of Author ShadowRoot
as #shadow-root here.
2012-12-17 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: Refactor TiledBackingStore code in CoordinatedGraphicsLayer.
https://bugs.webkit.org/show_bug.cgi?id=103959
Reviewed by Kenneth Rohde Christiansen.
TiledBackingStore::setCommitTileUpdatesOnIdleEventLoop() is used when class
methods cannot be called asynchronously by client. Updates of tiles are
committed as soon as all the events in event queue have been processed.
After this patch Frame sets m_commitTileUpdatesOnIdleEventLoop to true.
In addition, remove TiledBackingStoreClient::tiledBackingStoreUpdatesAllowed()
which was introduced for Coordinated Graphics.
Refactoring covered by existing tests.
* page/Frame.cpp:
(WebCore::Frame::setTiledBackingStoreEnabled):
* platform/graphics/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::TiledBackingStore):
(WebCore::TiledBackingStore::setTrajectoryVector):
Separate setting a trajectory vector from coverWithTilesIfNeeded().
(WebCore::TiledBackingStore::coverWithTilesIfNeeded):
(WebCore::TiledBackingStore::updateTileBuffers):
(WebCore::TiledBackingStore::createTiles):
(WebCore::TiledBackingStore::isTileBufferUpdatesSuspended):
(WebCore::TiledBackingStore::startTileBufferUpdateTimer):
(WebCore::TiledBackingStore::tileBufferUpdateTimerFired):
(WebCore::TiledBackingStore::startBackingStoreUpdateTimer):
(WebCore::TiledBackingStore::backingStoreUpdateTimerFired):
* platform/graphics/TiledBackingStore.h:
(TiledBackingStore):
(WebCore::TiledBackingStore::setCommitTileUpdatesOnIdleEventLoop):
* platform/graphics/TiledBackingStoreClient.h:
(WebCore::TiledBackingStoreClient::tiledBackingStoreHasPendingTileCreation):
If TiledBackingStore does not create all tiles, TiledBackingStore
notifies a client of needing to create tiles more, when
m_commitTileUpdatesOnIdleEventLoop is false.
2012-12-17 Dean Jackson <dino@apple.com>
Track menu should be sorted
https://bugs.webkit.org/show_bug.cgi?id=105229
Reviewed by Eric Carlson.
Make sure that the <li> elements in the track menu are correctly
sorted as they are built. This uses insertion sort, but it shouldn't
be horrible given that we don't expect a huge number of tracks.
Test: media/video-controls-captions-trackmenu-sorted.html
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay):
(WebCore::insertTextTrackMenuItemIntoSortedContainer): New function that calls insertBefore with
the correct parameters to ensure the <ul> is correctly sorted.
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
* html/shadow/MediaControlElements.h:
(MediaControlClosedCaptionsTrackListElement): Rename menuItems to m_menuItems for consistency.
2012-12-17 Matthew Dempsky <mdempsky@google.com>
Regression causing DOM objects to have unstable NPObject* references with v8 bindings
https://bugs.webkit.org/show_bug.cgi?id=104921
Reviewed by Kentaro Hara.
Fix regression introduced by changeset 135804 resulting in
unstable NPObject* references for v8 objects. In the iter !=
v8NPObjectMap->end() code path, objectVector was left unassigned
if the for loop terminated without returning.
Also, V8Object::GetIdentityHash() is documented as not being guaranteed
as unique. As such, don't ASSERT() that two objects with the same hash
must therefor be the same object.
Tests: plugins/npruntime/embed-property-iframe-equality.html
* bindings/v8/NPV8Object.cpp:
(WebCore::npCreateV8ScriptObject): Fix.
2012-12-17 Chris Fleizach <cfleizach@apple.com>
Seamless iframe should not announce a new browsing context
https://bugs.webkit.org/show_bug.cgi?id=86317
Reviewed by Eric Seidel.
Introduce a new role for seamless frames so that the platforms can decide what to do
with this kind of object. For the mac, it's exposed as a group.
Test: platform/mac/accessibility/seamless-iframe.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore):
* accessibility/AccessibilityNodeObject.h:
(AccessibilityNodeObject):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isWebArea):
(WebCore::AccessibilityObject::isSeamlessWebArea):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::parentObjectIfExists):
(WebCore::AccessibilityRenderObject::parentObject):
(WebCore::AccessibilityRenderObject::boundingBoxRect):
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(createAccessibilityRoleMap):
2012-12-17 KyungTae Kim <ktf.kim@samsung.com>
Percentage width replaced element incorrectly rendered when intrinsic size changed
https://bugs.webkit.org/show_bug.cgi?id=102784
Reviewed by Tony Chang.
To make relayout when the image dimension is changed,
and if the logical width is percent type and the containing block fits to it.
In this case, the containing block's width need to be updated first,
because the 'newWidth' was calculated from the 'old containing block width'.
Test: fast/css/percent-width-img-src-change.html
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageDimensionsChanged):
2012-12-17 Beth Dakin <bdakin@apple.com>
DidHitRelevantRepaintedObjectsAreaThreshold should not use the viewRect since
that varies
https://bugs.webkit.org/show_bug.cgi?id=105116
-and corresponding-
<rdar://problem/12889449>
Reviewed by Geoff Garen.
DidHitRelevantRepaintedObjectsAreaThreshold should not use the viewRect since that
varies depending on window size. This can lead to a huge amount of variability in
the heuristic which is not desired. Instead, we should use a hard-coded rect.
* page/Page.cpp:
(WebCore::relevantViewRect):
(WebCore):
(WebCore::Page::addRelevantRepaintedObject):
(WebCore::Page::addRelevantUnpaintedObject):
2012-12-17 Simon Fraser <simon.fraser@apple.com>
Fix repositioning of fixed elements on zooming
https://bugs.webkit.org/show_bug.cgi?id=105223
Reviewed by Beth Dakin.
When zoomed, scrolling would move the layers of fixed-position
elements oddly. This happened because on the scrolling thread we
passed a scale of 1, rather than the actual page scale to
scrollOffsetForFixedPosition().
Fix by plumbing the page scale through the scrolling state node
to the scrolling node.
Test: platform/mac/tiled-drawing/fixed/four-bars-zoomed.html
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setFrameScaleFactor):
(WebCore::ScrollingStateScrollingNode::dumpProperties):
* page/scrolling/ScrollingStateScrollingNode.h:
(WebCore::ScrollingStateScrollingNode::frameScaleFactor):
(ScrollingStateScrollingNode):
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
(WebCore::ScrollingTreeScrollingNode::update):
* page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::frameScaleFactor):
(ScrollingTreeScrollingNode):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
(ScrollParameters):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
(WebCore::ScrollingCoordinatorMac::setScrollParametersForNode):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
2012-12-17 Dima Gorbik <dgorbik@apple.com>
Implement matching cue by the class name with ::cue pseudo element
https://bugs.webkit.org/show_bug.cgi?id=104191
Reviewed by Antti Koivisto.
Implemented the ::cue() pseudo-element with an argument that may hold a simple selector list.
This enables matching cue objects by the class name.
Test: media/track/track-css-matching.html
* css/CSSGrammar.y.in: support parsing the ::cue() with an argument.
* css/CSSParser.cpp:
(WebCore::CSSParser::detectFunctionTypeToken): tokenize the 'cue'.
(WebCore::CSSParser::updateSpecifiersWithElementName): do not set the tag for the cue pseudo-element because
the ::cue may match elements with different tags.
(WebCore::CSSParser::updateSpecifiers): the behavior for the PseudoCue selector should be same as for
unknown pseudo elements - the pseudo-element should stay on top of the selector chain.
* css/CSSSelector.cpp: added the type detection for the new selector.
(WebCore::CSSSelector::pseudoId):
(WebCore::nameToPseudoTypeMap):
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
* css/RuleSet.cpp: add a new list to hold all the rulesets for the new pseudo element.
(WebCore::RuleSet::reportMemoryUsage):
(WebCore::RuleSet::addRule):
(WebCore::RuleSet::shrinkToFit):
* css/RuleSet.h:
(RuleSet):
(WebCore::RuleSet::cuePseudoRules):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOneSelector):
* css/SelectorChecker.h:
(WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRules):
* dom/Element.cpp: an addition to the rare data to be able to find out if the node is a webvtt node.
(WebCore):
(WebCore::Element::isWebVTTNode):
(WebCore::Element::setIsWebVTTNode):
(WebCore::Element::cloneDataFromElement):
* dom/Element.h:
(Element):
* dom/ElementRareData.h:
(ElementRareData):
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
(NodeRareData):
(WebCore::NodeRareData::isWebVTTNode):
(WebCore::NodeRareData::setIsWebVTTNode):
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::markNodesAsWebVTTNodes): mark the cloned nodes as WebVTT nodes.
(WebCore):
(WebCore::TextTrackCue::getCueAsHTML):
* html/track/TextTrackCue.h:
(TextTrackCue):
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::constructTreeFromToken):
* rendering/style/RenderStyleConstants.h:
2012-12-17 Michael Pruett <michael@68k.org>
IndexedDB: Don't use strings to represent serialized values
https://bugs.webkit.org/show_bug.cgi?id=104354
Reviewed by Kentaro Hara.
Use Vector<uint8_t> rather than String to represent serialized values
in IndexedDB. This change is necessary to implement IndexedDB for JSC.
Tests: storage/indexeddb/*
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::getRecord):
(WebCore::IDBBackingStore::putRecord):
(WebCore::ObjectStoreKeyCursorImpl::value):
(WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
(WebCore::ObjectStoreCursorImpl::value):
(ObjectStoreCursorImpl):
(WebCore::ObjectStoreCursorImpl::loadCurrentRow):
(WebCore::IndexKeyCursorImpl::value):
(WebCore::IndexCursorImpl::value):
(WebCore::IndexCursorImpl::IndexCursorImpl):
(IndexCursorImpl):
(WebCore::IndexCursorImpl::loadCurrentRow):
* Modules/indexeddb/IDBBackingStore.h:
(IDBBackingStore):
(Cursor):
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
* Modules/indexeddb/IDBCursorBackendImpl.h:
(WebCore::IDBCursorBackendImpl::value):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::perform):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore):
* bindings/js/SerializedScriptValue.h:
* bindings/v8/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::createFromWireBytes):
(WebCore):
(WebCore::SerializedScriptValue::toWireBytes):
* bindings/v8/SerializedScriptValue.h:
(SerializedScriptValue):
2012-12-17 Jaehun Lim <ljaehun.lim@samsung.com>
Change SET_VAR, SET_BORDERVALUE_COLOR macro to require semicolon(;) at the end of the line
https://bugs.webkit.org/show_bug.cgi?id=104774
Reviewed by Eric Seidel.
Remove the last ; in SET_VAR, SET_BORDERVALUE_COLOR macro definition.
Add the omitted ; in RenderStyle.h | .cpp
No new tests, just style change.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setColor):
(WebCore::RenderStyle::setVisitedLinkColor):
(WebCore::RenderStyle::setHorizontalBorderSpacing):
(WebCore::RenderStyle::setVerticalBorderSpacing):
* rendering/style/RenderStyle.h:
2012-12-17 Yong Li <yoli@rim.com>
[BlackBerry] Deadlock caused by PluginViewPrivate::destroyBuffers()
https://bugs.webkit.org/show_bug.cgi?id=105215
Reviewed by Rob Buis.
Also internally reviewed by George Staikos.
PR# 266443
It should release mutexes before sending sync message.
* plugins/blackberry/PluginViewPrivateBlackBerry.cpp:
(WebCore::PluginViewPrivate::destroyBuffers):
2012-12-17 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r137198.
http://trac.webkit.org/changeset/137198
https://bugs.webkit.org/show_bug.cgi?id=105212
This patch is causing API behavior compatibility problems
(Requested by zdobersek on #webkit).
* platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::updateFromSoupMessage):
2012-12-17 Dominic Mazzoni <dmazzoni@google.com>
AX: textUnderElement should consider alt text, but skip links and controls
https://bugs.webkit.org/show_bug.cgi?id=101650
Reviewed by Chris Fleizach.
Getting inner text from an element now ignores focusable descendants
and containers, but uses alternative text. The computation of
textUnderElement is now recursive and doesn't depend on text
iterators, which might not do the right thing for accessibility
anyways.
For GTK, the old behavior is retained so that support for
the object replacement character is still there. Filed a new
bug (105214) for GTK folks to look at this.
Test: accessibility/button-title-uses-inner-img-alt.html
Test: accessibility/focusable-div.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore):
(WebCore::shouldUseAccessiblityObjectInnerText):
(WebCore::AccessibilityNodeObject::textUnderElement):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textUnderElement):
2012-12-17 Otto Derek Cheung <otcheung@rim.com>
[BlackBerry] Prevent CookieManager from blocking the WKT thread
https://bugs.webkit.org/show_bug.cgi?id=105111
Prevent CookieManager from blocking the WKT Thread.
PR 265603
Reviewed by Rob Buis.
Adding some guards to CookieManager so it will return immedately
if getCookie functions are called when the database isn't loaded yet.
setCookie functions will be redispatched until the database is ready.
* platform/blackberry/CookieManager.cpp:
(WebCore::CookieManager::CookieManager):
(WebCore::CookieManager::setCookies):
(WebCore::CookieManager::getCookie):
(WebCore::CookieManager::generateHtmlFragmentForCookies):
(WebCore::CookieManager::getRawCookies):
(WebCore::CookieManager::removeAllCookies):
(WebCore::CookieManager::getBackingStoreCookies):
(WebCore::CookieManager::setPrivateMode):
(WebCore::CookieManager::removeCookieWithName):
* platform/blackberry/CookieManager.h:
2012-12-17 Levi Weintraub <leviw@chromium.org>
Add support for tracking hit test rectangles to enable fast event rejection in the compositor
https://bugs.webkit.org/show_bug.cgi?id=103914
Reviewed by James Robinson.
Adding support for tracking hit test target regions for the purpose of performing initial hit testing
in the compositor to avoid blocking scrolling on the main thread while waiting to hit test events that
aren't occuring in regions with handlers. This is initially being done to avoid having to go to the main
thread when scrolling by flicking on touch devices when the flick occurs outside a tracked touch event
region. This patch includes the implementation to turn this on in Chromium.
To accomplish this goal, Document will now keep a counted hash set of nodes with touch event handlers
instead of only an unsigned integer of the total count. ScrollingCoordinator then updates the compositor
when new touch event handlers are registered or removed, or after layout much like how
nonFastScrollableRegions are currently tracked.
This implementation will not properly update the hit test rects when the renderers are inside a sub-
tree that scrolls.
This change was initially rolled out due to stale Node pointers in Document's touchEventTargets. This
patch adds a callback to remove the Node from that structure to Node's destructor. This is covered
by the touch-target-removed-crash.html test case which is also added.
Test: platform/chromium/fast/events/touch/compositor-touch-hit-rects.html
platform/chromium/fast/events/touch/touch-target-removed-crash.html
* dom/Document.cpp:
(WebCore::Document::Document): Added a HashCountedSet of touch target nodes. Note: DOMWindow targets
are stored as the Document they point to.
(WebCore::Document::didAddTouchEventHandler): Changed to keep track of the handler instead of a count, and
to update the ScrollingCoordinator with the change.
(WebCore::Document::didRemoveTouchEventHandler): Ditto.
* dom/Document.h:
(WebCore::Document::hasTouchEventHandlers): It's no longer O(1) to get the count of touch handlers, so
expose whether there are any or not.
(WebCore::Document::touchEventTargets):
* dom/Node.cpp:
(WebCore::Node::didMoveToNewDocument):
(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):
* history/CachedFrame.cpp:
(WebCore::CachedFrameBase::restore):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::~HTMLInputElement):
(WebCore::HTMLInputElement::updateType):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener): Add the Document to the touch target set instead of DOMWindow.
(WebCore::DOMWindow::removeEventListener):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleTouchEvent):
* page/Frame.cpp:
(WebCore::Frame::setDocument):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::computeAbsoluteTouchEventTargetRects): Walk the renderers for event handler
nodes and generate the absolute hit testing rects.
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::setTouchEventTargetRectsChanged): Hook to pass along the hit test rects to
the scrolling tree/compositor.
(ScrollingCoordinator):
* page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
(WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
(WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRectsChanged):
(WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
(WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRects):
* page/scrolling/chromium/ScrollingCoordinatorChromium.h:
(ScrollingCoordinatorChromium):
* testing/Internals.cpp:
(WebCore::Internals::touchEventHandlerCount): Changed to do the work to calculate the actual count since
it's no longer stored as an int in Document.
(WebCore::Internals::touchEventTargetClientRects):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2012-12-17 Avi Drissman <avi@chromium.org>
Dragging a .jpg to Finder saves it as .jpeg
https://bugs.webkit.org/show_bug.cgi?id=105140
https://code.google.com/p/chromium/issues/detail?id=35811
Reviewed by Tony Chang.
If the filename's extension is already valid for the MIME type, we don't
need to rewrite it to the preferred extension.
No layout tests because it involves dragging items to the desktop.
* platform/chromium/ClipboardChromium.cpp:
(WebCore::writeImageToDataObject):
2012-12-17 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Exclusions] shape-outside on floats for rectangle shapes height/width
https://bugs.webkit.org/show_bug.cgi?id=100398
Reviewed by Julien Chaffraix.
Implement shape outside for floats changing only the height and width
as a simple starting point.
This implementation changes floats to use the bounding box of the
shape outside instead of the margin box for layout. The content box of
the float is unchanged. This patch does not support positioning the
shape outside box, so the x and y parameters are currently ignored in
the specified shape. This will be fixed in a patch for bug 100399.
Tests: fast/exclusions/shape-outside-floats/shape-outside-floats-margin-is-ignored.html
fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rectangle-horizontal-multiple.html
fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rectangle-percentage.html
fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rectangle.html
* CMakeLists.txt: Add ExclusionShapeOutsideInfo.{cpp,h}.
* GNUmakefile.list.am: Add ExclusionShapeOutsideInfo.{cpp,h}.
* Target.pri: Add ExclusionShapeOutsideInfo.{cpp,h}.
* WebCore.gypi: Add ExclusionShapeOutsideInfo.{cpp,h}.
* WebCore.vcproj/WebCore.vcproj: Add ExclusionShapeOutsideInfo.{cpp,h}.
* WebCore.xcodeproj/project.pbxproj: Add ExclusionShapeOutsideInfo.{cpp,h}.
* rendering/ExclusionShapeOutsideInfo.cpp: Added. Associates the
ExclusionShape object for shape outside with a RenderBox. Analagous to
ExclusionShapeInsideInfo.
(WebCore::exclusionShapeOutsideInfoMap):
(WebCore::ExclusionShapeOutsideInfo::ExclusionShapeOutsideInfo):
(WebCore::ExclusionShapeOutsideInfo::~ExclusionShapeOutsideInfo):
(WebCore::ExclusionShapeOutsideInfo::ensureInfoForRenderBox):
(WebCore::ExclusionShapeOutsideInfo::infoForRenderBox):
(WebCore::ExclusionShapeOutsideInfo::isInfoEnabledForRenderBox):
(WebCore::ExclusionShapeOutsideInfo::removeInfoForRenderBox):
(WebCore::ExclusionShapeOutsideInfo::computedShape):
* rendering/ExclusionShapeOutsideInfo.h: Added. Associates the
ExclusionShape object for shape outside with a RenderBox. Analagous to
ExclusionShapeInsideInfo.
(ExclusionShapeOutsideInfo):
(WebCore::ExclusionShapeOutsideInfo::create):
(WebCore::ExclusionShapeOutsideInfo::shapeLogicalLeft):
(WebCore::ExclusionShapeOutsideInfo::shapeLogicalRight):
(WebCore::ExclusionShapeOutsideInfo::shapeLogicalTop):
(WebCore::ExclusionShapeOutsideInfo::shapeLogicalBottom):
(WebCore::ExclusionShapeOutsideInfo::shapeLogicalWidth):
(WebCore::ExclusionShapeOutsideInfo::shapeLogicalHeight):
(WebCore::ExclusionShapeOutsideInfo::setShapeSize):
(WebCore::ExclusionShapeOutsideInfo::dirtyShapeSize):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::insertFloatingObject): Use the shape outside's bounding box to set the width that is
used for inline layout for the float and it's siblings.
(WebCore::RenderBlock::positionNewFloats): Use the shape outside's bounding box to set the height that
is used for inline layout for the float and it's siblings. Ignore margins when positioning if the float
has shape outside, per the exclusions spec.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::willBeDestroyed): Clean up associated ExclusionShape.
(WebCore::RenderBox::styleDidChange): Handle style change for shape outside.
(WebCore::RenderBox::updateExclusionShapeOutsideInfoAfterStyleChange): Handle style change for shape outside.
* rendering/RenderBox.h:
(WebCore::RenderBox::exclusionShapeOutsideInfo): Get the ExclusionShapeOutsideInfo associated with this
RenderBox.
2012-12-17 John J. Barton <johnjbarton@chromium.org>
Web Inspector: Search by selection
https://bugs.webkit.org/show_bug.cgi?id=104970
Reviewed by Vsevolod Vlasov.
Upon activation of the search control, conditionally set input.value to window.getSelection().
For both single file (SearchController) and multifile (AdvancedSearchController).
Test: inspector/editor/text-editor-selection-to-search.html
* inspector/front-end/AdvancedSearchController.js:
(WebInspector.AdvancedSearchController.prototype.show):
(WebInspector.SearchView.prototype.syncToSelection):
* inspector/front-end/SearchController.js:
(WebInspector.SearchController.prototype.showSearchField):
2012-12-17 Eduardo Lima Mitev <elima@igalia.com>
[GStreamer] Use gst_element_link_pads_full() with CHECK_NOTHING for speed and sanity
https://bugs.webkit.org/show_bug.cgi?id=105181
Reviewed by Philippe Normand.
Replace some calls to gst_pad_link() on request pads, by
gst_element_link_pads_full() with CHECK_NOTHING flag, removing
unnecessary pad compatibility checks and simplifying code.
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcConstructed): Links audioconvert source with a
requested interleave sink using gst_element_link_pads_full().
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Links a
requested source pad from videoTee with the queue sink.
2012-12-17 Emil A Eklund <eae@chromium.org>
Clamp values in LayoutUnit::operator/ when SATURATED_LAYOUT_ARITHMETIC is enabled
https://bugs.webkit.org/show_bug.cgi?id=104955
Reviewed by Julien Chaffraix.
LayoutUnit::operator/ currently does not clamp values and
instead overflows when given a value greater than INT_MAX or
less than INT_MIN.
Test: TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp
* platform/LayoutUnit.h:
(WebCore::operator/):
Clamp value if SATURATED_LAYOUT_ARITHMETIC is enabled.
2012-12-17 Simon Fraser <simon.fraser@apple.com>
Don't allow edge TileCache tiles to be larger than necessary
https://bugs.webkit.org/show_bug.cgi?id=105195
Reviewed by Anders Carlsson.
The TileCache would allow edge tiles to be larger than the required size, with the assumption
that the extra space would never be visible. However, for content tiled layers, it can be,
and it doesn't get correctly cleared. So always keep the edge tiles at the specified size.
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::revalidateTiles):
2012-12-17 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Exclusions] Floats should respect shape-inside on exclusions
https://bugs.webkit.org/show_bug.cgi?id=89261
Reviewed by David Hyatt.
Position floats properly with respect to an exclusion shape. Note that
this will not attempt to position floats in a polygon that has
multiple segments. In the multiple segment case, the floats will be
positioned as if the exclusion did not exist.
Updated an existing test case to test for this.
Test: fast/exclusions/shape-inside/shape-inside-floats-simple.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeLogicalLocationForFloat): Adjust the
right and left offsets to take into account the right and left offset
contributed by the exclusion shape.
2012-12-17 Antoine Quint <graouts@apple.com>
GraphicsLayer's repaint count should update even when debugging option to show it is off
https://bugs.webkit.org/show_bug.cgi?id=105178
Reviewed by Simon Fraser.
Update the repain count even if the debug option to show them is turned off.
This allows the count to be accurate in between toggles of the debug option
and to allow the InspectorLayerTreeAgent to get accurate results any time
the layer tree is requested (see webkit.org/b/105024).
* platform/graphics/mac/WebLayer.mm:
(drawLayerContents):
2012-12-17 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Add helper functions for converting floats to LayoutUnits
https://bugs.webkit.org/show_bug.cgi?id=103450
Reviewed by Dirk Schulze.
When a float logicalTop value is converted to a LayoutUnit it's necessary to
use LayoutUnit::fromFloatCeil() to ensure that we're snapping to a value that's
inside the ExclusionShape. Similarly, to convert a logicalBottom value from
float to LayoutUnit we use LayoutUnit::fromFloatFloor(). Added a pair of private
ExlcusionShapeInsideInfo methods that do the conversions and refactored existing
code to use them.
This is just a cleanup. No new tests are needed, the existing tests cover
these changes.
* rendering/ExclusionShapeInsideInfo.cpp:
(WebCore::ExclusionShapeInsideInfo::adjustLogicalLineTop): Use the new floatLogicalTopToLayoutUnit() method.
* rendering/ExclusionShapeInsideInfo.h:
(WebCore::ExclusionShapeInsideInfo::shapeLogicalTop): Use the new floatLogicalTopToLayoutUnit() method.
(WebCore::ExclusionShapeInsideInfo::shapeLogicalBottom): Use the new floatLogicalBottomToLayoutUnit() method.
(ExclusionShapeInsideInfo):
(WebCore::ExclusionShapeInsideInfo::floatLogicalTopToLayoutUnit): Convert a float to a LayoutUnit with LayoutUnit::fromFloatCeil().
(WebCore::ExclusionShapeInsideInfo::floatLogicalBottomToLayoutUnit): Convert a float to a LayoutUnit with LayoutUnit::fromFloatFloor().
2012-12-17 Antoine Quint <graouts@apple.com>
Web Inspector: Provide the paint count of layers through the LayerTreeAgent
https://bugs.webkit.org/show_bug.cgi?id=105024
Reviewed by Pavel Feldman.
We add a new optional .paintCount property to the Layer object, passing through the
relevant information from GraphicsLayer.
* inspector/Inspector.json:
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
2012-12-17 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: [chromium] make toolbar render with Mountain Lion-friendly colors
https://bugs.webkit.org/show_bug.cgi?id=105177
Reviewed by Vsevolod Vlasov.
* inspector/front-end/UIUtils.js:
(WebInspector.platformFlavor):
* inspector/front-end/inspector.css:
(#toolbar):
(body.dock-to-bottom #toolbar):
(.toolbar-item):
2012-12-17 Andreas Kling <akling@apple.com>
Attribute: Remove unused constructor and isNull().
<http://webkit.org/b/105179>
Reviewed by Antti Koivisto.
Removed the Attribute constructor that takes a localName rather than a full QualifiedName as that was never used.
Also removed Attribute::isNull(), since that was only called in one place where isNull() will never be true.
* dom/Attribute.h:
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::collectStyleForPresentationAttribute):
2012-12-17 Anthony Scian <ascian@rim.com>
[Blackberry] Static code analysis warning fixes
https://bugs.webkit.org/show_bug.cgi?id=105129
Reviewed by Rob Buis.
- alloca can return NULL, recoded to just use a temp var
* plugins/blackberry/PluginViewBlackBerry.cpp:
(WebCore::PluginView::updateBuffer):
2012-12-17 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Make popover content accessible for clicks.
https://bugs.webkit.org/show_bug.cgi?id=105167
Reviewed by Vsevolod Vlasov.
Currently it is very hard to move mouse pointer inside of popover area.
The only maneuver is to precisely jerk the mouse in direction of popover.
This path makes anchor and popover "active" areas overlap, so it becomes
possible to smoothly move mouse to popover interior.
* inspector/front-end/Popover.js:
(WebInspector.Popover.prototype._innerShow): Make popover "outer" border
an be "active" area.
* inspector/front-end/popover.css: Allow popover "outer" border receive
mouse events.
2012-12-17 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: Persist Audit selections across sessions
https://bugs.webkit.org/show_bug.cgi?id=103944
Reviewed by Alexander Pavlov.
Make selected audit categories a persistent setting, to simplify life for those
repeatedly running same set of categories.
* inspector/front-end/AuditLauncherView.js:
(WebInspector.AuditLauncherView):
(WebInspector.AuditLauncherView.prototype.addCategory.get var):
(WebInspector.AuditLauncherView.prototype.addCategory):
(WebInspector.AuditLauncherView.prototype._selectAllClicked):
(WebInspector.AuditLauncherView.prototype._categoryClicked):
(WebInspector.AuditLauncherView.prototype._createCategoryElement):
2012-12-17 Zeno Albisser <zeno@webkit.org>
[Texmap] Drawing of ARB textures broken after r137498.
https://bugs.webkit.org/show_bug.cgi?id=105165
Disable antialiasing for ARB textures after unifying
code paths. We are currently missing a fragment shader
to do antialiasing with ARB textures.
Reviewed by Kenneth Rohde Christiansen.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawTexture):
2012-12-17 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Popup flickers when cursor moves between elements with same anchor.
https://bugs.webkit.org/show_bug.cgi?id=104992
Reviewed by Pavel Feldman.
Popup disappears and then appears again when mouse pointer traverses
between sub-elements of anchor element.
* inspector/front-end/Popover.js: Split method "_mouseOut".
(WebInspector.PopoverHelper.prototype._popoverMouseOut):
Handler for Popover.
(WebInspector.PopoverHelper.prototype._mouseOut):
Handler for PopoverHelper.
2012-12-12 Andrey Kosyakov <caseq@chromium.org>
[Chromium] Remove support for TRACE_EVENT_IF_LONGER_THANx macros
https://bugs.webkit.org/show_bug.cgi?id=104784
Reviewed by Pavel Feldman.
- removed TRACE_EVENT_IF_LONGER_THANx macros;
- changed addTraceEvent() to return void, as we no longer need the index of added event.
* platform/EventTracer.h:
(EventTracer):
* platform/chromium/EventTracerChromium.cpp:
(WebCore::EventTracer::addTraceEvent):
* platform/chromium/TraceEvent.h:
(TraceEvent):
(WebCore::TraceEvent::addTraceEvent):
(WebCore::TraceEvent::TraceEndOnScopeClose::addEventIfEnabled):
(Data):
2012-12-17 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r136794.
http://trac.webkit.org/changeset/136794
https://bugs.webkit.org/show_bug.cgi?id=104203
The GC change can leak memory
* bindings/v8/V8GCController.cpp:
(WebCore):
(WebCore::addImplicitReferencesForNodeWithEventListeners):
2012-12-17 Gabor Rapcsanyi <rgabor@webkit.org>
Reduce the code size of ARM SIMD in GraphicsContext3D
https://bugs.webkit.org/show_bug.cgi?id=105086
Reviewed by Zoltan Herczeg.
Reduce the code size of ARM SIMD in GraphicsContext3D and change the ARM
namespace to SIMD.
* platform/graphics/GraphicsContext3D.cpp:
(WebCore):
* platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
(WebCore::SIMD::unpackOneRowOfRGBA4444ToRGBA8):
(WebCore::SIMD::packOneRowOfRGBA8ToUnsignedShort4444):
(WebCore::SIMD::unpackOneRowOfRGBA5551ToRGBA8):
(WebCore::SIMD::packOneRowOfRGBA8ToUnsignedShort5551):
(WebCore::SIMD::unpackOneRowOfRGB565ToRGBA8):
(WebCore::SIMD::packOneRowOfRGBA8ToUnsignedShort565):
2012-12-16 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: frame bars on timeline do not react on hover and double click
https://bugs.webkit.org/show_bug.cgi?id=105153
Reviewed by Alexander Pavlov.
Remove z-index: -100 from #timeline-grid-header, as it prevents mouse events from
reaching frame strip. Use pointer-events: none on frame dividers instead.
* inspector/front-end/timelinePanel.css:
(.timeline .resources-event-divider.timeline-frame-divider):
(#timeline-grid-header):
2012-12-16 Kentaro Hara <haraken@chromium.org>
[V8] Improve performance of a conversion from WebKit strings to V8 strings
https://bugs.webkit.org/show_bug.cgi?id=105150
Reviewed by Eric Seidel.
V8 provides v8::Weak(isolate) and v8::Local::New(isolate, ...),
which are much faster than v8::Weak() and v8::Local::New().
By using the faster APIs, we can improve performance of a conversion
from a WebKit string to a V8 string. This improves performance of
div.id, div.className, ...and a lot of DOM attributes that return
strings.
[Dromaeo/dom-attr]
120 runs/sec, 120 runs/sec, 118 runs/sec => 125 runs/sec, 123 run/sec, 125 runs/sec (+4.1%)
[Dromaeo/dom-traverse]
94 runs/sec, 94 runs/sec, 96 runs/sec => 107 runs/sec, 105 runs/sec, 107 runs/sec (+12.3%)
[Bindings/id-getter]
356 runs/sec, 356 runs/sec, 341 runs/sec => 423 runs/sec, 424 runs/sec, 424 runs/sec (+20.7%)
No tests. No change in behavior.
* bindings/v8/V8ValueCache.h:
(WebCore::StringCache::v8ExternalString):
2012-12-16 Arvid Nilsson <anilsson@rim.com>
[BlackBerry] Adapt to new BlackBerry::Platform::TouchPoint API
https://bugs.webkit.org/show_bug.cgi?id=105143
RIM PR 171941
Reviewed by Rob Buis.
Internally reviewed by George Staikos.
TouchPoint instances now provide document coordinates for the viewport
and content position of the touch event. The pixel coordinates stored
in the TouchPoint should no longer be needed in WebKit.
Also adapt to new method names and encapsulation of TouchPoint data
members.
No change in behavior, no new tests.
* platform/blackberry/PlatformTouchPointBlackBerry.cpp:
(WebCore::PlatformTouchPoint::PlatformTouchPoint):
2012-12-16 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Fix JS compiler warning.
https://bugs.webkit.org/show_bug.cgi?id=105032
Reviewed by Pavel Feldman.
Problem: event handler parameter has actial parameter
type KeyboardEvent, but ".addEventListener" refuses listeners with such
signature.
Solution: explicitly upcast argument type.
* inspector/front-end/ElementsTreeOutline.js: Update JsDocs.
2012-12-16 Tim Horton <timothy_horton@apple.com>
PDFPlugin: The "Open in Preview" HUD button should work
https://bugs.webkit.org/show_bug.cgi?id=102448
<rdar://problem/12695729>
Reviewed by Alexey Proskuryakov.
Expose createCanonicalUUIDString and UUID.h.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
2012-12-16 Seokju Kwon <seokju.kwon@gmail.com>
Fix unused parameter compile warnings
https://bugs.webkit.org/show_bug.cgi?id=105089
Reviewed by Kentaro Hara.
Use UNUSED_PARAM macro to fix build warning -Wunused-parameter.
No new tests, no behavior change.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::supportsProfiling):
(WebCore::JSDOMWindowBase::supportsRichSourceInfo):
2012-12-16 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/12886898> Bundle uploads don't work
https://bugs.webkit.org/show_bug.cgi?id=105149
Reviewed by Sam Weinig.
* WebCore.exp.in: Exported FormData::removeGeneratedFilesIfNeeded().
* platform/network/FormData.cpp:
(WebCore::encodeElement):
(WebCore::decodeElement):
Encode generated file name for archive, too. I'm not entirely sure how this affects other uses
of FormData serialization, but it seems logical that if we encode m_hasGeneratedFiles, we
should also encode their names.
2012-12-16 Hayato Ito <hayato@chromium.org>
[Shadow DOM] Kill ShadowRoot constructor
https://bugs.webkit.org/show_bug.cgi?id=102913
Reviewed by Dimitri Glazkov.
Re-landing r137408 which breaks browser tests on chromium. I've
updated the browser tests on chromium so that they do not use
WebKitShadowRoot constructor.
No new tests. Updating existing layout tests.
* dom/ShadowRoot.idl:
* page/DOMWindow.idl:
2012-12-16 Jon Lee <jonlee@apple.com>
Allow built-in PDF plugin and plugin documents to auto-start
https://bugs.webkit.org/show_bug.cgi?id=105000
<rdar://problem/12633351>
Reviewed by Sam Weinig.
Plug-ins in plug-in documents that are in the main frame should always auto-start.
Add a virtual function that returns whether the PluginViewBase should auto-start its plug-in.
Add a callback that gives the HTML plug-in element an opportunity to set the display state
based on the widget.
* plugins/PluginViewBase.h:
(WebCore::PluginViewBase::shouldAlwaysAutoStart): Added. By default returns false.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Renamed from
subframeLoaderWillLoadPlugIn() for consistency. This call will also be made a little later
in the subframe loader. Adds a check to see if the plug-in is inside a plug-in document
of the main frame. If so, auto-start.
(WebCore::HTMLPlugInImageElement::subframeLoaderDidCreatePlugIn): Given the widget created,
check to see if it should always auto-start. If so, set the display state to Playing. Otherwise
leave the display state alone.
* html/HTMLPlugInImageElement.h:
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::requestPlugin): Move the will-load-plug-in call into loadPlugin().
(WebCore::SubframeLoader::loadPlugin): Immediately prior to the plug-in's creation, make the
will-create call. If a plug-in was made, make the did-create call. The did-create call should
be made before setWidget() since that might initialize the plug-in, which could take the display
state into account if being initialized synchronously.
2012-12-16 Huang Dongsung <luxtella@company100.net>
[TexMap] Perform the layer-tree traversal in GraphicsLayerTextureMapper.
https://bugs.webkit.org/show_bug.cgi?id=103366
Reviewed by Noam Rosenthal.
Currently, Texture Mapper performs the layer-tree traversal in
TextureMapperLayer, while Coordinated Graphics performs the traversal in
CoordinatedGraphicsLayer. This patch makes Texture Mapper perform the
traversal in GraphicsLayerTextureMapper.
Also removed the SyncOptions enum, which is redundant since no client
calls it with ComputationsOnly.
This is in preparation for refactoring TextureMapper to work in an actor
model (http://webkit.org/b/103854).
No new tests. Covered by existing tests.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
(WebCore::GraphicsLayerTextureMapper::flushCompositingState):
(WebCore::GraphicsLayerTextureMapper::didFlushCompositingState):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(GraphicsLayerTextureMapper):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
* platform/graphics/texmap/TextureMapperLayer.h:
(TextureMapperLayer):
2012-12-16 Levi Weintraub <leviw@chromium.org>
Push pixel snapping logic into TransformState
https://bugs.webkit.org/show_bug.cgi?id=101779
Reviewed by Simon Fraser.
The old SnapOffsetForTransforms behavior fell apart when there was content nested in
multiple levels of containers with sub-pixel offsets. The point of this flag was to
mirror the pixel snapping that occurs in paint, where offsets are accumulated bottom-
up through the render tree and snapped at the end. This change eliminates this flag
and pushes pixel snapping logic down into TransformState.
TransformState now tracks a LayoutSize accumulated offset when there's no transform
or we're just translating. We then snap and apply this offset before accumulating
values into a transform, and when returning planar coordinates to callers.
Test: fast/sub-pixel/transformed-iframe-copy-on-scroll.html added,
fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html modified to also catch this bug.
* platform/graphics/transforms/TransformState.cpp:
(WebCore::TransformState::operator=): Pass accumulated offset.
(WebCore::TransformState::translateTransform): Extracted this functionality for
re-use when applying the accumulated offset, or accumulating from a call to move.
(WebCore::TransformState::translateMappedCoordinates): Same as above when we're not
acculating into a transform.
(WebCore::TransformState::move): Changed to accumulate into m_accumulatedOffset when
not accumulating into a transform.
(WebCore::TransformState::applyAccumulatedOffset):
(WebCore::TransformState::applyTransform): Applies the accumulated offset before the
transform.
(WebCore::TransformState::flatten): Ditto for flattening.
(WebCore::TransformState::mappedPoint): Translates by the accumulated offset before
returning.
(WebCore::TransformState::mappedQuad): Ditto.
* platform/graphics/transforms/TransformState.h:
(TransformState): Added m_accumulatedOffset.
* rendering/RenderGeometryMap.cpp:
(WebCore::RenderGeometryMap::mapToContainer): When not using a transform, we still need
to snap our offset before applying to our float result. Also, flatten when we have a
non-uniform step.
* rendering/RenderGeometryMap.h:
(RenderGeometryMap): Remove use of SnapOffsetForTransforms.
Everything below simply drops the use of SnapOffsetForTransforms:
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::getUpperLeftCorner):
* dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::computeRelativePosition):
* editing/FrameSelection.cpp:
(WebCore::CaretBase::absoluteBoundsForLocalRect):
* editing/RenderedPosition.cpp:
(WebCore::RenderedPosition::absoluteRect):
* editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::absoluteCaretBounds):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::setPositionFromPoint):
* html/shadow/SpinButtonElement.cpp:
(WebCore::SpinButtonElement::defaultEventHandler):
* page/FrameView.cpp:
(WebCore::FrameView::convertFromRenderer):
(WebCore::FrameView::convertToRenderer):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintDocumentMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
(WebCore::InlineTextBox::computeRectForReplacementMarker):
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::mapLocalToContainer):
(WebCore::RenderBox::pushMappingToContainer):
* rendering/RenderBox.h:
(RenderBox):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::userResize):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::mapLocalToContainer):
(WebCore::RenderInline::pushMappingToContainer):
* rendering/RenderInline.h:
(RenderInline):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::absoluteToContents):
(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::childrenClipRect):
(WebCore::RenderLayer::selfClipRect):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::contentsVisible):
* rendering/RenderMediaControls.cpp:
(WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::showPopup):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::absoluteFocusRingQuads):
* rendering/RenderObject.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::absoluteRectsForRange):
(WebCore::RenderText::absoluteQuads):
(WebCore::RenderText::absoluteQuadsForRange):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
* rendering/RenderView.cpp:
(WebCore::RenderView::selectionBounds):
* rendering/RenderView.h:
(RenderView):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::updateWidgetGeometry):
* rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::mapLocalToContainer):
* rendering/svg/RenderSVGForeignObject.h:
(RenderSVGForeignObject):
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::mapLocalToContainer):
* rendering/svg/RenderSVGInline.h:
(RenderSVGInline):
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::mapLocalToContainer):
* rendering/svg/RenderSVGModelObject.h:
(RenderSVGModelObject):
* rendering/svg/RenderSVGRoot.h:
(RenderSVGRoot):
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::mapLocalToContainer):
* rendering/svg/RenderSVGText.h:
(RenderSVGText):
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::mapLocalToContainer):
* rendering/svg/SVGRenderSupport.h:
(SVGRenderSupport):
2012-12-15 Anders Carlsson <andersca@apple.com>
Rename FrameLoaderClient::download to convertMainResourceLoadToDownload
https://bugs.webkit.org/show_bug.cgi?id=105122
Reviewed by Andreas Kling.
Rename FrameLoaderClient::download to convertMainResourceLoadToDownload and change it to take a MainResourceLoader instead
of a ResourceHandle, since resource handles may not exist when loading isn't done in the web process.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* loader/EmptyClients.h:
* loader/FrameLoaderClient.h:
(WebCore):
(FrameLoaderClient):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::continueAfterContentPolicy):
2012-12-16 Eric Carlson <eric.carlson@apple.com>
Remove in-band text tracks when media element's src changes
https://bugs.webkit.org/show_bug.cgi?id=105081
Reviewed by Sam Weinig.
No new tests, media/track/track-in-band.html was updated to test this change.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerDidRemoveTrack): Move some code into removeTrack.
(WebCore::HTMLMediaElement::removeTrack): New, remove a track and all of its cues.
(WebCore::HTMLMediaElement::removeAllInbandTracks): New, remove all in-band tracks.
(WebCore::HTMLMediaElement::clearMediaPlayer): Call removeAllInbandTracks.
* html/HTMLMediaElement.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Call clearTextTracks.
(WebCore::MediaPlayerPrivateAVFoundationObjC::clearTextTracks): Remove all tracks from client.
2012-12-16 Simon Fraser <simon.fraser@apple.com>
Fix assertions when doing a full repaint of compositing layers
https://bugs.webkit.org/show_bug.cgi?id=105128
Reviewed by Dan Bernstein.
In r137811 I added code to repaint all compositing layers when FrameView::layout()
is doing a full repaint. However, this code needs to avoid calling setContentsNeedDisplay()
on layers that don't actually draw their own content: those that draw into an ancestor,
and those that draw into a window.
Fixes assertions in existing tests.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAfterLayout):
2012-12-16 ChangSeok Oh <shivamidow@gmail.com>
[GTK][AC] Build failure with an option --with-acceleration-backend=clutter
https://bugs.webkit.org/show_bug.cgi?id=105027
Reviewed by Gustavo Noronha Silva.
GLContext.* and RedirectedXCompositeWindow.* are meaningful only if opengl is
a backend for the AC. So I wrap them in USE_OPENGL.
No new tests. This patch fixes a build fauilure, not adding new features.
* GNUmakefile.list.am:
2012-12-16 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
[GStreamer] create playbin in ::load(), not in player constructor
https://bugs.webkit.org/show_bug.cgi?id=103898
Reviewed by Philippe Normand.
This patch moves the instantiation of the playbin pipeline into the
WebCore::MediaPlayerPrivateGStreamer::load() method, so the pipeline
layout can reflect other predefined settings such as audio pitch
preservation in variable playback rate scenarios
No new tests. Covered by existing tests.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::load):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(MediaPlayerPrivateGStreamer):
2012-12-16 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Pseudo-elements should not be directly collected into a named flow
https://bugs.webkit.org/show_bug.cgi?id=105046
Reviewed by Abhishek Arya.
Prevent pseudo-elements to be collected into a named-flow by bailing out early in the collecting stage.
Following the CSSRegions spec, http://dev.w3.org/csswg/css3-regions/#flow-into, the pseudo-elements
like ::before/::after/::first-letter/::first-line are not allowed to become content nodes, being directly
collected into a flow thread.
Tests: fast/regions/pseudo-after-content-node.html
fast/regions/pseudo-before-content-node.html
fast/regions/pseudo-first-letter-content-node.html
fast/regions/pseudo-first-line-content-node.html
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
2012-12-16 Mihai Maerean <mmaerean@adobe.com>
[CSS Regions] broken feature detection: body.webkitRegionOverset and body.webkitGetRegionFlowRanges shouldn't succeed when disabled at runtime
https://bugs.webkit.org/show_bug.cgi?id=99707
Reviewed by Hajime Morita.
The bug is that the CSS Regions feature leaks information at run-time. There are JS properties that exist even
if the feature is disabled at run-time (document.webkitGetNamedFlows, document.body.webkitRegionOverset,
document.body.webkitGetRegionFlowRanges and window.WebKitCSSRegionRule).
The fix is to add V8EnabledAtRuntime=cssRegions in the IDL files to the properties that leak information and to
the interfaces that are the type of those properties.
Test: fast/regions/region-leak-js-information-when-disabled-at-runtime.html
* css/WebKitCSSRegionRule.idl:
added V8EnabledAtRuntime=cssRegions for the WebKitCSSRegionRule interface.
* dom/DOMNamedFlowCollection.idl:
added V8EnabledAtRuntime=cssRegions for the DOMNamedFlowCollection interface.
* dom/Document.idl:
added V8EnabledAtRuntime=cssRegions for the webkitGetNamedFlows method.
* dom/Element.idl:
added V8EnabledAtRuntime=cssRegions for the webkitRegionOverset attribute.
added V8EnabledAtRuntime=cssRegions for the webkitGetRegionFlowRanges method.
* page/DOMWindow.idl:
added V8EnabledAtRuntime=cssRegions for the WebKitCSSRegionRule attribute.
2012-12-15 Ian Vollick <vollick@chromium.org>
[chromium] Automatically use composited scrolling
https://bugs.webkit.org/show_bug.cgi?id=94743
Reviewed by Adrienne Walker.
We currently use the composited scrolling facilities provided by
wkb.ug/91117 if the overflow scroll block element is styled with
-webkit-overflow-scrolling: touch. Ideally, we could automatically
opt into composited scrolling if it is safe to do so. This can affect
antialiasing, so it is important that automatically opting in is only
enabled via a setting.
The way I determine if it is safe is by checking that z-ordering will
not be affected if the overflow scrollable element were promoted to a
stacking context (details below), and that clipping our scrolling
descendants will not affect rendering.
To check the first condition (that z-ordering will not be affected).
I ensure that the candidate element and all its descendants appear as a
contiguous block in the candidate's stacking context. That is, if no
other elements are 'between' any of the candidates descendants when we
sort in paint order, then we're safe. This is overly conservative,
however. We could, in future, only consider stacking problems between
elements that actually overlap.
To ensure that clipping will not cause a rendering change, I ensure
that the layer has no out of flow positioned descendant whose
containing block is not also a descendant of ours.
Test: compositing/overflow/automatically-opt-into-compositing-scrolling.html
(WebCore):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::acceleratedCompositingForOverflowScrollEnabled):
(WebCore):
(WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
(WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrderRecursive):
(WebCore::RenderLayer::positionNewlyCreatedOverflowControls):
(WebCore::RenderLayer::canSafelyEstablishAStackingContext):
Returns true if the RenderLayer could become a stacking context without
affecting the stacking order.
(WebCore::RenderLayer::updateDescendantDependentFlags):
We now need to keep track of out of flow positioned descendants.
(WebCore::RenderLayer::addChild):
(WebCore::RenderLayer::removeChild):
(WebCore::RenderLayer::usesCompositedScrolling):
Returns true if the layer actually is using composited scrolling.
This function may return false, even when needsCompositedScrolling
returns true.
(WebCore::RenderLayer::needsCompositedScrolling):
This function returns true if we would like to use composited
scrolling and it is safe to turn it on.
(WebCore::RenderLayer::updateNeedsCompositedScrolling):
(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::dirtyZOrderLists):
(WebCore::RenderLayer::dirtyNormalFlowList):
Since these could affect opting into composited scrolling, we must
request that the RenderLayerCompositor reevaluate compositing.
(WebCore::RenderLayer::updateLayerListsIfNeeded):
We call updateCanSafelyEstablishStackingContext here, if necessary.
(WebCore::RenderLayer::shouldBeNormalFlowOnly):
(WebCore::RenderLayer::shouldBeSelfPaintingLayer):
usesCompositedScrolling -> needsCompositedScrolling
(WebCore::RenderLayer::setAncestorChainHasOutOfFlowPositionedDescendant):
(WebCore::RenderLayer::dirtyAncestorChainHasOutOfFlowPositionedDescendantStatus):
(WebCore::RenderLayer::updateOutOfFlowPositioned):
Dirties and sets the out of flow positioned descendant state.
(WebCore::RenderLayer::styleChanged):
* rendering/RenderLayer.h:
(RenderLayer):
(WebCore::RenderLayer::hasOutOfFlowPositionedDescendant):
* rendering/RenderLayerBacking.cpp:
(WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::hasUnpositionedOverflowControlsLayers):
(WebCore):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling):
* rendering/RenderLayerCompositor.h:
(WebCore::RenderLayerCompositor::setShouldReevaluateCompositingAfterLayout):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::setEnableCompositingForOverflowScroll):
Allows enabling the setting in layout tests.
(WebCore):
* testing/InternalSettings.h:
(InternalSettings):
* testing/InternalSettings.idl:
2012-12-15 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix make distcheck.
* bindings/gobject/GNUmakefile.am: Do not dist generated DOM
bindings headers.
* platform/ScrollAnimatorNone.cpp: Include PlatformGestureEvent.h
only if gesture events are enabled.
2012-12-15 Alexey Proskuryakov <ap@apple.com>
Build fix.
* platform/network/FormData.cpp:
(WebCore::encodeElement):
(WebCore::decodeElement):
(WebCore::FormData::encode):
(WebCore::FormData::decode):
Disambiguated encode/decode functions. I'm not quite sure why the compiler was
confused, but distinct names should make the code more readable anyway.
2012-12-15 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/12886312> Cannot upload patches to Bugzilla (<input type=file> doesn't work)
https://bugs.webkit.org/show_bug.cgi?id=105120
Reviewed by Sam Weinig.
* WebCore.exp.in:
* history/HistoryItem.cpp:
* platform/network/FormData.h:
Renamed encodeForBackForward and decodeForBackForward to encode and decode, respectively.
I couldn't find anything in these that would limit them to this use, and data encoded
for b/f has to be good enough to re-create a request anyway.
* platform/network/FormData.cpp: (WebCore::decode): Fixed file data decoder to not
bail out in the general case of posting a complete file.
2012-12-15 Nima Ghanavatian <nghanavatian@rim.com>
[BlackBerry] Pass key modifiers with touch and mouse events
https://bugs.webkit.org/show_bug.cgi?id=105108
Reviewed by Rob Buis.
Call Screen to retrieve current key modifiers.
Internally reviewed by Gen Mak.
* platform/PlatformMouseEvent.h:
(PlatformMouseEvent):
* platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
(WebCore::PlatformKeyboardEvent::getCurrentModifierState):
* platform/blackberry/PlatformMouseEventBlackBerry.cpp:
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
* platform/blackberry/PlatformTouchEventBlackBerry.cpp:
(WebCore::PlatformTouchEvent::PlatformTouchEvent):
2012-12-15 Otto Derek Cheung <otcheung@rim.com>
[BlackBerry] Prevent CookieManager from blocking the WKT thread
https://bugs.webkit.org/show_bug.cgi?id=105111
PR 265603
Reviewed by Rob Buis.
Internally reviewed by Konrad Piascik.
The getBackingStoreCookies in WKT is blocking the thread because it has to wait for
the db to be opened before it can call on it.
The fix is to make CookieDatabaseBackingStore in the cookie_db thread dispatch
a getBackingStoreCookies call on WKT after invokeOpen is finished.
Tested loading the browser. Cookies are being loaded into memory on start up.
* platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
(WebCore::CookieDatabaseBackingStore::invokeOpen):
* platform/blackberry/CookieManager.cpp:
(WebCore::cookieManager):
* platform/blackberry/CookieManager.h:
2012-12-15 Simon Fraser <simon.fraser@apple.com>
Fix repaint issues when resizing a window with centered content, for platforms with a tile cache
https://bugs.webkit.org/show_bug.cgi?id=105073
Reviewed by Dan Bernstein.
There were several issues with the "do full repaint" code path in
FrameView::layout(). These caused repaint issues when resizing the web view,
especially for platforms that use a tile cache.
First, the m_doFullRepaint flag wold get clobbered on resize-layouts, because
the call to adjustViewSize() re-enters layout(), and resets the m_doFullRepaint member
variable to false, even if the outer call had previously set it to true. This would
cause us to lose track of whether we needed to do a full repaint. The patch fixes
this by restoring m_doFullRepaint to the value it had before the call to adjustViewSize().
The second problem was that full repaints would not propagate to compositing
layers. They only repainted the RenderView, and on platforms that use a tile cache,
this only repaints the top portion of that tile cache. This was fixed by sending
a NeedsFullRepaintInBacking flag down into RenderLayer::updateLayerPositions(),
and using that to do a full repaint on all compositing layers.
Sending this new flag down into updateAfterLayout() prompted some boolean/flags
cleanup with propagated into several files. This also allowed me to no longer
include RenderLayerBacking.h in RenderLayerCompositor.h, but that required
header cleanup in several files.
Automated testing is not possible because WebKitTestRunner resizes the window
asynchronously (bug 105101). Added manual test.
* page/FrameView.cpp:
(WebCore::updateLayerPositionFlags):
(WebCore::FrameView::layout):
* page/scrolling/ScrollingCoordinator.cpp:
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updateCompositingLayersAfterScroll):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAfterLayout):
(WebCore::RenderLayerBacking::contentChanged):
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
* rendering/RenderLayerCompositor.h:
* rendering/RenderObject.cpp:
* rendering/RenderView.cpp:
2012-12-15 Anders Carlsson <andersca@apple.com>
Fix build.
* platform/graphics/ca/GraphicsLayerCA.h:
Remove an unused member variable.
2012-12-15 Simon Fraser <simon.fraser@apple.com>
REGRESSION (r137006): TileCache flashes to linen, rather than the background color, when scrolling fast
https://bugs.webkit.org/show_bug.cgi?id=104746
Reviewed by Darin Adler.
Make RenderLayerBacking::updateBackgroundColor() responsible for setting the background
color of the main frame's root layer to the document background color (rather than doing
it in code related to overlay scrollbars, which was crazy). This is only done for platforms
that use a TiledBacking (currently, just Mac).
Also fix updateBackgroundColor() to not call m_graphicsLayer->setContentsToBackgroundColor()
and then call clearBackgroundColor() right away if the color was transparent.
* page/FrameView.cpp:
(WebCore::FrameView::recalculateScrollbarOverlayStyle): Remove code that calls documentBackgroundColorDidChange().
* rendering/RenderLayerBacking.cpp:
(WebCore::clipBox): Remove blank linke.
(WebCore::RenderLayerBacking::updateBackgroundColor):
* rendering/RenderLayerCompositor.cpp:
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
2012-12-15 No'am Rosenthal <noam.rosenthal@nokia.com>
Disambiguate "background color" and "contents as solid color" on GraphicsLayer
https://bugs.webkit.org/show_bug.cgi?id=104842
Reviewed by Simon Fraser.
Rename overloads in GraphicsLayerTextureMapper and GraphicsLayerChromium to account for the rename in GraphicsLayer.
Covered by existing tests.
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setContentsToSolidColor):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::solidColor):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::flushCompositingStateSelf):
* platform/graphics/texmap/TextureMapperLayer.h:
(State):
2012-12-13 Simon Fraser <simon.fraser@apple.com>
Disambiguate "background color" and "contents as solid color" on GraphicsLayer
https://bugs.webkit.org/show_bug.cgi?id=104842
Reviewed by Dean Jackson.
GraphicsLayer failed to be clear about the distinction between
the layer background color, and setting the layer contents
to a color. This caused some recently added tests to fail,
and required some special-casing for the TileCache in
GraphicsLayerCA.
Separate these two concepts on GraphicsLayer. setBackgroundColor()
now sets the background color on the entire layer, which will only
be used in special cases like the TileCache.
The existing setContentsToBackgroundColor() is renamed to
setContentsToSolidColor(), and is an explicit request to create
a contents layer for the purpose of displaying a simple color.
In both cases, 'clear' methods are not necessary; calling
the setter with an invalid color clears the color.
Covered by existing tests.
* WebCore.exp.in: Remove GraphicsLayer::clearBackgroundColor().
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer):
(WebCore::GraphicsLayer::setBackgroundColor):
(WebCore::GraphicsLayer::dumpProperties):
* platform/graphics/GraphicsLayer.h:
(GraphicsLayer): Remove m_backgroundColorSet; we just check whether
the color is a valid color now.
(WebCore::GraphicsLayer::setContentsToSolidColor):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::setBackgroundColor):
(WebCore::GraphicsLayerCA::setContentsToSolidColor):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateBackgroundColor):
(WebCore::GraphicsLayerCA::updateContentsColorLayer):
(WebCore):
* platform/graphics/ca/GraphicsLayerCA.h:
(GraphicsLayerCA):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): We have
to call updateBackgroundColor(), because the 'is simple compositing layer'
state may change in this code path.
(WebCore::RenderLayerBacking::updateBackgroundColor): Don't initialize
the Color to transparent (it will be invalid initially), and always
call setContentsToSolidColor() which will either set or remove the color.
2012-12-15 Mark Lam <mark.lam@apple.com>
Re-landing patch for "Introducing the DatabaseStrategy and database servers".
https://bugs.webkit.org/show_bug.cgi?id=104934.
Not reviewed.
Merged from r137767. Previously reviewed by Sam Weinig.
Also added __ZTVN7WebCore16DatabaseStrategyE to WebCore.exp.in.
No new tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/AbstractDatabaseServer.h: Copied from Source/WebCore/Modules/webdatabase/AbstractDatabaseServer.h.
* Modules/webdatabase/DBBackendServer.h: Copied from Source/WebCore/Modules/webdatabase/DBBackendServer.h.
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::DatabaseManager):
* Modules/webdatabase/DatabaseManager.h:
(DatabaseManager):
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/DatabaseStrategy.cpp: Copied from Source/WebCore/platform/DatabaseStrategy.cpp.
* platform/DatabaseStrategy.h: Copied from Source/WebCore/platform/DatabaseStrategy.h.
* platform/PlatformStrategies.h:
(WebCore::PlatformStrategies::databaseStrategy):
(PlatformStrategies):
(WebCore::PlatformStrategies::PlatformStrategies):
2012-12-14 Yuki Sekiguchi <yuki.sekiguchi@access-company.com>
Emphasis mark is printed after inline-block with justify
https://bugs.webkit.org/show_bug.cgi?id=104631
Reviewed by Dean Jackson.
Do not print an emphasis mark after an inline-block when justified.
If an inline-block is expanded, it has a space appended to it.
This space should not have any emphasis marks drawn.
Test: fast/inline/justify-emphasis-inline-box.html
* platform/graphics/SimpleFontData.h:
(WebCore::SimpleFontData::zeroWidthSpaceGlyph): Add getter method to get zero width space glyph.
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advanceInternal): We use zero width space for the extra space not to draw emphasis marks.
2012-12-14 Jer Noble <jer.noble@apple.com>
Unreviewed bug fix after r137782.
Add new source file TextTrackRepresentation.cpp to CMakeLists.txt.
* CMakeLists.txt:
2012-12-14 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r137767.
http://trac.webkit.org/changeset/137767
https://bugs.webkit.org/show_bug.cgi?id=105062
Broke Mac builds. (Requested by mlam on #webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/AbstractDatabaseServer.h: Removed.
* Modules/webdatabase/DBBackendServer.h: Removed.
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::DatabaseManager):
* Modules/webdatabase/DatabaseManager.h:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/DatabaseStrategy.cpp: Removed.
* platform/DatabaseStrategy.h: Removed.
* platform/PlatformStrategies.h:
(WebCore):
(WebCore::PlatformStrategies::PlatformStrategies):
(PlatformStrategies):
2012-12-14 Jer Noble <jer.noble@apple.com>
Allow the text track contents to be displayed externally to WebCore.
https://bugs.webkit.org/show_bug.cgi?id=105052
Reviewed by Eric Carlson.
Support scenarios where the text track contents must be rendered outside of WebCore, such as to an external
display or window. Add an abstract base class which encapsulates the external representation to which the
text tracks will be rendered.
Add a new abstract base class and client to wrap the external rendering of a TextTrack.
* platform/graphics/TextTrackRepresentation.h: Added.
(WebCore::TextTrackRepresentationClient::~TextTrackRepresentationClient):
(WebCore::TextTrackRepresentation::~TextTrackRepresentation):
Add an empty concrete implementation for those ports who do not yet support external display of subtitles.
* platform/graphics/TextTrackRepresentation.cpp: Added.
(NullTextTrackRepresentation):
(WebCore::NullTextTrackRepresentation::~NullTextTrackRepresentation):
(WebCore::NullTextTrackRepresentation::update):
(WebCore::NullTextTrackRepresentation::platformLayer):
(WebCore::NullTextTrackRepresentation::setContentScale):
(WebCore::NullTextTrackRepresentation::bounds):
(WebCore::TextTrackRepresentation::create):
Add methods to MediaPlayerPrivateIOS to handle the TextTrackRepresentation.
* platform/graphics/ios/MediaPlayerPrivateIOS.h:
* platform/graphics/ios/MediaPlayerPrivateIOS.mm:
(WebCore::MediaPlayerPrivateIOS::deliverNotification): Remove the representation when exiting full screen.
(WebCore::MediaPlayerPrivateIOS::requiresTextTrackRepresentation): Return YES if in full screen mode.
(WebCore::MediaPlayerPrivateIOS::setTextTrackRepresentation): Pass the representation's layer to the player plug-in.
Expose those methods via HTMLMediaElement:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::requiresTextTrackRepresentation):
(WebCore::HTMLMediaElement::setTextTrackRepresentation):
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::requiresTextTrackRepresentation):
(WebCore::MediaPlayer::setTextTrackRepresentation):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::textTrackRepresentationBoundsChanged):
(WebCore::MediaPlayerClient::paintTextTrackRepresentation):
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::requiresTextTrackRepresentation):
(WebCore::MediaPlayerPrivateInterface::setTextTrackRepresentation):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Create the representation, if necessary.
(WebCore::MediaControlTextTrackContainerElement::updateSizes): Use the representation to determine the font size.
(WebCore::MediaControlTextTrackContainerElement::paintTextTrackRepresentation): Added. Paint the TextTrack into the provided graphics context.
(WebCore::MediaControlTextTrackContainerElement::textTrackRepresentationBoundsChanged): Added. Call updateSizes().
* html/shadow/MediaControlElements.h:
Add the new files to the project.
* WebCore.xcodeproj/project.pbxproj:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
2012-12-14 Fady Samuel <fsamuel@chromium.org>
Allow embedder to observe changes to frame names
https://bugs.webkit.org/show_bug.cgi?id=104404
Reviewed by Darin Fisher.
* loader/FrameLoaderClient.h:
(WebCore::FrameLoaderClient::didChangeName):
(FrameLoaderClient):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::setName):
2012-12-14 James Simonsen <simonjam@chromium.org>
[Resource Timing] Properly report reused connections
https://bugs.webkit.org/show_bug.cgi?id=104986
Reviewed by Tony Gentilcore.
Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_connection_reuse.html
* page/PerformanceResourceTiming.cpp:
(WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
(WebCore::PerformanceResourceTiming::connectStart):
(WebCore::PerformanceResourceTiming::connectEnd):
* page/PerformanceResourceTiming.h:
(PerformanceResourceTiming):
2012-12-14 Roger Fong <roger_fong@apple.com>
Enable video caption controls on Windows.
https://bugs.webkit.org/show_bug.cgi?id=105045.
Reviewed by Eric Carlson.
Now that video tracks have been enabled on Windows, enable controls as well.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
* html/shadow/MediaControlElements.h:
* rendering/RenderThemeWin.h:
2012-12-14 Mark Lam <mark.lam@apple.com>
Introducing the DatabaseStrategy and database servers.
https://bugs.webkit.org/show_bug.cgi?id=104934.
Reviewed by Sam Weinig.
The database server is currently a placeholder that does nothing.
No new tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/AbstractDatabaseServer.h: Added.
(WebCore):
(AbstractDatabaseServer):
(WebCore::AbstractDatabaseServer::AbstractDatabaseServer):
(WebCore::AbstractDatabaseServer::~AbstractDatabaseServer):
* Modules/webdatabase/DBBackendServer.h: Added.
(DBBackend):
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::DatabaseManager):
* Modules/webdatabase/DatabaseManager.h:
(WebCore):
(DatabaseManager):
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/DatabaseStrategy.cpp: Added.
(WebCore):
(WebCore::DatabaseStrategy::getDatabaseServer):
* platform/DatabaseStrategy.h: Added.
(WebCore):
(DatabaseStrategy):
(WebCore::DatabaseStrategy::~DatabaseStrategy):
* platform/PlatformStrategies.h:
(WebCore):
(WebCore::PlatformStrategies::databaseStrategy):
(PlatformStrategies):
(WebCore::PlatformStrategies::PlatformStrategies):
2012-12-14 Anton Vayvod <avayvod@chromium.org>
Text Autosizing: Consider inline-block and inline-table elements to be autosizing clusters.
https://bugs.webkit.org/show_bug.cgi?id=104702
Reviewed by Julien Chaffraix.
A common pattern for creating adjacent columns in CSS is to set each of the columns to
display:inline-block, display:inline-table or alike WebKit-specific styles. Whenever columns
are used, Text Autosizing needs to assign each of the columns to different clusters (since
the user can zoom in such that a column fills the width of the screen, so text within a column
should have a smaller multiplier than it's wider enclosing cluster would have needed).
This patch causes display:inline-block, display:inline-table and alike styles to trigger new clusters.
Test: fast/text-autosizing/cluster-inline-block-or-table.html
Test: fast/text-autosizing/cluster-inline-grid-flex-box.html
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::isAutosizingContainer):
(WebCore::TextAutosizer::isAutosizingCluster):
Consider display:inline-block, inline-table and alike elements to be autosizing containers and clusters.
2012-12-14 Anders Carlsson <andersca@apple.com>
REGRESSION (r137607): Cannot download files, stuck in "Preparing to download"
https://bugs.webkit.org/show_bug.cgi?id=105044
<rdar://problem/12879657>
Reviewed by Alexey Proskuryakov.
Make ResourceHandle::cancel return early if the handle has been converted to a download.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::cancel):
2012-12-14 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r137570.
http://trac.webkit.org/changeset/137570
https://bugs.webkit.org/show_bug.cgi?id=105048
Stale nodes in the touchEventTarget HashCountedSet are
triggering crashes. Rolling out while I find the root cause.
(Requested by leviw on #webkit).
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::didAddTouchEventHandler):
(WebCore::Document::didRemoveTouchEventHandler):
* dom/Document.h:
(WebCore::Document::touchEventHandlerCount):
(Document):
* dom/Node.cpp:
(WebCore::Node::didMoveToNewDocument):
(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):
* history/CachedFrame.cpp:
(WebCore::CachedFrameBase::restore):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::~HTMLInputElement):
(WebCore::HTMLInputElement::updateType):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleTouchEvent):
* page/Frame.cpp:
(WebCore::Frame::setDocument):
* page/scrolling/ScrollingCoordinator.cpp:
* page/scrolling/ScrollingCoordinator.h:
* page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
(WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
* page/scrolling/chromium/ScrollingCoordinatorChromium.h:
(ScrollingCoordinatorChromium):
* testing/Internals.cpp:
(WebCore::Internals::touchEventHandlerCount):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2012-12-14 Michelangelo De Simone <michelangelo@webkit.org>
[CSS Shaders] Remove code for the other mesh box types (border-box | padding-box | content-box)
https://bugs.webkit.org/show_bug.cgi?id=103776
Reviewed by Dean Jackson.
The MeshBoxType has been removed and the code has been refactored. The specs will be updated shortly
and therefore this feature - even though it was not fully implemented yet - shall not be used anymore.
In this patch we remove everything but the parsing code, which shall be addressed in a different patch
(see: https://bugs.webkit.org/show_bug.cgi?id=103778).
Specification to be updated: http://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#ltboxgt
Existing tests have been updated and new parsing legacy cases have been added.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::valueForFilter):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseCustomFilter):
* css/CSSPrimitiveValueMappings.h:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::createCustomFilterOperation):
* platform/graphics/filters/CustomFilterConstants.h:
* platform/graphics/filters/CustomFilterOperation.cpp:
(WebCore::CustomFilterOperation::CustomFilterOperation):
(WebCore::CustomFilterOperation::blend):
* platform/graphics/filters/CustomFilterOperation.h:
(WebCore::CustomFilterOperation::create):
(CustomFilterOperation):
(WebCore::CustomFilterOperation::operator==):
* platform/graphics/filters/CustomFilterRenderer.cpp:
(WebCore::CustomFilterRenderer::create):
(WebCore::CustomFilterRenderer::CustomFilterRenderer):
* platform/graphics/filters/CustomFilterRenderer.h:
(CustomFilterRenderer):
* platform/graphics/filters/FECustomFilter.cpp:
(WebCore::FECustomFilter::FECustomFilter):
(WebCore::FECustomFilter::create):
* platform/graphics/filters/FECustomFilter.h:
(FECustomFilter):
* platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
(WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
* platform/graphics/filters/ValidatedCustomFilterOperation.h:
(WebCore::ValidatedCustomFilterOperation::create):
(WebCore::ValidatedCustomFilterOperation::operator==):
(ValidatedCustomFilterOperation):
* rendering/FilterEffectRenderer.cpp:
(WebCore::createCustomFilterEffect):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::computeFilterOperations):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawUsingCustomFilter):
2012-12-14 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: optional parameters of protocol commands should go after required ones
https://bugs.webkit.org/show_bug.cgi?id=105019
Reviewed by Pavel Feldman.
* inspector/Inspector.json: Moved required x and y parameters declaration before
optional ones.
* inspector/InspectorInputAgent.cpp:
(WebCore::InspectorInputAgent::dispatchMouseEvent):
* inspector/InspectorInputAgent.h:
(InspectorInputAgent):
2012-12-14 Jessie Berlin <jberlin@apple.com>
Mac build fix after r137724.
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerKeyAdded):
Comment out the names of the unused parameters so they don't trigger unused parameter
warnings.
(WebCore::MediaPlayerClient::mediaPlayerKeyError):
Ditto.
(WebCore::MediaPlayerClient::mediaPlayerKeyMessage):
Ditto.
(WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):
Ditto.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::generateKeyRequest):
Pass an empty URL for the new defaultURL parameter in the keyMessage call.
2012-12-14 Alberto Garcia <agarcia@igalia.com>
[GTK] When in private mode WebKitGTK+ should not save HTTP authentication credentials to the persistent storage
https://bugs.webkit.org/show_bug.cgi?id=104910
Reviewed by Martin Robinson.
Add new parameter to GtkAuthenticationDialog to select whether we
allow persistent storage of credential information or not. In the
latter case, the "Remember password" check button is not shown and
the credentials are always stored in the session.
* platform/gtk/GtkAuthenticationDialog.cpp:
(WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog):
(WebCore::GtkAuthenticationDialog::createContentsInContainer):
(WebCore::GtkAuthenticationDialog::buttonClickedCallback):
* platform/gtk/GtkAuthenticationDialog.h:
(GtkAuthenticationDialog):
2012-12-14 Andrey Kosyakov <caseq@chromium.org>
Unreviewed, rolling out r129633 and r129757.
http://trac.webkit.org/changeset/129633
http://trac.webkit.org/changeset/129757
https://bugs.webkit.org/show_bug.cgi?id=97659
Causes performance regression whn inspector overlay is
displayed
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::paint):
2012-12-14 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: add data grid for exploring native heap graph
https://bugs.webkit.org/show_bug.cgi?id=105012
Reviewed by Pavel Feldman.
Added a view for displaying native heap graph nodes.
* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::reportEdge):
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeMemorySnapshotView):
(WebInspector.NativeMemorySnapshotView.prototype._onSelectedViewChanged):
(WebInspector.NativeMemorySnapshotView.prototype.get statusBarItems):
(WebInspector.NativeHeapGraphNode):
(WebInspector.NativeHeapGraphNode.prototype.id):
(WebInspector.NativeHeapGraphNode.prototype.type):
(WebInspector.NativeHeapGraphNode.prototype.size):
(WebInspector.NativeHeapGraphNode.prototype.className):
(WebInspector.NativeHeapGraphNode.prototype.name):
(WebInspector.NativeHeapGraphNode.prototype.hasReferencedNodes):
(WebInspector.NativeHeapGraphNode.prototype.referencedNodes):
(WebInspector.NativeHeapGraphNode.prototype._firstEdgePoistion):
(WebInspector.NativeHeapGraphNode.prototype._afterLastEdgePosition):
(WebInspector.NativeHeapGraphNode.prototype._getStringField):
(WebInspector.NativeHeapGraph):
(WebInspector.NativeHeapGraph.prototype.rootNodes):
(WebInspector.NativeHeapGraph.prototype._calculateNodeEdgeIndexes):
(WebInspector.NativeHeapGraphDataGrid):
(WebInspector.NativeHeapGraphDataGridRoot):
(WebInspector.NativeHeapGraphDataGridRoot.prototype._populate):
(WebInspector.NativeHeapGraphDataGridNode):
(WebInspector.NativeHeapGraphDataGridNode.prototype._populate):
(WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
(WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
2012-12-14 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: do not validate InlineFlowBox objects against tcmalloc data.
https://bugs.webkit.org/show_bug.cgi?id=105001
Reviewed by Yury Semikhatsky.
This is a follow-up change for r137589.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::reportMemoryUsage):
(WebCore):
* rendering/InlineFlowBox.h:
(InlineFlowBox):
2012-12-14 Kentaro Hara <haraken@chromium.org>
ChildNodesLazySnapshot::nextNode() can crash in Debug builds
https://bugs.webkit.org/show_bug.cgi?id=104982
Reviewed by Ryosuke Niwa.
The original fix in r137702 was not enough. r137702 fixed a crash
in Release builds but didn't fix a crash in Debug builds.
We have to also change a return type of ChildNodesLazySnapshot::nextNode()
from a raw pointer to a RefPtr.
Test: fast/dom/insertedIntoDocument-no-crash.html
(Confirm that this test does not crash in Debug builds.)
* dom/ContainerNode.h:
(WebCore::ChildNodesLazySnapshot::nextNode):
* dom/ContainerNodeAlgorithms.cpp:
(WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
(WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
2012-12-14 John Mellor <johnme@chromium.org>
Text Autosizing: Don't autosize unwrappable blocks
https://bugs.webkit.org/show_bug.cgi?id=104925
Reviewed by Julien Chaffraix.
If we autosize an unwrappable block (white-space:nowrap/pre), it'll
expand sideways. This doesn't actually improve its legibility, and it
can often severely break web page layouts. This patch prevents us from
autosizing unwrappable blocks. A follow-up patch will address the more
complex issue of unwrappable inline elements.
Tests: fast/text-autosizing/unwrappable-blocks.html
fast/text-autosizing/unwrappable-inlines.html
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::processContainer):
Use containerShouldbeAutosized instead of contentHeightIsConstrained.
(WebCore::contentHeightIsConstrained):
Unchanged, just moved lower down the file.
(WebCore::TextAutosizer::containerShouldbeAutosized):
Checks that the block is wrappable, and also that contentHeightIsConstrained is false.
(WebCore::TextAutosizer::measureDescendantTextWidth):
Use containerShouldbeAutosized instead of contentHeightIsConstrained.
* rendering/TextAutosizer.h:
Declared containerShouldbeAutosized.
2012-12-14 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Duplicate scripts appear in workspace when script was referenced by url with a fragment part.
https://bugs.webkit.org/show_bug.cgi?id=105004
Reviewed by Alexander Pavlov.
* inspector/front-end/NetworkUISourceCodeProvider.js:
(WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
2012-12-14 Kunihiko Sakamoto <ksakamoto@chromium.org>
Hours field of date/time input UI should respect step attribute
https://bugs.webkit.org/show_bug.cgi?id=104993
Reviewed by Kent Tamura.
This patch makes step-up/-down UI of the hours field respect step attribute when possible.
Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitField): Pass step parameters to the hour field constructor.
* html/shadow/DateTimeFieldElements.cpp:
(WebCore::DateTimeHourFieldElement::DateTimeHourFieldElement): Add Parameters argument.
(WebCore::DateTimeHourFieldElement::create): Ditto.
* html/shadow/DateTimeFieldElements.h:
(DateTimeHourFieldElement): Ditto.
2012-12-14 Yury Semikhatsky <yurys@chromium.org>
Unreviewed. Windows compilation fix after r137728.
* inspector/InspectorAllInOne.cpp:
2012-12-14 Shinya Kawanaka <shinyak@chromium.org>
[Shadow DOM] ShadowRoot.getElementById() should work outside document.
https://bugs.webkit.org/show_bug.cgi?id=87815
Reviewed by Hajime Morita.
ShadowRoot.getElementById() didn't work if ShadowRoot is outside document. We need to update id when an element
is in ShadowTree event if it is not in document.
For performance reason, we introduce IsInShadowTree flag, which enables us to check isInTreeScope() fast.
This is maintained in Element::insertedInto and removedFrom. Here, we're anxious about performance regression,
however our benchmark result shows this doesn't regress the performance.
I've measured Dromaeo/dom-modify.html and Parser/html5-full-render.html 2 times.
Dromaeo/dom-modify.html
35.21, 35.27 [runs/s] ---> 35.76, 35.56 [runs/s]
Parser/html5-full-render.html
4328.51, 4254.94 [ms] ---> 4277.14, 4222.43 [ms]
Test: fast/dom/shadow/getelementbyid-in-orphan.html
* dom/Element.cpp:
(WebCore::Element::insertedInto):
* dom/Element.h:
(WebCore::Element::updateId):
* dom/Node.cpp:
(WebCore::Node::insertedInto): If the parent node is in shadow tree, this node should be also in the same shadow tree.
Since this node is inserted, parentOrHostNode() will not be null.
(WebCore::Node::removedFrom): When node is removed from ShadowTree, its treeScope() should not be ShadowRoot.
* dom/Node.h:
(Node):
(WebCore::Node::isInShadowTree):
(WebCore::Node::isInTreeScope):
2012-12-14 Antoine Quint <graouts@apple.com>
LayerTreeAgent should only be enabled upon restore if it was previously in the enabled state
https://bugs.webkit.org/show_bug.cgi?id=104887
Reviewed by Pavel Feldman.
Check that we were previously in the enabled state before re-enabling the agent upon restore,
as suggested by Pavel Feldman in follow-up discussion to https://bugs.webkit.org/show_bug.cgi?id=103513.
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::restore):
2012-12-14 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: CPU Profile: Search in "heavy" mode is very slow.
https://bugs.webkit.org/show_bug.cgi?id=103682
Reviewed by Pavel Feldman.
In "heavy" mode the searchable tree is much larger than original tree.
That is why search can cause watchdog timer fired.
Simple optimization makes search much faster.
* inspector/front-end/CPUProfileView.js:
(WebInspector.CPUProfileView.prototype.searchCanceled):
Fix cleanup.
(WebInspector.CPUProfileView.prototype.matchesQuery):
Precompute regexp.
(WebInspector.CPUProfileView.prototype.performSearch):
Use precomputed regexp instead of generating one on each iteration.
2012-12-13 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: collect native heap graph and report it to the front-end
https://bugs.webkit.org/show_bug.cgi?id=104888
Reviewed by Pavel Feldman.
Added an option to serialize native heap graph in a format similar to that
of JS heap profiler and send it in reply to getProcessMemoryDistribution
command. This is a first attempt and we likely change the report mechanism to
use a stream instread of sending whole graph at once.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* inspector/HeapGraphSerializer.cpp: Added.
(WebCore):
(HeapGraphNode):
(WebCore::HeapGraphNode::HeapGraphNode):
(HeapGraphEdge):
(WebCore::HeapGraphEdge::HeapGraphEdge):
(WebCore::HeapGraphSerializer::HeapGraphSerializer):
(WebCore::HeapGraphSerializer::~HeapGraphSerializer):
(WebCore::HeapGraphSerializer::serialize):
(WebCore::HeapGraphSerializer::reportNode):
(WebCore::HeapGraphSerializer::reportEdge):
(WebCore::HeapGraphSerializer::reportLeaf):
(WebCore::HeapGraphSerializer::reportBaseAddress):
(WebCore::HeapGraphSerializer::adjutEdgeTargets):
(WebCore::HeapGraphSerializer::addString):
* inspector/HeapGraphSerializer.h: Copied from Source/WebCore/inspector/InspectorMemoryAgent.h.
(WebCore):
(HeapGraphSerializer):
* inspector/Inspector.json:
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* inspector/InspectorMemoryAgent.h:
(InspectorMemoryAgent):
* inspector/MemoryInstrumentationImpl.cpp:
(WebCore::MemoryInstrumentationClientImpl::reportNode):
(WebCore):
(WebCore::MemoryInstrumentationClientImpl::reportEdge):
(WebCore::MemoryInstrumentationClientImpl::reportLeaf):
(WebCore::MemoryInstrumentationClientImpl::reportBaseAddress):
* inspector/MemoryInstrumentationImpl.h:
(WebCore):
(WebCore::MemoryInstrumentationClientImpl::MemoryInstrumentationClientImpl):
(MemoryInstrumentationClientImpl):
2012-12-14 Yoshifumi Inoue <yosin@chromium.org>
Handling autoscroll in EventHandler should be re-factor
https://bugs.webkit.org/show_bug.cgi?id=104764
Reviewed by Hajime Morita.
This patch introduces new class AutoscrollController for moving autoscroll
and panscroll from EventHandler class for ease of maintenance of
EventHandler and ease of adding autoscroll related features, e.g. autoscroll
during drag-and-drop, autoscoll by gesture.
No new tests. This patch doesn't change behavior.
* CMakeLists.txt: Changed to add page/AutoscrollController.cpp
* GNUmakefile.list.am: Changed to add page/AutoscrollController.{cpp,h}
* Target.pri: Changed to add page/AutoscrollController.cpp
* WebCore.gypi: Changed to add page/AutoscrollController.{cpp,h}
* WebCore.vcproj/WebCore.vcproj: Changed to add page/AutoscrollController.{cpp,h}
* WebCore.xcodeproj/project.pbxproj: Changed to add page/AutoscrollController.{cpp,h}
* page/AutoscrollController.cpp: Added.
(WebCore::getMainFrame): Helper function.
(WebCore::AutoscrollController::AutoscrollController): Moved from EventHandler.
(WebCore::AutoscrollController::autoscrollRenderer): Moved from EventHandler.
(WebCore::AutoscrollController::autoscrollInProgress): Moved from EventHandler.
(WebCore::AutoscrollController::startAutoscrollForSelection): Replacement of EventHandler::handleAutoscroll().
(WebCore::AutoscrollController::stopAutoscrollTimer): Moveed from EventHandler.
(WebCore::AutoscrollController::updateAutoscrollRenderer): ditto
(WebCore::AutoscrollController::didPanScrollStart): Added for updating pan scrolling status of main frame.
(WebCore::AutoscrollController::didPanScrollStop): ditto
(WebCore::AutoscrollController::handleMouseReleaseEvent): Extracted from EventHandler.
(WebCore::AutoscrollController::panScrollInProgress): Replacement of EventHandler::m_panScrollInProgress.
(WebCore::AutoscrollController::startPanScrolling): Moved from EventHandler::startPanScrolling()
(WebCore::AutoscrollController::autoscrollTimerFired): Moved from EventHandler::autoscrollTimerFired().
(WebCore::AutoscrollController::startAutoscrollTimer): Moved from EventHandler::startAutoscrollTimer().
(WebCore::AutoscrollController::updatePanScrollState): Moved from EventHandler::updatePanScrollState().
* page/AutoscrollController.h: Added.
(AutoscrollController):
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler): Changed autoscroll and panscroll related member variable initializations to m_autoscrollController initialization.
(WebCore::EventHandler::handleMouseDraggedEvent): Changed to call AutoscrollController::startAutoscrollForSelection().
(WebCore::EventHandler::handleMouseReleaseEvent): Changed to remove m_autoscrollInProgress reference.
(WebCore::EventHandler::didPanScrollStart): Added for updating pan scrolling status of main frame.
(WebCore::EventHandler::didPanScrollStop): ditto
(WebCore::EventHandler::startPanScrolling): Changed to call AutoscrollController::startPanScrolling().
(WebCore::EventHandler::autoscrollRenderer): Changed to use AutoscrollController.
(WebCore::EventHandler::updateAutoscrollRenderer): ditto
(WebCore::EventHandler::autoscrollInProgress): ditto
(WebCore::EventHandler::panScrollInProgress): Added to replace m_panScrollInProgress.
(WebCore::EventHandler::stopAutoscrollTimer): Changed to use AutoscrollController.
(WebCore::EventHandler::selectCursor): Changed to use panScrollInProgress().
(WebCore::EventHandler::handleMousePressEvent): Chagned to call AutoscrollController::handleMousePressEvent().
(WebCore::EventHandler::keyEvent): Changed to use panScrollInProgress().
* page/EventHandler.h:
(WebCore::EventHandler::autoscrollController): Added for using main frame's panScrollInProgress().
(WebCore::EventHandler::mouseDownWasInSubframe): Added for AutoscrollController.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::canAutoscroll): Moved from EventHandler.cpp.
(WebCore::RenderBox::findAutoscrollable): Moved from EventHandler.cpp.
* rendering/RenderBox.h:
(RenderBox): Added new functions canAutoscroll() and findAutoscrollable().
2012-12-14 David Dorwin <ddorwin@chromium.org>
EME v0.1: Report defaultURL in KeyMessage.
https://bugs.webkit.org/show_bug.cgi?id=104284
Reviewed by Darin Fisher.
Passes defaultURL down from the media engine to HTMLMediaElement.
Only Valid URLs will be passed.
No test because Clear Key does not provide a defaultURL (in v0.1).
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerKeyMessage):
* html/HTMLMediaElement.h:
(HTMLMediaElement):
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::keyMessage):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerKeyAdded):
(WebCore::MediaPlayerClient::mediaPlayerKeyError):
(WebCore::MediaPlayerClient::mediaPlayerKeyMessage):
(WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):
(MediaPlayer):
2012-12-13 Hajime Morrita <morrita@google.com>
ContentDistributor and ShadowRootContentDistributionData should use RefPtr to hold elements.
https://bugs.webkit.org/show_bug.cgi?id=104918
Reviewed by Kentaro Hara.
This change turns some raw pointers to RefPtrs.
No new tests. Hard to write reliable fast tests since the error
reproduction needs GC to run in certain timing. Although original
report has a repdocution, it takes a few seconds before crash and
isn't suited for a layout test.
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::insertionPointList):
* dom/ShadowRoot.h:
(ShadowRoot):
* html/shadow/ContentDistributor.cpp:
(WebCore::ShadowRootContentDistributionData::ensureInsertionPointList):
(WebCore::ContentDistributor::findInsertionPointFor):
(WebCore::ContentDistributor::distribute):
(WebCore::ContentDistributor::invalidate):
* html/shadow/ContentDistributor.h:
(ShadowRootContentDistributionData):
(ContentDistributor):
2012-12-13 Hajime Morrita <morrita@google.com>
NodeRenderingContext is slow due to ComposedShadowTreeWalker
https://bugs.webkit.org/show_bug.cgi?id=104332
Reviewed by Dimitri Glazkov.
NodeRenderingContext has some slowness due to the complexity of
ComposedShadowTreeWalker that NRC relies on. This change
creates some fast paths to address such slowness.
= NodeRenderingTraversal module:
This change introduces NodeRenderingTraversal namespace, a sister
of NodeTraversal. NRT consists of a set of tree traversal
functions that is responsible for traversal in NRC. Before this
change, NRC directly used CSTW. This NRT module hides and narrows
the usage of CSTW.
- Traversals provided by NRT have fast paths. In many case, such traversals
don't need to use CSTW and just goes to neighboring nodes in a plain DOM way.
- It also handles NRC specific traversal concerns like pseudo elements.
CSTW::pseudoAwareNextSibling() and CSTW::pseudoAwarePreviousSibling() are
merged into this module.
- CSTW::ParentTraversalDetails is moved and renamed to
NRT::ParentDetails with small modification. This is a pure
refactoring: As the name implies, This class is used only by NRC
and used during a traversal there.
NodeRenderingTraversal is an isolation layer between generic DOM and CSTW. This hides CSTW
behind the wall and will help further reduction of its usage.
= Node::NeedsShadowTreeWalkerFlag flag:
NRT fast path is enabled by newly introduced NeedsShadowTreeWalker
node flag. Each DOM node is now markd as NeedsShadowTreeWalker if
it requires non-trivial traversal in NRT which uses CSTW. This
means that each node can go fast path unless it is marked with this flag.
A node is marked as it NeedsShadowTreeWalker if:
- The node is a shadow boundary like InsertionPoint or ShadowRoot,
- The node has pseudo elements like generated content or
- The node is a pseudo element.
This criteria is defined in Node::needsShadowTreeWalkerSlow(). The node actually needs
the walker if the node or its parent is marked with this flag.
The original idea of this change was demonstrated by Antti Koivisto on bug 103208 and bug 104507.
This chagne has 2-3% speedup on Dromaeo/dom-modify/innerHTML on Apple Mac.
No new tests. Covered by existing tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* dom/ComposedShadowTreeWalker.cpp:
* dom/ComposedShadowTreeWalker.h:
(ComposedShadowTreeWalker): Move some part to NodeRenderingTraversal
* dom/ContainerNode.h:
(WebCore::Node::needsShadowTreeWalker): Added. This is located here since it refers ContainerNode definition.
(WebCore):
* dom/DOMAllInOne.cpp:
* dom/Element.cpp:
(WebCore::Element::updatePseudoElement): Refactored.
(WebCore::Element::hasPseudoElements): Ditto.
(WebCore::Element::pseudoElement): Ditto.
(WebCore::Element::setPseudoElement): Refactored and added a flag update logic.
(WebCore):
* dom/Element.h:
(Element):
(WebCore::Element::beforePseudoElement): Refactored.
(WebCore::Element::afterPseudoElement): Refactored.
* dom/ElementRareData.h:
(WebCore::ElementRareData::hasPseudoElements): Factored out.
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::addShadowRoot): Added a flag update logic.
* dom/Node.cpp:
(WebCore::Node::needsShadowTreeWalkerSlow): Added.
* dom/Node.h:
(WebCore::Node::isInsertionPointNode): Added.
(Node):
(WebCore::Node::isInsertionPoint): Changed to use NeedsShadowTreeWalkerFlag.
(WebCore::Node::setNeedsShadowTreeWalker):
(WebCore::Node::resetNeedsShadowTreeWalker):
* dom/NodeRenderingContext.cpp: Adopted NodeRenderingTraversal.
(WebCore::NodeRenderingContext::NodeRenderingContext):
(WebCore::NodeRenderingContext::nextRenderer):
(WebCore::NodeRenderingContext::previousRenderer):
(WebCore::NodeRenderingContext::parentRenderer):
(WebCore::NodeRenderingContext::shouldCreateRenderer):
* dom/NodeRenderingContext.h: Ditto.
(NodeRenderingContext):
(WebCore::NodeRenderingContext::parentNodeForRenderingAndStyle):
* dom/NodeRenderingTraversal.cpp: Added.
(WebCore):
(NodeRenderingTraversal):
(WebCore::NodeRenderingTraversal::ParentDetails::didTraverseInsertionPoint): Moved from ComposedShadowTreeWalker
(WebCore::NodeRenderingTraversal::ParentDetails::didTraverseShadowRoot): Ditto.
(WebCore::NodeRenderingTraversal::parentSlow): Ditto.
(WebCore::NodeRenderingTraversal::nextSiblingSlow): Ditto. The original was pseudoAwareNextSibling.
(WebCore::NodeRenderingTraversal::previousSiblingSlow): Ditto. The original was pseudoAwarePreviousSibling.
* dom/NodeRenderingTraversal.h: Added.
(WebCore):
(NodeRenderingTraversal):
(ParentDetails): Moved from ComposedShadowTreeWalker.
(WebCore::NodeRenderingTraversal::ParentDetails::ParentDetails):
(WebCore::NodeRenderingTraversal::ParentDetails::insertionPoint):
(WebCore::NodeRenderingTraversal::ParentDetails::resetStyleInheritance):
(WebCore::NodeRenderingTraversal::ParentDetails::outOfComposition):
(WebCore::NodeRenderingTraversal::ParentDetails::childWasOutOfComposition):
(WebCore::NodeRenderingTraversal::ParentDetails::operator==):
(WebCore::NodeRenderingTraversal::parent):
(WebCore::NodeRenderingTraversal::nextSibling):
(WebCore::NodeRenderingTraversal::previousSibling):
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::PseudoElement): Added an assertion.
* dom/Text.cpp:
* html/HTMLOptGroupElement.cpp: Added a #include which revealed by a chagne on NodeRenderingContext.h
* html/HTMLOptionElement.cpp: Ditto.
* html/HTMLProgressElement.cpp: Dito.
* html/shadow/InsertionPoint.h: Added an override of isInsertionPointNode().
2012-12-13 Kent Tamura <tkent@chromium.org>
Refactoring: Fix indentation of ChromeClient.h
https://bugs.webkit.org/show_bug.cgi?id=104989
Reviewed by Kentaro Hara.
The contents of an outermost namespace block should not be indented.
http://www.webkit.org/coding/coding-style.html#indentation-namespace
No behavior change.
* page/ChromeClient.h:
2012-12-13 Kunihiko Sakamoto <ksakamoto@chromium.org>
Seconds/Minutes field of date/time input UI should respect step attribute
https://bugs.webkit.org/show_bug.cgi?id=104985
Reviewed by Kent Tamura.
This patch makes step-up/-down UI of the seconds and minutes fields respect
step attribute when possible.
Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
* html/shadow/DateTimeEditElement.cpp:
(DateTimeEditBuilder):
(WebCore::DateTimeEditBuilder::visitField): Compute step parameters for seconds and minutes fields, and pass it to the field element constructors.
(WebCore::DateTimeEditBuilder::createNumericFieldParameters): Added.
* html/shadow/DateTimeFieldElements.cpp:
(WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement): Use Parameters instead of step and stepBase.
(WebCore::DateTimeMillisecondFieldElement::create): Ditto.
(WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement): Add Parameters argument.
(WebCore::DateTimeMinuteFieldElement::create): Ditto.
(WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement): Ditto.
(WebCore::DateTimeSecondFieldElement::create): Ditto.
* html/shadow/DateTimeFieldElements.h:
(DateTimeMillisecondFieldElement): Use Parameters instead of step and stepBase.
(DateTimeMinuteFieldElement): Add Parameters argument.
(DateTimeSecondFieldElement): Ditto.
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement): Use Parameters instead of step and stepBase.
* html/shadow/DateTimeNumericFieldElement.h:
(DateTimeNumericFieldElement):
(WebCore::DateTimeNumericFieldElement::Parameters::Parameters):
(Parameters): Added.
2012-12-13 Filip Pizlo <fpizlo@apple.com>
Attempt to rationalize and simplify WTF::binarySearch
https://bugs.webkit.org/show_bug.cgi?id=104890
Reviewed by Maciej Stachowiak.
Switch to using the new binarySearch() API. No change in behavior, so no new tests.
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::findInstanceTime):
2012-12-13 Takashi Sakamoto <tasak@google.com>
[Shadow DOM]: scoped styles are not applied in the cascade order.
https://bugs.webkit.org/show_bug.cgi?id=103239
Reviewed by Dimitri Glazkov.
If the scoping elements of two declarations have an ancestor/
descendant relationship, the declaration whose scoping element is
the descendant should win.
c.f. http://dev.w3.org/csswg/css3-cascade/#cascade
Test: fast/css/style-scoped/style-scoped-nested.html
fast/css/style-scoped/style-scoped-with-important-rule.html
* css/RuleSet.cpp:
(WebCore::RuleSet::addRule):
Removed specificity for @host @-rules. Now @host @-rules use the
cascading order instead.
* css/RuleSet.h:
Removed increaseSpecificity. The method is used by only @host @-rules.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::matchScopedAuthorRules):
(WebCore::StyleResolver::matchHostRules):
(WebCore::StyleResolver::matchAuthorRules):
Modified to invoke sortAndTransferMatchedRules per scoping element.
The order of "matchXXXRules" must be the same as the cascading order.
So matchHostRules was invoked after collecting all scoped author rules.
* css/StyleScopeResolver.cpp:
(WebCore::StyleScopeResolver::addHostRule):
Removed RuleIsHostRule. We don't need the flag.
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::registerWithScopingNode):
Needs to pass the last test case of style-scoped-nested.html.
When appending some style element to a shadow root, we should recalc
styles of all elements in the shadow dom tree. And if the style
element has @host @-rules, we have to update the host's style.
2012-12-13 Filip Pizlo <fpizlo@apple.com>
MediaPlayerPrivateAVFoundation::m_inbandTrackConfigurationPending is unused except when HAVE(AVFOUNDATION_TEXT_TRACK_SUPPORT)
https://bugs.webkit.org/show_bug.cgi?id=104987
Rubber stamped by Michael Saboff.
No change in behavior so no new tests.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
(MediaPlayerPrivateAVFoundation):
2012-12-13 Kentaro Hara <haraken@chromium.org>
Unreviewed. Rebaselined run-bindings-tests results.
* bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
(JSTestCustomNamedGetter):
* bindings/scripts/test/JS/JSTestEventTarget.h:
(JSTestEventTarget):
2012-12-13 Yoshifumi Inoue <yosin@chromium.org>
Unreviewed, rolling out r137691.
http://trac.webkit.org/changeset/137691
https://bugs.webkit.org/show_bug.cgi?id=104764
panscroll test on AppleWin failed
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* page/AutoscrollController.cpp: Removed.
* page/AutoscrollController.h: Removed.
* page/EventHandler.cpp:
(WebCore):
(WebCore::EventHandler::EventHandler):
(WebCore::canAutoscroll):
(WebCore::EventHandler::handleMouseDraggedEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::handleAutoscroll):
(WebCore::EventHandler::autoscrollTimerFired):
(WebCore::EventHandler::startPanScrolling):
(WebCore::EventHandler::updatePanScrollState):
(WebCore::EventHandler::autoscrollRenderer):
(WebCore::EventHandler::updateAutoscrollRenderer):
(WebCore::EventHandler::setAutoscrollRenderer):
(WebCore::EventHandler::startAutoscrollTimer):
(WebCore::EventHandler::stopAutoscrollTimer):
(WebCore::EventHandler::selectCursor):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::keyEvent):
* page/EventHandler.h:
(EventHandler):
(WebCore::EventHandler::autoscrollInProgress):
* rendering/RenderBox.cpp:
* rendering/RenderBox.h:
(RenderBox):
2012-12-13 Kentaro Hara <haraken@chromium.org>
ChildNodesLazySnapshot::nextNode() can crash
https://bugs.webkit.org/show_bug.cgi?id=104982
Reviewed by Hajime Morita.
ChildNodesLazySnapshot::nextNode() can crash for
fast/dom/insertedIntoDocument-no-crash.html.
The root cause is that ChildNodesLazySnapshot::m_currentNode
was not a RefPtr. This patch changes it to a RefPtr.
Test: fast/dom/insertedIntoDocument-no-crash.html
* dom/ContainerNode.h:
(WebCore::ChildNodesLazySnapshot::nextNode):
(WebCore::ChildNodesLazySnapshot::takeSnapshot):
(ChildNodesLazySnapshot):
2012-12-13 Philip Rogers <pdr@google.com>
Clear m_timeContainer on SVGSMILElement removal.
https://bugs.webkit.org/show_bug.cgi?id=104972
Reviewed by Abhishek Arya.
This patch fixes a regression introduced by r137509 where we did not clear
m_timeContainer in SVGSMILElement::removedFrom.
Test: svg/custom/removed-from-animation-crash.html
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::removedFrom):
2012-12-13 Filip Pizlo <fpizlo@apple.com>
Named lookups on HTML documents produce inconsistent results in JavaScriptCore bindings
https://bugs.webkit.org/show_bug.cgi?id=104623
Reviewed by Geoffrey Garen.
All DOM objects that have named getters or directly override getOwnPropertySlot are now marked as
HasImpureGetOwnPropertySlot.
Tests: fast/js/prototype-chain-caching-with-impure-get-own-property-slot-traps
fast/js/dfg-prototype-chain-caching-with-impure-get-own-property-slot-traps
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
2012-12-13 Xianzhu Wang <wangxianzhu@chromium.org>
Out-of-view check of fixed position element in frame is incorrect when page is scaled
https://bugs.webkit.org/show_bug.cgi?id=104943
Reviewed by Simon Fraser.
Use frameScaleFactor instead of pageScaleFactor to scale the layer bounds.
Tests: compositing/layer-creation/fixed-position-out-of-view-scaled-iframe-scroll.html
compositing/layer-creation/fixed-position-out-of-view-scaled-iframe.html
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
2012-12-13 Bear Travis <betravis@adobe.com>
Positioned replaced elements should resolve vertical margins against their containing
block's logical width
https://bugs.webkit.org/show_bug.cgi?id=103579
Reviewed by Emil A Eklund.
According to the CSS box model & writing modes specifications, percentage margin
& padding values, including top & bottom, should be resolved based on the
containing block's logical width (logical with respect to the containing block's
writing mode).
http://www.w3.org/TR/CSS2/box.html#margin-properties
http://dev.w3.org/csswg/css3-writing-modes/#dimension-mapping
Previously, a positioned replaced element resolved margin before/after relative to
its inline direction (containerLogicalHeight), and margin start/end relative to
its block direction (containerLogicalWidth). This patch measures the container's
logical width in its own inline direction (containerRelativeLogicalWidth) to
resolve all margin percentage values.
Test: fast/writing-mode/percentage-margins-absolute-replaced.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePositionedLogicalWidthReplaced): Calculate the logical
width of the container, and use it to calculate margins.
(WebCore::RenderBox::computePositionedLogicalHeightReplaced): Ditto.
2012-12-13 Yoshifumi Inoue <yosin@chromium.org>
Handling autoscroll in EventHandler should be re-factor
https://bugs.webkit.org/show_bug.cgi?id=104764
Reviewed by Hajime Morita.
This patch introduces new class AutoscrollController for moving autoscroll
and panscroll from EventHandler class for ease of maintenance of
EventHandler and ease of adding autoscroll related features, e.g. autoscroll
during drag-and-drop, autoscoll by gesture.
No new tests. This patch doesn't change behavior.
* CMakeLists.txt: Changed to add page/AutoscrollController.cpp
* GNUmakefile.list.am: Changed to add page/AutoscrollController.{cpp,h}
* Target.pri: Changed to add page/AutoscrollController.cpp
* WebCore.gypi: Changed to add page/AutoscrollController.{cpp,h}
* WebCore.vcproj/WebCore.vcproj: Changed to add page/AutoscrollController.{cpp,h}
* WebCore.xcodeproj/project.pbxproj: Changed to add page/AutoscrollController.{cpp,h}
* page/AutoscrollController.cpp: Added.
(WebCore::getMainFrame): Helper function.
(WebCore::AutoscrollController::AutoscrollController): Moved from EventHandler.
(WebCore::AutoscrollController::autoscrollRenderer): Moved from EventHandler.
(WebCore::AutoscrollController::autoscrollInProgress): Moved from EventHandler.
(WebCore::AutoscrollController::startAutoscrollForSelection): Replacement of EventHandler::handleAutoscroll().
(WebCore::AutoscrollController::stopAutoscrollTimer): Moveed from EventHandler.
(WebCore::AutoscrollController::updateAutoscrollRenderer): ditto
(WebCore::AutoscrollController::didPanScrollStart): Added for updating pan scrolling status of main frame.
(WebCore::AutoscrollController::didPanScrollStop): ditto
(WebCore::AutoscrollController::handleMouseReleaseEvent): Extracted from EventHandler.
(WebCore::AutoscrollController::panScrollInProgress): Replacement of EventHandler::m_panScrollInProgress.
(WebCore::AutoscrollController::startPanScrolling): Moved from EventHandler::startPanScrolling()
(WebCore::AutoscrollController::autoscrollTimerFired): Moved from EventHandler::autoscrollTimerFired().
(WebCore::AutoscrollController::startAutoscrollTimer): Moved from EventHandler::startAutoscrollTimer().
(WebCore::AutoscrollController::updatePanScrollState): Moved from EventHandler::updatePanScrollState().
* page/AutoscrollController.h: Added.
(AutoscrollController):
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler): Changed autoscroll and panscroll related member variable initializations to m_autoscrollController initialization.
(WebCore::EventHandler::handleMouseDraggedEvent): Changed to call AutoscrollController::startAutoscrollForSelection().
(WebCore::EventHandler::handleMouseReleaseEvent): Changed to remove m_autoscrollInProgress reference.
(WebCore::EventHandler::didPanScrollStart): Added for updating pan scrolling status of main frame.
(WebCore::EventHandler::didPanScrollStop): ditto
(WebCore::EventHandler::startPanScrolling): Changed to call AutoscrollController::startPanScrolling().
(WebCore::EventHandler::autoscrollRenderer): Changed to use AutoscrollController.
(WebCore::EventHandler::updateAutoscrollRenderer): ditto
(WebCore::EventHandler::autoscrollInProgress): ditto
(WebCore::EventHandler::panScrollInProgress): Added to replace m_panScrollInProgress.
(WebCore::EventHandler::stopAutoscrollTimer): Changed to use AutoscrollController.
(WebCore::EventHandler::selectCursor): Changed to use panScrollInProgress().
(WebCore::EventHandler::handleMousePressEvent): Chagned to call AutoscrollController::handleMousePressEvent().
(WebCore::EventHandler::keyEvent): Changed to use panScrollInProgress().
* page/EventHandler.h:
(WebCore::EventHandler::autoscrollController): Added for using main frame's panScrollInProgress().
(WebCore::EventHandler::mouseDownWasInSubframe): Added for AutoscrollController.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::canAutoscroll): Moved from EventHandler.cpp.
(WebCore::RenderBox::findAutoscrollable): Moved from EventHandler.cpp.
* rendering/RenderBox.h:
(RenderBox): Added new functions canAutoscroll() and findAutoscrollable().
2012-12-13 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=102599
ASSERT loading Acid3 test in run-safari --debug (r135050)
Reviewed by Simon Fraser.
New flag IncludeCompositedDescendants will always calculate the layer bounds for
descendants, even when the are composited.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateLayerBounds):
* rendering/RenderLayer.h:
calculateCompositedBounds() should not include this new flag, so instead of
calling that, call calculateLayerBounds() directly with the
IncludeCompositedDescendants flag. This will get us the information we need
upfront and avoid the toggling later on.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
2012-12-13 Tien-Ren Chen <trchen@chromium.org>
Don't consider container nodes of other disambiguated nodes
https://bugs.webkit.org/show_bug.cgi?id=104619
Reviewed by Eric Seidel.
It is not uncommon to have a clickable <div> that contains other clickable objects.
This heuristic avoids excessive disambiguation in that case.
New unit test: WebFrameTest.DisambiguationPopupNoContainer
* page/TouchDisambiguation.cpp:
(WebCore::findGoodTouchTargets):
2012-12-13 Adrienne Walker <enne@chromium.org>
Unreviewed, rolling out r137645, r137646, and r137667.
http://trac.webkit.org/changeset/137645
http://trac.webkit.org/changeset/137646
http://trac.webkit.org/changeset/137667
https://bugs.webkit.org/show_bug.cgi?id=104911
Breaks some overflow layout tests
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateDescendantDependentFlags):
(WebCore::RenderLayer::addChild):
(WebCore::RenderLayer::removeChild):
(WebCore::RenderLayer::usesCompositedScrolling):
(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::dirtyZOrderLists):
(WebCore::RenderLayer::dirtyNormalFlowList):
(WebCore::RenderLayer::updateLayerListsIfNeeded):
(WebCore::RenderLayer::shouldBeNormalFlowOnly):
(WebCore::RenderLayer::shouldBeSelfPaintingLayer):
(WebCore::RenderLayer::styleChanged):
* rendering/RenderLayer.h:
(RenderLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling):
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
* testing/InternalSettings.cpp:
* testing/InternalSettings.h:
(InternalSettings):
* testing/InternalSettings.idl:
2012-12-13 Andreas Kling <akling@apple.com>
Event dispatch: Avoid heap allocations in ensureEventAncestors() typical case.
<http://webkit.org/b/104938>
Reviewed by Anders Carlsson.
Give the EventTarget and EventContext vectors an inline capacity of 32 (no science here, just a
non-zero number.) As these vectors are created on the stack already, this is merely using a bit
more stack space to avoid malloc()ing all the gosh-darn time.
Looks like ~6% improvement on Dromaeo/jslib-event-prototype.
* dom/EventDispatcher.cpp:
(WebCore::EventRelatedTargetAdjuster::adjust):
(WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
(WebCore::EventDispatcher::ensureEventAncestors):
* dom/EventDispatcher.h:
(EventRelatedTargetAdjuster):
(EventDispatcher):
2012-12-13 James Simonsen <simonjam@chromium.org>
[Resource Timing] Don't report resources with data: urls
https://bugs.webkit.org/show_bug.cgi?id=104868
Reviewed by Tony Gentilcore.
Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_ignore_data_url.html
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::loadDone):
2012-12-13 Ian Vollick <vollick@chromium.org>
Add a missing nullity check in RenderObject::containingBlock
https://bugs.webkit.org/show_bug.cgi?id=104961
Reviewed by Adrienne Walker.
Adds a missing nullity check in an assert.
No new tests, no change in functionality.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock):
2012-12-13 Tab Atkins <tabatkins@google.com>
Switch the gradient drawing code to use bearing angles
https://bugs.webkit.org/show_bug.cgi?id=104616
Reviewed by Dean Jackson.
Switch the gradient math from polar-coordinate angles to bearing angles.
To make this possible without behavior changes,
switch the m_deprecatedType boolean to an m_gradientType enum,
and fix all usages accordingly.
No new tests, as this is a refactoring and should have no behavior changes. Existing tests suffice.
* css/CSSGradientValue.cpp:
(WebCore::endPointsFromAngle):
This is the only mechanical change. The rest are just fixing the plumbing around the boolean->enum change.
* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::sortStopsIfNeeded):
(WebCore::CSSGradientValue::addStops):
(WebCore::CSSLinearGradientValue::customCssText):
(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSRadialGradientValue::customCssText):
* css/CSSGradientValue.h:
(WebCore::CSSGradientValue::gradientType):
(WebCore::CSSGradientValue::CSSGradientValue):
(WebCore::CSSLinearGradientValue::create):
(WebCore::CSSLinearGradientValue::CSSLinearGradientValue):
(WebCore::CSSRadialGradientValue::create):
(WebCore::CSSRadialGradientValue::CSSRadialGradientValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseDeprecatedGradient):
(WebCore::CSSParser::parseDeprecatedLinearGradient):
(WebCore::CSSParser::parseDeprecatedRadialGradient):
2012-12-13 Ian Vollick <vollick@chromium.org>
[chromium] Automatically use composited scrolling
https://bugs.webkit.org/show_bug.cgi?id=94743
Reviewed by Adrienne Walker.
We currently use the composited scrolling facilities provided by
wkb.ug/91117 if the overflow scroll block element is styled with
-webkit-overflow-scrolling: touch. Ideally, we could automatically
opt into composited scrolling if it is safe to do so. This can affect
antialiasing, so it is important that automatically opting in is only
enabled via a setting.
The way I determine if it is safe is by checking that z-ordering will
not be affected if the overflow scrollable element were promoted to a
stacking context (details below), and that clipping our scrolling
descendants will not affect rendering.
To check the first condition (that z-ordering will not be affected).
I ensure that the candidate element and all its descendants appear as a
continuous block in the candidate's stacking context. That is, if no
other elements are 'between' any of the candidates descendants when we
sort in paint order, then we're safe. This is overly conservative,
however. We could, in future, only consider stacking problems between
elements that actually overlap.
To ensure that clipping will not cause a rendering change, I ensure
that the layer has no out of flow positioned descendant whose
containing block is not also a descendant of ours.
Test: compositing/overflow/automatically-opt-into-compositing-scrolling.html
(WebCore):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::acceleratedCompositingForOverflowScrollEnabled):
(WebCore):
(WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
(WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrderRecursive):
(WebCore::RenderLayer::positionOverflowControlsAfterPromotionToCompositedScrolling):
(WebCore::RenderLayer::canSafelyEstablishAStackingContext):
Returns true if the RenderLayer could become a stacking context without
affecting the stacking order.
(WebCore::RenderLayer::updateDescendantDependentFlags):
We now need to keep track of out of flow positioned descendants.
(WebCore::RenderLayer::addChild):
(WebCore::RenderLayer::removeChild):
(WebCore::RenderLayer::usesCompositedScrolling):
Has been updated to return true if it can safely establish a stacking
context, and the setting is turned on.
(WebCore::RenderLayer::needsCompositedScrolling):
This function returns true if we would like to use composited
scrolling.
(WebCore::RenderLayer::updateNeedsCompositedScrolling):
(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::dirtyZOrderLists):
(WebCore::RenderLayer::dirtyNormalFlowList):
Since these could affect opting into composited scrolling, we must
request that the RenderLayerCompositor reevaluate compositing.
(WebCore::RenderLayer::updateLayerListsIfNeeded):
We call updateCanSafelyEstablishStackingContext here, if necessary.
(WebCore::RenderLayer::shouldBeNormalFlowOnly):
(WebCore::RenderLayer::shouldBeSelfPaintingLayer):
usesCompositedScrolling -> needsCompositedScrolling
(WebCore::RenderLayer::setAncestorChainHasOutOfFlowPositionedDescendant):
(WebCore::RenderLayer::dirtyAncestorChainHasOutOfFlowPositionedDescendantStatus):
(WebCore::RenderLayer::updateOutOfFlowPositioned):
Dirties and sets the out of flow positioned descendant state.
(WebCore::RenderLayer::styleChanged):
* rendering/RenderLayer.h:
(RenderLayer):
(WebCore::RenderLayer::hasOutOfFlowPositionedDescendant):
* rendering/RenderLayerBacking.cpp:
(WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::hasUnpositionedOverflowControlsLayers):
(WebCore):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
We now ensure that newly created overflow scroll controls get
positioned.
(WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling):
* rendering/RenderLayerCompositor.h:
(WebCore::RenderLayerCompositor::setShouldReevaluateCompositingAfterLayout):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::setEnableCompositingForOverflowScroll):
Allows enabling the setting in layout tests.
(WebCore):
* testing/InternalSettings.h:
(InternalSettings):
* testing/InternalSettings.idl:
2012-12-13 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r137406): NodeTraversal changes causing large renderer crash
https://bugs.webkit.org/show_bug.cgi?id=104937
Reviewed by Antti Koivisto.
Add a null pointer check to exit early since ElementTraversal::next assumes a non-null pointer.
No new tests since I don't think this function is ever exposed to any ES5 bindings.
* editing/FrameSelection.cpp:
(WebCore::scanForForm):
2012-12-13 David Grogan <dgrogan@chromium.org>
IndexedDB: Improve error messages
https://bugs.webkit.org/show_bug.cgi?id=104624
Reviewed by Tony Chang.
Add detail to error messages so that they are more helpful and can be
traced back to a specific line of code.
Updated test: transaction-error.html
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
(WebCore::IDBDatabaseBackendImpl::openConnection):
(WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
(WebCore::IDBDatabaseBackendImpl::deleteDatabase):
(WebCore::IDBDatabaseBackendImpl::close):
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::getDatabaseNames):
(WebCore::IDBFactoryBackendImpl::deleteDatabase):
(WebCore::IDBFactoryBackendImpl::open):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::createIndex):
(WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::perform):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::abort):
(WebCore::IDBTransactionBackendImpl::commit):
2012-12-13 Claudio Saavedra <csaavedra@igalia.com>
[GTK] Safeguard against possible NULL-dereference
https://bugs.webkit.org/show_bug.cgi?id=104931
Reviewed by Chris Fleizach.
This was spotted by Coverity. See bug 104114.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetIndexInParent): If parent is NULL
bail out early.
2012-12-13 David Barton <dbarton@mathscribe.com>
Heap-use-after-free in WebCore::RenderBlock::finishDelayUpdateScrollInfo
https://bugs.webkit.org/show_bug.cgi?id=103750
Reviewed by Tony Chang.
MathML sometimes creates and destroys renderers for descendants during layout (or even to calculate
preferred logical widths), e.g. for operator stretching. RenderBlock::finishDelayUpdateScrollInfo
must therefore leave gDelayedUpdateScrollInfoSet intact as it iterates over it, so
RenderBlock::willBeDestroyed can call gDelayedUpdateScrollInfoSet->remove(this) effectively if needed.
This also prevents duplicate entries from being added to gDelayedUpdateScrollInfoSet.
Test: mathml/mo-stretch-crash.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::startDelayUpdateScrollInfo):
- Allow gDelayedUpdateScrollInfoSet to be non-null when gDelayUpdateScrollInfo is 0 during
RenderBlock::finishDelayUpdateScrollInfo.
(WebCore::RenderBlock::finishDelayUpdateScrollInfo):
- Remove blocks from gDelayedUpdateScrollInfoSet one at a time, waiting for each block until it is
about to be updated.
2012-12-13 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/12838354> Per-Tab WebProcess: DOM cookie access functions should respect private browsing
https://bugs.webkit.org/show_bug.cgi?id=104691
Reviewed by Sam Weinig.
* platform/network/NetworkingContext.h: Added a function that returns current
context type. Ideally, we would track contexts across processes in a generic manner,
but we only have two now, and don't need such complications.
2012-12-13 Alexey Proskuryakov <ap@apple.com>
ResourceLoader::didReceiveAuthenticationChallenge uses a wrong client
https://bugs.webkit.org/show_bug.cgi?id=104935
<rdar://problem/12870361>
Reviewed by Anders Carlsson.
* loader/ResourceLoader.cpp: (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
The handle is null when NetworkProcess is used. In any case, it should be correct
to use the client carried within AuthenticationChallenge.
2012-12-13 Stephen White <senorblanco@chromium.org>
CanvasRenderingContext2D::setFont() is slow.
https://bugs.webkit.org/show_bug.cgi?id=104923
Reviewed by James Robinson.
This spends most of its time in the CSS parser. As a first step,
early-out if the new value is the same as unparsed string for the current font.
See also http://code.google.com/p/chromium/issues/detail?id=164016.
Covered by existing tests in canvas/ and fast/canvas, and ManualTests/canvas-font-speed.html.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setFont):
2012-12-13 Parth Patel <parpatel@rim.com>, Max Feil <mfeil@rim.com>
Allow plugins to be disabled by shared library filename
https://bugs.webkit.org/show_bug.cgi?id=101274
Reviewed by Antonio Gomes.
This fix makes PluginDatabase changes general so that other ports
can use this mechanism if they wish.
Layout test not included with this patch because there
is currently no framework within LayoutTests to allow calls
from an external application via platform API code (such as the
WebView API).
* plugins/PluginDatabase.cpp:
(WebCore::PluginDatabase::fileExistsAndIsNotDisabled):
(WebCore):
(WebCore::PluginDatabase::getDeletedPlugins):
(WebCore::PluginDatabase::removeDisabledPluginFile):
(WebCore::PluginDatabase::addDisabledPluginFile):
(WebCore::PluginDatabase::getPluginPathsInDirectories):
* plugins/PluginDatabase.h:
(PluginDatabase):
2012-12-13 Yongjun Zhang <yongjun_zhang@apple.com>
Document will never be released when an Image is created inside unload event listener
https://bugs.webkit.org/show_bug.cgi?id=104830
Reviewed by Darin Adler.
When setting src attribute to an Image object inside unload event listener, ImageLoader will
mark it as load failure (by setting m_hasPendingErrorEvent to true) and the following call
to updatedHasPendingEvent will ref the element but won't be deref-ed since the Document is
being dismissed. This was introduced in r131670. To match pre r131670 behavior, we shouldn't
trigger error event for image loading when the page is being dismissed.
No new tests, there is no visual change. Manually tested to verify documents are released by
using heap in Mac OS X.
* loader/ImageLoader.cpp:
(WebCore::pageIsBeingDismissed): add a helper function to test whether the page is being dismissed.
(WebCore::ImageLoader::updateFromElement): don't trigger error event if the page is being dismissed.
2012-12-13 Claudio Saavedra <csaavedra@igalia.com>
[GTK] Add missing breaks in switch-case statements
https://bugs.webkit.org/show_bug.cgi?id=104929
Reviewed by Martin Robinson.
* platform/gtk/ClipboardGtk.cpp:
(WebCore::ClipboardGtk::clearData): Add missing breaks.
2012-12-13 Nate Chapin <japhet@chromium.org>
Route main resource loads through the memory cache.
https://bugs.webkit.org/show_bug.cgi?id=49246
Reviewed by Alexey Proskuryakov.
Note that this patch doesn't actually enable caching of main resources. That will be done in a later patch.
The MainResourceLoader actually has an underlying SubresourceLoader (with the cache layer between them).
In several places, the MainResourceLoader's SubresourceLoader is treated as special.
No new tests, as this is primarily a refactor. A couple of expected results changed slightly.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::setRequest):
(WebCore::DocumentLoader::subresource):
(WebCore::DocumentLoader::addSubresourceLoader): Because the SubresourceLoader underlying the main resource
needs special handling in certain cases, track it separately from the real SubresourceLoaders.
(WebCore::DocumentLoader::removeSubresourceLoader):
(WebCore::DocumentLoader::startLoadingMainResource):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::MainResourceLoader):
(WebCore::MainResourceLoader::receivedError):
(WebCore::MainResourceLoader::cancel):
(WebCore::MainResourceLoader::clearResource):
(WebCore):
(WebCore::MainResourceLoader::frameLoader):
(WebCore::MainResourceLoader::request):
(WebCore::MainResourceLoader::continueAfterNavigationPolicy):
(WebCore::MainResourceLoader::resourceData):
(WebCore::MainResourceLoader::redirectReceived):
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::continueAfterContentPolicy):
(WebCore::MainResourceLoader::responseReceived):
(WebCore::MainResourceLoader::dataReceived):
(WebCore::MainResourceLoader::didFinishLoading):
(WebCore::MainResourceLoader::notifyFinished):
(WebCore::MainResourceLoader::reportMemoryUsage):
(WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
(WebCore::MainResourceLoader::load):
(WebCore::MainResourceLoader::setDefersLoading):
(WebCore::MainResourceLoader::defersLoading):
(WebCore::MainResourceLoader::setShouldBufferData):
(WebCore::MainResourceLoader::loader):
(WebCore::MainResourceLoader::identifier):
* loader/MainResourceLoader.h:
(MainResourceLoader):
(WebCore::MainResourceLoader::documentLoader):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::willSendRequest):
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::defersLoading):
(WebCore::ResourceLoader::cancelled):
* loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
(WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
* loader/mac/DocumentLoaderMac.cpp:
(WebCore::DocumentLoader::schedule):
(WebCore::DocumentLoader::unschedule):
2012-12-13 Pratik Solanki <psolanki@apple.com>
Duplicate code in GraphicsContext3D::validateAttributes() and GraphicsContext3D::validateDepthStencil()
https://bugs.webkit.org/show_bug.cgi?id=97275
Reviewed by Dean Jackson.
Remove duplicate code in validateAttributes(). validateAttributes() calls
validateDepthStencil() which has the exact same code.
No new tests because no change in functionality.
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::validateAttributes):
2012-12-13 Nate Chapin <japhet@chromium.org>
CachedResources should hang on to stripped fragment identifiers
https://bugs.webkit.org/show_bug.cgi?id=104721
Reviewed by Maciej Stachowiak.
No new tests, this will be unused until bug
https://bugs.webkit.org/show_bug.cgi?id=49246 re-lands. Then, it will
allow http/tests/inspector/resource-parameters.html to continue passing.
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::load):
* loader/cache/CachedResource.h:
(CachedResource):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource): We override the request's url with the
local variable "url" here. The only difference between url and request.url() is that url
has had any fragment identifier removed. Do this work later (in the CachedResource constructor)
so that the CachedResource can save the fragment for later.
2012-12-13 Claudio Saavedra <csaavedra@igalia.com>
[GTK] Remove deprecated API usage
https://bugs.webkit.org/show_bug.cgi?id=104894
Reviewed by Martin Robinson.
Remove deprecated GTK+ API usage.
* platform/gtk/RenderThemeGtk3.cpp:
(WebCore::spinButtonArrowSize): Do not use deprecated
gtk_style_context_get_font().
2012-12-13 Zeno Albisser <zeno@webkit.org>
[Qt] Remove temporary workaround from GraphicsSurfaceGLX constructor.
https://bugs.webkit.org/show_bug.cgi?id=104904
QXcbNativeInterface::nativeResourceForContext() is now
available in Qt5. Therefore the temporary workaround
in GraphicsSurfaceGLX can be removed.
Reviewed by Kenneth Rohde Christiansen.
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
2012-12-13 Joanmarie Diggs <jdiggs@igalia.com>
[GTK] Expose ARIA roles for tab, tabpanel and tablist
https://bugs.webkit.org/show_bug.cgi?id=84043
Reviewed by Martin Robinson.
Mapped the ARIA roles to their corresponding ATK roles.
No new tests; instead unskipped the associated test.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole): Mapped the ARIA roles to their corresponding ATK roles
2012-12-13 Vivek Galatage <vivek.vg@samsung.com>
Web Inspector: "Add Attribute" context menu on closing tag should apply on the opening tag on Elements Panel
https://bugs.webkit.org/show_bug.cgi?id=104902
Reviewed by Alexander Pavlov.
The context menu action on the closing tag scrolls to the opening tag for adding the attribute.
No new tests as this is a UI change.
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype._populateTagContextMenu):
(WebInspector.ElementsTreeElement.prototype._addNewAttribute):
2012-12-13 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r137512.
http://trac.webkit.org/changeset/137512
https://bugs.webkit.org/show_bug.cgi?id=104912
The entire GTK+ layout test step has been failing for hours
(Requested by mrobinson on #webkit).
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::textUnderElement):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textUnderElement):
2012-12-13 Tamas Czene <tczene@inf.u-szeged.hu>
OpenCL version of FEColorMatrix.
https://bugs.webkit.org/show_bug.cgi?id=103398
Reviewed by Zoltan Herczeg.
~3x speed-up (depending on hardware configuration)
* Target.pri: Added a new file to the build system.
* platform/graphics/filters/FEColorMatrix.cpp: calculateSaturateComponents and calculateHueRotateComponents methodes are moved to the header, since they are used by OpenCL as well
(WebCore::effectType):
* platform/graphics/filters/FEColorMatrix.h:
(FEColorMatrix):
(WebCore::FEColorMatrix::calculateSaturateComponents):
(WebCore):
(WebCore::FEColorMatrix::calculateHueRotateComponents):
* platform/graphics/gpu/opencl/FilterContextOpenCL.h: Required fields for the ColorMatrix kernels were added
(WebCore::FilterContextOpenCL::FilterContextOpenCL):
(FilterContextOpenCL):
* platform/graphics/gpu/opencl/OpenCLFEColorMatrix.cpp: the core implementation goes here
(WebCore):
(WebCore::FilterContextOpenCL::compileFEColorMatrix):
(WebCore::FilterContextOpenCL::applyFEColorMatrix):
(WebCore::FEColorMatrix::platformApplyOpenCL):
2012-12-13 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: do not validate pointers to objects in RenderArena agains tcmalloc data.
https://bugs.webkit.org/show_bug.cgi?id=104903
Reviewed by Yury Semikhatsky.
This is a simplest approach to do that with zero performance overhead.
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::reportMemoryUsage):
* rendering/InlineBox.cpp:
(WebCore::InlineBox::reportMemoryUsage):
(WebCore):
* rendering/InlineBox.h:
(InlineBox):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::reportMemoryUsage):
(WebCore):
* rendering/InlineTextBox.h:
(InlineTextBox):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::reportMemoryUsage):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::reportMemoryUsage):
2012-12-13 Alberto Garcia <agarcia@igalia.com>
[GTK] Don't leak GStaticRecMutex
https://bugs.webkit.org/show_bug.cgi?id=104901
Reviewed by Martin Robinson.
The mutex in WebKitWebAudioSourceGStreamer is allocated using
g_new(), but that memory is not freed when the object is
destroyed.
This patch replaces that pointer with the structure itself, which
is faster and doesn't need to be explicitly freed.
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(_WebKitWebAudioSourcePrivate):
(webkit_web_audio_src_init):
(webKitWebAudioSrcFinalize):
2012-12-13 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Network: Sorting cookies by size is broken.
https://bugs.webkit.org/show_bug.cgi?id=104893
Reviewed by Alexander Pavlov.
Problem: cookie "size" is not a field now; its value is accessible
through getter method.
Solution: make cookie fields uniformly accessible (add getters for name,
type and value).
* inspector/front-end/CookieItemsView.js: Adopt changes.
* inspector/front-end/CookieParser.js:
(WebInspector.Cookie): Refine JsDoc.
(WebInspector.Cookie.prototype.name): Added getter.
(WebInspector.Cookie.prototype.value): Ditto.
(WebInspector.Cookie.prototype.type): Ditto.
(WebInspector.Cookies.buildCookiesFromString): Adopt changes.
(WebInspector.Cookies.buildCookieProtocolObject): Ditto.
* inspector/front-end/CookiesTable.js:
(WebInspector.CookiesTable): Remove unused parameter.
(WebInspector.CookiesTable.prototype._sortCookies):
Use getters instead of field names.
(WebInspector.CookiesTable.prototype._createGridNode): Adopt changes.
* inspector/front-end/HAREntry.js: Ditto.
* inspector/front-end/RequestCookiesView.js: Ditto.
2012-12-13 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r137569.
http://trac.webkit.org/changeset/137569
https://bugs.webkit.org/show_bug.cgi?id=104876
A bunch of CSS tests hit ASSERTs
* css/CSSProperty.h:
(WebCore::CSSProperty::CSSProperty):
2012-12-13 Byungwoo Lee <bw80.lee@samsung.com>
[EFL] Remove redundant pipe write to prevent pipe buffer full.
https://bugs.webkit.org/show_bug.cgi?id=101135
Reviewed by Gyuyoung Kim.
To prevent a source of a deadlock, remove the redundant pipe write
in wakeUp() function.
EFL uses ecore_pipe_write() to wake up main run loop, and the function
uses POSIX pipe write with O_NONBLOCK disabled.
With O_NONBLOCK disabled, when written data is more than PIPE_BUF,
pipe write will be blocked until it can be written.
Currently, every wakeUp() function calls ecore_pipe_write() to invoke
wakeUpEvent() callback. And this can make pipe buffer full status
which is the one reason of the lockup problem described in Bug 99494.
* platform/RunLoop.h:
(RunLoop):
* platform/efl/RunLoopEfl.cpp:
(WebCore::RunLoop::RunLoop):
(WebCore::RunLoop::wakeUpEvent):
(WebCore::RunLoop::wakeUp):
2012-12-13 Antti Harju <antti.harju@ixonos.com>
[Qt] Fix deleteAllCookies() invalid SQL statement
https://bugs.webkit.org/show_bug.cgi?id=101580
Reviewed by Jocelyn Turcotte.
* platform/network/qt/CookieJarQt.cpp:
(WebCore::SharedCookieJarQt::deleteAllCookies):
2012-12-13 Ryosuke Niwa <rniwa@webkit.org>
Safari spends a lot of time in WebCore::findSimpleWordBoundary while selecting text on large scrabutility.com page
https://bugs.webkit.org/show_bug.cgi?id=104884
Reviewed by Hajime Morita.
We don't need to do anything in AlternativeTextController if selection is already outside of the editable region.
No new tests are added since this is only a performance improvement, and doesn't change any asymptotic behavior.
* editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::respondToChangedSelection):
2012-12-12 Jon Lee <jonlee@apple.com>
Crash in PlugInOriginHash with empty MIME type (104882)
https://bugs.webkit.org/show_bug.cgi?id=104882
<rdar://problem/12872298>
Reviewed by Filip Pizlo.
The crash occurs because the strings might be null. Add a check for it, but also try to infer a MIME type
in case the markup does not include a type attribute, but we can find it from the extension in the URL.
* platform/KURL.cpp: Add a new function mimeTypeFromURL() which tries to return the implied MIME type
based on the URL provided. If nothing was found, return a null string.
(WebCore::mimeTypeFromURL): Factored out from FrameLoader::defaultObjectContentType().
* platform/KURL.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::defaultObjectContentType): Refactor to use mimeTypeFromURL().
* plugins/PlugInOriginHash.cpp:
(WebCore::addCaseFoldedCharacters): Add a check for an empty string.
(WebCore::PlugInOriginHash::hash): If the service type is empty, try to infer the MIME type.
2012-12-13 Christophe Dumez <christophe.dumez@intel.com>
Regression(r137486): Broke EFL build
https://bugs.webkit.org/show_bug.cgi?id=104883
Unreviewed EFL build fix.
Fix EFL build break after r137486 due to missing WebCore::
namespace.
No new tests, no behavior change for layout tests.
* platform/NotImplemented.h:
2012-12-07 Levi Weintraub <leviw@chromium.org>
Add support for tracking hit test rectangles to enable fast event rejection in the compositor
https://bugs.webkit.org/show_bug.cgi?id=103914
Reviewed by Simon Fraser.
Adding support for tracking hit test target regions for the purpose of performing initial hit testing
in the compositor to avoid blocking scrolling on the main thread while waiting to hit test events that
aren't occuring in regions with handlers. This is initially being done to avoid having to go to the main
thread when scrolling by flicking on touch devices when the flick occurs outside a tracked touch event
region. This patch includes the implementation to turn this on in Chromium.
To accomplish this goal, Document will now keep a counted hash set of nodes with touch event handlers
instead of only an unsigned integer of the total count. ScrollingCoordinator then updates the compositor
when new touch event handlers are registered or removed, or after layout much like how
nonFastScrollableRegions are currently tracked.
This implementation will not properly update the hit test rects when the renderers are inside a sub-
tree that scrolls.
Test: platform/chromium/fast/events/touch/compositor-touch-hit-rects.html
* dom/Document.cpp:
(WebCore::Document::Document): Added a HashCountedSet of touch target nodes. Note: DOMWindow targets
are stored as the Document they point to.
(WebCore::Document::didAddTouchEventHandler): Changed to keep track of the handler instead of a count, and
to update the ScrollingCoordinator with the change.
(WebCore::Document::didRemoveTouchEventHandler): Ditto.
* dom/Document.h:
(WebCore::Document::hasTouchEventHandlers): It's no longer O(1) to get the count of touch handlers, so
expose whether there are any or not.
(WebCore::Document::touchEventTargets):
* dom/Node.cpp:
(WebCore::Node::didMoveToNewDocument):
(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):
* history/CachedFrame.cpp:
(WebCore::CachedFrameBase::restore):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::~HTMLInputElement):
(WebCore::HTMLInputElement::updateType):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener): Add the Document to the touch target set instead of DOMWindow.
(WebCore::DOMWindow::removeEventListener):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleTouchEvent):
* page/Frame.cpp:
(WebCore::Frame::setDocument):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::computeAbsoluteTouchEventTargetRects): Walk the renderers for event handler
nodes and generate the absolute hit testing rects.
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::setTouchEventTargetRectsChanged): Hook to pass along the hit test rects to
the scrolling tree/compositor.
(ScrollingCoordinator):
* page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
(WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
(WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRectsChanged):
(WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
(WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRects):
* page/scrolling/chromium/ScrollingCoordinatorChromium.h:
(ScrollingCoordinatorChromium):
* testing/Internals.cpp:
(WebCore::Internals::touchEventHandlerCount): Changed to do the work to calculate the actual count since
it's no longer stored as an int in Document.
(WebCore::Internals::touchEventTargetClientRects):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2012-12-12 Luke Macpherson <macpherson@chromium.org>
Add ASSERTions to ensure that CSSPropertys that are variables only ever refer to CSSValues that are variables.
https://bugs.webkit.org/show_bug.cgi?id=104876
Reviewed by Steve Block.
Add assertions to CSSProperty constructors to make that if it is initialized with CSSPropertyVariable that
the value type associated with it is also a variable. This is already asserted at read time, but ASSERTing
here will produce a more useful backtrace.
No new tests as functionality unchanged.
* css/CSSProperty.h:
(WebCore::CSSProperty::CSSProperty):
2012-12-12 Gyuyoung Kim <gyuyoung.kim@samsung.com>
NetworkInfoController needs to support destructor
https://bugs.webkit.org/show_bug.cgi?id=104642
Reviewed by Kentaro Hara.
Though NetworkInfoController can be referenced by each port in order to update network status change,
there is no virtual interface to destroy it. Beside each port client also needs to be destroyed when
controller is destroyed.
* Modules/networkinfo/NetworkInfoClient.h:
(NetworkInfoClient):
* Modules/networkinfo/NetworkInfoConnection.h:
(WebCore::NetworkInfoConnection::networkInfoControllerDestroyed):
* Modules/networkinfo/NetworkInfoController.cpp:
(WebCore::NetworkInfoController::~NetworkInfoController):
2012-12-12 Kent Tamura <tkent@chromium.org>
Validity of a radio button is not updated correctly when it is detached from an invalid radio group
https://bugs.webkit.org/show_bug.cgi?id=104873
Reviewed by Kentaro Hara.
When a radio button is detached from an invalid radio group,
A) we should update button's validity, and
B) it should be valid.
A is handled by the following code in RadioButtonGroup::remove.
if (!wasValid) {
// A radio button not in a group is always valid. We need to make it
// valid only if the group was invalid.
button->setNeedsValidityCheck();
B was incomplete.
bool RadioInputType::valueMissing(const String&) const
{
return element()->isInRequiredRadioButtonGroup() && !element()->checkedRadioButtonForGroup();
isInRequiredRadioButtonGroup checked required state of a group with the
name attribute value even if the radio button was already detached from
the group. isInRequiredRadioButtonGroup should check membership of the
radio button precisely.
Tests: Update fast/forms/radio/radio-live-validation-style.html
* dom/CheckedRadioButtons.cpp:
(RadioButtonGroup): Declare contains.
(WebCore::RadioButtonGroup::contains): Added.
(WebCore::CheckedRadioButtons::isInRequiredGroup): Renamed from
isRequiredGroup. This function takes HTMLInputElement* argument.
* dom/CheckedRadioButtons.h:
(CheckedRadioButtons): Rename isRequiredGroup to isInRequiredGroup.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::isInRequiredRadioButtonGroup):
Make this non-const becaues RadioButtonGroup::m_members needs non-const
pointers. Use CheckedRadioButtons::isInRequiredGroup.
* html/HTMLInputElement.h:
(HTMLInputElement): Make isInRequiredRadioButtonGroup non-const.
2012-12-12 Shinya Kawanaka <shinyak@chromium.org>
ContainerNodeAlgorithm::notifyInsertedIntoDocument is not used
https://bugs.webkit.org/show_bug.cgi?id=104874
Reviewed by Hajime Morita.
ContainerNodeAlgorithm::notifyInsertedIntoDocument() is not used by anyone. We can remove it safely.
No new tests, no change in behavior.
* dom/ContainerNodeAlgorithms.h:
2012-12-12 Kunihiko Sakamoto <ksakamoto@chromium.org>
Milliseconds field of date/time input UI should respect step attribute
https://bugs.webkit.org/show_bug.cgi?id=104628
Reviewed by Kent Tamura.
This patch makes step-up/-down UI of the milliseconds fields respect step attribute
in a special case when the step is divisible by 1000 milliseconds.
Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitField):
If step of the element (in milliseconds) is divisible by 1000, use it as the step of the milliseconds field. Otherwise, the millisecond field has step 1.
* html/shadow/DateTimeFieldElements.cpp:
(WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement): Add step and stepBase arguments.
(WebCore::DateTimeMillisecondFieldElement::create): Ditto.
* html/shadow/DateTimeFieldElements.h:
(DateTimeMillisecondFieldElement): Ditto.
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement): Ditto.
(WebCore::DateTimeNumericFieldElement::stepDown): Changed to compute next allowed value using roundDown().
(WebCore::DateTimeNumericFieldElement::stepUp): Changed to compute next allowed value using roundUp().
(WebCore::DateTimeNumericFieldElement::roundDown): Added.
(WebCore::DateTimeNumericFieldElement::roundUp): Added.
* html/shadow/DateTimeNumericFieldElement.h:
(DateTimeNumericFieldElement): Add m_step and m_stepBase fields.
2012-12-12 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Include paddings and borders into the grid element's logical height / width
https://bugs.webkit.org/show_bug.cgi?id=104818
Reviewed by Tony Chang.
This change makes RenderGrid add the borders and paddings in the right direction during layout
so that the grid element's size accounts them like any other renderer.
Test: fast/css-grid-layout/grid-element-padding-margin.html
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computePreferredLogicalWidths):
(WebCore::RenderGrid::layoutGridItems):
2012-12-12 Roger Fong <roger_fong@apple.com>
Include Apple Windows in GraphicsLayer::supportsBackgroundColorContent().
https://bugs.webkit.org/show_bug.cgi?id=104852.
Reviewed by Simon Fraser.
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::supportsBackgroundColorContent):
2012-12-12 KyungTae Kim <ktf.kim@samsung.com>
Unused parameters on TextureMapperImageBuffer.cpp
https://bugs.webkit.org/show_bug.cgi?id=104857
Reviewed by Kentaro Hara.
The updateContents has unused parameter 'textureMapper',
remove the parameter name to fix 'unused parameter' build warning.
* platform/graphics/texmap/TextureMapperImageBuffer.cpp:
(WebCore::BitmapTextureImageBuffer::updateContents):
2012-12-12 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] HTMLContentElement::getDistributedNodes() doesn't work correctly if not in document tree.
https://bugs.webkit.org/show_bug.cgi?id=104345
Reviewed by Hajime Morita.
Since document->updateLayout() does affect nodes in Document, distribution will not occur in
InsertionPoints out of Document. We have to find the element in document tree scope, and start distribution from it.
Test: fast/dom/shadow/get-distributed-nodes-orphan.html
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::getDistributedNodes):
2012-12-12 Patrick Gansterer <paroga@webkit.org>
[WIN] Implement WebCore::fileSystemRepresentation() for !USE(CF)
https://bugs.webkit.org/show_bug.cgi?id=104456
Reviewed by Brent Fulgham.
Convert the UTF-16 path to the system default Windows ANSI code page (usually Windows Latin1).
* platform/win/FileSystemWin.cpp:
(WebCore::fileSystemRepresentation):
2012-12-12 No'am Rosenthal <noam@webkit.org>
[Texmap] Remove lowp/highp indicators as they're not needed with ANGLE.
https://bugs.webkit.org/show_bug.cgi?id=104707
Reviewed by Kenneth Rohde Christiansen.
lowp/highp indicator were needed for GLES2, but ANGLE does not require them.
Covered by existing tests.
* platform/graphics/texmap/TextureMapperShaderManager.cpp:
(WebCore::getShaderSpec):
2012-12-12 Andy Estes <aestes@apple.com>
Don't dispatch fake mousemove events when we don't know where the cursor is
https://bugs.webkit.org/show_bug.cgi?id=104861
Reviewed by Sam Weinig.
When EventHandler is instantiated or cleared, it sets the current mouse
position to (0, 0), even though this is probably not where the mouse
cursor really is (and we won't know until the mouse moves into the WebView).
If a fake mousemove event fires and the page has an element at (0, 0)
that responds to mousemove, we might end up changing the cursor or
displaying a tooltip at the current mouse position, even if it is
outside the WebView.
Fake mousemove events are dispatched in order to update a cursor that
is already over the WebView. Don't dispatch the event if we don't know
this to be true.
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler): Instantiate m_mousePositionIsUnknown to true.
(WebCore::EventHandler::clear): Reset m_mousePositionIsUnknown to true.
(WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Return early if the mouse position is unknown.
(WebCore::EventHandler::setLastKnownMousePosition): Set the mouse position from the PlatformMouseEvent and set m_mousePositionIsUnknown to false.
(WebCore::EventHandler::handleMousePressEvent): Call setLastKnownMousePosition() instead of setting the position directly.
(WebCore::EventHandler::handleMouseDoubleClickEvent): Ditto.
(WebCore::EventHandler::handleMouseMoveEvent): Ditto.
(WebCore::EventHandler::handleMouseReleaseEvent): Ditto.
(WebCore::EventHandler::updateSelectionForMouseDrag): Rename currentMouse(Global)Position to lastKnownMouse(Global)Position.
(WebCore::EventHandler::handleAutoscroll): Ditto.
(WebCore::EventHandler::updatePanScrollState): Ditto.
(WebCore::EventHandler::lastKnownMousePosition): Ditto.
(WebCore::EventHandler::dispatchFakeMouseMoveEventSoonInQuad): Ditto.
(WebCore::EventHandler::fakeMouseMoveEventTimerFired): Ditto.
(WebCore::EventHandler::hoverTimerFired): Ditto.
* page/FrameView.cpp:
(WebCore::FrameView::lastKnownMousePosition): Ditto.
* platform/ScrollableArea.h:
(WebCore::ScrollableArea::lastKnownMousePosition): Ditto.
* platform/mac/ScrollAnimatorMac.mm:
(-[WebScrollbarPainterControllerDelegate mouseLocationInContentAreaForScrollerImpPair:]): Ditto.
(-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]): Ditto.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::panScrollFromPoint): Ditto.
(WebCore::RenderLayer::autoscroll): Ditto.
(WebCore::RenderLayer::lastKnownMousePosition): Ditto.
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::panScroll): Ditto.
(WebCore::RenderListBox::autoscroll): Ditto.
(WebCore::RenderListBox::lastKnownMousePosition): Ditto.
2012-12-12 Martin Robinson <mrobinson@igalia.com>
Try to fix the GTK+ debug bulid
Logging.h is no longer included in headers, so we need to include it manually in
files that require logging macros.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Include Logging.h.
2012-12-12 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r137524.
http://trac.webkit.org/changeset/137524
https://bugs.webkit.org/show_bug.cgi?id=104859
Causes m_deletionHasBegun assertion failures in
MutationObserver tests (Requested by aklein on #webkit).
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::Document::suggestedMIMEType):
* dom/Document.h:
(WebCore::Node::isDocumentNode):
(WebCore):
(WebCore::Node::treeScope):
(WebCore::Node::Node):
* dom/Element.cpp:
(WebCore::Element::createRareData):
* dom/ElementRareData.h:
(ElementRareData):
(WebCore::ElementRareData::ElementRareData):
* dom/Node.cpp:
(WebCore::Node::~Node):
(WebCore::Node::setDocument):
(WebCore):
(WebCore::Node::setTreeScope):
(WebCore::Node::createRareData):
(WebCore::Node::attach):
(WebCore::Node::reportMemoryUsage):
* dom/Node.h:
(WebCore):
(WebCore::NodeRareDataBase::treeScope):
(WebCore::NodeRareDataBase::setTreeScope):
(NodeRareDataBase):
(WebCore::NodeRareDataBase::NodeRareDataBase):
(Node):
(WebCore::Node::inDocument):
(WebCore::Node::documentInternal):
* dom/NodeRareData.cpp:
(SameSizeAsNodeRareData):
(WebCore::NodeRareData::reportMemoryUsage):
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
* dom/TreeScope.cpp:
(SameSizeAsTreeScope):
(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::setParentTreeScope):
* dom/TreeScope.h:
(WebCore):
(TreeScope):
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
(WebCore::TreeScopeAdopter::moveNodeToNewDocument):
2012-12-12 Seokju Kwon <seokju.kwon@gmail.com>
Fix build warning when ENABLE_INSPECTOR is disabled
https://bugs.webkit.org/show_bug.cgi?id=104757
Reviewed by Kentaro Hara.
Use UNUSED_PARAM macro to fix build warning -Wunused-parameter.
No new tests, no behavior change.
* inspector/InspectorCanvasInstrumentation.h:
(WebCore::InspectorInstrumentation::wrapCanvas2DRenderingContextForInstrumentation):
(WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
* inspector/InspectorConsoleInstrumentation.h:
(WebCore::InspectorInstrumentation::addMessageToConsole):
(WebCore::InspectorInstrumentation::consoleCount):
(WebCore::InspectorInstrumentation::startConsoleTiming):
(WebCore::InspectorInstrumentation::stopConsoleTiming):
(WebCore::InspectorInstrumentation::consoleTimeStamp):
(WebCore::InspectorInstrumentation::addStartProfilingMessageToConsole):
(WebCore::InspectorInstrumentation::addProfile):
(WebCore::InspectorInstrumentation::profilerEnabled):
(WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileName):
* inspector/InspectorCounters.h:
(WebCore::InspectorCounters::incrementCounter):
(WebCore::InspectorCounters::decrementCounter):
* inspector/InspectorDatabaseInstrumentation.h:
(WebCore::InspectorInstrumentation::didOpenDatabase):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didClearWindowObjectInWorld):
(WebCore::InspectorInstrumentation::isDebuggerPaused):
(WebCore::InspectorInstrumentation::willInsertDOMNode):
(WebCore::InspectorInstrumentation::didInsertDOMNode):
(WebCore::InspectorInstrumentation::willRemoveDOMNode):
(WebCore::InspectorInstrumentation::willModifyDOMAttr):
(WebCore::InspectorInstrumentation::didModifyDOMAttr):
(WebCore::InspectorInstrumentation::didRemoveDOMAttr):
(WebCore::InspectorInstrumentation::didInvalidateStyleAttr):
(WebCore::InspectorInstrumentation::frameWindowDiscarded):
(WebCore::InspectorInstrumentation::mediaQueryResultChanged):
(WebCore::InspectorInstrumentation::didPushShadowRoot):
(WebCore::InspectorInstrumentation::willPopShadowRoot):
(WebCore::InspectorInstrumentation::didCreateNamedFlow):
(WebCore::InspectorInstrumentation::willRemoveNamedFlow):
(WebCore::InspectorInstrumentation::didUpdateRegionLayout):
(WebCore::InspectorInstrumentation::mouseDidMoveOverElement):
(WebCore::InspectorInstrumentation::handleTouchEvent):
(WebCore::InspectorInstrumentation::handleMousePress):
(WebCore::InspectorInstrumentation::forcePseudoState):
(WebCore::InspectorInstrumentation::characterDataModified):
(WebCore::InspectorInstrumentation::willSendXMLHttpRequest):
(WebCore::InspectorInstrumentation::didScheduleResourceRequest):
(WebCore::InspectorInstrumentation::didInstallTimer):
(WebCore::InspectorInstrumentation::didRemoveTimer):
(WebCore::InspectorInstrumentation::willCallFunction):
(WebCore::InspectorInstrumentation::didCallFunction):
(WebCore::InspectorInstrumentation::willDispatchXHRReadyStateChangeEvent):
(WebCore::InspectorInstrumentation::didDispatchXHRReadyStateChangeEvent):
(WebCore::InspectorInstrumentation::willDispatchEvent):
(WebCore::InspectorInstrumentation::didDispatchEvent):
(WebCore::InspectorInstrumentation::willHandleEvent):
(WebCore::InspectorInstrumentation::didHandleEvent):
(WebCore::InspectorInstrumentation::willDispatchEventOnWindow):
(WebCore::InspectorInstrumentation::didDispatchEventOnWindow):
(WebCore::InspectorInstrumentation::willEvaluateScript):
(WebCore::InspectorInstrumentation::didEvaluateScript):
(WebCore::InspectorInstrumentation::didCreateIsolatedContext):
(WebCore::InspectorInstrumentation::willFireTimer):
(WebCore::InspectorInstrumentation::didFireTimer):
(WebCore::InspectorInstrumentation::didBeginFrame):
(WebCore::InspectorInstrumentation::didCancelFrame):
(WebCore::InspectorInstrumentation::didInvalidateLayout):
(WebCore::InspectorInstrumentation::willLayout):
(WebCore::InspectorInstrumentation::didLayout):
(WebCore::InspectorInstrumentation::didScroll):
(WebCore::InspectorInstrumentation::willDispatchXHRLoadEvent):
(WebCore::InspectorInstrumentation::didDispatchXHRLoadEvent):
(WebCore::InspectorInstrumentation::willPaint):
(WebCore::InspectorInstrumentation::didPaint):
(WebCore::InspectorInstrumentation::willScrollLayer):
(WebCore::InspectorInstrumentation::didScrollLayer):
(WebCore::InspectorInstrumentation::willComposite):
(WebCore::InspectorInstrumentation::didComposite):
(WebCore::InspectorInstrumentation::willRecalculateStyle):
(WebCore::InspectorInstrumentation::didRecalculateStyle):
(WebCore::InspectorInstrumentation::didScheduleStyleRecalculation):
(WebCore::InspectorInstrumentation::willMatchRule):
(WebCore::InspectorInstrumentation::didMatchRule):
(WebCore::InspectorInstrumentation::willProcessRule):
(WebCore::InspectorInstrumentation::didProcessRule):
(WebCore::InspectorInstrumentation::applyUserAgentOverride):
(WebCore::InspectorInstrumentation::applyScreenWidthOverride):
(WebCore::InspectorInstrumentation::applyScreenHeightOverride):
(WebCore::InspectorInstrumentation::shouldApplyScreenWidthOverride):
(WebCore::InspectorInstrumentation::applyEmulatedMedia):
(WebCore::InspectorInstrumentation::shouldApplyScreenHeightOverride):
(WebCore::InspectorInstrumentation::willSendRequest):
(WebCore::InspectorInstrumentation::continueAfterPingLoader):
(WebCore::InspectorInstrumentation::markResourceAsCached):
(WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCache):
(WebCore::InspectorInstrumentation::willReceiveResourceData):
(WebCore::InspectorInstrumentation::didReceiveResourceData):
(WebCore::InspectorInstrumentation::willReceiveResourceResponse):
(WebCore::InspectorInstrumentation::didReceiveResourceResponse):
(WebCore::InspectorInstrumentation::continueAfterXFrameOptionsDenied):
(WebCore::InspectorInstrumentation::continueWithPolicyDownload):
(WebCore::InspectorInstrumentation::continueWithPolicyIgnore):
(WebCore::InspectorInstrumentation::didReceiveData):
(WebCore::InspectorInstrumentation::didFinishLoading):
(WebCore::InspectorInstrumentation::didFailLoading):
(WebCore::InspectorInstrumentation::documentThreadableLoaderStartedLoadingForClient):
(WebCore::InspectorInstrumentation::willLoadXHR):
(WebCore::InspectorInstrumentation::didFailXHRLoading):
(WebCore::InspectorInstrumentation::didFinishXHRLoading):
(WebCore::InspectorInstrumentation::didReceiveXHRResponse):
(WebCore::InspectorInstrumentation::willLoadXHRSynchronously):
(WebCore::InspectorInstrumentation::didLoadXHRSynchronously):
(WebCore::InspectorInstrumentation::scriptImported):
(WebCore::InspectorInstrumentation::scriptExecutionBlockedByCSP):
(WebCore::InspectorInstrumentation::didReceiveScriptResponse):
(WebCore::InspectorInstrumentation::domContentLoadedEventFired):
(WebCore::InspectorInstrumentation::loadEventFired):
(WebCore::InspectorInstrumentation::frameDetachedFromParent):
(WebCore::InspectorInstrumentation::didCommitLoad):
(WebCore::InspectorInstrumentation::loaderDetachedFromFrame):
(WebCore::InspectorInstrumentation::willDestroyCachedResource):
(WebCore::InspectorInstrumentation::willWriteHTML):
(WebCore::InspectorInstrumentation::didWriteHTML):
(WebCore::InspectorInstrumentation::didUseDOMStorage):
(WebCore::InspectorInstrumentation::didDispatchDOMStorageEvent):
(WebCore::InspectorInstrumentation::shouldPauseDedicatedWorkerOnStart):
(WebCore::InspectorInstrumentation::didStartWorkerContext):
(WebCore::InspectorInstrumentation::workerContextTerminated):
(WebCore::InspectorInstrumentation::didCreateWebSocket):
(WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
(WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
(WebCore::InspectorInstrumentation::didCloseWebSocket):
(WebCore::InspectorInstrumentation::didReceiveWebSocketFrame):
(WebCore::InspectorInstrumentation::didReceiveWebSocketFrameError):
(WebCore::InspectorInstrumentation::didSendWebSocketFrame):
(WebCore::InspectorInstrumentation::networkStateChanged):
(WebCore::InspectorInstrumentation::updateApplicationCacheStatus):
(WebCore::InspectorInstrumentation::didRequestAnimationFrame):
(WebCore::InspectorInstrumentation::didCancelAnimationFrame):
(WebCore::InspectorInstrumentation::willFireAnimationFrame):
(WebCore::InspectorInstrumentation::didFireAnimationFrame):
(WebCore::InspectorInstrumentation::overrideGeolocationPosition):
(WebCore::InspectorInstrumentation::overrideDeviceOrientation):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::didFinishLoading):
(WebCore::ApplicationCacheGroup::didFail):
2012-12-12 Dean Jackson <dino@apple.com>
Reinstate CIFilter code for Lion
https://bugs.webkit.org/show_bug.cgi?id=104847
Reviewed by Simon Fraser.
This basically reverts r137500 for Lion, because some
CAFilter types are not available there.
Covered by existing tests, with the warning that Lion
baselines will need updating.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::setFilters): Put an ugly #if in to
detect OS X 10.7, and rename caFilter variable to
filter.
2012-12-12 Seokju Kwon <seokju.kwon@gmail.com>
[EFL] Refactor duplicate code into EflInspectorUtilities
https://bugs.webkit.org/show_bug.cgi?id=104329
Reviewed by Kenneth Rohde Christiansen.
Move duplicate work into EflInspectorUtilities.
No new tests, refactoring.
* PlatformEfl.cmake:
* platform/efl/EflInspectorUtilities.cpp: Added.
(WebCore):
(WebCore::inspectorResourcePath):
* platform/efl/EflInspectorUtilities.h: Added.
(WebCore):
2012-12-12 Mark Lam <mark.lam@apple.com>
Fixing a chromium build breakage due to r137520.
https://bugs.webkit.org/show_bug.cgi?id=104741.
Not reviewed.
Added #ifdef !PLATFORM(CHROMIUM) for one function chromium doesn't use.
No new tests.
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::initialize):
* Modules/webdatabase/DatabaseTracker.h:
(DatabaseTracker):
2012-12-11 Emil A Eklund <eae@chromium.org>
REGRESSION (Subpixel layout): Gray vertical lines appear when moving insertion point to right on Mac
https://bugs.webkit.org/show_bug.cgi?id=102402
Reviewed by Simon Fraser.
Round paintOffset in CaretBase::paintCaret to ensure that caret is painted at an integer pixel boundary.
Test: fast/sub-pixel/input-caret-on-subpixel-bound.html
* editing/FrameSelection.cpp:
(WebCore::CaretBase::paintCaret): Round paintOffset to ensure it is on a pixel boundary.
2012-12-12 Elliott Sprehn <esprehn@gmail.com>
REGRESSION(137336): Generated run-ins are not placed correctly
https://bugs.webkit.org/show_bug.cgi?id=104840
Reviewed by Abhishek Arya.
Now that :before and :after are not anonymous we no longer need special
handling for run-ins. Currently placeRunInIfNeeded will only place
a generated content run-in if a special flag is passed, but I removed
the call with the flag as it wasn't needed in r137336. This patch just
removes all special handling for generated content run-ins.
Test: fast/css-generated-content/generated-runin.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
(WebCore::RenderBlock::placeRunInIfNeeded):
(WebCore::RenderBlock::createReplacementRunIn):
Lots of simplfication since there's no more anonymous run-ins.
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderObject.h:
2012-12-12 Simon Fraser <simon.fraser@apple.com>
Don't unconditionally repaint compositing layers when their size changes
https://bugs.webkit.org/show_bug.cgi?id=104461
Reviewed by James Robinson.
In r137215 I attempted to avoid excessive repainting when compositing layers
change size. This caused stretched layers when layer size changed as a result
of bounds constraining in updateCompositedBounds(), so was conditionalized
based on whether constraining happend, in r137248.
However, the TileCache layer was affected by constraining, erroneously:
shouldClipCompositedBounds() returned true of the tile cache layer. This
is pointless, because we only constrain to the document bounds (or enclosing
overflow), and the tile cache is already the size of the document bounds.
So, disable size constraining for the tile cache layer, and fix
a confusing comment in updateCompositedBounds() that refers to the
view's bounds, rather than the document's bounds.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::shouldClipCompositedBounds):
(WebCore::RenderLayerBacking::updateCompositedBounds):
2012-12-12 Elliott Sprehn <esprehn@gmail.com>
[Refactoring] Replace Node's Document pointer with a TreeScope pointer
https://bugs.webkit.org/show_bug.cgi?id=59816
Reviewed by Ryosuke Niwa.
Instead of giving every node in a shadow a rare data, which can be quite
large, we replace the Document pointer in Node with a TreeScope pointer
and we give TreeScope a pointer to it's document scope.
This introduces no branches in document() because in the common
case document() becomes equivalent to m_treeScope->m_documentScope where
the documentScope is actually m_treeScope so this shouldn't introduce a
perf regression.
Note also that TreeScope can never be null after r136328, and the document
pointer is only null for DocumentType nodes so we can use a special
no-document TreeScope for this case that always returns null from
documentScope().
No new tests, no change in behavior.
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::Document::suggestedMIMEType):
* dom/Document.h:
(WebCore::Node::isDocumentNode):
(WebCore::Node::Node):
* dom/Element.cpp:
(WebCore::Element::createRareData):
* dom/ElementRareData.h:
(ElementRareData):
(WebCore::ElementRareData::ElementRareData):
* dom/Node.cpp:
(WebCore::Node::~Node):
(WebCore::Node::createRareData):
(WebCore::Node::attach):
(WebCore::Node::reportMemoryUsage):
* dom/Node.h:
(WebCore):
(WebCore::NodeRareDataBase::NodeRareDataBase):
(NodeRareDataBase):
(WebCore::Node::treeScope):
(WebCore::Node::inDocument):
(WebCore::Node::documentInternal):
(WebCore::Node::setTreeScope):
(Node):
* dom/NodeRareData.cpp:
(WebCore::NodeRareData::reportMemoryUsage):
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
* dom/TreeScope.cpp:
(SameSizeAsTreeScope):
(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::setParentTreeScope):
* dom/TreeScope.h:
(WebCore):
(TreeScope):
(WebCore::TreeScope::documentScope):
(WebCore::TreeScope::noDocumentInstance):
Returns a special tree scope that has no document for use with
DocumentType nodes.
(WebCore::TreeScope::setDocumentScope):
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
(WebCore::TreeScopeAdopter::moveTreeToNewDocument):
(WebCore::TreeScopeAdopter::moveNodeToNewDocument):
2012-12-12 Mark Lam <mark.lam@apple.com>
Encapsulate externally used webdatabase APIs in DatabaseManager.
https://bugs.webkit.org/show_bug.cgi?id=104741.
Reviewed by Sam Weinig.
Use DatabaseManager instead of accessing DatabaseTracker, AbstractDatabase,
and DatabaseContext directly. This is to prepare for upcoming webkit2
refactoring.
No new tests.
* CMakeLists.txt:
* Modules/webdatabase/DatabaseManager.cpp: Added.
(WebCore::DatabaseManager::manager):
(WebCore::DatabaseManager::DatabaseManager):
(WebCore::DatabaseManager::initialize):
(WebCore::DatabaseManager::setClient):
(WebCore::DatabaseManager::isAvailable):
(WebCore::DatabaseManager::setIsAvailable):
(WebCore::DatabaseManager::hasOpenDatabases):
(WebCore::DatabaseManager::stopDatabases):
(WebCore::DatabaseManager::fullPathForDatabase):
(WebCore::DatabaseManager::databaseDirectoryPath):
(WebCore::DatabaseManager::setDatabaseDirectoryPath):
(WebCore::DatabaseManager::hasEntryForOrigin):
(WebCore::DatabaseManager::origins):
(WebCore::DatabaseManager::databaseNamesForOrigin):
(WebCore::DatabaseManager::detailsForNameAndOrigin):
(WebCore::DatabaseManager::usageForOrigin):
(WebCore::DatabaseManager::quotaForOrigin):
(WebCore::DatabaseManager::setQuota):
(WebCore::DatabaseManager::deleteAllDatabases):
(WebCore::DatabaseManager::deleteOrigin):
(WebCore::DatabaseManager::deleteDatabase):
(WebCore::DatabaseManager::closeDatabasesImmediately):
(WebCore::DatabaseManager::interruptAllDatabasesForContext):
* Modules/webdatabase/DatabaseManager.h: Added.
(DatabaseManager):
(WebCore::DatabaseManager::~DatabaseManager):
* Modules/webdatabase/DatabaseManagerClient.h: Copied from Source/WebCore/Modules/webdatabase/DatabaseTrackerClient.h.
(WebCore::DatabaseManagerClient::~DatabaseManagerClient):
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::setClient):
* Modules/webdatabase/DatabaseTracker.h:
(DatabaseTracker):
* Modules/webdatabase/DatabaseTrackerClient.h: Removed.
* Target.pri:
* WebCore.exp.in:
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* WebCore.order:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::openDatabaseEnabled):
(WebCore::RuntimeEnabledFeatures::openDatabaseSyncEnabled):
* history/PageCache.cpp:
(WebCore::logCanCacheFrameDecision):
(WebCore::PageCache::canCachePageContainingThisFrame):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading):
* page/DOMWindow.cpp:
* workers/WorkerThread.cpp:
(WebCore::WorkerThreadShutdownStartTask::performTask):
(WebCore::WorkerThread::stop):
2012-12-12 Tony Chang <tony@chromium.org>
[chromium] don't write additional idl files to a gyp temp file
https://bugs.webkit.org/show_bug.cgi?id=104831
Reviewed by Kentaro Hara.
The <|( command doesn't work for files like <(PRODUCT_DIR) or <(SHARED_INTERMEDIATE_DIR).
For additional_idl_files, pass it as a parameter instead of a file listing the filenames.
There are currently only 3 files in this variable. This shouldn't overflow the command
line since the limit on Windows is 8k and with this change, we're still only around 4.5k.
Also, the longest part of the command line is the list of defines. If needed, we could put
that in a file instead.
No new tests, this is a refactoring of the build files.
* WebCore.gyp/WebCore.gyp: Don't use <|( for additional_idl_files.
* bindings/scripts/generate-bindings.pl: Change --additionalIdlFilesList to
--additionalIdlFiles, which is a shell argument containing the filenames.
2012-12-12 Chris Rogers <crogers@google.com>
Implement OfflineAudioContext constructor
https://bugs.webkit.org/show_bug.cgi?id=104188
Reviewed by Kentaro Hara.
The Web Audio layout tests have relied on an undocumented way (in the specification) to render
audio faster than realtime using an OfflineAudioContext. We want to expose a proper OfflineAudioContext
object and constructor instead of piggybacking off of the normal AudioContext.
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::isSampleRateRangeGood):
* Modules/webaudio/AudioContext.h:
(AudioContext):
* Modules/webaudio/DOMWindowWebAudio.idl:
* Modules/webaudio/OfflineAudioContext.cpp: Added.
(WebCore):
(WebCore::OfflineAudioContext::create):
(WebCore::OfflineAudioContext::OfflineAudioContext):
(WebCore::OfflineAudioContext::~OfflineAudioContext):
* Modules/webaudio/OfflineAudioContext.h: Added.
(WebCore):
(OfflineAudioContext):
* Modules/webaudio/OfflineAudioContext.idl: Added.
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::webkitOfflineAudioContextEnabled):
* bindings/js/JSAudioContextCustom.cpp:
(WebCore::JSAudioContextConstructor::constructJSAudioContext):
* bindings/v8/custom/V8AudioContextCustom.cpp:
(WebCore::V8AudioContext::constructorCallbackCustom):
2012-12-12 John Griggs <jgriggs@rim.com>
2012-12-12 John Griggs <jgriggs@rim.com>
[BlackBerry] Update Media Controls for BlackBerry Platform
https://bugs.webkit.org/show_bug.cgi?id=104443
https://przilla.ott.qnx.com/bugzilla/show_bug.cgi?id=204748
Reviewed by Rob Buis.
Update Media Controls for BlackBerry platform to allow audio, embedded video and fullscreen video controls to be positioned and styled differently.
BlackBerry-specific update to Media Controls - No new tests required.
* PlatformBlackBerry.cmake:
* css/mediaControlsBlackBerry.css:
(audio):
(audio::-webkit-media-controls-embedded-panel, video::-webkit-media-controls-embedded-panel):
(audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
(video::-webkit-media-controls-button-group-container, audio::-webkit-media-controls-button-group-container):
(video::-webkit-media-controls-fullscreen-time-display-container, audio::-webkit-media-controls-fullscreen-time-display-container):
(video::-webkit-media-controls-time-display-container, audio::-webkit-media-controls-time-display-container):
(video::-webkit-media-controls-fullscreen-play-button, audio::-webkit-media-controls-fullscreen-play-button):
(video::-webkit-media-controls-play-button, audio::-webkit-media-controls-play-button):
(audio::-webkit-media-controls-fullscreen-timeline-container, video::-webkit-media-controls-fullscreen-timeline-container):
(video::-webkit-media-controls-timeline-container, audio::-webkit-media-controls-timeline-container):
(audio::-webkit-media-controls-fullscreen-current-time-display, video::-webkit-media-controls-fullscreen-current-time-display):
(audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
(video::-webkit-media-controls-fullscreen-time-remaining-display, audio::-webkit-media-controls-fullscreen-time-remaining-display):
(video::-webkit-media-controls-time-remaining-display, audio::-webkit-media-controls-time-remaining-display):
(audio::-webkit-media-controls-fullscreen-timeline, video::-webkit-media-controls-fullscreen-timeline):
(video::-webkit-media-controls-fullscreen-fullscreen-button, audio::-webkit-media-controls-fullscreen-fullscreen-button):
(video::-webkit-media-controls-fullscreen-button):
(audio::-webkit-media-controls-fullscreen-button):
(audio::-webkit-media-controls-audio-mute-button):
(video::-webkit-media-controls-audio-mute-button):
(audio::-webkit-media-controls-volume-slider-container):
(video::-webkit-media-controls-volume-slider-container):
(audio::-webkit-media-controls-volume-slider):
(video::-webkit-media-controls-volume-slider):
(video::-webkit-media-controls-fullscreen-button-divider, audio::-webkit-media-controls-fullscreen-button-divider):
(video::-webkit-media-controls-fullscreen-button-container, video::-webkit-media-controls-play-button-container, audio::-webkit-media-controls-fullscreen-button-container, audio::-webkit-media-controls-play-button-container):
* css/mediaControlsBlackBerryFullscreen.css: Added.
(body:-webkit-full-page-media):
(video:-webkit-full-screen::-webkit-media-controls-embedded-panel):
(video:-webkit-full-screen::-webkit-media-controls-panel):
(video:-webkit-full-screen::-webkit-media-controls-button-group-container):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-display-container):
(video:-webkit-full-screen::-webkit-media-controls-time-display-container):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-play-button):
(video:-webkit-full-screen::-webkit-media-controls-play-button):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline-container):
(video:-webkit-full-screen::-webkit-media-controls-timeline-container):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-current-time-display):
(video:-webkit-full-screen::-webkit-media-controls-current-time-display):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-remaining-display):
(video:-webkit-full-screen::-webkit-media-controls-time-remaining-display):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline):
(video:-webkit-full-screen::-webkit-media-controls-timeline):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-fullscreen-button):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-button):
(video:-webkit-full-screen::-webkit-media-controls-audio-mute-button):
(video:-webkit-full-screen::-webkit-media-controls-volume-slider-container):
(video:-webkit-full-screen::-webkit-media-controls-volume-slider):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-divider):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container, video:-webkit-full-screen::-webkit-media-controls-play-button-container):
(video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container):
(video:-webkit-full-screen::-webkit-media-controls-play-button-container):
(video:-webkit-full-screen::-webkit-media-controls-placeholder):
* html/shadow/MediaControlsBlackBerry.cpp: Added.
(WebCore):
(WebCore::MediaControlButtonGroupContainerElement::MediaControlButtonGroupContainerElement):
(WebCore::MediaControlButtonGroupContainerElement::create):
(WebCore::MediaControlButtonGroupContainerElement::shadowPseudoId):
(WebCore::MediaControlTimeDisplayContainerElement::MediaControlTimeDisplayContainerElement):
(WebCore::MediaControlTimeDisplayContainerElement::create):
(WebCore::MediaControlTimeDisplayContainerElement::shadowPseudoId):
(WebCore::MediaControlEmbeddedPanelElement::MediaControlEmbeddedPanelElement):
(WebCore::MediaControlEmbeddedPanelElement::create):
(WebCore::MediaControlEmbeddedPanelElement::shadowPseudoId):
(WebCore::MediaControlEmbeddedPanelElement::startDrag):
(WebCore::MediaControlEmbeddedPanelElement::continueDrag):
(WebCore::MediaControlEmbeddedPanelElement::endDrag):
(WebCore::MediaControlEmbeddedPanelElement::startTimer):
(WebCore::MediaControlEmbeddedPanelElement::stopTimer):
(WebCore::MediaControlEmbeddedPanelElement::transitionTimerFired):
(WebCore::MediaControlEmbeddedPanelElement::setPosition):
(WebCore::MediaControlEmbeddedPanelElement::resetPosition):
(WebCore::MediaControlEmbeddedPanelElement::makeOpaque):
(WebCore::MediaControlEmbeddedPanelElement::makeTransparent):
(WebCore::MediaControlEmbeddedPanelElement::defaultEventHandler):
(WebCore::MediaControlEmbeddedPanelElement::setCanBeDragged):
(WebCore::MediaControlEmbeddedPanelElement::setIsDisplayed):
(WebCore::MediaControlFullscreenTimeDisplayContainerElement::MediaControlFullscreenTimeDisplayContainerElement):
(WebCore::MediaControlFullscreenTimeDisplayContainerElement::create):
(WebCore::MediaControlFullscreenTimeDisplayContainerElement::shadowPseudoId):
(WebCore::MediaControlFullscreenButtonContainerElement::MediaControlFullscreenButtonContainerElement):
(WebCore::MediaControlFullscreenButtonContainerElement::create):
(WebCore::MediaControlFullscreenButtonContainerElement::shadowPseudoId):
(WebCore::MediaControlFullscreenButtonDividerElement::MediaControlFullscreenButtonDividerElement):
(WebCore::MediaControlFullscreenButtonDividerElement::create):
(WebCore::MediaControlFullscreenButtonDividerElement::shadowPseudoId):
(WebCore::MediaControlPlayButtonContainerElement::MediaControlPlayButtonContainerElement):
(WebCore::MediaControlPlayButtonContainerElement::create):
(WebCore::MediaControlPlayButtonContainerElement::shadowPseudoId):
(WebCore::MediaControlPlaceholderElement::MediaControlPlaceholderElement):
(WebCore::MediaControlPlaceholderElement::create):
(WebCore::MediaControlPlaceholderElement::shadowPseudoId):
(WebCore::MediaControlFullscreenPlayButtonElement::MediaControlFullscreenPlayButtonElement):
(WebCore::MediaControlFullscreenPlayButtonElement::create):
(WebCore::MediaControlFullscreenPlayButtonElement::defaultEventHandler):
(WebCore::MediaControlFullscreenPlayButtonElement::updateDisplayType):
(WebCore::MediaControlFullscreenPlayButtonElement::shadowPseudoId):
(WebCore::MediaControlFullscreenFullscreenButtonElement::MediaControlFullscreenFullscreenButtonElement):
(WebCore::MediaControlFullscreenFullscreenButtonElement::create):
(WebCore::MediaControlFullscreenFullscreenButtonElement::defaultEventHandler):
(WebCore::MediaControlFullscreenFullscreenButtonElement::shadowPseudoId):
(WebCore::MediaControlFullscreenFullscreenButtonElement::setIsFullscreen):
(WebCore::MediaControlFullscreenTimelineContainerElement::MediaControlFullscreenTimelineContainerElement):
(WebCore::MediaControlFullscreenTimelineContainerElement::create):
(WebCore::MediaControlFullscreenTimelineContainerElement::shadowPseudoId):
(WebCore::MediaControlFullscreenTimelineElement::MediaControlFullscreenTimelineElement):
(WebCore::MediaControlFullscreenTimelineElement::create):
(WebCore::MediaControlFullscreenTimelineElement::defaultEventHandler):
(WebCore::MediaControlFullscreenTimelineElement::willRespondToMouseClickEvents):
(WebCore::MediaControlFullscreenTimelineElement::setPosition):
(WebCore::MediaControlFullscreenTimelineElement::setDuration):
(WebCore::MediaControlFullscreenTimelineElement::shadowPseudoId):
(WebCore::MediaControlFullscreenTimeRemainingDisplayElement::create):
(WebCore::MediaControlFullscreenTimeRemainingDisplayElement::MediaControlFullscreenTimeRemainingDisplayElement):
(WebCore::MediaControlFullscreenTimeRemainingDisplayElement::shadowPseudoId):
(WebCore::MediaControlFullscreenCurrentTimeDisplayElement::create):
(WebCore::MediaControlFullscreenCurrentTimeDisplayElement::MediaControlFullscreenCurrentTimeDisplayElement):
(WebCore::MediaControlFullscreenCurrentTimeDisplayElement::shadowPseudoId):
(WebCore::MediaControlAudioMuteButtonElement::MediaControlAudioMuteButtonElement):
(WebCore::MediaControlAudioMuteButtonElement::create):
(WebCore::MediaControlAudioMuteButtonElement::defaultEventHandler):
(WebCore::MediaControlAudioMuteButtonElement::shadowPseudoId):
(WebCore::MediaControlsBlackBerry::MediaControlsBlackBerry):
(WebCore::MediaControls::create):
(WebCore::MediaControlsBlackBerry::createControls):
(WebCore::MediaControlsBlackBerry::setMediaController):
(WebCore::MediaControlsBlackBerry::show):
(WebCore::MediaControlsBlackBerry::hide):
(WebCore::MediaControlsBlackBerry::makeOpaque):
(WebCore::MediaControlsBlackBerry::makeTransparent):
(WebCore::MediaControlsBlackBerry::reset):
(WebCore::MediaControlsBlackBerry::bufferingProgressed):
(WebCore::MediaControlsBlackBerry::playbackStarted):
(WebCore::MediaControlsBlackBerry::playbackProgressed):
(WebCore::MediaControlsBlackBerry::playbackStopped):
(WebCore::MediaControlsBlackBerry::updateCurrentTimeDisplay):
(WebCore::MediaControlsBlackBerry::reportedError):
(WebCore::MediaControlsBlackBerry::changedMute):
(WebCore::MediaControlsBlackBerry::enteredFullscreen):
(WebCore::MediaControlsBlackBerry::exitedFullscreen):
(WebCore::MediaControlsBlackBerry::showVolumeSlider):
(WebCore::MediaControlsBlackBerry::toggleVolumeSlider):
(WebCore::MediaControlsBlackBerry::shouldHideControls):
* html/shadow/MediaControlsBlackBerry.h: Added.
(WebCore):
(MediaControlButtonGroupContainerElement):
(MediaControlTimeDisplayContainerElement):
(MediaControlEmbeddedPanelElement):
(MediaControlFullscreenTimeDisplayContainerElement):
(MediaControlFullscreenButtonContainerElement):
(MediaControlFullscreenButtonDividerElement):
(MediaControlPlayButtonContainerElement):
(MediaControlPlaceholderElement):
(MediaControlFullscreenPlayButtonElement):
(MediaControlFullscreenFullscreenButtonElement):
(MediaControlFullscreenTimelineContainerElement):
(MediaControlFullscreenTimelineElement):
(MediaControlFullscreenTimeRemainingDisplayElement):
(MediaControlFullscreenCurrentTimeDisplayElement):
(MediaControlAudioMuteButtonElement):
(MediaControlsBlackBerry):
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore):
(WebCore::RenderThemeBlackBerry::extraFullScreenStyleSheet):
(WebCore::RenderThemeBlackBerry::adjustSliderThumbSize):
(WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
(WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
(WebCore::RenderThemeBlackBerry::adjustSliderTrackStyle):
(WebCore::RenderThemeBlackBerry::paintMediaRewindButton):
(WebCore::RenderThemeBlackBerry::paintMediaMuteButton):
(WebCore::RenderThemeBlackBerry::paintMediaFullscreenButton):
(WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
(WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
(WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
(WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderThumb):
* platform/blackberry/RenderThemeBlackBerry.h:
(WebCore::RenderThemeBlackBerry::usesVerticalVolumeSlider):
(RenderThemeBlackBerry):
2012-12-12 Dominic Mazzoni <dmazzoni@google.com>
AX: textUnderElement should consider alt text, but skip links and controls
https://bugs.webkit.org/show_bug.cgi?id=101650
Reviewed by Chris Fleizach.
Getting inner text from an element now ignores focusable descendants and
containers, but uses alternative text.
The computation of textUnderElement is now recursive. This caused a crash
if it was called by accessibilityIsIgnored during object destruction,
so I simplified accessibilityIsIgnored to not actually call textUnderElement,
without affecting test results, which should actually be a decent speedup.
Test: accessibility/button-title-uses-inner-img-alt.html
Test: accessibility/focusable-div.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore):
(WebCore::shouldUseAccessiblityObjectInnerText):
(WebCore::AccessibilityNodeObject::textUnderElement):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textUnderElement):
2012-12-12 Eberhard Graether <egraether@google.com>
Web Inspector: follow up to r136974: handle visibility shortcut in keydown event of ElementsTreeOutline.element
https://bugs.webkit.org/show_bug.cgi?id=104694
Reviewed by Pavel Feldman.
Typing H in the StylesSidebarPane caused toggling of the selected elements visibility. This change only handles
the H keydown when the ElementsPanel is focused.
No new tests.
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline):
(WebInspector.ElementsTreeOutline.prototype._onkeydown):
(WebInspector.ElementsTreeOutline.prototype.handleShortcut):
* inspector/front-end/KeyboardShortcut.js:
(WebInspector.KeyboardShortcut.hasNoModifiers):
2012-12-12 Philip Rogers <pdr@google.com>
Fix target element handling in SVGSMILElement.
https://bugs.webkit.org/show_bug.cgi?id=104495
Reviewed by Abhishek Arya.
This patch fixes two bugs that led to stale target elements in SVGSMILElement.
r122449 changed the <use> code to call removeAllElementReferencesForTarget to rebuild
dependent <use> trees. This contained a bug where element references would be incorrectly
removed. removeAllElementReferencesForTarget calls svgAttributeChanged(href) on all
references, which can then re-add the references back. The bug is that
removeAllElementReferencesForTarget removes a newly-added reference as the last step.
r136906 changed targetElement() to no longer be lazily resolved so any changes to an
animation's href attribute needed to be tracked. r136906 refactored the code but did not
fix a bug where animation elements not in the document would not react to
svgAttributeChanged(href).
The combination of these two bugs allowed stale targetElement references to exist. A
target element could be removed from the document without dependent animation elements
receiving a notification (bug 1) and not reacting to notifications they received (bug 2).
This patch updates SVGUseElement::buildInstanceTree to only rebuild (not remove) the
elements referencing the target by adding rebuildAllElementReferencesForTarget. This patch
also updates SVGSMILElement to correctly react to svgAttributeChanged() notifications
for href changes even when not in the document.
Test: svg/animations/target-condition-crash.html
* svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::rebuildAllElementReferencesForTarget):
(WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
Refactored so that we can notify element references to update without removing
references.
* svg/SVGDocumentExtensions.h:
(SVGDocumentExtensions):
* svg/SVGElement.cpp:
(WebCore::SVGElement::~SVGElement):
(WebCore::SVGElement::removedFrom):
Similar to SVGUseElement::buildShadowAndInstanceTree, this callsite was updated to
only rebuild references instead of removing them.
(WebCore::SVGElement::attributeChanged):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::buildShadowAndInstanceTree):
The comment indicates we just want to rebuild (not remove). This callsite has been
updated to use the new rebuildAllElementReferencesForTarget function.
(WebCore::SVGUseElement::buildInstanceTree):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::buildPendingResource):
(WebCore::SVGSMILElement::removedFrom):
Previously, if an SVGSMILElement was not in the document, only clearResourceReferences
would be called when the target changed. This has been refactored to reset the
targetElement if the element needs to build resources but is not in the document.
I looked at moving this into clearResourceReferences (since the target element might
be considered a reference) but we run into issues calling pure virtual functions in
the destructor. The current implementation seemed the cleanest.
SVGSMILElement::removedFrom was cleaned up to match the rest of the code. The comment
in removedFrom appears to be stale since disconnectConditions does not kill the element.
(WebCore::SVGSMILElement::svgAttributeChanged):
Removed the bad !inDocument() checks that broke href change notifications.
(WebCore::SVGSMILElement::setTargetElement):
2012-12-12 Alpha Lam <hclam@chromium.org>
[chromium] Minimize memcpy for encoded image data in ImageFrameGenerator
https://bugs.webkit.org/show_bug.cgi?id=103797
Reviewed by Stephen White.
Added a new class ThreadSafeDataTransport to help transporting data in
SharedBuffer from one thread to another. This class is designed to minimize
thread contention and memory copy.
It is implemented using a data queue. New data segments are copied into
this queue. The queue is then consolidated with existing data when user
requests access to the final SharedBuffer.
Memory is copied into and out of the queue but this approach avoid
copying the entire SharedBuffer.
ImageFrameGenerator is now using this class for data transport between
threads.
Unit tests in ThreadSafeDataTransportTest. Also existing ImageFrameGeneratorTest passes.
* WebCore.gypi:
* platform/graphics/chromium/ImageFrameGenerator.cpp:
(WebCore::ImageFrameGenerator::ImageFrameGenerator):
(WebCore::ImageFrameGenerator::setData):
(WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
Added logic to skip decoding if there's no new data.
(WebCore::ImageFrameGenerator::decode):
* platform/graphics/chromium/ImageFrameGenerator.h:
(ImageFrameGenerator):
* platform/graphics/chromium/ThreadSafeDataTransport.cpp: Added.
(WebCore):
(WebCore::ThreadSafeDataTransport::ThreadSafeDataTransport):
(WebCore::ThreadSafeDataTransport::~ThreadSafeDataTransport):
(WebCore::ThreadSafeDataTransport::setData):
(WebCore::ThreadSafeDataTransport::data):
(WebCore::ThreadSafeDataTransport::hasNewData):
* platform/graphics/chromium/ThreadSafeDataTransport.h: Added.
(WebCore):
(ThreadSafeDataTransport):
2012-12-12 Roger Fong <roger_fong@apple.com>
Enable VIDEO_TRACK on Windows.
https://bugs.webkit.org/show_bug.cgi?id=104706.
Reviewed by Timothy Horton.
Enable VIDEO_TRACK on Windows and update project property files.
* DerivedSources.cpp:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcproj/WebCoreCommon.vsprops:
* WebCore.vcproj/copyForwardingHeaders.cmd:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* html/HTMLElementsAllInOne.cpp:
* rendering/RenderingAllInOne.cpp:
2012-12-12 No'am Rosenthal <noam.rosenthal@nokia.com>
REGRESSION: r137481 caused a build failure with GTK
https://bugs.webkit.org/show_bug.cgi?id=104826
Unreviewed build fix.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::prepareBackingStore):
Brought back #if PLATFORM(QT) to surround the dynamic_cast call.
2012-12-12 Dean Jackson <dino@apple.com>
Use CAFilter rather than CIFilter
https://bugs.webkit.org/show_bug.cgi?id=104759
Reviewed by Tim Horton.
In order to get better performance in the simple CSS filter
cases, use CAFilter rather than CIFilter. This involved
defining some platform-specific values inside
PlatformCALayerMac to expose CAFilter.
The great side-effect is that this brings our hardware
output much closer to our software filters. For example,
on a random location in the hue-rotate test.
Software: rgb(255, 148, 16)
Hardware before: rgb(255, 204, 50)
Hardware after: rgb(255, 165, 33)
Still some improvement needed, but better.
Covered by existing tests.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(CAColorMatrix): New structure to hold 5x4 matrix representing a color operation.
(PlatformCALayer::setFilters): Use CAFilter objects rather than CIFilter.
2012-12-12 No'am Rosenthal <noam@webkit.org>
[Texmap] Consolidate redundant code for ARB_RECT texture
https://bugs.webkit.org/show_bug.cgi?id=104705
Reviewed by Kenneth Rohde Christiansen.
Instead of having a whole different function for RECT textures,
keep the existing functions and pass a flag that tells
TextureMapperGL to use the non-normalized coordinates and the
RECT shaders.
No new tests, refactor only. Tested to not break WebGL on
Qt-Mac.
* platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawQuad):
Compensate for rect textures in drawQuad.
(WebCore::TextureMapperGL::drawBorder):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::TextureMapperGL::drawTextureWithAntialiasing):
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
Pass flags to TextureMapperGL::drawQuad instead of a bool.
* platform/graphics/texmap/TextureMapperGL.h:
(TextureMapperGL):
* platform/graphics/texmap/TextureMapperShaderManager.cpp:
(WebCore::getShaderSpec):
* platform/graphics/texmap/TextureMapperShaderManager.h:
(TextureMapperShaderProgram):
Compensate for the texture-size in the vertex
shader instead of in the fragment shader.
2012-12-12 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r137491.
http://trac.webkit.org/changeset/137491
https://bugs.webkit.org/show_bug.cgi?id=104828
broke the builtd (Requested by rfong on #webkit).
* DerivedSources.cpp:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcproj/WebCoreCommon.vsprops:
* WebCore.vcproj/copyForwardingHeaders.cmd:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* html/HTMLElementsAllInOne.cpp:
* platform/NotImplemented.cpp:
(WebCore):
(WebCore::notImplementedLoggingChannel):
* rendering/RenderingAllInOne.cpp:
2012-12-12 John J. Barton <johnjbarton@chromium.org>
Web Inspector: remove protocol-externs.js temp file after compile-front-end.py
https://bugs.webkit.org/show_bug.cgi?id=98799
Reviewed by Vsevolod Vlasov.
Add os.system rm for protocol-externs.js to the end of the compile script
* inspector/compile-front-end.py:
2012-12-12 Robert Hogan <robert@webkit.org>
White space between inline blocks should be affected by word-spacing property
https://bugs.webkit.org/show_bug.cgi?id=69072
Reviewed by Levi Weintraub.
Allow word-spacing to get added to the spaces between inline blocks in placeBoxesInInlineDirection by setting
needsWordSpacing to true each time an inline block is encountered. This ensures that the next space encountered
in a text run will be treated as a space between two words and will get word-spacing added to it if it is present
in the style.
Tests: fast/css/word-spacing-between-blocks.html
fast/css/word-spacing-between-inlines.html
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxRangeInInlineDirection):
2012-12-12 Xianzhu Wang <wangxianzhu@chromium.org>
Pre-painting should not paint out-of-view fixed position elements
https://bugs.webkit.org/show_bug.cgi?id=104724
Reviewed by James Robinson.
Test: ManualTests/compositing/fixed-position-out-of-view-scroll-prepaint.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayer): Don't paint out-of-view fixed position elements.
2012-12-11 Roger Fong <roger_fong@apple.com>
Enable VIDEO_TRACK on Windows.
https://bugs.webkit.org/show_bug.cgi?id=104706.
Reviewed by Timothy Horton.
Enable VIDEO_TRACK on Windows and update project property files.
* DerivedSources.cpp:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcproj/WebCoreCommon.vsprops:
* WebCore.vcproj/copyForwardingHeaders.cmd:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* html/HTMLElementsAllInOne.cpp:
* rendering/RenderingAllInOne.cpp:
2012-12-12 James Simonsen <simonjam@chromium.org>
[Resource Timing] Failed resources shouldn't be recorded in the buffer
https://bugs.webkit.org/show_bug.cgi?id=104762
Reviewed by Tony Gentilcore.
Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_ignore_failures.html
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::loadDone):
2012-12-12 Martin Robinson <mrobinson@igalia.com>
[GTK] Add authentication support to DRT and fix exposed issues in the libsoup backend
https://bugs.webkit.org/show_bug.cgi?id=104285
Reviewed by Gustavo Noronha Silva.
Fix issues in the libsoup networking backend that were causing test
failures.
No new tests. This patch unskips authentication tests.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::isAuthenticationFailureStatusCode): Added this helper to catch authentication status codes
and use it everywhere.
(WebCore::applyAuthenticationToRequest): Use an early return instead of an if-statement
and instead of always using manually specified credentials, apply those found in the session
storage as well. Instead of applying the credentials to firstRequest always, accept the request
as a parameter, so this method can be properly used with redirects.
(WebCore::restartedCallback): Instead of creating the KURL directly from soup_uri_to_string
use soupURIToKURL, which preserves the password from the SoupURI. soup_uri_to_string doesn't
include the password. When calling applyAuthenticationToRequest update the new request. Before
applyAuthenticationToRequest always updated the firstRequest. Do not call willSendRequest for
instances when this method is called for authentication handling. willSendRequest should only
be called for server-side redirects.
(WebCore::createSoupRequestAndMessageForHandle): Use soup_requester_request_uri instead of
soup_requester_request. Request::soupURI properly creates a SoupURI with non-null empty strings
when either the username and password are empty. A null username or password does not trigger
the URI-embedded credential override in SoupAuthenticationManager within libsoup. This is important
because sometimes either the username or password might empty for a request, but the other
part of the credential should still override the per-session credential storage.
(WebCore::ResourceHandle::start): We don't need to clear the username and password from the
internal data structure any longer. These need to be cleared in the CFNetwork backend because
it prevents the same failed per-request credentials from being used over and over again. In our
case we don't use these members during didReceiveAuthenticationChallenge, so this isn't an issue.
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Don't look at the per-request
m_user/m_pass pair here any longer. We use these when initially creating a request, so we don't
want to re-use them if they fail.
* platform/network/soup/ResourceRequest.h:
(ResourceRequest): Rename urlStringForSoup to soupURI.
* platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::soupURI): Instead of returning a string for the soup-bound URL
return a SoupURI that properly embeds empty usernames and passwords.
2012-12-12 Alexey Proskuryakov <ap@apple.com>
Make LOG() work in WebProcess and NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=104718
Reviewed by Tim Horton.
Split initialization function into a new InitializeLogging.h file, because it's
needed in WebKit, but cannot be included along with WebKit version of this file.
We'd have a confilct between LOG_CHANNEL_PREFIX definitions if we tried.
* WebCore.xcodeproj/project.pbxproj: Make Logging.h a project header, and
InitializeLogging.h a private one.
* GNUmakefile.list.am:
* Target.pri:
* platform/InitializeLogging.h: Added.
* platform/Logging.h:
* platform/blackberry/LoggingBlackBerry.cpp:
* platform/efl/LoggingEfl.cpp:
* platform/gtk/LoggingGtk.cpp:
* platform/mac/LoggingMac.mm:
* platform/qt/LoggingQt.cpp:
* platform/win/LoggingWin.cpp:
* platform/wx/LoggingWx.cpp:
Include InitializeLogging.h where this function is implemented.
* platform/NotImplemented.h:
* platform/NotImplemented.cpp: Added.
Changed to not include WebCore's Logging.h in the header, because NotImplemented.h
is used in WebKits, which have incompatibe logging headers.
2012-12-12 Chris Fleizach <cfleizach@apple.com>
AX: aria-busy should be exposed everywhere, not just on live regions
https://bugs.webkit.org/show_bug.cgi?id=104814
Reviewed by Anders Carlsson.
The aria-busy attribute should be exposed on all elements.
This isn't entirely clear in the ARIA spec, but that will be fixed with
ARIA1.1 (ISSUE-538).
Existing tests that dump attributes cover this new behavior.
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
2012-12-12 Gavin Peters <gavinp@chromium.org>
[chromium] Add destructor to WebPrerender
https://bugs.webkit.org/show_bug.cgi?id=104820
Reviewed by James Robinson.
When making WebPrerender default constructible and assignable, the destructor should have been moved out of WEBKIT_IMPLEMENTATION.
Existing WebKit unit tests should test this, as do chromium browser tests.
* platform/chromium/support/WebPrerender.cpp:
(WebKit::WebPrerender::toPrerender):
(WebKit::WebPrerender::reset):
2012-12-12 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Animation fails on large layers
https://bugs.webkit.org/show_bug.cgi?id=104538
Reviewed by Noam Rosenthal.
The backing tiles had no upper limit defined for the non-GL backend, which could cause them
to allocate pixmaps widier or higher than what the underlying graphics systems can handle.
On top of that GraphicsLayerTextureMapper::prepareBackingStore() would allocate an intermediate
pixmap the size of the dirty rect, which would at least on the first paint be the size of the
entire layer, again causing allocation of pixmaps with dimensions outside of platform bounds.
This patch introduces a limit to the size of image buffer tiles, and adds an alternative path
for painting where the GraphicsLayer paints directly to the tile instead of over an intermediate
pixmap. This alternative path can also be useful later to minimize the amount of pixel copying
happening in full repaints.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::prepareBackingStore):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(GraphicsLayerTextureMapper):
* platform/graphics/texmap/TextureMapper.cpp:
(WebCore::BitmapTexture::updateContents):
* platform/graphics/texmap/TextureMapper.h:
(BitmapTexture):
(TextureMapper):
* platform/graphics/texmap/TextureMapperBackingStore.cpp:
(WebCore::TextureMapperTile::updateContents):
(WebCore::TextureMapperTiledBackingStore::updateContents):
* platform/graphics/texmap/TextureMapperBackingStore.h:
(TextureMapperTile):
(TextureMapperTiledBackingStore):
* platform/graphics/texmap/TextureMapperImageBuffer.cpp:
(WebCore::BitmapTextureImageBuffer::updateContents):
(WebCore::TextureMapperImageBuffer::maxTextureSize):
* platform/graphics/texmap/TextureMapperImageBuffer.h:
(BitmapTextureImageBuffer):
2012-12-12 Aaron Colwell <acolwell@chromium.org>
Remove MediaSource 'ended' to 'open' transition when seeking.
https://bugs.webkit.org/show_bug.cgi?id=104583
Reviewed by Eric Carlson.
Remove the 'ended' to 'open' transition on a seek.
No new tests. The following tests were updated to reflect the new behavior.
http/tests/media/media-source/video-media-source-seek.html
http/tests/media/media-source/video-media-source-state-changes.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::seek):
2012-12-12 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Implement CSS parsing and handling for min-content and max-content
https://bugs.webkit.org/show_bug.cgi?id=104747
Reviewed by Alexis Menard.
This change adds -webkit-min-content and -webkit-max-content to our <track-breadth> parsing.
The rendering is not plugged in and will probably depend on bug 103311.
Tests: fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
fast/css-grid-layout/grid-columns-rows-get-set.html:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridBreadth):
* css/StyleResolver.cpp:
(WebCore::createGridTrackBreadth):
Straight-forward extension of the new code. We were already serializing back properly
so no need to touch CSSComputedStyleDeclaration.
2012-12-12 Ryosuke Niwa <rniwa@webkit.org>
Copying text with ruby inserts new lines around rt elements
https://bugs.webkit.org/show_bug.cgi?id=104765
Reviewed by Dan Bernstein.
Don't emit new lines before and after rt.
Test: editing/pasteboard/copy-paste-ruby-text.html
* editing/TextIterator.cpp:
(WebCore::shouldEmitNewlinesBeforeAndAfterNode):
2012-12-12 Krzysztof Czech <k.czech@samsung.com>
[EFL] Possibility to turn off accessibility feature for WebKit-EFL.
https://bugs.webkit.org/show_bug.cgi?id=103036
Reviewed by Laszlo Gombos.
Guard dependencies for accessibility (ATK), so that they can be turned off.
No new tests as there is no new functionality.
* PlatformEfl.cmake:
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::AccessibilityObject):
* accessibility/AccessibilityObject.h:
(AccessibilityObject):
2012-12-12 Justin Novosad <junov@google.com>
Use render box background over border draw strategy in cases with background-image
https://bugs.webkit.org/show_bug.cgi?id=103409
Reviewed by Simon Fraser.
The BackgroundOverBorderBleedAvoidance mode was not being used in
cases where the background is an opaque image. It was also not
being used in cases with multiple layers. The multiple layer
case is now safe with respect to color bleeding if the top layer
is opaque, thank to the recent addition of layer occlusion culling
in r135629.
No new tests. Testing already covered by the following tests:
fast/backgrounds/background-opaque-images-over-color.html
fast/backgrounds/gradient-background-leakage-2.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::determineBackgroundBleedAvoidance):
(WebCore::RenderBox::backgroundHasOpaqueTopLayer):
* rendering/RenderBox.h:
(RenderBox):
2012-12-12 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: instrument static parts of RenderBlock and RenderBox
https://bugs.webkit.org/show_bug.cgi?id=104660
Reviewed by Yury Semikhatsky.
Plain vanilla instrumentation.
* dom/WebCoreMemoryInstrumentation.cpp:
(WebCore):
(WebCore::WebCoreMemoryInstrumentation::reportMemoryUsage):
* dom/WebCoreMemoryInstrumentation.h:
(WebCoreMemoryTypes):
(WebCoreMemoryInstrumentation):
(WebCore):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::reportStaticMembersMemoryUsage):
(WebCore):
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::reportStaticMembersMemoryUsage):
(WebCore):
* rendering/RenderBox.h:
(RenderBox):
2012-12-12 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: remove fake root MemoryObjectInfo.
https://bugs.webkit.org/show_bug.cgi?id=104796
Reviewed by Yury Semikhatsky.
It was not a good idea to introduce a fake root MemoryObjectInfo.
It makes a problem when we visit an object without its own MemoryObjectType.
Example: RenderBox has a global pointer to a hash map.
HashMap doesn't have its own object type because it is a generic container.
It will inherit object type from the fake root memory object info.
The same could happen for another container in another class with other MemoryObjectType.
This fact forces me to create custom process method for root objects
because they need to have their own MemoryObjectInfo with customisable memory object type.
Drive by fix: InstrumentedPointer* was replaced with Wrapper* because actually it is using
for instrumented and not instrumented object classes.
* inspector/MemoryInstrumentationImpl.cpp:
(WebCore::MemoryInstrumentationImpl::processDeferredObjects):
(WebCore::MemoryInstrumentationImpl::deferObject):
(WebCore::MemoryInstrumentationImpl::reportMemoryUsage):
* inspector/MemoryInstrumentationImpl.h:
(MemoryInstrumentationImpl):
2012-12-12 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL [WebGL] [Wk2] Resizing the canvas breaks WebGL.
https://bugs.webkit.org/show_bug.cgi?id=104535.
Reviewed by Kenneth Rohde Christiansen.
GraphicsContext3DEfl does not re-create the surface on canvas resize, this
conflicted with the logic in coordinated graphics Layer.
CoordinatedGraphicsLayer checks for GraphicsSurfaceToken to decide if the surface
in UI-Process should be recreated or not. With this
patch we also check for size of the platform Layer.
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::createGraphicsSurfaces):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(GraphicsContext3DPrivate::didResizeCanvas):
(GraphicsContext3DPrivate::platformLayerSize):
* platform/graphics/efl/GraphicsContext3DPrivate.h:
(GraphicsContext3DPrivate):
2012-12-12 Antoine Quint <graouts@apple.com>
Web Inspector: Crash in InspectorDOMAgent::pushNodePathToFrontend when inspecting document with CSS generated content
https://bugs.webkit.org/show_bug.cgi?id=104780
Reviewed by Pavel Feldman.
The pushNodePathForRenderLayerToFrontend() method added to InspectorDOMAgent naively assumed
that all RenderLayers have a Node associated to them. However, in the case of CSS generated
content, that will not be the case and we would call into pushNodePathToFrontend() with a 0
parameter that would hit the first ASSERT in this method. We're now checking that we indeed
have an associated node for the provided RenderLayer and return 0 in case we don't, without
calling into pushNodePathToFrontend().
Test: inspector-protocol/layer-tree-generated-content.html
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::pushNodePathForRenderLayerToFrontend):
2012-12-12 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Crash] Clear cached stylesheet rules in InspectorStyleSheet::deleteRule()
https://bugs.webkit.org/show_bug.cgi?id=104806
Reviewed by Vsevolod Vlasov.
Cached rules (m_flatRules) should get cleared whenever a rule is deleted.
Test: inspector/styles/undo-add-rule-crash.html
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::deleteRule):
2012-12-12 Stephen White <senorblanco@chromium.org>
Unreviewed, rolling out r136975.
http://trac.webkit.org/changeset/136975
https://bugs.webkit.org/show_bug.cgi?id=90405
Correctness issues.
* dom/Element.cpp:
* dom/Element.h:
(Element):
* dom/ElementRareData.h:
(ElementRareData):
(WebCore::ElementRareData::ElementRareData):
* platform/graphics/texmap/TextureMapperImageBuffer.cpp:
(WebCore::BitmapTextureImageBuffer::applyFilters):
* rendering/FilterEffectRenderer.cpp:
(WebCore::createCustomFilterEffect):
(WebCore::FilterEffectRenderer::buildReferenceFilter):
(WebCore::FilterEffectRenderer::build):
* rendering/FilterEffectRenderer.h:
(FilterEffectRenderer):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::willBeDestroyed):
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::registerResource):
* rendering/svg/SVGResources.cpp:
(WebCore::SVGResources::buildCachedResources):
* rendering/svg/SVGResourcesCache.cpp:
(WebCore::SVGResourcesCache::addResourcesFromRenderObject):
(WebCore::SVGResourcesCache::clientStyleChanged):
(WebCore::SVGResourcesCache::resourceDestroyed):
* svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::addPendingResource):
(WebCore::SVGDocumentExtensions::isElementPendingResources):
(WebCore::SVGDocumentExtensions::isElementPendingResource):
(WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
(WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
* svg/SVGDocumentExtensions.h:
(WebCore):
(SVGDocumentExtensions):
* svg/SVGElement.cpp:
(WebCore::SVGElement::hasPendingResources):
(WebCore):
(WebCore::SVGElement::setHasPendingResources):
(WebCore::SVGElement::clearHasPendingResourcesIfPossible):
* svg/SVGElement.h:
(SVGElement):
(WebCore::SVGElement::buildPendingResource):
* svg/SVGElementRareData.h:
(WebCore::SVGElementRareData::SVGElementRareData):
(WebCore::SVGElementRareData::hasPendingResources):
(WebCore::SVGElementRareData::setHasPendingResources):
(SVGElementRareData):
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
2012-12-12 Stephen White <senorblanco@chromium.org>
Unreviewed, rolling out r137022.
http://trac.webkit.org/changeset/137022
Precursor to rollout of 136975.
* rendering/svg/SVGResources.cpp:
(WebCore::SVGResources::buildCachedResources):
2012-12-12 Stephen White <senorblanco@chromium.org>
Unreviewed, rolling out r137027.
http://trac.webkit.org/changeset/137027
Precursor to rollout of 136975.
* dom/ElementRareData.h:
(ElementRareData):
2012-12-12 Alexei Filippov <alph@chromium.org>
Web Inspector: add memory used by memory allocator itself to NMI
https://bugs.webkit.org/show_bug.cgi?id=93372
Make native memory instrumentation report memory retained
for the memory allocator internal purposes.
Reviewed by Yury Semikhatsky.
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.MemoryBlockViewProperties._initialize):
* platform/chromium/MemoryUsageSupportChromium.cpp:
(WebCore::MemoryUsageSupport::memoryUsageByComponents):
2012-12-12 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r137438.
http://trac.webkit.org/changeset/137438
https://bugs.webkit.org/show_bug.cgi?id=104798
assertion reached when removing tile (Requested by tmpsantos
on #webkit).
* page/Frame.cpp:
(WebCore::Frame::setTiledBackingStoreEnabled):
* platform/graphics/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::TiledBackingStore):
(WebCore::TiledBackingStore::setTileCreationDelay):
(WebCore::TiledBackingStore::coverWithTilesIfNeeded):
(WebCore::TiledBackingStore::updateTileBuffers):
(WebCore::TiledBackingStore::createTiles):
(WebCore::TiledBackingStore::isTileBufferUpdatesSuspended):
(WebCore::TiledBackingStore::startTileBufferUpdateTimer):
(WebCore::TiledBackingStore::tileBufferUpdateTimerFired):
(WebCore::TiledBackingStore::startBackingStoreUpdateTimer):
(WebCore::TiledBackingStore::backingStoreUpdateTimerFired):
* platform/graphics/TiledBackingStore.h:
(TiledBackingStore):
(WebCore::TiledBackingStore::tileCreationDelay):
* platform/graphics/TiledBackingStoreClient.h:
(WebCore::TiledBackingStoreClient::tiledBackingStoreUpdatesAllowed):
2012-12-12 Csaba Osztrogonác <ossy@webkit.org>
[Qt] Unreviewed typo fix after r137446.
* WebCore.pri:
2012-12-12 Zan Dobersek <zandobersek@gmail.com>
[GTK] Remove the last of unnecessary configuration options in configure.ac
https://bugs.webkit.org/show_bug.cgi?id=104793
Reviewed by Martin Robinson.
Remove the feature define overriding that's based on the automake variables which are
not set anymore due to the corresponding configuration options being removed.
No new tests - no new functionality.
* GNUmakefile.am:
2012-12-12 Simon Hausmann <simon.hausmann@digia.com>
[Qt] Fix build on Mac
Reviewed by Csaba Osztrogonác.
On Mac OS X we have sqlite as a system library available.
* WebCore.pri:
2012-12-12 Simon Hausmann <simon.hausmann@digia.com>
[Qt] Fix linkage against SQLite
https://bugs.webkit.org/show_bug.cgi?id=104781
Reviewed by Csaba Osztrogonác.
Detect SQLite either through pkg-config, from the SQLITE3SRCDIR
environment variable or from qtbase via a qt5.git build. Bail out early
with an error message if neither option applies.
This removes the usage of $$QT.core.sources and the dependency on Qt's
system-sqlite configure setting. We should always favour a system
library over a copy in Qt.
* Target.pri:
* WebCore.pri:
2012-12-12 Allan Sandfeld Jensen <allan.jensen@digia.com>
[TexMap] Uninitialized m_context pointer in TextureMapper
https://bugs.webkit.org/show_bug.cgi?id=104785
Reviewed by Kenneth Rohde Christiansen.
* platform/graphics/texmap/TextureMapper.cpp:
(WebCore::TextureMapper::TextureMapper):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::TextureMapperGL):
2012-12-12 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Change the data channel descriptor pattern to a handler pattern
https://bugs.webkit.org/show_bug.cgi?id=104543
Reviewed by Kent Tamura.
In short the code is refactured to use the Handler/Client pattern (see RTCPeerConnectionHandler)
instead of the Descriptor pattern.
This will fix lifetime/memory/code structure issues in the chromium port.
Existing tests cover this patch.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::create):
(WebCore::RTCDataChannel::RTCDataChannel):
(WebCore::RTCDataChannel::~RTCDataChannel):
(WebCore::RTCDataChannel::label):
(WebCore::RTCDataChannel::reliable):
(WebCore::RTCDataChannel::readyState):
(WebCore::RTCDataChannel::bufferedAmount):
(WebCore::RTCDataChannel::send):
(WebCore::RTCDataChannel::close):
(WebCore::RTCDataChannel::didChangeReadyState):
(WebCore::RTCDataChannel::didReceiveStringData):
(WebCore::RTCDataChannel::didReceiveRawData):
(WebCore::RTCDataChannel::didDetectError):
(WebCore::RTCDataChannel::stop):
* Modules/mediastream/RTCDataChannel.h:
(WebCore):
(RTCDataChannel):
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::didAddRemoteDataChannel):
* Modules/mediastream/RTCPeerConnection.h:
(RTCPeerConnection):
* WebCore.gypi:
* platform/chromium/support/WebRTCDataChannel.cpp: Removed.
* platform/mediastream/RTCDataChannelDescriptor.h: Removed.
* platform/mediastream/RTCDataChannelHandler.h: Copied from Source/WebCore/platform/mediastream/RTCDataChannelDescriptor.cpp.
(WebCore):
(RTCDataChannelHandler):
(WebCore::RTCDataChannelHandler::~RTCDataChannelHandler):
* platform/mediastream/RTCDataChannelHandlerClient.h: Renamed from Source/WebCore/platform/mediastream/RTCDataChannelDescriptor.cpp.
(WebCore):
(RTCDataChannelHandlerClient):
(WebCore::RTCDataChannelHandlerClient::~RTCDataChannelHandlerClient):
* platform/mediastream/RTCPeerConnectionHandler.cpp:
(WebCore):
(WebCore::RTCPeerConnectionHandler::create):
* platform/mediastream/RTCPeerConnectionHandler.h:
(WebCore):
(RTCPeerConnectionHandler):
* platform/mediastream/RTCPeerConnectionHandlerClient.h:
(WebCore):
(RTCPeerConnectionHandlerClient):
* platform/mediastream/chromium/RTCDataChannelHandlerChromium.cpp: Added.
(WebCore):
(WebCore::RTCDataChannelHandlerChromium::create):
(WebCore::RTCDataChannelHandlerChromium::RTCDataChannelHandlerChromium):
(WebCore::RTCDataChannelHandlerChromium::~RTCDataChannelHandlerChromium):
(WebCore::RTCDataChannelHandlerChromium::setClient):
(WebCore::RTCDataChannelHandlerChromium::label):
(WebCore::RTCDataChannelHandlerChromium::isReliable):
(WebCore::RTCDataChannelHandlerChromium::bufferedAmount):
(WebCore::RTCDataChannelHandlerChromium::sendStringData):
(WebCore::RTCDataChannelHandlerChromium::sendRawData):
(WebCore::RTCDataChannelHandlerChromium::close):
(WebCore::RTCDataChannelHandlerChromium::didChangeReadyState):
(WebCore::RTCDataChannelHandlerChromium::didReceiveStringData):
(WebCore::RTCDataChannelHandlerChromium::didReceiveRawData):
(WebCore::RTCDataChannelHandlerChromium::didDetectError):
* platform/mediastream/chromium/RTCDataChannelHandlerChromium.h: Added.
(WebCore):
(RTCDataChannelHandlerChromium):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandlerChromium::createDataChannel):
(WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
(WebCore):
(RTCPeerConnectionHandlerChromium):
2012-12-12 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: Refactor TiledBackingStore code in CoordinatedGraphicsLayer.
https://bugs.webkit.org/show_bug.cgi?id=103959
Reviewed by Kenneth Rohde Christiansen.
TiledBackingStore::setCommitTileUpdatesOnIdleEventLoop() is used when class
methods cannot be called asynchronously by client. Updates of tiles are
committed as soon as all the events in event queue have been processed.
After this patch Frame sets m_commitTileUpdatesOnIdleEventLoop to true.
In addition, remove TiledBackingStoreClient::tiledBackingStoreUpdatesAllowed()
which was introduced for Coordinated Graphics.
Refactoring covered by existing tests.
* page/Frame.cpp:
(WebCore::Frame::setTiledBackingStoreEnabled):
* platform/graphics/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::TiledBackingStore):
(WebCore::TiledBackingStore::setTrajectoryVector):
Separate setting a trajectory vector from coverWithTilesIfNeeded().
(WebCore::TiledBackingStore::coverWithTilesIfNeeded):
(WebCore::TiledBackingStore::updateTileBuffers):
(WebCore::TiledBackingStore::createTiles):
(WebCore::TiledBackingStore::isTileBufferUpdatesSuspended):
(WebCore::TiledBackingStore::startTileBufferUpdateTimer):
(WebCore::TiledBackingStore::tileBufferUpdateTimerFired):
(WebCore::TiledBackingStore::startBackingStoreUpdateTimer):
(WebCore::TiledBackingStore::backingStoreUpdateTimerFired):
* platform/graphics/TiledBackingStore.h:
(TiledBackingStore):
(WebCore::TiledBackingStore::setCommitTileUpdatesOnIdleEventLoop):
* platform/graphics/TiledBackingStoreClient.h:
(WebCore::TiledBackingStoreClient::tiledBackingStoreHasPendingTileCreation):
If TiledBackingStore does not create all tiles, TiledBackingStore
notifies a client of needing to create tiles more, when
m_commitTileUpdatesOnIdleEventLoop is false.
2012-12-11 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Qt] Fix the inspector not showing up on Windows
https://bugs.webkit.org/show_bug.cgi?id=104677
Reviewed by Simon Hausmann.
* Target.pri:
2012-11-29 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: Heap snapshot crashes on any page in MacOS Canary
https://bugs.webkit.org/show_bug.cgi?id=103076
Reviewed by Adam Barth.
Provide global object name resolver to the heap profiler. The callback allows
to safely retrieve document URL to be used as a label for corresponding global
object in the heap snapshot.
Test: inspector-protocol/take-heap-snapshot.html
* bindings/v8/ScriptProfiler.cpp:
(WebCore):
(WebCore::ScriptProfiler::takeHeapSnapshot):
2012-12-12 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r137428.
http://trac.webkit.org/changeset/137428
https://bugs.webkit.org/show_bug.cgi?id=104776
It broke the build everywhere (Requested by Ossy on #webkit).
* platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawQuad):
(WebCore::TextureMapperGL::drawBorder):
(WebCore::TextureMapperGL::drawTexture):
(WebCore):
(WebCore::TextureMapperGL::drawTextureRectangleARB):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::TextureMapperGL::drawTextureWithAntialiasing):
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
* platform/graphics/texmap/TextureMapperGL.h:
(TextureMapperGL):
* platform/graphics/texmap/TextureMapperShaderManager.cpp:
(WebCore::getShaderSpec):
* platform/graphics/texmap/TextureMapperShaderManager.h:
(TextureMapperShaderProgram):
2012-12-12 Martin Robinson <mrobinson@igalia.com>
Web inspector prints a warning about "Debug" not being localized
https://bugs.webkit.org/show_bug.cgi?id=104679
Reviewed by Vsevolod Vlasov.
Add a missing localization entry for the "Debug" string which is used in the web
inspector front-end. This prevents warnings about a missing localized version
of the word "Debug" and allows it to be properly localized.
* English.lproj/localizedStrings.js: Add "Debug"
2012-12-12 Shinya Kawanaka <shinyak@chromium.org>
[Shadow DOM] Implement HTMLShadowElement::olderShadowRoot
https://bugs.webkit.org/show_bug.cgi?id=104218
Reviewed by Hajime Morita.
Implements HTMLShadowElement::olderShadowRoot, which returns the ShadowRoot the HTMLShadowElement is assigned to.
When such ShadowRoot does not exist, 0 is returned.
Test: fast/dom/shadow/olderShadowRoot-in-shadowelement.html
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::ensureDistributionFromDocument): Ensures distribution of this ElementShadow and
all of the parent TreeScope distribution. This function will be shared for Bug 104345.
(WebCore):
* dom/ElementShadow.h:
(ElementShadow):
* html/shadow/HTMLShadowElement.cpp:
(WebCore::HTMLShadowElement::olderShadowRoot):
(WebCore):
* html/shadow/HTMLShadowElement.h:
* html/shadow/HTMLShadowElement.idl:
2012-12-12 No'am Rosenthal <noam@webkit.org>
[Texmap] Consolidate redundant code for ARB_RECT texture
https://bugs.webkit.org/show_bug.cgi?id=104705
Reviewed by Kenneth Rohde Christiansen.
Instead of having a whole different function for RECT textures,
keep the existing functions and pass a flag that tells
TextureMapperGL to use the non-normalized coordinates and the
RECT shaders.
No new tests, refactor only. Tested to not break WebGL on
Qt-Mac.
* platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawQuad):
Compensate for rect textures in drawQuad.
(WebCore::TextureMapperGL::drawBorder):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::TextureMapperGL::drawTextureWithAntialiasing):
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
Pass flags to TextureMapperGL::drawQuad instead of a bool.
* platform/graphics/texmap/TextureMapperGL.h:
(TextureMapperGL):
* platform/graphics/texmap/TextureMapperShaderManager.cpp:
(WebCore::getShaderSpec):
* platform/graphics/texmap/TextureMapperShaderManager.h:
(TextureMapperShaderProgram):
Compensate for the texture-size in the vertex
shader instead of in the fragment shader.
2012-12-11 Hayato Ito <hayato@chromium.org>
REGRESSION(r137408): breaks chromium's browser tests which use WebKitShadowRoot (Requested by hayato on #webkit).
https://bugs.webkit.org/show_bug.cgi?id=104770
Unreviewed, build fix.
* dom/ShadowRoot.idl:
* page/DOMWindow.idl:
2012-12-11 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r137333, r137344, r137364, and
r137377.
http://trac.webkit.org/changeset/137333
http://trac.webkit.org/changeset/137344
http://trac.webkit.org/changeset/137364
http://trac.webkit.org/changeset/137377
https://bugs.webkit.org/show_bug.cgi?id=104771
Caused a raft of browser_test failures in Chromium (Requested
by aklein on #webkit).
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::setRequest):
(WebCore::DocumentLoader::subresource):
(WebCore::DocumentLoader::addSubresourceLoader):
(WebCore::DocumentLoader::removeSubresourceLoader):
(WebCore::DocumentLoader::startLoadingMainResource):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::MainResourceLoader):
(WebCore::MainResourceLoader::~MainResourceLoader):
(WebCore::MainResourceLoader::receivedError):
(WebCore::MainResourceLoader::willCancel):
(WebCore::MainResourceLoader::didCancel):
(WebCore::MainResourceLoader::continueAfterNavigationPolicy):
(WebCore::MainResourceLoader::addData):
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::continueAfterContentPolicy):
(WebCore::MainResourceLoader::didReceiveResponse):
(WebCore::MainResourceLoader::didReceiveData):
(WebCore::MainResourceLoader::didFinishLoading):
(WebCore::MainResourceLoader::didFail):
(WebCore::MainResourceLoader::reportMemoryUsage):
(WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
(WebCore::MainResourceLoader::loadNow):
(WebCore):
(WebCore::MainResourceLoader::load):
(WebCore::MainResourceLoader::setDefersLoading):
* loader/MainResourceLoader.h:
(MainResourceLoader):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::willSendRequest):
* loader/ResourceLoader.h:
(ResourceLoader):
(WebCore::ResourceLoader::defersLoading):
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequest):
* loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
(WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::willSendRequest):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::loadDone):
* loader/mac/DocumentLoaderMac.cpp:
(WebCore::DocumentLoader::schedule):
(WebCore::DocumentLoader::unschedule):
2012-12-11 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r137398.
http://trac.webkit.org/changeset/137398
https://bugs.webkit.org/show_bug.cgi?id=104188
A bunch of webaudio tests hit ASSERTs
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createOfflineContext):
(WebCore):
* Modules/webaudio/AudioContext.h:
(AudioContext):
* Modules/webaudio/DOMWindowWebAudio.idl:
* Modules/webaudio/OfflineAudioContext.cpp: Removed.
* Modules/webaudio/OfflineAudioContext.h: Removed.
* Modules/webaudio/OfflineAudioContext.idl: Removed.
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/generic/RuntimeEnabledFeatures.h:
* bindings/js/JSAudioContextCustom.cpp:
(WebCore::JSAudioContextConstructor::constructJSAudioContext):
* bindings/v8/custom/V8AudioContextCustom.cpp:
(WebCore::V8AudioContext::constructorCallbackCustom):
2012-12-11 Shinya Kawanaka <shinyak@chromium.org>
[Shadow DOM] registering InsertionPoints to ShadowRoot should work out of a document.
https://bugs.webkit.org/show_bug.cgi?id=104346
Reviewed by Hajime Morita.
We need to register InsertionPoints even if ShadowRoot is out of Document, since distribution should work
out of Document, too.
Instead of checking isInDocument(), we have to make sure InsertionPoint and an element which InsertionPoint
inserted into have the same treescope.
Tests: fast/dom/shadow/has-content-elements.html
fast/dom/shadow/has-shadow-insertion-point.html
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::insertedInto):
(WebCore::InsertionPoint::removedFrom):
2012-12-11 Takashi Sakamoto <tasak@google.com>
Text nodes in shadow roots don't inherit style properly
https://bugs.webkit.org/show_bug.cgi?id=101116
Reviewed by Hajime Morita.
Use NodeRenderingContext to resolve styles of text nodes.
If text nodes are direct children of shadow roots, the text nodes
should be inherited styles from their shadow hosts.
But if reset-style-inheritance flag is true, the text nodes should
not be inherited. And if text nodes are distributed nodes,
we have to check whether their insertion point's
reset-style-inheritance.
c.f. shadow dom spec is:
http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles
Test: fast/dom/shadow/text-node-in-shadow.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::styleForElement):
Modified to use defaultStyleForElement if the given element has
no parent style.
(WebCore::StyleResolver::initForStyleResolve):
Removed shouldResetStyleInheritance, because now NodeRenderingContext
resetStyleInheritance() takes care of reset-style-inheritance of
both shadow roots and insertion points.
(WebCore::StyleResolver::defaultStyleForElement):
Added to create a default style for elements.
(WebCore):
(WebCore::StyleResolver::styleForText):
Use NodeRenderingContext to find the parent node for style from the
given text node. If no parent node is found or reset-style-inheritance
is true, returns a default style (i.e. empty render style).
Otherwise, just returns the found node's style.
* css/StyleResolver.h:
(StyleResolver):
* dom/ComposedShadowTreeWalker.cpp:
(WebCore::ComposedShadowTreeWalker::ParentTraversalDetails::didTraverseInsertionPoint):
Modify to consider insertion point's resetStyleInheritance.
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::createRendererForTextIfNeeded):
Since NodeRenderingContext has already found a parent node for
rendering and style and a parentRenderer is just the found node's
renderer, we have to only check reset-style-inheritance.
If reset, use default style. Otherwise, the parentRenderer's style.
* dom/Text.cpp:
(WebCore::Text::recalcTextStyle):
Use styleForText instead of parentRenderer's styles if the given text
node is a direct child of a shadow root or a direct child of a shadow
host.
2012-12-11 Takashi Sakamoto <tasak@google.com>
Hide HOST_RULE behind SHADOW_DOM flag.
https://bugs.webkit.org/show_bug.cgi?id=102321
Reviewed by Dimitri Glazkov.
@host @-rules are only available when the rules are declared in styles
in shadow dom trees. So if SHADOW_DOM is disabled, we don't need
@host @-rules.
No new tests. Just hide HOST_RULE behind SHADOW_DOM flag.
* css/StyleResolver.h:
Hide "class ShadowRuleHost".
* css/StyleRule.cpp:
(WebCore::StyleRuleBase::reportMemoryUsage):
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy):
(WebCore::StyleRuleBase::createCSSOMWrapper):
* css/StyleRule.h:
(StyleRuleBase):
Hide "Host" type and isHostRule.
(StyleRuleHost):
Hide "class StyleRuleHost".
* css/StyleSheetContents.cpp:
(WebCore::childRulesHaveFailedOrCanceledSubresources):
2012-12-11 Dominic Mazzoni <dmazzoni@google.com>
AX: accessibilityIsIgnored should avoid computing textUnderElement
https://bugs.webkit.org/show_bug.cgi?id=104688
Reviewed by Chris Fleizach.
Simplify the logic in accessibilityIsIgnored without affecting
the results of any tests. In particular, avoid expensive calls to
textUnderElement.
Covered by existing tests.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isGenericFocusableElement):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
2012-12-11 Kentaro Hara <haraken@chromium.org>
[V8] Reachable event listeners on image elements can be collected in a minor DOM GC
https://bugs.webkit.org/show_bug.cgi?id=104734
Reviewed by Kenneth Russell.
A major DOM GC treats image elements specially. In
V8GCController::opaqueRootForGC(), a major DOM GC puts image elements
that have pending activities into the same object group of their document.
This guarantees that image elements that have pending activities
are not garbage collected in the major DOM GC.
This patch adds the same special handling to a minor DOM GC to guarantee
the same thing in the minor DOM GC too.
In long-term, we might want to remove the special handling by making
image elements active DOM nodes.
Test: Manually confirmed that all characters in
http://alteredqualia.com/three/examples/webgl_animation_skinning_tf2.html
are rendered correctly.
* bindings/v8/V8GCController.cpp:
(WebCore::V8GCController::opaqueRootForGC):
(WebCore::gcTree):
2012-12-11 Dominic Mazzoni <dmazzoni@google.com>
AX: Make isActionSupported cross-platform.
https://bugs.webkit.org/show_bug.cgi?id=104681
Reviewed by Chris Fleizach.
Add UserGestureIndicator to increment() and decrement()
so that all accessibility actions are treated as
user actions, not scripted actions.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::increment):
(WebCore::AccessibilityNodeObject::decrement):
2012-12-11 Viatcheslav Ostapenko <v.ostapenko@samsung.com>
Remove conversion to/from float and float division from ImageFrame::setRGBA
https://bugs.webkit.org/show_bug.cgi?id=103693
Reviewed by Brent Fulgham.
Replace floating point operations used for alpha premultiply with fixed point arithmetic
which is basically integer operations. Allows to shave extra couple percent from decoding
images with transparency.
Covered by existing tests.
* platform/image-decoders/ImageDecoder.h:
(ImageFrame):
(WebCore::ImageFrame::fixPointUnsignedMultiply):
(WebCore::ImageFrame::setRGBA):
2012-12-11 Kihong Kwon <kihong.kwon@samsung.com>
Vibration API: IDL type doesn't match implementation type
https://bugs.webkit.org/show_bug.cgi?id=103899
Reviewed by Kentaro Hara.
According to WebIDL, "unsigned long" corresponds to "unsigned" in the platform.
Therefore unsigned long need to be changed to unsigned for the Vibration API.
- Change a parameter type of vibrate function from unsigned long to unsigned.
No new tests, it is covered by exist test.
* Modules/vibration/NavigatorVibration.cpp:
(WebCore::NavigatorVibration::vibrate):
* Modules/vibration/NavigatorVibration.h:
(NavigatorVibration):
* Modules/vibration/Vibration.cpp:
(WebCore::Vibration::vibrate):
* Modules/vibration/Vibration.h:
(Vibration):
* Modules/vibration/VibrationClient.h:
(VibrationClient):
* bindings/js/JSDOMBinding.h:
* bindings/scripts/CodeGeneratorJS.pm:
Remove workaround codes for the Vibration API which is mapped from unsigned long to unsigned long.
It should be mapped from unsigned long to unsigned by WebIDL spec.
(GetNativeVectorInnerType):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
2012-12-11 Xinazhu Wang <wangxianzhu@chromium.org>
ScrollingCoordinator::hasVisibleSlowRepaintFixedObject() should exclude out-of-view fixed position elements
https://bugs.webkit.org/show_bug.cgi?id=102543
Let RenderLayerCompositor manage the reasons that fixed position elements are not composited.
Check the reason in ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects(), don't let fixed position layer not composited with explicit reasons cause slow scrolling.
Reviewed by James Robinson.
Test: compositing/layer-creation/fixed-position-out-of-view-scroll-reason.html
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects): Exclude fixed position elements that are not composited for explicit reasons.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements): Manages m_fixedPositionLayerNotCompositedReasonMap.
(WebCore::RenderLayerCompositor::needsToBeComposited):
(WebCore::RenderLayerCompositor::requiresCompositingLayer):
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
* rendering/RenderLayerCompositor.h:
(WebCore::RenderLayerCompositor::fixedPositionLayerNotCompositedReason): Now outputs fixedPositionLayerNotCompositedreason.
(RenderLayerCompositor):
2012-12-11 Hayato Ito <hayato@chromium.org>
[Shadow DOM] Kill ShadowRoot constructor
https://bugs.webkit.org/show_bug.cgi?id=102913
Reviewed by Dimitri Glazkov.
Remove ShadowRoot constructor in favor of Element.webkitCreateShadowRoot().
No new tests. Update existing tests.
* dom/ShadowRoot.idl:
* page/DOMWindow.idl:
* testing/Internals.cpp:
(WebCore::Internals::createShadowRoot):
(WebCore):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2012-12-11 Antti Koivisto <antti@apple.com>
Add Element-specific traversal functions
https://bugs.webkit.org/show_bug.cgi?id=104685
Reviewed by Ryosuke Niwa.
In many cases where we use NodeTraversal we really only want Elements. By having
Element specific iteration functions we can tighten the code and make it faster too.
This patch adds ElementTraversal namespace, similar to NodeTraversal. It also switches
bunch of NodeTraversal call sites that obviously only care about elements to using
the new interface.
This should be a speedup too as we avoid number of branches by not having to look
for children of non-ContainerNodes and by allowing use of ContainerNode specific
accessors.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::addImageMapChildren):
* css/SelectorChecker.cpp:
(WebCore::linkAttribute):
(WebCore::SelectorChecker::allVisitedStateChanged):
(WebCore::SelectorChecker::visitedStateChanged):
* css/StyleInvalidationAnalysis.cpp:
(WebCore::elementMatchesSelectorScopes):
(WebCore::StyleInvalidationAnalysis::invalidateStyle):
* dom/ContainerNodeAlgorithms.h:
(WebCore::ChildFrameDisconnector::collectDescendant):
* dom/Document.cpp:
(WebCore::Document::buildAccessKeyMap):
(WebCore::Document::updateBaseURL):
(WebCore::Document::processBaseElement):
* dom/DocumentOrderedMap.cpp:
(WebCore::DocumentOrderedMap::get):
* dom/Element.cpp:
(WebCore::Element::firstElementChild):
* dom/Element.h:
(WebCore):
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::collectSelectFeatureSetFrom):
* dom/NodeTraversal.h:
(ElementTraversal):
(WebCore):
(WebCore::ElementTraversal::traverseNextElementTemplate):
(WebCore::ElementTraversal::next):
(WebCore::ElementTraversal::firstWithin):
(WebCore::ElementTraversal::traverseNextElementSkippingChildrenTemplate):
(WebCore::ElementTraversal::nextSkippingChildren):
(NodeTraversal):
* dom/TreeScope.cpp:
(WebCore::TreeScope::labelElementForId):
(WebCore::TreeScope::findAnchor):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::handleGeneralDelete):
* editing/FrameSelection.cpp:
(WebCore::scanForForm):
* editing/markup.cpp:
(WebCore::completeURLs):
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::invalidateDisabledStateUnder):
(WebCore::HTMLFieldSetElement::childrenChanged):
(WebCore::HTMLFieldSetElement::legend):
(WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::formElementIndex):
* html/HTMLLabelElement.cpp:
(WebCore::HTMLLabelElement::control):
* html/HTMLLegendElement.cpp:
(WebCore::HTMLLegendElement::associatedControl):
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::mapMouseEvent):
* html/HTMLNameCollection.cpp:
(WebCore::HTMLNameCollection::virtualItemAfter):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::containsJavaApplet):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::recalcListItems):
* html/shadow/ContentDistributor.cpp:
(WebCore::ShadowRootContentDistributionData::ensureInsertionPointList):
* page/FocusController.cpp:
(WebCore::FocusController::findFocusCandidateInContainer):
* rendering/RenderCounter.cpp:
(WebCore::nextInPreOrder):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::collectIntersectionOrEnclosureList):
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::title):
* svg/SVGUseElement.cpp:
(WebCore::removeDisallowedElementsFromSubtree):
* svg/animation/SMILTimeContainer.cpp:
(WebCore::SMILTimeContainer::updateDocumentOrderIndexes):
2012-12-11 KyungTae Kim <ktf.kim@samsung.com>
[soup] Unused parameter in ResourceHandleSoup.cpp
https://bugs.webkit.org/show_bug.cgi?id=104728
Reviewed by Kentaro Hara.
The soupLogPrinter has unused parameter 'logger',
remove the parameter name to fix 'unused parameter' build warning.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::soupLogPrinter):
2012-12-11 Xianzhu Wang <wangxianzhu@chromium.org>
Fixed position out-of-view check is incorrect when page is scaled
https://bugs.webkit.org/show_bug.cgi?id=104303
Reviewed by Kenneth Rohde Christiansen.
Test: compositing/layer-creation/fixed-position-out-of-view-scaled.html
compositing/layer-creation/fixed-position-out-of-view-scaled-scroll.html
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition): Scale the content rect of the fixed position layer before checking out-of-view.
2012-12-11 Chris Rogers <crogers@google.com>
Implement OfflineAudioContext constructor
https://bugs.webkit.org/show_bug.cgi?id=104188
Reviewed by Kentaro Hara.
The Web Audio layout tests have relied on an undocumented way (in the specification) to render
audio faster than realtime using an OfflineAudioContext. We want to expose a proper OfflineAudioContext
object and constructor instead of piggybacking off of the normal AudioContext.
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::isSampleRateRangeGood):
* Modules/webaudio/AudioContext.h:
(AudioContext):
* Modules/webaudio/DOMWindowWebAudio.idl:
* Modules/webaudio/OfflineAudioContext.cpp: Added.
(WebCore):
(WebCore::OfflineAudioContext::create):
(WebCore::OfflineAudioContext::OfflineAudioContext):
(WebCore::OfflineAudioContext::~OfflineAudioContext):
* Modules/webaudio/OfflineAudioContext.h: Added.
(WebCore):
(OfflineAudioContext):
* Modules/webaudio/OfflineAudioContext.idl: Added.
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::webkitOfflineAudioContextEnabled):
* bindings/js/JSAudioContextCustom.cpp:
(WebCore::JSAudioContextConstructor::constructJSAudioContext):
* bindings/v8/custom/V8AudioContextCustom.cpp:
(WebCore::V8AudioContext::constructorCallbackCustom):
2012-12-11 Jun Jiang <jun.a.jiang@intel.com>
WebGL: Avoid unnecessary memory copy or conversion in texImage2D and texSubImage2D for HTMLVideoElement
https://bugs.webkit.org/show_bug.cgi?id=102161
Reviewed by Kenneth Russell.
There are several memory copy or conversions in the texImage2D and texSubImage2D for HTMLVideoElement which may be avoided. This patch removes the redundant BackingStore copy if the corresponding Graphics port supports the DontCopyBackingStore behavior. Moreover, it optimizes the AlphaOp if the Image source is from HTMLVideoElement to avoid unnecessary Unmultiply or Premultiply operation in unpack/pack.
Already covered by current tests.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::texImage2DImpl):
(WebCore::WebGLRenderingContext::texImage2D):
(WebCore::WebGLRenderingContext::videoFrameToImage): add a parameter to choose BackingStore copy behavior.
(WebCore::WebGLRenderingContext::texSubImage2DImpl):
(WebCore::WebGLRenderingContext::texSubImage2D):
* html/canvas/WebGLRenderingContext.h:
(WebGLRenderingContext):
* platform/graphics/GraphicsContext3D.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::ImageExtractor):
* platform/graphics/GraphicsContext3D.h:
(ImageExtractor):
(WebCore::GraphicsContext3D::ImageExtractor::imageSourceUnpackAlignment):
(WebCore::GraphicsContext3D::ImageExtractor::imageHtmlDomSource):
* platform/graphics/ImageBuffer.h:
(ImageBuffer):
* platform/graphics/cairo/GraphicsContext3DCairo.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage): optimize the AlphaOp for HTMLVideoElement input.
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::fastCopyImageMode):
(WebCore):
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::fastCopyImageMode):
(WebCore):
* platform/graphics/qt/ImageBufferQt.cpp:
(WebCore::ImageBuffer::fastCopyImageMode):
(WebCore):
* platform/graphics/skia/GraphicsContext3DSkia.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage): optimize the AlphaOp for HTMLVideoElement input.
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::ImageBuffer::fastCopyImageMode):
(WebCore):
* platform/graphics/wince/ImageBufferWinCE.cpp:
(WebCore::ImageBuffer::fastCopyImageMode):
(WebCore):
* platform/graphics/wx/ImageBufferWx.cpp:
(WebCore::ImageBuffer::fastCopyImageMode):
(WebCore):
2012-12-11 Viatcheslav Ostapenko <v.ostapenko@samsung.com>
[EFL] Missing implementation of GraphicsContext3DPrivate::platformLayerSize()
https://bugs.webkit.org/show_bug.cgi?id=104726
Reviewed by Kenneth Rohde Christiansen.
Add common implementation of GraphicsContext3DPrivate::platformLayerSize() similar
to Qt version. There is nothing platform specific in Qt version.
Covered by existing tests.
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(GraphicsContext3DPrivate::platformLayerSize):
* platform/graphics/efl/GraphicsContext3DPrivate.h:
(GraphicsContext3DPrivate):
2012-12-11 No'am Rosenthal <noam@webkit.org>
[Texmap] Slightly improve readability of the antialias shader
https://bugs.webkit.org/show_bug.cgi?id=104708
Reviewed by Martin Robinson.
Modify the antialiasing shader to include separate function that perform
discrete operations, rather than one big function that repeats the same
operations.
No new tests, readability fix.
* platform/graphics/texmap/TextureMapperShaderManager.cpp:
(WebCore::getShaderSpec):
2012-12-11 Tim Horton <timothy_horton@apple.com>
-webkit-svg-shadow radius changes don't cause children's boundaries to be recomputed
https://bugs.webkit.org/show_bug.cgi?id=104722
<rdar://problem/12821080>
Reviewed by Simon Fraser.
Changes to -webkit-svg-shadow currently cause a relayout of the directly affected renderer
and its parents, but not its children. However, children have the shadow radius
baked into their cached boundaries, so these need to be invalidated.
Test: svg/repaint/repaint-webkit-svg-shadow-container.html
* rendering/RenderObject.h: Expose needsBoundariesUpdate().
* rendering/svg/RenderSVGContainer.h: Expose needsBoundariesUpdate().
* rendering/svg/RenderSVGImage.h: Expose needsBoundariesUpdate().
* rendering/svg/RenderSVGRoot.h: Expose needsBoundariesUpdate().
* rendering/svg/RenderSVGShape.h: Expose needsBoundariesUpdate().
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::layoutChildren): If the renderer has a shadow and
is in needs of a boundaries update, mark children as needing boundaries updates too.
2012-12-11 Xianzhu Wang <wangxianzhu@chromium.org>
Add window.internals.mainThreadScrollReasonsAsText for testing slow scrolling
https://bugs.webkit.org/show_bug.cgi?id=104714
Reviewed by Eric Seidel.
No new tests. Adds test api for bug 102543 and other bugs.
* WebCore.exp.in:
* page/Page.cpp:
(WebCore::ScrollingCoordinator::mainThreadScrollingReasonsAsText): Extracted from ScrollingStateScrollingNode::dumpProperties for layout tests.
(WebCore):
* page/Page.h:
(Page):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::mainThreadScrollingReasonsAsText):
(WebCore):
* page/scrolling/ScrollingCoordinator.h:
(ScrollingCoordinator):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::dumpProperties): Moved code for mainThreadScrollingReasons to ScrollingCoordinator.cpp.
* testing/Internals.cpp:
(WebCore::Internals::mainThreadScrollingReasons):
(WebCore):
* testing/Internals.h:
* testing/Internals.idl:
2012-12-11 Simon Fraser <simon.fraser@apple.com>
Enhance the TileCache to cache more tiles
https://bugs.webkit.org/show_bug.cgi?id=104612
Reviewed by Tim Horton.
Add smarts to the TileCache so that it keeps some tiles around
for longer and can prepopulate tiles in to-be-scrolled-to regions.
The new tile management is as follows:
* As before, we expand the visible rect to create a "tile coverage rect"
which is twice the width, and three times the height of the visible rect.
* At the edges, this coverage rect is constrained by them, rather than being
truncated as before (leading to larger initial tile coverage).
* When tiles leave the coverage rect, we keep them around but track
them in cohorts (where a cohort is a set of tiles that left the coverage rect
at the same time).
* If a repaint comes in for a "secondary" tile, we don't paint it, but mark
the tile as being stale. It will get repainted (in full) if it moves back inside
the coverage rect.
* Cohorts are kept around for 2 seconds after they were created. A repeating
1-second timer clears tiles in old cohorts.
* Secondary tiles are pruned if the visible rect changes, or if zooming happens.
* TiledBacking exposes a way to prepopulate a rect with tiles; this is called
when scrolling (e.g. via Home/End keys). Tiles created this way (if outside
the coverage rect) go into a cohort.
* page/FrameView.cpp:
(WebCore::FrameView::requestScrollPositionUpdate): Tell the TiledBacking
to prepopulate some tiles.
* platform/graphics/TiledBacking.h:
(TiledBacking): Add prepopulateRect().
* platform/graphics/ca/mac/TileCache.h:
(TileInfo): The TileMap contains TileInfos, which contain a pointer
to the layer, their cohort, and a 'stale content' flag.
(WebCore::TileCache::TileInfo::TileInfo):
(TileCache):
(TileCohortInfo):
(WebCore::TileCache::TileCohortInfo::TileCohortInfo):
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::TileCache):
(WebCore::TileCache::~TileCache):
(WebCore::TileCache::setNeedsDisplay):
(WebCore::TileCache::setNeedsDisplayInRect):
(WebCore::TileCache::setTileNeedsDisplayInRect):
(WebCore::TileCache::setScale):
(WebCore::TileCache::setAcceleratesDrawing):
(WebCore::TileCache::setTilesOpaque):
(WebCore::TileCache::prepopulateRect):
(WebCore::TileCache::setTileDebugBorderWidth):
(WebCore::TileCache::setTileDebugBorderColor):
(WebCore::TileCache::computeTileCoverageRect):
(WebCore::TileCache::tileSizeForCoverageRect):
(WebCore::TileCache::tileRevalidationTimerFired):
(WebCore::TileCache::blankPixelCount):
(WebCore::queueTileForRemoval):
(WebCore::TileCache::removeAllTiles):
(WebCore::TileCache::removeAllSecondaryTiles):
(WebCore::TileCache::removeTilesInCohort):
(WebCore::TileCache::revalidateTiles):
(WebCore::TileCache::nextTileCohort):
(WebCore::TileCache::startedNewCohort):
(WebCore::TileCache::newestTileCohort):
(WebCore::TileCache::oldestTileCohort):
(WebCore::TileCache::scheduleCohortRemoval):
(WebCore::TileCache::cohortRemovalTimerFired):
(WebCore::TileCache::ensureTilesForRect):
(WebCore::TileCache::tileGridExtent):
(WebCore::TileCache::tileCoverageRect):
(WebCore::TileCache::tileLayerAtIndex):
(WebCore::TileCache::drawTileMapContents):
2012-12-11 Simon Fraser <simon.fraser@apple.com>
Remove redundant AffineTransform in RenderSVGShape::fillAndStrokeShape()
https://bugs.webkit.org/show_bug.cgi?id=104736
Reviewed by Dean Jackson.
RenderSVGShape::fillAndStrokeShape() allocated a AffineTransform on
the stack which was shadowed by another one in narrower scope. It
can be removed.
* rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::fillAndStrokeShape):
2012-12-11 Seokju Kwon <seokju.kwon@gmail.com>
[EFL] Remove unused headers
https://bugs.webkit.org/show_bug.cgi?id=104661
Reviewed by Ryosuke Niwa.
Header inclusion cleanup.
Remove "NotImplemented.h".
No new tests, no behavior change.
* platform/efl/CursorEfl.cpp:
* platform/efl/FileSystemEfl.cpp:
* platform/efl/ScrollViewEfl.cpp:
* platform/efl/ScrollbarThemeEfl.cpp:
* platform/efl/SoundEfl.cpp:
2012-12-11 Alec Flett <alecflett@chromium.org>
IndexedDB: Stub out data operations on IDBDatabaseBackendInterface
https://bugs.webkit.org/show_bug.cgi?id=104592
Reviewed by Dimitri Glazkov.
In preparation for removing objectStore/index backend
interfaces, stub out the basic data operations around
get, put, cursors, etc. on IDBDatabaseBackendInterface.
No new tests, this is just preparation for refactoring.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::get):
(WebCore):
(WebCore::IDBDatabaseBackendImpl::put):
(WebCore::IDBDatabaseBackendImpl::setIndexKeys):
(WebCore::IDBDatabaseBackendImpl::setIndexesReady):
(WebCore::IDBDatabaseBackendImpl::openCursor):
(WebCore::IDBDatabaseBackendImpl::count):
(WebCore::IDBDatabaseBackendImpl::deleteRange):
(WebCore::IDBDatabaseBackendImpl::clear):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(WebCore):
(IDBDatabaseBackendInterface):
2012-12-11 Roger Fong <roger_fong@apple.com>
Make Video Track compile on Windows in debug mode.
https://bugs.webkit.org/show_bug.cgi?id=104720.
Reviewed by Alexey Proskuryakov.
urlForLogging method was defined in both HTMLMediaElement.cpp and HTMLTrackElement.cpp.
On Windows all the HTMLElements sources are included in an AllInOne source file,
so the definitions conflicted. Fixed by renaming the definition in each source file.
* html/HTMLMediaElement.cpp:
(WebCore::urlForLoggingMedia):
(WebCore::HTMLMediaElement::loadResource):
(WebCore::HTMLMediaElement::isSafeToLoadURL):
(WebCore::HTMLMediaElement::didRemoveTrack):
(WebCore::HTMLMediaElement::selectNextSourceChild):
(WebCore::HTMLMediaElement::sourceWasAdded):
(WebCore::HTMLMediaElement::sourceWasRemoved):
* html/HTMLTrackElement.cpp:
(WebCore::urlForLoggingTrack):
(WebCore::HTMLTrackElement::canLoadUrl):
2012-12-11 Ryosuke Niwa <rniwa@webkit.org>
Mail hangs when resizing the font size of a large RTL text
https://bugs.webkit.org/show_bug.cgi?id=104643
Reviewed by Enrica Casucci.
The bug was caused by ApplyStyleCommand::applyInlineStyleToNodeRange obtaining computed styles while
removing and adding nodes. Fixed the slowness by breaking it into three phases:
1. Split the range into contiguous inline runs, and determine whether styles need to be removed or applied.
2. Remove any conflicting styles, and insert dummy elements at positions where inline styles ought to be
computed as needed.
3. Remove the dummy elements and apply ilnine styles as needed.
No new tests are added since there is no behavior change. This is just a performance improvement.
* editing/ApplyStyleCommand.cpp:
(WebCore::InlineRunToApplyStyle::InlineRunToApplyStyle):
(WebCore::InlineRunToApplyStyle::startAndEndAreStillInDocument):
(WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
(WebCore::ApplyStyleCommand::shouldApplyInlineStyleToRun):
(WebCore::ApplyStyleCommand::removeConflictingInlineStyleFromRun):
(WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
(WebCore::ApplyStyleCommand::positionToComputeInlineStyleChange):
(WebCore::ApplyStyleCommand::applyInlineStyleChange):
* editing/ApplyStyleCommand.h:
* editing/EditingStyle.h:
(WebCore::StyleChange::StyleChange):
2012-12-11 Xianzhu Wang <wangxianzhu@chromium.org>
Incorrect position of layers for fixed position elements when page is scaled smaller than viewport
https://bugs.webkit.org/show_bug.cgi?id=104294
Reviewed by James Robinson.
Fixed issue in scrollOffsetForFixedPosition when contentRect is smaller than visibleContentRect.
This happens when a page originally bigger than viewport is scaled down to smaller than the viewport.
Test: compositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::fixedPositionScrollOffset): Moved common code in scrollOffsetForFixedPosition here. Fixed issue when contentsSize < visibleContentSize.
(WebCore::scrollOffsetForFixedPosition):
2012-12-11 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=104725
Crash in EventHandler::selectCursor() on Mac bots running
fast/events/mouse-cursor-image-set.html
Reviewed by Tim Horton.
https://bugs.webkit.org/show_bug.cgi?id=99493 enabled image-set for
the CSS cursor property. Most of the change is guarded behind #if
ENABLE(MOUSE_CURSOR_SCALE). However, image-set was still allowed to
parse for the cursor property as long as image-set is enabled
(which is the current state on the Mac). This would lead to an
inconsistent state where style information would reflect a world
where mouse cursor scaling is enabled even though nothing else on
the Mac would.
The parsing should also be guarded by the cursor scaling flag.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
2012-12-11 Emil A Eklund <eae@chromium.org>
Clamp out-of-range numbers in CSS
https://bugs.webkit.org/show_bug.cgi?id=102735
Reviewed by Simon Fraser.
Currently when a large number (outside of the supported range)
is applied from a style rule or set from javascript using
Element.style we check if it is within the supported range and
set it to zero if it is not. This is incorrect and confusing.
Change it to clamp values to the supported range. This matches
the behavior in Gecko.
Test: fast/css/large-numbers.html
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::computeLength):
Change to clamp out-of-range values instead of interpreting them
as zero.
2012-12-11 Nate Chapin <japhet@chromium.org>
Ensure ResourceRequests for main resources include fragment indentifiers when necessary,
regressed by r137333.
https://bugs.webkit.org/show_bug.cgi?id=104721
Rubber-stamped by Dimitri Glazkov.
No new tests.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequest):
2012-12-11 Huang Dongsung <luxtella@company100.net>
[GTK] REGRESSION(r135620): Accelerated Compositing does not draw some pages.
https://bugs.webkit.org/show_bug.cgi?id=104640
Reviewed by Noam Rosenthal.
After r135620, Accelerated Compositing does not draw some pages, because
r135620 changes the tree-traversal behavior. Before r135620, we
returned early if TextureMapperLayer can not get TextureMapper from the
root layer. However, after r135620, we run the tree-traversal even if
TextureMapperLayer can not get TextureMapper. This patch makes
TextureMapperLayer return early like code before r135620.
Covered by existing tests.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::flushCompositingState):
2012-12-11 Dan Bernstein <mitz@apple.com>
<rdar://problem/12771885> Support ruby-position: {before, after}
https://bugs.webkit.org/show_bug.cgi?id=103569
Reviewed by Anders Carlsson.
Specified in <http://www.w3.org/TR/2011/WD-css3-ruby-20110630/#rubypos>, the ruby-position
property takes four values: before, after, inter-character, and inline. This change adds
support for the values before and after.
Test: fast/ruby/position-after.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Handle ruby-position.
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue): Accept before and after as valid values for
ruby-position.
(WebCore::isKeywordPropertyID): Added ruby-position to the list of properties with keyword
values.
(WebCore::CSSParser::parseValue): Added ruby-position to the switch statement.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added mapping from RubyPosition.
(WebCore::CSSPrimitiveValue::operator RubyPosition): Added mapping from CSSPrimitiveValue.
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty): Added ruby-position as an inherited property.
* css/CSSPropertyNames.in: Added -webkit-ruby-position.
* css/CSSValueKeywords.in: Added after and before.
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder): Added a handler for ruby-position.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty): Added ruby-position.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesInBlockDirection): Changed to choose which of
hasAnnotationsBefore and hasAnnotationsAfter to set based on ruby position.
(WebCore::InlineFlowBox::computeOverAnnotationAdjustment): Changed to adjust only for
ruby positioned before the base.
(WebCore::InlineFlowBox::computeUnderAnnotationAdjustment): Added adjustment for ruby
positioned after the base.
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::layout): Account for ruby-position when positioning the ruby text
relative to the base.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff): Made a ruby-position difference a layout difference.
* rendering/style/RenderStyle.h: Added rubyPosition(), setRubyPosition(), and
initialRubyPosition().
* rendering/style/RenderStyleConstants.h: Added the RubyPosition enum.
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData): Added initialized for
m_rubyPosition. Added copying the value of this member to the copy constructor.
(WebCore::StyleRareInheritedData::operator==): Added comparison of m_rubyPosition.
* rendering/style/StyleRareInheritedData.h:
(StyleRareInheritedData): Added m_rubyPosition member variable.
2012-12-11 Michael Pruett <michael@68k.org>
[JSC] Add tests for explicit serialization values
https://bugs.webkit.org/show_bug.cgi?id=104423
Reviewed by Oliver Hunt.
Add tests for serialization and deserialization mechanisms of
the JSC implementation of SerializedScriptValue. Similar tests
already exist for the V8 implementation.
Test: platform/jsc/fast/storage/serialized-script-value.html
* WebCore.exp.in:
* testing/Internals.cpp:
(WebCore::Internals::serializeObject):
(WebCore::Internals::deserializeBuffer):
2012-12-11 Alexis Menard <alexis@webkit.org>
Cleanup: Use consistent naming in CSSParser when dealing with the forward slash operator.
https://bugs.webkit.org/show_bug.cgi?id=104699
Reviewed by Daniel Bates.
http://trac.webkit.org/changeset/136525 added an helper function to
check if a CSSParserValue is a forward slash operator.
BorderImageParseContext is also dealing with the forward slash operator
but its naming is inconsistent with isForwardSlashOperator(). This is
fixed with this patch where BorderImageParseContext::{allowSlash,
commitSlash}() is now replaced by BorderImageParseContext::{allowForwardSlashOperator,
commitForwardSlashOperator}().
No new tests : just a renaming, covered by existing tests..
* css/CSSParser.cpp:
(WebCore::CSSParser::parseFillPosition): A little fixup on the way, use
isForwardSlashOperator() instead of the current code here.
(WebCore::BorderImageParseContext::BorderImageParseContext):
(WebCore::BorderImageParseContext::allowForwardSlashOperator):
(WebCore::BorderImageParseContext::commitImage):
(WebCore::BorderImageParseContext::commitImageSlice):
(WebCore::BorderImageParseContext::commitForwardSlashOperator):
(WebCore::BorderImageParseContext::commitBorderWidth):
(WebCore::BorderImageParseContext::commitBorderOutset):
(WebCore::BorderImageParseContext::commitRepeat):
(BorderImageParseContext):
(WebCore::CSSParser::parseBorderImage):
2012-12-11 Nate Chapin <japhet@chromium.org>
cr-linux valgrind is showing leaks due to r137333.
Rubber-stamped by Antti Koivisto.
MainResourceLoader's destructor should call m_resource->removeClient(this) is m_resource is still non-null.
The missing removeClient() call will leak the CachedResource.
No new tests, should shut valgrind up.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::~MainResourceLoader):
2012-12-11 Andreas Kling <akling@apple.com>
REGRESSION(r133492): Heap-use-after-free in WebCore::Element::normalizeAttributes
<http://webkit.org/b/104488>
Reviewed by Antti Koivisto.
Don't cache the AttrNodeList* in a local when iterating over an Element's Attr nodes since
that pointer may go stale if JS runs in response to a DOMSubtreeModified event below Node::normalize().
Test: fast/dom/normalize-attributes-mutation-event-crash.html
* dom/Element.cpp:
(WebCore::Element::normalizeAttributes):
2012-12-11 Jonathon Jongsma <jonathon.jongsma@collabora.co.uk>
[GTK] Soup network logs are frequently interrupted by other logging messages
https://bugs.webkit.org/show_bug.cgi?id=104668
Reviewed by Martin Robinson.
Set an external soup log printer that uses the WebKit logging
infrastructure so that log messages are properly synchronized.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::soupLogPrinter):
(WebCore):
(WebCore::ensureSessionIsInitialized):
2012-12-11 Elliott Sprehn <esprehn@chromium.org>
Switch to new PseudoElement based :before and :after
https://bugs.webkit.org/show_bug.cgi?id=104462
Reviewed by Antti Koivisto.
Switch to the new PseudoElement based generated content implementation
that moves :before and :after into the DOM. This also switches to using
the ComposedShadowTreeWalker for determining the siblings of PseudoElement's
making the new generated content implementation support adding :before
and :after into <input> elements.
Tests: fast/css-generated-content/block-inside-inline.html
fast/css-generated-content/box-orient.html
* dom/ComposedShadowTreeWalker.cpp:
(WebCore::ComposedShadowTreeWalker::pseudoAwareNextSibling):
(WebCore):
(WebCore::ComposedShadowTreeWalker::pseudoAwarePreviousSibling):
(WebCore::ComposedShadowTreeWalker::traverseParent):
* dom/ComposedShadowTreeWalker.h:
(ComposedShadowTreeWalker):
* dom/Element.cpp:
(WebCore::Element::attach):
(WebCore::Element::recalcStyle):
* dom/Node.cpp:
* dom/Node.h:
(Node):
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::nextRenderer):
(WebCore::NodeRenderingContext::previousRenderer):
(WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
* dom/Position.cpp:
(WebCore::Position::Position):
(WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
* editing/visible_units.cpp:
(WebCore::logicallyPreviousBox):
(WebCore::logicallyNextBox):
(WebCore::startPositionForLine):
(WebCore::endPositionForLine):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::childShouldCreateRenderer):
* page/DragController.cpp:
(WebCore::DragController::draggableNode):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::styleDidChange):
(WebCore::RenderBlock::splitBlocks):
(WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
(WebCore::RenderBlock::createReplacementRunIn):
(WebCore::RenderBlock::isSelectionRoot):
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderButton.cpp:
* rendering/RenderButton.h:
(RenderButton):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::styleDidChange):
(WebCore::RenderInline::addChildIgnoringContinuation):
(WebCore::RenderInline::splitInlines):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::updateMarkerLocation):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::createVisiblePosition):
* rendering/RenderObject.h:
(WebCore::RenderObject::nonPseudoNode):
(RenderObject):
(WebCore::RenderObject::clearNode):
(WebCore::RenderObject::generatingNode):
* rendering/RenderObjectChildList.cpp:
* rendering/RenderObjectChildList.h:
(RenderObjectChildList):
* rendering/RenderRubyText.cpp:
* rendering/RenderRubyText.h:
(RenderRubyText):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::styleDidChange):
* rendering/RenderTableRow.h:
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::addChild):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::destroy):
2012-12-11 Jacky Jiang <zhajiang@rim.com>
[BlackBerry] Clean up unused defaultViewportArguments in RenderThemeBlackBerry.cpp
https://bugs.webkit.org/show_bug.cgi?id=104683
Reviewed by Rob Buis.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::determineFullScreenMultiplier):
2012-12-11 Nate Chapin <japhet@chromium.org>
Route main resource loads through the memory cache.
https://bugs.webkit.org/show_bug.cgi?id=49246
Reviewed by Antti Koivisto.
Note that this patch doesn't actually enable caching of main resources. That will be done in a later patch.
The MainResourceLoader actually has an underlying SubresourceLoader (with the cache layer between them).
In several places, the MainResourceLoader's SubresourceLoader is treated as special.
No new tests, as this is primarily a refactor. A couple of expected results changed slightly.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::setRequest):
(WebCore::DocumentLoader::subresource):
(WebCore::DocumentLoader::addSubresourceLoader): Because the SubresourceLoader underlying the main resource
needs special handling in certain cases, track it separately from the real SubresourceLoaders.
(WebCore::DocumentLoader::removeSubresourceLoader):
(WebCore::DocumentLoader::startLoadingMainResource):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::MainResourceLoader):
(WebCore::MainResourceLoader::receivedError):
(WebCore::MainResourceLoader::cancel):
(WebCore::MainResourceLoader::clearResource):
(WebCore):
(WebCore::MainResourceLoader::frameLoader):
(WebCore::MainResourceLoader::request):
(WebCore::MainResourceLoader::continueAfterNavigationPolicy):
(WebCore::MainResourceLoader::resourceData):
(WebCore::MainResourceLoader::redirectReceived):
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::continueAfterContentPolicy):
(WebCore::MainResourceLoader::responseReceived):
(WebCore::MainResourceLoader::dataReceived):
(WebCore::MainResourceLoader::didFinishLoading):
(WebCore::MainResourceLoader::notifyFinished):
(WebCore::MainResourceLoader::reportMemoryUsage):
(WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
(WebCore::MainResourceLoader::load):
(WebCore::MainResourceLoader::setDefersLoading):
(WebCore::MainResourceLoader::defersLoading):
(WebCore::MainResourceLoader::setShouldBufferData):
(WebCore::MainResourceLoader::loader):
(WebCore::MainResourceLoader::identifier):
* loader/MainResourceLoader.h:
(MainResourceLoader):
(WebCore::MainResourceLoader::documentLoader):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::willSendRequest):
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::defersLoading):
(WebCore::ResourceLoader::cancelled):
* loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
(WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
* loader/mac/DocumentLoaderMac.cpp:
(WebCore::DocumentLoader::schedule):
(WebCore::DocumentLoader::unschedule):
2012-12-11 Aaron Colwell <acolwell@chromium.org>
Update MediaSource to allow append() calls in "ended" state.
https://bugs.webkit.org/show_bug.cgi?id=104581
Reviewed by Eric Carlson.
Updated append and setTimestampOffset to allow appending in the "ended" readyState. An append() call
in the "ended" state now triggers a transition to the "open" state and allows the append to succeed.
Tests: http/tests/media/media-source/video-media-source-append-in-ended-state.html
http/tests/media/media-source/video-media-source-append-with-offset-in-ended-state.html
http/tests/media/media-source/video-media-source-zero-byte-append-in-ended-state.html
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::append):
(WebCore::MediaSource::setTimestampOffset):
2012-12-11 Robert Hogan <robert@webkit.org>
REGRESSION(r121789): Text not wrapping in presence of floating objects
https://bugs.webkit.org/show_bug.cgi?id=101803
Reviewed by David Hyatt.
When determining if a line needs to offset to avoid any floats use RenderBlock::lineHeight()
to estimate the height of the line. If the container has floats stacked up with different widths
that straddle the line, using a height of zero will make the first line think it has
more width available than it actually does and it will end up extruding from its container.
The logic for finding the offset of inline blocks and images needs to use a similar heuristic.
So nextLineBreak() now updates the available width if it encounters a replaced element (e.g. inline block,
image) at the start of a line, using the height of the element to decide which floats to avoid.
RenderBlock::computeInlineDirectionPositionsForLine() does the same thing when laying out the line.
Tests: fast/block/float/floats-offset-image-quirk-lineheight.html
fast/block/float/floats-offset-image-quirk.html
fast/block/float/floats-offset-image-strict-lineheight.html
fast/block/float/floats-offset-image-strict.html
fast/block/float/floats-offset-inline-block-quirk-lineheight.html
fast/block/float/floats-offset-inline-block-strict-lineheight.html
fast/block/float/floats-offset-linebox-contain-block.html
fast/block/float/floats-offset-linebox-contain-inline.html
fast/block/float/floats-wrap-inside-inline-006.html
fast/block/float/floats-wrap-inside-inline-007.html
* rendering/RenderBlockLineLayout.cpp:
(LineWidth):
(WebCore::logicalHeightForLine):
This method needs to cope with the quirk where an image alone on a line will get its descent stripped away so
ignore the height of the line and use the height of the image in that case.
(WebCore::LineWidth::updateAvailableWidth):
(WebCore::updateLogicalInlinePositions):
(WebCore):
(WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
(WebCore::RenderBlock::computeInlineDirectionPositionsForSegment):
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
2012-12-11 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Install GObject DOM bindings headers in its own directory
https://bugs.webkit.org/show_bug.cgi?id=104663
Reviewed by Gustavo Noronha Silva.
Move the headers from webkit to webkitdom directory.
* bindings/gobject/GNUmakefile.am:
* bindings/gobject/WebKitDOMBinding.h:
* bindings/gobject/WebKitDOMCustom.h:
* bindings/gobject/WebKitDOMEventTarget.h:
* bindings/gobject/WebKitDOMEventTargetPrivate.h:
* bindings/gobject/WebKitDOMObject.h:
* bindings/scripts/CodeGeneratorGObject.pm:
(Generate):
(WriteData):
* bindings/scripts/gobject-generate-headers.pl:
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
* bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
* bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestException.h:
* bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestNode.h:
* bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
2012-12-11 Mark Pilgrim <pilgrim@chromium.org>
[Chromium] Clean up unused interfaces in PlatformSupport
https://bugs.webkit.org/show_bug.cgi?id=104674
Reviewed by Darin Fisher.
Part of a refactoring series. See tracking bug 82948. Also, there
were some function declarations that were supposed to be removed
as part of bug 102699 but got left out of the final patch.
* platform/chromium/PlatformSupport.h:
(WebCore):
(PlatformSupport):
2012-12-11 Joone Hur <joone.hur@intel.com>, Gustavo Noronha Silva <gustavo.noronha@collabora.com>
[GTK] Update GraphicsLayerClutter
https://bugs.webkit.org/show_bug.cgi?id=92045
Reviewed by Gustavo Noronha Silva.
Add more methods to GraphicsLayerClutter in order to run CSS 3D transforms
by using GraphicsLayerActor.
No new tests. This will be covered by pixel tests for Qt and GTK+ accelerated
compositing and 3D transforms.
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore):
(WebCore::GraphicsLayerClutter::GraphicsLayerClutter):
(WebCore::idleDestroy):
(WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
(WebCore::GraphicsLayerClutter::setName):
(WebCore::GraphicsLayerClutter::platformLayer): Returns the platform layer(ClutterAcotr).
(WebCore::GraphicsLayerClutter::setNeedsDisplay): Update the display.
(WebCore::GraphicsLayerClutter::setNeedsDisplayInRect): Update part of the Display.
(WebCore::GraphicsLayerClutter::setAnchorPoint):
(WebCore::GraphicsLayerClutter::setPosition):
(WebCore::GraphicsLayerClutter::setSize):
(WebCore::GraphicsLayerClutter::setTransform):
(WebCore::GraphicsLayerClutter::setDrawsContent):
(WebCore::GraphicsLayerClutter::setParent):
(WebCore::GraphicsLayerClutter::setChildren):
(WebCore::GraphicsLayerClutter::addChild):
(WebCore::GraphicsLayerClutter::addChildAtIndex):
(WebCore::GraphicsLayerClutter::addChildBelow):
(WebCore::GraphicsLayerClutter::addChildAbove):
(WebCore::GraphicsLayerClutter::replaceChild):
(WebCore::GraphicsLayerClutter::removeFromParent):
(WebCore::GraphicsLayerClutter::platformClutterLayerPaintContents):
(WebCore::GraphicsLayerClutter::platformClutterLayerAnimationStarted):
(WebCore::GraphicsLayerClutter::repaintLayerDirtyRects):
(WebCore::GraphicsLayerClutter::computePositionRelativeToBase):
(WebCore::GraphicsLayerClutter::flushCompositingState): Synchronize the corresponding Actors with the current
compositing states of this GraphicsLayer and its child layers.
(WebCore::GraphicsLayerClutter::recursiveCommitChanges):
(WebCore::GraphicsLayerClutter::flushCompositingStateForThisLayerOnly): Commit batched changes non-recursively.
(WebCore::GraphicsLayerClutter::commitLayerChangesAfterSublayers): Reset layer changes after we recurse on children.
(WebCore::GraphicsLayerClutter::noteSublayersChanged):
(WebCore::GraphicsLayerClutter::noteLayerPropertyChanged):
(WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers): Commit layer changes before we recurse on children.
(WebCore::GraphicsLayerClutter::updateGeometry): Updated the position and size of the Actor.
(WebCore::GraphicsLayerClutter::updateSublayerList): Updated the list of child Actors.
(WebCore::GraphicsLayerClutter::updateLayerNames):
(WebCore::GraphicsLayerClutter::updateTransform):
(WebCore::GraphicsLayerClutter::updateLayerDrawsContent):
(WebCore::GraphicsLayerClutter::layerForSuperlayer):
* platform/graphics/clutter/GraphicsLayerClutter.h:
(WebCore):
(WebCore::GraphicsLayerClutter::primaryLayer):
(GraphicsLayerClutter):
2012-12-11 Jessie Berlin <jberlin@apple.com>
Revert incorrect build fix.
* WebCore.exp.in:
2012-12-11 Jessie Berlin <jberlin@apple.com>
Fix the Mac build after r137261
* WebCore.exp.in:
2012-12-11 Joone Hur <joone.hur@intel.com>, Gustavo Noronha Silva <gustavo.noronha@collabora.com>
[GTK] Add GraphicsLayerActor
https://bugs.webkit.org/show_bug.cgi?id=91940
Reviewed by Gustavo Noronha Silva.
GraphicsLayerActor, which is a new ClutterActor, represents a node in the GPU-renderable layer tree
when accelerated compositing is enabled with Clutter as acceleration backend.
This patch allows to support basic features of CSS 3D Transforms.
No new tests. This will be covered by pixel tests for Qt and GTK+ accelerated
compositing and 3D transforms.
* GNUmakefile.list.am:
* platform/graphics/clutter/GraphicsLayerActor.cpp: Added.
(_GraphicsLayerActorPrivate):
(graphics_layer_actor_class_init): GObject configuration of a new Clutter Actor.
(graphics_layer_actor_init): Initialization of the private data of this actor.
(graphicsLayerActorSetProperty): GObject property setter.
(graphicsLayerActorGetProperty): GObject property getter.
(graphicsLayerActorDispose): Called to drop all references to other objects.
(graphicsLayerActorAllocate): Called to set the coordinates of an actor.
(graphicsLayerActorApplyTransform): Applying the transformation to an actor before painting it.
(graphicsLayerActorPaint): Called to paint the actor.
(graphicsLayerActorDraw): Called each time a ClutterCairoTexture has been invalidated.
(graphicsLayerActorAdded): Called each time an actor has been added to container.
(graphicsLayerActorRemoved): Called each time an actor is removed from container.
(graphicsLayerActorNew): Create a specific layer type of GraphicsLayerActor object.
(graphicsLayerActorNewWithClient): Create a specific layer type of GraphicsLayerActor object with
its PlatformClutterClientLayer.
(graphicsLayerActorSetClient): Added setter to set the PlatformClutterClientLayer.
(graphicsLayerActorGetClient): Added getter to get the PlatformClutterClientLayer.
(graphicsLayerActorRemoveAll): Remove all child actors.
(graphicsLayerUpdateTexture): Create a ClutterCairoTexture.
(graphicsLayerActorGetSurface): Added setter to set a cairo_surface_t.
(graphicsLayerActorSetSurface): Added getter to get the cairo_surface_t.
(graphicsLayerActorInvalidateRectangle):
(graphicsLayerActorSetTransform): Set a CoglMatrix to apply matrix transform.
(graphicsLayerActorSetAnchorPoint):
(graphicsLayerActorGetAnchorPoint):
(graphicsLayerActorSetScrollPosition):
(graphicsLayerActorGetnChildren):
(graphicsLayerActorReplaceSublayer):
(graphicsLayerActorInsertSublayer):
(graphicsLayerActorSetSublayers):
(graphicsLayerActorGetLayerType):
(graphicsLayerActorSetLayerType):
(graphicsLayerActorSetTranslateX):
(graphicsLayerActorGetTranslateX):
(graphicsLayerActorSetTranslateY):
(graphicsLayerActorGetTranslateY):
(graphicsLayerActorSetDrawsContent): Added setter to paint content inside a layer.
(graphicsLayerActorGetDrawsContent): Added getter to get the value of the drawsContent.
* platform/graphics/clutter/GraphicsLayerActor.h: Added.
(_GraphicsLayerActor):
(_GraphicsLayerActorClass):
* platform/graphics/clutter/GraphicsLayerClutter.h:
(WebCore):
2012-12-11 Mike West <mkwst@chromium.org>
Web Inspector: ConsoleTypes should not expose MessageType - it should be private to inspector.
https://bugs.webkit.org/show_bug.cgi?id=66371
Reviewed by Pavel Feldman.
We can simplify console message generation a bit, as nothing outside the
Console object itself will generate messages of any type other than
LogMessageType. This patch refactors the externally-facing API endpoints
on ScriptExecutionContext and Console to drop the MessageType parameter,
moves the MessageType enum into a new InspectorConsoleTypes.h header,
and updates all the call sites (and ChromeClients) to drop the parameter
from their interfaces.
As a temporary bandage for ports using this interface, this patch
includes aliases for the new methods that retain the old interface.
I'll remove them in a future patch.
Here, we only refactor an internal interface. No tests should break.
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
We added a new file! OMG!
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::looping):
(WebCore::AudioBufferSourceNode::setLooping):
* Modules/webdatabase/AbstractDatabase.cpp:
(WebCore::AbstractDatabase::logErrorMessage):
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
(WebCore::WebSocket::send):
(WebCore::WebSocket::close):
(WebCore::WebSocket::setBinaryType):
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::fail):
(WebCore::WebSocketChannel::didFailSocketStream):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/v8/custom/V8CustomXPathNSResolver.cpp:
(WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
* css/MediaList.cpp:
(WebCore::addResolutionWarningMessageToConsole):
* dom/Document.cpp:
(WebCore::Document::logExceptionToConsole):
(WebCore::Document::processHttpEquiv):
(WebCore::Document::addMessage):
* dom/Document.h:
(Document):
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::notifyFinished):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask):
(WebCore::ScriptExecutionContext::addConsoleMessage):
* dom/ScriptExecutionContext.h:
(ScriptExecutionContext):
(WebCore::ScriptExecutionContext::AddConsoleMessageTask::create):
(WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
* dom/ViewportArguments.cpp:
(WebCore::reportViewportWarning):
* fileapi/WebKitBlobBuilder.cpp:
(WebCore::BlobBuilder::append):
* html/HTMLFormControlElement.cpp:
(WebCore::shouldAutofocus):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::validateInteractively):
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::parseAttribute):
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::canLoadUrl):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::getImageData):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::printWarningToConsole):
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::init):
(WebCore::XSSAuditor::filterToken):
* inspector/ConsoleAPITypes.h: Added.
(WebCore):
* inspector/ConsoleMessage.h:
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore):
* inspector/InspectorInstrumentation.h:
* inspector/InspectorProfilerAgent.cpp:
* loader/EmptyClients.h:
(WebCore::EmptyChromeClient::addMessageToConsole):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::reportLocalLoadFailed):
(WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::notifyFinished):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::didReceiveResponse):
* loader/MixedContentChecker.cpp:
(WebCore::MixedContentChecker::logWarning):
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::corsPolicyPreventedLoad):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::abort):
(WebCore::ApplicationCacheGroup::didReceiveResponse):
(WebCore::ApplicationCacheGroup::didFinishLoading):
(WebCore::ApplicationCacheGroup::didFail):
(WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
(WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::printAccessDeniedMessage):
* page/ChromeClient.h:
(ChromeClient):
Drop LogMessageType from everywhere.
* page/Console.cpp:
(WebCore::Console::addMessage):
(WebCore::internalAddMessage):
(WebCore::Console::error):
(WebCore::Console::log):
(WebCore::Console::warn):
(WebCore::Console::dir):
(WebCore::Console::dirxml):
(WebCore::Console::clear):
(WebCore::Console::trace):
(WebCore::Console::assertCondition):
* page/Console.h:
(Console):
Create a new internalAddMessage that's used for the various
Console message types. Everything else routes through
::addMessage.
* page/ConsoleTypes.h:
Drop MessageTypes from this file, add it to ConsoleAPIType.h
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::logToConsole):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
(WebCore::DOMWindow::printErrorMessage):
* page/EventSource.cpp:
(WebCore::EventSource::didReceiveResponse):
* svg/SVGDocumentExtensions.cpp:
(WebCore::reportMessage):
* workers/DefaultSharedWorkerRepository.cpp:
(SharedWorkerProxy):
(WebCore::postConsoleMessageTask):
(WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject):
* workers/SharedWorkerContext.cpp:
(WebCore::SharedWorkerContext::logExceptionToConsole):
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::addMessage):
(WebCore::WorkerContext::addMessageToWorkerConsole):
* workers/WorkerContext.h:
(WorkerContext):
* workers/WorkerMessagingProxy.cpp:
(WebCore::postConsoleMessageTask):
(WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
* workers/WorkerMessagingProxy.h:
(WorkerMessagingProxy):
* workers/WorkerReportingProxy.h:
(WorkerReportingProxy):
* xml/XMLHttpRequest.cpp:
(WebCore::logConsoleError):
(WebCore::XMLHttpRequest::send):
* xml/XSLTProcessorLibxslt.cpp:
(WebCore::XSLTProcessor::parseErrorFunc):
* xml/XSLTProcessorQt.cpp:
(WebCore::XSLTMessageHandler::handleMessage):
Drop LogMessageType from everywhere.
2012-12-11 Simon Hausmann <simon.hausmann@digia.com>
[Qt] Unreviewed, rolling out r137313 and r137316 because they broke the system-sqlite build.
* WebCore.pri:
2012-12-11 Simon Hausmann <simon.hausmann@digia.com>
Unreviewed Qt build fix: Don't error out if SQLITE3SRCDIR isn't set but
we have a system sqlite to use.
* WebCore.pri:
2012-12-11 Oswald Buddenhagen <oswald.buddenhagen@digia.com>
[Qt] make qtbase source requirement explicit
Reviewed by Simon Hausmann.
getting rid of QT.<module>.sources references, as they don't go well
with real modularization.
* WebCore.pri:
2012-12-11 Oswald Buddenhagen <oswald.buddenhagen@digia.com>
[Qt] move SQLITE3SRCDIR assignment to only use site
Reviewed by Simon Hausmann.
Target.pri includes WebCore.pri the almost first thing, so that is
covered as well.
* WebCore.pri:
2012-12-11 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Timeline: rename "Parse" to "Parse HTML".
https://bugs.webkit.org/show_bug.cgi?id=104639
Reviewed by Yury Semikhatsky.
"Parse" sounds ambiguous, it could mean JSON.parse() or Date.parse().
"Parse HTML" is a much more clear record description.
* inspector/front-end/TimelinePresentationModel.js: Fix text.
2012-12-11 Oswald Buddenhagen <oswald.buddenhagen@digia.com>
[Qt] change setup of QMAKE_MOC
Reviewed by Simon Hausmann.
don't load(moc) explicitly - turns out that this breaks
debug_and_release builds (the feature does not like being loaded before
default_post has been loaded).
so instead just do a minimal call to find the moc executable.
as it's in fact only two files which need it, so de-centralize this call
for the sake of saving some cpu cycles spent in qmake.
* DerivedSources.pri:
2012-12-11 Alexander Pavlov <apavlov@chromium.org>
REGRESSION(r136948): inspector/styles/import-pseudoclass-crash.html hits an assertion
https://bugs.webkit.org/show_bug.cgi?id=104473
Reviewed by Vsevolod Vlasov.
Avoid building full CSSOM wrappers up front during rule matching.
Instead, move this code down to the point where these wrappers are actually needed.
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::willMatchRule):
(WebCore::InspectorCSSAgent::willProcessRule):
* inspector/InspectorCSSAgent.h:
(WebCore):
(InspectorCSSAgent):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willMatchRuleImpl):
(WebCore::InspectorInstrumentation::willProcessRuleImpl):
2012-12-11 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
[GStreamer] Avoid linking to GStreamer video libraries if only using ENABLE_AUDIO
https://bugs.webkit.org/show_bug.cgi?id=104590
Reviewed by Philippe Normand.
Make getVideoSizeAndFormatFromCaps() only available when ENABLE_VIDEO is set.
No new tests, no change in behavior.
* platform/graphics/gstreamer/GStreamerVersioning.cpp:
* platform/graphics/gstreamer/GStreamerVersioning.h:
2012-12-11 Zeno Albisser <zeno@webkit.org>
[Qt][Mac] Fix transparency for WebGL content.
https://bugs.webkit.org/show_bug.cgi?id=104659
When drawing a texture to the TextureMapper the flag SupportsBlending
must be passed in order to allow for transparent webgl content.
We are doing this for GLX already, but the flag was still missing
in GraphicsSurfaceMac.
Reviewed by Kenneth Rohde Christiansen.
* platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
2012-12-11 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Duplicate emulated touch events in iframe
https://bugs.webkit.org/show_bug.cgi?id=104653
Reviewed by Vsevolod Vlasov.
Synthetic touch events should be dispatched only on the frame containing its target, not on its ancestor frames,
up to the top frame.
* page/EventHandler.cpp:
(WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
Do not dispatch a synthetic touch event on the current frame if its target is in a subframe.
2012-12-11 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][WebGL] Regression(r137211) WebGL is broken with NVIDIA Drivers.
https://bugs.webkit.org/show_bug.cgi?id=104652.
Reviewed by Kenneth Rohde Christiansen.
Reverting some of the changes from r137211, as it causes regressions
on NVIDIA drivers.
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(GraphicsContext3DPrivate::copyToGraphicsSurface):
* platform/graphics/opengl/GLPlatformSurface.cpp:
(WebCore::GLPlatformSurface::updateContents):
* platform/graphics/opengl/GLPlatformSurface.h:
(GLPlatformSurface):
2012-12-11 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: follow up to r136974: do not process shortcuts while editing
https://bugs.webkit.org/show_bug.cgi?id=104440
Reviewed by Alexander Pavlov.
Currently, typing H while editing node results in corresponding shortcut processing.
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline):
(WebInspector.ElementsTreeOutline.prototype.handleShortcut):
(WebInspector.ElementsTreeElement.prototype.onenter):
(WebInspector.ElementsTreeElement.prototype._startEditingAttribute):
(WebInspector.ElementsTreeElement.prototype.dispose):
(WebInspector.ElementsTreeElement.prototype._startEditingAsHTML):
(WebInspector.ElementsTreeElement.prototype._editingCancelled):
2012-12-11 Ken Kania <kkania@chromium.org>
[Inspector] Add command for dispatching mouse events.
https://bugs.webkit.org/show_bug.cgi?id=104074
Reviewed by Yury Semikhatsky.
Platform mouse event coordinates are relative to the containing window,
but the inspector command assumes they follow standard web coordinates,
where the origin is at the top left of the page and y increases as you
go down. We convert the coordinates to the window before constructing
the event. This also fixes the fact that some platforms have flipped
coordinate systems.
Also, update dispatchKeyEvent test to follow simpler dispatchMouseEvent
test.
Test: inspector-protocol/input/dispatchMouseEvent.html
* inspector/Inspector.json:
* inspector/InspectorInputAgent.cpp:
(WebCore::InspectorInputAgent::dispatchMouseEvent):
(WebCore):
* inspector/InspectorInputAgent.h:
(InspectorInputAgent):
2012-12-11 Pavel Feldman <pfeldman@chromium.org>
Not reviewed: follow up to r137283: reduce inspector toolbar spacing 1px.
* inspector/front-end/inspector.css:
(body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable):
(body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable.toggled-on):
2012-12-11 Kent Tamura <tkent@chromium.org>
Refactoring: Rename Element::shouldMatchReadOnlySelector and shouldMatchReadWriteSelector
https://bugs.webkit.org/show_bug.cgi?id=104651
Reviewed by Kentaro Hara.
':read-only' and ':read-write' are pseudo classes. They are not
selectors in the context of these functions. This patch rename them so
that they contain 'pseudo class,' and make them match to an existing
function, matchesFocusPseudoClass.
No new tests. This shouldn't make behavior changes.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOneSelector):
* dom/Element.cpp:
(WebCore::Element::recalcStyle):
(WebCore::Element::matchesReadOnlyPseudoClass):
(WebCore::Element::matchesReadWritePseudoClass):
* dom/Element.h:
(Element):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::matchesReadOnlyPseudoClass):
(WebCore::HTMLInputElement::matchesReadWritePseudoClass):
* html/HTMLInputElement.h:
(HTMLInputElement):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::matchesReadOnlyPseudoClass):
(WebCore::HTMLTextAreaElement::matchesReadWritePseudoClass):
* html/HTMLTextAreaElement.h:
(HTMLTextAreaElement):
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::matchesReadOnlyPseudoClass):
(WebCore::SliderThumbElement::matchesReadWritePseudoClass):
* html/shadow/SliderThumbElement.h:
(SliderThumbElement):
* html/shadow/SpinButtonElement.cpp:
(WebCore::SpinButtonElement::matchesReadOnlyPseudoClass):
(WebCore::SpinButtonElement::matchesReadWritePseudoClass):
* html/shadow/SpinButtonElement.h:
(SpinButtonElement):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::isReadOnlyControl):
2012-12-11 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: add more horizontal spacing for toolbar items in docked to bottom mode
https://bugs.webkit.org/show_bug.cgi?id=104655
Reviewed by Alexander Pavlov.
Drive-by increase height to 26px.
* inspector/front-end/inspector.css:
(#toolbar):
(body:not(.show-toolbar-icons) .toolbar-item):
(body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable):
(body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable.toggled-on):
(body.show-toolbar-icons.dock-to-bottom .toolbar-item.toggleable):
(#toolbar-dropdown-arrow):
(#main):
2012-12-11 Keishi Hattori <keishi@webkit.org>
Use histogram enumeration in Calendar Picker so we can get stats on UI usage
https://bugs.webkit.org/show_bug.cgi?id=104646
Reviewed by Kent Tamura.
Use histogram support to get stats on the calendar picker so we can improve the UI.
No new tests.
* Resources/pagepopups/calendarPicker.js:
(CalendarPicker):
(CalendarPicker.prototype.recordAction): Records action to histogram.
(CalendarPicker.prototype.handleToday): Record action.
(CalendarPicker.prototype.handleClear): Ditto.
(YearMonthController.prototype._showPopup): Ditto.
(YearMonthController.prototype._handleYearMonthChange): Ditto.
(YearMonthController.prototype._handleButtonClick): Ditto.
(DaysTable.prototype._handleDayClick): Ditto.
* page/PagePopupController.cpp:
(WebCore::PagePopupController::histogramEnumeration):
(WebCore):
* page/PagePopupController.h:
(PagePopupController):
* page/PagePopupController.idl: Added histogramEnumeration.
2012-12-11 Hajime Morrita <morrita@google.com>
IsActiveFlag, IsHoverFlag, InActiveChainFlag can be unified.
https://bugs.webkit.org/show_bug.cgi?id=103697
Reviewed by Ryosuke Niwa.
To save two more NodeFlags bits, this patch inroduces
UserActionElementSet to get IsLinkFlag, IsHoverFlag,
InActiveChainFlag together. These three old flags are replaced by
UserActionElementSet::ElementFlags and UserActionElementSet
collection which tracks elements which are flagged with one of
a ElementFlags.
When marking an element as active for example, WebKit sets
UserActionElementSet::IsActiveFlag to the element and store it
into corresponding element set of the document. This set maintains
marked elements and corresponding flags for each elements.
UserActionElementSet can be seen as a yet another rare data for
these flags. However, the following characteristics of these flags
make adding a new data structure on Document an attractive
alternative:
- UserActionElementSet is maintained for each Document instead of a
global collecton. This fits element lifetime better.
- The number of elements which have these flags is generally
small, and a group of elements for each flag is largely overlapped
due to its nature. This property keeps the set small, and lets
flag retrieval efficient. On majority of the elements, all these
flags are false thus the check is done by just checking
IsInUserActionFlag.
As a bonus, isFocused flag, which was on NodeRareData, is also moved to this model.
No new tests, covered by existing test.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* dom/DOMAllInOne.cpp:
* dom/Document.cpp:
(WebCore::Document::removedLastRef):
(WebCore::Document::updateHoverActiveState):
* dom/Document.h:
(WebCore::Document::userActionElements): Added.
(Document):
* dom/Node.cpp:
(WebCore::Node::detach):
* dom/Node.h:
(WebCore):
(WebCore::Node::isUserActionElement): Added.
(WebCore::Node::setUserActionElement): Added.
(Node):
(WebCore::Node::active): Switched to UserActionElementSet.
(WebCore::Node::inActiveChain): Switched to UserActionElementSet.
(WebCore::Node::hovered): Switched to UserActionElementSet.
(WebCore::Node::focused): Switched to UserActionElementSet.
(WebCore::Node::setFocus): Switched to UserActionElementSet.
(WebCore::Node::setActive): Switched to UserActionElementSet.
(WebCore::Node::setHovered): Switched to UserActionElementSet.
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
(NodeRareData):
* dom/UserActionElementSet.cpp: Added.
(WebCore):
(WebCore::UserActionElementSet::instanceFor):
(WebCore::UserActionElementSet::UserActionElementSet):
(WebCore::UserActionElementSet::~UserActionElementSet):
(WebCore::UserActionElementSet::didDetach):
(WebCore::UserActionElementSet::documentDidRemoveLastRef):
(WebCore::UserActionElementSet::hasFlags):
(WebCore::UserActionElementSet::setFlags):
(WebCore::UserActionElementSet::clearFlags):
* dom/UserActionElementSet.h: Added.
(WebCore):
(UserActionElementSet):
(WebCore::UserActionElementSet::create):
(WebCore::UserActionElementSet::isFocused):
(WebCore::UserActionElementSet::setFocused):
(WebCore::UserActionElementSet::isActive):
(WebCore::UserActionElementSet::setActive):
(WebCore::UserActionElementSet::isInActiveChain):
(WebCore::UserActionElementSet::setInActiveChain):
(WebCore::UserActionElementSet::isHovered):
(WebCore::UserActionElementSet::setHovered):
(WebCore::UserActionElementSet::setFlags):
2012-12-11 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Disable focus navigation by right/left keys in RTL locales
https://bugs.webkit.org/show_bug.cgi?id=104644
Reviewed by Hajime Morita.
Pressing the left key should focus on the field at the left of the
current focused field, and pressing the right key should focus on the
field at the right of the current focused field. This works well in LTR
locales.
In RTL locale, the current code doesn't work. We disable this behavior
for RTL locales for now. This issue will be handled in Bug 104650.
No new tests. Update some *-multiple-fields tests for new behavior.
* html/shadow/DateTimeFieldElement.cpp:
(WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
If this sub-field is in an RTL locale, we don't change focus.
(WebCore::DateTimeFieldElement::localeForOwner):
Moved from DateTimeNumericFieldElement.
* html/shadow/DateTimeFieldElement.h:
(DateTimeFieldElement): Remove isRTL, add localeForOwner.
* html/shadow/DateTimeNumericFieldElement.cpp: Remove localeForOwner.
* html/shadow/DateTimeNumericFieldElement.h:
(DateTimeNumericFieldElement): Ditto.
2012-12-11 Pavel Podivilov <podivilov@google.com>
Remove pango files deleted at r137263 form WebCore.gypi.
Unreviewed, gardening.
* WebCore.gypi:
2012-12-11 Zan Dobersek <zandobersek@gmail.com>
[GTK] Feature enabling/disabling should be possible through build-webkit
https://bugs.webkit.org/show_bug.cgi?id=99271
Reviewed by Gustavo Noronha Silva.
Move the contents of GNUmakefile.features.am into GNUmakefile.features.am.in.
The former is then copied from the latter but then appropriately modified if
the build-webkit script overrides any of the default feature defines.
No new tests - no new testable functionality.
* GNUmakefile.features.am.in: Renamed from Source/WebCore/GNUmakefile.features.am.
2012-12-11 Jinwoo Song <jinwoo7.song@samsung.com>
[QT][EFL][WK2] Move the GraphicsSurfaceGLX.cpp to common place
https://bugs.webkit.org/show_bug.cgi?id=104433
Reviewed by Kenneth Rohde Christiansen.
QT and EFL are commonly using the GraphicsSurfaceGLX.cpp and
it looks better to move this file to /glx directory.
* PlatformEfl.cmake:
* Target.pri:
* platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp: Renamed from Source/WebCore/platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp.
(WebCore):
(OffScreenRootWindow):
(WebCore::OffScreenRootWindow::OffScreenRootWindow):
(WebCore::OffScreenRootWindow::getXWindow):
(WebCore::OffScreenRootWindow::display):
(WebCore::OffScreenRootWindow::~OffScreenRootWindow):
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createSurface):
(WebCore::GraphicsSurfacePrivate::createPixmap):
(WebCore::GraphicsSurfacePrivate::textureIsYInverted):
(WebCore::GraphicsSurfacePrivate::makeCurrent):
(WebCore::GraphicsSurfacePrivate::doneCurrent):
(WebCore::GraphicsSurfacePrivate::swapBuffers):
(WebCore::GraphicsSurfacePrivate::copyFromTexture):
(WebCore::GraphicsSurfacePrivate::display):
(WebCore::GraphicsSurfacePrivate::glxPixmap):
(WebCore::GraphicsSurfacePrivate::size):
(WebCore::resolveGLMethods):
(WebCore::GraphicsSurface::platformExport):
(WebCore::GraphicsSurface::platformGetTextureID):
(WebCore::GraphicsSurface::platformCopyToGLTexture):
(WebCore::GraphicsSurface::platformCopyFromTexture):
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
(WebCore::GraphicsSurface::platformFrontBuffer):
(WebCore::GraphicsSurface::platformSwapBuffers):
(WebCore::GraphicsSurface::platformSize):
(WebCore::GraphicsSurface::platformCreate):
(WebCore::GraphicsSurface::platformImport):
(WebCore::GraphicsSurface::platformLock):
(WebCore::GraphicsSurface::platformUnlock):
(WebCore::GraphicsSurface::platformDestroy):
(WebCore::GraphicsSurface::platformBeginPaint):
(WebCore::GraphicsSurface::createReadOnlyImage):
2012-12-11 Mike West <mkwst@chromium.org>
Web Inspector: Evaluate private browsing mode's effect on console messages.
https://bugs.webkit.org/show_bug.cgi?id=104383
Reviewed by Pavel Feldman.
Two sets of console messages are currently gated on private browsing
mode being inactive. This patch centralizes the private browsing checks
in order to apply them equally to all console messages, and changes the
granularity at which they act.
The current checks block the console messages entirely. This patch
blocks only notifications to ChromeClient and ensures that messages
won't be passed to printf where they might end up in system logs.
Notifications to InspectorInstrumentation seem safe; so far as I can
tell, there's no compelling reason to prevent console-based debugging
in private browsing mode. This patch excludes those calls from the
private browsing check.
Test: inspector/console/clients-ignored-in-privatebrowsing.html
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::printAccessDeniedMessage):
Drop the private browsing check.
* page/Console.cpp:
(WebCore::Console::addMessage):
Add private browsing checks to the two ::addMessage variants that
do real work. Ensure that calls to printf and notifications to
ChromeClients are gated on these checks, but always allow
notifications to InspectorInstrumentation.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::printErrorMessage):
Drop the private browsing check.
2012-12-10 Dan Winship <danw@gnome.org>
[Soup] Fix spelling of "initiating" in API.
Reviewed by Martin Robinson.
No new tests (just internal renaming).
* platform/network/ResourceHandle.h:
(ResourceHandle):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore):
(WebCore::setSoupRequestInitiatingPageIDFromNetworkingContext):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::getSoupRequestInitiatingPageID):
2012-12-10 Martin Robinson <mrobinson@igalia.com>
[GTK] Remove the Pango backend
https://bugs.webkit.org/show_bug.cgi?id=104569
Reviewed by Daniel Bates.
Remove the Pango backend entirely. The EFL build has no support for it and it's
not really maintained enough for the GTK+ port, now that HarfbuzzNG shapes complex
text when Freetype is the active text rendering backend.
No new tests. This does not change behavior.
* GNUmakefile.am: Remove Pango backend options and move Freetype options to the common list.
* GNUmakefile.list.am: Ditto.
* platform/graphics/FontPlatformData.h:
* platform/graphics/pango/FontCachePango.cpp: Removed.
* platform/graphics/pango/FontCustomPlatformDataPango.cpp: Removed.
* platform/graphics/pango/FontPango.cpp: Removed.
* platform/graphics/pango/FontPlatformData.h: Removed.
* platform/graphics/pango/FontPlatformDataPango.cpp: Removed.
* platform/graphics/pango/GlyphPageTreeNodePango.cpp: Removed.
* platform/graphics/pango/PangoUtilities.cpp: Removed.
* platform/graphics/pango/PangoUtilities.h: Removed.
* platform/graphics/pango/SimpleFontDataPango.cpp: Removed.
2012-12-11 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [WebGL] prevent GC from collecting WebGLObject instances currently bound to the context state
https://bugs.webkit.org/show_bug.cgi?id=104119
Reviewed by Pavel Feldman.
This is to prevent GC from collecting resources bound to a context (WebGL or 2D).
Otherwise, for example in WebGL, subsequent calls to gl.getParameter() may return a recently created
instance that is no longer bound to a Resource object (thus, no history to replay it later).
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
2012-12-11 Zan Dobersek <zandobersek@gmail.com>
Unreviewed build fix after r137243.
* bindings/gobject/GNUmakefile.am:
2012-12-10 No'am Rosenthal <noam@webkit.org>
REGRESSION (r137006): CSS clip on solid color composited div broken
https://bugs.webkit.org/show_bug.cgi?id=104604
Reviewed by Simon Fraser.
Disable direct compositing of background color for clipping layers.
Test: compositing/geometry/clip-inside.html
* rendering/RenderLayerBacking.cpp:
(WebCore::supportsDirectBoxDecorationsComposition):
Never allow direct background composition if there is a clip.
2012-12-10 Simon Fraser <simon.fraser@apple.com>
REGRESSION (r137215): WebKit stretches and shrinks a part of screen on scroll
https://bugs.webkit.org/show_bug.cgi?id=104626
Reviewed by Beth Dakin.
r137215 removed a compositing layer repaint on size changes. However, there
are cases where the compositing code constrains layer size by clipping
with the viewport and a clipping ancestor. When that happens, we must
invalidate the layer on a size change to avoid showing stretched or
shrunken content.
Test: compositing/repaint/clipped-layer-size-change.html
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
(WebCore::RenderLayerBacking::updateCompositedBounds):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
2012-12-10 Dean Jackson <dino@apple.com>
Remove old WebKit Animation API code
https://bugs.webkit.org/show_bug.cgi?id=104611
Reviewed by Simon Fraser.
Remove the existing, unused animation API code. We'll look into
implementing the W3C Animation API if/when it is stable.
* CMakeLists.txt: Remove WebKitAnimation and WebKitAnimationList classes.
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* UseJSC.cmake:
* UseV8.cmake:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp: Remove includes.
* bindings/js/JSWebKitAnimationCustom.cpp: Removed.
* bindings/js/JSWebKitAnimationListCustom.cpp: Removed.
* dom/Element.cpp: Remove API.
* dom/Element.h: Ditto.
* dom/Element.idl: Ditto.
* page/DOMWindow.idl: Ditto.
* page/WebKitAnimation.cpp: Removed.
* page/WebKitAnimation.h: Removed.
* page/WebKitAnimation.idl: Removed.
* page/WebKitAnimationList.cpp: Removed.
* page/WebKitAnimationList.h: Removed.
* page/WebKitAnimationList.idl: Removed.
* page/animation/AnimationController.cpp: Remove API.
* page/animation/AnimationController.h: Ditto.
* page/animation/AnimationControllerPrivate.h: Ditto.
* page/animation/CompositeAnimation.cpp: Ditto.
* page/animation/CompositeAnimation.h: Ditto.
2012-12-10 Jessie Berlin <jberlin@apple.com>
Fix the Mac build after r137233
* html/shadow/HTMLShadowElement.h:
Remove a declaration of a member variable that was moved to the InsertionPoint superclass.
2012-12-10 KyungTae Kim <ktf.kim@samsung.com>
Build fix after r137221
https://bugs.webkit.org/show_bug.cgi?id=104617
Unreviewed build fix
* html/HTMLPropertiesCollection.cpp:
(WebCore::nextNodeWithProperty):
2012-12-10 Hajime Morrita <morrita@google.com>
[Shadow DOM][Refactoring] HTMLContentElement,HTMLShadowElement::m_registeredWithShadowRoot should be moved to InsertionPoint
https://bugs.webkit.org/show_bug.cgi?id=104516
Reviewed by Dimitri Glazkov.
This change pulls duplicated code in removedFrom() and
insertedInto() of both both HTMLShadowElement and
HTMLContentElement to their super class InsertionPoint.
This is a part of effor that encapsulate node distribution algorithm to
ContentDistributor and its family.
No new tests, no behavior change.
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::registerInsertionPoint): Added.
(WebCore::ShadowRoot::unregisterInsertionPoint): Added.
* dom/ShadowRoot.h:
(ShadowRoot):
* html/shadow/ContentDistributor.cpp:
(WebCore::ShadowRootContentDistributionData::regiterInsertionPoint): Generalized two methods for <content> and <shadow>.
(WebCore):
(WebCore::ShadowRootContentDistributionData::unregisterInsertionPoint): Ditto.
* html/shadow/ContentDistributor.h:
(ShadowRootContentDistributionData):
* html/shadow/HTMLContentElement.cpp:
(WebCore::HTMLContentElement::HTMLContentElement):
* html/shadow/HTMLContentElement.h:
* html/shadow/HTMLShadowElement.cpp:
(WebCore::HTMLShadowElement::HTMLShadowElement):
* html/shadow/HTMLShadowElement.h:
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::InsertionPoint):
(WebCore::InsertionPoint::insertedInto): Pulled up from subclasses
(WebCore::InsertionPoint::removedFrom): Pulled up from subclasses
* html/shadow/InsertionPoint.h:
(InsertionPoint):
2012-12-10 Jon Lee <jonlee@apple.com>
Keep track of plug-in snapshots clicked by user
https://bugs.webkit.org/show_bug.cgi?id=103206
<rdar://problem/12746483>
Reviewed by Anders Carlsson.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Initially the hash is
unknown. Set to 0. Move the check for whether to snapshot the plugin into the
new function subframeLoaderWillLoadPlugIn.
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Rename
setPendingClickEvent to userDidClickSnapshot. In addition to holding onto the
click event used to activate the plug-in, the function now also tells the plug-in
client to add the origin hash as an auto-start origin.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillLoadPlugIn): Calculate the
hash based on the provided URL, which is the URL the plug-in will load. Extend
the check that used to be in the constructor to see if the plug-in should not
automatically load, including checking the plug-in size and whether the hash
is an auto-start origin.
* html/HTMLPlugInImageElement.h: Rename setPendingClickEvent to userDidClickSnapshot
and add a variable for the origin hash.
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::requestPlugin): When the loader is about to load the
plug-in, pass the URL to the element, so that it can calculate the hash.
* page/Page.cpp:
(WebCore::Page::Page): Take the plugInClient from the page clients.
(WebCore::Page::~Page): If the client exists, tell it that the page is being
destroyed.
(WebCore::Page::PageClients::PageClients): Initialize this optional client to
null.
* page/Page.h: Add PlugInClient to page clients.
(PageClients): Add PlugInClient variable.
(WebCore::Page::plugInClient):
* page/PlugInClient.h: Added.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::handleEvent): Call the renamed function
userDidClickSnapshot().
(WebCore::RenderSnapshottedPlugIn::layout): Move the check of the plug-in size
to subframeLoaderWillLoadPlugIn.
Add PlugInClient.h.
* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
2012-12-10 Antti Koivisto <antti@apple.com>
Not reviewed.
Build fix.
* html/HTMLPropertiesCollection.cpp:
(WebCore::nextNodeWithProperty):
* page/TouchDisambiguation.cpp:
(WebCore::boundingBoxForEventNodes):
2012-12-10 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=104602
DidHitRelevantRepaintedObjectsAreaThreshold LayoutMilestone fires too
early on some pages with iframes
Reviewed by Simon Fraser.
This change makes it so that any RenderObjects inside iframes are not
considered relevant.
* page/Page.cpp:
(WebCore::Page::addRelevantRepaintedObject):
2012-12-10 David Grogan <dgrogan@chromium.org>
IndexedDB: Propagate more leveldb errors to script
https://bugs.webkit.org/show_bug.cgi?id=104422
Reviewed by Tony Chang.
These are the last places that ignore leveldb errors that can get the
usual ok/found treatment.
Nothing called getBool, so it is deleted.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore):
(WebCore::getInt):
(WebCore::isSchemaKnown):
(WebCore::setUpMetadata):
(WebCore::getMaxObjectStoreId):
(WebCore::IDBBackingStore::open):
(WebCore::IDBBackingStore::getIDBDatabaseMetaData):
(WebCore::getNewDatabaseId):
(WebCore::IDBBackingStore::createIDBDatabaseMetaData):
(WebCore::setMaxObjectStoreId):
(WebCore::getNewVersionNumber):
(WebCore::IDBBackingStore::putRecord):
(WebCore::setMaxIndexId):
* Modules/indexeddb/IDBBackingStore.h:
(IDBBackingStore):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
2012-12-09 Antti Koivisto <antti@apple.com>
Factor node traversal into standalone functions
https://bugs.webkit.org/show_bug.cgi?id=104507
Reviewed by Eric Seidel.
Node traversal functions are currently Node and ContainerNode members. Their implementations
are confusingly scattered over multiple header and source files. These functions have no particular
reason to be members as they don't require non-public access. They should be made freestanding
function instead and gathered together.
This patch adds NodeTraversal namespace, defined in NodeTraversal.h. It contains freestanding
functions for traversing Nodes. Most popular functions are inlined (as before) and
there are ContainerNode specific specializations (as before).
In client code
node = node->traverseNextNode();
node = node->traverseNextSibling();
becomes
node = NodeTraversal::next(node);
node = NodeTraversal::nextSkippingChildren(node);
etc.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::accessibilityDescriptionForElements):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::firstAccessibleObjectFromNode):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::addImageMapChildren):
* bindings/js/JSDocumentCustom.cpp:
(WebCore::toJS):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::allVisitedStateChanged):
(WebCore::SelectorChecker::visitedStateChanged):
* css/StyleInvalidationAnalysis.cpp:
(WebCore::StyleInvalidationAnalysis::invalidateStyle):
* dom/ContainerNode.cpp:
(WebCore::dispatchChildInsertionEvents):
(WebCore::dispatchChildRemovalEvents):
* dom/ContainerNode.h:
(ContainerNode):
(WebCore):
* dom/ContainerNodeAlgorithms.h:
(WebCore::ChildFrameDisconnector::collectDescendant):
* dom/Document.cpp:
(WebCore::Document::buildAccessKeyMap):
(WebCore::Document::removeAllEventListeners):
(WebCore::Document::updateBaseURL):
(WebCore::Document::processBaseElement):
(WebCore::Document::nodeAbsIndex):
(WebCore::Document::nodeWithAbsIndex):
(WebCore::Document::getFocusableNodes):
* dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::markersInRange):
(WebCore::DocumentMarkerController::setMarkersActive):
(WebCore::DocumentMarkerController::hasMarkers):
(WebCore::DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange):
* dom/DocumentOrderedMap.cpp:
(WebCore::DocumentOrderedMap::get):
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::collectSelectFeatureSetFrom):
* dom/Node.cpp:
(WebCore::Node::normalize):
(WebCore::Node::lazyAttach):
(WebCore):
(WebCore::Node::detach):
(WebCore::traverseTreeAndMark):
* dom/Node.h:
(Node):
* dom/NodeIterator.cpp:
(WebCore::NodeIterator::NodePointer::moveToNext):
(WebCore::NodeIterator::NodePointer::moveToPrevious):
(WebCore::NodeIterator::updateForNodeRemoval):
* dom/NodeTraversal.h: Added.
(WebCore):
(NodeTraversal):
(WebCore::NodeTraversal::traverseNextNodeTemplate):
(WebCore::NodeTraversal::next):
(WebCore::NodeTraversal::traverseNextSiblingTemplate):
(WebCore::NodeTraversal::nextSibling):
* dom/Range.cpp:
(WebCore::Range::toString):
(WebCore::Range::checkDeleteExtract):
(WebCore::Range::firstNode):
(WebCore::Range::pastLastNode):
(WebCore::Range::textRects):
(WebCore::Range::textQuads):
(WebCore::Range::getBorderAndTextQuads):
* dom/TreeScope.cpp:
(WebCore::TreeScope::labelElementForId):
(WebCore::TreeScope::findAnchor):
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
(WebCore::TreeScopeAdopter::moveTreeToNewDocument):
* dom/TreeWalker.cpp:
(WebCore::TreeWalker::nextNode):
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle):
(WebCore::containsNonEditableRegion):
(WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
(WebCore::ApplyStyleCommand::removeStyleFromRunBeforeApplyingStyle):
(WebCore::ApplyStyleCommand::removeInlineStyle):
* editing/BreakBlockquoteCommand.cpp:
(WebCore::BreakBlockquoteCommand::doApply):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::deleteInsignificantText):
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
* editing/DeleteSelectionCommand.cpp:
(WebCore::firstEditablePositionInNode):
(WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):
(WebCore::DeleteSelectionCommand::handleGeneralDelete):
* editing/EditCommand.cpp:
(WebCore::SimpleEditCommand::addNodeAndDescendants):
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::triStateOfStyle):
(WebCore::EditingStyle::textDirectionForSelection):
* editing/Editor.cpp:
(WebCore::Editor::simplifyMarkup):
* editing/FrameSelection.cpp:
(WebCore::scanForForm):
(WebCore::FrameSelection::setSelectionFromNone):
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::removeUnrenderedNodes):
(WebCore::ReplacementFragment::removeInterchangeNodes):
(WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNodePreservingChildren):
(WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNode):
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
(WebCore::removeHeadContents):
(WebCore::ReplaceSelectionCommand::handleStyleSpans):
* editing/ReplaceSelectionCommand.h:
(WebCore::ReplaceSelectionCommand::InsertedNodes::pastLastLeaf):
* editing/SimplifyMarkupCommand.cpp:
(WebCore::SimplifyMarkupCommand::doApply):
* editing/TextIterator.cpp:
(WebCore::TextIterator::advance):
(WebCore::shouldEmitNewlineAfterNode):
* editing/htmlediting.cpp:
(WebCore::hasARenderedDescendant):
* editing/mac/EditorMac.mm:
(WebCore::Editor::fontForSelection):
* editing/markup.cpp:
(WebCore::completeURLs):
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
(WebCore::findNodesSurroundingContext):
(WebCore::trimFragment):
* editing/visible_units.cpp:
(WebCore::startOfParagraph):
(WebCore::endOfParagraph):
* html/HTMLCollection.cpp:
(WebCore::nextNode):
* html/HTMLElement.cpp:
(WebCore::setHasDirAutoFlagRecursively):
(WebCore::HTMLElement::directionality):
(WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
(WebCore::HTMLElement::getItemRefElements):
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::invalidateDisabledStateUnder):
(WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::formElementIndex):
* html/HTMLLabelElement.cpp:
(WebCore::HTMLLabelElement::control):
* html/HTMLLegendElement.cpp:
(WebCore::HTMLLegendElement::associatedControl):
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::mapMouseEvent):
* html/HTMLNameCollection.cpp:
(WebCore::HTMLNameCollection::virtualItemAfter):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::collectOptionInnerText):
* html/HTMLPropertiesCollection.cpp:
(WebCore::nextNodeWithProperty):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::recalcListItems):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::selection):
(WebCore::HTMLTextFormControlElement::innerTextValue):
(WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks):
* html/RadioInputType.cpp:
(WebCore::RadioInputType::handleKeydownEvent):
* html/shadow/ContentDistributor.cpp:
(WebCore::ShadowRootContentDistributionData::ensureInsertionPointList):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::performSearch):
* inspector/InspectorMemoryAgent.cpp:
* page/FocusController.cpp:
(WebCore::FocusController::findFocusCandidateInContainer):
* page/Frame.cpp:
(WebCore::Frame::searchForLabelsAboveCell):
(WebCore::Frame::searchForLabelsBeforeElement):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::getRanges):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::collectIntersectionOrEnclosureList):
(WebCore::SVGSVGElement::getElementById):
* svg/SVGUseElement.cpp:
(WebCore::removeDisallowedElementsFromSubtree):
* svg/animation/SMILTimeContainer.cpp:
(WebCore::SMILTimeContainer::updateDocumentOrderIndexes):
* xml/XPathNodeSet.cpp:
(WebCore::XPath::NodeSet::traversalSort):
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodesInAxis):
* xml/XPathUtil.cpp:
(WebCore::XPath::stringValue):
2012-12-10 Min Qin <qinmin@chromium.org>
Sending multi-touch events to the same Iframe
https://bugs.webkit.org/show_bug.cgi?id=97973
Reviewed by Dimitri Glazkov.
Multi-Touch in different iframe can give both documents access to each other.
This could cause cross-origin access. To solve this, all the touch events should
be sent to the iframe where the first touchstart happens.
Test: fast/events/touch/multi-touch-inside-iframes.html
fast/events/touch/multi-touch-inside-nested-iframes.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleTouchEvent):
* page/EventHandler.h:
2012-12-10 KyungTae Kim <ktf.kim@samsung.com>
[soup] Fix build warning in ResourceHandleSoup.cpp
https://bugs.webkit.org/show_bug.cgi?id=104605
Reviewed by Martin Robinson.
The nextMultipartResponsePartCallback has unused parameter 'source',
comment out it to fix 'unused parameter' build warning.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::nextMultipartResponsePartCallback):
2012-12-10 Simon Fraser <simon.fraser@apple.com>
Fix frame border painting in tiled drawing mode
https://bugs.webkit.org/show_bug.cgi?id=104453
<rdar://problem/11678611>
Reviewed by Dan Bernstein.
Frame borders were not correctly invalidated when in tiled drawing mode, because
RenderFrameSet::layout() invalidated directly on the view, which skips the tile
cache.
Fix by invalidating like all other renderers, via the repaint container.
Also, the layer transform should be updated before the invalidation, and
we make use of RenderObject::updateLayerTransform() which has the same behavior
as the old code.
Attempts to make a layout test failed. Resizing composited framesets repainted
via layer resizing, and an attempt to make a ref test in tiled drawing mode
failed (the test passed without the patch).
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::layout):
2012-12-10 Simon Fraser <simon.fraser@apple.com>
When converting a layer into a tiled layer, ensure that we update the visible rect
https://bugs.webkit.org/show_bug.cgi?id=104467
Reviewed by Darin Adler.
When a GraphicsLayerCA toggles to use a TileCache, we have to ensure that the
layer's visible rect (which is used to ensure tile coverage) is updated in
the same commit. Otherwise we can get blank layers until something else causes
the visible rect to be updated.
Test: compositing/tiling/tiled-layer-resize.html
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::dumpAdditionalProperties): With the debug flag, dump the TiledBacking
address for ease of debugging.
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Set the VisibleRectChanged bit in
m_uncommittedChanges if we've just switched to a tiled layer.
2012-12-10 Simon Fraser <simon.fraser@apple.com>
Don't unconditionally repaint compositing layers when their size changes
https://bugs.webkit.org/show_bug.cgi?id=104461
Reviewed by Sam Weinig.
RenderLayerBacking always repainted the entire compositing layer when its size
changed. This was done to fix repaint issues when outline widths changes, but
that issue is now solved by repainting in GraphicsLayer::setOffsetFromRenderer(),
add in r134628. I believe this is no longer necessary.
Always repainting when the size changes is terrible for the tile cache when
loading large documents, as all tiles repaint every time the document gets
longer.
Test: compositing/repaint/resize-repaint.html
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2012-12-10 Ojan Vafai <ojan@chromium.org>
Unreviewed, rolling out r134150.
http://trac.webkit.org/changeset/134150
https://bugs.webkit.org/show_bug.cgi?id=99940
Caused JS-based tooltips to remain during scroll on Facebook
and Gmail. Rollout until I have time to experiment with less
aggresive approaches.
* page/EventHandler.cpp:
(WebCore):
(WebCore::MaximumDurationTracker::MaximumDurationTracker):
(WebCore::MaximumDurationTracker::~MaximumDurationTracker):
(MaximumDurationTracker):
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::clear):
(WebCore::EventHandler::mouseMoved):
(WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
(WebCore::EventHandler::fakeMouseMoveEventTimerFired):
* page/EventHandler.h:
(EventHandler):
* platform/Timer.h:
2012-12-10 Yi Shen <max.hong.shen@gmail.com>
Keyboard caret movement in textarea with RTL Override Character can make tab unresponsive
https://bugs.webkit.org/show_bug.cgi?id=103067
Reviewed by Ryosuke Niwa.
For textarea with RTL override character, the line break could be the previous leaf InlineTextBox of
the InlineTextBox for the RTL override text. When overshots the left/right, make sure the
leftVisuallyDistinctCandidate and rightVisuallyDistinctCandidate return the visually distinct
left/right position by ignoring the line break.
Test: editing/selection/move-by-character-crash-test-textarea.html
* editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
(WebCore::VisiblePosition::rightVisuallyDistinctCandidate):
2012-12-10 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][WebGL] Minor Refactoring in GraphicsContext3DEfl.
https://bugs.webkit.org/show_bug.cgi?id=104553.
Reviewed by Kenneth Rohde Christiansen.
We use different FBO for canvas and offscreen surface of our platform layer.
Thus we need to manage any bound buffers while copying contents to the surface. Currently, Surface
always uses double buffering but in future we should be able to configure it to use either
double or single buffer. For these use cases, it would be handy to bind buffers directly to
FBO used by the surface. This patch does the needed changes in GraphicsContext3DEfl and
PlatformSurface. Also, removes some unused code.
Covered by existing tests.
Relevant changes in GraphicsContext3DEfl to obtain FBO id from PlatformSurface.
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::~GraphicsContext3D):
Renamed createGraphicsSurface to didResizeCanvas.
(WebCore::GraphicsContext3D::createGraphicsSurfaces):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(GraphicsContext3DPrivate::didResizeCanvas):
(GraphicsContext3DPrivate::copyToGraphicsSurface):
* platform/graphics/efl/GraphicsContext3DPrivate.h:
(GraphicsContext3DPrivate):
Header cleanup.
* platform/graphics/opengl/GLDefs.h:
* platform/graphics/opengl/GLPlatformContext.cpp:
(WebCore::GLPlatformContext::createContext):
* platform/graphics/opengl/GLPlatformContext.h:
Added initialize method to expose FBO id of the surface.
Removed unused code.
* platform/graphics/opengl/GLPlatformSurface.cpp:
(WebCore::GLPlatformSurface::initialize):
(WebCore):
(WebCore::GLPlatformSurface::updateContents):
* platform/graphics/opengl/GLPlatformSurface.h:
(GLPlatformSurface):
* platform/graphics/surfaces/glx/GLXSurface.h:
2012-12-07 Simon Fraser <simon.fraser@apple.com>
Tidy up the tiled scrolling indicator, fix with zooming
https://bugs.webkit.org/show_bug.cgi?id=104386
Reviewed by Tim Horton.
Fix the tiled scrolling indicator to not get tiny when zooming,
to not poke out of the bottom of the window, and to not look
so crappy.
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::updateTileCoverageMap):
(WebCore::TileCache::drawTileMapContents):
2012-12-10 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136817.
http://trac.webkit.org/changeset/136817
https://bugs.webkit.org/show_bug.cgi?id=104596
This patch was an unnecessarily complex solution to handling
conversion of union types. (Requested by mpruett on #webkit).
* bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue):
* bindings/js/JSDictionary.h:
(WebCore::JSDictionary::tryGetPropertyAndResult):
2012-12-10 Tab Atkins <tabatkins@google.com>
Deprecate prefixed linear-gradient and radial-gradient functions
https://bugs.webkit.org/show_bug.cgi?id=104591
Reviewed by Dean Jackson.
Rename the old gradient parsing functions in anticipation of functions that parse the new syntax.
No new tests added - this is a rename and has no functionality change.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseDeprecatedLinearGradient):
(WebCore::CSSParser::parseDeprecatedRadialGradient):
(WebCore::CSSParser::parseGeneratedImage):
* css/CSSParser.h:
2012-12-10 Mark Pilgrim <pilgrim@chromium.org>
[Chromium][Win] Remove theme-related functions from PlatformSupport
https://bugs.webkit.org/show_bug.cgi?id=102699
Reviewed by Adam Barth.
Call theme engine directly instead of going through
PlatformSupport. Part of a refactoring series. See tracking bug 82948.
* platform/chromium/PlatformSupport.h:
(PlatformSupport):
* platform/chromium/ScrollbarThemeChromiumWin.cpp:
(WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
(WebCore::ScrollbarThemeChromiumWin::paintButton):
* rendering/RenderThemeChromiumWin.cpp:
(WebCore):
(WebCore::RenderThemeChromiumWin::paintButton):
(WebCore::RenderThemeChromiumWin::paintSliderTrack):
(WebCore::RenderThemeChromiumWin::paintSliderThumb):
(WebCore::RenderThemeChromiumWin::paintMenuList):
(WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
(WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
(WebCore::RenderThemeChromiumWin::paintProgressBar):
2012-12-10 Dean Jackson <dino@apple.com>
Support for CSS widows and orphans
https://bugs.webkit.org/show_bug.cgi?id=9410
Reviewed by Darin Adler.
The CSS 'widow' and 'orphan' properties were supported by the parser and
style system, but were not actually doing anything in layout. Now they do!
In order to not break existing content, I unfortunately had to go against
the specification and change our default value from 2 to auto. A value of
auto means that widows and orphans will not cause any page/column breaks.
Supporting orphans was a small change. During line layout, if we realise
we need to move to a new page in a situation that would create an orphan,
move the entire block to the new page. There was already code to do this.
Support for widows was trickier. When we finish laying out a block, count
the number of hanging lines. If we've created a widow, and there are enough
available lines on the previous page, then steal some and remember the line
to break at. Trigger a relayout. Then notice the line that was marked for
breaking and avoid the widow. This means some blocks go through layout
twice, but as long as the widow value is small it shouldn't be a huge penalty.
Tests: fast/multicol/widows-and-orphans.html (new test)
printing/page-break-orphans.html
printing/page-break-orphans-and-widows.html
printing/page-break-widows.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Return CSSValueAuto for widows and orphans if necessary.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Support "auto" in widow and orphan property parsing.
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder): Change property handler to something that supports auto.
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimation::ensurePropertyMap): Add widows and orphans to the animation map.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlockChild): Detect if we've caused a widow-fixing break, and request relayout evaluation.
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded): Test for a widow-fixing line.
(WebCore::RenderBlock::setBreakAtLineToAvoidWidow): New function to remember where we should break on next layout.
(WebCore::RenderBlock::adjustLinePositionForPagination): Move the entire block to a new page if this would create an orphan.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::shouldBreakAtLineToAvoidWidow): New function to indicate if we are remembering a widow.
(WebCore::RenderBlock::clearShouldBreakAtLineToAvoidWidow): Reset the line breaks.
(WebCore::RenderBlock::lineBreakToAvoidWidow):
(WebCore::RenderBlock::RenderBlockRareData::RenderBlockRareData): Add a flag for indicating if we are remembering a line, and the actual line itself.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange): The code to detect and fix widows. Explained above.
* rendering/style/RenderStyle.h: New methods for indicating if widows and orphans are non-default values.
* rendering/style/StyleRareInheritedData.cpp: Ditto.
* rendering/style/StyleRareInheritedData.h: Ditto.
2012-12-10 Zan Dobersek <zandobersek@gmail.com>
REGRESSION (r118735): svg/dom/complex-svgView-specification.html, svg/dom/SVGViewSpec.html, svg/dom/viewspec-parser.html failing on GTK Linux 64-bit Release
https://bugs.webkit.org/show_bug.cgi?id=87734
Reviewed by Martin Robinson.
Don't modify ResourceRequest's URL to have the value of the (encoded)
URI of the SoupMessage. The only exception is in the case of cancelled
SoupMessage - the URL of the ResourceRequest should then be null.
No new tests - existing tests should show no regressions.
* platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::updateFromSoupMessage):
2012-12-10 Gustavo Noronha Silva <gns@gnome.org>
Unreviewed distcheck fix.
* GNUmakefile.list.am:
2012-12-10 Eric Seidel <eric@webkit.org>
Caused crashes in v8. Rolling out until abarth can fix. See cr-issue 165136 for more info
https://bugs.webkit.org/show_bug.cgi?id=104575
Unreviewed, just rolling out r136559.
* bindings/v8/V8GCController.cpp:
* bindings/v8/V8NodeFilterCondition.cpp:
(WebCore::V8NodeFilterCondition::V8NodeFilterCondition):
(WebCore::V8NodeFilterCondition::acceptNode):
* bindings/v8/V8NodeFilterCondition.h:
(WebCore::V8NodeFilterCondition::create):
(V8NodeFilterCondition):
* dom/NodeFilter.h:
2012-12-10 Eric Carlson <eric.carlson@apple.com>
Unreviewed build fix after r137167.
* WebCore.xcodeproj/project.pbxproj: Add InbandTextTrackPrivate.h to framework private
headers.
2012-12-10 Martin Robinson <mrobinson@igalia.com>
Fix the GTK+ build after a collision of two patches.
Unreviewed build fix.
* bindings/gobject/GNUmakefile.am: The GObject DOM bindings library needs to
include the harfbuzz cflags when compiling.
2012-12-10 Parth Patel <parpatel@rim.com>
Make hiddenPageDomTimerInterval a setting
https://bugs.webkit.org/show_bug.cgi?id=104555
Reviewed by Yong Li.
Make hiddenPageDomTimerInterval a setting so client can customize it.
No new tests are needed.
* page/Page.cpp:
(WebCore):
(WebCore::Page::setVisibilityState):
* page/Settings.cpp:
(WebCore):
(WebCore::Settings::setHiddenPageDOMTimerAlignmentInterval):
(WebCore::Settings::hiddenPageDOMTimerAlignmentInterval):
* page/Settings.h:
(Settings):
2012-12-10 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Compile fix in ImageCairoWin.cpp
https://bugs.webkit.org/show_bug.cgi?id=104554
Reviewed by Brent Fulgham.
* platform/graphics/win/ImageCairoWin.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize): Added parameter.
(WebCore::BitmapImage::drawFrameMatchingSourceSize): Added parameter.
2012-12-10 Mike West <mkwst@chromium.org>
Log to console when script is blocked by sandbox attributes.
https://bugs.webkit.org/show_bug.cgi?id=104365
Reviewed by Ojan Vafai.
Adds a console message to cover script execution blocked within the
context of a sandboxed frame which lacks the 'allow-scripts' permission.
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::canExecuteScripts):
Log a warning when sandboxing flags block script execution.
2012-12-10 Chris Fleizach <cfleizach@apple.com>
AX: Crash in NSAccessibilityUnignoredDescendant
https://bugs.webkit.org/show_bug.cgi?id=104468
Reviewed by Anders Carlsson.
This crash occurred because AccessibilityScrollView stopped retaining it's ScrollView pointer.
Unfortunately, there was still a case that didn't correctly clear that variable.
That case was when a Frame had a new FrameView associated with it. The old FrameView didn't inform the
accessibility object cache that it should be removed. As a result, when the FrameView deallocated and
did try to remove, it used the wrong AXObjectCache because it was no longer correctly hooked into the
document tree.
No new tests. Existing tests will stop crashing.
* page/Frame.cpp:
(WebCore::Frame::setView): change the name of the method that tells the FrameView to detach
* page/FrameView.cpp:
(WebCore::FrameView::~FrameView):
(WebCore::FrameView::removeFromAXObjectCache): add a method that can be called in multiple places
(WebCore::FrameView::isFrameView):
(WebCore::FrameView::prepareForDetach): detaches scrollbars and accessibility
* page/FrameView.h:
(FrameView):
2012-12-10 Mark Pilgrim <pilgrim@chromium.org>
[Chromium] Move getPluginsList out of PlatformSupport
https://bugs.webkit.org/show_bug.cgi?id=96507
Reviewed by Darin Fisher.
Part of a refactoring series. See tracking bug 82948.
* WebCore.gypi:
* platform/chromium/PlatformSupport.h:
(PlatformSupport):
* plugins/chromium/PluginDataChromium.cpp:
(WebCore::PluginCache::plugins):
* plugins/chromium/PluginListBuilder.cpp: Added.
(WebKit):
(WebKit::PluginListBuilder::addPlugin):
(WebKit::PluginListBuilder::addMediaTypeToLastPlugin):
(WebKit::PluginListBuilder::addFileExtensionToLastMediaType):
* plugins/chromium/PluginListBuilder.h: Added.
(WebKit):
(PluginListBuilder):
(WebKit::PluginListBuilder::PluginListBuilder):
2012-12-10 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Build GObject DOM bindings as a separate library
https://bugs.webkit.org/show_bug.cgi?id=104527
Reviewed by Xan Lopez.
* bindings/gobject/GNUmakefile.am: Add libWebCoreDOM library.
* bindings/gobject/WebKitDOMBinding.h: Define private macros.
* bindings/gobject/WebKitDOMCustom.h: Don't include webkit/webkitdefines.h.
* bindings/gobject/WebKitDOMEventTarget.h: Ditto.
* bindings/gobject/WebKitDOMObject.h: Ditto.
* bindings/scripts/CodeGeneratorGObject.pm:
(Generate): Don't include webkitglobalsprivate.h.
(WriteData): Don't include webkit/webkitdefines.h.
* bindings/scripts/gobject-generate-headers.pl: Define WEBKIT_API
macro in webkitdomdefines.h.
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
* bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestException.h:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
* bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestNode.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
2012-12-10 Adam Klein <adamk@chromium.org>
In InbandTextTrackPrivate, return emptyAtoms instead of emptyString() by default.
Unreviewed build fix.
* platform/graphics/InbandTextTrackPrivate.h:
(WebCore::InbandTextTrackPrivate::label):
(WebCore::InbandTextTrackPrivate::language):
2012-12-10 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Native Memory Instrumentation: instrument RenderBox descendants.
https://bugs.webkit.org/show_bug.cgi?id=104026
Reviewed by Eric Seidel.
Plain vanilla instrumentation for RenderBox descendants.
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::reportMemoryUsage):
(WebCore):
(WebCore::RenderFrameSet::GridAxis::reportMemoryUsage):
* rendering/RenderFrameSet.h:
(RenderFrameSet):
(GridAxis):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::reportMemoryUsage):
(WebCore):
* rendering/RenderListMarker.h:
(RenderListMarker):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::reportMemoryUsage):
(WebCore):
* rendering/RenderReplaced.h:
(RenderReplaced):
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::reportMemoryUsage):
(WebCore):
* rendering/RenderTableCol.h:
(RenderTableCol):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::reportMemoryUsage):
(WebCore):
* rendering/RenderTableRow.h:
(RenderTableRow):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::reportMemoryUsage):
(WebCore):
(WebCore::RenderTableSection::RowStruct::reportMemoryUsage):
(WebCore::RenderTableSection::CellStruct::reportMemoryUsage):
* rendering/RenderTableSection.h:
(CellStruct):
(RowStruct):
2012-12-10 Alejandro Piñeiro <apinheiro@igalia.com>
AX: wrong Enabled states on a ListBox
https://bugs.webkit.org/show_bug.cgi?id=104483
Reviewed by Chris Fleizach.
Test: accessibility/listbox-enabled-states.html
* accessibility/AccessibilityListBoxOption.cpp:
(WebCore::AccessibilityListBoxOption::isEnabled): taking into
account the DISABLED attribute and the aria-disabled attribute to
decide if the item is enabled or not.
2012-12-10 Adam Klein <adamk@chromium.org>
cr-win build fix after r137161.
Unreviewed.
* platform/graphics/MediaPlayer.h: Replace forward-decl of
InbandTextTrackPrivate with #include as the definition is required.
2012-12-10 Alexis Menard <alexis@webkit.org>
[CSS3 Backgrounds and Borders] Remove CSS3_BACKGROUND feature flag.
https://bugs.webkit.org/show_bug.cgi?id=104539
Reviewed by Antonio Gomes.
As discussed on webkit-dev it is not needed to keep this feature flag
as support for <position> type is a small feature that is already
implemented by three other UAs. It was useful while landing this
feature as partial bits were landed one after one.
No new tests : the feature is covered by various tests and it is already enabled in many ports.
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
* GNUmakefile.features.am:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseFillPosition):
(WebCore::CSSParser::parseFillProperty):
* css/CSSParser.h:
* css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapFillXPosition):
(WebCore::CSSToStyleMap::mapFillYPosition):
* rendering/style/FillLayer.cpp:
(SameSizeAsFillLayer):
(WebCore::FillLayer::FillLayer):
(WebCore::FillLayer::operator=):
(WebCore::FillLayer::operator==):
(WebCore::FillLayer::fillUnsetProperties):
* rendering/style/FillLayer.h:
(WebCore::FillLayer::backgroundXOrigin):
(WebCore::FillLayer::backgroundYOrigin):
(WebCore::FillLayer::isBackgroundOriginSet):
(WebCore::FillLayer::clearXPosition):
(WebCore::FillLayer::clearYPosition):
(FillLayer):
2012-12-10 Eric Carlson <eric.carlson@apple.com>
Add support for in-band text tracks to Mac port
https://bugs.webkit.org/show_bug.cgi?id=103663
Reviewed by Sam Weinig.
Test: media/track/track-in-band.html
* GNUmakefile.list.am: Move InbandTextTrackPrivate.h to platform/graphics. Add InbandTextTrackPrivateClient.h.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.xcodeproj/project.pbxproj: Add new files.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setReadyState): No need to call processInbandTextTracks, in-band tracks
are now registered by the media engine as they are discovered.
(WebCore::HTMLMediaElement::mediaPlayerDidAddTrack): New, called by the media player when a new
in-band track is found.
(WebCore::HTMLMediaElement::mediaPlayerDidRemoveTrack): New, called by the media player when an
in-band track goes away.
* html/HTMLMediaElement.h:
* html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::InbandTextTrack): Use m_private instead of tracksPrivate because
it is zeroed during assignment.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::addTextTrack): New MediaPlayerClient method to allow MediaPlayerPrivate subclasses
to add a new in-band track.
(WebCore::MediaPlayer::removeTextTrack): New MediaPlayerClient method to allow MediaPlayerPrivate subclasses
to remove a new in-band track.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: Added.
(WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF):
(WebCore::InbandTextTrackPrivateAVF::~InbandTextTrackPrivateAVF):
(WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Convert an attribute string into WebVTT
cue setting and content strings.
(WebCore::InbandTextTrackPrivateAVF::processCue): Process a new cue.
(WebCore::InbandTextTrackPrivateAVF::disconnect): Clear member variables.
(WebCore::InbandTextTrackPrivateAVF::resetCueValues): Reset cue values to defaults.
(WebCore::InbandTextTrackPrivateAVF::setMode): Set track mode and call player's trackModeChanged.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h: Added.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: Initialize
m_inbandTrackConfigurationPending.
(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
(WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Flush the currently accumulating
cue so it doesn't get the wrong duration.
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification): Handle InbandTracksNeedConfiguration.
(WebCore::MediaPlayerPrivateAVFoundation::flushCurrentCue): New, pass the current cue up to the client.
(WebCore::MediaPlayerPrivateAVFoundation::configureInbandTracks): Configure in-band tracks.
(WebCore::MediaPlayerPrivateAVFoundation::trackModeChanged): Schedule a call to configureInbandTracks.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h: Added.
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm: Added.
(WebCore::InbandTextTrackPrivateAVFObjC::InbandTextTrackPrivateAVFObjC):
(WebCore::InbandTextTrackPrivateAVFObjC::disconnect):
(WebCore::InbandTextTrackPrivateAVFObjC::kind): Return track kind.
(WebCore::InbandTextTrackPrivateAVFObjC::label): Return track label.
(WebCore::InbandTextTrackPrivateAVFObjC::language): Return track language.
(WebCore::InbandTextTrackPrivateAVFObjC::isDefault):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
(MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::playerItem):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize m_currentTrack.
(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Clear m_legibleOutput.
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Create and initialize m_legibleOutput.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks): Called when the player item's
"tracks" changes, add and remove in-band text tracks as necessary.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processCue): Pass an attributed string to the current
track to be processed.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Tell AVFoundation to select an in-band track.
(WebCore::MediaPlayerPrivateAVFoundationObjC::currentTrack): Return the current track.
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]): Legible
output delegate.
2012-12-10 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: fix front-end compilation warnings
https://bugs.webkit.org/show_bug.cgi?id=104557
Reviewed by Alexander Pavlov.
Corresponding annotations added.
* inspector/Inspector.json:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::highlightNode):
* inspector/InspectorDOMAgent.h:
(InspectorDOMAgent):
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSStyleDeclaration.prototype.):
(WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreview):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMAgent.prototype.highlightDOMNode):
* inspector/front-end/DOMPresentationUtils.js:
(WebInspector.DOMPresentationUtils.linkifyNodeReference):
* inspector/front-end/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertyTreeElement.prototype.update):
* inspector/front-end/Toolbar.js:
2012-12-10 Zeno Albisser <zeno@webkit.org>
[Qt] MediaPlayerQTKit broken after switching QPainter to raster engine.
https://bugs.webkit.org/show_bug.cgi?id=104550
With Qt5 QPainter changed to using the raster engine.
Therefore we no longer have an NSGraphicsContext that we can
use for drawing video frames.
With this patch we are rendering the video frame into an image buffer
and then paint it manually using QPainter.
Reviewed by Simon Hausmann.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore):
(WebCore::swapBgrToRgb):
Swap the color format from BGR to RGB,
since BGR is not supported by QImage.
(WebCore::MediaPlayerPrivateQTKit::paint):
2012-12-10 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Link fix in InspectorController.cpp
https://bugs.webkit.org/show_bug.cgi?id=104556
Reviewed by Pavel Feldman.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController): Added missing #if check.
2012-12-10 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: remove the Overrides / Settings context menu from gear icon
https://bugs.webkit.org/show_bug.cgi?id=104546
Reviewed by Alexander Pavlov.
It sounds like too many people don't like the way it works. Bringing things back: overrides will be a tab in settings for now.
Moving present behavior to under experiment.
* inspector/front-end/OverridesView.js:
(WebInspector.OverridesView):
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/SettingsScreen.js:
(WebInspector.OverridesSettingsTab):
(WebInspector.SettingsController):
(WebInspector.SettingsController.prototype.get statusBarItem):
(WebInspector.SettingsController.prototype._mouseDown.showSettings):
(WebInspector.SettingsController.prototype._mouseDown):
(WebInspector.SettingsController.prototype._mouseUp):
* inspector/front-end/helpScreen.css:
(#settings-screen .tabbed-pane-header):
(#settings-screen .tabbed-pane-header-tabs):
(#settings-screen .tabbed-pane-header-tab):
2012-12-10 Kent Tamura <tkent@chromium.org>
Visual order of empty value placeholder in INPUT_MULTIPLE_FIELDS_UI is wrong in RTL
https://bugs.webkit.org/show_bug.cgi?id=104438
Reviewed by Hajime Morita.
No new tests. This updates datetimelocal-appearance-l10n.html for he-il
and ar-eg locales.
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
We should not append Right-to-left-mark to each of placeholder
strings. It makes numeric field separators such as ':' and '/' RTL, and
makes a wrong visual order. We use unicode-bidi:bidi-override and
direction:ltr instead. It means we force LTR only to this element
* html/shadow/DateTimeNumericFieldElement.h:
Makes m_placeholder const again.
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitLiteral):
Explicitly set right-to-left-mark before S, WS, ON types according to
Unicod Bidirectional Algorithm Table 4 [1]. This is needed because we
don't have context like "This literal follows European/Arabic numbers"
in a case of showing placeholders.
[1] http://www.unicode.org/reports/tr9/#Bidirectional_Character_Types
2012-12-09 Gustavo Noronha Silva <gustavo.noronha@collabora.com>
[Soup] utilize multipart/x-mixed-replace support recently added to libsoup
https://bugs.webkit.org/show_bug.cgi?id=94515
Reviewed by Martin Robinson.
The multipart/x-mixed-replace content type is often used for providing
"push" server support, with each part in the multipart response
replacing the previous one in the rendering. Soup recently acquired
support for multipart/x-mixed replace, which this change utilizes.
Covered by existing multipart/x-mixed-replace tests.
* platform/network/ResourceHandleInternal.h:
(ResourceHandleInternal): add new member to this class, the multipart input stream
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::cleanupSoupRequestOperation): also clear the multipart input stream on
cleanup
(WebCore::nextPartCallback): callback that handles reporting the new response delivered
with the new part, if any; uses the factored out updateFromSoupMessageHeaders method
(WebCore::sendRequestCallback): handle multipart/x-mixed-replace responses by
requesting the next part
(WebCore::readCallback): when reading has finished, request the next part when
handling a multipart/x-mixed-replace response
* platform/network/soup/ResourceResponse.h:
(ResourceResponse): add declaration for new method
* platform/network/soup/ResourceResponseSoup.cpp:
(WebCore::ResourceResponse::updateFromSoupMessage): call new updateFromSoupMessageHeaders
method, instead of dealing with the message headers directly
(WebCore::ResourceResponse::updateFromSoupMessageHeaders): new method, factored out from
updateFromSoupMessage, so this same code can be reused for updating responses for
multipart/x-mixed-replace responses parts
2012-12-10 Zoltan Nyul <zoltan.nyul@intel.com>
Implement testRunner.setViewModeMediaFeature() in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=103886
Reviewed by Kenneth Rohde Christiansen.
Export symbol for WebCore::Page::setViewMode on Mac.
No new tests, no behavior change for layout tests.
* WebCore.exp.in:
2012-12-10 Martin Robinson <mrobinson@igalia.com>
[GTK] Bring Harfbuzz-ng support to Gtk
https://bugs.webkit.org/show_bug.cgi?id=92098
Reviewed by Gustavo Noronha Silva.
Enable HarfBuzz support by default. With the Freetype backend we no longer
fall back to Pango for rendering complex text.
No new tests. This is covered by existing tests.
* GNUmakefile.am: Add HarfBuzz include directories and define.
* GNUmakefile.list.am: Add HarfBuzz files to source list and remove
Pango ones.
* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
(WebCore::FontPlatformData::operator==): To properly render fallback
fonts via HarfBuzz , it's important that we actually ask Fontconfig
whether or not two patterns are the same. This ensures that when patterns
are just copies of one another they only take up one slot in the font cache
and appear to be the same font to HarfBuzzShaper.
2012-12-10 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Overrides] Unable to change values in Device Metrics override setting
https://bugs.webkit.org/show_bug.cgi?id=104542
Reviewed by Vsevolod Vlasov.
Remove inadvertent object property assignment.
* inspector/front-end/OverridesView.js:
2012-12-10 Michael Brüning <michael.bruning@digia.com>
[Qt] Builds for Mac are tied to the OS system instead of the SDK version.
https://bugs.webkit.org/show_bug.cgi?id=104529
Reviewed by Simon Hausmann.
Using work by Eike Ziller <eike.ziller@digia.com>.
The build system now first tries to assign the correct system libraries
for the SDK being used for Mac builds. If this does not yield any
result, it falls back to using the Mac OS version to determine the
correct library.
No new tests (not applicable).
* WebCore.pri:
2012-12-10 Ilya Tikhonovsky <loislo@chromium.org>
Unreviewed: touch RenderingAllInOne.cpp to fix Apple Windows builder.
* rendering/RenderingAllInOne.cpp:
2012-12-10 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Network: newly added items are not filtered.
https://bugs.webkit.org/show_bug.cgi?id=104021
Reviewed by Vsevolod Vlasov.
Extracted method to higlight/hide record according to filter.
Used this method to process newly created records.
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._applyFilter): Extracted.
(WebInspector.NetworkLogView.prototype.performFilter): Refactored.
2012-12-09 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Unreviewed: move reportMemoryUsage to public section.
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderBox.h:
(RenderBox):
2012-12-08 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: adds an option to remove toolbar icons.
https://bugs.webkit.org/show_bug.cgi?id=95654
Reviewed by Vsevolod Vlasov.
- removes compact mode in favor or dock-to-bottom
- introduces setting for hiding toolbar icons
* inspector/front-end/DockController.js:
(WebInspector.DockController.prototype._toggleDockState):
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/Toolbar.js:
(WebInspector.Toolbar.prototype.setDockedToBottom):
(WebInspector.Toolbar.prototype._toolbarDragStart):
(WebInspector.Toolbar.prototype._toolbarDrag):
* inspector/front-end/helpScreen.css:
(body.dock-to-bottom .help-content):
* inspector/front-end/inspector.css:
(body.dock-to-bottom #toolbar):
(body.no-toolbar-icons #toolbar):
(body.dock-to-bottom.port-qt #toolbar):
(body.dock-to-bottom.inactive #toolbar):
(body.no-toolbar-icons .toolbar-item.toggleable):
(body.dock-to-bottom .toolbar-item.toggleable):
(body.dock-to-bottom .toolbar-icon):
(body.no-toolbar-icons .toolbar-icon):
(body.no-toolbar-icons #main):
(body.dock-to-bottom .toolbar-icon.custom-toolbar-icon):
(body.dock-to-bottom .toolbar-item:active .toolbar-icon):
(body.dock-to-bottom .toolbar-label):
(body.dock-to-bottom #search-toolbar-label):
(body.no-toolbar-icons .toolbar-label):
(body.no-toolbar-icons #toolbar-dropdown):
(#toolbar-dropdown .scrollable-content):
(#toolbar-dropdown .toolbar-item.toggleable:hover):
(body.no-toolbar-icons #toolbar-dropdown .toolbar-label):
(body.no-toolbar-icons #toolbar-dropdown .toolbar-item):
(body.dock-to-bottom .toolbar-item.resources .toolbar-icon):
(body.dock-to-bottom .toolbar-item.network .toolbar-icon):
(body.dock-to-bottom .toolbar-item.scripts .toolbar-icon):
(body.dock-to-bottom .toolbar-item.timeline .toolbar-icon):
(body.dock-to-bottom .toolbar-item.profiles .toolbar-icon):
(body.dock-to-bottom .toolbar-item.audits .toolbar-icon):
(body.dock-to-bottom .toolbar-item.console .toolbar-icon):
(body.dock-to-bottom.port-qt .toolbar-item.close-left, body.dock-to-bottom.port-qt .toolbar-item.close-right):
(body.dock-to-bottom #main):
2012-12-10 Kent Tamura <tkent@chromium.org>
Refactoring: Remove HTMLFormControlElement::autofocus
https://bugs.webkit.org/show_bug.cgi?id=104524
Reviewed by Kentaro Hara.
autofocus function is used only by HTMLFormControlElement itself, no
sub-classes override it, and it is not exposed via an IDL attribute,
No new tests. This doesn't make any behavior changes.
* html/HTMLFormControlElement.cpp:
(WebCore::shouldAutofocus): Use fastHasAttribute instead of autofocus().
* html/HTMLFormControlElement.h: Remove autofocus().
2012-12-10 Jonathan Liu <net147@gmail.com>
Fix GC3Dintptr and GC3Dsizeiptr typedefs for Win64
https://bugs.webkit.org/show_bug.cgi?id=104426
Reviewed by Simon Hausmann.
The GC3Dintptr and GC3Dsizeiptr typedefs are incorrect for Win64 as
LLP64 is used there. This would result in compile error due to
narrowing conversion of 64-bit pointer to signed long int which is
32-bit.
* platform/graphics/GraphicsTypes3D.h:
2012-12-10 Kent Tamura <tkent@chromium.org>
Refactoring: Introduce HTMLFormControlElement::isDisabledOrReadOnly
https://bugs.webkit.org/show_bug.cgi?id=104508
Reviewed by Kentaro Hara.
We have a lot of code like element->disabled || element->readOnly().
isDisabledOrReadOnly makes them simpler.
No new tests. This make no behaivor change.
* html/HTMLFormControlElement.h:
(WebCore::HTMLFormControlElement::isDisabledOrReadOnly):
Added. Note that the implmentation of disabled() is not just "return m_disabled;".
* html/BaseChooserOnlyDateAndTimeInputType.cpp:
(WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
Use isDisabledOrReadOnly.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToMouseEvents): Ditto.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::isPickerIndicatorOwnerDisabledOrReadOnly): Ditto.
* html/ColorInputType.cpp:
(WebCore::ColorInputType::handleDOMActivateEvent): Ditto.
(WebCore::ColorInputType::didChooseColor): Ditto.
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::recalcWillValidate): Ditto.
* html/HTMLTextAreaElement.h:
(WebCore::HTMLTextAreaElement::valueMissing): Ditto.
* html/RangeInputType.cpp:
(WebCore::RangeInputType::handleMouseDownEvent): Ditto.
(WebCore::RangeInputType::handleTouchEvent): Ditto.
(WebCore::RangeInputType::handleKeydownEvent): Ditto.
* html/SearchInputType.cpp:
(WebCore::SearchInputType::handleKeydownEvent): Ditto.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::handleKeydownEventForSpinButton): Ditto.
(WebCore::TextFieldInputType::shouldSpinButtonRespondToMouseEvents): Ditto.
* html/shadow/TextControlInnerElements.cpp:
(WebCore::SearchFieldCancelButtonElement::defaultEventHandler): Ditto.
(WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents): Ditto.
(WebCore::InputFieldSpeechButtonElement::defaultEventHandler): Ditto.
* html/shadow/TextFieldDecorationElement.cpp:
(WebCore::TextFieldDecorationElement::defaultEventHandler): Ditto.
(WebCore::TextFieldDecorationElement::willRespondToMouseMoveEvents): Ditto.
(WebCore::TextFieldDecorationElement::willRespondToMouseClickEvents): Ditto.
2012-12-10 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: console broken? - console.dirxml behaves like console.log
https://bugs.webkit.org/show_bug.cgi?id=104245
Reviewed by Vsevolod Vlasov.
Do not generate preview for dirxml.
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
2012-12-10 Kent Tamura <tkent@chromium.org>
Refactoring: Remove HTMLFormControlElement::setDisabled
https://bugs.webkit.org/show_bug.cgi?id=104510
Reviewed by Kentaro Hara.
Remove it because the number of call sites is only one, and the
setDisabled implementation is equivalent to setBooleanAttribute.
No new tests. This should not make behavior changes.
* html/HTMLFormControlElement.cpp: Remove setDisabled.
* html/HTMLFormControlElement.h: Ditto.
* html/FileInputType.cpp:
(WebCore::FileInputType::disabledAttributeChanged):
Replace setDisabled with setBooleanAttribute.
2012-12-10 Hajime Morrita <morrita@google.com>
[Shadow DOM][Refacdtoring] nextTo() and previousTo() can be part of ContentDistribution
https://bugs.webkit.org/show_bug.cgi?id=104514
Reviewed by Kentaro Hara.
InsertionPoint::nextTo() and InsertionPoint::previousTo() are an
query to distributed nodes, which is what ContentDistribution
represents. We can move them to better home.
No new tests. No behavior change.
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistribution::nextTo): Moved from InsertionPoint
(WebCore):
(WebCore::ContentDistribution::previousTo): Moved from InsertionPoint
* html/shadow/ContentDistributor.h:
(ContentDistribution):
* html/shadow/InsertionPoint.cpp:
* html/shadow/InsertionPoint.h:
(WebCore::InsertionPoint::nextTo): Delegated to ContentDistribution
(WebCore::InsertionPoint::previousTo): Delegated to ContentDistribution
2012-12-10 Joanmarie Diggs <jdiggs@igalia.com>
[GTK] accessibility/language-attribute.html is failing
https://bugs.webkit.org/show_bug.cgi?id=98369
Reviewed by Chris Fleizach.
The test is failing for two reasons: Not exposing the language
for accessible objects and AccessibilityUIElement::language() not
being implemented.
No new tests; instead, unskipped the previously-failing test.
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(getAttributeSetForAccessibilityObject): Expose the language via AtkText attribute
2012-12-09 Takashi Sakamoto <tasak@google.com>
[Shadow DOM]: reset-style-inheritance doesn't work for insertion point
https://bugs.webkit.org/show_bug.cgi?id=103711
Reviewed by Hajime Morita.
reset-style-inheritance can be specified by using insertion points'
attribute, e.g. <content reset-style-inheritance>.
c.f. shadow dom spec:
https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles
No new tests. Updated an existing test,
fast/dom/shadow/insertion-point-resetStyleInheritance.html to cover
this feature.
* html/HTMLAttributeNames.in:
Added HTMLNames::reset_style_inheritanceAttr.
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::InsertionPoint):
(WebCore::InsertionPoint::parseAttribute):
Since both shadow and content elements have to support
reset-style-inheritance, added InsertionPoint::parseAttribute.
(WebCore::InsertionPoint::resetStyleInheritance):
(WebCore::InsertionPoint::setResetStyleInheritance):
Modified to update reset-style-inheritance attribute value.
* html/shadow/InsertionPoint.h:
(InsertionPoint):
Removed m_shouldResetStyleInheritance. Instead, use
reset-style-inheritance attribute value.
2012-12-09 Ilya Tikhonovsky <loislo@chromium.org>
Native Memory Instrumentation: instrument a part of RenderObject class tree.
https://bugs.webkit.org/show_bug.cgi?id=103564
Reviewed by Eric Seidel.
Many RenderObject descendants have OwnPtrs and RefPtrs members.
Looks like we have to instrument all the RenderObject classes and visit
all the render objects instead of counting entire render arena memory.
* WebCore.exp.in:
* dom/Node.cpp:
(WebCore::Node::reportMemoryUsage):
* dom/WebCoreMemoryInstrumentation.cpp:
(WebCore):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::reportRenderTreeInfo):
(WebCore):
* platform/PlatformMemoryInstrumentation.cpp:
(WebCore):
* platform/PlatformMemoryInstrumentation.h:
(PlatformMemoryTypes):
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::reportMemoryUsage):
(WebCore):
* platform/graphics/GraphicsLayer.h:
(GraphicsLayer):
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::reportMemoryUsage):
(WebCore):
* platform/graphics/chromium/GraphicsLayerChromium.h:
(GraphicsLayerChromium):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::reportMemoryUsage):
(WebCore):
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::reportMemoryUsage):
(WebCore):
* rendering/RenderBox.h:
(RenderBox):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::reportMemoryUsage):
(WebCore):
* rendering/RenderInline.h:
(RenderInline):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::reportMemoryUsage):
(WebCore):
* rendering/RenderLayer.h:
(RenderLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::reportMemoryUsage):
(WebCore):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::reportMemoryUsage):
(WebCore):
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::reportMemoryUsage):
(WebCore):
* rendering/RenderLayerModelObject.h:
(RenderLayerModelObject):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::reportMemoryUsage):
(WebCore):
* rendering/RenderObject.h:
(RenderObject):
* rendering/RenderText.cpp:
(WebCore::RenderText::reportMemoryUsage):
(WebCore):
* rendering/RenderText.h:
(RenderText):
* rendering/RenderView.cpp:
(WebCore::RenderView::reportMemoryUsage):
(WebCore):
* rendering/RenderView.h:
(RenderView):
2012-12-09 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION (r137003): failures in MicroData tests on EFL, GTK
https://bugs.webkit.org/show_bug.cgi?id=104469
Reviewed by Darin Adler.
Fix the regression by calling propertyNodeList on HTMLPropertiesCollection
in the named getter for HTMLCollection. It's a miracle that the old code prior to r137003
worked at all since the return type of namedItem was different.
Existing tests cover this.
* bindings/js/JSHTMLCollectionCustom.cpp:
(WebCore::JSHTMLCollection::nameGetter):
* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
(WebCore::V8HTMLCollection::namedPropertyGetter):
2012-12-09 Joanmarie Diggs <jdiggs@igalia.com>
[GTK] accessibility/placeholder.html is failing
https://bugs.webkit.org/show_bug.cgi?id=98373
Reviewed by Martin Robinson.
The test was failing because the placeholder text was not supported and
AccessibilityUIElement::stringAttributeValue() was not implemented.
No new tests; instead the failing test was unskipped.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetAttributes): Add the placeholder text as an AtkAttribute
of the AtkObject, as is done in Gtk+ 3.
2012-12-09 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL] [WebGL] Path is not resized correctly.
https://bugs.webkit.org/show_bug.cgi?id=104458.
Reviewed by Kenneth Rohde Christiansen.
In GraphicsContext3D::paintToCanvas, we flip the contents and draw on the surface.
The operations done to flip the image (translation and scale) are done before rectangle with correct size
is added to current path. This resulted in updating pixels at wrong positions.
Covered by existing tests.
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::paintToCanvas):
2012-12-09 Joone Hur <joone.hur@intel.com>
[GTK][AC] build fix after r130525 and r133332
https://bugs.webkit.org/show_bug.cgi?id=104491
Reviewed by Martin Robinson.
Build fix for Accelerated Compositing Clutter backend after r130525 and r133332.
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
* platform/gtk/RedirectedXCompositeWindow.cpp:
* platform/gtk/RedirectedXCompositeWindow.h:
2012-12-09 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Use GObject casts instead of C++ cast for GObjects in DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=104492
Reviewed by Martin Robinson.
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateCFile):
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
(WebKit::kit):
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
(WebKit::kit):
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
(WebKit::kit):
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
(WebKit::kit):
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
(WebKit::kit):
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
(WebKit::kit):
* bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
(WebKit::kit):
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
(WebKit::kit):
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
(WebKit::kit):
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
(WebKit::kit):
* bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
(WebKit::kit):
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(WebKit::kit):
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
(WebKit::kit):
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
(WebKit::kit):
2012-12-09 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: do not treat object as equal to itself when logging to console
https://bugs.webkit.org/show_bug.cgi?id=104487
Reviewed by Alexander Pavlov.
Otherwise, mutating object in a loop results in the repeat count update instead of generation of the new preview.
Test: inspector/console/console-object-preview.html
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::isEqual):
2012-12-09 Carlos Garcia Campos <cgarcia@igalia.com>
Remove unused code in GObject DOM bindings generator
https://bugs.webkit.org/show_bug.cgi?id=104490
Reviewed by Martin Robinson.
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateProperties): Remove code to install event listeners and
signals.
2012-12-09 Zan Dobersek <zandobersek@gmail.com>
Unreviewed update for the GObject bindings after r137074 and r137078.
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
(webkit_dom_test_event_target_dispatch_event):
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
(webkit_dom_test_interface_supplemental_method2):
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_method_that_requires_all_args_and_throws):
(webkit_dom_test_obj_method_with_exception):
(webkit_dom_test_obj_with_script_state_void_exception):
(webkit_dom_test_obj_with_script_state_obj_exception):
(webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
(webkit_dom_test_obj_strict_function):
(webkit_dom_test_obj_get_attr_with_getter_exception):
(webkit_dom_test_obj_set_attr_with_setter_exception):
(webkit_dom_test_obj_get_string_attr_with_getter_exception):
(webkit_dom_test_obj_set_string_attr_with_setter_exception):
(webkit_dom_test_obj_get_with_script_state_attribute_raises):
(webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
(webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
2012-12-09 Carlos Garcia Campos <cgarcia@igalia.com>
Fix the GError check in GObject DOM bindings.
Reviewed by Xan Lopez.
Previous commit introduced a check to make sure the passed GError
is valid in all DOM methods receiving an error.
* bindings/scripts/CodeGeneratorGObject.pm:
(GetGReturnMacro): Check that the passed GError either is NULL or
the pointer has been initialized to NULL.
2012-12-09 Leo Yang <leoyang@rim.com>
[BlackBerry] Adapt to name change of createNetworkBufferByCopyingData()
https://bugs.webkit.org/show_bug.cgi?id=104449
Reviewed by Rob Buis.
Name change no new tests.
* platform/network/blackberry/rss/RSSFilterStream.cpp:
(WebCore::RSSFilterStream::handleRSSContent):
2012-12-09 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Clean up g_return macros usage in GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=101079
Reviewed by Xan Lopez.
Several improvements:
- Move g_return macros at the beginning of the methods.
- Use them only to check parameters of public API.
- Use GObject macros to check GObjects.
- Check also GError parameters.
- Use early returns in kit and core methods, since they should
work even if g_return macros are disabled handling NULL
gracefully.
* bindings/scripts/CodeGeneratorGObject.pm:
(GetGReturnMacro):
(GenerateFunction):
(GenerateCFile):
(Generate):
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapFloat64Array):
(webkit_dom_float64array_foo):
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestActiveDOMObject):
(webkit_dom_test_active_dom_object_exciting_function):
(webkit_dom_test_active_dom_object_post_message):
(webkit_dom_test_active_dom_object_get_exciting_attr):
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestCallback):
(webkit_dom_test_callback_callback_with_no_param):
(webkit_dom_test_callback_callback_with_class1param):
(webkit_dom_test_callback_callback_with_class2param):
(webkit_dom_test_callback_callback_with_non_bool_return_type):
(webkit_dom_test_callback_callback_with_string_list):
(webkit_dom_test_callback_callback_with_boolean):
(webkit_dom_test_callback_callback_requires_this_to_pass):
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestCustomNamedGetter):
(webkit_dom_test_custom_named_getter_another_function):
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestEventConstructor):
(webkit_dom_test_event_constructor_get_attr1):
(webkit_dom_test_event_constructor_get_attr2):
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestEventTarget):
(webkit_dom_test_event_target_item):
(webkit_dom_test_event_target_dispatch_event):
* bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestException):
(webkit_dom_test_exception_get_name):
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestInterface):
(webkit_dom_test_interface_supplemental_method1):
(webkit_dom_test_interface_supplemental_method2):
(webkit_dom_test_interface_supplemental_method4):
(webkit_dom_test_interface_get_supplemental_str1):
(webkit_dom_test_interface_get_supplemental_str2):
(webkit_dom_test_interface_set_supplemental_str2):
(webkit_dom_test_interface_get_supplemental_node):
(webkit_dom_test_interface_set_supplemental_node):
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestMediaQueryListListener):
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestNamedConstructor):
* bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestNode):
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestObj):
(webkit_dom_test_obj_void_method):
(webkit_dom_test_obj_void_method_with_args):
(webkit_dom_test_obj_long_method):
(webkit_dom_test_obj_long_method_with_args):
(webkit_dom_test_obj_obj_method):
(webkit_dom_test_obj_obj_method_with_args):
(webkit_dom_test_obj_method_that_requires_all_args_and_throws):
(webkit_dom_test_obj_serialized_value):
(webkit_dom_test_obj_idb_key):
(webkit_dom_test_obj_options_object):
(webkit_dom_test_obj_method_with_exception):
(webkit_dom_test_obj_with_script_state_void):
(webkit_dom_test_obj_with_script_state_obj):
(webkit_dom_test_obj_with_script_state_void_exception):
(webkit_dom_test_obj_with_script_state_obj_exception):
(webkit_dom_test_obj_with_script_execution_context):
(webkit_dom_test_obj_with_script_execution_context_and_script_state):
(webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
(webkit_dom_test_obj_with_script_execution_context_and_script_state_with_spaces):
(webkit_dom_test_obj_method_with_optional_arg):
(webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg):
(webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args):
(webkit_dom_test_obj_method_with_optional_string):
(webkit_dom_test_obj_method_with_optional_string_is_undefined):
(webkit_dom_test_obj_method_with_optional_string_is_null_string):
(webkit_dom_test_obj_conditional_method1):
(webkit_dom_test_obj_conditional_method2):
(webkit_dom_test_obj_conditional_method3):
(webkit_dom_test_obj_class_method):
(webkit_dom_test_obj_class_method_with_optional):
(webkit_dom_test_obj_overloaded_method1):
(webkit_dom_test_obj_convert1):
(webkit_dom_test_obj_convert2):
(webkit_dom_test_obj_convert4):
(webkit_dom_test_obj_convert5):
(webkit_dom_test_obj_mutable_point_function):
(webkit_dom_test_obj_immutable_point_function):
(webkit_dom_test_obj_orange):
(webkit_dom_test_obj_strict_function):
(webkit_dom_test_obj_variadic_string_method):
(webkit_dom_test_obj_variadic_double_method):
(webkit_dom_test_obj_variadic_node_method):
(webkit_dom_test_obj_get_read_only_long_attr):
(webkit_dom_test_obj_get_read_only_string_attr):
(webkit_dom_test_obj_get_read_only_test_obj_attr):
(webkit_dom_test_obj_get_short_attr):
(webkit_dom_test_obj_set_short_attr):
(webkit_dom_test_obj_get_unsigned_short_attr):
(webkit_dom_test_obj_set_unsigned_short_attr):
(webkit_dom_test_obj_get_long_attr):
(webkit_dom_test_obj_set_long_attr):
(webkit_dom_test_obj_get_long_long_attr):
(webkit_dom_test_obj_set_long_long_attr):
(webkit_dom_test_obj_get_unsigned_long_long_attr):
(webkit_dom_test_obj_set_unsigned_long_long_attr):
(webkit_dom_test_obj_get_string_attr):
(webkit_dom_test_obj_set_string_attr):
(webkit_dom_test_obj_get_test_obj_attr):
(webkit_dom_test_obj_set_test_obj_attr):
(webkit_dom_test_obj_get_xml_obj_attr):
(webkit_dom_test_obj_set_xml_obj_attr):
(webkit_dom_test_obj_get_create):
(webkit_dom_test_obj_set_create):
(webkit_dom_test_obj_get_reflected_string_attr):
(webkit_dom_test_obj_set_reflected_string_attr):
(webkit_dom_test_obj_get_reflected_integral_attr):
(webkit_dom_test_obj_set_reflected_integral_attr):
(webkit_dom_test_obj_get_reflected_unsigned_integral_attr):
(webkit_dom_test_obj_set_reflected_unsigned_integral_attr):
(webkit_dom_test_obj_get_reflected_boolean_attr):
(webkit_dom_test_obj_set_reflected_boolean_attr):
(webkit_dom_test_obj_get_reflected_url_attr):
(webkit_dom_test_obj_set_reflected_url_attr):
(webkit_dom_test_obj_get_reflected_custom_integral_attr):
(webkit_dom_test_obj_set_reflected_custom_integral_attr):
(webkit_dom_test_obj_get_reflected_custom_boolean_attr):
(webkit_dom_test_obj_set_reflected_custom_boolean_attr):
(webkit_dom_test_obj_get_reflected_custom_url_attr):
(webkit_dom_test_obj_set_reflected_custom_url_attr):
(webkit_dom_test_obj_get_attr_with_getter_exception):
(webkit_dom_test_obj_set_attr_with_getter_exception):
(webkit_dom_test_obj_get_attr_with_setter_exception):
(webkit_dom_test_obj_set_attr_with_setter_exception):
(webkit_dom_test_obj_get_string_attr_with_getter_exception):
(webkit_dom_test_obj_set_string_attr_with_getter_exception):
(webkit_dom_test_obj_get_string_attr_with_setter_exception):
(webkit_dom_test_obj_set_string_attr_with_setter_exception):
(webkit_dom_test_obj_get_with_script_state_attribute):
(webkit_dom_test_obj_set_with_script_state_attribute):
(webkit_dom_test_obj_get_with_script_execution_context_attribute):
(webkit_dom_test_obj_set_with_script_execution_context_attribute):
(webkit_dom_test_obj_get_with_script_state_attribute_raises):
(webkit_dom_test_obj_set_with_script_state_attribute_raises):
(webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
(webkit_dom_test_obj_set_with_script_execution_context_attribute_raises):
(webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute):
(webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute):
(webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
(webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises):
(webkit_dom_test_obj_get_with_script_execution_context_and_script_state_with_spaces_attribute):
(webkit_dom_test_obj_set_with_script_execution_context_and_script_state_with_spaces_attribute):
(webkit_dom_test_obj_get_conditional_attr1):
(webkit_dom_test_obj_set_conditional_attr1):
(webkit_dom_test_obj_get_conditional_attr2):
(webkit_dom_test_obj_set_conditional_attr2):
(webkit_dom_test_obj_get_conditional_attr3):
(webkit_dom_test_obj_set_conditional_attr3):
(webkit_dom_test_obj_get_any_attribute):
(webkit_dom_test_obj_set_any_attribute):
(webkit_dom_test_obj_get_content_document):
(webkit_dom_test_obj_get_mutable_point):
(webkit_dom_test_obj_set_mutable_point):
(webkit_dom_test_obj_get_immutable_point):
(webkit_dom_test_obj_set_immutable_point):
(webkit_dom_test_obj_get_strawberry):
(webkit_dom_test_obj_set_strawberry):
(webkit_dom_test_obj_get_strict_float):
(webkit_dom_test_obj_set_strict_float):
(webkit_dom_test_obj_get_description):
(webkit_dom_test_obj_get_id):
(webkit_dom_test_obj_set_id):
(webkit_dom_test_obj_get_hash):
(webkit_dom_test_obj_get_replaceable_attribute):
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestSerializedScriptValueInterface):
(webkit_dom_test_serialized_script_value_interface_accept_transfer_list):
(webkit_dom_test_serialized_script_value_interface_multi_transfer_list):
(webkit_dom_test_serialized_script_value_interface_get_value):
(webkit_dom_test_serialized_script_value_interface_set_value):
(webkit_dom_test_serialized_script_value_interface_get_readonly_value):
(webkit_dom_test_serialized_script_value_interface_get_cached_value):
(webkit_dom_test_serialized_script_value_interface_set_cached_value):
(webkit_dom_test_serialized_script_value_interface_get_ports):
(webkit_dom_test_serialized_script_value_interface_get_cached_readonly_value):
2012-12-09 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Use a private struct and placement new syntax in GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=101074
Reviewed by Xan Lopez.
It allows to use RefPtr for the wrapped object and it simplifies
the code. Only the classes deriving from WebKitDOMObject keep a
reference of the wrapped object in a private struct. The wrapped
object is added to the cache in GObjectClass::constructor() and
removed in GObjectClass::finalize().
* bindings/gobject/WebKitDOMBinding.cpp:
(WebKit::createWrapper):
(WebKit::kit):
(WebKit::wrapEventTarget):
* bindings/scripts/CodeGeneratorGObject.pm:
(GetParentImplClassName):
(GenerateProperties):
(GenerateCFile):
(Generate):
(WriteData):
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapFloat64Array):
(webkit_dom_float64array_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
(_WebKitDOMTestActiveDOMObjectPrivate):
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestActiveDOMObject):
(webkit_dom_test_active_dom_object_finalize):
(webkit_dom_test_active_dom_object_constructor):
(webkit_dom_test_active_dom_object_class_init):
(webkit_dom_test_active_dom_object_init):
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
(_WebKitDOMTestCallbackPrivate):
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestCallback):
(webkit_dom_test_callback_finalize):
(webkit_dom_test_callback_constructor):
(webkit_dom_test_callback_class_init):
(webkit_dom_test_callback_init):
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
(_WebKitDOMTestCustomNamedGetterPrivate):
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestCustomNamedGetter):
(webkit_dom_test_custom_named_getter_finalize):
(webkit_dom_test_custom_named_getter_constructor):
(webkit_dom_test_custom_named_getter_class_init):
(webkit_dom_test_custom_named_getter_init):
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
(_WebKitDOMTestEventConstructorPrivate):
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestEventConstructor):
(webkit_dom_test_event_constructor_finalize):
(webkit_dom_test_event_constructor_constructor):
(webkit_dom_test_event_constructor_class_init):
(webkit_dom_test_event_constructor_init):
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
(_WebKitDOMTestEventTargetPrivate):
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestEventTarget):
(webkit_dom_test_event_target_finalize):
(webkit_dom_test_event_target_constructor):
(webkit_dom_test_event_target_class_init):
(webkit_dom_test_event_target_init):
* bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
(_WebKitDOMTestExceptionPrivate):
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestException):
(webkit_dom_test_exception_finalize):
(webkit_dom_test_exception_constructor):
(webkit_dom_test_exception_class_init):
(webkit_dom_test_exception_init):
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
(_WebKitDOMTestInterfacePrivate):
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestInterface):
(webkit_dom_test_interface_finalize):
(webkit_dom_test_interface_constructor):
(webkit_dom_test_interface_class_init):
(webkit_dom_test_interface_init):
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
(_WebKitDOMTestMediaQueryListListenerPrivate):
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestMediaQueryListListener):
(webkit_dom_test_media_query_list_listener_finalize):
(webkit_dom_test_media_query_list_listener_constructor):
(webkit_dom_test_media_query_list_listener_class_init):
(webkit_dom_test_media_query_list_listener_init):
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
(_WebKitDOMTestNamedConstructorPrivate):
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestNamedConstructor):
(webkit_dom_test_named_constructor_finalize):
(webkit_dom_test_named_constructor_constructor):
(webkit_dom_test_named_constructor_class_init):
(webkit_dom_test_named_constructor_init):
* bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestNode):
(webkit_dom_test_node_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(_WebKitDOMTestObjPrivate):
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestObj):
(webkit_dom_test_obj_finalize):
(webkit_dom_test_obj_constructor):
(webkit_dom_test_obj_class_init):
(webkit_dom_test_obj_init):
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
(_WebKitDOMTestOverloadedConstructorsPrivate):
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestOverloadedConstructors):
(webkit_dom_test_overloaded_constructors_finalize):
(webkit_dom_test_overloaded_constructors_constructor):
(webkit_dom_test_overloaded_constructors_class_init):
(webkit_dom_test_overloaded_constructors_init):
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
(_WebKitDOMTestSerializedScriptValueInterfacePrivate):
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestSerializedScriptValueInterface):
(webkit_dom_test_serialized_script_value_interface_finalize):
(webkit_dom_test_serialized_script_value_interface_constructor):
(webkit_dom_test_serialized_script_value_interface_class_init):
(webkit_dom_test_serialized_script_value_interface_init):
2012-12-09 Jon Lee <jonlee@apple.com>
[WK2] Move button image to injected bundle
https://bugs.webkit.org/show_bug.cgi?id=104107
<rdar://problem/12813842>
Reviewed by Simon Fraser.
Update RenderSnapshottedPlugIn to retrieve the start button image from the ChromeClient. Expand the
kinds of images available for use as the button. Try to find the best sized button to use for the plug-in,
otherwise use no image at all.
* rendering/RenderSnapshottedPlugIn.h: Add an enum representing the size to use. Remove the label rect
variable since it is unneeded.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::startLabelImage): Maintain a cache of the images for reuse. Index into the
array using the enum. If the image has been loaded, or an attempt was made, then return the result. Otherwise
ask the chrome client for the image.
(WebCore::RenderSnapshottedPlugIn::paintLabel): Determine the proper label to use, and paint if the image is
available.
(WebCore::RenderSnapshottedPlugIn::tryToFitStartLabel): Compare the label size with the provided content
box. Return a LayoutRect representing the label's placement. If it doesn't fit, return an empty rect.
(WebCore::RenderSnapshottedPlugIn::layout): The rect is not needed because it is all determined at paint time.
* page/ChromeClient.h:
(WebCore::ChromeClient::plugInStartLabelImage): Added.
* WebCore.exp.in: Expose GraphicsContext::drawNativeImage() for WKImageCG.cpp.
* WebCore.xcodeproj/project.pbxproj: Remove start button assets.
* Resources/startButton.png: Removed.
* Resources/startButton@2x.png: Removed.
2012-12-09 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r137053.
http://trac.webkit.org/changeset/137053
https://bugs.webkit.org/show_bug.cgi?id=104471
Broke PerformanceTests/Parser/html-parser.html (Requested by
mkwst_ on #webkit).
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::canExecuteScripts):
2012-12-09 Kangil Han <kangil.han@samsung.com>
Fix unused parameter compile warnings
https://bugs.webkit.org/show_bug.cgi?id=104463
Reviewed by Kentaro Hara.
Remove compile warning messages by omitting parameter name.
* platform/graphics/surfaces/GraphicsSurface.cpp:
(WebCore::GraphicsSurface::GraphicsSurface):
2012-12-08 Rakesh KN <rakeshchaitan@gmail.com>
Build break if SVG is disabled
https://bugs.webkit.org/show_bug.cgi?id=104452
Reviewed by Darin Adler.
Build breaking after r136975 if SVG is disabled.
No new tests required.
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::buildReferenceFilter):
As document is not an argument anymore, removing UNUSED_PARAM against it.
* rendering/FilterEffectRenderer.h:
Added forward declaration for RenderObject.
2012-12-08 Mike West <mkwst@chromium.org>
Log to console when script is blocked by sandbox attributes.
https://bugs.webkit.org/show_bug.cgi?id=104365
Reviewed by Ojan Vafai.
Adds a console message to cover script execution blocked within the
context of a sandboxed frame which lacks the 'allow-scripts' permission.
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::canExecuteScripts):
Log a warning when sandboxing flags block script execution.
2012-12-08 No'am Rosenthal <noam@webkit.org>
Use background color for GraphicsLayers when applicable
https://bugs.webkit.org/show_bug.cgi?id=103786
Updated RenderLayerBacking to call GraphicsLayer::setContentsToBackgroundColor when the following conditions take place:
1. The layer doesn't paint its own content, other than background/decoration.
2. There are no borders or other box decorations (border radius, borders, outline, shadow etc.)
3. The image has only a background color, and no background image.
4. background-composite is set to source-over, and background-clip is anything apart from text.
5. The port supports setContentsToBackgroundColor.
This allows any implementation of GraphicsLayer that supports setContentsToBackgroundColor to avoid allocating a backing store
for that layer, but instead draw that solid color directly.
In addition to setting the background color, the layer's contentsRect needs to be adjusted, since the default contents rect of
a layer is not always equivalent to the rect where the background is supposed to be painted, which is derived from the box's
background-clip property.
Reviewed by Simon Fraser.
Tests: compositing/background-color/background-color-alpha.html
compositing/background-color/background-color-change-to-text.html
compositing/background-color/background-color-composite.html
compositing/background-color/background-color-container.html
compositing/background-color/background-color-content-clip.html
compositing/background-color/background-color-padding-change.html
compositing/background-color/background-color-padding-clip.html
compositing/background-color/background-color-simple.html
compositing/background-color/background-color-text-change.html
compositing/background-color/background-color-text-clip.html
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::supportsBackgroundColorContent):
Allows different implementation of GraphicsLayer to identify whether they implement setContentsToBackgroundColor.
Currently only the MAC implementation and TextureMapper falls under that category.
* rendering/RenderBox.h:
(WebCore::RenderBox::paddingBoxRect):
Added paddingBoxRect to compliment borderBoxRect and contentsBoxRect. paddingBoxRect corresponds to
background-clip: padding.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
Update the background color if needed, for every configuration change.
This should accomodate the old behavior for full-screen, while enabling background color changes for other layers.
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
Move the contentsRect logic to updateContentsRect.
(WebCore::RenderLayerBacking::updateContentsRect):
Use the background box when directly compositing backgrounds.
(WebCore::RenderLayerBacking::updateBackgroundColor):
Set the background color if applicable, otherwise set to trasnparent and clear.
This was not needed in the past because background colors were only used for the special case of full-screen.
(WebCore::supportsDirectBoxDecorationsComposition):
Helper function to determine whether a particular background can be directly composited. Right now only
background color can be composited, and only if the GraphicsLayer implementation supports background colors.
Also we don't yet support background-clip: text and any background-composite other than source-over.
(WebCore::RenderLayerBacking::paintsBoxDecorations):
Apply the new supportsDirectBoxDecorationsComposition logic.
(WebCore::RenderLayerBacking::contentsBox):
Remove unnecessary local variable.
(WebCore::backgroundRectForBox):
(WebCore::RenderLayerBacking::backgroundBox):
Figure out the correct rect for the GraphicsLayer's contentsRect, based on the renderer's backgroundClip.
The rectangle has to be adjusted based on the composited layer offset, and snapped to an IntRect as
GraphicsLayer::contentsRect expects snapped pixels.
2012-12-08 Patrick Gansterer <paroga@webkit.org>
Build fix for WinCE after r137011.
* platform/graphics/GraphicsContext.h:
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
(WebCore::GraphicsContext::drawBitmap):
* platform/graphics/wince/ImageBufferWinCE.cpp:
(WebCore::BufferedImage::draw):
(WebCore::ImageBuffer::draw):
* platform/graphics/wince/ImageWinCE.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
(WebCore::BitmapImage::draw):
* platform/graphics/wince/SharedBitmap.cpp:
(WebCore::SharedBitmap::draw):
* platform/graphics/wince/SharedBitmap.h:
2012-12-08 Gavin Peters <gavinp@chromium.org>
Add status events on <link rel=prerender> elements.
https://bugs.webkit.org/show_bug.cgi?id=96474
Reviewed by Adam Barth.
The new PrerenderStatusEvent is sent to link elements when
prerenders are started by the embedder, and also sent when they
are stopped. Pages using this feature can now serialize launching
prerenders, and track timing performance.
Tested in a new WebKitUnitTest for the chromium port.
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/EventNames.h:
(WebCore):
* html/HTMLLinkElement.cpp:
(WebCore):
(WebCore::HTMLLinkElement::didStartLinkPrerender):
(WebCore::HTMLLinkElement::didStopLinkPrerender):
(WebCore::HTMLLinkElement::didSendLoadForLinkPrerender):
(WebCore::HTMLLinkElement::didSendDOMContentLoadedForLinkPrerender):
* html/HTMLLinkElement.h:
(HTMLLinkElement):
* loader/LinkLoader.cpp:
(WebCore::LinkLoader::didStartPrerender):
(WebCore):
(WebCore::LinkLoader::didStopPrerender):
(WebCore::LinkLoader::didSendLoadForPrerender):
(WebCore::LinkLoader::didSendDOMContentLoadedForPrerender):
(WebCore::LinkLoader::loadLink):
* loader/LinkLoader.h:
(LinkLoader):
* loader/LinkLoaderClient.h:
(LinkLoaderClient):
* loader/Prerenderer.cpp:
(WebCore::Prerenderer::render):
* loader/Prerenderer.h:
(WebCore):
(Prerenderer):
* platform/PrerenderClient.h: Copied from Source/WebCore/loader/LinkLoaderClient.h.
(WebCore):
(PrerenderClient):
(WebCore::PrerenderClient::~PrerenderClient):
* platform/PrerenderHandle.h:
(WebCore):
(PrerenderHandle):
* platform/chromium/Prerender.cpp:
(WebCore::Prerender::Prerender):
(WebCore::Prerender::removeClient):
(WebCore):
(WebCore::Prerender::add):
(WebCore::Prerender::cancel):
(WebCore::Prerender::abandon):
(WebCore::Prerender::didStartPrerender):
(WebCore::Prerender::didStopPrerender):
(WebCore::Prerender::didSendLoadForPrerender):
(WebCore::Prerender::didSendDOMContentLoadedForPrerender):
* platform/chromium/Prerender.h:
(WebKit):
(WebCore):
(Prerender):
* platform/chromium/PrerenderHandle.cpp:
(WebCore::PrerenderHandle::create):
(WebCore::PrerenderHandle::PrerenderHandle):
(WebCore::PrerenderHandle::~PrerenderHandle):
(WebCore::PrerenderHandle::removeClient):
(WebCore):
* platform/chromium/support/WebPrerender.cpp:
(WebKit::WebPrerender::toPrerender):
(WebKit):
(WebKit::WebPrerender::assign):
(WebKit::WebPrerender::isNull):
(WebKit::WebPrerender::didStartPrerender):
(WebKit::WebPrerender::didStopPrerender):
(WebKit::WebPrerender::didSendLoadForPrerender):
(WebKit::WebPrerender::didSendDOMContentLoadedForPrerender):
2012-12-08 Gustavo Noronha Silva <gns@gnome.org>
Reviewed by Martin Robinson.
Update the Chromium/Chrome version we advertise in our User-Agent
string to version 25, to better match our current reality.
* platform/gtk/UserAgentGtk.cpp:
(WebCore::standardUserAgent):
2012-12-08 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r137006.
http://trac.webkit.org/changeset/137006
https://bugs.webkit.org/show_bug.cgi?id=104446
Broke plugin painting on Mac (youtube, etc.) (Requested by
thorton_ on #webkit).
* platform/graphics/GraphicsLayer.h:
(GraphicsLayer):
* rendering/RenderBox.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
(WebCore::clipBox):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::updateDrawsContent):
(WebCore::RenderLayerBacking::updateBackgroundColor):
(WebCore::RenderLayerBacking::paintsBoxDecorations):
(WebCore::RenderLayerBacking::contentChanged):
(WebCore::RenderLayerBacking::updateImageContents):
(WebCore::RenderLayerBacking::contentsBox):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
2012-12-08 Wei James <james.wei@intel.com>
Remove incorrect ASSERT for m_error in CachedResource
https://bugs.webkit.org/show_bug.cgi?id=104333
Reviewed by Nate Chapin.
This assertion was brought in https://bugs.webkit.org/show_bug.cgi?id=100901
When the request is canceled, m_error.isNull() should be true.
run webkit_unit_tests Debug build.
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::stopLoading):
2012-12-08 Ryosuke Niwa <rniwa@webkit.org>
Qt Linux Minimal build fix after r136975.
* dom/ElementRareData.h:
(ElementRareData):
2012-12-08 Ryosuke Niwa <rniwa@webkit.org>
Qt Linux Minimal build fix attempt after r136959.
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::layerTreeDidChange):
(WebCore::InspectorInstrumentation::renderLayerDestroyed):
2012-12-08 Xan Lopez <xlopez@igalia.com>
Build fix after r137003. Wrap Microdata only sections with ENABLE(MICRODATA).
* dom/NodeRareData.h:
(NodeRareData):
2012-12-08 Ryosuke Niwa <rniwa@webkit.org>
Build fix after r137003. Wrap NodeMutationObserverData with ENABLE(MUTATION_OBSERVERS).
* dom/NodeRareData.h:
(NodeRareData):
2012-12-08 Patrick Gansterer <paroga@webkit.org>
Build fix for ENABLE(SVG) && !ENABLE(FILTERS) after r136975.
* rendering/svg/SVGResources.cpp:
(WebCore::SVGResources::buildCachedResources):
2012-12-08 Adam Klein <adamk@chromium.org>
HTMLTemplateElement.innerHTML should be parsed into the template contents owner document
https://bugs.webkit.org/show_bug.cgi?id=104407
Reviewed by Eric Seidel.
When parsing via innerHTML, ensure that all operations (including the
initial fragment creation) occur in the proper document to avoid,
e.g., images loading while being parsed into the template contents.
This matches the parsing behavior during page load.
Test: fast/dom/HTMLTemplateElement/innerHTML-inert.html
* editing/markup.cpp:
(WebCore::createFragmentForInnerOuterHTML):
2012-12-08 ChangSeok Oh <shivamidow@gmail.com>
Assertion failed at WebCore::RedirectedXCompositeWindow::context()
https://bugs.webkit.org/show_bug.cgi?id=104349
Reviewed by Martin Robinson.
We should return GLContext if m_needsContext is CreateGLContext. By the way
CreateGLContext is a enum value and its default value is 0. So checking
ASSERT(m_needsContext) causes a crash on debug build.
ASSERT(m_needsContext == CreateGLContext) is better here.
No new tests since we can verify this with already existing AC tests.
* platform/gtk/RedirectedXCompositeWindow.cpp:
(WebCore::RedirectedXCompositeWindow::context):
2012-12-07 Rik Cabanier <cabanier@adobe.com>
Extend platform layer so it can pass blend modes to the compositing calls
https://bugs.webkit.org/show_bug.cgi?id=104176
Reviewed by Dirk Schulze.
Adding blend mode enumeration to drawImage functions + stored blendmode in graphics context
No new tests, no new functionality.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::paint):
* platform/graphics/BitmapImage.h:
* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::draw):
* platform/graphics/CrossfadeGeneratedImage.h:
(CrossfadeGeneratedImage):
* platform/graphics/GeneratedImage.h:
(GeneratedImage):
* platform/graphics/GeneratorGeneratedImage.cpp:
(WebCore::GeneratorGeneratedImage::draw):
* platform/graphics/GeneratorGeneratedImage.h:
(GeneratorGeneratedImage):
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage):
(WebCore):
(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::setCompositeOperation):
* platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContextState::GraphicsContextState):
(GraphicsContextState):
(GraphicsContext):
* platform/graphics/Image.cpp:
(WebCore::Image::draw):
(WebCore::Image::drawTiled):
* platform/graphics/Image.h:
(Image):
* platform/graphics/ImageBuffer.h:
(ImageBuffer):
* platform/graphics/cairo/BitmapImageCairo.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::draw):
* platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::draw):
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::draw):
* platform/graphics/cg/PDFDocumentImage.h:
(PDFDocumentImage):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/qt/ImageBufferQt.cpp:
(WebCore::ImageBuffer::draw):
* platform/graphics/qt/ImageQt.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/qt/StillImageQt.cpp:
(WebCore::StillImage::draw):
* platform/graphics/qt/StillImageQt.h:
(StillImage):
* platform/graphics/skia/BitmapImageSingleFrameSkia.h:
(BitmapImageSingleFrameSkia):
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::ImageBuffer::draw):
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::BitmapImage::draw):
(WebCore::BitmapImageSingleFrameSkia::draw):
* platform/graphics/win/ImageCGWin.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawSVGToImageBuffer):
(WebCore::SVGImage::draw):
(WebCore::SVGImage::nativeImageForCurrentFrame):
* svg/graphics/SVGImage.h:
(SVGImage):
2012-12-07 Alpha Lam <hclam@chromium.org>
[chromium] ImageDecodingStore should cache partially decoded images
https://bugs.webkit.org/show_bug.cgi?id=103796
Reviewed by Stephen White.
Implement caching for incomplete images, meaning the image is partially
decoded. The image is cached together with partially decoded ImageDecoder.
This allows decoding to resume in a later time.
Caching logic for incomplete images is implemented in ImageDecodingStore.
Logic for resuming image decoding is implemented in ImageFrameGenerator.
ImageDecodingStore allows storing incomplete image with the decoder.
The cache entry can be used in a later time to read and write (i.e. resume
decoding.) To avoid the same entry being written and read at the same time,
an incomplete entry can be used by one user only. Concurrent access to
an incomplete entry should never happen and is checked by an assert.
An entry can becomes complete when decoding is finished. In this case
the associated decoder is deleted. Once an entry becomes complete concurrent
read is allowed.
ImageFrameGenerator performs the logic to resume image decoding. It
performs the following operations in sequence:
- Try to lookup a complete image
- Try to perform scaling on a complete image
- Try to lookup an incomplete image and resume decoding & scaling
- Everything fails, start decoding from scratch
The entire sequence of operations in under a mutex, hence there will be
no more than 1 user of an incomplete cache entry at the same time.
New unit tests in ImageDecodingStoreTest and ImageFrameGeneratorTest.
* platform/graphics/chromium/ImageDecodingStore.cpp:
(WebCore::ImageDecodingStore::lockCache):
Change of method definition to return an image and ImageDecoder.
(WebCore::ImageDecodingStore::unlockCache):
(WebCore::ImageDecodingStore::insertAndLockCache):
(WebCore::ImageDecodingStore::overwriteAndLockCache):
New method to allow an incomplete cache entry be overwritten.
(WebCore):
* platform/graphics/chromium/ImageDecodingStore.h:
(ImageDecodingStore):
(WebCore::ImageDecodingStore::CacheEntry::createAndUse):
(WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
(WebCore::ImageDecodingStore::CacheEntry::cachedImage):
(WebCore::ImageDecodingStore::CacheEntry::cachedDecoder):
(WebCore::ImageDecodingStore::CacheEntry::releaseCachedDecoder):
(WebCore::ImageDecodingStore::CacheEntry::overwriteCachedImage):
New method to allow an incomplete image be overwitten.
(CacheEntry):
* platform/graphics/chromium/ImageFrameGenerator.cpp:
(WebCore::ImageFrameGenerator::ImageFrameGenerator):
(WebCore::ImageFrameGenerator::decodeAndScale):
(WebCore::ImageFrameGenerator::tryToLockCompleteCache):
(WebCore::ImageFrameGenerator::tryToScale):
(WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
New method to lookup an incomplete cache entry and resume decoding.
(WebCore):
(WebCore::ImageFrameGenerator::tryToDecodeAndScale):
(WebCore::ImageFrameGenerator::decoder):
New helper method to do decoding for a full sized image.
(WebCore::ImageFrameGenerator::prepareData):
New helper method to prepare data safely.
* platform/graphics/chromium/ImageFrameGenerator.h:
(ImageFrameGenerator):
* platform/graphics/chromium/LazyDecodingPixelRef.cpp:
(WebCore::LazyDecodingPixelRef::onLockPixels):
* platform/graphics/chromium/ScaledImageFragment.h:
(WebCore::ScaledImageFragment::setIsComplete):
2012-12-07 Alexis Menard <alexis@webkit.org>
Enable CSS3 position offset for CSS Masking.
https://bugs.webkit.org/show_bug.cgi?id=104252
Reviewed by Dirk Schulze.
To follow CSS3 background-position, mask-position should also support
the new <position> type (http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html#mask-property).
Now the code is shared between background and mask I renamed the
functions used to be more generic. Note that the feature flag is not
meant to stay and will be removed in a following commit.
No new tests : I modified LayoutTests/fast/masking/parsing-mask.html to
cover the new feature.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::createPositionListForLayer):
* css/CSSParser.cpp:
(WebCore::isFillPositionKeyword):
(WebCore::CSSParser::parse4ValuesFillPosition):
(WebCore::CSSParser::parse3ValuesFillPosition):
(WebCore::CSSParser::isPotentialPositionValue):
(WebCore::CSSParser::parseFillPosition):
(WebCore::CSSParser::parse2ValuesFillPosition):
(WebCore::CSSParser::parseFillProperty):
(WebCore::CSSParser::parseTransformOriginShorthand):
(WebCore::CSSParser::parseRadialGradient):
(WebCore::CSSParser::parsePerspectiveOrigin):
* css/CSSParser.h:
* css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapFillXPosition):
(WebCore::CSSToStyleMap::mapFillYPosition):
2012-12-07 No'am Rosenthal <noam@webkit.org>
Use background color for GraphicsLayers when applicable
https://bugs.webkit.org/show_bug.cgi?id=103786
Updated RenderLayerBacking to call GraphicsLayer::setContentsToBackgroundColor when the following conditions take place:
1. The layer doesn't paint its own content, other than background/decoration.
2. There are no borders or other box decorations (border radius, borders, outline, shadow etc.)
3. The image has only a background color, and no background image.
4. background-composite is set to source-over, and background-clip is anything apart from text.
5. The port supports setContentsToBackgroundColor.
This allows any implementation of GraphicsLayer that supports setContentsToBackgroundColor to avoid allocating a backing store
for that layer, but instead draw that solid color directly.
In addition to setting the background color, the layer's contentsRect needs to be adjusted, since the default contents rect of
a layer is not always equivalent to the rect where the background is supposed to be painted, which is derived from the box's
background-clip property.
Reviewed by Simon Fraser.
Tests: compositing/background-color/background-color-alpha.html
compositing/background-color/background-color-change-to-text.html
compositing/background-color/background-color-composite.html
compositing/background-color/background-color-container.html
compositing/background-color/background-color-content-clip.html
compositing/background-color/background-color-padding-change.html
compositing/background-color/background-color-padding-clip.html
compositing/background-color/background-color-simple.html
compositing/background-color/background-color-text-change.html
compositing/background-color/background-color-text-clip.html
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::supportsBackgroundColorContent):
Allows different implementation of GraphicsLayer to identify whether they implement setContentsToBackgroundColor.
Currently only the MAC implementation and TextureMapper falls under that category.
* rendering/RenderBox.h:
(WebCore::RenderBox::paddingBoxRect):
Added paddingBoxRect to compliment borderBoxRect and contentsBoxRect. paddingBoxRect corresponds to
background-clip: padding.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
Update the background color if needed, for every configuration change.
This should accomodate the old behavior for full-screen, while enabling background color changes for other layers.
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
Move the contentsRect logic to updateContentsRect.
(WebCore::RenderLayerBacking::updateContentsRect):
Use the background box when directly compositing backgrounds.
(WebCore::RenderLayerBacking::updateBackgroundColor):
Set the background color if applicable, otherwise set to trasnparent and clear.
This was not needed in the past because background colors were only used for the special case of full-screen.
(WebCore::supportsDirectBoxDecorationsComposition):
Helper function to determine whether a particular background can be directly composited. Right now only
background color can be composited, and only if the GraphicsLayer implementation supports background colors.
Also we don't yet support background-clip: text and any background-composite other than source-over.
(WebCore::RenderLayerBacking::paintsBoxDecorations):
Apply the new supportsDirectBoxDecorationsComposition logic.
(WebCore::RenderLayerBacking::contentsBox):
Remove unnecessary local variable.
(WebCore::backgroundRectForBox):
(WebCore::RenderLayerBacking::backgroundBox):
Figure out the correct rect for the GraphicsLayer's contentsRect, based on the renderer's backgroundClip.
The rectangle has to be adjusted based on the composited layer offset, and snapped to an IntRect as
GraphicsLayer::contentsRect expects snapped pixels.
2012-12-06 Ryosuke Niwa <rniwa@webkit.org>
Shrink the size of NodeRareData by moving pointers into separate objects
https://bugs.webkit.org/show_bug.cgi?id=104312
Reviewed by Andreas Kling.
This patch does three things:
1. Move ChildNodeList back into NodeListsNodeData.
2. Move m_mutationObserverRegistry & m_transientMutationObserverRegistry into a separate object owned by NodeRareData.
3. Move m_itemProp, m_itemRef, m_itemType & into a separate object owned by NodeRareData.
Moving m_childNodeList from NodeRareData to NodeListsNodeData also has a nice side-effect of making ChildNodeList
behave more like other LiveNodeLists.
This patch also fixes Mac build when microdata is enabled.
There should be no user-visible behavior change.
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::~ChildNodeList):
* dom/Node.cpp:
(WebCore::Node::childNodes): Moved the code to create ChildNodeList into NodeListsNodeData to match other node lists.
(WebCore::Node::invalidateNodeListCachesInAncestors):
(WebCore): Removed removeCachedChildNodeList.
* dom/Node.h:
(Node):
* dom/NodeRareData.cpp:
(WebCore): Assert the size of NodeRareData at compilation time.
(WebCore::NodeListsNodeData::reportMemoryUsage):
(WebCore::NodeRareData::reportMemoryUsage):
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::clearChildNodeListCache): Moved from NodeRareData.
(WebCore::NodeListsNodeData::ensureChildNodeList): Extracted from Node::childNodes.
(WebCore::NodeListsNodeData::removeChildNodeList): Added.
(WebCore::NodeListsNodeData::NodeListsNodeData): Initialize m_childNodeList.
(WebCore::NodeRareData::NodeMutationObserverData): Extracted from NodeRareData.
(WebCore::NodeRareData::NodeMutationObserverData::create):
(WebCore::NodeRareData::NodeMicroDataTokenLists): Ditto.
(WebCore::NodeRareData::NodeMicroDataTokenLists::create):
(WebCore::NodeRareData::NodeRareData):
(WebCore::NodeRareData::ensureNodeLists): Merged setNodeLists since it's not called elsewhere.
(WebCore::NodeRareData::mutationObserverRegistry):
(WebCore::NodeRareData::ensureMutationObserverRegistry): Added.
(WebCore::NodeRareData::transientMutationObserverRegistry):
(WebCore::NodeRareData::ensureTransientMutationObserverRegistry):
(WebCore::NodeRareData::ensureMicroDataTokenLists):
(NodeRareData):
(WebCore::NodeRareData::itemProp):
(WebCore::NodeRareData::setItemProp):
(WebCore::NodeRareData::itemRef):
(WebCore::NodeRareData::setItemRef):
(WebCore::NodeRareData::itemType):
(WebCore::NodeRareData::setItemType):
* html/HTMLPropertiesCollection.cpp:
(WebCore::HTMLPropertiesCollection::propertyNodeList): Renamed from namedItem since its return type, PropertyNodeList,
is different from that, Node, of LiveNodeList::namedItem. It was shadowing the function name instead of overriding.
* html/HTMLPropertiesCollection.h:
(HTMLPropertiesCollection):
* html/HTMLPropertiesCollection.idl:
2012-12-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136993.
http://trac.webkit.org/changeset/136993
https://bugs.webkit.org/show_bug.cgi?id=104415
This patch breaks the mac build (Requested by cabanier on
#webkit).
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::paint):
* platform/graphics/BitmapImage.h:
* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::draw):
* platform/graphics/CrossfadeGeneratedImage.h:
(CrossfadeGeneratedImage):
* platform/graphics/GeneratedImage.h:
(GeneratedImage):
* platform/graphics/GeneratorGeneratedImage.cpp:
(WebCore::GeneratorGeneratedImage::draw):
* platform/graphics/GeneratorGeneratedImage.h:
(GeneratorGeneratedImage):
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::setCompositeOperation):
* platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContextState::GraphicsContextState):
(GraphicsContextState):
(GraphicsContext):
* platform/graphics/Image.cpp:
(WebCore::Image::draw):
(WebCore::Image::drawTiled):
* platform/graphics/Image.h:
(Image):
* platform/graphics/ImageBuffer.h:
(ImageBuffer):
* platform/graphics/cairo/BitmapImageCairo.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::draw):
* platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::draw):
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::draw):
* platform/graphics/cg/PDFDocumentImage.h:
(PDFDocumentImage):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/qt/ImageBufferQt.cpp:
(WebCore::ImageBuffer::draw):
* platform/graphics/qt/ImageQt.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/qt/StillImageQt.cpp:
(WebCore::StillImage::draw):
* platform/graphics/qt/StillImageQt.h:
(StillImage):
* platform/graphics/skia/BitmapImageSingleFrameSkia.h:
(BitmapImageSingleFrameSkia):
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::ImageBuffer::draw):
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::BitmapImage::draw):
(WebCore::BitmapImageSingleFrameSkia::draw):
* platform/graphics/win/ImageCGWin.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawSVGToImageBuffer):
(WebCore::SVGImage::draw):
(WebCore::SVGImage::nativeImageForCurrentFrame):
* svg/graphics/SVGImage.h:
(SVGImage):
2012-12-07 Alexey Proskuryakov <ap@apple.com>
There is no need to change cached resource storage policy through ResourceHandleClient
https://bugs.webkit.org/show_bug.cgi?id=104413
Reviewed by Brady Eidson.
This code was only needed to prevent storing responses to disk in private browsing
mode, but we now have a storage session to take care of that in a cleaner and more
reliable way.
* loader/ResourceLoader.cpp:
* loader/ResourceLoader.h: (WebCore::ResourceLoader::receivedCancellation):
* platform/network/ResourceHandleClient.h:
* platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::willCacheResponse):
* platform/network/mac/ResourceHandleMac.mm:
(-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
2012-12-07 Adam Klein <adamk@chromium.org>
MutationRecord addedNodes/removedNodes should never be null
https://bugs.webkit.org/show_bug.cgi?id=98921
Reviewed by Ryosuke Niwa.
Per an update to the DOM4 spec that matches Gecko's behavior,
addedNodes/removedNodes should be empty NodeLists on 'attributes'
and 'characterData' records, rather than null.
This is accomplished with lazy initialization of addedNodes/removedNodes
attributes on 'attributes'/'characterData' records and the
addition of a new StaticNodeList::createEmpty() factory method.
* dom/MutationRecord.cpp:
* dom/MutationRecord.h:
(MutationRecord):
* dom/StaticNodeList.h:
(WebCore::StaticNodeList::adopt):
(StaticNodeList):
(WebCore::StaticNodeList::createEmpty):
(WebCore::StaticNodeList::StaticNodeList):
2012-12-07 Brent Fulgham <bfulgham@webkit.org>
Unreviewed build correction after 136959.
The initialization list should follow the same compiler macro
exclusions as the class members.
* inspector/InstrumentingAgents.h: Add USE(ACCELERATED_COMPOSITING)
guards around m_inspectorLayerTreeAgent as this does not exist
when the guard is false.
2012-12-07 Rik Cabanier <cabanier@adobe.com>
Extend platform layer so it can pass blend modes to the compositing calls
https://bugs.webkit.org/show_bug.cgi?id=104176
Reviewed by Dirk Schulze.
Adding blend mode enumeration to drawImage functions + stored blendmode in graphics context
No new tests, no new functionality.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::paint):
* platform/graphics/BitmapImage.h:
* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::draw):
* platform/graphics/CrossfadeGeneratedImage.h:
(CrossfadeGeneratedImage):
* platform/graphics/GeneratedImage.h:
(GeneratedImage):
* platform/graphics/GeneratorGeneratedImage.cpp:
(WebCore::GeneratorGeneratedImage::draw):
* platform/graphics/GeneratorGeneratedImage.h:
(GeneratorGeneratedImage):
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage):
(WebCore):
(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::setCompositeOperation):
* platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContextState::GraphicsContextState):
(GraphicsContextState):
(GraphicsContext):
* platform/graphics/Image.cpp:
(WebCore::Image::draw):
(WebCore::Image::drawTiled):
* platform/graphics/Image.h:
(Image):
* platform/graphics/ImageBuffer.h:
(ImageBuffer):
* platform/graphics/cairo/BitmapImageCairo.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::draw):
* platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::draw):
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::draw):
* platform/graphics/cg/PDFDocumentImage.h:
(PDFDocumentImage):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/qt/ImageBufferQt.cpp:
(WebCore::ImageBuffer::draw):
* platform/graphics/qt/ImageQt.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/qt/StillImageQt.cpp:
(WebCore::StillImage::draw):
* platform/graphics/qt/StillImageQt.h:
(StillImage):
* platform/graphics/skia/BitmapImageSingleFrameSkia.h:
(BitmapImageSingleFrameSkia):
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::ImageBuffer::draw):
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::BitmapImage::draw):
(WebCore::BitmapImageSingleFrameSkia::draw):
* platform/graphics/win/ImageCGWin.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawSVGToImageBuffer):
(WebCore::SVGImage::draw):
(WebCore::SVGImage::nativeImageForCurrentFrame):
* svg/graphics/SVGImage.h:
(SVGImage):
2012-12-07 Alec Flett <alecflett@chromium.org>
IndexedDB: propagate transaction_ids through open/upgradeneeded
https://bugs.webkit.org/show_bug.cgi?id=103922
Reviewed by Tony Chang.
Make sure front-end is always generating the transaction id,
so that it can be relied upon as an alternative to the
to-be-deprecated IDBTransactionBackendInterface pointer.
No new tests, this is one stage in a larger refactor.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::create):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::VersionChangeOperation):
(IDBDatabaseBackendImpl::VersionChangeOperation):
(WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create):
(WebCore::IDBDatabaseBackendImpl::PendingOpenCall::transactionId):
(WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
(IDBDatabaseBackendImpl::PendingOpenCall):
(WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::create):
(WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::transactionId):
(WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::PendingOpenWithVersionCall):
(IDBDatabaseBackendImpl::PendingOpenWithVersionCall):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::createTransaction):
(WebCore::IDBDatabaseBackendImpl::openConnection):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
(WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::openInternal):
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::open):
2012-12-07 Dima Gorbik <dgorbik@apple.com>
Implement general ::cue pseudo element for the <video>
https://bugs.webkit.org/show_bug.cgi?id=104043
Reviewed by Eric Carlson.
Implemented the ::cue pseudo element to be able to style all WebVTT cues.
Added the subcontainer with a '::cue' pseudoId in between the TextTrackContainerElement and WebVTT nodes to separate
user agent default styles from user defined styles for the cue elements.
Test: media/track/track-css-all-cues.html
* css/CSSSelector.cpp: ::cue pseudo selector doesn't have a valid prefix but should be allowed in the user-agent stylesheet.
(WebCore::CSSSelector::parsePseudoType):
* html/shadow/MediaControlElements.cpp:
(WebCore):
(WebCore::MediaControlTextTrackContainerElement::createSubtrees): create a subcontainer and set its pseudoId to '::cue'.
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): append WebVTT nodes to the newly created subcontainer.
* html/shadow/MediaControlElements.h:
(MediaControlTextTrackContainerElement):
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::createTextTrackDisplay): initiate creating subtrees for the MediaControlTextTrackContainerElement.
* html/shadow/MediaControlsChromium.cpp:
(WebCore::MediaControlsChromium::createTextTrackDisplay):
2012-12-06 Geoffrey Garen <ggaren@apple.com>
Crash in JSC::Bindings::RootObject::globalObject() sync'ing notes in Evernote
https://bugs.webkit.org/show_bug.cgi?id=104321
<rdar://problem/12770497>
Reviewed by Sam Weinig.
Missed a null check.
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject JSObject]): If our root object has been cleared, don't
try to dereference it. This happens in Evernote during tear-down.
This matches the behavior of other methods in the same class.
(_isSafeScript returns false if the root object has been cleared.)
If we believe _isSafeScript is a good idea, it's probably the right test
to use here (as opposed to just null-checking _rootObject) because this API
gives the client unlimited access to the underlying JavaScript object.
2012-12-07 Stephen Chenney <schenney@chromium.org>
XMLSerializer is too aggressive in adding prefixes
https://bugs.webkit.org/show_bug.cgi?id=104387
Reviewed by Ryosuke Niwa.
We have been adding "xlink:" and "xmlns:" and "xml:" prefixes to any
attribute that is in one of those namespaces but which did not already
have the matching prefix. This appears to be in error, at least
compared to other browsers.
The correct behavior appears to be to add the prefix only if there is
no existing prefix. If there is an existing prefix, we now leave it alone.
No new tests. Existing test expanded.
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::appendAttribute): Only replace the prefix
attribute name prefix if it is empty, and in one of the recognised
namespaces.
2012-12-07 Jon Lee <jonlee@apple.com>
Display the auto-start label image after a delay
https://bugs.webkit.org/show_bug.cgi?id=104173
<rdar://problem/12820071>
Reviewed by Dan Bernstein.
Treat the button now as a label. Once the user has hovered over the plug-in, wait a little while before showing the label.
* rendering/RenderSnapshottedPlugIn.h:
(RenderSnapshottedPlugIn): Add a one-shot timer, and a variable representing whether the label should
be drawn. Remove the variable that determines whether the label is active.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Set the time to a delay of 1 second.
(WebCore::RenderSnapshottedPlugIn::paintReplaced): Paint the label only when we should.
(WebCore::RenderSnapshottedPlugIn::paintLabel): The label should only paint in its hovered state.
(WebCore::startLabelImage): Renamed.
(WebCore::RenderSnapshottedPlugIn::repaintLabel): Renamed.
(WebCore::RenderSnapshottedPlugIn::hoverDelayTimerFired): Now that the timer has fired, we should paint
the label. Repaint.
(WebCore::RenderSnapshottedPlugIn::handleEvent): Update event handling. Click event handler is the
same, except we move the label check inside so that if the click is not the left label we don't
fall through to the other irrevelant if clauses.
For the mouse down handler, make sure to check for the left label. If the hover timer is still running,
stop it, so that we don't draw a label while the user is in the middle of a mouse gesture.
Redo mouse over and out. On mouse over we start the delay timer. On mouse out we stop the delay timer
if it is still running, reset state, and paint the label out.
(WebCore::RenderSnapshottedPlugIn::layout): Refactor.
* Resources/startButtonPressed.png: Removed.
* Resources/startButtonPressed@2x.png: Removed.
* WebCore.xcodeproj/project.pbxproj:
2012-12-07 Scott Violet <sky@chromium.org>
[chromium] Remove linux theme related files and switch to default
https://bugs.webkit.org/show_bug.cgi?id=103897
Reviewed by Dimitri Glazkov.
Linux related theme files are now named Default.
No new tests, code cleanup.
* WebCore.gyp/WebCore.gyp: Update files
* WebCore.gypi: Update files
* platform/chromium/PlatformThemeChromiumLinux.cpp: Removed.
* platform/chromium/PlatformThemeChromiumLinux.h: Removed.
* platform/chromium/ScrollbarThemeChromiumLinux.cpp: Removed.
* platform/chromium/ScrollbarThemeChromiumLinux.h: Removed.
* rendering/RenderThemeChromiumAndroid.cpp:
(WebCore::RenderThemeChromiumAndroid::extraDefaultStyleSheet): Linux->Default
* rendering/RenderThemeChromiumAndroid.h: Change superclass
* rendering/RenderThemeChromiumLinux.cpp: Removed.
* rendering/RenderThemeChromiumLinux.h: Removed.
2012-12-07 Eric Carlson <eric.carlson@apple.com>
Captions menu doesn't update to track changes
https://bugs.webkit.org/show_bug.cgi?id=104393
Reviewed by Dean Jackson.
Flag the captions menu as needing an update when tracks are added or removed. Don't actually
change the menu until it needs to be displayed.
No new tests, media/video-controls-captions-trackmenu.html was updated to test this.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::addTextTrack): Call closedCaptionTracksChanged().
(WebCore::HTMLMediaElement::didRemoveTrack): Ditto.
(WebCore::HTMLMediaElement::configureTextTracks): Ditto.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement):
Intialize m_trackListHasChanged.
(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Call rebuildTrackListMenu if
the track list has changed.
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): Renamed from resetTrackListMenu.
* html/shadow/MediaControlElements.h:
(WebCore::MediaControlClosedCaptionsTrackListElement::resetTrackListMenu): Just set m_trackListHasChanged.
* html/shadow/MediaControls.h:
(WebCore::MediaControls::closedCaptionTracksChanged): New, do nothing for base class.
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::toggleClosedCaptionTrackList): Update the track list before
showing it.
(WebCore::MediaControlsApple::closedCaptionTracksChanged):
* html/shadow/MediaControlsApple.h:
2012-12-07 Stephen White <senorblanco@chromium.org>
CSS url() filters with forward references don't work
https://bugs.webkit.org/show_bug.cgi?id=90405
Based on a patch by Keyar Hood.
Reviewed by Dirk Schulze.
In order for CSS to reference SVG filters that will occur later in
the document, or will be added at a future time, we need a way to
notify the target element (the one the filter style is applied to)
when the correct SVG filter is added to the DOM.
There is already code for SVG elements that handles this problem, in
SVGResourcesCache. This patch allows any element to have a reference to
an SVG element in SVGResourceCache.
Tests: css3/filters/effect-reference-after.html
css3/filters/effect-reference-delete-crash.html
css3/filters/effect-reference-delete.html
css3/filters/effect-reference-rename.html
css3/filters/effect-reference-reset-style-delete-crash.html
svg/filters/filter-cycle.html
* dom/Element.cpp:
(WebCore::Element::hasPendingResources): Added
(WebCore::Element::setHasPendingResources): Added
(WebCore::Element::clearHasPendingResources): Added
* dom/Element.h:
Accessors for ElementRareData's new bit flag.
(WebCore::Element::buildPendingResource):
Virtual function to override for referenced elements (moved from SVGElement).
* dom/ElementRareData.h:
(WebCore::ElementRareData::ElementRareData):
Add a new bit flag to indicate whether the element depends on pending resources or not.
* platform/graphics/texmap/TextureMapperImageBuffer.cpp:
(WebCore::BitmapTextureImageBuffer::applyFilters):
Changed to the new function signature for FilterEffectRenderer::build().
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::buildReferenceFilter):
Changed signature to accept a RenderObject rather than a Document, so we know which node to notify when the SVG filter arrives. If the referenced filter cannot be found, add its id as a pending reference.
(WebCore::FilterEffectRenderer::build):
Changed signature to accept a RenderObject rather than a Document, so we know which node to notify when the SVG filter arrives.
* rendering/FilterEffectRenderer.h:
Change to signatures of build() and buildReferenceFilter() to pass
a RenderObject instead of a Document.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
Use the new semantics for FilterEffectRenderer::build().
* rendering/RenderObject.cpp:
(WebCore::RenderObject::willBeDestroyed):
Notify the cache if a RenderObject is destroyed.
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::registerResource):
Call clearHasPendingResourceIfPossible on the SVGDocumentExtensions, not
on the element, since we want to support generic Elements.
* rendering/svg/SVGResources.cpp:
(WebCore::SVGResources::buildCachedResources):
Add support for building filters on non-SVG elements.
* rendering/svg/SVGResourcesCache.cpp:
(WebCore::SVGResourcesCache::addResourcesFromRenderObject):
Do cycle detection only on SVG elements.
(WebCore::SVGResourcesCache::clientStyleChanged):
For non-SVG elements, set a synthetic style change when parent resources
are invalidated.
(WebCore::SVGResourcesCache::resourceDestroyed):
Add support for non-SVG Elements.
* svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::addPendingResource):
(WebCore::SVGDocumentExtensions::isElementPendingResources):
(WebCore::SVGDocumentExtensions::isElementPendingResource):
(WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
(WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
Changed to allow use of Element instead of SVGElement.
(WebCore::SVGDocumentExtensions::clearHasPendingResourcesIfPossible):
Moved from SVGElement, and made to work on any Element. This way,
we avoid adding this function to Element itself.
* svg/SVGDocumentExtensions.h:
SVGElement -> Element.
* svg/SVGElement.cpp:
* svg/SVGElement.h:
All functions moved to Element, except for clearHasPendingResourcesIfPossible() moved to SVGDocumentExtensions.
* svg/SVGElementRareData.h:
(WebCore::SVGElementRareData::SVGElementRareData):
m_hasPendingResources add accessors moved to ElementRareData.
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
SVGElement -> Element, and call SVGDocumentExtensions for
clearHasPendingResourcesIfPossible().
2012-12-07 Eberhard Graether <egraether@google.com>
Web Inspector: Add shortcut to set visibility:hidden on elements in the ElementsPanel
https://bugs.webkit.org/show_bug.cgi?id=104146
Reviewed by Pavel Feldman.
This change adds the shortcut H to set and unset visibility:hidden on the inline style
of elements in the Elementspanel. This feature makes it easier to look for elements that
cause bad rendering performance, because visibility:hidden does not paint the element,
but preserves the layout.
No new tests.
* English.lproj/localizedStrings.js:
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSStyleModel.prototype.toggleInlineVisibility):
* inspector/front-end/ElementsPanelDescriptor.js:
(WebInspector.ElementsPanelDescriptor.prototype.registerShortcuts):
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline.prototype.handleShortcut):
* inspector/front-end/KeyboardShortcut.js:
2012-12-07 Andreas Kling <akling@apple.com>
Improve our decoded data size estimation for style sheets.
<http://webkit.org/b/104388>
Reviewed by Antti Koivisto.
Tweak how we estimate the total decoded size of a given style sheet. (We were guessing at about 30% of actual size.)
This is just used as a hint to the WebCore cache.
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::averageSizeInBytes):
* css/StyleRule.cpp:
(WebCore::StyleRule::averageSizeInBytes):
2012-12-07 Robert Hogan <robert@webkit.org>
REGRESSION(r127163): Content is offset to the right at rea.ru
https://bugs.webkit.org/show_bug.cgi?id=103116
Reviewed by David Hyatt.
The top margin edge of a self-collapsing block that clears a float intrudes up into it by the height of the margin,
so to ensure any child floats of the self-collapsing block only go as far as the top content edge
add the margin back in to the block's current height before placing them.
Tests: fast/block/margin-collapse/self-collapsing-block-with-float-child-collapsed-margins.html
fast/block/margin-collapse/self-collapsing-block-with-float-child.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
2012-12-07 Alexis Menard <alexis@webkit.org>
Improve r136754 by hardening checks of expected values for background-position.
https://bugs.webkit.org/show_bug.cgi?id=104380
Reviewed by Antti Koivisto.
r136754 was landed to fix the problem of checking successively two calc
values with validUnit. It was asserting as validUnit expect you to use
the parsed value of the calc after the call. In this case we pre-check the
background-position longhand to count how many values it has to then
call the right parsing functions accordingly. While r136754 is not
wrong it is better to harden isPotentialPositionValue with the real
expected units and keywords. For this matter we can reuse the
ReleaseParsedCalcValueCondition enum which was created with the same
idea as this patch. If you are not interested of the calc parsed
value when calling validUnit() you can now specify it, I believe it is
good to have it explicit to avoid mistake in the future.
No new tests : this is covered by css3/*, fast/backgrounds/*.
* css/CSSParser.cpp:
(WebCore::CSSParser::validCalculationUnit):
(WebCore::CSSParser::validUnit):
(WebCore::CSSParser::isPotentialPositionValue):
* css/CSSParser.h:
(WebCore::CSSParser::validUnit):
(CSSParser):
2012-12-07 Brent Fulgham <bfulgham@webkit.org>
Remove unnecessary casts in transformations.
https://bugs.webkit.org/show_bug.cgi?id=104376
Reviewed by Simon Fraser.
Several casts from float-to-double are performed prior to
storing the result in a double type. These casts are unnecessary
overhead and reduce the clarity of the source code.
No new tests. Covered by existing CSS test cases.
* platform/graphics/transforms/RotateTransformOperation.cpp:
* platform/graphics/transforms/TransformationMatrix.cpp:
2012-12-07 Antoine Quint <graouts@apple.com>
Provide the backend for exposing the layer tree to the Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=103513
Reviewed by Pavel Feldman.
The purpose of this patch is to provide a new agent enabling the Web Inspector to interface
with WebCore to access information about the render layer tree and, more specifically, expose
useful information about layers backed by textures composited on the GPU such as metrics and
backing store. Thus we now provide a LayerTreeAgent which will inform the front-end of
changes to the render layer tree via a new layerTreeDidChange event, providing an object
containing the entire hierarchy of RenderLayers for the inspected document. This hierarchy
can be queried at any time using the .getLayerTree() method on the LayerTreeAgent. Finally,
the LayerTreeAgent also exposes a .nodeIdForLayerId() method allowing to get the id of the
node associated with the RenderLayer with the provided layer id.
In terms of implementation, RenderLayerCompositor has been changed such that in its
updateCompositingLayers() method we call the layerTreeDidChange method on the
InspectorLayerTreeAgent instance via the InspectorInstrumentation.
Test: inspector-protocol/layer-tree.html
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* inspector/Inspector.json: Define new types IntRect (x, y, width, height) and Layer, which
holds the information for a RenderLayer (layerId, bounds, isComposited, memory,
compositedBounds) and its children (childLayers). We also define the methods of the
LayerTreeAgent object (enable, disable, getLayerTree, nodeIdForLayerId) and the
layerTreeDidChange event it
fires.
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::pushNodePathForRenderLayerToFrontend): New method facilitating
pushing the node associated with a given RenderLayer to the front-end.
(WebCore):
* inspector/InspectorDOMAgent.h:
(InspectorDOMAgent):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::layerTreeDidChangeImpl):
(WebCore::InspectorInstrumentation::renderLayerDestroyedImpl):
* inspector/InspectorInstrumentation.h:
(WebCore):
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::layerTreeDidChange):
(WebCore::InspectorInstrumentation::renderLayerDestroyed):
* inspector/InspectorLayerTreeAgent.cpp: Added.
(WebCore):
(LayerTreeAgentState):
(WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent):
(WebCore::InspectorLayerTreeAgent::~InspectorLayerTreeAgent):
(WebCore::InspectorLayerTreeAgent::setFrontend):
(WebCore::InspectorLayerTreeAgent::clearFrontend):
(WebCore::InspectorLayerTreeAgent::restore):
(WebCore::InspectorLayerTreeAgent::reset):
(WebCore::InspectorLayerTreeAgent::enable):
(WebCore::InspectorLayerTreeAgent::disable):
(WebCore::InspectorLayerTreeAgent::layerTreeDidChange):
(WebCore::InspectorLayerTreeAgent::renderLayerDestroyed):
(WebCore::InspectorLayerTreeAgent::getLayerTree):
(WebCore::InspectorLayerTreeAgent::buildObjectForRootLayer):
(WebCore::InspectorLayerTreeAgent::buildObjectForLayer): Build the entire hierarchy of
RenderLayers from the provided RenderLayer.
(WebCore::InspectorLayerTreeAgent::buildObjectForIntRect):
(WebCore::InspectorLayerTreeAgent::bind):
(WebCore::InspectorLayerTreeAgent::unbind):
(WebCore::InspectorLayerTreeAgent::nodeIdForLayerId):
* inspector/InspectorLayerTreeAgent.h: Added.
(WebCore):
(InspectorLayerTreeAgent):
(WebCore::InspectorLayerTreeAgent::create):
* inspector/InstrumentingAgents.h:
(WebCore):
(WebCore::InstrumentingAgents::InstrumentingAgents):
(InstrumentingAgents):
(WebCore::InstrumentingAgents::inspectorLayerTreeAgent):
(WebCore::InstrumentingAgents::setInspectorLayerTreeAgent):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingLayers): Call the layerTreeDidChange method
on the LayerTreeAgent via the InspectorInstrumentation to inform the front-end that the
RenderLayer hierarchy has changed.
(WebCore):
(WebCore::RenderLayerCompositor::layerBecameNonComposited): Call the renderLayerDestroyed
method on the LayerTreeAgent via the InspectorInstrumentation to unbind the layer that is
being destroyed.
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
2012-12-07 Joshua Bell <jsbell@chromium.org>
IndexedDB: Check SSV version when opening database
https://bugs.webkit.org/show_bug.cgi?id=102243
Reviewed by Tony Chang.
Ensure that the data format (SerializedScriptValue) isn't "from the future" when opening
a backing store. Treat an unknown version the same as an unknown schema version.
Chromium-side test at https://codereview.chromium.org/11470013/ (same as other schema version tests)
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore):
(WebCore::isSchemaKnown): Check data version as well.
(WebCore::setUpMetadata): Ensure data version is recorded; bump schema version.
* Modules/indexeddb/IDBLevelDBCoding.cpp: Encoding for "DataVersion" global metadata entry.
(IDBLevelDBCoding):
(WebCore::IDBLevelDBCoding::compare):
(WebCore::IDBLevelDBCoding::DataVersionKey::encode):
* Modules/indexeddb/IDBLevelDBCoding.h:
(DataVersionKey):
(IDBLevelDBCoding):
* bindings/js/SerializedScriptValue.cpp:
(SerializedScriptValue::wireFormatVersion): New method (JSC side).
* bindings/js/SerializedScriptValue.h:
* bindings/v8/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::wireFormatVersion): New method (V8 side).
(WebCore):
* bindings/v8/SerializedScriptValue.h:
(SerializedScriptValue):
2012-12-07 Andreas Kling <akling@apple.com>
Throw away StyleResolvers that haven't been used for a long time.
<http://webkit.org/b/104314>
Reviewed by Antti Koivisto.
A lot of memory gets tied up in StyleResolver and the structures and caches that hang from it.
Add a mechanism to throw it away after it's been unused for a while (1 minute.)
This frees up large amounts of memory on inactive pages (background tabs) and static content.
We already have a number of scenarios where the document style is invalidated by throwing away
the StyleResolver so the major code paths are prepared for having a null StyleResolver* on occasion.
~20MB progression on Membuster3.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
Call document()->didAccessStyleResolver() from the relevant parts of StyleResolver's public API.
This prevents Document from throwing the StyleResolver away for 1 minute after it's used.
* dom/Document.h:
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::createStyleResolver):
(WebCore::Document::didAccessStyleResolver):
(WebCore::Document::styleResolverThrowawayTimerFired):
Add a mechanism to call clearStyleResolver() on a refreshing timer.
* dom/Element.cpp:
(WebCore::Element::attributeChanged):
If an attribute change occurs while the document doesn't have a StyleResolver, dirty the element style
since we can't be sure that the attribute change didn't affect any rules.
2012-12-07 Antonio Gomes <a1.gomes@sisa.samsung.com>
REGRESSION(r136947): Made two tests fail on all platforms (Requested by tonikitoo-ll on #webkit).
https://bugs.webkit.org/show_bug.cgi?id=104368
Unreviewed partial rollout.
r136947 was too aggressive in the sense of fixing RenderBox::canBeScrolledAndHasScrollableArea
as part of itself. Revert the related changes in order to fix both
fast/events/autoscroll-should-not-stop-on-keypress.html and
fast/events/autoscroll-in-textfield.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::canBeScrolledAndHasScrollableArea):
* rendering/RenderBox.h:
2012-12-07 Allan Sandfeld Jensen <allan.jensen@digia.com>
[TexMap] Can not do multiple accelerated animations
https://bugs.webkit.org/show_bug.cgi?id=104364
Reviewed by Kenneth Rohde Christiansen.
By removing all animations with the same name, it is not possible to animate more than one property accelerated.
Instead only remove any animations with both same name and property.
Covered by animations/opacity-transform-animation.html.
* platform/graphics/GraphicsLayerAnimation.cpp:
(WebCore::GraphicsLayerAnimations::add):
(WebCore::GraphicsLayerAnimations::remove):
* platform/graphics/GraphicsLayerAnimation.h:
(GraphicsLayerAnimations):
2012-12-07 Sujin Park <sujjin.park@gmail.com>
[EFL] Fix build warning in StyleResolver.cpp using gcc 4.7.2
https://bugs.webkit.org/show_bug.cgi?id=104262
Reviewed by Alexis Menard.
EFL port treats build warning as compile error and there are
maybe-uninitialized when building with gcc 4.7.2.
This patch adds default case to resolve a build break.
* css/StyleResolver.cpp:
(WebCore::getFontAndGlyphOrientation):
2012-12-06 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Chromium] Ctrl + ']' "Goto right panel" keyboard shortcut doesn't work
https://bugs.webkit.org/show_bug.cgi?id=104250
Reviewed by Pavel Feldman.
Ignore "keypress" event resulting from a WM_CHAR message emitted by Win7 upon Ctrl + ']' keypress.
* inspector/front-end/InspectorView.js:
(WebInspector.InspectorView.prototype._keyPress): Ignore all events with charCode < 32.
2012-10-03 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: provide a way to reload page with given script preprocessor.
https://bugs.webkit.org/show_bug.cgi?id=80992
Reviewed by Yury Semikhatsky.
This change introduces a way to inject 'preprocessor' script that would process
each JavaScript file before it gets into the VM for compilation. That way inspector
can expose capabilities such as assessing code coverage or tracing all the calls.
Preprocessor script is stored in the page agent where it waits for reload to happen.
Upon reload, ScriptDebugServer is using it to patch the script sources.
Test: inspector/debugger/debugger-script-preprocessor.html
* bindings/js/ScriptDebugServer.h:
(WebCore::ScriptDebugServer::setScriptPreprocessor):
(ScriptDebugServer):
* bindings/v8/DebuggerScript.js:
* bindings/v8/ScriptDebugServer.cpp:
(ScriptDebugServer::ScriptPreprocessor):
(WebCore::ScriptDebugServer::ScriptPreprocessor::ScriptPreprocessor):
(WebCore::ScriptDebugServer::ScriptPreprocessor::preprocessSourceCode):
(WebCore::ScriptDebugServer::ScriptPreprocessor::~ScriptPreprocessor):
(WebCore):
(WebCore::ScriptDebugServer::~ScriptDebugServer):
(WebCore::ScriptDebugServer::setScriptSource):
(WebCore::ScriptDebugServer::setScriptPreprocessor):
(WebCore::ScriptDebugServer::handleV8DebugEvent):
* bindings/v8/ScriptDebugServer.h:
(ScriptDebugServer):
* bindings/v8/custom/V8InjectedScriptManager.cpp:
(WebCore::InjectedScriptManager::createInjectedScript):
* inspector/Inspector.json:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorDebuggerAgent.h:
(InspectorDebuggerAgent):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::reload):
(WebCore::InspectorPageAgent::frameNavigated):
* inspector/InspectorPageAgent.h:
(WebCore::InspectorPageAgent::page):
(WebCore::InspectorPageAgent::scriptPreprocessor):
(InspectorPageAgent):
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::create):
(WebCore::PageDebuggerAgent::PageDebuggerAgent):
(WebCore::PageDebuggerAgent::startListeningScriptDebugServer):
(WebCore::PageDebuggerAgent::stopListeningScriptDebugServer):
(WebCore::PageDebuggerAgent::injectedScriptForEval):
(WebCore::PageDebuggerAgent::didClearMainFrameWindowObject):
(WebCore):
* inspector/PageDebuggerAgent.h:
(WebCore):
(PageDebuggerAgent):
2012-12-07 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: the "Sources" column is always empty in CSS selector profiles
https://bugs.webkit.org/show_bug.cgi?id=104225
Reviewed by Pavel Feldman.
r112923 and preceding changesets modified the CSSOM wrapper creation for StyleRules in a way
that would not specify the parent CSSStyleSheet for the CSSStyleRules created. Instead,
styleResolver->ensureFullCSSOMWrapperForInspector(rule) is now used to make sure the CSSStyleRule
has a valid parent CSSStyleSheet.
Test: inspector/profiler/selector-profiler-url.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRulesForList):
(WebCore::StyleResolver::applyProperties):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willMatchRuleImpl):
(WebCore::InspectorInstrumentation::willProcessRuleImpl):
* inspector/InspectorInstrumentation.h:
(WebCore):
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::willMatchRule):
(WebCore::InspectorInstrumentation::willProcessRule):
2012-12-05 Antonio Gomes <a1.gomes@sisa.samsung.com>
Rework bug 97927 to not depend on RenderLayer::allowsScrolling
https://bugs.webkit.org/show_bug.cgi?id=103999
Reviewed by James Robinson.
Patch makes it possible for methods like
RenderLayer::{updateScrollbarsAfterLayout,updateScrollbarsAfterStyleChange}
to not depend on RenderLayer::allowsScrolling to determine if a layer should
be added or removed from its FrameView's ScrollableArea set.
Following the same logic, the patch also fixes RenderBox::canBeScrolledAndHasScrollableArea
method to take into account the box' scroll allowance in a given direction only
when it overflows. This allows simplifying custom methods like InRegionScrollerPrivate::canScrollRenderBox
(@WebKit/blackberry/Api/InRegionScroller.cpp).
The naming pattern for the newly added methods were chosen to keep the consistency
with the existing ones, in the same class.
No new test: it is already covered by ScrollingCoordinatorChromiumTest.clippedBodyTest.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::canBeScrolledAndHasScrollableArea):
* rendering/RenderBox.h:
(RenderBox):
(WebCore::RenderBox::hasScrollableOverflowX):
(WebCore::RenderBox::hasScrollableOverflowY):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hasScrollableHorizontalOverflow):
(WebCore):
(WebCore::RenderLayer::hasScrollableVerticalOverflow):
(WebCore::RenderLayer::updateScrollbarsAfterLayout):
(WebCore::RenderLayer::updateScrollbarsAfterStyleChange):
* rendering/RenderLayer.h:
(RenderLayer):
2012-12-07 Max Feil <mfeil@rim.com>
[BlackBerry] make "isVideo" information available to platform media player
https://bugs.webkit.org/show_bug.cgi?id=104334
Reviewed by Rob Buis.
The platform player needs to know whether the element is <video>
or <audio>, so it can make certain decisions before metadata
is ready. This is part of a performance optimization refactor
which does not change functionality so no new tests are required.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::load):
2012-12-07 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL] [AC] Implement ImageExtractor::extractImage in GraphicsContext3DEfl.
https://bugs.webkit.org/show_bug.cgi?id=104271.
Reviewed by Kenneth Rohde Christiansen.
This patch implements ImageExtractor::extractImage in GraphicsContext3DEfl.
Covered by existing tests.
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
2012-12-06 Carlos Garcia Campos <cgarcia@igalia.com>
Use always the order iterator from data member in RenderFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=104112
Reviewed by Tony Chang.
Some methods receive it as parameter and others use the data
member.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
(WebCore::RenderFlexibleBox::layoutFlexItems):
(WebCore::RenderFlexibleBox::computeNextFlexLine):
(WebCore::RenderFlexibleBox::alignFlexLines):
(WebCore::RenderFlexibleBox::alignChildren):
(WebCore::RenderFlexibleBox::flipForRightToLeftColumn):
(WebCore::RenderFlexibleBox::flipForWrapReverse):
* rendering/RenderFlexibleBox.h:
2012-12-07 Kent Tamura <tkent@chromium.org>
Improve confusing code in BaseMultipleFieldsDateAndTimeInputType
https://bugs.webkit.org/show_bug.cgi?id=104353
Reviewed by Kentaro Hara.
This doesn't change any behavior because call sites of
isEditControlOwnerDisabled and isEditControlOwnerReadOnly treat them
similarly.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerDisabled):
Checks element()->disabled, not readOnly.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerReadOnly):
Checks element()->readOnly, not disabled.
2012-12-07 Jon Lee <jonlee@apple.com>
Build fix.
* plugins/PlugInOriginHash.cpp:
(WebCore::PlugInOriginHash::hash):
2012-12-04 Jon Lee <jonlee@apple.com>
Add PlugInOriginHash
https://bugs.webkit.org/show_bug.cgi?id=103655
<rdar://problem/12778949>
Reviewed by Alexey Proskuryakov.
Add the concept of plug-in origin hashes, which are based on a combination of the base domains of the
page's main frame and the plug-in, and the plug-in MIME type.
* plugins/PlugInOriginHash.cpp: Added.
(WebCore::addCaseFoldedCharacters): Add the case-folded string to the hash.
(WebCore::PlugInOriginHash::hash): The hash is based on the concatenation of the page's host, the plug-in
URL's host, and the MIME type. We use StringHasher to get all 32-bits of the hash, since using StringImpl's hash
masks out 8 of the hash bits to make room for bit flags.
* plugins/PlugInOriginHash.h: Added.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
2012-12-06 Kent Tamura <tkent@chromium.org>
Refactoring: Clean up placeholder attribute usage
https://bugs.webkit.org/show_bug.cgi?id=104337
Reviewed by Kentaro Hara.
No new tests. This doesn't change any behavior.
* html/HTMLInputElement.cpp: Remove placeholder and setPlacehodler.
* html/HTMLInputElement.h: Ditto.
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::strippedPlaceholder):
We can use fastGetAttribute for placeholder.
(WebCore::HTMLTextFormControlElement::isPlaceholderEmpty):
Ditto.
2012-12-06 Kent Tamura <tkent@chromium.org>
Refactoring: Rename HTMLFormControlElement::required to isRequired
https://bugs.webkit.org/show_bug.cgi?id=104336
Reviewed by Kentaro Hara.
m_required should be m_isRequired, and required() should be
isRequired. It's safe to rename them because HTML*Element::required IDL
attributes are [Reflected].
http://www.webkit.org/coding/coding-style.html#names-bool
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isRequired):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithControl):
* dom/CheckedRadioButtons.cpp:
(WebCore::RadioButtonGroup::add):
(WebCore::RadioButtonGroup::requiredAttributeChanged):
(WebCore::RadioButtonGroup::remove):
* html/CheckboxInputType.cpp:
(WebCore::CheckboxInputType::valueMissing):
* html/FileInputType.cpp:
(WebCore::FileInputType::valueMissing):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::HTMLFormControlElement):
(WebCore::HTMLFormControlElement::parseAttribute):
(WebCore::HTMLFormControlElement::isRequired):
* html/HTMLFormControlElement.h:
(HTMLFormControlElement):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::isRequiredFormControl):
(WebCore::HTMLInputElement::setupDateTimeChooserParameters):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::valueMissing):
(WebCore::HTMLSelectElement::isRequiredFormControl):
* html/HTMLTextAreaElement.h:
(WebCore::HTMLTextAreaElement::isRequiredFormControl):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::valueMissing):
2012-12-06 Hajime Morrita <morrita@google.com>
[Shadow DOM] Implement Element::shadowRoot with prefix
https://bugs.webkit.org/show_bug.cgi?id=102912
Reviewed by Dimitri Glazkov.
- Added Element::shadowRoot() which return the youngest author shadow root.
- Renamed existing Node::shadowRoot() to containingShadowRoot() to avoid name shadowing.
The name shadowRoot() is confusing anyway so this is good opportunity to rename it.
Test: fast/dom/shadow/shadow-aware-shadow-root.html
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkSelector):
* css/StyleScopeResolver.cpp:
(WebCore::StyleScopeResolver::scopeFor):
(WebCore::StyleScopeResolver::addHostRule):
* dom/Element.cpp:
(WebCore::Element::shadowRoot):
(WebCore):
* dom/Element.h:
(Element):
* dom/Element.idl:
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::setShouldCollectSelectFeatureSet):
* dom/Node.cpp:
(WebCore::Node::rendererIsEditable):
(WebCore::Node::shadowHost):
(WebCore::Node::shadowAncestorNode):
(WebCore::Node::containingShadowRoot):
* dom/Node.h:
(Node):
* dom/Range.cpp:
(WebCore::Range::shadowRoot):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::insertedInto):
(WebCore::ShadowRoot::removedFrom):
* dom/ShadowRoot.h:
(WebCore::ShadowRoot::isAccessible):
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleReplacedElement):
* editing/htmlediting.cpp:
(WebCore::indexForVisiblePosition):
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::scopedAttributeChanged):
(WebCore::HTMLStyleElement::registerWithScopingNode):
(WebCore::HTMLStyleElement::removedFrom):
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::distribute):
* html/shadow/HTMLContentElement.cpp:
(WebCore::HTMLContentElement::parseAttribute):
(WebCore::HTMLContentElement::insertedInto):
(WebCore::HTMLContentElement::removedFrom):
* html/shadow/HTMLShadowElement.cpp:
(WebCore::HTMLShadowElement::insertedInto):
(WebCore::HTMLShadowElement::removedFrom):
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::attach):
(WebCore::InsertionPoint::detach):
(WebCore::InsertionPoint::isActive):
(WebCore::InsertionPoint::childrenChanged):
(WebCore::InsertionPoint::insertedInto):
(WebCore::InsertionPoint::removedFrom):
(WebCore::InsertionPoint::setResetStyleInheritance):
* page/EventHandler.cpp:
(WebCore::instanceAssociatedWithShadowTreeElement):
* svg/SVGElement.cpp:
(WebCore::SVGElement::correspondingElement):
(WebCore::collectInstancesForSVGElement):
2012-12-06 Michael Pruett <michael@68k.org>
IndexedDB: Replace int64 with int64_t
https://bugs.webkit.org/show_bug.cgi?id=104338
Reviewed by Kentaro Hara.
Cleaning up coding inconsistencies, no change in behavior.
Tests: storage/indexeddb/*
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::openInternal):
2012-12-06 James Simonsen <simonjam@chromium.org>
[Resource Timing] Allow detailed timing on same origin sites
https://bugs.webkit.org/show_bug.cgi?id=104328
Reviewed by Tony Gentilcore.
This block was lost when I moved it to PerformanceResourceTiming.cpp.
Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_attribute_order.html
* page/PerformanceResourceTiming.cpp:
(WebCore::passesTimingAllowCheck):
2012-12-06 Rick Byers <rbyers@chromium.org>
CSS cursor property should support webkit-image-set
https://bugs.webkit.org/show_bug.cgi?id=99493
Reviewed by Beth Dakin.
Add support for image scale factors attached to custom mouse cursor images
behind ENABLE(MOUSE_CURSOR_SCALE).
This required refactoring CSSCursorImageValue to derive directly from
CSSValue since it can contain either a CSSImageValue or a CSSImageSetValue.
If it contains an image-set, then we can plumb directly through to the
CSSImageSetValue. If it contains an image, then either we can plumb directly
through to the CSSImageValue, or if the URL represents an SVG cursor we have
to intercept the image loading in order to substitute the actual SVG image URL
and do the appropriate lifetime management.
Tests: fast/css/cursor-parsing-image-set.html
fast/events/mouse-cursor-image-set.html
* Configurations/FeatureDefines.xcconfig: Add ENABLE_MOUSE_CURSOR_SCALE - disabled
* GNUmakefile.features.am: ditto
* css/CSSCursorImageValue.cpp: Refactor to inherit directly from CSSValue and support image sets
(WebCore::CSSCursorImageValue::CSSCursorImageValue):
(WebCore::CSSCursorImageValue::~CSSCursorImageValue):
(WebCore::CSSCursorImageValue::customCssText):
(WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
(WebCore::CSSCursorImageValue::cachedImage):
(WebCore::CSSCursorImageValue::cachedOrPendingImage):
(WebCore::CSSCursorImageValue::isSVGCursor):
(WebCore::CSSCursorImageValue::cachedImageURL):
(WebCore::CSSCursorImageValue::clearCachedImage):
(WebCore::CSSCursorImageValue::reportDescendantMemoryUsage):
* css/CSSCursorImageValue.h: Remove cursor-specific hacks
(WebCore::CSSCursorImageValue::create):
(CSSCursorImageValue):
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::cachedImage):
* css/CSSImageValue.h:
(CSSImageValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Parse cursor(-webkit-image-set(...)) rules
* css/CSSValue.h:
(WebCore::CSSValue::isImageValue):
* css/StyleBuilder.cpp:
(WebCore::ApplyPropertyCursor::applyValue):
* css/StyleResolver.cpp: Hook up new CSSCursorImageValue support since it can't be handled like other images any more.
(WebCore::StyleResolver::styleImage):
(WebCore::StyleResolver::cursorOrPendingFromValue):
(WebCore::StyleResolver::loadPendingImage):
* css/StyleResolver.h:
(StyleResolver):
* page/EventHandler.cpp:
(WebCore::EventHandler::selectCursor): Handle StyleCachedImageSet images and plumb scale factor through
* platform/Cursor.cpp:
(WebCore::Cursor::Cursor): Add imageScaleFactor
* platform/Cursor.h: Add imageScaleFactor
(Cursor):
(WebCore::Cursor::imageScaleFactor):
* platform/chromium/CursorChromium.cpp: Add imageScaleFactor
(WebCore::Cursor::Cursor):
(WebCore::Cursor::operator=):
* rendering/style/CursorData.h: Clarify hotspot units
(CursorData):
* rendering/style/StyleCachedImage.h:
(StyleCachedImage::cachedImage): Override new virtual.
* rendering/style/StyleCachedImageSet.h:
(StyleCachedImageSet::cachedImage): Override new virtual.
* rendering/style/StyleImage.h:
(StyleImage::cachedImage): Add new virtual method to avoid lots of casts and typechecks.
* rendering/style/StylePendingImage.h: Add CSSCursorImageValue support
(WebCore::StylePendingImage::cssCursorImageValue):
* testing/Internals.cpp:
(WebCore::Internals::getCurrentCursorInfo): Print non-identity scale factors for testing
2012-12-06 Hayato Ito <hayato@chromium.org>
Event's relatedTarget re-targeting does not occur for manually fired mouse events created by event.initMouseEvent().
https://bugs.webkit.org/show_bug.cgi?id=102681
Reviewed by Dimitri Glazkov.
Make sure that event's relatedTarget re-targeting occurs for mouse
events created by event.initMouseEvent(). Since user-generated
mouse events can have a relatedTarget which is same to the target
node, the algorithm which calculates event's ancestors is also
updated so that ancestors are not shrunk wrongly.
Test: fast/events/dispatch-synthetic-mouseevent.html
fast/dom/shadow/shadow-dom-event-dispatching.html
* dom/EventDispatcher.cpp:
(WebCore::EventRelatedTargetAdjuster::adjust):
* dom/MouseEvent.cpp:
(WebCore::MouseEventDispatchMediator::create):
(WebCore::MouseEventDispatchMediator::MouseEventDispatchMediator):
(WebCore::MouseEventDispatchMediator::dispatchEvent):
* dom/MouseEvent.h:
(WebCore::MouseEventDispatchMediator::isSyntheticMouseEvent):
(MouseEventDispatchMediator):
* dom/Node.cpp:
(WebCore::Node::dispatchEvent):
2012-12-06 Kunihiko Sakamoto <ksakamoto@chromium.org>
Disabled file input box stops a certain other div from being rendered
https://bugs.webkit.org/show_bug.cgi?id=104226
Reviewed by Dimitri Glazkov.
The bug was caused by setNeedsStyleRecalc() call during style recalculation,
which resulted in inconsistent ChildNeedsStyleRecalc flags in DOM tree.
When reattach of file input happens during style recalculation,
RenderFileUploadControl::updateFromElement() is called from attach().
It may change the disabled state of the upload button in its shadow tree,
but it triggers style recalculation.
This patch solves this issue by setting disabled state of the upload button in
FileInputType::disabledAttributeChanged instead of RenderFileUploadControl.
Test: fast/forms/file/sibling-of-disabled-file-input.html
* html/FileInputType.cpp:
(WebCore::FileInputType::disabledAttributeChanged): Added.
* html/FileInputType.h:
(FileInputType): Declare disabledAttributeChanged.
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::updateFromElement): Remove call to button->setDisabled().
2012-12-06 Dominic Cooney <dominicc@chromium.org>
Element.pseudo property should be prefixed
https://bugs.webkit.org/show_bug.cgi?id=104060
Reviewed by Hajime Morita.
Other Shadow DOM properties are prefixed; pseudo should be too.
Covered by updated tests in fast/dom/shadow.
* dom/Element.idl:
2012-12-06 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Remove the sanitize mechanism from LineFragmentationData
https://bugs.webkit.org/show_bug.cgi?id=104234
Reviewed by David Hyatt.
Remove previous work that ensured an invalid region is never returned by the containingRegion getter. After r136793 the blocks always
relayout children if the region chain changes. This means the sanitize() method is only necessary when all the regions are removed.
This case is treated separately in layoutInlineChildren.
Tests: no new functionality, no bug fixed.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutInlineChildren):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::containingRegion):
(WebCore):
(WebCore::RootInlineBox::setContainingRegion):
* rendering/RootInlineBox.h:
(RootInlineBox):
(WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):
(LineFragmentationData):
2012-12-06 Kenneth Russell <kbr@google.com>
Associate URLs with GraphicsContext3D instances created for WebGL
https://bugs.webkit.org/show_bug.cgi?id=103793
Reviewed by Adam Barth.
Pass down the URL of the topmost frame's document creating the
WebGL context to the platform layer through
GraphicsContext3D::Attributes.
Not feasible to write a layout test for this change; has no
user-visible effect. Tested manually with failure injection in
Chromium port.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::create):
Pass top document's URL in context creation attributes.
* platform/chromium/support/GraphicsContext3DChromium.cpp:
(WebCore::GraphicsContext3D::create):
Pass URL through WebKit API.
* platform/graphics/GraphicsContext3D.h:
(Attributes):
Add top document's URL to context creation attributes.
2012-12-06 Philip Rogers <pdr@google.com>
Unify SVG's animation and target tracking systems.
https://bugs.webkit.org/show_bug.cgi?id=102655
Reviewed by Dirk Schulze.
This patch unifies our animation target tracking system and regular target tracking system.
This simplifies the code, fixes a bug, and cleans up a historically security-sensitive area.
Background: When <use>, <mpath>, <animate>, etc. reference another element using
xlink:href="#id", we need to track when #id changes to #otherId, when #id is removed, etc.
This bookkeeping of element -> target is done in SVGDocumentExtensions. Additionally, when
a target changes that causes layout (e.g., rect.x is changed), all dependent elements with
renderers are notified (<animate> has no renderer and will not use this).
Previously, xlink:href changes were lazily resolved when targetElement() was called, target
changes were tracked using the animation tracking framework, and pending targets did not
work (e.g., <animate xlink:href="#p"><!--animate is now pending #p --><rect id="p"/>).
After this patch, we no longer lazily resolve targetElement() but instead change it when
our xlink:href attribute changes. Instead of using the animation tracking framework in
SVGDocumentExtensions, we now use the regular target tracking framework. Lastly, by using
the regular target tracking framework we are able to hook into the pending resource handling
which fixes a bug (see the test).
A test has been added to test that the order of animation elements does not matter. A second
test has been added to show we do not regress a pending-while-pending case.
Tests: svg/animations/svg-animation-order.html
svg/custom/svg-pending-twice.html
* svg/SVGAnimateElement.cpp:
(WebCore::SVGAnimateElement::setTargetElement):
setTargetElement and setAttributeName now work similarly. When the corresponding attribute
changes, we update our internal state (target or attributeName) and save it instead of
looking these values up on each iteration.
(WebCore::SVGAnimateElement::setAttributeName):
(WebCore):
(WebCore::SVGAnimateElement::resetAnimatedPropertyType):
* svg/SVGAnimateElement.h:
(SVGAnimateElement):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::setAttributeType):
(WebCore::SVGAnimationElement::setTargetElement):
(WebCore::SVGAnimationElement::setAttributeName):
* svg/SVGAnimationElement.h:
(SVGAnimationElement):
* svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::~SVGDocumentExtensions):
(WebCore):
* svg/SVGDocumentExtensions.h:
(SVGDocumentExtensions):
* svg/SVGElement.cpp:
(WebCore::SVGElement::~SVGElement):
(WebCore::SVGElement::removedFrom):
(WebCore::SVGElement::attributeChanged):
* svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
This can be removed after r131631 landed.
* svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::buildPendingResource):
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::buildPendingResource):
A bug was discovered in review with our resource tracking in a pending-while-pending
case. SVGMpathElement and SVGTextPathElement have been updated to fix this as well.
* svg/animation/SVGSMILElement.cpp:
The changes in SVGSMILElement should look very similar to SVGFEImageElement,
SVGMPathElement, etc. The idea is to build pending resources when added or
removed from the document, or when the href attribute changes.
(WebCore::SVGSMILElement::~SVGSMILElement):
(WebCore):
(WebCore::SVGSMILElement::clearResourceReferences):
(WebCore::SVGSMILElement::buildPendingResource):
(WebCore::SVGSMILElement::insertedInto):
(WebCore::SVGSMILElement::removedFrom):
(WebCore::SVGSMILElement::svgAttributeChanged):
(WebCore::SVGSMILElement::setAttributeName):
(WebCore::SVGSMILElement::setTargetElement):
* svg/animation/SVGSMILElement.h:
(WebCore):
(WebCore::SVGSMILElement::targetElement):
(SVGSMILElement):
2012-12-06 Jon Lee <jonlee@apple.com>
Retry snapshots if they are too empty
https://bugs.webkit.org/show_bug.cgi?id=104174
<rdar://problem/12820146>
Reviewed by Simon Fraser.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::updateSnapshot): Change the state machine check so that even
when the plug-in is displaying a snapshot, the snapshot can still be updated. This allows for the
retries to be drawn.
2012-12-06 Adam Klein <adamk@chromium.org>
[HTMLTemplateElement] make content readonly and cloneNode(deep) clone content
https://bugs.webkit.org/show_bug.cgi?id=104181
Reviewed by Adam Barth.
Note that this patch also adds IDL attributes/custom code to tie the lifetime
of the content DocumentFragment wrapper to the lifetime of the template element wrapper
via a hidden JS property.
Based on a patch by Rafael Weinstein.
Test: fast/dom/HTMLTemplateElement/contentWrappers.html
* DerivedSources.cpp:
* Target.pri:
* UseJSC.cmake:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSHTMLTemplateElementCustom.cpp: Copied from Source/WebCore/html/HTMLTemplateElement.idl.
(WebCore):
(WebCore::JSHTMLTemplateElement::content):
* bindings/scripts/CodeGeneratorV8.pm: Add support for new V8CacheAttributeForGC attribute.
* dom/Element.h:
(Element): Annotate cloneNode() with OVERRIDE
* html/HTMLTemplateElement.cpp:
(WebCore::HTMLTemplateElement::cloneNode):
* html/HTMLTemplateElement.h:
(HTMLTemplateElement): override cloneNode
* html/HTMLTemplateElement.idl: Make content readonly and add custom attributes.
2012-12-06 Brent Fulgham <bfulgham@webkit.org>
[Windows, WinCairo] Unreviewed build correction.
Exclude 'DocumentSharedObjectPool.cpp' from build, since it is
built as part of DOMAllInOne.cpp. The build (besides wasting
time) generates a bunch of build warnings for duplicate symbols.
* WebCore.vcproj/WebCore.vcproj: Mark DocumentSharedObjectPool.cpp
to not build independently of DOMAllInOne.cpp.
2012-12-06 David Grogan <dgrogan@chromium.org>
IndexedDB: Abort transactions because of leveldb errors part 4
https://bugs.webkit.org/show_bug.cgi?id=103964
Reviewed by Tony Chang.
deleteDatabase, open, and deleteObjectStore will now fire more aborts
and errors in case of leveldb problems
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::getVarInt): Make return value indicate leveldb error.
(WebCore::getString): ditto.
(WebCore::IDBBackingStore::getIDBDatabaseMetaData):
Change return value to indicate leveldb error.
(WebCore::IDBBackingStore::deleteDatabase):
Already had the desired return value semantics. As a consumer of
getIDBDatabaseMetadata, will return an error (causing an abort) more
often.
(WebCore::IDBBackingStore::deleteObjectStore):
Needed return value change. Will return error to DatabaseBackend to
indicate leveldb problems.
* Modules/indexeddb/IDBBackingStore.h:
(IDBBackingStore):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::openInternal):
Pass leveldb errors up to callers, who already handle internal errors.
(WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::perform):
Abort transaction if there were leveldb problems deleting an object
store.
2012-12-06 David Grogan <dgrogan@chromium.org>
IndexedDB: Add webkitErrorMessage to IDBTransaction
https://bugs.webkit.org/show_bug.cgi?id=104199
Reviewed by Tony Chang.
Don't drop error messages on the floor.
Expose an error message on IDBTransaction to give developers more
information than the opaque error code currently available. This is
exactly what is done in IDBRequest.
Tests - transaction-error.html
* Modules/indexeddb/IDBDatabaseError.h:
(WebCore::IDBDatabaseError::create):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::dispatchEvent):
(WebCore::IDBRequest::uncaughtExceptionInEventHandler):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::setError):
(WebCore):
(WebCore::IDBTransaction::webkitErrorMessage):
(WebCore::IDBTransaction::onAbort):
* Modules/indexeddb/IDBTransaction.h:
(IDBTransaction):
* Modules/indexeddb/IDBTransaction.idl:
2012-12-06 Alexander Shalamov <alexander.shalamov@intel.com>
XMLHttpRequest Content-Type should be taken from Blob type
https://bugs.webkit.org/show_bug.cgi?id=99983
Reviewed by Alexey Proskuryakov.
Fix XMLHttpRequest::send(Blob*) method, so that the Content-Type is set according to W3C specification.
http://www.w3.org/TR/XMLHttpRequest/#the-send-method
Added test that check if content type is set correctly when blob object is sent.
Test: http/tests/xmlhttprequest/post-blob-content-type.html
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::send):
Set correct MIME type for Blob objects.
* WebCore.vcproj/WebCore.vcproj:
Added ParsedContentType to project file.
2012-12-06 Min Qin <qinmin@chromium.org>
Make LazyDecodingPixelRef inherit from skia::LazyPixelRef so that cc thread can access it
https://bugs.webkit.org/show_bug.cgi?id=103555
Reviewed by Stephen White.
Expose LazyDecodingPixelRef to the cc thread by inheriting from skia::LazyPixelRef.
No test added for now as impl side paiting is still WIP.
* platform/graphics/chromium/LazyDecodingPixelRef.cpp:
(WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
(WebCore::LazyDecodingPixelRef::PrepareToDecode):
(WebCore):
(WebCore::LazyDecodingPixelRef::Decode):
* platform/graphics/chromium/LazyDecodingPixelRef.h:
(LazyDecodingPixelRef):
2012-12-06 Kentaro Hara <haraken@chromium.org>
[V8] Make an Isolate mandatory in v8UnsignedInteger()
https://bugs.webkit.org/show_bug.cgi?id=104235
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/v8/ArrayValue.cpp:
(WebCore::ArrayValue::get):
* bindings/v8/V8Binding.h:
(WebCore::v8UnsignedInteger):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::prepareListenerObject):
2012-12-06 David Hyatt <hyatt@apple.com>
[New Multicolumn] Add requiresBalancing booleans to track which column sets need to rebalance.
https://bugs.webkit.org/show_bug.cgi?id=104297
Reviewed by Simon Fraser.
Add requiresBalancing booleans to RenderMultiColumnBlock and RenderMultiColumnSet. For now the former is just propagated
to the latter, but eventually RenderMultiColumnSets will have a notion of balancing that has to be independent of the
owning block (e.g., maybe only the last set rebalances, or maybe only a set that contains the content between two forced
breaks wants to rebalance, etc.).
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
(WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
(WebCore::RenderMultiColumnBlock::ensureColumnSets):
* rendering/RenderMultiColumnBlock.h:
(WebCore::RenderMultiColumnBlock::requiresBalancing):
(RenderMultiColumnBlock):
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
* rendering/RenderMultiColumnSet.h:
(WebCore::RenderMultiColumnSet::requiresBalancing):
(WebCore::RenderMultiColumnSet::setRequiresBalancing):
(RenderMultiColumnSet):
(WebCore::toRenderMultiColumnSet):
(WebCore):
2012-12-06 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136871.
http://trac.webkit.org/changeset/136871
https://bugs.webkit.org/show_bug.cgi?id=104293
crashes on bots and memory leaks (Requested by esprehn on
#webkit).
* dom/Document.h:
(WebCore::Node::treeScope):
* dom/Element.cpp:
(WebCore::Element::createRareData):
* dom/ElementRareData.h:
(ElementRareData):
(WebCore::ElementRareData::ElementRareData):
* dom/Node.cpp:
(WebCore::Node::setTreeScope):
(WebCore::Node::ensureRareData):
(WebCore::Node::createRareData):
(WebCore::Node::clearRareData):
* dom/Node.h:
(WebCore::NodeRareDataBase::~NodeRareDataBase):
(WebCore::NodeRareDataBase::NodeRareDataBase):
(NodeRareDataBase):
(WebCore::Node::renderer):
(WebCore::Node::setRenderer):
(Node):
(WebCore::Node::hasRareData):
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
(NodeRareData):
2012-12-06 Adam Klein <adamk@chromium.org>
Remove non-v8 binding files from WebCore.gypi
https://bugs.webkit.org/show_bug.cgi?id=104288
Reviewed by Adam Barth.
Since the gyp build is only used by the Chromium project,
there's no need for cpp, gobject, objc, or jsc bindings
in these build files.
* WebCore.gypi:
2012-12-06 Tony Chang <tony@chromium.org>
REGRESSION(r135082): Restore the ability to insert author level style sheets from script
https://bugs.webkit.org/show_bug.cgi?id=104042
Reviewed by Antti Koivisto.
Add DocumentStyleSheetCollection::addAuthorSheet so embedders can allow scripts
to insert author level styles. Expose the method to window.interals for testing.
Test: userscripts/insert-stylesheets.html
* WebCore.exp.in: Update exports for Internals.cpp.
* WebCore.order: Update exports for Internals.cpp.
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
(WebCore::DocumentStyleSheetCollection::addAuthorSheet): Add the stylesheet and force a style recalc.
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets): Include author level styles.
(WebCore::DocumentStyleSheetCollection::reportMemoryUsage): Include author styles.
* dom/DocumentStyleSheetCollection.h:
(WebCore::DocumentStyleSheetCollection::documentAuthorStyleSheets): Accessor.
(DocumentStyleSheetCollection): Keep track of author styles added by script.
* testing/Internals.cpp:
(WebCore::Internals::insertAuthorCSS): Testing addAuthorSheet.
(WebCore::Internals::insertUserCSS): Testing addUserSheet.
* testing/Internals.h:
* testing/Internals.idl: Add addAuthorSheet and addUserSheet.
2012-12-06 Elliott Sprehn <esprehn@gmail.com>
Create only NodeRareDataBase when setting TreeScope
https://bugs.webkit.org/show_bug.cgi?id=104202
Reviewed by Dimitri Glazkov.
Move many fields from NodeRareData into NodeRareDataBase and rename it
UncommonNodeData and add a flag to determine if a UncommonNodeData is
actually a full NodeRareData instance. By moving fields up from NodeRareData
we ensure that this new flag in the base class doesn't make NodeRareData
grow in size.
We then make setting the tree scope only allocate the UncommonNodeData
instead of creating the full NodeRareData or ElementRareData. This is
important because when putting nodes into ShadowRoot or any descendant
we must associate the node with a tree scope which adds rare data to the
node making NodeRareData and ElementRareData not very rare.
On 64bit, this reduces the overhead per element from 136 bytes to
32 bytes for a 76% savings, and on other nodes from 64 bytes to 32 bytes
for a 50% savings.
No new tests, no change in behavior.
* dom/Document.h:
(WebCore::Node::treeScope):
* dom/Element.cpp:
(WebCore::Element::createRareData):
* dom/ElementRareData.h:
(ElementRareData):
(WebCore::ElementRareData::ElementRareData):
* dom/Node.cpp:
(WebCore::Node::setTreeScope):
(WebCore::Node::ensureRareData):
(WebCore::Node::createRareData):
(WebCore::Node::clearRareData):
* dom/Node.h:
(WebCore::UncommonNodeData::create):
(UncommonNodeData):
(WebCore::UncommonNodeData::~UncommonNodeData):
(WebCore::UncommonNodeData::isNodeRareData):
(WebCore::UncommonNodeData::UncommonNodeData):
(WebCore::Node::renderer):
(WebCore::Node::setRenderer):
(Node):
(WebCore::Node::hasRareData):
(WebCore::Node::hasUncommonNodeData):
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
(NodeRareData):
2012-12-06 Joshua Bell <jsbell@chromium.org>
IndexedDB: Remove IDBDatabaseException.idl
https://bugs.webkit.org/show_bug.cgi?id=102961
Reviewed by Adam Barth.
Delete the IDL and references to it. No longer needed as a enum member
in the autogenerated ExceptionCodeDescription.h so removed from the ".in"
file; only direct references are retained in the autogenerated cpp file.
Ideally the code generator would handle these new-style DOMExceptions,
but we don't have any other examples yet to know what pattern to follow.
No new tests - just removing dead code.
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Modules/indexeddb/IDBDatabaseException.idl: Removed.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/DOMExceptions.in:
* dom/make_dom_exceptions.pl:
(generateImplementation):
2012-12-06 Andreas Kling <akling@apple.com>
[Mac] Drain the CSSValuePool on memory pressure.
<http://webkit.org/b/104274>
Reviewed by Antti Koivisto.
Add a drain() mechanism to CSSValuePool and call it when we're under memory pressure.
* WebCore.xcodeproj/project.pbxproj:
* css/CSSValuePool.cpp:
(WebCore::CSSValuePool::drain):
* css/CSSValuePool.h:
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::releaseMemory):
2012-12-05 Adam Klein <adamk@chromium.org>
Remove gyp config for incomplete and unused Apple Mac gyp build
https://bugs.webkit.org/show_bug.cgi?id=104068
Reviewed by Adam Barth.
As part of the removal, move some files to the proper sections
of the gypi file.
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
2012-12-06 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Add support for computing the first included interval position.
https://bugs.webkit.org/show_bug.cgi?id=103327
Reviewed by Levi Weintraub.
If the first "word" in a line doesn't fit within the shape-inside when lineTop
is the top of the shape's logical bounding box, adjust lineTop downwards to where
the word fits. Currently only rounded rectangle shapes are supported.
Added ExclusionShape::firstIncludedIntervalLogicalTop(). The new virtual method
computes the topmost/leftmost location where a line segment with the specified
minLogicalIntervalSize will fit within the exclusion shape and returns the
corresponding logical Y coordinate. The result is additionally constrained to
be at or below minLogicalIntervalTop. If the segment will not fit anywhere within
the shape, then false is returned.
During layout, minLogicalIntervalTop is the nominal top of the line being laid
out within the exclusion shape.
RenderBlock::layoutRunsAndFloatsInRange() now calls a new ExclusionShapeInsideInfo
method, adjustLogicalLineTop(), which uses firstIncludedIntervalLogicalTop() to
decide if the logical top of the line has to be moved downwards, for the first
word to fit within the exclusion shape.
Tests: fast/exclusions/shape-inside/shape-inside-rounded-rectangle-fit-001.html
fast/exclusions/shape-inside/shape-inside-rounded-rectangle-fit-002.html
* rendering/ExclusionPolygon.cpp:
(WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): This is a stub implementation.
* rendering/ExclusionPolygon.h:
* rendering/ExclusionRectangle.cpp:
(WebCore::ellipseXIntercept): Added spaces to conform to webkit style and to be consistent with ellipseYIntercept()
(WebCore::ellipseYIntercept): Compute an ellipse's Y intercept for an X coordinate.
(WebCore::ExclusionRectangle::firstIncludedIntervalLogicalTop): See the description above.
* rendering/ExclusionRectangle.h:
* rendering/ExclusionShape.h:
(ExclusionShape):
(WebCore::ExclusionShape::logicalTopForMinY): Internal to logical coordinate conversion.
* rendering/ExclusionShapeInsideInfo.cpp:
(WebCore::ExclusionShapeInsideInfo::adjustLogicalLineTop): A new method that updates m_lineTop with firstIncludedIntervalPosition().
* rendering/ExclusionShapeInsideInfo.h:
(ExclusionShapeInsideInfo):
(WebCore::ExclusionShapeInsideInfo::logicalLineTop): This is just a cover for the private m_lineTop field.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added code that restarts the layout loop if it's necessary to adjust the line's logicalTop.
(WebCore::RenderBlock::restartLayoutRunsAndFloatsInRange): Factored newly common code into this helper function.
2012-12-06 Ryosuke Niwa <rniwa@webkit.org>
Use ownerNode() instead of base() in HTMLCollection
https://bugs.webkit.org/show_bug.cgi?id=104244
Reviewed by Adam Barth.
Use ownerNode() instead of base() in HTMLCollection to match LiveNodeList.
Notice that the definition of base(), which this patch removes, is "return ownerNode()".
* bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
(WebCore::getNamedItems):
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::JSHTMLOptionsCollection::indexSetter):
(WebCore::JSHTMLOptionsCollection::remove):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateOpaqueRootForGC):
* bindings/scripts/IDLAttributes.txt:
* bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
(WebCore::getNamedItems):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::removeCallback):
(WebCore::V8HTMLOptionsCollection::indexedPropertySetter):
* dom/WebKitNamedFlow.cpp:
(WebCore::WebKitNamedFlow::ownerNode):
* dom/WebKitNamedFlow.h:
(WebKitNamedFlow):
* dom/WebKitNamedFlow.idl:
* html/HTMLAllCollection.idl:
* html/HTMLCollection.h:
(HTMLCollection):
* html/HTMLCollection.idl:
* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
(WebCore::HTMLFormControlsCollection::create):
(WebCore::HTMLFormControlsCollection::formControlElements):
(WebCore::HTMLFormControlsCollection::formImageElements):
(WebCore::HTMLFormControlsCollection::namedItem):
(WebCore::HTMLFormControlsCollection::updateNameCache):
* html/HTMLFormControlsCollection.idl:
* html/HTMLNameCollection.cpp:
(WebCore::HTMLNameCollection::~HTMLNameCollection):
(WebCore::HTMLNameCollection::virtualItemAfter):
* html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::add):
(WebCore::HTMLOptionsCollection::remove):
(WebCore::HTMLOptionsCollection::selectedIndex):
(WebCore::HTMLOptionsCollection::setSelectedIndex):
(WebCore::HTMLOptionsCollection::setLength):
* html/HTMLOptionsCollection.idl:
* html/HTMLPropertiesCollection.cpp:
(WebCore::HTMLPropertiesCollection::updateRefElements):
(WebCore::HTMLPropertiesCollection::namedItem):
* html/HTMLTableRowsCollection.cpp:
(WebCore::HTMLTableRowsCollection::virtualItemAfter):
2012-12-06 Tommy Widenflycht <tommyw@google.com>
Speech Recognition API: Change the error code to a string on SpeechRecognitionError
https://bugs.webkit.org/show_bug.cgi?id=104254
Reviewed by Adam Barth.
SpeechRecognitionError::code (numeric value) has been changed to SpeechRecognitionError::error (string)
in the latest specification.
http://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechreco-error
Existing tests modified to cover this patch.
* Modules/speech/SpeechRecognitionError.cpp:
(WebCore::ErrorCodeToString):
(WebCore):
(WebCore::SpeechRecognitionError::create):
(WebCore::SpeechRecognitionError::SpeechRecognitionError):
* Modules/speech/SpeechRecognitionError.h:
(SpeechRecognitionErrorInit):
(WebCore::SpeechRecognitionError::error):
(SpeechRecognitionError):
* Modules/speech/SpeechRecognitionError.idl:
2012-12-06 Stephen Chenney <schenney@chromium.org>
SVG <use> element inside an svg-as-image fails
https://bugs.webkit.org/show_bug.cgi?id=104007
Reviewed by Eric Seidel.
Upon redraw, SVGImage calls layout on the document it is drawing into
the image if the image, provided it believes the redraw does not need
to be delayed. Unfortunately, when an SVG <use> element is modified
(by animation, say) and regenerates its shadow tree, the destructors
invoke redraw, causing the SVGImage to call layout on something that
is in the process of being deleted. That's bad.
This change causes SVGImage to always delay the redraw. It is the most robust
way to protect against this problem, as there may be any number of
ways to cause this issue (a node being deleted in an svg-as-image
target) and this protects against them all.
The test case crashes in Asan Chromium.
Test: svg/as-image/animated-use-as-image-crash.html
* svg/graphics/SVGImageCache.cpp:
(WebCore::SVGImageCache::imageContentChanged): Always redraw on the timer.
2012-12-06 Antoine Quint <graouts@apple.com>
TextTrack's .cues not ordered correctly when two cues have the same .startTime
https://bugs.webkit.org/show_bug.cgi?id=103266
Reviewed by Eric Carlson.
Adding a new method TextTrackCueList::updateCueIndex() to update the list of
cues after changing the .startTime or .endTime of a TextTrackCue. I elected to
add a new method to TextTrackCueList rather than calling remove() and then add()
on the list from TextTrack::cueDidChange() so that the nature of the operation
is abstracted and we can easily change the way we keep the cue list sorted at
a later time should we choose to.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::cueDidChange):
* html/track/TextTrackCueList.cpp:
(WebCore::TextTrackCueList::updateCueIndex):
(WebCore):
* html/track/TextTrackCueList.h:
(TextTrackCueList):
2012-12-06 Andras Becsi <andras.becsi@digia.com>
[Qt][Mac] Fix libxslt and libxml2 config tests
https://bugs.webkit.org/show_bug.cgi?id=104164
Reviewed by Simon Hausmann.
Since libxml2 is a dependency for libxslt and is not used
standalone the configurations for it should also depend on
whether XSLT is enabled.
Also avoid using pkg-config on Mac, instead use direct
include paths and add needed libraries to the linker.
No new tests needed.
* WebCore.pri:
2012-12-06 Shinya Kawanaka <shinyak@chromium.org>
Internals.getElementByIdInShadowRoot is nonsense now.
https://bugs.webkit.org/show_bug.cgi?id=104241
Reviewed by Kent Tamura.
Since we have ShadowRoot.getElementById() now, we don't need Internals.getElementByIdInShadowRoot, which is
the same functionality of ShadowRoot.getElementById().
Test: fast/dom/shadow/get-element-by-id-in-shadow-root.html
* WebCore.exp.in:
* testing/Internals.cpp:
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2012-12-06 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL] Active texture state gets corrupted after updating graphics surface contents.
https://bugs.webkit.org/show_bug.cgi?id=104248.
Reviewed by Kenneth Rohde Christiansen.
GraphicsContext3DPrivate::copyToGraphicsSurface() doesn't restore the previously bound texture
after copying texture contents. This corrupts the texture state.
Existing Tests should cover this.
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(GraphicsContext3DPrivate::copyToGraphicsSurface):
* platform/graphics/opengl/GLPlatformSurface.cpp:
(WebCore::GLPlatformSurface::updateContents):
* platform/graphics/opengl/GLPlatformSurface.h:
(GLPlatformSurface):
2012-12-06 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Goto panel shortcuts and description are reversed
https://bugs.webkit.org/show_bug.cgi?id=103988
Reviewed by Pavel Feldman.
Swap the square brackets in the shortcuts.
* inspector/front-end/inspector.js:
(WebInspector._registerShortcuts):
2012-12-06 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136818.
http://trac.webkit.org/changeset/136818
https://bugs.webkit.org/show_bug.cgi?id=104249
simulatedClick does not work as per #chrmium irc. (Requested
by hayato on #webkit).
* dom/EventDispatcher.cpp:
(WebCore::EventRelatedTargetAdjuster::adjust):
* dom/MouseEvent.cpp:
(WebCore::MouseEventDispatchMediator::create):
(WebCore::MouseEventDispatchMediator::MouseEventDispatchMediator):
(WebCore::MouseEventDispatchMediator::dispatchEvent):
* dom/MouseEvent.h:
(MouseEventDispatchMediator):
* dom/Node.cpp:
(WebCore::Node::dispatchEvent):
2012-12-06 Ulan Degenbaev <ulan@chromium.org>
[v8] Fix hidden property name of V8ArrayBufferView flag.
https://bugs.webkit.org/show_bug.cgi?id=104099
Reviewed by Kentaro Hara.
Fix hidden property name of V8ArrayBufferView hidden copy method.
* bindings/v8/V8HiddenPropertyName.h:
(WebCore):
* bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
(WebCore::getHiddenCopyMethod):
(WebCore::installHiddenCopyMethod):
2012-12-06 Kentaro Hara <haraken@chromium.org>
Unreviewed. Fixed a wrong comment landed in r136822.
* bindings/v8/V8Binding.h:
(WebCore):
2012-12-05 Kentaro Hara <haraken@chromium.org>
[V8] Implement deprecatedV8String()
https://bugs.webkit.org/show_bug.cgi?id=104230
Reviewed by Adam Barth.
To make an Isolate mandatory in v8String(), we implement
deprecatedV8String() for call sites that don't have
an Isolate. Eventually we want to kill the method though.
No tests. No change in behavior.
* bindings/scripts/test/V8/V8TestCallback.cpp:
(WebCore::V8TestCallback::callbackWithClass2Param):
* bindings/v8/Dictionary.cpp:
(WebCore::Dictionary::getKey):
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::get):
(WebCore::set):
* bindings/v8/JavaScriptCallFrame.cpp:
(WebCore::JavaScriptCallFrame::evaluate):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::compileAndRunScript):
(WebCore::ScriptController::bindToWindowObject):
(WebCore::ScriptController::disableEval):
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::setBreakpoint):
(WebCore::ScriptDebugServer::removeBreakpoint):
(WebCore::ScriptDebugServer::setScriptSource):
(WebCore::ScriptDebugServer::ensureDebuggerScriptCompiled):
(WebCore::ScriptDebugServer::compileScript):
* bindings/v8/ScriptFunctionCall.cpp:
(WebCore::ScriptCallArgumentHandler::appendArgument):
(WebCore::ScriptFunctionCall::call):
(WebCore::ScriptFunctionCall::construct):
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::start):
(WebCore::ScriptProfiler::stop):
(WebCore::ScriptProfiler::takeHeapSnapshot):
* bindings/v8/ScriptSourceCode.cpp:
(WebCore::ScriptSourceCode::compileScript):
* bindings/v8/V8Binding.h:
(WebCore):
(WebCore::deprecatedV8String):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initializeIfNeeded):
(WebCore::V8DOMWindowShell::namedItemAdded):
(WebCore::V8DOMWindowShell::namedItemRemoved):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::prepareListenerObject):
* bindings/v8/V8WindowErrorHandler.cpp:
(WebCore::V8WindowErrorHandler::callListenerFunction):
* bindings/v8/V8WorkerContextErrorHandler.cpp:
(WebCore::V8WorkerContextErrorHandler::callListenerFunction):
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
* bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
(WebCore::installHiddenCopyMethod):
(WebCore::copyElements):
* bindings/v8/custom/V8CustomXPathNSResolver.cpp:
(WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::V8InjectedScriptHost::getEventListenersCallback):
* bindings/v8/custom/V8InjectedScriptManager.cpp:
(WebCore::InjectedScriptManager::createInjectedScript):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::dataAccessorGetter):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toV8Object):
(WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallback):
2012-12-06 Keishi Hattori <keishi@webkit.org>
Page popup should align to the right when the anchor element is rtl
https://bugs.webkit.org/show_bug.cgi?id=104219
Reviewed by Kent Tamura.
Page popup should align to the right edge of the anchor element when the anchor element is rtl.
No new tests. Mock page popup can't test popup window position.
* Resources/pagepopups/pickerCommon.js:
(_adjustWindowRectHorizontally): Align to the right edge when anchor element is rtl. Removed some redundant lines.
(setWindowRect): If the window is hidden we want to move first then resize so the popup doesn't flicker.
(isWindowHidden): Returns true if the window is hidden using hideWindow().
2012-12-06 Kentaro Hara <haraken@chromium.org>
[V8] Make an Isolate mandatory for v8StringOrNull() and v8StringOrUndefined()
https://bugs.webkit.org/show_bug.cgi?id=104213
Reviewed by Adam Barth.
All call sites of v8StringOrNull() and v8StringOrUndefined() have an Isolate.
No tests. No change in behavior.
* bindings/v8/V8Binding.h:
(WebCore::v8StringOrNull):
(WebCore::v8StringOrUndefined):
2012-12-05 Kentaro Hara <haraken@chromium.org>
[V8] Implement deprecatedV8Integer(int i)
https://bugs.webkit.org/show_bug.cgi?id=104220
Reviewed by Adam Barth.
To make an Isolate mandatory in v8Integer(), we implement
deprecatedV8Integer(int i) for call sites that don't have
an Isolate. Eventually we want to kill deprecatedV8Integer(int i).
No new tests. No change in behavior.
* bindings/v8/Dictionary.cpp:
(WebCore::Dictionary::get):
* bindings/v8/NPV8Object.cpp:
(_NPN_Enumerate):
* bindings/v8/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::addListener):
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::setBreakpoint):
(WebCore::ScriptDebugServer::compileScript):
* bindings/v8/ScriptSourceCode.cpp:
(WebCore::ScriptSourceCode::compileScript):
* bindings/v8/V8Binding.h:
(WebCore):
(WebCore::deprecatedV8Integer):
* bindings/v8/V8DOMConfiguration.cpp:
(WebCore::V8DOMConfiguration::batchConfigureConstants):
* bindings/v8/V8NPUtils.cpp:
(WebCore::convertNPVariantToV8Object):
* bindings/v8/V8Utilities.cpp:
(WebCore::createHiddenDependency):
(WebCore::removeHiddenDependency):
* bindings/v8/V8WindowErrorHandler.cpp:
(WebCore::V8WindowErrorHandler::callListenerFunction):
* bindings/v8/V8WorkerContextErrorHandler.cpp:
(WebCore::V8WorkerContextErrorHandler::callListenerFunction):
* bindings/v8/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::addListener):
* bindings/v8/custom/V8MutationCallbackCustom.cpp:
(WebCore::V8MutationCallback::handleEvent):
2012-12-06 Hayato Ito <hayato@chromium.org>
Event's relatedTarget re-targeting does not occur for manually fired mouse events created by event.initMouseEvent().
https://bugs.webkit.org/show_bug.cgi?id=102681
Reviewed by Dimitri Glazkov.
Make sure that event's relatedTarget re-targeting occurs for mouse
events created by event.initMouseEvent(). Since user-generated
mouse events can have a relatedTarget which is same to the target
node, the algorithm which calculates event's ancestors is also
updated so that ancestors are not shrunk wrongly.
Test: fast/events/dispatch-synthetic-mouseevent.html
fast/dom/shadow/shadow-dom-event-dispatching.html
* dom/EventDispatcher.cpp:
(WebCore::EventRelatedTargetAdjuster::adjust):
* dom/MouseEvent.cpp:
(WebCore::MouseEventDispatchMediator::create):
(WebCore::MouseEventDispatchMediator::MouseEventDispatchMediator):
(WebCore::MouseEventDispatchMediator::dispatchEvent):
* dom/MouseEvent.h:
(WebCore::MouseEventDispatchMediator::isSyntheticMouseEvent):
(MouseEventDispatchMediator):
* dom/Node.cpp:
(WebCore::Node::dispatchEvent):
2012-12-06 Michael Pruett <michael@68k.org>
[JSC] Check whether property is an array before attempting conversion to array in JSDictionary
https://bugs.webkit.org/show_bug.cgi?id=96614
Reviewed by Kentaro Hara.
JSDictionary should check whether the property being accessed in get()
is an array before attempting to convert the value to an array.
Previously calling get() with a result type of Vector<String> when
the named property could not be converted to an array would generate
an exception.
Tests: storage/indexeddb/*
* bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue):
* bindings/js/JSDictionary.h:
(WebCore::JSDictionary::tryGetPropertyAndResult):
2012-12-05 Kentaro Hara <haraken@chromium.org>
[V8] Pass Isolate to toDOMStringList()
https://bugs.webkit.org/show_bug.cgi?id=104224
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(JSValueToNative):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::overloadedMethod6Callback):
(WebCore::TestObjV8Internal::overloadedMethod7Callback):
(WebCore::TestObjV8Internal::overloadedMethod9Callback):
(WebCore::TestObjV8Internal::stringArrayFunctionCallback):
* bindings/v8/V8Binding.cpp:
(WebCore::toDOMStringList):
* bindings/v8/V8Binding.h:
(WebCore):
2012-12-06 Kentaro Hara <haraken@chromium.org>
Remove JSDependentRetained.h and V8DependentRetained.h
https://bugs.webkit.org/show_bug.cgi?id=104232
Reviewed by Adam Barth.
Although (JS|V8)DependentRetained.h were introduced for MutationObservers,
they are not going to be used (See the discussion in bug 95519).
We can remove them.
No tests. No change in behavior.
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDependentRetained.h: Removed.
* bindings/v8/V8DependentRetained.h: Removed.
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::V8PerIsolateData):
* bindings/v8/V8PerIsolateData.h:
(V8PerIsolateData):
2012-12-06 Kentaro Hara <haraken@chromium.org>
[V8] Replace v8String("symbol") with v8::String::NewSymbol("symbol")
https://bugs.webkit.org/show_bug.cgi?id=104209
Reviewed by Adam Barth.
V8 can look up symbols faster than strings.
No tests. No change in behavior.
* bindings/v8/JavaScriptCallFrame.cpp:
(WebCore::JavaScriptCallFrame::caller):
(WebCore::JavaScriptCallFrame::sourceID):
(WebCore::JavaScriptCallFrame::line):
(WebCore::JavaScriptCallFrame::column):
(WebCore::JavaScriptCallFrame::functionName):
(WebCore::JavaScriptCallFrame::scopeChain):
(WebCore::JavaScriptCallFrame::scopeType):
(WebCore::JavaScriptCallFrame::thisObject):
(WebCore::JavaScriptCallFrame::evaluate):
(WebCore::JavaScriptCallFrame::restart):
* bindings/v8/V8ThrowException.cpp:
(WebCore::domExceptionStackGetter):
(WebCore::domExceptionStackSetter):
(WebCore::V8ThrowException::setDOMException):
* bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
(WebCore::V8InspectorFrontendHost::platformCallback):
* bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
(WebCore::V8JavaScriptCallFrame::typeAccessorGetter):
2012-12-06 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136784 and r136802.
http://trac.webkit.org/changeset/136784
http://trac.webkit.org/changeset/136802
https://bugs.webkit.org/show_bug.cgi?id=104231
breaks chromium canary (Requested by morrita on #webkit).
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* platform/chromium/PlatformThemeChromiumLinux.cpp: Added.
(WebCore):
(WebCore::PlatformThemeChromiumLinux::setScrollbarColors):
(WebCore::clamp):
(WebCore::PlatformThemeChromiumLinux::saturateAndBrighten):
(WebCore::PlatformThemeChromiumLinux::outlineColor):
(WebCore::PlatformThemeChromiumLinux::paintArrowButton):
* platform/chromium/PlatformThemeChromiumLinux.h: Added.
(WebCore):
(PlatformThemeChromiumLinux):
(WebCore::PlatformThemeChromiumLinux::thumbInactiveColor):
(WebCore::PlatformThemeChromiumLinux::thumbActiveColor):
(WebCore::PlatformThemeChromiumLinux::trackColor):
(WebCore::PlatformThemeChromiumLinux::PlatformThemeChromiumLinux):
* platform/chromium/ScrollbarThemeChromiumLinux.cpp: Added.
(WebCore):
(WebCore::ScrollbarTheme::nativeTheme):
(WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
(WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
(WebCore::ScrollbarThemeChromiumLinux::paintButton):
(WebCore::ScrollbarThemeChromiumLinux::paintThumb):
(WebCore::ScrollbarThemeChromiumLinux::shouldCenterOnThumb):
(WebCore::ScrollbarThemeChromiumLinux::buttonSize):
(WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
* platform/chromium/ScrollbarThemeChromiumLinux.h: Added.
(ScrollbarThemeChromiumLinux):
* rendering/RenderThemeChromiumAndroid.cpp:
(WebCore::RenderThemeChromiumAndroid::extraDefaultStyleSheet):
* rendering/RenderThemeChromiumAndroid.h:
* rendering/RenderThemeChromiumLinux.cpp: Added.
(WebCore):
(WebCore::getWebThemeState):
(WebCore::RenderThemeChromiumLinux::create):
(WebCore::RenderTheme::themeForPage):
(WebCore::RenderThemeChromiumLinux::RenderThemeChromiumLinux):
(WebCore::RenderThemeChromiumLinux::~RenderThemeChromiumLinux):
(WebCore::RenderThemeChromiumLinux::systemColor):
(WebCore::RenderThemeChromiumLinux::extraDefaultStyleSheet):
(WebCore::RenderThemeChromiumLinux::controlSupportsTints):
(WebCore::RenderThemeChromiumLinux::activeListBoxSelectionBackgroundColor):
(WebCore::RenderThemeChromiumLinux::activeListBoxSelectionForegroundColor):
(WebCore::RenderThemeChromiumLinux::inactiveListBoxSelectionBackgroundColor):
(WebCore::RenderThemeChromiumLinux::inactiveListBoxSelectionForegroundColor):
(WebCore::RenderThemeChromiumLinux::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeChromiumLinux::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeChromiumLinux::platformActiveSelectionForegroundColor):
(WebCore::RenderThemeChromiumLinux::platformInactiveSelectionForegroundColor):
(WebCore::RenderThemeChromiumLinux::sliderTickSize):
(WebCore::RenderThemeChromiumLinux::sliderTickOffsetFromTrackCenter):
(WebCore::RenderThemeChromiumLinux::adjustSliderThumbSize):
(WebCore::RenderThemeChromiumLinux::supportsControlTints):
(WebCore::RenderThemeChromiumLinux::setCaretBlinkInterval):
(WebCore::RenderThemeChromiumLinux::caretBlinkIntervalInternal):
(WebCore::RenderThemeChromiumLinux::setSelectionColors):
(WebCore::RenderThemeChromiumLinux::paintCheckbox):
(WebCore::RenderThemeChromiumLinux::setCheckboxSize):
(WebCore::RenderThemeChromiumLinux::paintRadio):
(WebCore::RenderThemeChromiumLinux::setRadioSize):
(WebCore::RenderThemeChromiumLinux::paintButton):
(WebCore::RenderThemeChromiumLinux::paintTextField):
(WebCore::RenderThemeChromiumLinux::paintMenuList):
(WebCore::RenderThemeChromiumLinux::paintSliderTrack):
(WebCore::RenderThemeChromiumLinux::paintSliderThumb):
(WebCore::RenderThemeChromiumLinux::adjustInnerSpinButtonStyle):
(WebCore::RenderThemeChromiumLinux::paintInnerSpinButton):
(WebCore::RenderThemeChromiumLinux::paintProgressBar):
(WebCore::RenderThemeChromiumLinux::shouldOpenPickerWithF4Key):
* rendering/RenderThemeChromiumLinux.h: Added.
(WebCore):
(RenderThemeChromiumLinux):
2012-12-05 Sankeerth V S <sankeerth.vs@samsung.com>
Web Inspector: Title of "Record Timeline" status button on "Timeline
Panel" should reflect the recording state.
https://bugs.webkit.org/show_bug.cgi?id=104108
Reviewed by Alexander Pavlov.
Title should be toggled between "Record"/"Stop" to reflect current
state of the Status bar button.
No new tests as UI related change.
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype.get _toggleTimelineButtonClicked):
2012-12-03 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI doesn't show digits well in RTL locales
https://bugs.webkit.org/show_bug.cgi?id=103869
Reviewed by Hajime Morita.
We need to use display:inline elements to wrap sub-fields and static
text in DateTimeEditElement children to apply the Unicode Bidi
Algorithm.
Because we can't use display:inline-block for them, we can't specify
min-width CSS property for them. We stop using customStyleForRenderer of
sub-fields to specify each of their widths, and use
customStyleForRenderer of DateTimeEditElement to specify the total
required width. A sub-field width shrink and grow so that the width fits
to the field value, and a DateTimeEditElement doesn't.
No new tests. Coverred by existing tests, especially
fast/forms/datetime/datetime-appearance-l10n.html shows "23:59"
correctly.
* css/html.css:
(input::-webkit-datetime-edit-year-field):
- Make this display:inline to apply the Unicode Bidi Algorithm.
- Use padding instead of margin because of ease of width computation.
Also, the focus apparance gets better by padding.
- Don't allow to specify font property here because of ease of width
computation.
- Remove text-align:center. It doesn't work for display:inline.
(input::-webkit-datetime-edit-text):
- Make this display:inline to apply the Unicode Bidi Algorithm.
- Don't allow to specify font property here because of ease of width
computation.
* html/shadow/DateTimeEditElement.h:
(DateTimeEditElement): Declare customStyleForRenderer.
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditElement::DateTimeEditElement):
Enable customStyleForRenderer.
(WebCore::DateTimeEditElement::customStyleForRenderer):
Compute required width with a font for this element and child maximum
widths, and set it to min-width style.
The resultant width value can be inaccurate if a page author specifies
padding, border, margin, etc. to ::-webkit-datetime-edit-*-field or
::-webkit-datetime-edit-text. In such case, the page author should specify
wider width to <input>.
* dom/Element.h:
(Element): Add isDateTimeFieldElement to do static_cast<DateTimeFieldElement> safely.
* dom/Element.cpp:
(WebCore::Element::isDateTimeFieldElement): Added.
* html/shadow/DateTimeFieldElement.h:
(DateTimeFieldElement): Declare isDateTimeFieldElement and maximumWidth.
* html/shadow/DateTimeFieldElement.cpp:
(WebCore::DateTimeFieldElement::isDateTimeFieldElement):
Added. Returns true.
(WebCore::DateTimeFieldElement::maximumWidth):
Added. Returns padding width.
* html/shadow/DateTimeSymbolicFieldElement.h:
(DateTimeSymbolicFieldElement):
Remove customStyleForRenderer, and declare maximumWidth.
* html/shadow/DateTimeSymbolicFieldElement.cpp:
(WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
Disable customStyleForRenderer.
(WebCore::DateTimeSymbolicFieldElement::maximumWidth):
Added. Returns the expected maximum width with the specified font.
* html/shadow/DateTimeNumericFieldElement.h:
(DateTimeNumericFieldElement):
Remove customStyleForRenderer, declare maximumWidth, and make m_placeholder
non-const because it is updated in the constructor.
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
Disable customStyleForRenderer.
If a numeric value for this field is LTR and the whole direction is RTL,
wrap the placeholder string with left-to-right-mark and
right-to-left-mark so that it is handled as LTR. Without this,
sub-fields order would be changed when the content of a field is changed
from a placeholder to a numeric value.
(WebCore::DateTimeNumericFieldElement::maximumWidth):
Added. Returns the expected maximum width with the specified font.
2012-12-05 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: The hour, am/pm, millisecond fields should support read-only state correctly
https://bugs.webkit.org/show_bug.cgi?id=104210
Reviewed by Kentaro Hara.
1. The hour, am/pm, and millisecond fields should have CSS rules for
[readonly]. They should be gray when they are read-only.
2. The am/pm field should reject to set an empty value like other
numeric fields do.
Tests: Add test cases to fast/forms/time/time-appearance-basic.html.
* css/html.css: merge existing readonly rules, and add ampm, hour, and
millisecond pseudo classes.
* html/shadow/DateTimeSymbolicFieldElement.cpp:
(WebCore::DateTimeSymbolicFieldElement::setEmptyValue):
Reject to set empty value if it is read-only.
2012-12-05 Dan Beam <dbeam@chromium.org>
HTMLFormElement#requestAutocomplete() should require a user action
https://bugs.webkit.org/show_bug.cgi?id=102320
Reviewed by Kent Tamura.
This patch dispatches an autocompleteerror when HTMLFormElement::requestAutocomplete() is called while not processing
a user gesture.
* fast/forms/form-request-autocomplete.html is updated.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::requestAutocomplete):
Asynchronously dispatch an autocomplete error when not processing a user action when
HTMLFormElement#requestAutocomplete() is invoked.
2012-12-05 Kentaro Hara <haraken@chromium.org>
[V8] Optimize v8StringOrNull() and v8StringOrUndefined()
https://bugs.webkit.org/show_bug.cgi?id=104206
Reviewed by Adam Barth.
Currently v8StringOrNull() and v8StringOrUndefined() are checking
a null string twice. It is redundant.
[div.localName]
Before this patch: 20.03 ns
After this patch: 19.34 ns
* bindings/v8/V8Binding.h:
(WebCore::v8StringOrNull):
(WebCore::v8StringOrUndefined):
2012-12-05 Kentaro Hara <haraken@chromium.org>
[V8] Optimize v8String() for uninitialized DOM attributes
https://bugs.webkit.org/show_bug.cgi?id=104205
Reviewed by Adam Barth.
This patch makes uninitialized div.lang, div.title etc 6.3% faster.
[div.lang]
Before this patch: 12.6 ns
After this patch: 11.8 ns
* bindings/v8/V8Binding.h:
(WebCore::v8String):
2012-12-05 Kentaro Hara <haraken@chromium.org>
[V8] Remove addImplicitReferencesForNodeWithEventListeners()
https://bugs.webkit.org/show_bug.cgi?id=104203
Reviewed by Adam Barth.
We can use opaqueRootForGC() instead. By this change, we can remove
all AddImplicitReferences() from V8 bindings.
Tests: fast/dom/gc-image-element.html
fast/dom/gc-image-element-2.html
fast/dom/inline-event-attributes-lookup-removed.html
* bindings/v8/V8GCController.cpp:
2012-12-05 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Blocks don't relayout children if the width of a region changes
https://bugs.webkit.org/show_bug.cgi?id=103993
Reviewed by David Hyatt.
After r135750 lines are no longer invalidating when regions change width. This is happening because the detection for the width change was being done
only at line layout time. This patch moves the line relayout decision to the containing block by setting the relayoutChildren flag if the block
has no region chain attached.
Tests: fast/regions/region-width-change-relayout-1.html
fast/regions/region-width-change-relayout-2.html
fast/regions/region-width-change-relayout-3.html
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::logicalWidthChangedInRegions):
2012-12-05 Kihong Kwon <kihong.kwon@samsung.com>
Parameter event need to covert to RefPtr in the DeviceController::dispatchDeviceEvent
https://bugs.webkit.org/show_bug.cgi?id=104201
Reviewed by Laszlo Gombos.
Parameter 'event' need to covert to RefPtr in the DeviceController::dispatchDeviceEvent.
This can make crash sometimes.
No new tests. Covered by existing layout tests.
* page/DeviceController.cpp:
(WebCore::DeviceController::dispatchDeviceEvent):
2012-12-05 Halton Huo <halton.huo@intel.com>
[CMake] Unify coding style for CMake files
https://bugs.webkit.org/show_bug.cgi?id=103605
Reviewed by Laszlo Gombos.
Update cmake files(.cmake, CMakeLists.txt) with following style rules:
1. Indentation
1.1 Use spaces, not tabs.
1.2 Four spaces as indent.
2. Spacing
2.1 Place one space between control statements and their parentheses.
For eg, if (), else (), elseif (), endif (), foreach (),
endforeach (), while (), endwhile (), break ().
2.2 Do not place spaces between function and macro statements and
their parentheses. For eg, macro(), endmacro(), function(),
endfunction().
2.3 Do not place spaces between a command or function or macro and its
parentheses, or between a parenthesis and its content. For eg,
message("testing") not message( "testing") or message ("testing" )
2.4 No space at line ending.
3. Lowercase when call commands macros and functions. For eg,
add_executable() not ADD_EXECUTABLE(), set() not SET().
* CMakeLists.txt:
* PlatformBlackBerry.cmake:
* PlatformEfl.cmake:
* PlatformWinCE.cmake:
* UseJSC.cmake:
* UseV8.cmake:
2012-12-05 Kentaro Hara <haraken@chromium.org>
[V8] Remove unused property names from V8HiddenPropertyName
https://bugs.webkit.org/show_bug.cgi?id=104194
Reviewed by Adam Barth.
We can remove unused property names from V8HiddenPropertyName.
No tests. No change in behavior.
* bindings/v8/V8HiddenPropertyName.h:
(WebCore):
2012-12-05 Greg Billock <gbillock@google.com>
Add runtime enable for web intents.
https://bugs.webkit.org/show_bug.cgi?id=103669
Reviewed by Adam Barth.
Make web intents Javascript API enabled by a runtime setting.
* Modules/intents/DOMWindowIntents.idl:
* Modules/intents/NavigatorIntents.idl:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures):
(WebCore::RuntimeEnabledFeatures::webkitStartActivityEnabled):
(WebCore::RuntimeEnabledFeatures::webkitIntentEnabled):
(WebCore::RuntimeEnabledFeatures::webKitIntentEnabled):
(WebCore::RuntimeEnabledFeatures::setWebIntentsEnabled):
2012-12-05 Scott Violet <sky@chromium.org>
[chromium] Remove linux theme related files and switch to default
https://bugs.webkit.org/show_bug.cgi?id=103897
Reviewed by Tony Chang.
Linux related theme files are now named Default.
No new tests, code cleanup.
* WebCore.gyp/WebCore.gyp: Update files
* WebCore.gypi: Update files
* platform/chromium/PlatformThemeChromiumLinux.cpp: Removed.
* platform/chromium/PlatformThemeChromiumLinux.h: Removed.
* platform/chromium/ScrollbarThemeChromiumLinux.cpp: Removed.
* platform/chromium/ScrollbarThemeChromiumLinux.h: Removed.
* rendering/RenderThemeChromiumAndroid.cpp:
(WebCore::RenderThemeChromiumAndroid::extraDefaultStyleSheet): Linux->Default
* rendering/RenderThemeChromiumAndroid.h: Change superclass
* rendering/RenderThemeChromiumLinux.cpp: Removed.
* rendering/RenderThemeChromiumLinux.h: Removed.
2012-12-05 Joshua Bell <jsbell@chromium.org>
IndexedDB: Allow multiple transactions to interleave request execution
https://bugs.webkit.org/show_bug.cgi?id=97570
Reviewed by Tony Chang.
Implement spec logic for allowing read-only transactions, and read-write transactions
with non-overlapping scopes, to run concurrently. Transactions all still run in the
same thread with tasks triggered via timers, so tasks and the underlying database
operations are interleaved rather than truly parallelized.
Within IDBTransactionCoordinator, rename started->queued, running->started to match
spec terminology and clear up confusion.
Test: storage/indexeddb/transaction-coordination-across-databases.html
storage/indexeddb/transaction-coordination-within-database.html
storage/indexeddb/transaction-readwrite-exclusive.html
storage/indexeddb/transaction-scope-sequencing.html
storage/indexeddb/transaction-starvation.html
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Use IDBTransaction::Mode enum
(WebCore::IDBDatabaseBackendImpl::createTransaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.h: Ditto.
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h: Ditto.
(IDBDatabaseBackendInterface):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp: Convert scope as a HashSet for
fast intersecting.
(WebCore::IDBTransactionBackendImpl::create):
(WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(IDBTransactionBackendImpl):
(WebCore::IDBTransactionBackendImpl::mode):
(WebCore::IDBTransactionBackendImpl::scope):
* Modules/indexeddb/IDBTransactionCoordinator.cpp: Spec logic goes here.
(WebCore::IDBTransactionCoordinator::processStartedTransactions): Extend this
method to test all plausibly runnable transactions.
(WebCore):
(WebCore::IDBTransactionCoordinator::canRunTransaction): Test to see if one
particular transaction can be run.
(WebCore::IDBTransactionCoordinator::doScopesOverlap): Do a quick intersection
test between transaction scopes.
* Modules/indexeddb/IDBTransactionCoordinator.h:
(IDBTransactionCoordinator):
2012-12-05 No'am Rosenthal <noam@webkit.org>
Coordinated Graphics: Enable support for setContentsToBackgroundColor
https://bugs.webkit.org/show_bug.cgi?id=104128
Reviewed by Kenneth Rohde Christiansen.
Enable background color in GraphicsLayerTextureMapper, and paint it using TextureMapper::drawSolidColor.
Once https://bugs.webkit.org/show_bug.cgi?id=103786 is enabled, this would enable Qt/GTK/EFL to directly
composite colors that only have a background color, without having to create a backing store for them.
This would eliminate the memory usage for those layers, reduce the time needed for them to draw into the
backing store and upload the texture, and in the future allow direct compositing of things other than
background colors.
Compositing tests cover this, but are still skipped for ports using coordinated graphics.
See https://bugs.webkit.org/show_bug.cgi?id=104129.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setContentsToBackgroundColor):
(WebCore::GraphicsLayerTextureMapper::backgroundColor):
Maintain a backgroundColor member variable in GraphicsLayerTextureMapper
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawSolidColor):
TextureMapperGL::drawSolidColor should allow blending when the solid color has alpha.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::flushCompositingStateSelf):
* platform/graphics/texmap/TextureMapperLayer.h:
(State):
2012-12-05 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r136481.
http://trac.webkit.org/changeset/136481
https://bugs.webkit.org/show_bug.cgi?id=103868
it might have regressed dom_perf/CloneNodes (See bug 104177)
* dom/ContainerNodeAlgorithms.h:
(ChildNodeInsertionNotifier):
(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
(WebCore::ChildNodeInsertionNotifier::notify):
2012-12-05 David Grogan <dgrogan@chromium.org>
IndexedDB: Abort transactions because of leveldb errors part 3
https://bugs.webkit.org/show_bug.cgi?id=103960
Reviewed by Tony Chang.
Transactions are aborted when there are leveldb problems creating
indexes on an object store with existing data or when adding data to an
objectstore that has indexes.
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore):
(WebCore::makeIndexWriters):
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
2012-12-05 Simon Fraser <simon.fraser@apple.com>
Fix some repaint/paintCounter confusion, and reset it when getting layers out of the layer pool
https://bugs.webkit.org/show_bug.cgi?id=104180
Reviewed by Tim Horton.
Layers retrieved from the LayerPool by TileCache need to have their
repaint counters reset, otherwise the scroll performance logging gets
confused.
Also, the counter counts paints, not repaints (invalidations), so
rename it accordingly.
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea): Whitespace fix.
* platform/graphics/GraphicsLayer.h:
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::blankPixelCountForTiles):
(WebCore::TileCache::createTileLayer):
(WebCore::TileCache::drawRepaintCounter):
* platform/graphics/ca/mac/WebTileLayer.h:
* platform/graphics/ca/mac/WebTileLayer.mm:
(-[WebTileLayer resetPaintCount]):
(-[WebTileLayer incrementPaintCount]):
(-[WebTileLayer paintCount]):
(-[WebTileLayer logFilledFreshTile]):
2012-12-05 Oliver Hunt <oliver@apple.com>
Empty parse cache when receiving a low memory warning
https://bugs.webkit.org/show_bug.cgi?id=104161
Reviewed by Filip Pizlo.
Use new discardAllCode() function on the global data, rather than
directly interacting with the heap.
* bindings/js/GCController.cpp:
(WebCore::GCController::discardAllCompiledCode):
2012-12-05 Dan Bernstein <mitz@apple.com>
Text decorations are rotated when text-combine takes effect
https://bugs.webkit.org/show_bug.cgi?id=104172
Reviewed by Dave Hyatt.
Test: fast/text/decorations-with-text-combine.html
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Applied a rotation to the graphics context when painting
the text decorations for combined text.
2012-12-05 Justin Novosad <junov@google.com>
[skia] Improve performance of GraphicsContext::createCompatibleBuffer by using SkDevice:createCompatibleDevice
https://bugs.webkit.org/show_bug.cgi?id=103896
Reviewed by Stephen White.
Refactored GraphicsContext::createCompatibleBuffer (platform common
code) to use platform-specific implementations provided by ImageBuffer.
There is no change in behavior for non-skia ports. The skia
implementation uses skia'a own createCompatibleDevice implementation,
which offers several performance benefits:
1. For accelerated contexts, the backing store may be allocated from
the scratch texture pool, which minimizes texture allocation and
deallocation overhead.
2. The backing store will not be initially cleared if it is known
in advance that fully opaque contents will be drawn into the buffer.
3. For non-accelerated contexts, if the backing store is flagged as
opaque, faster blitter loop implementations will be used for drawing
the buffer contents into other buffers. (e.g. generated opaque gradient
fills)
No new tests: covered by existing layout tests
* platform/graphics/Generator.h:
(Generator):
Added hasAlpha method so that it can be used by GeneratorGeneratedImage
* platform/graphics/GeneratorGeneratedImage.cpp:
(WebCore::GeneratorGeneratedImage::drawPattern):
Passing m_generator->hasAlpha() to createCompatibleBuffer in order to
take advantage of optimizations that apply to opaque buffers.
* platform/graphics/Gradient.h:
(Gradient):
Made hasAlpha virtual so that it now overrides Generator::hasAlpha
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::createCompatibleBuffer):
Refactored to use platform-specific implementation
* platform/graphics/GraphicsContext.h:
* platform/graphics/ImageBuffer.cpp:
(WebCore::createCompatibleBuffer):
Non-skia implementation. Mimics old
GraphicsContext::createCompatibleBuffer
* platform/graphics/ImageBuffer.h:
(ImageBuffer):
New skia-specific constructor
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::ImageBuffer::createCompatibleBuffer):
(WebCore::ImageBuffer::ImageBuffer):
* platform/graphics/skia/PlatformContextSkia.cpp:
(WebCore::PlatformContextSkia::createCompatibleDevice):
(WebCore):
* platform/graphics/skia/PlatformContextSkia.h:
(PlatformContextSkia):
2012-12-05 Alexis Menard <alexis@webkit.org>
REGRESSION (r136683): css3/calc/background-position-parsing.html failing on EFL Linux 64-bit Debug WK2
https://bugs.webkit.org/show_bug.cgi?id=104131
Reviewed by Antti Koivisto.
css3/calc/background-position-parsing.html assert in debug because we
call CSSParser::validUnit multiple times in a row. The problem was with
validUnit which check calc() values and save the result inside
m_parsedCalculation for later usage. validUnit expects you to
use m_parsedCalculation therefore calling validUnit again with
m_parsedCalculation being set asserts. As parseFillBackgroundPosition
just want to check wether the current value is maybe valid for
background-position we can just relax the check to allow either the
valid keywords or any other units (we will anyway filter the incorrect
values later in the parsing). The most important check at this point
for the shorthand is the validity of the keyword.
No new tests : the assert was covered by css3/calc/background-position-parsing.html.
* css/CSSParser.cpp:
(WebCore::CSSParser::isPotentialPositionValue):
(WebCore::CSSParser::parseFillBackgroundPosition):
* css/CSSParser.h:
2012-12-05 Stephen White <senorblanco@chromium.org>
Unreviewed, rolling out r136735.
http://trac.webkit.org/changeset/136735
https://bugs.webkit.org/show_bug.cgi?id=102699
Broke Chrome/Win build.
* platform/chromium/PlatformSupport.h:
(PlatformSupport):
* platform/chromium/ScrollbarThemeChromiumWin.cpp:
(WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
(WebCore::ScrollbarThemeChromiumWin::paintButton):
(WebCore::ScrollbarThemeChromiumWin::paintThumb):
* rendering/RenderThemeChromiumWin.cpp:
(WebCore):
(WebCore::RenderThemeChromiumWin::paintButton):
(WebCore::RenderThemeChromiumWin::paintSliderTrack):
(WebCore::RenderThemeChromiumWin::paintSliderThumb):
(WebCore::RenderThemeChromiumWin::paintMenuList):
(WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
(WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
(WebCore::RenderThemeChromiumWin::paintProgressBar):
2012-12-05 Jun Jiang <jun.a.jiang@intel.com>
WebGL: use pointer to the source data for Image directly in texImage2D and texSubImage2D to avoid memory copy if no conversion is needed
https://bugs.webkit.org/show_bug.cgi?id=103885
Reviewed by Kenneth Russell.
In texImage2D() and texSubImage2D(), there is a redundant memory copy from Image data to the intermediate vector when no conversion is needed. If the Image resource can be locked properly, it is better to use the pointer to the image source directly and hence avoid the memory copy and improve the performance.
Already covered by current tests.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::texImage2DBase):
(WebCore::WebGLRenderingContext::texImage2DImpl):
(WebCore::WebGLRenderingContext::texSubImage2DBase):
(WebCore::WebGLRenderingContext::texSubImage2DImpl):
* html/canvas/WebGLRenderingContext.h:
(WebGLRenderingContext):
* platform/graphics/GraphicsContext3D.h:
(ImageExtractor):
2012-12-05 Elliott Sprehn <esprehn@chromium.org>
Add infrastructure for :before and :after in DOM
https://bugs.webkit.org/show_bug.cgi?id=103705
Reviewed by Eric Seidel.
Add all infrastructure for reimplementing generated content :before and
:after as DOM Elements. Now ElementRareData has two pointers to PseudoElements
for the generated content and Node has methods for traversing the tree
including generated content.
This will allow the generated content to be treated as real nodes instead
of anonymous and take part in the usual recalcStyle and attach flow which
fixes many bugs and vastly simplifies the ifecycle of generated content.
Instead of attempting to land both the infrastructure and enable it at
the same time which has proven problematic due to how drastic this change
is, this patch contains only the support code so a much smaller future
patch can be used to switch it on.
No new behavior, this is just the infrastructure.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/DOMAllInOne.cpp:
* dom/Element.cpp:
(WebCore::Element::~Element):
(WebCore::Element::detach):
(WebCore::Element::updatePseudoElement):
(WebCore::Element::createPseudoElementIfNeeded):
(WebCore::Element::beforePseudoElement):
(WebCore::Element::afterPseudoElement):
* dom/Element.h:
(Element):
* dom/ElementRareData.h:
(ElementRareData):
(WebCore::ElementRareData::ElementRareData):
(WebCore::ElementRareData::~ElementRareData):
(WebCore::ElementRareData::setPseudoElement):
(WebCore::ElementRareData::pseudoElement):
(WebCore::ElementRareData::releasePseudoElement):
* dom/Node.cpp:
(WebCore::Node::pseudoAwarePreviousSibling):
(WebCore::Node::pseudoAwareNextSibling):
(WebCore::Node::rendererIsEditable):
(WebCore::checkAcceptChild):
* dom/Node.h:
(Node):
(WebCore::Node::isPseudoElement):
(WebCore::Node::isBeforePseudoElement):
(WebCore::Node::isAfterPseudoElement):
(WebCore::Node::pseudoId):
(WebCore::Node::customPseudoId):
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::nextRenderer):
(WebCore::NodeRenderingContext::previousRenderer):
* dom/Position.cpp:
(WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
* dom/PseudoElement.cpp: Added.
(WebCore::pseudoElementTagName):
(WebCore::PseudoElement::PseudoElement):
(WebCore::PseudoElement::customStyleForRenderer):
(WebCore::PseudoElement::attach):
(WebCore::PseudoElement::rendererIsNeeded):
(WebCore::PseudoElement::updateChildStyle):
(WebCore::PseudoElement::didRecalcStyle):
* dom/PseudoElement.h: Added.
(PseudoElement):
(WebCore::PseudoElement::create):
(WebCore::pseudoElementIsNeeded):
* editing/visible_units.cpp:
(WebCore::logicallyPreviousBox):
(WebCore::logicallyNextBox):
(WebCore::startPositionForLine):
(WebCore::endPositionForLine):
* page/animation/AnimationController.cpp:
(WebCore::AnimationController::updateAnimations):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::setInnerNode):
(WebCore::HitTestResult::setInnerNonSharedNode):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isSelectionRoot):
(WebCore::RenderBlock::renderName):
* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::originalText):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::renderName):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::renderName):
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::RenderMultiColumnBlock::renderName):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::createObject):
(WebCore::RenderObject::setPseudoStyle):
(WebCore::RenderObject::createVisiblePosition):
* rendering/RenderObject.h:
(WebCore::RenderObject::isPseudoElement):
(RenderObject):
(WebCore::RenderObject::generatingNode):
* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::renderName):
* rendering/RenderTableRow.h:
(WebCore::RenderTableRow::renderName):
* rendering/RenderTableSection.h:
(WebCore::RenderTableSection::renderName):
* rendering/RenderTreeAsText.cpp:
(WebCore::RenderTreeAsText::writeRenderObject):
* rendering/style/ContentData.cpp:
(WebCore::ImageContentData::createRenderer):
(WebCore::TextContentData::createRenderer):
(WebCore::CounterContentData::createRenderer):
(WebCore::QuoteContentData::createRenderer):
2012-12-05 Justin Novosad <junov@google.com>
Use of uninitialized variable in WebCore::RenderBox::paintFillLayers
https://bugs.webkit.org/show_bug.cgi?id=104154
Reviewed by Stephen White.
Method FillLayer::clipOccludesNextLayers performs an internal
initialization when called on the first layer of a list of layers.
Without this initialization, calls to clipOccludesNextLayers on
subsequent layers will use uninitialized data. In some cases, the
call to clipOccludesNextLayers was being short-circuited in
RenderBox::paintFillLayers.
Fix: Predicate was permuted to ensure that clipOccludesNextLayers
is never short-circuited.
Test: fast/backgrounds/size/contain-and-cover-zoomed.html
Running with valgrind reveals the error.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintFillLayers):
2012-12-05 Elliott Sprehn <esprehn@gmail.com>
Encapsulate ElementRareData for possible future sharing
https://bugs.webkit.org/show_bug.cgi?id=103948
Reviewed by Eric Seidel.
Encapsulate ElementRareData and make all access go through getters and
setters. This is already true for NodeRareData, but ElementRareData
had many places where people directly access it.
This the first step in possible future sharing of ElementRareData
instances across nodes. All nodes in a shadow tree have rare data to
store the TreeScope, but in most cases all they have is the TreeScope!
Instead of making every node in a shadow subtree have rare data
and use lots of memory we could just share a single instance of rare data
and only allocate a unique one on modification. Encapsulation lets us
assert about mutations on shared instances.
* dom/Element.cpp:
(WebCore::Element::~Element):
(WebCore::Element::attributes):
(WebCore::Element::shadow):
(WebCore::Element::ensureShadow):
(WebCore::Element::minimumSizeForResizing):
(WebCore::Element::setMinimumSizeForResizing):
(WebCore::Element::computedStyle):
(WebCore::Element::classList):
(WebCore::Element::optionalClassList):
(WebCore::Element::dataset):
(WebCore::Element::hasNamedNodeMap):
(WebCore::Element::savedLayerScrollOffset):
(WebCore::Element::setSavedLayerScrollOffset):
* dom/ElementRareData.cpp:
(WebCore::ElementRareData::reportMemoryUsage):
* dom/ElementRareData.h:
(WebCore::ElementRareData::needsFocusAppearanceUpdateSoonAfterAttach):
(WebCore::ElementRareData::setNeedsFocusAppearanceUpdateSoonAfterAttach):
(ElementRareData):
(WebCore::ElementRareData::styleAffectedByEmpty):
(WebCore::ElementRareData::setStyleAffectedByEmpty):
(WebCore::ElementRareData::isInCanvasSubtree):
(WebCore::ElementRareData::setIsInCanvasSubtree):
(WebCore::ElementRareData::containsFullScreenElement):
(WebCore::ElementRareData::setContainsFullScreenElement):
(WebCore::ElementRareData::isInTopLayer):
(WebCore::ElementRareData::setIsInTopLayer):
(WebCore::ElementRareData::childrenAffectedByHover):
(WebCore::ElementRareData::setChildrenAffectedByHover):
(WebCore::ElementRareData::childrenAffectedByActive):
(WebCore::ElementRareData::setChildrenAffectedByActive):
(WebCore::ElementRareData::childrenAffectedByDrag):
(WebCore::ElementRareData::setChildrenAffectedByDrag):
(WebCore::ElementRareData::childrenAffectedByFirstChildRules):
(WebCore::ElementRareData::setChildrenAffectedByFirstChildRules):
(WebCore::ElementRareData::childrenAffectedByLastChildRules):
(WebCore::ElementRareData::setChildrenAffectedByLastChildRules):
(WebCore::ElementRareData::childrenAffectedByDirectAdjacentRules):
(WebCore::ElementRareData::setChildrenAffectedByDirectAdjacentRules):
(WebCore::ElementRareData::childrenAffectedByForwardPositionalRules):
(WebCore::ElementRareData::setChildrenAffectedByForwardPositionalRules):
(WebCore::ElementRareData::childrenAffectedByBackwardPositionalRules):
(WebCore::ElementRareData::setChildrenAffectedByBackwardPositionalRules):
(WebCore::ElementRareData::childIndex):
(WebCore::ElementRareData::setChildIndex):
(WebCore::ElementRareData::shadow):
(WebCore::ElementRareData::setShadow):
(WebCore::ElementRareData::attributeMap):
(WebCore::ElementRareData::setAttributeMap):
(WebCore::ElementRareData::computedStyle):
(WebCore::ElementRareData::setComputedStyle):
(WebCore::ElementRareData::classList):
(WebCore::ElementRareData::setClassList):
(WebCore::ElementRareData::dataset):
(WebCore::ElementRareData::setDataset):
(WebCore::ElementRareData::minimumSizeForResizing):
(WebCore::ElementRareData::setMinimumSizeForResizing):
(WebCore::ElementRareData::savedLayerScrollOffset):
(WebCore::ElementRareData::setSavedLayerScrollOffset):
(WebCore::ElementRareData::resetComputedStyle):
* dom/NodeRareData.h:
(NodeRareData):
2012-12-05 Mark Pilgrim <pilgrim@chromium.org>
[Chromium][Win] Remove theme-related functions from PlatformSupport
https://bugs.webkit.org/show_bug.cgi?id=102699
Reviewed by Adam Barth.
Call theme engine directly instead of going through
PlatformSupport. Part of a refactoring series. See tracking bug 82948.
* platform/chromium/PlatformSupport.h:
(PlatformSupport):
* platform/chromium/ScrollbarThemeChromiumWin.cpp:
(WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
(WebCore::ScrollbarThemeChromiumWin::paintButton):
* rendering/RenderThemeChromiumWin.cpp:
(WebCore):
(WebCore::RenderThemeChromiumWin::paintButton):
(WebCore::RenderThemeChromiumWin::paintSliderTrack):
(WebCore::RenderThemeChromiumWin::paintSliderThumb):
(WebCore::RenderThemeChromiumWin::paintMenuList):
(WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
(WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
(WebCore::RenderThemeChromiumWin::paintProgressBar):
2012-12-05 Stephen White <senorblanco@chromium.org>
Unreviewed, rolling out r136609.
http://trac.webkit.org/changeset/136609
https://bugs.webkit.org/show_bug.cgi?id=103793
Breaking Chrome/Mac Debug builds.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::create):
* platform/chromium/support/GraphicsContext3DChromium.cpp:
(WebCore::GraphicsContext3D::create):
* platform/graphics/GraphicsContext3D.h:
(Attributes):
2012-12-05 Bear Travis <betravis@adobe.com>
[CSS Exclusions] Enable shape-inside for multiple-segment polygons
https://bugs.webkit.org/show_bug.cgi?id=91878
Reviewed by David Hyatt.
Patch adding support for multiple-segment polygons for shape-insides from
the CSS Exclusions specification. The layout code has been modified to first
support dividing text into multiple segments per line, and then to lay out
multiple segments per line box.
Tests: fast/exclusions/shape-inside/shape-inside-multiple-segments-001.html
fast/exclusions/shape-inside/shape-inside-multiple-segments-002.html
fast/exclusions/shape-inside/shape-inside-multiple-segments-003.html
fast/exclusions/shape-inside/shape-inside-multiple-segments-004.html
* platform/text/BidiResolver.h:
(WebCore::BidiCharacterRun::BidiCharacterRun):
(BidiCharacterRun): Added a 'startsSegment' bitfield to track whether a
run begins a new segment. The field is here, rather than in BidiRun, in
order to save space. See Bug 100173.
* rendering/BidiRun.h:
(WebCore::BidiRun::BidiRun):
(BidiRun): Set the initial value for 'startsSegment'.
* rendering/ExclusionShapeInsideInfo.cpp:
(WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine): Clear the
segment ranges when computing segments for a new line.
* rendering/ExclusionShapeInsideInfo.h:
(LineSegmentRange): Added a new type to track segment offsets.
(WebCore::ExclusionShapeInsideInfo::segmentRanges): Added a getter for
the line segment ranges vector.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesInInlineDirection): Modified to call
a refactored box placement algorithm that takes a beginning and end position.
(WebCore::InlineFlowBox::placeBoxRangeInInlineDirection): Similar to the
placeBoxes method, but takes an end position that may occur before the end
of the line.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::exclusionShapeInsideInfo): Factored out calls
to ExclusionShapeInsideInfo to the .cpp file, as ExclusionShapeInsideInfo
requires InlineIterator.h, which would create a circular dependency in
ExclusionShapeInsideInfo.h.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::exclusionShapeInsideInfo): Modified to call
exclusionShapeInsideInfo to be non-inline.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::LineWidth::LineWidth): LineWidth now uses the number of computed
segmentRanges to determine which LineSegment to use when calculating width.
(WebCore::RenderBlock::createLineBoxes): Now takes a boolean to determine
whether or not it can share the same parentBox as its siblings (segments
must be able to position themselves separately in the RootInlineBox).
(WebCore::RenderBlock::constructLine):
(WebCore::computeExpansionForJustifiedText): Do include runs that start new
segments when calculating justification for the current segment.
(WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Modified to
use the computeInlineDirectionPositionsForSegment, which can position
multiple segments of text per line.
(WebCore::RenderBlock::computeInlineDirectionPositionsForSegment): Positions
the given segment of text and calculates its layout offsets.
(WebCore::constructBidiRuns): Modified some variables from 'endOfLine' to 'endOfSegment'.
(WebCore::constructBidiRunsForLine): Construct the bidi runs for each segment in
the given line.
(WebCore::RenderBlock::layoutRunsAndFloatsInRange): Call constructBidiRunsForLine.
(WebCore::RenderBlock::LineBreaker::nextLineBreak): Moved the line breaking code
to break segments, with nextLineBreak iterating over segment breaks for the entire line.
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Calculates how much text a
segment can hold. This code was originally in nextLineBreak.
2012-12-05 Stephen White <senorblanco@chromium.org>
Unreviewed, rolling out r136630.
http://trac.webkit.org/changeset/136630
https://bugs.webkit.org/show_bug.cgi?id=103555
It's breaking Chrome/Win Debug builds.
* platform/graphics/chromium/LazyDecodingPixelRef.cpp:
(WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
* platform/graphics/chromium/LazyDecodingPixelRef.h:
(LazyDecodingPixelRef):
2012-12-05 Andreas Kling <akling@apple.com>
REGRESSION(r136615): Incorrect style sharing in view-source documents.
<http://webkit.org/b/104089>
Reviewed by Antti Koivisto.
Make sure we collect feature data about the default view-source style sheet before evaluating
style sharing candidates, otherwise it won't know which class selectors to care about.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectFeatures):
2012-12-05 Mike West <mkwst@chromium.org>
Stop generating call stacks inside ContentSecurityPolicy
https://bugs.webkit.org/show_bug.cgi?id=104126
Reviewed by Yury Semikhatsky.
Now that bug 100650 has made it possible for ConsoleMessage to generate
call stacks, we can remove the stack being generated in
ContentSecurityPolicy::logToConsole. We need the ScriptState*, however,
so this patch makes it possible to pipe it through addConsoleMessage
down into the guts of the inspector.
This patch also removes an unused addConsoleMessage variant from
ScriptExecutionContext, which should have been removed from the patch to
100650 before landing it. My bad.
* dom/Document.cpp:
(WebCore::Document::addMessage):
* dom/Document.h:
(Document):
Accept a ScriptState* parameter in Document::addMessage, and pass it
through to Console::addMessage.
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::addConsoleMessage):
* dom/ScriptExecutionContext.h:
(ScriptExecutionContext):
Accept a ScriptState* parameter in Document::addMessage, and pass it
through to ScriptExecutionContext::addMessage. Also, remove an unused
variant of ScriptExecutionContext::addConsoleMessage that accepted
only a call stack in addition to the basics.
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
* inspector/ConsoleMessage.h:
(ConsoleMessage):
Accept a ScriptState* and pass it into autogenerateMetadata for
call stack generational goodness.
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::addMessageToConsole):
Accept a ScriptState* and pass it into addConsoleMessage.
(WebCore::InspectorConsoleAgent::didFinishXHRLoading):
(WebCore::InspectorConsoleAgent::didReceiveResponse):
(WebCore::InspectorConsoleAgent::didFailLoading):
Add an empty ScriptState parameter to the addConsoleMessage call.
* inspector/InspectorConsoleAgent.h:
(InspectorConsoleAgent):
* inspector/InspectorConsoleInstrumentation.h:
(WebCore::InspectorInstrumentation::addMessageToConsole):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
* page/Console.cpp:
(WebCore::Console::addMessage):
* page/Console.h:
(Console):
Pipe ScriptState through the intermediate classes.
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::logToConsole):
Drop call stack generation, and pass ScriptState* into addConsoleMessage.
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::addConsoleMessage):
(WebCore::WorkerContext::addMessage):
(WebCore::WorkerContext::addMessageToWorkerConsole):
* workers/WorkerContext.h:
(WorkerContext):
Accept ScriptState* and pass it into addMessageToConsole.
2012-12-05 Rafael Weinstein <rafaelw@chromium.org>
DOMImplementation.createDocument should call appendChild rather than parserAppendChild to add docType and documentElement
https://bugs.webkit.org/show_bug.cgi?id=104040
Reviewed by Ojan Vafai.
createDocument now calls appendChild.
No new tests (no observable changes).
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::parserAppendChild):
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
2012-12-05 Alec Flett <alecflett@chromium.org>
IndexedDB: Stub out transaction-backend methods
https://bugs.webkit.org/show_bug.cgi?id=103921
Reviewed by Dimitri Glazkov.
In preparation for a refactoring. Legacy methods
will be removed in https://bugs.webkit.org/show_bug.cgi?id=103923.
No new tests, just adding unused methods for refactoring.
* Modules/indexeddb/IDBCallbacks.h:
(WebCore::IDBCallbacks::onUpgradeNeeded):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::onAbort):
(WebCore):
(WebCore::IDBDatabase::onComplete):
* Modules/indexeddb/IDBDatabase.h:
(IDBDatabase):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::createTransaction):
(WebCore):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
(WebCore::IDBDatabaseBackendImpl::commit):
(WebCore::IDBDatabaseBackendImpl::abort):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(IDBDatabaseBackendInterface):
* Modules/indexeddb/IDBDatabaseCallbacks.h:
(IDBDatabaseCallbacks):
* Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
(WebCore::IDBDatabaseCallbacksImpl::onAbort):
(WebCore):
(WebCore::IDBDatabaseCallbacksImpl::onComplete):
* Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
(IDBDatabaseCallbacksImpl):
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::open):
* Modules/indexeddb/IDBFactoryBackendImpl.h:
(WebCore::IDBFactoryBackendImpl::open):
(IDBFactoryBackendImpl):
* Modules/indexeddb/IDBFactoryBackendInterface.h:
(IDBFactoryBackendInterface):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore):
* Modules/indexeddb/IDBOpenDBRequest.h:
(IDBOpenDBRequest):
* Modules/indexeddb/IDBTransactionBackendInterface.h:
(WebCore):
* Modules/indexeddb/IDBTransactionCoordinator.h:
2012-11-27 Alec Flett <alecflett@chromium.org>
IndexedDB: remove IDBDatabaseBackendInterface::transaction()
https://bugs.webkit.org/show_bug.cgi?id=102733
Reviewed by Darin Fisher.
Part 3 of a refactor, remove the old transaction() method.
No new tests as this is just post-refactor cleanup.
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(IDBDatabaseBackendInterface):
2012-12-05 Robert Hogan <robert@webkit.org>
REGRESSION(r126683): Table cell are getting borders when the style doesn't mention any
https://bugs.webkit.org/show_bug.cgi?id=101677
Reviewed by Julien Chaffraix.
The bordercolor attribute on a cell or row has no effect on FF and Opera, even when the parent
table has a border attribute. IE displays the bordercolor of the cell and row in all cases except when
the parent has no border attribute. WebKit's old behaviour (before r126683) was to display the
bordercolor of the row but not the cells (I don't think this behaviour was particularly deliberate). No
browser displays the bordercolor for a col or tbody element.
Bring WebKit into line with Opera and FF by ignoring the bordercolor attribute on cells, rows, cols, rowgroups, and
colgroups in all cases, regardless of whether the table has a border or not.
Test: fast/table/td-bordercolor-attribute.html
* html/HTMLTablePartElement.cpp:
(WebCore::HTMLTablePartElement::isPresentationAttribute):
(WebCore::HTMLTablePartElement::collectStyleForPresentationAttribute):
2012-12-05 Krzysztof Czech <k.czech@samsung.com>
[EFL][WK2] Introduce WebKit-EFL to Assistive Technologies
https://bugs.webkit.org/show_bug.cgi?id=104000
Reviewed by Chris Fleizach.
Introduce Webkit-EFL so that Assistive Technologies can distinguish it.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetAttributes):
2012-12-05 Carlos Garcia Campos <cgarcia@igalia.com>
Remove unneeded WTF prefix from WTF types in RenderFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=104109
Reviewed by Eric Seidel.
WTF prefix is not needed because WTF headers have a using
statement at the end of the file.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
(WebCore::RenderFlexibleBox::layoutFlexItems):
(WebCore::RenderFlexibleBox::freezeViolations):
(WebCore::RenderFlexibleBox::resolveFlexibleLengths):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::alignFlexLines):
(WebCore::RenderFlexibleBox::alignChildren):
(WebCore::RenderFlexibleBox::flipForWrapReverse):
* rendering/RenderFlexibleBox.h:
2012-12-05 Andras Becsi <andras.becsi@digia.com>
Fix compilation for Qt5.0.0 stable branch.
https://bugs.webkit.org/show_bug.cgi?id=103870
Reviewed by Simon Hausmann.
This is a squashed patch consisting of patches by multiple authors.
Fixed use of to-be-removed compatibility functions in QWindow
Patch by Samuel Rødal <samuel.rodal@digia.com>
Build fix. No new tests needed.
* platform/graphics/gstreamer/PlatformVideoWindowQt.cpp:
(FullScreenVideoWindow::FullScreenVideoWindow):
(PlatformVideoWindow::PlatformVideoWindow):
2012-12-05 John J. Barton <johnjbarton@chromium.org>
Web Inspector: more robust treeoutline.findTreeElement
https://bugs.webkit.org/show_bug.cgi?id=103911
Reviewed by Vsevolod Vlasov.
Non-recursive algorithm to populate the treeoutline given an DOMNode
as representedObject. Walk up the parents from the desired object
until we find one that is currently represented in the treeoutline
cache. Then walk down, putting children in the cache until we get
to the desired object again.
With Pavel Feldeman <pfeldman@chromium.org>
No new tests, refactoring, no new function
* inspector/front-end/treeoutline.js:
(TreeOutline.prototype.findTreeElement):
2012-12-05 Alexander Shalamov <alexander.shalamov@intel.com>
[EFL][GTK] List value response headers are not handled in RespourceResponse (libsoup specific)
https://bugs.webkit.org/show_bug.cgi?id=95181
Reviewed by Martin Robinson.
When list-value response headers are received, they are handled as single
value headers. This patch fixes incorrect behavior. New test was added to
verify list-value header handling.
Test: http/tests/xmlhttprequest/xmlhttprequest-test-custom-headers.html
* platform/network/soup/ResourceResponseSoup.cpp:
(WebCore::ResourceResponse::updateFromSoupMessage):
2012-12-05 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: Don't include error message text in the editor buffer.
https://bugs.webkit.org/show_bug.cgi?id=103932
Reviewed by Alexander Pavlov.
Skip entire decoration content when collecting dirty regions.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._collectLinesFromDOM):
2012-12-05 Joshua Bell <jsbell@chromium.org>
IndexedDB: Replace use of ScriptExecutionContext::Task (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=103931
Reviewed by Tony Chang.
Actually drop use of ScriptExecutionContext::Task and remove incorrect usage of
ThreadSafeRefCounted<>. Define a new IDBTransactionBackendImpl::Operation base class
for operations; storage of per-operation data becomes explicit.
No new tests - just a refactor.
* Modules/indexeddb/IDBCallbacks.h: Remove bogus "ThreadSafe"
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::CursorIterationOperation::create):
(IDBCursorBackendImpl::CursorIterationOperation):
(WebCore::IDBCursorBackendImpl::CursorIterationOperation::CursorIterationOperation):
(WebCore::IDBCursorBackendImpl::CursorAdvanceOperation::create):
(IDBCursorBackendImpl::CursorAdvanceOperation):
(WebCore::IDBCursorBackendImpl::CursorAdvanceOperation::CursorAdvanceOperation):
(WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::create):
(IDBCursorBackendImpl::CursorPrefetchIterationOperation):
(WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::CursorPrefetchIterationOperation):
(WebCore::IDBCursorBackendImpl::CursorAdvanceOperation::perform):
(WebCore::IDBCursorBackendImpl::CursorIterationOperation::perform):
(WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
* Modules/indexeddb/IDBCursorBackendInterface.h: Remove bogus "ThreadSafe"
* Modules/indexeddb/IDBDatabase.cpp:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::create):
(IDBDatabaseBackendImpl::CreateObjectStoreOperation):
(WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::CreateObjectStoreOperation):
(WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::create):
(IDBDatabaseBackendImpl::DeleteObjectStoreOperation):
(WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::create):
(IDBDatabaseBackendImpl::VersionChangeOperation):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::VersionChangeOperation):
(WebCore::IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation::create):
(IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation):
(WebCore::IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation):
(WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation::create):
(IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation):
(WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation::DeleteObjectStoreAbortOperation):
(WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::create):
(IDBDatabaseBackendImpl::VersionChangeAbortOperation):
(WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::VersionChangeAbortOperation):
(WebCore::IDBDatabaseBackendImpl::createObjectStore):
(WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
(WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
(WebCore::IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation::perform):
(WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation::perform):
(WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
* Modules/indexeddb/IDBDatabaseBackendInterface.h: Remove bogus "ThreadSafe"
* Modules/indexeddb/IDBDatabaseCallbacks.h: Remove bogus "ThreadSafe"
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
* Modules/indexeddb/IDBFactoryBackendInterface.h: Remove bogus "ThreadSafe"
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::create):
(IDBIndexBackendImpl::OpenIndexCursorOperation):
(WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::OpenIndexCursorOperation):
(WebCore::IDBIndexBackendImpl::IndexCountOperation::create):
(IDBIndexBackendImpl::IndexCountOperation):
(WebCore::IDBIndexBackendImpl::IndexCountOperation::IndexCountOperation):
(WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::create):
(IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation):
(WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::IndexReferencedValueRetrievalOperation):
(WebCore::IDBIndexBackendImpl::IndexValueRetrievalOperation::create):
(IDBIndexBackendImpl::IndexValueRetrievalOperation):
(WebCore::IDBIndexBackendImpl::IndexValueRetrievalOperation::IndexValueRetrievalOperation):
(WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::perform):
(WebCore::IDBIndexBackendImpl::openCursor):
(WebCore::IDBIndexBackendImpl::openKeyCursor):
(WebCore::IDBIndexBackendImpl::IndexCountOperation::perform):
(WebCore::IDBIndexBackendImpl::count):
(WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::perform):
(WebCore::IDBIndexBackendImpl::IndexValueRetrievalOperation::perform):
(WebCore::IDBIndexBackendImpl::get):
(WebCore::IDBIndexBackendImpl::getKey):
* Modules/indexeddb/IDBIndexBackendInterface.h: Remove bogus "ThreadSafe"
* Modules/indexeddb/IDBKey.h: Remove bogus "ThreadSafe"
(IDBKey):
* Modules/indexeddb/IDBKeyRange.h: Remove bogus "ThreadSafe"
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::create):
(IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::ObjectStoreRetrievalOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::create):
(IDBObjectStoreBackendImpl::ObjectStoreStorageOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::ObjectStoreStorageOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation::create):
(IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation::ObjectStoreIndexesReadyOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation::create):
(IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation::ObjectStoreDeletionOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreClearOperation::create):
(IDBObjectStoreBackendImpl::ObjectStoreClearOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreClearOperation::ObjectStoreClearOperation):
(WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::create):
(IDBObjectStoreBackendImpl::CreateIndexOperation):
(WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::CreateIndexOperation):
(WebCore::IDBObjectStoreBackendImpl::DeleteIndexOperation::create):
(IDBObjectStoreBackendImpl::DeleteIndexOperation):
(WebCore::IDBObjectStoreBackendImpl::DeleteIndexOperation::DeleteIndexOperation):
(WebCore::IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation::create):
(IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation):
(WebCore::IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation::OpenObjectStoreCursorOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreCountOperation::create):
(IDBObjectStoreBackendImpl::ObjectStoreCountOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreCountOperation::ObjectStoreCountOperation):
(WebCore::IDBObjectStoreBackendImpl::CreateIndexAbortOperation::create):
(IDBObjectStoreBackendImpl::CreateIndexAbortOperation):
(WebCore::IDBObjectStoreBackendImpl::CreateIndexAbortOperation::CreateIndexAbortOperation):
(WebCore::IDBObjectStoreBackendImpl::DeleteIndexAbortOperation::create):
(IDBObjectStoreBackendImpl::DeleteIndexAbortOperation):
(WebCore::IDBObjectStoreBackendImpl::DeleteIndexAbortOperation::DeleteIndexAbortOperation):
(WebCore::IDBObjectStoreBackendImpl::get):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::put):
(WebCore):
(WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::deleteFunction):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::clear):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreClearOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::createIndex):
(WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::deleteIndex):
(WebCore::IDBObjectStoreBackendImpl::DeleteIndexOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::openCursor):
(WebCore::IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::count):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreCountOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::CreateIndexAbortOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::DeleteIndexAbortOperation::perform):
* Modules/indexeddb/IDBObjectStoreBackendInterface.h: Remove bogus "ThreadSafe"
* Modules/indexeddb/IDBRequest.h: Remove bogus "ThreadSafe"
(IDBRequest):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl): Appease RefPtr<> adoption strictness.
(WebCore::IDBTransactionBackendImpl::scheduleTask):
(WebCore::IDBTransactionBackendImpl::abort):
(WebCore::IDBTransactionBackendImpl::taskTimerFired):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(Operation):
(WebCore::IDBTransactionBackendImpl::Operation::~Operation):
(IDBTransactionBackendImpl):
(WebCore::IDBTransactionBackendImpl::scheduleTask):
* Modules/indexeddb/IDBTransactionBackendInterface.h: Remove bogus "ThreadSafe"
2012-12-05 Noel Gordon <noel.gordon@gmail.com>
ENABLE(IMAGE_DECODER_DOWN_SAMPLING): Don't swizzle decode down sampled images
https://bugs.webkit.org/show_bug.cgi?id=103856
Reviewed by Yong Li.
For ports using ENABLE(IMAGE_DECODER_DOWN_SAMPLING), turbo swizzle decodes provide
no speed-up when the decoded image will be down sampled because the data must pass
through the buffer.setRGBA() slow path. That is not the swizzled path. Instead use
JCS_RGB decodes to clarify the output color space handling in outputScanlines().
No new tests. Covered by existing JPEG decoding tests.
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageReader::decode): libjpeg-turbo swizzle decodes provides no real
speed-up if the image will be down sampled. Revert to using JCS_RGA in this case.
(WebCore::setPixel): Remove the libjpeg-turbo JCS_EXT_BGRA and JCS_EXT_RGBA cases.
(WebCore::JPEGImageDecoder::outputScanlines): ditto.
* platform/image-decoders/jpeg/JPEGImageDecoder.h:
(WebCore::JPEGImageDecoder::willDownSample): Return true if image down sampling
will be applied to the decoded image (m_scaled). Note: the willDownSample() return
value is valid only after setSize() has been called: add an ASSERT for that.
2012-12-05 Michael Pruett <michael@68k.org>
IndexedDB: Implement IndexedDB bindings for JSC
https://bugs.webkit.org/show_bug.cgi?id=103484
Reviewed by Kentaro Hara.
IndexedDB is currently implemented only for V8. This change adds
the bindings necessary for IndexedDB to work with JSC. With this
patch, IndexedDB for JSC passes 112 out of the 196 layout tests in
storage/indexeddb. IndexedDB is still not enabled for any JSC port.
Tests: storage/indexeddb/*
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/indexeddb/IDBOpenDBRequest.idl:
* Modules/indexeddb/IDBVersionChangeRequest.idl:
* UseJSC.cmake:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/DOMRequestState.h: Added to match bindings/v8/DOMRequestState.h.
(WebCore):
(DOMRequestState):
(WebCore::DOMRequestState::DOMRequestState):
(WebCore::DOMRequestState::clear):
(Scope):
(WebCore::DOMRequestState::Scope::Scope):
(WebCore::DOMRequestState::exec):
* bindings/js/IDBBindingUtilities.cpp: Add utility functions matching those in bindings/v8/IDBBindingUtilities.cpp.
(WebCore::get):
(WebCore):
(WebCore::canSet):
(WebCore::set):
(WebCore::createIDBKeyFromValue):
(WebCore::getNthValueOnKeyPath):
(WebCore::createIDBKeyFromScriptValueAndKeyPath):
(WebCore::ensureNthValueOnKeyPath):
(WebCore::canInjectNthValueOnKeyPath):
(WebCore::injectIDBKeyIntoScriptValue):
(WebCore::canInjectIDBKeyIntoScriptValue):
(WebCore::deserializeIDBValue):
(WebCore::idbKeyToScriptValue):
* bindings/js/IDBBindingUtilities.h: Add utility functions matching those in bindings/v8/IDBBindingUtilities.h.
(WebCore):
* bindings/js/JSIDBAnyCustom.cpp:
(WebCore::toJS):
* bindings/js/JSIDBKeyCustom.cpp:
(WebCore::toJS):
* bindings/js/JSIDBVersionChangeRequestCustom.cpp: Removed.
2012-12-05 Antoine Quint <graouts@apple.com>
TextTrackCue's .endTime property should fire a TypeError when NaN is assigned
https://bugs.webkit.org/show_bug.cgi?id=103413
Reviewed by Eric Carlson.
Check whether the new time passed to setStartTime() and setEndTime() is none of NaN or Infinity,
otherwise throwing a TypeError.
Thanks to this fix, we're no longer skipping media/track/opera/interfaces/TextTrackCue/endTime.html and
media/track/opera/interfaces/TextTrackCue/startTime.html.
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::setStartTime):
(WebCore::TextTrackCue::setEndTime):
* html/track/TextTrackCue.h:
(TextTrackCue):
* html/track/TextTrackCue.idl:
2012-12-05 Alexis Menard <alexis@webkit.org>
[CSS3 Backgrounds and Borders] Allow the CSS3 background position offset for background shorthand.
https://bugs.webkit.org/show_bug.cgi?id=104014
Reviewed by Dirk Schulze.
Add the support of the new <position> type if set from within the
background shorthand. The patch just modify the way we count the values
of the current context by checking wether we encounter a comma (it is
then the next background layer), or if we encounter a '/' (which is in the
background shorthand context the background-size) or any value that is
not a valid background-position keyword or length (which means we are
already parsing the next property of the background shorthand).
Tests: LayoutTests/fast/backgrounds/background-position-parsing-2.html
has been modified to cover this use case.
* css/CSSParser.cpp:
(WebCore::CSSParser::isPositionValue):
(WebCore):
(WebCore::CSSParser::parseFillBackgroundPosition):
(WebCore::CSSParser::parseFillProperty):
* css/CSSParser.h:
2012-12-05 Elliott Sprehn <esprehn@gmail.com>
ShadowRoot should recalcStyle for itself
https://bugs.webkit.org/show_bug.cgi?id=103933
Reviewed by Hajime Morita.
ShadowRoot should support recalcStyle just like Element instead of
having the code inside ElementShadow. This was once the case and
the dead method prototype for recalcShadowTreeStyle is still in
ShadowRoot.h.
No new tests, just refactoring.
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::recalcStyle):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::recalcStyle):
* dom/ShadowRoot.h:
2012-12-05 Keishi Hattori <keishi@webkit.org>
Fix text direction in datalist popup for time controls
https://bugs.webkit.org/show_bug.cgi?id=103853
Reviewed by Kent Tamura.
The datalist entry value should be displayed with the same text direction as the date/time format.
Tests: platform/chromium/fast/forms/suggestion-picker/datetime-suggestion-picker-appearance-locale-hebrew.html
platform/chromium/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew.html
platform/chromium/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew.html
* Resources/pagepopups/calendarPicker.js: Renamed isCalendarRTL to isLocaleRTL.
(CalendarPicker.prototype._layout):
(CalendarPicker.prototype.fixWindowSize):
(DaysTable.prototype._handleKey):
(MonthPickerDaysTable.prototype._handleKey):
(WeekPickerDaysTable.prototype._handleKey):
* Resources/pagepopups/suggestionPicker.css:
(.suggestion-list-entry .title): Title should have the same text direction as the locale.
(.locale-rtl .suggestion-list-entry .title):
* Resources/pagepopups/suggestionPicker.js:
(SuggestionPicker.prototype._layout): Add locale-rtl class if the isLocaleRTL is true.
2012-12-05 Keishi Hattori <keishi@webkit.org>
Fix flickering when hiding page popup
https://bugs.webkit.org/show_bug.cgi?id=104100
Reviewed by Kent Tamura.
Moving the page popup while hiding was causing flickering in some environments.
No new tests. Can't reproduce in layout test.
* Resources/pagepopups/pickerCommon.js:
(hideWindow): Don't move and just resize.
2012-12-05 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Don't rely on QMimeDatabase for essential MIME types
https://bugs.webkit.org/show_bug.cgi?id=103865
Based on patch by Pierre Rossi.
Reviewed by Jocelyn Turcotte.
Extend the short static list to also include MIME types essential to WebKit,
and detect these first before checking the system mimedatabase.
* platform/qt/MIMETypeRegistryQt.cpp:
(WebCore::MIMETypeRegistry::getMIMETypeForExtension):
(WebCore::MIMETypeRegistry::getMIMETypeForPath):
2012-12-05 Zoltan Herczeg <zherczeg@webkit.org>
Optimize ColorMatrix filter
https://bugs.webkit.org/show_bug.cgi?id=103728
Reviewed by Dirk Schulze.
ColorMatrix filter recalculates several constants for
every pixel. It is enough to do these calculations only
once during the initialization. Style issues also fixed.
Existing tests cover this feature.
* platform/graphics/filters/FEColorMatrix.cpp:
(WebCore::matrix):
(WebCore::saturateAndHueRotate):
(WebCore::effectType):
2012-12-05 Carlos Garcia Campos <cgarcia@igalia.com>
Flex item auto margins in the cross direction should safe center
https://bugs.webkit.org/show_bug.cgi?id=103919
Reviewed by Ojan Vafai.
Do not apply auto margins for cross axis if there's no alignment
space available.
Test: css3/flexbox/flex-flow-auto-margins-no-available-space.html
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::alignChildren): Make sure we pass a
positive value for availableAlignmentSpace to
updateAutoMarginsInCrossAxis().
2012-12-05 Mike West <mkwst@chromium.org>
Web Inspector: Autogenerate stack traces and line numbers when possible.
https://bugs.webkit.org/show_bug.cgi?id=100650
Reviewed by Yury Semikhatsky.
Console messages generated in WebCore generally are asked to do a bit of
work in order to provide a developer with a detailed report. We ask the
caller to either generate stack traces, or pass in a url/line number
pair, which can be a bit of work. Predictably, most callers don't pass
in what we'd like to see.
This patch creates a new, simpler console message generation API that we
expect most call sites to use. Source, type, level, and message are
required, and an optional request ID can be passed in. Everything else
will be autogenerated inside ConsoleMessage when appropriate.
In a subsequent patch, we expect to be able to trim down more of the
external call sites (ContentSecurityPolicy springs to mind) in order to
further consolidate the external interface. Simple is good.
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::didFailSocketStream):
Drop the now-redundant URL parameter from various WebSocket errors.
* css/MediaList.cpp:
(WebCore::addResolutionWarningMessageToConsole):
Switch to Document::addConsoleMessage, which means that we can move
line-number generation out of MediaList.
* dom/Document.cpp:
(WebCore::Document::logExceptionToConsole):
Use the long-form 'addMessage()' rather than the public interface.
(WebCore::Document::processHttpEquiv):
Drop the URL parameter, as it's now autogenerated.
(WebCore::Document::addConsoleMessage):
(WebCore):
* dom/Document.h:
(Document):
Override the pure virtual method on ScriptExecutionContext, and pass
the call through to the new Console::addMessage, which accepts a
pointer to the Document in order to do line-number generation.
* dom/ScriptExecutionContext.h:
(ScriptExecutionContext):
Add a pure virtual variant of addConsoleMessage which accepts only
bare minimum data, and expects autogeneration of the rest.
Additionally, ensure that the other variants always have either a
URL/line number, or a stack trace.
* dom/ViewportArguments.cpp:
(WebCore::reportViewportWarning):
Drop line numbers and URLs from Viewport warnings. We can generate
these now.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::validateInteractively):
Drop the URL from form autofocus warnings
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::parseAttribute):
Drop the URL and line from sandbox attribute warnings.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::printWarningToConsole):
Drop the URL from WebGL warnings.
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
Call 'autogenerateMetadata' to ensure that a stack trace is
generated if one isn't provided. Create a new constructor that
accepts a ScriptState/ScriptArguments pair, and use it for console
API calls.
(WebCore):
(WebCore::ConsoleMessage::autogenerateMetadata):
Generate a stack trace given whatever information we've got.
* inspector/ConsoleMessage.h:
(ConsoleMessage):
Create a new constructor that accepts a ScriptState/ScriptArguments
pair, and use it for console API calls.
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::enable):
Use the short-form ConsoleMessage constructor.
(WebCore::InspectorConsoleAgent::addMessageToConsole):
Use the stack-only constructor, or the ScriptState
constructor, as appropriate.
(WebCore::InspectorConsoleAgent::count):
We generated a stack, pass it in.
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::isWorkerAgent):
* inspector/PageConsoleAgent.h:
(WebCore::PageConsoleAgent::isWorkerAgent):
* inspector/PageConsoleAgent.h:
(WebCore::PageConsoleAgent::isWorkerAgent):
We only want to generate call stacks for non-Workers (because
createScriptCallStack explodes in JSC if we're not on the main
thread). This method will allow us to distinguish between those
messages generated from Workers, and those from Pages.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::didReceiveResponse):
Drop the URL parameter from the console message for X-Frame-Options
parsing errors.
* page/Console.cpp:
(WebCore::Console::addMessage):
When given a Document*, generate a line number if: 1) the document
is still being parsed, 2) the document is not in document.write(),
3) the parser isn't waiting for script, and 4) the parser isn't
executing script. Many callsites didn't check all of these, which
is why the SVG rebaseline (for example) drops lots and lots of line
numbers which point at a closing '</script>' tag.
(WebCore):
* page/Console.h:
(WebCore):
(Console):
Update the public API to accept a Document* and little else.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::printErrorMessage):
Don't generate a stack here. We can do it later.
* svg/SVGDocumentExtensions.cpp:
(WebCore::reportMessage):
Drop the URL and line number. We'll generate them. It'll be sweet.
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::addConsoleMessage):
(WebCore):
* workers/WorkerContext.h:
(WorkerContext):
Implement the new addConsoleMessage variant.
2012-12-04 Carlos Garcia Campos <cgarcia@igalia.com>
Reduce the children repaints when moved multiple times during the layout
https://bugs.webkit.org/show_bug.cgi?id=103510
Reviewed by Darin Adler.
Cache the children positions before the layout and move to the
final position after the layout.
Test: css3/flexbox/repaint-column-reverse.html
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::OrderIterator::OrderIterator): Do not
call first() on the consructor.
(WebCore::RenderFlexibleBox::layoutBlock): Use a Vector with the
children frame rects before the layout and call
repaintChildrenDuringLayoutIfMoved() to repaint the children that
have been moved.
(WebCore::RenderFlexibleBox::appendChildrenFrameRects): Return a
Vector with children frame rects.
(WebCore::RenderFlexibleBox::repaintChildrenDuringLayoutIfMoved):
Call repaintDuringLayoutIfMoved() for every children using the old
frame rects.
(WebCore::RenderFlexibleBox::setFlowAwareLocationForChild): Do not
call repaintDuringLayoutIfMoved().
(WebCore::RenderFlexibleBox::layoutFlexItems): Make sure the
passed iterator points to the first child.
* rendering/RenderFlexibleBox.h:
2012-12-05 Dan Carney <dcarney@google.com>
[V8] toV8Fast for all classes with ScriptWrapper Holder objects
https://bugs.webkit.org/show_bug.cgi?id=102686
Reviewed by Adam Barth.
This patch makes most generated bindings use toV8Fast
by adding a fast path to the main world DOMDataStore.
Additionally, toV8Fast is now being called on callbacks
which use v8::Arguments.
No new tests. No change in functionality.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNormalAttrGetter):
(GenerateFunctionCallString):
(NativeToJSValue):
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::mainWorldStore):
(WebCore::DOMDataStore::current):
* bindings/v8/DOMDataStore.h:
2012-12-05 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] nit: add more typization for js compiler
https://bugs.webkit.org/show_bug.cgi?id=103994
Reviewed by Pavel Feldman.
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
2012-12-05 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] ExclusionShape inlines should use isFlippedBlocksWritingMode()
https://bugs.webkit.org/show_bug.cgi?id=103939
Reviewed by Dirk Schulze.
Just a minor cleanup: the protected ExclusionShape inlines, like minYForLogicalLine(),
now use isFlippedBlocksWritingMode() instead of testing for RightToLeftWritingMode directly.
This changeimproves consistency with the rest of WebKit and will work correctly
if "horizontal-bt" writing-mode support is ever added.
No new tests were added since the existing tests cover these methods.
* rendering/ExclusionShape.h:
(WebCore::ExclusionShape::minYForLogicalLine):
(WebCore::ExclusionShape::maxYForLogicalLine):
(WebCore::ExclusionShape::internalToLogicalBoundingBox):
2012-12-05 Bear Travis <betravis@adobe.com>
Absolutely positioned non-replaced elements should resolve vertical margins against
their containing block's logical width
https://bugs.webkit.org/show_bug.cgi?id=103576
Reviewed by Emil A Eklund.
According to the CSS box model specification, all percentage margin & padding values,
including top & bottom, should be resolved based on the containing block's width.
http://www.w3.org/TR/CSS2/box.html#margin-properties
The writing modes specification has refined this definition to use the containing
block's logical width to resolve percentage margin & padding values.
http://dev.w3.org/csswg/css3-writing-modes/#dimension-mapping
Previously, positioned elements measured their container in the element's block
direction (containerLogicalHeight) to resolve margin-before/after, and in the inline
direction (containerLogicalWidth) to resolve margin-start/end. This patch measures the
container's logical width in its own inline direction (containerRelativeLogicalWidth)
to resolve all margin percentage values.
Test: fast/writing-mode/percentage-margins-absolute.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePositionedLogicalWidthUsing): Calculate the logical width
of the container, and use it to calculate margins.
(WebCore::RenderBox::computePositionedLogicalHeightUsing): Ditto.
2012-12-04 Kentaro Hara <haraken@chromium.org>
[V8] Replace String::New("symbol") with String::NewSymbol("symbol") (part 2)
https://bugs.webkit.org/show_bug.cgi?id=104082
Reviewed by Adam Barth.
V8 can look up symbols faster than strings.
No tests. No change in behavior.
* bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
(WebCore::getHiddenCopyMethod):
(WebCore::installHiddenCopyMethod):
* bindings/v8/custom/V8ArrayBufferViewCustom.h:
(WebCore::constructWebGLArray):
(WebCore::setWebGLArrayHelper):
* bindings/v8/custom/V8CustomXPathNSResolver.cpp:
(WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::DialogHandler::dialogCreated):
(WebCore::DialogHandler::returnValue):
* bindings/v8/custom/V8GeolocationCustom.cpp:
(WebCore::createPositionOptions):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::wrapInShadowObject):
(WebCore::V8HTMLDocument::openCallback):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::V8HTMLImageElementConstructor::GetTemplate):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::V8SQLTransaction::executeSqlCallback):
2012-12-04 Elliott Sprehn <esprehn@chromium.org>
Clicking a scrollbar unfocuses the current activeElement
https://bugs.webkit.org/show_bug.cgi?id=96335
Reviewed by Ojan Vafai.
Previously we only tested for clicks inside frame scrollbars before
moving the focus, this patch expands the check to overflow scrollbars.
Now clicking inside a scrollbar only moves the focus when the scrollbar
has an ancestor that is mouse focusable.
This matches Gecko behavior, and was agreed to be the most sensible for now:
http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037759.html
Test: fast/overflow/scrollbar-click-retains-focus.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
Never start selections inside scrollbars because it would cause asserts.
This wasn't a problem before because we always moved the focus when clicking a scrollbar.
(WebCore::EventHandler::dispatchMouseEvent):
Check that the click is not inside a scrollbar before moving the focus.
(WebCore::EventHandler::isInsideScrollbar): Tests if a point is in a scrollbar.
(WebCore):
(WebCore::EventHandler::sendContextMenuEvent):
Never start selections inside scrollbars because it would cause asserts.
* page/EventHandler.h:
(EventHandler):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTestOverflowControls):
2012-12-04 Kentaro Hara <haraken@chromium.org>
[V8] Replace String::New("symbol") with String::NewSymbol("symbol")
https://bugs.webkit.org/show_bug.cgi?id=104084
Reviewed by Adam Barth.
V8 can look up symbols faster than strings. This is a final patch for the replacement.
No tests. No change in behavior.
* bindings/v8/DateExtension.cpp:
(WebCore::DateExtension::setAllowSleep):
(WebCore::DateExtension::GetNativeFunction):
* bindings/v8/NPV8Object.cpp:
(WebCore::npIdentifierToV8Identifier):
(_NPN_Invoke):
* bindings/v8/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::addListener):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::setContextDebugId):
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::callDebuggerMethod):
(WebCore::ScriptDebugServer::setBreakpoint):
(WebCore::ScriptDebugServer::removeBreakpoint):
(WebCore::ScriptDebugServer::clearBreakpoints):
(WebCore::ScriptDebugServer::setBreakpointsActivated):
(WebCore::ScriptDebugServer::handleV8DebugEvent):
(WebCore::ScriptDebugServer::dispatchDidParseSource):
* bindings/v8/ScriptObject.cpp:
(WebCore::ScriptGlobalObject::set):
(WebCore::ScriptGlobalObject::get):
(WebCore::ScriptGlobalObject::remove):
* bindings/v8/V8Binding.h:
(WebCore::toV8Sequence):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::setInjectedScriptContextDebugId):
(WebCore::V8DOMWindowShell::updateDocumentProperty):
(WebCore::V8DOMWindowShell::clearDocumentProperty):
* bindings/v8/V8NPObject.cpp:
(WebCore::npObjectPropertyEnumerator):
* bindings/v8/V8NodeFilterCondition.cpp:
(WebCore::V8NodeFilterCondition::acceptNode):
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::constructorOfToString):
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::initializeContextIfNeeded):
* bindings/v8/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::addListener):
2012-12-04 Dan Bernstein <mitz@apple.com>
Support text-orientation: sideways-right (and sideways when it maps to sideways-right)
https://bugs.webkit.org/show_bug.cgi?id=104035
Reviewed by Anders Carlsson.
Test: fast/text/orientation-sideways.html
* GNUmakefile.list.am: Updated for rename of TextOrientation.h.
* WebCore.gypi: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Changed to retrieve
text-orientation from RenderStyle rather than from the font description.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Added sideways and sideways-right as acceptable
text-orientation values.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added mappings for sideways and
sideways-right.
(WebCore::CSSPrimitiveValue::operator TextOrientation): Ditto.
* css/CSSValueKeywords.in: Added sideways and sideways-right.
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder): Removed text-orientation property handler, as it is
now handled in CSSStyleResolver.
* css/StyleResolver.cpp:
(WebCore::getFontAndGlyphOrientation): Added this helper function that determines the font
orientation and non-CJK glyph orientation based on writing-mode and text-orientation.
(WebCore::StyleResolver::styleForDocument): Added code to set the font orientation and
non-CJK glyph orientation in the document style.
(WebCore::checkForOrientationChange): Added. Sets the font orientation and non-CJK glyph
orientation in the child style if the difference between the parent and child styles requires
doing so.
(WebCore::StyleResolver::updateFont): Added call to checkForOrientationChange().
(WebCore::StyleResolver::applyProperty): Changed the writing-mode case to call the new
setWritingMode helper, which dirties the font as needed, rather than changing the font
here. Moved handling of text-orientation here, by calling setTextOrientation, which also
dirties the font as needed.
* css/StyleResolver.h:
(WebCore::StyleResolver::setWritingMode): Added. Dirties the font if the writing mode changes.
(WebCore::StyleResolver::setTextOrientation): Ditto for text orientation.
* platform/graphics/FontDescription.h:
(WebCore::FontDescription::FontDescription): Updated initializer for rename.
(WebCore::FontDescription::nonCJKGlyphOrientation): Renamed textOrientation to this.
(WebCore::FontDescription::setNonCJKGlyphOrientation): Renamed setTextOrientation to this.
(FontDescription): Renamed member variable m_textOrientation to m_nonCJKGlyphOrientation.
(WebCore::FontDescription::operator==): Updated for rename.
* platform/graphics/FontFastPath.cpp:
(WebCore::glyphDataAndPageForNonCJKCharacterWithGlyphOrientation): Renamed
glyphDataAndPageForCharacterWithTextOrientation to this and changed the parameter type from
TextOrientation to NonCJKGlyphOrientation.
(WebCore::Font::glyphDataAndPageForCharacter): Updated for above rename.
* platform/graphics/mac/FontComplexTextMac.cpp:
(WebCore::Font::fontDataForCombiningCharacterSequence): Updated for rename of
FontDescription::textOrientation().
* platform/text/NonCJKGlyphOrientation.h: Renamed TextOrientation.h to this, and renamed
the enum and its values to better reflect that they describe how glyphs for non-CJK
characters are to be rendered in vertical text.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::requiresIdeographicBaseline): Updated for rename of
FontDescription::textOrientation().
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff): Made text-orientation change a layout change.
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::setTextOrientation): Added.
* rendering/style/RenderStyleConstants.h: Added a new TextOrientation enum here.
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData): Added initialization and copying
of m_textOrientation member variable.
(WebCore::StyleRareInheritedData::operator==): Added comparing of m_textOrientation.
* rendering/style/StyleRareInheritedData.h:
(StyleRareInheritedData): Added m_textOrientation member variable.
2012-12-04 Kentaro Hara <haraken@chromium.org>
[V8] Use ScopedPersistent for IntegerCache::smallIntegers
https://bugs.webkit.org/show_bug.cgi?id=104066
Reviewed by Adam Barth.
We can use ScopedPersistent for IntegerCache::smallIntegers
instead of manual Persistent::New().
I confirmed no performance regression in Bindings/scroll-top.html
No tests. No change in behavior.
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::V8PerIsolateData):
* bindings/v8/V8ValueCache.cpp:
(WebCore::IntegerCache::IntegerCache):
* bindings/v8/V8ValueCache.h:
(IntegerCache):
(WebCore::IntegerCache::v8Integer):
(WebCore::IntegerCache::v8UnsignedInteger):
2012-12-04 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Resources: domain cookies are not shown for sub-sub domain pages.
https://bugs.webkit.org/show_bug.cgi?id=104016
Reviewed by Pavel Feldman.
Fixed regexp to allow zero or more subdomain prefix (was zero or one).
* inspector/front-end/CookieParser.js:
(WebInspector.Cookies.cookieDomainMatchesResourceDomain): Fixed regexp.
2012-12-04 Alpha Lam <hclam@chromium.org>
Not reviewed. Build fix.
Fix Chromium Windows build.
* platform/graphics/chromium/ImageDecodingStore.h:
(CacheEntry):
2012-12-04 Kentaro Hara <haraken@chromium.org>
[V8] Remove toV8Object()
https://bugs.webkit.org/show_bug.cgi?id=103987
Reviewed by Adam Barth.
toV8Object() is used only for MessagePort and ArrayBuffer
only by SerializedScriptValue. It is wasteful to generate
toV8Object() for all interfaces.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* bindings/scripts/test/V8/V8Float64Array.h:
(WebCore):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
* bindings/scripts/test/V8/V8TestEventConstructor.h:
* bindings/scripts/test/V8/V8TestEventTarget.h:
* bindings/scripts/test/V8/V8TestException.h:
* bindings/scripts/test/V8/V8TestInterface.h:
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
* bindings/scripts/test/V8/V8TestNode.h:
* bindings/scripts/test/V8/V8TestObj.h:
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
* bindings/v8/SerializedScriptValue.cpp:
2012-12-04 Kentaro Hara <haraken@chromium.org>
[V8] Replace v8::Null(isolate) with v8Null(isolate)
https://bugs.webkit.org/show_bug.cgi?id=104070
Reviewed by Adam Barth.
v8Null(isolate) is a faster version of v8::Null(isolate).
No tests. No change in behavior.
* bindings/v8/V8Binding.h:
(WebCore::v8StringOrNull):
* bindings/v8/custom/V8ClipboardCustom.cpp:
(WebCore::V8Clipboard::typesAccessorGetter):
* bindings/v8/custom/V8CoordinatesCustom.cpp:
(WebCore::V8Coordinates::altitudeAccessorGetter):
(WebCore::V8Coordinates::altitudeAccuracyAccessorGetter):
(WebCore::V8Coordinates::headingAccessorGetter):
(WebCore::V8Coordinates::speedAccessorGetter):
* bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
(WebCore::V8DeviceMotionEvent::accelerationAccessorGetter):
(WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAccessorGetter):
(WebCore::V8DeviceMotionEvent::rotationRateAccessorGetter):
(WebCore::V8DeviceMotionEvent::intervalAccessorGetter):
* bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
(WebCore::V8DeviceOrientationEvent::alphaAccessorGetter):
(WebCore::V8DeviceOrientationEvent::betaAccessorGetter):
(WebCore::V8DeviceOrientationEvent::gammaAccessorGetter):
(WebCore::V8DeviceOrientationEvent::absoluteAccessorGetter):
* bindings/v8/custom/V8DocumentLocationCustom.cpp:
(WebCore::V8Document::locationAccessorGetter):
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::V8HTMLCanvasElement::getContextCallback):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::stateAccessorGetter):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::dataAccessorGetter):
* bindings/v8/custom/V8MicroDataItemValueCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8NodeCustom.cpp:
(WebCore::V8Node::insertBeforeCallback):
(WebCore::V8Node::replaceChildCallback):
(WebCore::V8Node::removeChildCallback):
(WebCore::V8Node::appendChildCallback):
* bindings/v8/custom/V8PopStateEventCustom.cpp:
(WebCore::V8PopStateEvent::stateAccessorGetter):
* bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
(WebCore::V8SQLResultSetRowList::itemCallback):
* bindings/v8/custom/V8TrackEventCustom.cpp:
(WebCore::V8TrackEvent::trackAccessorGetter):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toV8Object):
(WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
(WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallback):
2012-12-04 Min Qin <qinmin@chromium.org>
Make LazyDecodingPixelRef inherit from skia::LazyPixelRef so that cc thread can access it
https://bugs.webkit.org/show_bug.cgi?id=103555
Reviewed by Stephen White.
Expose LazyDecodingPixelRef to the cc thread by inheriting from skia::LazyPixelRef.
No test added for now as impl side paiting is still WIP.
* platform/graphics/chromium/LazyDecodingPixelRef.cpp:
(WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
(WebCore::LazyDecodingPixelRef::PrepareToDecode):
(WebCore):
(WebCore::LazyDecodingPixelRef::Decode):
* platform/graphics/chromium/LazyDecodingPixelRef.h:
(LazyDecodingPixelRef):
2012-12-04 Takashi Sakamoto <tasak@google.com>
Fix compile error when SVG is disabled.
Unreviewed gardening.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
2012-12-04 Anthony Scian <ascian@rim.com>
Static code analysis warning fixes
https://bugs.webkit.org/show_bug.cgi?id=103837
Reviewed by Rob Buis.
172,174: disable copy ctor, op= in AutofillBackingStore
504,506: disable copy ctor, op= in CookieManager
1488,1491: disable copy ctor, op= in RSSParserBase
1489,1490: disable copy ctor, op= in RSSItem
514,516: disable copy ctor, op= in CredentialBackingStore
1363: m_state not initialized in ctor
* platform/blackberry/CookieManager.h:
* platform/blackberry/PlatformTouchPointBlackBerry.cpp:
(WebCore::PlatformTouchPoint::PlatformTouchPoint):
* platform/network/blackberry/AutofillBackingStore.h:
(AutofillBackingStore):
* platform/network/blackberry/CredentialBackingStore.h:
(CredentialBackingStore):
* platform/network/blackberry/rss/RSSParserBase.h:
(RSSParserBase):
2012-12-04 Noel Gordon <noel.gordon@gmail.com>
[v8] Improve worker.postMessage() string performance: avoid utf8 conversion
https://bugs.webkit.org/show_bug.cgi?id=102230
Reviewed by Eric Seidel.
Avoid utf8 conversion when serializing strings with SerializedScriptValue. Provide
Ascii and UChar writers for v8 string serialization and provide a UChar reader for
deserialization. Define/use serialization StringUCharTag to indicate UChar strings
in the wire format. Increment the SerializedScriptValue wire format version.
In the wire format, StringUCharTag is followed by the string length in bytes, then
the length/2 UChars of the string.
Note the string length is VarInt encoded. During serialization, compute the number
of bytes used to encode the length and prepend a PaddingTag if needed so the UChar
data appears on an even-byte boundary. This prevents unaligned reads of UChar data
during deserialization (the deserialization buffer is even-byte aligned).
Testing transfers of large strings to and from workers indicates a 10X improvement
in transfer rate for strings, and strings within js objects, with this change. For
example, 500 MByte/s on my test machine (50 MByte/s without this change) for flat,
32 MByte string postMessage() transfers.
Covered by platform/chromium/fast/storage/serialized-script-value.html
* bindings/v8/SerializedScriptValue.cpp:
2012-12-04 Kentaro Hara <haraken@chromium.org>
[V8] V8Binding::v8ExternalString() is redundant
https://bugs.webkit.org/show_bug.cgi?id=103979
Reviewed by Adam Barth.
v8String(), v8StringOrNull() and v8StringOrUndefined() are enough.
We can remove V8Binding::v8ExternalString().
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrGetter):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::compileAndRunScript):
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::compileScript):
* bindings/v8/V8Binding.h:
(WebCore):
(WebCore::v8String):
(WebCore::v8StringOrNull):
(WebCore::v8StringOrUndefined):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::prepareListenerObject):
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
2012-12-04 Kentaro Hara <haraken@chromium.org>
[V8] Remove v8NonStringValueToWebCoreString() and v8NonStringValueToAtomicWebCoreString()
https://bugs.webkit.org/show_bug.cgi?id=103981
Reviewed by Adam Barth.
v8NonStringValueToWebCoreString() and v8NonStringValueToAtomicWebCoreString()
are equivalent to what StringResource does.
No tests. No change in behavior.
* bindings/v8/V8Binding.cpp:
* bindings/v8/V8Binding.h:
(WebCore::toWebCoreString):
(WebCore):
(WebCore::toWebCoreStringWithNullCheck):
(WebCore::toWebCoreStringWithUndefinedOrNullCheck):
(WebCore::toWebCoreAtomicString):
(WebCore::toWebCoreAtomicStringWithNullCheck):
* bindings/v8/V8StringResource.h:
(WebCore::V8StringResource::V8StringResource):
(V8StringResource):
2012-12-04 Abhishek Arya <inferno@chromium.org>
Crash in WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode
https://bugs.webkit.org/show_bug.cgi?id=103515
Reviewed by Ryosuke Niwa.
|current| is weak node pointer that iterates in the hierarchy chain
between |highestAncestor| and |targetNode|. Script executed as part
of iframe onload event can blow away the nodes and we no longer have
|targetNode| in our descendants chain. So, we RefPtr |current| and bail
out when |targetNode| stops being a part of descendant chain.
Test blocked on https://bugs.webkit.org/show_bug.cgi?id=104044.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
2012-12-04 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
Avoid repeated calls to decorationColor on RenderObject::getTextDecorationColors
https://bugs.webkit.org/show_bug.cgi?id=94131
Reviewed by Brent Fulgham.
Replaces repeated calls to decorationColor by adding a variable that reads the
return value from that function just once on each loop and gets used upon need.
This change won't affect text decoration behavior, so current tests suffice.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::getTextDecorationColors):
2012-12-04 Alpha Lam <hclam@chromium.org>
[chromium] Implement cache eviction logic in ImageDecodingStore
https://bugs.webkit.org/show_bug.cgi?id=103480
Reviewed by James Robinson.
This patch implements these features in the new image cache:
- Least-recently-used eviction logic
- Setting cache limit (default is 32MB)
- Remove cache entries when ImageFrameGenerator is removed
New tests in ImageDecodingTestTest. Also covered by platform/chromium/virtual/deferred.
* platform/graphics/chromium/ImageDecodingStore.cpp:
(WebCore::ImageDecodingStore::ImageDecodingStore):
(WebCore::ImageDecodingStore::~ImageDecodingStore):
Code to assert that everything is cleaned up.
(WebCore::ImageDecodingStore::lockCompleteCache):
(WebCore::ImageDecodingStore::unlockCache):
(WebCore::ImageDecodingStore::insertAndLockCache):
(WebCore::ImageDecodingStore::removeCacheIndexedByGenerator):
New method to remove all cache entries index by ImageFrameGenerator.
(WebCore):
(WebCore::ImageDecodingStore::setCacheLimitInBytes):
(WebCore::ImageDecodingStore::memoryUsageInBytes):
(WebCore::ImageDecodingStore::cacheEntries):
(WebCore::ImageDecodingStore::prune):
New code to implement LRU eviction logic.
(WebCore::ImageDecodingStore::insertCacheInternal):
New method to help new cache insertion. This is separately because it touches 3 containers.
(WebCore::ImageDecodingStore::removeFromCacheInternal):
New method to help remove a cache entry from containers.
(WebCore::ImageDecodingStore::removeFromCacheListInternal):
New helper method to help remove cache entry from doubly linked list.
* platform/graphics/chromium/ImageDecodingStore.h:
(ImageDecodingStore):
(CacheEntry):
(WebCore::ImageDecodingStore::CacheEntry::createAndUse):
(WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
(WebCore::ImageDecodingStore::CacheEntry::~CacheEntry):
(WebCore::ImageDecodingStore::CacheEntry::cacheKey):
(WebCore::ImageDecodingStore::CacheEntry::cachedImage):
(WebCore::ImageDecodingStore::CacheEntry::useCount):
(WebCore::ImageDecodingStore::CacheEntry::incrementUseCount):
(WebCore::ImageDecodingStore::CacheEntry::decrementUseCount):
(WebCore::ImageDecodingStore::CacheEntry::memoryUsageInBytes):
(WebCore::ImageDecodingStore::incrementMemoryUsage):
(WebCore::ImageDecodingStore::decrementMemoryUsage):
New helper methods.
* platform/graphics/chromium/ImageFrameGenerator.cpp:
(WebCore::ImageFrameGenerator::~ImageFrameGenerator):
2012-12-04 Andreas Kling <akling@apple.com>
Style sharing: Allow sharing between elements with classes not referenced by any selectors.
<http://webkit.org/b/103925>
Reviewed by Antti Koivisto.
When looking for elements that can share style, instead of blindly rejecting candidates with
a different "class" attribute, check if it's actually referenced by any of the tracked style rules.
It's surprisingly common for web pages to have elements with classes to which no rules apply,
mediawiki content is especially good at this.
~2100 new sharing "hits" on <https://en.wikipedia.org/wiki/Steve_Jobs>.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithElement):
Don't bail early if the two elements have different return values for hasClass().
(WebCore::StyleResolver::classNamesAffectedByRules):
Helper function that returns whether a SpaceSplitString contains a class name referenced
by any style rules.
(WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
Make this a member function since we need access to m_features.classesInRules.
* css/StyleResolver.h:
(StyleResolver):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::locateSharedStyle):
Cache whether the element we're resolving style for has a "class" attribute referenced by style rules.
2012-12-04 Silvia Pfeiffer <silviapf@chromium.org>
Refactor Media Control Elements to remove code duplication.
https://bugs.webkit.org/show_bug.cgi?id=101877
Reviewed by Eric Carlson.
Instead of having two different types of inheritance trees for
MediaControlElement and MediaControlInputElement, this
creates a stand-alone virtual class MediaControlElement that
provides the common functions: show(), hide(), isShowing(),
setMediaController(), displayType(), isMediaControlElement(),
shadowPseudoId(), mediaController(), setDisplayType().
The individual elements inherit from MediaControlElement and
either HTMLInputElement or HTMLDivElement. They extend/override
the base functions as appropriate.
As part of this, the RenderXXX classes mixed in between the media
controls in MediaControlElements.cpp are also moved to
rendering/RenderMediaControls.h/cpp to follow common code separation.
No new tests since this is just a refactoring.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Build files extended with new files.
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::textTracksIndexNotFound):
Replaced const with function, since it is used in multiple files.
* html/shadow/MediaControlElementTypes.cpp: new file
* html/shadow/MediaControlElementTypes.h: new file
Added new MediaControlElement class. Moved MediaControlDivElement and MediaControlInputElement
classes into these files from MediaControlElements.cpp/h. Moved MediaControlElementTypes enum
into these. Moved other media control element classes that are the basis for inheriting media
control elements into these (MediaControlTimeDisplayElement, MediaControlMuteButtonElement,
MediaControlSeekButtonElement, MediaControlVolumeSliderElement).
* html/shadow/MediaControlElements.cpp:
* html/shadow/MediaControlElements.h:
Removed common functions between media elements that are now in the common
base class MediaControlElement.
Also moved common base classes to MediaControlElementTypes.h/cpp
* html/shadow/MediaControls.cpp:
* html/shadow/MediaControls.h:
Renamed MediaControlVolumeSliderElement to MediaControlPanelVolumeSliderElement
to be consistent in inheritance tree. Updated copyright date.
* html/shadow/MediaControlsApple.cpp:
* html/shadow/MediaControlsApple.h:
Renamed MediaControlVolumeSliderElement to MediaControlPanelVolumeSliderElement
to be consistent in inheritance tree. Updated copyright dates.n
* html/shadow/MediaControlsChromium.cpp:
* html/shadow/MediaControlsChromium.h:
Renamed MediaControlVolumeSliderElement to MediaControlPanelVolumeSliderElement
to be consistent in inheritance tree.
Moved enclosure element definitions to common MediaControlElements.cpp/h
file through which different media elements are made available to different ports.
* html/shadow/MediaControlsChromiumAndroid.cpp:
* html/shadow/MediaControlsChromiumAndroid.h:
Moved enclosure for overlay button to MediaControlElements.cpp/h files
through which different media elements are made available to different ports.
* rendering/RenderMediaControlElements.cpp: new file
* rendering/RenderMediaControlElements.h: new file
Moved rendering classes for media control elements into these files from
MediaControlElements.cpp/h.
* rendering/RenderThemeMac.mm:
Added new RenderMediaControlElements.h file.
* rendering/RenderingAllInOne.cpp:
Added new RenderMediaControlEleemnt.cpp file.
2012-12-04 Kenneth Russell <kbr@google.com>
Associate URLs with GraphicsContext3D instances created for WebGL
https://bugs.webkit.org/show_bug.cgi?id=103793
Reviewed by Adam Barth.
Pass down the URL of the topmost frame's document creating the
WebGL context to the platform layer through
GraphicsContext3D::Attributes.
Not feasible to write a layout test for this change; has no
user-visible effect. Tested manually with failure injection in
Chromium port.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::create):
Pass top document's URL in context creation attributes.
* platform/chromium/support/GraphicsContext3DChromium.cpp:
(WebCore::GraphicsContext3D::create):
Pass URL through WebKit API.
* platform/graphics/GraphicsContext3D.h:
(Attributes):
Add top document's URL to context creation attributes.
2012-12-04 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: simplify reportMemoryUsage signature
https://bugs.webkit.org/show_bug.cgi?id=104028
Reviewed by Vsevolod Vlasov.
Removed const& modifier from instrumented pointer type. Was const T* const&,
now it is const T*
* platform/graphics/NativeImagePtr.h:
(WebCore):
* platform/graphics/skia/NativeImageSkia.cpp:
(WebCore::reportMemoryUsage):
2012-12-04 Adam Barth <abarth@webkit.org>
[V8] Rename V8DOMWrapper member functions to be more descriptive
https://bugs.webkit.org/show_bug.cgi?id=104069
Reviewed by Eric Seidel.
In addition to the renames, this patch also inline lookupDOMWrapper
into its callers.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateDomainSafeFunctionGetter):
(GenerateDomainSafeFunctionSetter):
(GenerateNormalAttrGetter):
(GenerateSingleConstructorCallback):
(GenerateEventConstructorCallback):
(GenerateNamedConstructorCallback):
(GenerateToV8Converters):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
* bindings/v8/Dictionary.cpp:
(WebCore::Dictionary::get):
* bindings/v8/PageScriptDebugServer.cpp:
(WebCore::retrieveFrameWithGlobalObjectCheck):
* bindings/v8/V8Binding.cpp:
(WebCore::toDOMWindow):
(WebCore::toScriptExecutionContext):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::clearForNavigation):
(WebCore::V8DOMWindowShell::installDOMWindow):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::create):
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
(WebCore::V8DOMWrapper::setNativeInfo):
(WebCore::V8DOMWrapper::clearNativeInfo):
(WebCore::V8DOMWrapper::associateObjectWithWrapper):
* bindings/v8/V8Initializer.cpp:
(WebCore::findFrame):
* bindings/v8/V8NPObject.cpp:
(WebCore::createV8ObjectForNPObject):
(WebCore::forgetV8ObjectForNPObject):
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::initializeContextIfNeeded):
(WebCore::WorkerScriptController::controllerForContext):
* bindings/v8/custom/V8ArrayBufferCustom.cpp:
(WebCore::V8ArrayBuffer::constructorCallbackCustom):
* bindings/v8/custom/V8ArrayBufferViewCustom.h:
(WebCore::wrapArrayBufferView):
(WebCore::constructWebGLArray):
* bindings/v8/custom/V8AudioContextCustom.cpp:
(WebCore::V8AudioContext::constructorCallbackCustom):
* bindings/v8/custom/V8DOMFormDataCustom.cpp:
(WebCore::V8DOMFormData::constructorCallbackCustom):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::eventAccessorGetter):
(WebCore::V8DOMWindow::eventAccessorSetter):
(WebCore::V8DOMWindow::toStringCallback):
(WebCore::V8DOMWindow::namedSecurityCheck):
(WebCore::V8DOMWindow::indexedSecurityCheck):
(WebCore::toV8):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::V8DataView::constructorCallbackCustom):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::wrapInShadowObject):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::v8HTMLImageElementConstructorCallback):
* bindings/v8/custom/V8InjectedScriptManager.cpp:
(WebCore::createInjectedScriptHostV8Wrapper):
(WebCore::InjectedScriptManager::canAccessInspectedWindow):
* bindings/v8/custom/V8IntentCustom.cpp:
(WebCore::V8Intent::constructorCallbackCustom):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::reloadAccessorGetter):
(WebCore::V8Location::replaceAccessorGetter):
(WebCore::V8Location::assignAccessorGetter):
* bindings/v8/custom/V8MessageChannelCustom.cpp:
(WebCore::V8MessageChannel::constructorCallbackCustom):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::initMessageEventCallback):
* bindings/v8/custom/V8MutationObserverCustom.cpp:
(WebCore::V8MutationObserver::constructorCallbackCustom):
* bindings/v8/custom/V8ScriptProfileCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8WebKitPointCustom.cpp:
(WebCore::V8WebKitPoint::constructorCallbackCustom):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::V8XMLHttpRequest::constructorCallbackCustom):
2012-12-04 Adam Barth <abarth@webkit.org>
[V8] Cleanup style in V8DOMWrapper
https://bugs.webkit.org/show_bug.cgi?id=104062
Reviewed by Kentaro Hara.
This patch moves a number of functions from inside the class
declaration to below the class declaration. I've also inlined
domWrapperType into each of its callers and renamed a few functions.
A subsequent patch will improve the names of the remaining functions.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateToV8Converters):
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::visitExternalArrays):
* bindings/v8/V8Collection.h:
(WebCore::getNamedPropertyOfCollection):
(WebCore::getIndexedPropertyOfCollection):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::instantiateDOMWrapper):
(WebCore::V8DOMWrapper::isWrapperOfType):
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
(WebCore::V8DOMWrapper::setWrapperClass):
(WebCore::V8DOMWrapper::setDOMWrapper):
(WebCore):
(WebCore::V8DOMWrapper::clearDOMWrapper):
(WebCore::V8DOMWrapper::lookupDOMWrapper):
(WebCore::V8DOMWrapper::createDOMWrapper):
* bindings/v8/V8GCController.cpp:
* bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
(WebCore::V8InspectorFrontendHost::showContextMenuCallback):
2012-12-04 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136597.
http://trac.webkit.org/changeset/136597
https://bugs.webkit.org/show_bug.cgi?id=104065
broke Windows compilation (Requested by yurys on #webkit).
* platform/graphics/NativeImagePtr.h:
(WebCore):
* platform/graphics/skia/NativeImageSkia.cpp:
(WebCore::reportMemoryUsage):
2012-12-04 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: simplify reportMemoryUsage signature
https://bugs.webkit.org/show_bug.cgi?id=104028
Reviewed by Vsevolod Vlasov.
Removed const& modifier from instrumented pointer type. Was const T* const&,
now it is const T*
* platform/graphics/NativeImagePtr.h:
(WebCore):
* platform/graphics/skia/NativeImageSkia.cpp:
(WebCore::reportMemoryUsage):
2012-12-04 Adam Barth <abarth@webkit.org>
[V8] V8DOMWrapper shouldn't know about NodeFilter
https://bugs.webkit.org/show_bug.cgi?id=104057
Reviewed by Kentaro Hara.
This patch just moves this code into V8Bindings.h, which is where we
have our other type conversion functions. It's too bad that we still
need to special case NodeFilter, but fixing that is going to be a bit
more work.
* bindings/scripts/CodeGeneratorV8.pm:
(JSValueToNative):
* bindings/v8/V8Binding.cpp:
(WebCore::toNodeFilter):
(WebCore):
* bindings/v8/V8Binding.h:
(WebCore):
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/V8DOMWrapper.h:
(WebCore):
(V8DOMWrapper):
2012-12-04 Simon Fraser <simon.fraser@apple.com>
Show a mini visualizer for the tile cache tiles
https://bugs.webkit.org/show_bug.cgi?id=104053
Reviewed by Beth Dakin.
Replace the current red/green/yellow scrolling indicator with a
mini map of the tile cache that shows the current tiles, and the
visible rect.
Visibility is controlled via a new preference.
* WebCore.exp.in: Add Settings::setShowTiledScrollingIndicator(bool),
and remove ScrollingTree::setDebugRootLayer(CALayer*)
* WebCore.xcodeproj/project.pbxproj: Remove ScrollingTreeMac.mm which
is no longer needed; it just contained debug layer stuff.
* page/Settings.cpp:
(WebCore::Settings::Settings): Support the new setting.
(WebCore::Settings::setShowTiledScrollingIndicator):
* page/Settings.h:
(WebCore::Settings::showTiledScrollingIndicator):
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::commitNewTreeState): We no longer update the debug
indicator on tree commit.
* page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::hasWheelEventHandlers): Needed for the tiled
scrolling indicator.
(ScrollingTree):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::commitTreeState): Tell the TiledBacking
about the current scrolling mode.
* page/scrolling/mac/ScrollingTreeMac.mm: Removed.
* platform/graphics/TiledBacking.h: Add functions to set the indicator scrolling
mode, and to get the tiled scrolling indicator layer. This has to be parented by
the DrawingArea, to ensure that it's in front of all other layers.
* platform/graphics/ca/mac/TileCache.h:
(WebCore::TileCache::scale): Exposed for the indicator drawing code to use.
* platform/graphics/ca/mac/TileCache.mm:
(-[WebTileCacheMapLayer init]): The indicator has a sublayer which renders the
visible rect frame, owned by it.
(-[WebTileCacheMapLayer drawInContext:]):
(WebCore::TileCache::TileCache): The indicator mode has to be stored here,
since it can be pushed down before we have an indicator layer.
(WebCore::TileCache::~TileCache): Clear the TileCache on the indicator layer, which
may outlive us.
(WebCore::TileCache::revalidateTiles): Call updateTileCoverageMap().
(WebCore::TileCache::updateTileCoverageMap): Resize the indicator layer to fit
within the window, and update the indicator color.
(WebCore::TileCache::tiledScrollingIndicatorLayer): Create and initialize the layer.
(WebCore::TileCache::setScrollingModeIndication):
(WebCore::TileCache::drawTileMapContents): Draw small white rects for the tiles over
an translucent gray background.
2012-12-04 David Grogan <dgrogan@chromium.org>
IndexedDB: Propagate more leveldb errors to IDBIndex and IDBObjectStore
https://bugs.webkit.org/show_bug.cgi?id=103782
Reviewed by Tony Chang.
index.get[Key]() and objectStore.get() will receive more error events.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::getRecord):
(WebCore::versionExists):
(WebCore::IDBBackingStore::findKeyInIndex):
(WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
(WebCore::IDBBackingStore::keyExistsInIndex):
* Modules/indexeddb/IDBBackingStore.h:
(IDBBackingStore):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::getInternal):
(WebCore::IDBIndexBackendImpl::getKeyInternal):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::getInternal):
(WebCore):
2012-12-04 Kentaro Hara <haraken@chromium.org>
[V8] Remove IntegerCache::m_initialized
https://bugs.webkit.org/show_bug.cgi?id=103978
Reviewed by Adam Barth.
Thanks to r136479, we can now initialize V8 integers in IntegerCache's
constructor. We can remove IntegerCache::m_initialized, which slightly
improves performance.
[Bindings/scroll-top.html in Chromium/Linux]
Before this patch: 285 runs/sec, 281 runs/sec, 281 runs/sec, 280 runs/sec
After this patch : 290 runs/sec, 291 runs/sec, 297 runs/sec, 291 runs/sec
No tests. No change in behavior.
* bindings/v8/V8ValueCache.cpp:
(WebCore::IntegerCache::IntegerCache):
(WebCore::IntegerCache::~IntegerCache):
* bindings/v8/V8ValueCache.h:
(IntegerCache):
(WebCore::IntegerCache::v8Integer):
(WebCore::IntegerCache::v8UnsignedInteger):
(WebCore):
2012-12-04 Kentaro Hara <haraken@chromium.org>
[V8] Replace String::New("symbol") with String::NewSymbol("symbol")
https://bugs.webkit.org/show_bug.cgi?id=103989
Reviewed by Adam Barth.
In V8, a symbol lookup is faster than a string lookup. We should use
String::NewSymbol("symbol") for symbols.
No tests. No change in behavior.
* bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::V8HTMLCanvasElement::getContextCallback):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::V8InjectedScriptHost::typeCallback):
(WebCore::V8InjectedScriptHost::functionDetailsCallback):
(WebCore::getJSListenerFunctions):
* bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
(WebCore::populateContextMenuItems):
2012-12-04 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Implement CSS parsing and handling for <track-minmax>
https://bugs.webkit.org/show_bug.cgi?id=103799
Reviewed by Tony Chang.
This change adds support for:
<track-minmax> => minmax( <track-breadth> , <track-breadth> ) | auto | <track-breadth>
(note that we already supported auto | <track-breadth>).
The change is mostly mechanical, the only newness is that GridTrackSize was updated to
hold 2 Lengths internally and we map the single Length case to 2 by duplicating the value
as this matches the rendering algorithm in the spec.
Tests: fast/css-grid-layout/grid-columns-rows-get-set-multiple.html
fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackBreadth):
Changed the function to do the conversion of one track breadth (one Length).
This was forgotten in the preparatory change in bug 103703.
(WebCore::valueForGridTrackMinMax):
Convert the value back using valueForGridTrackBreadth.
* css/CSSFunctionValue.cpp:
(WebCore::CSSFunctionValue::CSSFunctionValue):
* css/CSSFunctionValue.h:
(WebCore::CSSFunctionValue::create):
(CSSFunctionValue):
Added a new constructor. This enables us to return minmax(..., ...) when queried
from JavaScript. I couldn't find a better way to serialize inside CSSComputedStyleDeclaration
so that it properly match the function output.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridTrackMinMax):
Added parsing for the new syntax. We convert the 2 values into a Pair if we manage to
parse both values correctly.
* css/StyleResolver.cpp:
(WebCore::createGridTrackMinMax):
Updated to handle a Pair - for minmax - and set the 2 values on GridTrackSize.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
Updated to check the style. For now, we don't handle minmax values.
* rendering/style/GridTrackSize.h:
(WebCore::GridTrackSize::GridTrackSize):
(WebCore::GridTrackSize::length):
(WebCore::GridTrackSize::setLength):
(WebCore::GridTrackSize::minTrackBreadth):
(WebCore::GridTrackSize::maxTrackBreadth):
(WebCore::GridTrackSize::setMinMax):
(WebCore::GridTrackSize::operator==):
Updated the class to handle minmax values. This means that we now always store
2 values (the <length> case being a subset of minmax, however we kept the distinction
to be able to reconstruct a <length> for getComputedStyle).
2012-12-04 Elliott Sprehn <esprehn@chromium.org>
parser* methods in ContainerNode should not support DocumentFragment
https://bugs.webkit.org/show_bug.cgi?id=103965
Reviewed by Darin Adler.
Only parserInsertBefore ever supported DocumentFragment and this feature
is never used. It appears this code ended up in parserInsertBefore when
it was created as a copy of insertBefore that didn't fire events. This
patch removes that code and adds assertions that we never pass
DocumentFragments since doing so would cause a corrupted tree as we never
check checkAcceptChild or do other validation in the parser methods.
No new tests, just refactoring.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::parserRemoveChild):
(WebCore::ContainerNode::parserAppendChild):
2012-12-04 Elliott Sprehn <esprehn@gmail.com>
Simplify ShadowRoot::cloneNode(bool,ExceptionCode)
https://bugs.webkit.org/show_bug.cgi?id=103928
Reviewed by Dimitri Glazkov.
ShadowRoot can never be cloned and ShadowRoot::cloneNode(bool) always
returns null so there's no reason to have code in the cloneNode method
for script that acts as if it may not return null.
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::cloneNode):
2012-12-04 Elliott Sprehn <esprehn@chromium.org>
setIsInTopLayer is not really a setter
https://bugs.webkit.org/show_bug.cgi?id=103912
Reviewed by Eric Seidel.
Element::setInTopLayer isn't just a setter, it also adds the element
to the top layer vector in the document which changes it's display and
causes a reattach.
To make this more obvious make HTMLDialogElement use the methods on
Document and make those update the state boolean.
There also doesn't seem to be any reason for setInTopLayer
or isInTopLayer to be virtual, it appears it was a typo.
No new tests, just refactoring.
* dom/Document.cpp:
(WebCore::Document::addToTopLayer):
(WebCore::Document::removeFromTopLayer):
* dom/Element.cpp:
(WebCore::Element::setIsInTopLayer):
* dom/Element.h:
* html/HTMLDialogElement.cpp:
(WebCore::HTMLDialogElement::close):
(WebCore::HTMLDialogElement::showModal):
2012-12-04 Elliott Sprehn <esprehn@chromium.org>
Automatically handle suspend and resume of post attach callbacks
https://bugs.webkit.org/show_bug.cgi?id=103910
Reviewed by Eric Seidel.
Use RAII to handle suspend and resume of post attach callbacks since
they should always be called in pairs.
No new tests, just refactoring.
* dom/ContainerNode.h:
(PostAttachCallbackDisabler):
(WebCore::PostAttachCallbackDisabler::PostAttachCallbackDisabler):
(WebCore::PostAttachCallbackDisabler::~PostAttachCallbackDisabler):
(ContainerNode):
* dom/Document.cpp:
(WebCore::Document::recalcStyle):
* dom/Element.cpp:
(WebCore::Element::attach):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::attach):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::attach):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::attach):
(WebCore):
2012-12-04 Elliott Sprehn <esprehn@chromium.org>
createRareData should return a PassOwnPtr
https://bugs.webkit.org/show_bug.cgi?id=103851
Reviewed by Eric Seidel.
createRareData should return a PassOwnPtr, not an OwnPtr since it's
transfering ownership.
* dom/Element.cpp:
(WebCore::Element::createRareData):
* dom/Element.h:
(Element):
* dom/Node.cpp:
(WebCore::Node::createRareData):
* dom/Node.h:
2012-12-04 Filip Pizlo <fpizlo@apple.com>
Rename Profiler to LegacyProfiler
https://bugs.webkit.org/show_bug.cgi?id=104031
Rubber stamped by Mark Hahnenberg
Just renaming, no new tests.
* ForwardingHeaders/profiler/LegacyProfiler.h: Copied from Source/WebCore/ForwardingHeaders/profiler/Profiler.h.
* ForwardingHeaders/profiler/Profiler.h: Removed.
* bindings/js/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::start):
(WebCore::ScriptProfiler::stop):
2012-12-04 James Simonsen <simonjam@chromium.org>
[User Timing] Fix clang build by removing need for exit time destructor
https://bugs.webkit.org/show_bug.cgi?id=104036
Reviewed by Tony Gentilcore.
Modeled after r99588.
No new tests. No change in functionality.
* page/PerformanceUserTiming.cpp:
(WebCore::UserTiming::UserTiming):
(WebCore::UserTiming::mark):
(WebCore::UserTiming::findExistingMarkStartTime):
* page/PerformanceUserTiming.h:
(UserTiming):
2012-12-04 James Simonsen <simonjam@chromium.org>
[User Timing] Fix negative durations
https://bugs.webkit.org/show_bug.cgi?id=104038
Reviewed by Tony Gentilcore.
At some point, we went from passing in a duration to passing in the end time. User Timing
wasn't updated.
Tests: http/tests/w3c/webperf/submission/Intel/user-timing
* page/PerformanceMark.h:
(WebCore::PerformanceMark::PerformanceMark):
* page/PerformanceUserTiming.cpp:
(WebCore::UserTiming::measure):
2012-12-04 Abhishek Arya <inferno@chromium.org>
Heap-use-after-free in WebCore::StyleCachedImageSet::cssValue
https://bugs.webkit.org/show_bug.cgi?id=100621
Reviewed by Eric Seidel.
r115639 fixed a memory leak caused by reference cycle between StyleCachedImageSet
and its owner CSSImageSetValue. The fix caused StyleCachedImageSet to maintain
a weak pointer to CSSImageSetValue. This patch makes sure that the weak pointer
is cleared when CSSImageSetValue is going away.
Test: fast/css/image-set-value-not-removed-crash.html
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::~CSSImageSetValue):
* rendering/style/StyleCachedImageSet.h:
(WebCore::StyleCachedImageSet::clearImageSetValue):
(StyleCachedImageSet):
2012-12-04 Adam Barth <abarth@webkit.org>
NodeFilter leaks memory in V8
https://bugs.webkit.org/show_bug.cgi?id=104027
Reviewed by Eric Seidel.
NodeFilter holds a RefPtr to NodeFilterCondition, which holds a
ScopedPersistent to its callback function. If the callback function can
see the NodeFilter wrapper, we have a cycle and a leak.
This patch makes the NodeFilterCondition hold a weak pointer to the
callback function and ties the lifetime of that callback function to
the NodeFilter wrapper (so they live and die together).
* bindings/v8/V8GCController.cpp:
* bindings/v8/V8NodeFilterCondition.cpp:
(WebCore::V8NodeFilterCondition::V8NodeFilterCondition):
(WebCore::V8NodeFilterCondition::weakCallback):
(WebCore):
(WebCore::V8NodeFilterCondition::acceptNode):
* bindings/v8/V8NodeFilterCondition.h:
(WebCore::V8NodeFilterCondition::create):
(V8NodeFilterCondition):
(WebCore::V8NodeFilterCondition::callback):
* dom/NodeFilter.h:
(WebCore::NodeFilter::condition):
2012-12-04 Abhishek Arya <inferno@chromium.org>
Crash in CachedResource::checkNotify due to -webkit-crossfade.
https://bugs.webkit.org/show_bug.cgi?id=98068
Reviewed by Nate Chapin.
Make sure to not re-add the same client again for |m_cachedFromImage|
and |m_cachedToImage|. This would otherwise cause the CSSCrossfadeValue
client to not get removed from its cached image resource (when it is
going away).
Test: fast/images/crossfade-client-not-removed-crash.html
* css/CSSCrossfadeValue.cpp:
(WebCore::CSSCrossfadeValue::loadSubimages):
2012-12-04 Julien Chaffraix <jchaffraix@webkit.org>
Heap-use-after-free in WebCore::RenderLayer::paintList [MathML]
https://bugs.webkit.org/show_bug.cgi?id=100764
Reviewed by Eric Seidel.
Test: mathml/mfenced-root-layer.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::stackingContext):
Fixed this function to ensure that it always returns a stacking context, the bug
was that the document element's layer wasn't guaranteed to be a stacking context.
2012-12-04 Adam Barth <abarth@webkit.org>
[V8] GetNativeType in CodeGeneratorV8.pm needs a bath
https://bugs.webkit.org/show_bug.cgi?id=104022
Reviewed by Eric Seidel.
This change shouldn't have any effect on the generated code.
* bindings/scripts/CodeGeneratorV8.pm:
(GetNativeType):
- DOMUserData was removed in 2005. There's no need for the code
generator to still know about it.
(JSValueToNative):
(ConvertToV8StringResource):
2012-12-04 Adam Barth <abarth@webkit.org>
[V8] EventTarget shouldn't be a special snowflake
https://bugs.webkit.org/show_bug.cgi?id=104018
Reviewed by Eric Seidel.
Previously we special-cased the toV8 operation for event targets.
There's no need for that. We can use IDL attribute to handle
EventTarget using the same general-purpose code that we use for other
interfaces.
* WebCore.gypi:
* bindings/scripts/CodeGeneratorV8.pm:
(NativeToJSValue):
* bindings/v8/V8AbstractEventListener.cpp:
(WebCore::V8AbstractEventListener::getReceiverObject):
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
* bindings/v8/V8WorkerContextEventListener.cpp:
(WebCore::V8WorkerContextEventListener::getReceiverObject):
* bindings/v8/custom/V8EventTargetCustom.cpp: Added.
(WebCore):
(WebCore::toV8):
* dom/EventTarget.idl:
2012-12-04 Florin Malita <fmalita@chromium.org>
Stale SVGUseElement reference in CachedResource::checkNotify()
https://bugs.webkit.org/show_bug.cgi?id=104004
Reviewed by Eric Seidel.
SVGUseElement tracks one CachedSVGDocument at a time (for external references), but when
the href attribute is updated it fails to unregister with the current CachedSVGDocument
and only updates its CachedSVGDocument with the new instance. This leaves an untracked
reference with the original CachedSVGDocument.
The patch adds the missing removeClient() call on href change, and encapsulates the
CachedSVGDocument manipulation in a helper method which handles the necessary cleanup.
Test: svg/custom/use-href-update-crash.svg
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::~SVGUseElement):
(WebCore::SVGUseElement::svgAttributeChanged):
(WebCore::SVGUseElement::setCachedDocument):
(WebCore):
* svg/SVGUseElement.h:
(SVGUseElement):
2012-12-04 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: Can't take a heap snapshot in chromium ("Uncaught ReferenceError")
https://bugs.webkit.org/show_bug.cgi?id=103997
Reviewed by Pavel Feldman.
utilities.js used in both page and worker contexts should not access window
object as there is no one in case of workers. NonLeakingMutationObserver implementation
has moved to DOMExtension.js
* inspector/front-end/DOMExtension.js:
(NonLeakingMutationObserver.NonLeakingMutationObserver._unloadListener):
(NonLeakingMutationObserver):
(NonLeakingMutationObserver.prototype.observe):
(NonLeakingMutationObserver.prototype.disconnect):
* inspector/front-end/utilities.js:
2012-12-04 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136509.
http://trac.webkit.org/changeset/136509
https://bugs.webkit.org/show_bug.cgi?id=104015
broke layout tests (Requested by eae on #webkit).
* platform/graphics/IntSize.h:
(WebCore::IntSize::scale):
2012-12-04 Antoine Quint <graouts@apple.com>
INVALID_STATE_ERR error upon calling .addCue() for an already-in-use cue
https://bugs.webkit.org/show_bug.cgi?id=103264
Reviewed by Eric Carlson.
Adhere to the latest spec for TextTrack's .addCue() method. This also fixes
https://bugs.webkit.org/show_bug.cgi?id=103265 and we've removed
media/track/opera/interfaces/TextTrack/addCue.html from the Skipped list.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::addCue):
* html/track/TextTrack.h:
(TextTrack):
* html/track/TextTrack.idl:
2012-12-04 Mike West <mkwst@chromium.org>
Log to console when forms and popups are blocked by 'sandbox'.
https://bugs.webkit.org/show_bug.cgi?id=103615
Reviewed by Adam Barth.
Adds two console messages to cover form submissions blocked by a
sandboxed frame lacking the 'allow-forms' permission, and window
creation blocked by a sandboxed frame lacking the 'allow-popups'
permission.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::submitForm):
Log a warning when form submission is blocked by sandboxing flags.
(WebCore::createWindow):
Log a warning when window.open is blocked due to sandboxing flags.
2012-12-04 Kentaro Hara <haraken@chromium.org>
[V8] Make v8::Null(isolate) faster by caching the value in V8 bindings
https://bugs.webkit.org/show_bug.cgi?id=103862
Reviewed by Adam Barth.
Performance comparison between V8 and JSC revealed that DOM attributes
that return v8::Null(isolate) are much slower than JSC.
(https://docs.google.com/a/chromium.org/spreadsheet/ccc?key=0AlobCOyvTnPKdDg5S0dMdGRGRTRSaW53V1ppVzh6eXc#gid=2)
We can optimize v8::Null(isolate) by caching the value to V8PerIsolateData.
(Although I don't like the optimization, it looks difficult to optimize
v8::Null(isolate) more.)
[Bindings/undefined-first-child.html]
Before: 969 runs/sec, 970 runs/sec, 962 runs/sec
After: 1086 runs/sec, 1085 runs/sec, 1086 runs/sec
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNormalAttrGetter):
(GenerateFunctionCallback):
(NativeToJSValue):
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::toV8Fast):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::contentDocumentAttrGetter):
(WebCore::TestObjV8Internal::getSVGDocumentCallback):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetter):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetter):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
* bindings/v8/V8Binding.h:
(WebCore):
(WebCore::v8Null):
(WebCore::v8NullWithCheck):
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::V8PerIsolateData):
* bindings/v8/V8PerIsolateData.h:
(WebCore::V8PerIsolateData::v8Null):
(V8PerIsolateData):
2012-12-04 Alexis Menard <alexis@webkit.org>
Add an helper function in CSSParser to check for '/' character.
https://bugs.webkit.org/show_bug.cgi?id=104009
Reviewed by Ryosuke Niwa.
Remove unwanted null check from r136525
No new tests : just a refactor, existing tests should cover.
* css/CSSParser.cpp:
(WebCore::isForwardSlashOperator):
2012-12-04 Alexis Menard <alexis@webkit.org>
Add an helper function in CSSParser to check for '/' character.
https://bugs.webkit.org/show_bug.cgi?id=104009
Reviewed by Ryosuke Niwa.
I'm about to add the same pattern in a following patch. Let's do an
helper function first. We also did that for the comma. The slash
character is pretty used in shorthands definitions.
No new tests : just a refactor, existing tests should cover.
* css/CSSParser.cpp:
(WebCore::isForwardSlashOperator):
(WebCore):
(WebCore::CSSParser::parseFillShorthand):
(WebCore::CSSParser::parseFont):
(WebCore::CSSParser::parseBorderImage):
(WebCore::CSSParser::parseAspectRatio):
2012-12-04 Ken Kania <kkania@chromium.org>
Inspector: Introduce Input.dispatchKeyEvent and DOM.focus for typing simulation.
https://bugs.webkit.org/show_bug.cgi?id=103530
Reviewed by Yury Semikhatsky.
Input.dispatchKeyEvent simply calls EventHandler::keyEvent with the key event data
from the command parameters. The client will be responsible for providing proper
events to simulate desired typing behavior.
DOM.focus calls focus on a dom element.
Tests: inspector-protocol/dom-focus.html
inspector-protocol/input-dispatchKeyEvent.html
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* inspector/Inspector.json:
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::focus):
(WebCore):
(WebCore::InspectorDOMAgent::resolveNode):
* inspector/InspectorDOMAgent.h:
(InspectorDOMAgent):
* inspector/InspectorInputAgent.cpp: Added.
(WebCore):
(WebCore::InspectorInputAgent::InspectorInputAgent):
(WebCore::InspectorInputAgent::~InspectorInputAgent):
(WebCore::InspectorInputAgent::dispatchKeyEvent):
* inspector/InspectorInputAgent.h: Added.
(WebCore):
(InspectorInputAgent):
(WebCore::InspectorInputAgent::create):
2012-12-04 Dan Bernstein <mitz@apple.com>
FontPlatformData has unnecessary m_textOrientation member
https://bugs.webkit.org/show_bug.cgi?id=103971
Reviewed by Darin Adler.
Nothing in SimpleFontData depends on the FontPlatformData’s textOrientation, so we don’t
need separate data for vertical-right and upright. We simply choose between
verticalRightOrientationFontData() and uprightOrientationFontData() based on the
textOrientation in the FontDescription.
* WebCore.exp.in: Updated FontPlatformData constructor exports.
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::getFontData): Removed the text orientation bit from the hash key,
and updated for the removal of the TextOrientation parameter to
CachedFont::platformDataFromCustomData().
* loader/cache/CachedFont.cpp:
(WebCore::CachedFont::platformDataFromCustomData): Removed the TextOrientation parameter.
* loader/cache/CachedFont.h:
* platform/graphics/FontCache.cpp:
(WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey): Removed the TextOrientation
parameter and initializer.
(WebCore::FontPlatformDataCacheKey::operator==): Updated for removal of m_textOrientation
member variable.
(FontPlatformDataCacheKey): Removed m_textOrientation member variable.
(WebCore::computeHash): Removed text orientation bit from the hash.
(WebCore::FontCache::getCachedFontPlatformData): Updated for FontPlatformDataCacheKey
change.
* platform/graphics/FontPlatformData.cpp:
(WebCore::FontPlatformData::FontPlatformData): Removed TextOrientation parameters and
initializers.
(WebCore::FontPlatformData::operator=): Updated for removal of m_textOrientation
member variable.
* platform/graphics/FontPlatformData.h:
(FontPlatformData): Removed m_textOrientation member variable, removed TextOrientation
parameters from constructors.
(WebCore::FontPlatformData::hash): Removed text orientation bit.
(WebCore::FontPlatformData::operator==): Updated for removed member variable.
* platform/graphics/cairo/FontCustomPlatformData.h:
(FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
* platform/graphics/chromium/FontCacheAndroid.cpp:
(WebCore::FontCache::createFontPlatformData): Updated for FontPlatformData change.
* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::FontPlatformData): Removed TextOrientation parameter and
initializer.
* platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
* platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
(WebCore::FontPlatformData::FontPlatformData): Removed TextOrientation parameter and
initializers.
(WebCore::FontPlatformData::operator=): Updated for removed member variable.
(WebCore::FontPlatformData::operator==): Ditto.
(WebCore::FontPlatformData::hash): Removed text orientation bit.
* platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
(FontPlatformData): Removed TextOrientation parameter from the constructor declaration.
* platform/graphics/mac/FontCacheMac.mm:
(WebCore::FontCache::createFontPlatformData): Updated for FontPlatformData change.
* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
* platform/graphics/mac/FontCustomPlatformData.h:
(FontCustomPlatformData): Removed TextOrientation parameter from declaration of
fontPlatformData().
* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore::SimpleFontData::getCompositeFontReferenceFontData): Updated for FontPlatformData
change.
* platform/graphics/pango/FontCustomPlatformDataPango.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
* platform/graphics/qt/FontCustomPlatformData.h:
* platform/graphics/qt/FontCustomPlatformDataQt.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Ditto.
* platform/graphics/skia/FontCacheSkia.cpp:
(WebCore::FontCache::createFontPlatformData): Updated for FontPlatformData change.
* platform/graphics/skia/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
* platform/graphics/skia/FontCustomPlatformData.h:
* platform/graphics/win/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
* platform/graphics/win/FontCustomPlatformData.h:
* platform/graphics/win/FontCustomPlatformDataCairo.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
* platform/graphics/win/FontCustomPlatformDataCairo.h:
* platform/graphics/win/FontPlatformDataCGWin.cpp:
(WebCore::FontPlatformData::FontPlatformData): Removed m_textOrientation initializer.
* platform/graphics/win/FontPlatformDataCairoWin.cpp:
(WebCore::FontPlatformData::FontPlatformData): Ditto.
* platform/graphics/win/FontPlatformDataWin.cpp:
(WebCore::FontPlatformData::FontPlatformData): Ditto.
* platform/graphics/wince/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
* platform/graphics/wince/FontCustomPlatformData.h:
2012-12-04 Charlie Reis <creis@chromium.org>
Add FrameLoaderClient::didDisownOpener
https://bugs.webkit.org/show_bug.cgi?id=103789
Reviewed by Darin Fisher.
Adds a didDisownOwner notification when a frame's opener is cleared,
so that FrameLoaderClients can react.
No new tests.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::setOpener): Calls didDisownOpener if opener is cleared.
* loader/FrameLoaderClient.h:
(FrameLoaderClient):
(WebCore::FrameLoaderClient::didDisownOpener):
2012-12-04 Robert Hogan <robert@webkit.org>
Redrawing issue with inserting new inline element between existing inline elements
https://bugs.webkit.org/show_bug.cgi?id=50315
Reviewed by Levi Weintraub.
When inserting an element such as '<span>text<br></span>' between two lineboxes, the second of which has leading space
collapsed away after a line-break, dirtyLinesFromChangeChild() needs to ensure that the linebox the fragment is inserted into (the second
of the two lineboxes) gets dirtied.
Since the element has been inserted before the first element in the linebox, but after the collapsed leading
space, the search for the new element's linebox will go past the leading space to the previous linebox and select that
one by mistake.
So in order to ensure the element's linebox is dirtied make sure its previous sibling is not the line-break object of the
linebox we selected when searching for a linebox to dirty. If the previous sibling is the linebox's line-break object then
the element is in the one after the one we selected and we should dirty that linebox too.
Test: fast/inline/layout-after-inserting-nested-br.html
* rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
2012-12-04 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
IntSize::scale() should return rounded value
https://bugs.webkit.org/show_bug.cgi?id=103984
Reviewed by Kenneth Rohde Christiansen.
IntSize::scale() is now rounding float value to the nearest integer instead of blind type casting.
Test: css3/device-adapt/viewport-width-not-affecting-next-page.html
* platform/graphics/IntSize.h:
(WebCore::IntSize::scale):
2012-12-04 Adam Bergkvist <adam.bergkvist@ericsson.com>
Add support for generic types in arrays and sequences to the code generators
https://bugs.webkit.org/show_bug.cgi?id=103642
Reviewed by Kentaro Hara.
Updated the bindings generators to support arrays and sequences of host objects.
- Arrays and sequences of host objects are mapped to Vector<RefPtr<%RefPtrType%> >.
- Fixed issue where "sequence<String>" was used in IDL files instead of "sequence<DOMString>".
Updated existing test results.
* Modules/indexeddb/IDBDatabase.idl:
* Modules/indexeddb/IDBObjectStore.idl:
* Modules/mediastream/RTCStatsElement.idl:
* Modules/websockets/WebSocket.idl:
* bindings/js/JSDOMBinding.h:
(WebCore::toRefPtrNativeArray):
(WebCore):
* bindings/scripts/CodeGenerator.pm:
(IsRefPtrType):
* bindings/scripts/CodeGeneratorJS.pm:
(AddIncludesForType):
(GetNativeType):
(GetNativeVectorInnerType):
(JSValueToNative):
(NativeToJSValue):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateParametersCheckExpression):
(GenerateFunctionCallString):
(GetNativeType):
(JSValueToNative):
(CreateCustomSignature):
(NativeToJSValue):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::longLongAttrAttrSetter):
(WebCore::TestObjV8Internal::unsignedLongLongAttrAttrSetter):
(WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
(WebCore::TestObjV8Internal::overloadedMethod10Callback):
* bindings/v8/V8Binding.h:
(WebCore::toRefPtrNativeArray):
* testing/Internals.idl:
2012-12-04 Antoine Quint <graouts@apple.com>
TextTrack's .kind property should return lower-case values
https://bugs.webkit.org/show_bug.cgi?id=103411
Reviewed by Eric Carlson.
While the HTML "kind" attribute on the <track> element allows upper-case values, the related APIs
on HTMLMediaElement and TextTrack expect only to deal with lower-case values. As such, we're updating
TextTrack::isValidKindKeyword() to be case-sensitive and ensure that values fed from the DOM (the values
read from HTML attributes) are lower-case'd.
Thanks to this fix, we're no longer skipping media/track/opera/interfaces/TextTrack/kind.html and
media/track/opera/interfaces/HTMLElement/HTMLMediaElement/addTextTrack.html
This patch also fixes https://bugs.webkit.org/show_bug.cgi?id=103256.
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::parseAttribute):
(WebCore::HTMLTrackElement::ensureTrack):
* html/track/TextTrack.cpp:
(WebCore::TextTrack::isValidKindKeyword):
2012-12-04 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136498.
http://trac.webkit.org/changeset/136498
https://bugs.webkit.org/show_bug.cgi?id=103992
Patch causes a lot of tests to crash in GTK+ bots (Requested
by KaL on #webkit).
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateProperties):
(GenerateHeader):
(GenerateCFile):
(GenerateEventTargetIface):
(WriteData):
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
(WebKit::core):
(WebKit::wrapFloat64Array):
(webkit_dom_float64array_finalize):
(webkit_dom_float64array_class_init):
(webkit_dom_float64array_init):
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
(WebKit::core):
(WebKit::wrapTestActiveDOMObject):
(webkit_dom_test_active_dom_object_finalize):
(webkit_dom_test_active_dom_object_class_init):
(webkit_dom_test_active_dom_object_init):
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
(WebKit::core):
(WebKit::wrapTestCallback):
(webkit_dom_test_callback_finalize):
(webkit_dom_test_callback_class_init):
(webkit_dom_test_callback_init):
* bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
(WebKit::core):
(WebKit::wrapTestCustomNamedGetter):
(webkit_dom_test_custom_named_getter_finalize):
(webkit_dom_test_custom_named_getter_class_init):
(webkit_dom_test_custom_named_getter_init):
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
(WebKit::core):
(WebKit::wrapTestEventConstructor):
(webkit_dom_test_event_constructor_finalize):
(webkit_dom_test_event_constructor_class_init):
(webkit_dom_test_event_constructor_init):
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
(WebKit::core):
(WebKit::wrapTestEventTarget):
(webkit_dom_test_event_target_dispatch_event):
(webkit_dom_test_event_target_add_event_listener):
(webkit_dom_test_event_target_remove_event_listener):
(webkit_dom_test_event_target_finalize):
(webkit_dom_test_event_target_class_init):
(webkit_dom_test_event_target_init):
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
* bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
(WebKit::core):
(WebKit::wrapTestException):
(webkit_dom_test_exception_finalize):
(webkit_dom_test_exception_class_init):
(webkit_dom_test_exception_init):
* bindings/scripts/test/GObject/WebKitDOMTestException.h:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
(WebKit::core):
(WebKit::wrapTestInterface):
(webkit_dom_test_interface_finalize):
(webkit_dom_test_interface_class_init):
(webkit_dom_test_interface_init):
* bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
(WebKit::core):
(WebKit::wrapTestMediaQueryListListener):
(webkit_dom_test_media_query_list_listener_finalize):
(webkit_dom_test_media_query_list_listener_class_init):
(webkit_dom_test_media_query_list_listener_init):
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
(WebKit::core):
(WebKit::wrapTestNamedConstructor):
(webkit_dom_test_named_constructor_finalize):
(webkit_dom_test_named_constructor_class_init):
(webkit_dom_test_named_constructor_init):
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
* bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
(WebKit::core):
(WebKit::wrapTestNode):
(webkit_dom_test_node_dispatch_event):
(webkit_dom_test_node_add_event_listener):
(webkit_dom_test_node_remove_event_listener):
(webkit_dom_test_node_finalize):
(webkit_dom_test_node_class_init):
(webkit_dom_test_node_init):
* bindings/scripts/test/GObject/WebKitDOMTestNode.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(WebKit::core):
(WebKit::wrapTestObj):
(webkit_dom_test_obj_finalize):
(webkit_dom_test_obj_class_init):
(webkit_dom_test_obj_init):
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
(WebKit::core):
(WebKit::wrapTestOverloadedConstructors):
(webkit_dom_test_overloaded_constructors_finalize):
(webkit_dom_test_overloaded_constructors_class_init):
(webkit_dom_test_overloaded_constructors_init):
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
(WebKit::core):
(WebKit::wrapTestSerializedScriptValueInterface):
(webkit_dom_test_serialized_script_value_interface_finalize):
(webkit_dom_test_serialized_script_value_interface_class_init):
(webkit_dom_test_serialized_script_value_interface_init):
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
2012-12-04 Markus Heintz <markusheintz@chromium.org>
Web Inspector: Viewport console warnings cleanup.
https://bugs.webkit.org/show_bug.cgi?id=102890
Reviewed by Jochen Eisinger.
Improve the console message text for a viewport console warning and
change the log level to warning.
No new tests added, as this change is covered by updates to existing
test expectations.
* dom/ViewportArguments.cpp:
(WebCore::viewportErrorMessageTemplate):
Improve the console message text for invalid values.
(WebCore::viewportErrorMessageLevel):
Upgraded the TruncatedViewportArgumentValueError and the
TargetDensityDpiUnsupported messages's MessageLeval to warning.
(WebCore::reportViewportWarning):
Adding only a comment for a FIXIT reminder.
2012-12-04 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Use a private struct and placement new syntax in GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=101074
Reviewed by Xan Lopez.
It allows to use RefPtr for the wrapped object and it simplifies
the code.
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateProperties):
(GenerateHeader):
(GenerateCFile):
(GenerateEventTargetIface):
(WriteData):
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
(_WebKitDOMFloat64ArrayPrivate):
(WebKit::core):
(WebKit::wrapFloat64Array):
(webkit_dom_float64array_finalize):
(webkit_dom_float64array_constructor):
(webkit_dom_float64array_class_init):
(webkit_dom_float64array_init):
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
(_WebKitDOMFloat64Array):
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
(_WebKitDOMTestActiveDOMObjectPrivate):
(WebKit::core):
(WebKit::wrapTestActiveDOMObject):
(webkit_dom_test_active_dom_object_finalize):
(webkit_dom_test_active_dom_object_constructor):
(webkit_dom_test_active_dom_object_class_init):
(webkit_dom_test_active_dom_object_init):
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
(_WebKitDOMTestActiveDOMObject):
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
(_WebKitDOMTestCallbackPrivate):
(WebKit::core):
(WebKit::wrapTestCallback):
(webkit_dom_test_callback_finalize):
(webkit_dom_test_callback_constructor):
(webkit_dom_test_callback_class_init):
(webkit_dom_test_callback_init):
* bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
(_WebKitDOMTestCallback):
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
(_WebKitDOMTestCustomNamedGetterPrivate):
(WebKit::core):
(WebKit::wrapTestCustomNamedGetter):
(webkit_dom_test_custom_named_getter_finalize):
(webkit_dom_test_custom_named_getter_constructor):
(webkit_dom_test_custom_named_getter_class_init):
(webkit_dom_test_custom_named_getter_init):
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
(_WebKitDOMTestCustomNamedGetter):
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
(_WebKitDOMTestEventConstructorPrivate):
(WebKit::core):
(WebKit::wrapTestEventConstructor):
(webkit_dom_test_event_constructor_finalize):
(webkit_dom_test_event_constructor_constructor):
(webkit_dom_test_event_constructor_class_init):
(webkit_dom_test_event_constructor_init):
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
(_WebKitDOMTestEventConstructor):
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
(_WebKitDOMTestEventTargetPrivate):
(WebKit::core):
(WebKit::wrapTestEventTarget):
(webkit_dom_test_event_target_dispatch_event):
(webkit_dom_test_event_target_add_event_listener):
(webkit_dom_test_event_target_remove_event_listener):
(webkit_dom_test_event_target_finalize):
(webkit_dom_test_event_target_constructor):
(webkit_dom_test_event_target_class_init):
(webkit_dom_test_event_target_init):
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
(_WebKitDOMTestEventTarget):
* bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
(_WebKitDOMTestExceptionPrivate):
(WebKit::core):
(WebKit::wrapTestException):
(webkit_dom_test_exception_finalize):
(webkit_dom_test_exception_constructor):
(webkit_dom_test_exception_class_init):
(webkit_dom_test_exception_init):
* bindings/scripts/test/GObject/WebKitDOMTestException.h:
(_WebKitDOMTestException):
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
(_WebKitDOMTestInterfacePrivate):
(WebKit::core):
(WebKit::wrapTestInterface):
(webkit_dom_test_interface_finalize):
(webkit_dom_test_interface_constructor):
(webkit_dom_test_interface_class_init):
(webkit_dom_test_interface_init):
* bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
(_WebKitDOMTestInterface):
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
(_WebKitDOMTestMediaQueryListListenerPrivate):
(WebKit::core):
(WebKit::wrapTestMediaQueryListListener):
(webkit_dom_test_media_query_list_listener_finalize):
(webkit_dom_test_media_query_list_listener_constructor):
(webkit_dom_test_media_query_list_listener_class_init):
(webkit_dom_test_media_query_list_listener_init):
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
(_WebKitDOMTestMediaQueryListListener):
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
(_WebKitDOMTestNamedConstructorPrivate):
(WebKit::core):
(WebKit::wrapTestNamedConstructor):
(webkit_dom_test_named_constructor_finalize):
(webkit_dom_test_named_constructor_constructor):
(webkit_dom_test_named_constructor_class_init):
(webkit_dom_test_named_constructor_init):
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
(_WebKitDOMTestNamedConstructor):
* bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
(_WebKitDOMTestNodePrivate):
(WebKit::core):
(WebKit::wrapTestNode):
(webkit_dom_test_node_dispatch_event):
(webkit_dom_test_node_add_event_listener):
(webkit_dom_test_node_remove_event_listener):
(webkit_dom_test_node_finalize):
(webkit_dom_test_node_constructor):
(webkit_dom_test_node_class_init):
(webkit_dom_test_node_init):
* bindings/scripts/test/GObject/WebKitDOMTestNode.h:
(_WebKitDOMTestNode):
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(_WebKitDOMTestObjPrivate):
(WebKit::core):
(WebKit::wrapTestObj):
(webkit_dom_test_obj_finalize):
(webkit_dom_test_obj_constructor):
(webkit_dom_test_obj_class_init):
(webkit_dom_test_obj_init):
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
(_WebKitDOMTestObj):
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
(_WebKitDOMTestSerializedScriptValueInterfacePrivate):
(WebKit::core):
(WebKit::wrapTestSerializedScriptValueInterface):
(webkit_dom_test_serialized_script_value_interface_finalize):
(webkit_dom_test_serialized_script_value_interface_constructor):
(webkit_dom_test_serialized_script_value_interface_class_init):
(webkit_dom_test_serialized_script_value_interface_init):
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
(_WebKitDOMTestSerializedScriptValueInterface):
2012-12-04 David Grogan <dgrogan@chromium.org>
IndexedDB: Make leveldb histogram entries more fine-grained
https://bugs.webkit.org/show_bug.cgi?id=103688
Reviewed by Tony Chang.
Allow us better insight into which functions the IO errors originate
from.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::setUpMetadata):
(WebCore::IDBBackingStore::getIDBDatabaseMetaData):
(WebCore::IDBBackingStore::getObjectStores):
(WebCore::IDBBackingStore::getRecord):
(WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBBackingStore::getIndexes):
(WebCore::IDBBackingStore::findKeyInIndex):
(WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
(WebCore::ObjectStoreCursorImpl::loadCurrentRow):
(WebCore::IndexKeyCursorImpl::loadCurrentRow):
(WebCore::IndexCursorImpl::loadCurrentRow):
2012-12-04 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Avoid unnecessary heap allocations during drag and drop operations
https://bugs.webkit.org/show_bug.cgi?id=87938
Reviewed by Martin Robinson.
* platform/gtk/GtkDragAndDropHelper.cpp:
(WebCore::GtkDragAndDropHelper::handleDragMotion): Return a
pointer to the DataObjectGtk so that the caller can create the
DragData object in the stack.
(WebCore::GtkDragAndDropHelper::handleDragDataReceived): Ditto.
(WebCore::GtkDragAndDropHelper::handleDragDrop): Ditto.
* platform/gtk/GtkDragAndDropHelper.h:
2012-12-04 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Overrides] Add ability to override the page CSS media type
https://bugs.webkit.org/show_bug.cgi?id=103752
Reviewed by Pavel Feldman.
This change emulates the CSS media types through the instrumentation of FrameView::mediaType().
Even though it already checks the associated FrameLoaderClient::overrideMediaType(), instrumenting
every single platform FrameLoaderClient implementation out there seems wrong.
Test: inspector/styles/media-emulation.html
* English.lproj/localizedStrings.js:
* inspector/Inspector.json: Add Page.setEmulatedMedia().
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::applyEmulatedMediaImpl): Added.
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::applyEmulatedMedia): Added.
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::restore): Restores the media emulation state.
(WebCore::InspectorPageAgent::disable): Resets the media emulation state.
(WebCore::InspectorPageAgent::setEmulatedMedia): Added.
(WebCore::InspectorPageAgent::applyEmulatedMedia): Applies the emulated CSS media if needed.
* inspector/InspectorPageAgent.h:
* inspector/front-end/CSSStyleModel.js: Add the list of media types.
* inspector/front-end/OverridesView.js: Add the CSS media type override UI.
(WebInspector.OverridesView):
(WebInspector.OverridesView.prototype._createMediaEmulationElement): Builds the UI.
(WebInspector.OverridesView.prototype._emulateMediaChanged): Handles the control value changes.
* inspector/front-end/Settings.js: Add the "emulatedCSSMedia" setting.
* page/FrameView.cpp:
(WebCore::FrameView::mediaType):
Uses InspectorInstrumentation::applyEmulatedMedia() to provide the emulated value.
2012-12-03 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Simplify GObject DOM bindings code for handling properties
https://bugs.webkit.org/show_bug.cgi?id=101072
Reviewed by Xan Lopez.
Do not override GObjectClass::set_property if the wrapped object
doesn't have writable properties, and don't override
GObjectClass::get_property if the wrapped object doesn't have
properties at all. It reduces some GObject boilerplate in
generated code for some objects.
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateProperties):
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
(webkit_dom_float64array_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
(webkit_dom_test_active_dom_object_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
(webkit_dom_test_callback_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
(webkit_dom_test_custom_named_getter_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
(webkit_dom_test_event_constructor_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
(webkit_dom_test_event_target_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
(webkit_dom_test_exception_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
(webkit_dom_test_interface_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
(webkit_dom_test_media_query_list_listener_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
(webkit_dom_test_named_constructor_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
(webkit_dom_test_node_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
(webkit_dom_test_serialized_script_value_interface_class_init):
2012-12-04 Kentaro Hara <haraken@chromium.org>
Unreviewed. Rebaselined run-bindings-tests.
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNode::visitChildren):
(WebCore):
2012-12-03 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [REGRESSION] [Styles] Rule disappears if edited selector does not affect selected node
https://bugs.webkit.org/show_bug.cgi?id=103059
Reviewed by Pavel Feldman.
This change effectively turns WebInspector.cssModel.setRuleSelector() into a _userOperation
(in terms of StylesSidebarPane), which finishes upon the _finishOperationAndMoveEditor() invocation.
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSRule): Fix selectorText now that r136370 has landed.
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertiesSection.prototype.update): Update the selector text from the model.
(WebInspector.StylePropertiesSection.prototype._markSelectorMatches): Set the "selector" className regardless of the matched selectors presence.
(WebInspector.StylePropertiesSection.prototype.successCallback): Make use of the _userOperation flag.
(WebInspector.StylePropertiesSection.prototype.finishOperationAndMoveEditor): Delete the _userOperation flag.
(WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted): Make use of the _userOperation flag.
(WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted): Mark selector matches.
(WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCancelled): Delete the _userOperation flag.
2012-12-04 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][WK2][AC] USE_GRAPHICS_SURFACE should be enabled only if Xcomposite and Xrender extensions are found.
https://bugs.webkit.org/show_bug.cgi?id=103710.
Reviewed by Kenneth Rohde Christiansen.
When using GLX back-end we are dependent on GLX support, Xcomposite and Xrender extensions.
In this case, GraphicsSurface usage depends on Xcomposite and Xrender extensions.
USE_GRAPHICS_SURFACE should be enabled only if Xcomposite and Xrender extensions are found.
* platform/graphics/opengl/GLPlatformSurface.cpp:
(WebCore::GLPlatformSurface::createTransportSurface):
* platform/graphics/surfaces/glx/GLXSurface.cpp:
(WebCore):
* platform/graphics/surfaces/glx/GLXSurface.h:
(WebCore::SharedX11Resources::createConfig):
(SharedX11Resources):
2012-12-04 Michael Pruett <michael@68k.org>
[JSC] Generate visitChildren() for uncustomized EventTarget interfaces
https://bugs.webkit.org/show_bug.cgi?id=103908
Reviewed by Geoffrey Garen.
CodeGeneratorJS.pm should automatically generate visitChildren()
for EventTarget interfaces without custom mark functions even if
those interfaces have no functions or cached attributes.
This change is needed for IDBOpenDBRequest and IDBVersionChangeRequest.
No new tests. Covered by existing tests.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
2012-12-04 Kentaro Hara <haraken@chromium.org>
Change ChildNodeInsertionNotifier::m_postInsertionsNotificationTargets from a Vector to an OwnPtr
https://bugs.webkit.org/show_bug.cgi?id=103868
Reviewed by Darin Adler.
ChildNodeInsertionNotifier::m_postInsertionsNotificationTargets is
used for HTMLFrameElement and HTMLBodyElement only, which would be
a cold path. We can change it from a Vector to an OwnPtr<Vector>
so that ChildNodeInsertionNotifier can be allocated faster. This patch
optimizes Dromaeo/dom-modify by 1.4%.
[Dromaeo/dom-modify in Chromium/Linux]
Before: 4532 runs/sec, 4545 runs/sec, 4530 runs/sec, 4536 runs/sec
After: 4595 runs/sec, 4606 runs/sec, 4597 runs/sec, 4602 runs/sec
No tests. No change in behavior.
* dom/ContainerNodeAlgorithms.h:
(ChildNodeInsertionNotifier):
(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
(WebCore::ChildNodeInsertionNotifier::notify):
2012-12-03 Rafael Weinstein <rafaelw@chromium.org>
Unreviewed build fix after r136467
The template element patch added asserts in parserAppendChild and parserInsertBefore which should be valid, but DOMImplementation::createDocument() calls parserAppendChild with docType without regard to its owner. This patch removes the assert and adds a FIXME.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::parserAppendChild):
2012-12-03 Kentaro Hara <haraken@chromium.org>
[V8] Enter an Isolate before initializing PerIsolateData
https://bugs.webkit.org/show_bug.cgi?id=103949
Reviewed by Adam Barth.
Currently we initialize PerIsolateData before entering an Isolate,
which prevents us from using an Isolate in the PerIsolateData
constructor. We should enter an Isolate first and then initialize
PerIsolateData.
No tests. No change in behavior.
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::WorkerScriptController):
2012-12-03 Sergio Villar Senin <svillar@igalia.com>
[GTK] Add WebKitDOMShadowRoot.h to the list of public API headers after r135693
https://bugs.webkit.org/show_bug.cgi?id=103909
Reviewed by Martin Robinson.
WebKitDOMShadowRoot was added in r135693. As it is added to
webkitdom.h we have to export the include file, otherwise clients
will fail to build due to the missing file.
* bindings/gobject/GNUmakefile.am:
2012-12-03 Joshua Bell <jsbell@chromium.org>
IndexedDB: Correct database version after aborted upgrade
https://bugs.webkit.org/show_bug.cgi?id=103763
Reviewed by Tony Chang.
After an aborted "versionchange" transaction, the IDBDatabase would fetch a fresh snapshot
of the metadata from the back end. If the back end had already started a new "versionchange"
transaction the snapshot would be bogus. Instead, save a copy of the IDBDatabase's metadata
and roll back to that, as is done for IDBObjectStore.
Tests: storage/indexeddb/intversion-abort-in-initial-upgradeneeded.html
storage/indexeddb/mozilla/versionchange-abort.html
storage/indexeddb/unblocked-version-changes.html
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::IDBDatabase):
(WebCore::IDBDatabase::transactionCreated):
* Modules/indexeddb/IDBDatabase.h:
(WebCore::IDBDatabase::setMetadata): Let IDBOpenDBRequest and IDBTransaction tinker.
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onUpgradeNeeded): Fetch new and compute old metadata.
(WebCore::IDBOpenDBRequest::onSuccess): Fetch new metadata, in case upgrade changed it.
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::create): Stash the old metadata, in case of rollback.
(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::onAbort): Revert the database as well as the stores.
* Modules/indexeddb/IDBTransaction.h:
(IDBTransaction):
2012-12-03 Rafael Weinstein <rafaelw@chromium.org>
Implement HTMLTemplateElement
https://bugs.webkit.org/show_bug.cgi?id=86031
Reviewed by Adam Barth.
Initial implementation. This patch includes the parser changes, new IDL and element implementation for <template>.
Spec: http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html
Tests: fast/dom/HTMLTemplateElement/cloneNode.html
fast/dom/HTMLTemplateElement/inertContents.html
fast/dom/HTMLTemplateElement/innerHTML.html
fast/dom/HTMLTemplateElement/ownerDocument.html
html5lib/run-template.html
* WebCore.gypi:
* css/html.css:
(template):
* dom/Document.cpp:
(WebCore):
(WebCore::Document::templateContentsOwnerDocument):
* dom/Document.h:
(Document):
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
* html/HTMLElement.h:
(HTMLElement):
* html/HTMLElementsAllInOne.cpp:
* html/HTMLTagNames.in:
* html/HTMLTemplateElement.cpp: Added.
(WebCore):
(WebCore::HTMLTemplateElement::HTMLTemplateElement):
(WebCore::HTMLTemplateElement::setInnerHTML):
(WebCore::HTMLTemplateElement::~HTMLTemplateElement):
(WebCore::HTMLTemplateElement::create):
(WebCore::HTMLTemplateElement::content):
(WebCore::HTMLTemplateElement::setContent):
(WebCore::toHTMLTemplateElement):
* html/HTMLTemplateElement.h: Added.
(WebCore):
(HTMLTemplateElement):
(WebCore::toHTMLTemplateElement):
* html/HTMLTemplateElement.idl: Added.
* html/parser/HTMLConstructionSite.cpp:
(WebCore::executeTask):
(WebCore::HTMLConstructionSite::insertComment):
(WebCore::HTMLConstructionSite::insertTextNode):
(WebCore::HTMLConstructionSite::createElement):
(WebCore::HTMLConstructionSite::ownerDocumentForCurrentNode):
(WebCore):
(WebCore::HTMLConstructionSite::createHTMLElement):
(WebCore::HTMLConstructionSite::findFosterSite):
* html/parser/HTMLConstructionSite.h:
(HTMLConstructionSite):
* html/parser/HTMLElementStack.cpp:
(WebCore):
(WebCore::HTMLElementStack::hasTemplateInHTMLScope):
* html/parser/HTMLElementStack.h:
(HTMLElementStack):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::constructTreeFromToken):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore):
(WebCore::HTMLTreeBuilder::processTemplateEndTag):
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processHtmlStartTagForInBody):
(WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
(WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
(WebCore::HTMLTreeBuilder::processEndTagForInRow):
(WebCore::HTMLTreeBuilder::processEndTagForInCell):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
(WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
(WebCore::HTMLTreeBuilder::processTableEndTagForInTable):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processCharacterBuffer):
(WebCore::HTMLTreeBuilder::processEndOfFile):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
* html/parser/HTMLTreeBuilder.h:
(HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::isParsingTemplateContents):
(WebCore::HTMLTreeBuilder::isParsingFragmentOrTemplateContents):
* page/DOMWindow.idl:
2012-12-03 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136460.
http://trac.webkit.org/changeset/136460
https://bugs.webkit.org/show_bug.cgi?id=103958
This patch caused compile error when building DumpRenderTree
(Requested by tasak on #webkit).
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* platform/chromium/PlatformThemeChromiumLinux.cpp: Added.
(WebCore):
(WebCore::PlatformThemeChromiumLinux::setScrollbarColors):
(WebCore::clamp):
(WebCore::PlatformThemeChromiumLinux::saturateAndBrighten):
(WebCore::PlatformThemeChromiumLinux::outlineColor):
(WebCore::PlatformThemeChromiumLinux::paintArrowButton):
* platform/chromium/PlatformThemeChromiumLinux.h: Added.
(WebCore):
(PlatformThemeChromiumLinux):
(WebCore::PlatformThemeChromiumLinux::thumbInactiveColor):
(WebCore::PlatformThemeChromiumLinux::thumbActiveColor):
(WebCore::PlatformThemeChromiumLinux::trackColor):
(WebCore::PlatformThemeChromiumLinux::PlatformThemeChromiumLinux):
* platform/chromium/ScrollbarThemeChromiumLinux.cpp: Added.
(WebCore):
(WebCore::ScrollbarTheme::nativeTheme):
(WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
(WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
(WebCore::ScrollbarThemeChromiumLinux::paintButton):
(WebCore::ScrollbarThemeChromiumLinux::paintThumb):
(WebCore::ScrollbarThemeChromiumLinux::shouldCenterOnThumb):
(WebCore::ScrollbarThemeChromiumLinux::buttonSize):
(WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
* platform/chromium/ScrollbarThemeChromiumLinux.h: Added.
(ScrollbarThemeChromiumLinux):
* rendering/RenderThemeChromiumAndroid.cpp:
(WebCore::RenderThemeChromiumAndroid::extraDefaultStyleSheet):
* rendering/RenderThemeChromiumAndroid.h:
* rendering/RenderThemeChromiumLinux.cpp: Added.
(WebCore):
(WebCore::getWebThemeState):
(WebCore::RenderThemeChromiumLinux::create):
(WebCore::RenderTheme::themeForPage):
(WebCore::RenderThemeChromiumLinux::RenderThemeChromiumLinux):
(WebCore::RenderThemeChromiumLinux::~RenderThemeChromiumLinux):
(WebCore::RenderThemeChromiumLinux::systemColor):
(WebCore::RenderThemeChromiumLinux::extraDefaultStyleSheet):
(WebCore::RenderThemeChromiumLinux::controlSupportsTints):
(WebCore::RenderThemeChromiumLinux::activeListBoxSelectionBackgroundColor):
(WebCore::RenderThemeChromiumLinux::activeListBoxSelectionForegroundColor):
(WebCore::RenderThemeChromiumLinux::inactiveListBoxSelectionBackgroundColor):
(WebCore::RenderThemeChromiumLinux::inactiveListBoxSelectionForegroundColor):
(WebCore::RenderThemeChromiumLinux::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeChromiumLinux::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeChromiumLinux::platformActiveSelectionForegroundColor):
(WebCore::RenderThemeChromiumLinux::platformInactiveSelectionForegroundColor):
(WebCore::RenderThemeChromiumLinux::sliderTickSize):
(WebCore::RenderThemeChromiumLinux::sliderTickOffsetFromTrackCenter):
(WebCore::RenderThemeChromiumLinux::adjustSliderThumbSize):
(WebCore::RenderThemeChromiumLinux::supportsControlTints):
(WebCore::RenderThemeChromiumLinux::setCaretBlinkInterval):
(WebCore::RenderThemeChromiumLinux::caretBlinkIntervalInternal):
(WebCore::RenderThemeChromiumLinux::setSelectionColors):
(WebCore::RenderThemeChromiumLinux::paintCheckbox):
(WebCore::RenderThemeChromiumLinux::setCheckboxSize):
(WebCore::RenderThemeChromiumLinux::paintRadio):
(WebCore::RenderThemeChromiumLinux::setRadioSize):
(WebCore::RenderThemeChromiumLinux::paintButton):
(WebCore::RenderThemeChromiumLinux::paintTextField):
(WebCore::RenderThemeChromiumLinux::paintMenuList):
(WebCore::RenderThemeChromiumLinux::paintSliderTrack):
(WebCore::RenderThemeChromiumLinux::paintSliderThumb):
(WebCore::RenderThemeChromiumLinux::adjustInnerSpinButtonStyle):
(WebCore::RenderThemeChromiumLinux::paintInnerSpinButton):
(WebCore::RenderThemeChromiumLinux::paintProgressBar):
(WebCore::RenderThemeChromiumLinux::shouldOpenPickerWithF4Key):
* rendering/RenderThemeChromiumLinux.h: Added.
(WebCore):
(RenderThemeChromiumLinux):
2012-12-03 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Support paddings and margins on grid items
https://bugs.webkit.org/show_bug.cgi?id=103677
Reviewed by Tony Chang.
After bug 102968, we properly resolve grid items' width and height against the
grid areas' sizes. However we didn't check for paddings and margins, which is
what this change fixes..
Test: fast/css-grid-layout/percent-padding-margin-resolution-grid-item.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalWidthInRegion):
Don't stretch the end margin to match the containing block's extent.
The fix is similar to what was done for flex-box in bug 65887.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
Added a comment about not using containingBlockLogicalWidthForContent.
(WebCore::RenderBoxModelObject::computedCSSPaddingTop):
(WebCore::RenderBoxModelObject::computedCSSPaddingBottom):
(WebCore::RenderBoxModelObject::computedCSSPaddingLeft):
(WebCore::RenderBoxModelObject::computedCSSPaddingRight):
(WebCore::RenderBoxModelObject::computedCSSPaddingBefore):
(WebCore::RenderBoxModelObject::computedCSSPaddingAfter):
(WebCore::RenderBoxModelObject::computedCSSPaddingStart):
(WebCore::RenderBoxModelObject::computedCSSPaddingEnd):
Updated these functions to use containingBlockLogicalWidthForContent.
* rendering/RenderGrid.h:
* rendering/RenderObject.h:
(WebCore::RenderObject::isRenderGrid):
Added isRenderGrid.
2012-12-03 Scott Violet <sky@chromium.org>
[chromium] Remove linux theme related files and switch to default
https://bugs.webkit.org/show_bug.cgi?id=103897
Reviewed by Darin Fisher.
linux theme related files are now named default. This removes
linux theme files, updates build files and removes ifdefs.
Code cleanup, no new tests.
* WebCore.gyp/WebCore.gyp: Update build rules
* WebCore.gypi: Update build rules
* platform/chromium/PlatformThemeChromiumLinux.cpp: Removed.
* platform/chromium/PlatformThemeChromiumLinux.h: Removed.
* platform/chromium/ScrollbarThemeChromiumLinux.cpp: Removed.
* platform/chromium/ScrollbarThemeChromiumLinux.h: Removed.
* rendering/RenderThemeChromiumAndroid.h: Change superclass
* rendering/RenderThemeChromiumAndroid.cpp: Change call to superclass
* rendering/RenderThemeChromiumLinux.cpp: Removed.
* rendering/RenderThemeChromiumLinux.h: Removed.
2012-12-03 Pierre Rossi <pierre.rossi@digia.com>
[Qt] Unreviewed build fix after r136410
When building without libjpeg, take JPEGImageDecoder's header out, since it now includes libjpeg.h.
* Target.pri: conditionally add JPEGImageDecoder.h to HEADERS
* platform/image-decoders/ImageDecoder.cpp: guard JPEGImageDecoder.h's include
2012-12-03 Kenneth Rohde Christiansen <kenneth@webkit.org>
[EFL][Qt][WK2] Fixed position elements are not always fixed
https://bugs.webkit.org/show_bug.cgi?id=103452
Reviewed by Simon Fraser.
The code figuring out whether fixed position layers are inside
the visible viewport, assumes that the visible viewport is always
the size of the layout viewport. This assumption doesn't hold with
how the Qt and EFL tiled backing store and coordinated graphics
works, so instead using the visibleContentsRect(), which provides
the right values in all cases.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
Use visibleContentsRect instead of scrollOffsetForFixedPosition().
scrollOffsetForFixedPosition() is needed sometimes in the Mac code
because visibleContentRect() will return negative offsets when you
are in the rubber-band phase of a scroll on the Mac.
However that is not an issue here.
2012-12-03 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135271.
http://trac.webkit.org/changeset/135271
https://bugs.webkit.org/show_bug.cgi?id=103940
Some user stylesheet API clients broken (Requested by anttik
on #webkit).
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::collectRulesFromUserStyleSheets):
(WebCore::collectCSSOMWrappers):
* css/StyleResolver.h:
(StyleResolver):
* dom/Document.cpp:
(WebCore::Document::setCompatibilityMode):
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
(WebCore::DocumentStyleSheetCollection::pageUserSheet):
(WebCore::DocumentStyleSheetCollection::clearPageUserSheet):
(WebCore::DocumentStyleSheetCollection::updatePageUserSheet):
(WebCore::collectActiveCSSStyleSheetsFromSeamlessParents):
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
(WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
* dom/DocumentStyleSheetCollection.h:
(DocumentStyleSheetCollection):
(WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
* page/Page.cpp:
(WebCore::Page::userStyleSheetLocationChanged):
2012-11-30 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: make it possible to fliter out messages from console.{time,timeEnd}()
https://bugs.webkit.org/show_bug.cgi?id=103781
Reviewed by Yury Semikhatsky.
- make console messages produced by console.timeEnd() TimingMessageType & DebugMessageLevel;
- add console filter for Debug messages;
* inspector/ConsoleMessage.cpp:
(WebCore::messageTypeValue):
* inspector/Inspector.json:
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::stopTiming):
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype.toMessageElement):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype.):
(WebInspector.ConsoleView.prototype.filter):
* inspector/front-end/inspector.css:
(.console-warning-level, .console-error-level, .console-log-level, .console-debug-level):
(.filter-all .console-debug-level, .filter-debug .console-debug-level):
(.filter-all .console-debug-level.repeated-message, .filter-debug .console-debug-level.repeated-message):
* page/ConsoleTypes.h:
2012-12-03 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136444.
http://trac.webkit.org/changeset/136444
https://bugs.webkit.org/show_bug.cgi?id=103938
broke chromium build (Requested by zhenyao_wfh on #webkit).
* Target.pri:
* platform/image-decoders/ImageDecoder.cpp:
2012-12-03 Pierre Rossi <pierre.rossi@digia.com>
[Qt] Unreviewed build fix after r136410
When building without libjpeg, take JPEGImageDecoder's header out, since it now includes libjpeg.h.
* Target.pri: conditionally add JPEGImageDecoder.h to HEADERS
* platform/image-decoders/ImageDecoder.cpp: guard JPEGImageDecoder.h's include
2012-11-30 James Simonsen <simonjam@chromium.org>
[Resource Timing] Record and report initiator
https://bugs.webkit.org/show_bug.cgi?id=103777
Reviewed by Nate Chapin.
This will start populating the Resource Timing buffer with entries. The initiator will be
recorded for each CachedResourceLoader. This should match the next update of the spec.
Tests: http/tests/w3c/webperf/submission/resource-timing
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::beginLoadTimerFired):
* loader/ResourceLoadNotifier.cpp: Always record timing information if ENABLE(RESOURCE_TIMING).
(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::releaseResources): Report the actual resource that called loadDone().
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::loadResource): Record the initiator.
(WebCore::CachedResourceLoader::loadDone): Record the entry in Resource Timing.
* loader/cache/CachedResourceLoader.h:
(CachedResourceLoader):
(InitiatorInfo):
2012-12-03 Florin Malita <fmalita@chromium.org>
[Skia] Deferred SkCanvas save()
https://bugs.webkit.org/show_bug.cgi?id=102272
Reviewed by Stephen White.
Implement a lazy save() strategy: instead of delegating to the canvas upfront, defer and
only commit when a clip/matrix mutation is observed.
The patch yields a 1-20% SkCanvas save/restore reduction for heavy pages, with much larger
gains observed for deeply nested SVG content.
No new tests: no behaviour changes, coverage provided by existing tests.
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::canvasClip):
* platform/graphics/skia/PlatformContextSkia.cpp:
(WebCore):
(WebCore::PlatformContextSkia::DeferredSaveState::DeferredSaveState):
(PlatformContextSkia::DeferredSaveState):
(WebCore::PlatformContextSkia::PlatformContextSkia):
(WebCore::PlatformContextSkia::save):
(WebCore::PlatformContextSkia::saveLayer):
(WebCore::PlatformContextSkia::beginLayerClippedToImage):
(WebCore::PlatformContextSkia::restore):
(WebCore::PlatformContextSkia::applyClipFromImage):
* platform/graphics/skia/PlatformContextSkia.h:
(PlatformContextSkia):
(WebCore::PlatformContextSkia::realizeSave):
(WebCore):
(WebCore::PlatformContextSkia::canvas):
(WebCore::PlatformContextSkia::clipPath):
(WebCore::PlatformContextSkia::clipRect):
(WebCore::PlatformContextSkia::setMatrix):
(WebCore::PlatformContextSkia::concat):
(WebCore::PlatformContextSkia::rotate):
(WebCore::PlatformContextSkia::scale):
(WebCore::PlatformContextSkia::translate):
2012-12-03 Simon Fraser <simon.fraser@apple.com>
When animating mask-postion on a composited layer, element renders incorrectly
https://bugs.webkit.org/show_bug.cgi?id=103700
Reviewed by Tim Horton.
When a composited layer has a mask, we clipped the layer bounds to the
size of the mask. This caused problems when animating the mask origin,
which is considered a 'repaint' style change and so should not require
layout or compositing geometry changes.
Fix by ignoring the mask when computing the bounds of the compositing
layer.
Test: compositing/masks/mask-layer-size.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::localBoundingBox):
(WebCore::RenderLayer::calculateLayerBounds):
* rendering/RenderLayer.h:
(RenderLayer):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::calculateCompositedBounds):
2012-12-03 Xan Lopez <xan@igalia.com>
[CSS Grid Layout] Support <percentage> and viewport-relative breadth sizes
https://bugs.webkit.org/show_bug.cgi?id=103335
Reviewed by Julien Chaffraix.
Test: fast/css-grid-layout/breadth-size-resolution-grid.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackBreadth): Support the new types.
(WebCore::valueForGridTrackMinMax): Modify the call to previous
method, since the signature has changed.
(WebCore::valueForGridTrackGroup): Ditto.
(WebCore::valueForGridTrackList): Ditto.
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Ditto.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks): Suport
percent and viewport relative types, calc() will be supported in a
follow up (see bug #103761)
2012-12-03 Peter Rybin <prybin@chromium.org>
Web Inspector: make ASSERTION FAILED: foundPropertiesCount == object->size() more useful
https://bugs.webkit.org/show_bug.cgi?id=103254
Reviewed by Pavel Feldman.
Assert code generation is slightly changed so that it dumped JSON object text before crashing.
* inspector/CodeGeneratorInspector.py:
2012-12-03 Max Vujovic <mvujovic@adobe.com>
[CSS Shaders] Do not clamp indirect array indices during CSS Shaders ANGLE validation pass
https://bugs.webkit.org/show_bug.cgi?id=102731
Reviewed by Dean Jackson.
Before this patch, we validated all shaders with the compile flag
SH_CLAMP_INDIRECT_ARRAY_BOUNDS in ANGLEWebKitBridge. This would insert a GLSL function
"webgl_int_clamp" in validated CSS shaders. However, when validated CSS shaders would pass
through ANGLE again at the GC3D level, ANGLE would reject them because they would contain
the "webgl_" restricted prefix.
Now, we only pass the compile flag SH_CLAMP_INDIRECT_ARRAY_BOUNDS at the GC3D level.
Test: css3/filters/custom/custom-filter-array-uniform-indirect-index.html
* platform/graphics/ANGLEWebKitBridge.cpp:
(WebCore::ANGLEWebKitBridge::compileShaderSource):
Remove the SH_CLAMP_INDIRECT_ARRAY_BOUNDS compile flag.
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore::CustomFilterValidatedProgram::compiledProgram):
Add an assert that validated programs compile at the GC3D or platform level to help us
catch validation and rewriting issues.
* platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
(WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
Pass the SH_CLAMP_INDIRECT_ARRAY_BOUNDS to compileShaderSource.
2012-12-03 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Make main-thread monitoring go through InspectorController
https://bugs.webkit.org/show_bug.cgi?id=103550
Reviewed by Pavel Feldman.
InspectorInstrumentation was a wrong path.
* inspector/InspectorClient.h: Remove start/stop methods.
* inspector/InspectorController.cpp:
Dispatch main thread activity notifications.
* inspector/InspectorController.h: Ditto.
* inspector/InspectorInstrumentation.cpp: Remove dispatchng.
* inspector/InspectorInstrumentation.h: Ditto.
* inspector/InspectorTimelineAgent.cpp:
Do not subscribe for notifications explicitly.
2012-12-03 Philip Rogers <pdr@google.com>
Invalidate SVG width on width attribute changes.
https://bugs.webkit.org/show_bug.cgi?id=103304
Reviewed by Dirk Schulze.
An inline SVG element's replaced width can depend on both attributes and style properties.
After r105513, we invalidated this width on style changes but not attribute changes. With
this patch we invalidate the replaced width on width attribute changes too. Note that height
is handled differently for replaced elements so only the width attribute needs this handling
(the added test covers this too).
Test: svg/custom/root-size-attribute-changes.html
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::svgAttributeChanged):
2012-12-03 Alec Flett <alecflett@chromium.org>
IndexedDB: remove IDBDatabaseBackendInterface::transaction()
https://bugs.webkit.org/show_bug.cgi?id=102733
Reviewed by Darin Fisher.
Part 3 of a refactor, remove the old transaction() method.
No new tests as this is just post-refactor cleanup.
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(IDBDatabaseBackendInterface):
2012-12-03 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] show replay screenshot of the last call's canvas
https://bugs.webkit.org/show_bug.cgi?id=103739
Reviewed by Pavel Feldman.
When many canvases are being instrumented we'll want to show replay screenshots for each canvas.
Meanwhile, show the screenshot of the last-touched canvas during the current replay.
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
2012-12-03 Joshua Bell <jsbell@chromium.org>
IndexedDB: Rename exception enum members from UGLY_ERR to PrettyError
https://bugs.webkit.org/show_bug.cgi?id=103759
Reviewed by Darin Fisher.
Now that IDBDatabaseException isn't exposed to script with constants, the exception types
can be renamed to match the much friendlier names used in newer iterations of the spec. Also
remove the legacy/unused types.
No new tests, just constant renames.
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::advance):
(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::deleteFunction):
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::continueFunction):
(WebCore::IDBCursorBackendImpl::advance):
(WebCore::IDBCursorBackendImpl::prefetchContinue):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::createObjectStore):
(WebCore::IDBDatabase::deleteObjectStore):
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::createObjectStore):
(WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
(WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
(WebCore::IDBDatabaseBackendImpl::openConnection):
(WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
(WebCore::IDBDatabaseBackendImpl::deleteDatabase):
(WebCore::IDBDatabaseBackendImpl::close):
* Modules/indexeddb/IDBDatabaseException.cpp: Tidying and renaming.
(WebCore):
(WebCore::getErrorEntry):
* Modules/indexeddb/IDBDatabaseException.h:
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::cmp):
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::getDatabaseNames):
(WebCore::IDBFactoryBackendImpl::deleteDatabase):
(WebCore::IDBFactoryBackendImpl::open):
* Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::count):
(WebCore::IDBIndex::openKeyCursor):
(WebCore::IDBIndex::get):
(WebCore::IDBIndex::getKey):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::openCursor):
(WebCore::IDBIndexBackendImpl::openKeyCursor):
(WebCore::IDBIndexBackendImpl::count):
(WebCore::IDBIndexBackendImpl::get):
(WebCore::IDBIndexBackendImpl::getKey):
* Modules/indexeddb/IDBKeyRange.cpp:
(WebCore::IDBKeyRange::only):
(WebCore::IDBKeyRange::lowerBound):
(WebCore::IDBKeyRange::upperBound):
(WebCore::IDBKeyRange::bound):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::put):
(WebCore::IDBObjectStore::deleteFunction):
(WebCore::IDBObjectStore::clear):
(WebCore):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::deleteIndex):
(WebCore::IDBObjectStore::openCursor):
(WebCore::IDBObjectStore::count):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::get):
(WebCore::IDBObjectStoreBackendImpl::put):
(WebCore):
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::deleteFunction):
(WebCore::IDBObjectStoreBackendImpl::clear):
(WebCore::IDBObjectStoreBackendImpl::createIndex):
(WebCore::IDBObjectStoreBackendImpl::deleteIndex):
(WebCore::IDBObjectStoreBackendImpl::openCursor):
(WebCore::IDBObjectStoreBackendImpl::count):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::dispatchEvent):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::result):
(WebCore::IDBRequest::error):
(WebCore::IDBRequest::errorCode):
(WebCore::IDBRequest::webkitErrorMessage):
(WebCore::IDBRequest::abort):
(WebCore::IDBRequest::dispatchEvent):
(WebCore::IDBRequest::uncaughtExceptionInEventHandler):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::objectStore):
(WebCore::IDBTransaction::abort):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::objectStore):
(WebCore::IDBTransactionBackendImpl::abort):
(WebCore::IDBTransactionBackendImpl::commit):
2012-12-03 Alexis Menard <alexis@webkit.org>
[Mac] Enable CSS3 background-position offset by default.
https://bugs.webkit.org/show_bug.cgi?id=103905
Reviewed by Simon Fraser.
Turn the flag on by default.
No new tests : covered by tests landed previously.
* Configurations/FeatureDefines.xcconfig:
* css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapFillXPosition): Build fix in release on Mac with unused variable.
(WebCore::CSSToStyleMap::mapFillYPosition): Ditto.
2012-12-03 Jan Keromnes <janx@linux.com>
Web Inspector: Implement context menus in CodeMirrorTextEditor
https://bugs.webkit.org/show_bug.cgi?id=94062
Reviewed by Pavel Feldman.
Listen for contextmenu events in the editor and handle them differently
if triggered on gutter line number or in text body. This adds controls
for breakpoints (including disabled / conditional), debugger navigation
and text input methods.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor):
(WebInspector.CodeMirrorTextEditor.prototype._contextMenu):
2012-12-03 Nate Chapin <japhet@chromium.org>
Make MainResourceLoader not use m_frame directly.
https://bugs.webkit.org/show_bug.cgi?id=103907
Reviewed by Darin Adler.
MainResourceLoader will soon cease to be a ResourceLoader subclass. It currently
makes extensively use of both m_documentLoader and m_frame from ResourceLoader.
By moving everything over to going through m_documentLoader, we reduce the number
of members we have to add to MainResourceLoader in https://bugs.webkit.org/show_bug.cgi?id=49246.
No new tests, refactor only.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::startLoadingMainResource):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::MainResourceLoader):
(WebCore::MainResourceLoader::create):
(WebCore::MainResourceLoader::receivedError):
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::continueAfterContentPolicy):
(WebCore::MainResourceLoader::didReceiveResponse):
(WebCore::MainResourceLoader::didReceiveData):
(WebCore::MainResourceLoader::startDataLoadTimer):
* loader/MainResourceLoader.h:
(MainResourceLoader):
2012-12-03 Anton Vayvod <avayvod@chromium.org>
Text Autosizing: don't autosize horizontal menu items implemented via floating list items
https://bugs.webkit.org/show_bug.cgi?id=103840
Reviewed by Kenneth Rohde Christiansen.
Floating list items are often used to implement horizontal menus. Currently, text autosizing
disregards such elements as autosizing containers. List items are often then autosized as part
of a bigger cluster (usually the whole page) and look too big.
This change turns floating list items into autosizing clusters so they are autosized separately
resulting in no font size multiplication for menu items implemented in this manner.
Test: fast/text-autosizing/cluster-list-item.html
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::isAutosizingContainer): Returns true for floating list items; split the
condition logically.
2012-12-03 Viatcheslav Ostapenko <v.ostapenko@samsung.com>
Optimization in image decoding
https://bugs.webkit.org/show_bug.cgi?id=88424
Reviewed by Brent Fulgham.
Replace int with J_COLOR_SPACE in parameters of templates setPixel and
outputScanlines to avoid casting from int to enum. It required move
inclusion of jpeglib.h and related #if to JPEGImageDecoder.h .
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore):
(WebCore::setPixel):
(WebCore::JPEGImageDecoder::outputScanlines):
* platform/image-decoders/jpeg/JPEGImageDecoder.h:
(JPEGImageDecoder):
2012-12-03 Tony Chang <tony@chromium.org>
[mathml] Improve performance of nested sup or sub elements
https://bugs.webkit.org/show_bug.cgi?id=103665
Reviewed by Darin Adler.
Reduce the number of extra layouts. Since RenderMathMLSubSup calls
layout twice, this can lead to an exponential number of layouts. Avoid
extra layouts.
Test: mathml/presentation/sup-nested.html - Should not time out.
* css/mathml.css:
(msup): Stretching children also causes extra layouts. Avoid this by aligning to the top.
(msub): Same as msup, but align to the bottom.
* rendering/mathml/RenderMathMLSubSup.cpp:
(WebCore::RenderMathMLSubSup::layout): Only do the second layout if the padding changed.
Also fix up the calls to setNeedsLayout (since we're calling it on this) and
setChildNeedsLayout (since we're calling it on a child).
2012-12-03 Konrad Piascik <kpiascik@rim.com>
Web Inspector: free Page resources on inspector disconnect
https://bugs.webkit.org/show_bug.cgi?id=103888
Reviewed by Yury Semikhatsky.
We don't need to keep the page around and can free up memory when disconnecting web inspector.
Not testable.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::disconnectFrontend):
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::freePage):
(WebCore):
* inspector/InspectorOverlay.h:
(InspectorOverlay):
2012-12-03 Alexis Menard <alexis@webkit.org>
[GTK] Enable CSS3 background-background position offset by default.
https://bugs.webkit.org/show_bug.cgi?id=103903
Reviewed by Philippe Normand.
Turn the feature on by default.
No new tests : covered by tests already landed.
* GNUmakefile.features.am:
2012-12-03 Hajime Morrita <morrita@google.com>
Corrupted DOM tree during appendChild/insertBefore
https://bugs.webkit.org/show_bug.cgi?id=103601
Reviewed by Abhishek Arya.
There are some missing protection in appendChild() and insertBefore().
This change added these.
Dromaeo dom-modify shows no speed regression (5445run/s before vs 5351run/s after)
Tests: fast/events/mutation-during-append-child.html
fast/events/mutation-during-insert-before.html
* dom/ContainerNode.cpp:
(WebCore::checkAcceptChildGuaranteedNodeTypes):
(WebCore):
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::appendChild):
2012-12-03 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Document::initSecurityContext() fails to call securityOrigin().grantLoadLocalResources()
https://bugs.webkit.org/show_bug.cgi?id=68711
Reviewed by Adam Barth.
It currently fails since Document::loader() will return 0 until
Frame::setDocument is called and we are doing this check before it happens.
Delay the check and let the FrameLoader take care of doing grantLoadLocalResources()
on the Document along with other header checks in FrameLoader::didBeginDocument.
* dom/Document.cpp:
(WebCore::Document::initSecurityContext):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didBeginDocument):
2012-12-03 Yong Li <yoli@rim.com>
ENABLE(IMAGE_DECODER_DOWN_SAMPLING): Should use TURBO_JPEG_RGB_SWIZZLE fast path for non-scaled images
https://bugs.webkit.org/show_bug.cgi?id=103749
Reviewed by Rob Buis.
Replace !ENABLE(IMAGE_DECODER_DOWN_SAMPLING) with !m_scaled.
No new tests as existing jpegs are good with IMAGE_DECODER_DOWN_SAMPLING set up.
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageDecoder::outputScanlines):
2012-12-03 Tommy Widenflycht <tommyw@google.com>
Speech Recognition API: Update SpeechRecognitionEvent to match the specification
https://bugs.webkit.org/show_bug.cgi?id=103407
Reviewed by Kentaro Hara.
Specification for the Speech Recognition API:
http://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html
This patch does the following:
o Adds results, and removing result, on SpeechRecognitionEvent
o Renaming SpeechRecognitionResult::final to isFinal
o Removing emma from SpeechRecognitionResult
The emma attribute is supposed to move from SpeechRecognitionResult to the SpeechRecognitionEvent,
but that caused GC issues for unrelated code so it will be added later when properly fixed.
Existing tests updated to test the new API.
* Modules/speech/SpeechRecognition.cpp:
(WebCore::SpeechRecognition::start):
(WebCore::SpeechRecognition::didReceiveResults):
(WebCore):
* Modules/speech/SpeechRecognition.h:
(SpeechRecognition):
* Modules/speech/SpeechRecognitionEvent.cpp:
(WebCore::SpeechRecognitionEvent::createResult):
(WebCore):
(WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
(WebCore::SpeechRecognitionEvent::~SpeechRecognitionEvent):
* Modules/speech/SpeechRecognitionEvent.h:
(SpeechRecognitionEventInit):
(SpeechRecognitionEvent):
(WebCore::SpeechRecognitionEvent::resultIndex):
(WebCore::SpeechRecognitionEvent::results):
* Modules/speech/SpeechRecognitionEvent.idl:
* Modules/speech/SpeechRecognitionResult.cpp:
* Modules/speech/SpeechRecognitionResult.h:
(WebCore::SpeechRecognitionResult::isFinal):
(SpeechRecognitionResult):
* Modules/speech/SpeechRecognitionResult.idl:
* WebCore.gypi:
* bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue):
(WebCore):
* bindings/js/JSDictionary.h:
* bindings/v8/Dictionary.cpp:
(WebCore::Dictionary::get):
(WebCore):
* bindings/v8/Dictionary.h:
(Dictionary):
* bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp: Removed.
2012-12-03 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136377.
http://trac.webkit.org/changeset/136377
https://bugs.webkit.org/show_bug.cgi?id=103881
Causes crashes on debug builds that use JSC. (Requested by
mkwst on #webkit).
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::didFailSocketStream):
* css/MediaList.cpp:
(WebCore::addResolutionWarningMessageToConsole):
* dom/Document.cpp:
(WebCore::Document::logExceptionToConsole):
(WebCore::Document::processHttpEquiv):
* dom/Document.h:
(Document):
* dom/ScriptExecutionContext.h:
(ScriptExecutionContext):
* dom/ViewportArguments.cpp:
(WebCore):
(WebCore::parserLineNumber):
(WebCore::reportViewportWarning):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::validateInteractively):
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::parseAttribute):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::printWarningToConsole):
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
* inspector/ConsoleMessage.h:
(ConsoleMessage):
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::enable):
(WebCore::InspectorConsoleAgent::addMessageToConsole):
(WebCore::InspectorConsoleAgent::count):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::didReceiveResponse):
* page/Console.cpp:
* page/Console.h:
(Console):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::printErrorMessage):
* svg/SVGDocumentExtensions.cpp:
(WebCore):
(WebCore::parserLineNumber):
(WebCore::reportMessage):
* workers/WorkerContext.cpp:
* workers/WorkerContext.h:
(WorkerContext):
2012-12-03 Kihong Kwon <kihong.kwon@samsung.com>
Remove useless included header and change position of Proximity Events test cases
https://bugs.webkit.org/show_bug.cgi?id=103871
Reviewed by Antonio Gomes.
Remove useless included header from DeviceProximityEvent.cpp.
No new tests, It is just code refactoring.
* Modules/proximity/DeviceProximityEvent.cpp:
2012-12-03 Jussi Kukkonen <jussi.kukkonen@intel.com>
[GStreamer] initial volume events on media elements should happen earlier
https://bugs.webkit.org/show_bug.cgi?id=96912
Reviewed by Philippe Normand.
Update mediaelement volume and mute properties to whatever values
playbin has as soon as possible (when the playbin reaches PAUSED state).
This will improve user experience as the volume visuals won't suddenly
change when user clicks play.
No new tests: media/event-attributes.html already tests media events.
Unfortunately this test is flaky on EFL and GTK (more specifically
it is flaky on pulseaudio-using gstreamer platforms: http://webkit.org/b/83704).
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::load):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(MediaPlayerPrivateGStreamer):
2012-12-03 Alexis Menard <alexis@webkit.org>
Unreviewed build fix after r136378.
* css/CSSPrimitiveValueMappings.h:
(WebCore):
(WebCore::CSSPrimitiveValue::operator BackgroundEdgeOrigin):
2012-12-03 Alexis Menard <alexis@webkit.org>
[CSS3 Backgrounds and Borders] Implement CSS3 background-position offsets rendering.
https://bugs.webkit.org/show_bug.cgi?id=103440
Reviewed by Julien Chaffraix.
Add the rendering bits of the new background-position offsets. It adds
new bits in FillLayer to store the edges used to position the
background. The old x and y members are used the same way as before, to
store the value of the offset.
Test: fast/backgrounds/background-position-rendering.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::createPositionListForLayer): Refactor into a function the
code duplicated in getPropertyCSSValue to avoid more code
duplication.
(WebCore):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
Add implicit conversion from the enums used in the rendering code to
CSS values.
(WebCore::CSSPrimitiveValue::operator BackgroundEdgeOrigin):
* css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapFillXPosition):
(WebCore::CSSToStyleMap::mapFillYPosition):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry): Add
support for the new positioning and refactor a little naming of the
variables for better readability.
* rendering/style/FillLayer.cpp:
(SameSizeAsFillLayer):
(WebCore::FillLayer::FillLayer):
(WebCore::FillLayer::operator=):
(WebCore::FillLayer::operator==):
(WebCore::FillLayer::fillUnsetProperties):
(WebCore::FillLayer::fillUnsetProperties): When filling the layer with
unset properties make sure we also set the x and y origins of the
background in case they were set.
* rendering/style/FillLayer.h:
(WebCore::FillLayer::backgroundXOrigin):
(WebCore::FillLayer::backgroundYOrigin):
(WebCore::FillLayer::isBackgroundOriginSet):
(FillLayer):
(WebCore::FillLayer::setBackgroundXOrigin):
(WebCore::FillLayer::setBackgroundYOrigin):
(WebCore::FillLayer::clearPositionX):
(WebCore::FillLayer::clearPositionY):
* rendering/style/RenderStyleConstants.h:
2012-12-03 Mike West <mkwst@chromium.org>
Web Inspector: Autogenerate stack traces and line numbers when possible.
https://bugs.webkit.org/show_bug.cgi?id=100650
Reviewed by Yury Semikhatsky.
Console messages generated in WebCore generally are asked to do a bit of
work in order to provide a developer with a detailed report. We ask the
caller to either generate stack traces, or pass in a url/line number
pair, which can be a bit of work. Predictably, most callers don't pass
in what we'd like to see.
This patch creates a new, simpler console message generation API that we
expect most call sites to use. Source, type, level, and message are
required, and an optional request ID can be passed in. Everything else
will be autogenerated inside ConsoleMessage when appropriate.
In a subsequent patch, we expect to be able to trim down more of the
external call sites (ContentSecurityPolicy springs to mind) in order to
further consolidate the external interface. Simple is good.
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::didFailSocketStream):
Drop the now-redundant URL parameter from various WebSocket errors.
* css/MediaList.cpp:
(WebCore::addResolutionWarningMessageToConsole):
Switch to Document::addConsoleMessage, which means that we can move
line-number generation out of MediaList.
* dom/Document.cpp:
(WebCore::Document::logExceptionToConsole):
Use the long-form 'addMessage()' rather than the public interface.
(WebCore::Document::processHttpEquiv):
Drop the URL parameter, as it's now autogenerated.
(WebCore::Document::addConsoleMessage):
(WebCore):
* dom/Document.h:
(Document):
Override the pure virtual method on ScriptExecutionContext, and pass
the call through to the new Console::addMessage, which accepts a
pointer to the Document in order to do line-number generation.
* dom/ScriptExecutionContext.h:
(ScriptExecutionContext):
Add a pure virtual variant of addConsoleMessage which accepts only
bare minimum data, and expects autogeneration of the rest.
Additionally, ensure that the other variants always have either a
URL/line number, or a stack trace.
* dom/ViewportArguments.cpp:
(WebCore::reportViewportWarning):
Drop line numbers and URLs from Viewport warnings. We can generate
these now.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::validateInteractively):
Drop the URL from form autofocus warnings
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::parseAttribute):
Drop the URL and line from sandbox attribute warnings.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::printWarningToConsole):
Drop the URL from WebGL warnings.
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
Call 'autogenerateMetadata' to ensure that a stack trace is
generated if one isn't provided. Create a new constructor that
accepts a ScriptState/ScriptArguments pair, and use it for console
API calls.
(WebCore):
(WebCore::ConsoleMessage::autogenerateMetadata):
Generate a stack trace given whatever information we've got.
* inspector/ConsoleMessage.h:
(ConsoleMessage):
Create a new constructor that accepts a ScriptState/ScriptArguments
pair, and use it for console API calls.
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::enable):
Use the short-form ConsoleMessage constructor.
(WebCore::InspectorConsoleAgent::addMessageToConsole):
Use the stack-only constructor, or the ScriptState
constructor, as appropriate.
(WebCore::InspectorConsoleAgent::count):
We generated a stack, pass it in.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::didReceiveResponse):
Drop the URL parameter from the console message for X-Frame-Options
parsing errors.
* page/Console.cpp:
(WebCore::Console::addMessage):
When given a Document*, generate a line number if: 1) the document
is still being parsed, 2) the document is not in document.write(),
3) the parser isn't waiting for script, and 4) the parser isn't
executing script. Many callsites didn't check all of these, which
is why the SVG rebaseline (for example) drops lots and lots of line
numbers which point at a closing '</script>' tag.
(WebCore):
* page/Console.h:
(WebCore):
(Console):
Update the public API to accept a Document* and little else.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::printErrorMessage):
Don't generate a stack here. We can do it later.
* svg/SVGDocumentExtensions.cpp:
(WebCore::reportMessage):
Drop the URL and line number. We'll generate them. It'll be sweet.
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::addConsoleMessage):
Generate a stack here, as we likely won't have the context to do
so later. Pass it through.
(WebCore):
* workers/WorkerContext.h:
(WorkerContext):
Implement the new addConsoleMessage variant.
2012-12-03 Gabor Rapcsanyi <rgabor@webkit.org>
[Qt] Remove an unnecessary masking from swapBgrToRgb()
https://bugs.webkit.org/show_bug.cgi?id=103630
Reviewed by Zoltan Herczeg.
Get rid of a masking command in swapBgrToRgb() to speed up a little bit.
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::swapBgrToRgb):
2012-12-03 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
CSS Device Adaptation: window.innerWidth returns wrong value if CSS viewport descriptors are applied
https://bugs.webkit.org/show_bug.cgi?id=103737
Reviewed by Kenneth Rohde Christiansen.
ViewportStyleResolver used frame view visibleContentRect size as initial viewport size.
This however caused a problem when page enabled/disabled CSS stylesheets, having viewport
descriptors. Viewport descriptors from new stylesheet were applied to the visibleContentRect
affected already by the viewport descriptors from the previous stylesheet.
New 'initialViewportSize' property (http://dev.w3.org/csswg/css-device-adapt/#initial-viewport)
was added to frame view so that viewport descriptors can always be applied to the reliable
viewport size.
Test: css3/device-adapt/viewport-width-check-window-innerwidth-correct.html
* css/ViewportStyleResolver.cpp:
(WebCore::ViewportStyleResolver::ViewportStyleResolver):
(WebCore::ViewportStyleResolver::getViewportArgumentValue):
* css/ViewportStyleResolver.h:
(ViewportStyleResolver):
* dom/Document.cpp:
(WebCore):
(WebCore::Document::initialViewportSize):
* dom/Document.h:
(Document):
* page/FrameView.h:
(FrameView):
(WebCore::FrameView::initialViewportSize):
(WebCore::FrameView::setInitialViewportSize):
2012-12-03 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Styles] Retain selector case as written in the source code
https://bugs.webkit.org/show_bug.cgi?id=103118
Reviewed by Antti Koivisto.
This change:
- adds parsing of selector group components in the CSSParser;
- builds the SelectorList.selectors based on the source code whenever possible.
Strips [multiline] comments and whitespace;
- adds the MultilineMode to RegularExpression.
Test: inspector/styles/selector-list.html
* WebCore.exp.in: Update the exported symbol.
* css/CSSGrammar.y.in: Add invocations for CSSParser::markSelector[Start|End]() as required.
* css/CSSParser.cpp:
(WebCore::CSSParser::markSelectorStart): Gets invoked to mark a selector group item start offset.
(WebCore::CSSParser::markSelectorEnd): Ditto for the end offset.
* css/CSSParser.h: Add new methods and a SourceRange tracking field.
* css/CSSPropertySourceData.h: Add SelectorRangeList to the CSSRuleSourceData.
* inspector/InspectorStyleSheet.cpp:
(WebCore::selectorsFromSource): Builds the SelectorList based on the underlying source data.
Strips comments and whitespace from selectors.
(WebCore::InspectorStyleSheet::buildObjectForSelectorList):
Builds SelectorList based on the availability of the source code.
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertiesSection.prototype._markSelectorMatches):
Update selectors in all cases to make use of the source-based information whenever possible.
* platform/text/RegularExpression.cpp:
Add the MultilineMode parameter into the constructor/factory method and ultimately pass it into YarrPattern.
(WebCore::RegularExpression::Private::create): See above.
(WebCore::RegularExpression::Private::Private): See above.
(WebCore::RegularExpression::Private::compile): See above.
(WebCore::RegularExpression::RegularExpression): See above.
* platform/text/RegularExpression.h:
Add enum MultilineMode, modify constructor and factory method signatures accordingly.
2012-12-02 Noel Gordon <noel.gordon@gmail.com>
ImageOrientation::transformFromDefault() case labels should be in numerical order
https://bugs.webkit.org/show_bug.cgi?id=101596
Reviewed by Simon Fraser.
Place the orientation case labels in numerical order to better match the EXIF2.2 spec
definitions of orientation values and their ImageOrientation.h enumeration.
No change in behavior. Covered by existing tests:
fast/images/exif-orientation-css.html
fast/images/exif-orientation-image-document.html
fast/images/exif-orientation.html
* platform/graphics/ImageOrientation.cpp:
(WebCore::ImageOrientation::transformFromDefault): Numerically order the orientation
case statement labels.
2012-12-02 Mary Wu <mary.wu@torchmobile.com.cn>
should sniff it if mimetype don't contain a slash.
https://bugs.webkit.org/show_bug.cgi?id=102778
Reviewed by George Staikos.
Based on http://mimesniff.spec.whatwg.org/, a valid media type
is the string represented by concatenating type, the string "/",
and subtype. So if the mimetype don't contain slash, we should
possible get sniffed type from the content like Firefox/chrome/safari.
RIM Bug# 219590, internally reviewed by Liam Quinn.
No new tests, the patch only impact qt/blackberry porting to be consistent
with chrome, other portings have their own behavior.
* platform/network/MIMESniffing.cpp:
(std::isUnknownType):
2012-12-02 Otto Derek Cheung <otcheung@rim.com>
[BlackBerry] Adding checks for null when checking cookie status in CookieJarBlackBerry
https://bugs.webkit.org/show_bug.cgi?id=103748
Reviewed by Rob Buis.
The logic is flipped in the previous patch.
* loader/blackberry/CookieJarBlackBerry.cpp:
(WebCore::cookiesEnabled):
2012-12-02 Robert Hogan <robert@webkit.org>
Bad rendering of web page because of image's height is set to 100%
https://bugs.webkit.org/show_bug.cgi?id=28035
Reviewed by Eric Seidel.
Call computeReplacedLogicalHeight() to get the correct logical height of a replaced element
for calculating the element's width. RenderBox::computeLogicalHeightUsing() is a helper function designed for finding
the min and max height values and is not the way to find the actual used height of a replaced element.
WebKit's quirks-mode behaviour for the test case is unaffected by this change.
Tests: fast/css/computed-image-width-with-percent-height-quirksmode.html
fast/css/computed-image-width-with-percent-height.html
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeReplacedLogicalWidth):
2012-12-02 Mihnea Ovidenie <mihnea@adobe.com>
[CSS Regions] regionlayoutupdate event fires continuously
https://bugs.webkit.org/show_bug.cgi?id=102101
Reviewed by David Hyatt.
According to the CSSRegions spec, http://dev.w3.org/csswg/css3-regions/#region-flow-layout-events, the regionlayoutupdate event
should be dispatched when there is a possible layout change in the region chain.
In the current implementation, regionlayoutupdate is dispatched when:
1. a region from region chain changed its regionOverset value
2. a region from region chain has regionOverset = fit| overset
In the case of a named flow having an auto-height region with regionOverset = fit, the second step of layout was done
also when there was not required, therefore the regionlayoutuodate was unnecessary triggered.
We should proceed with the 2-pass layout only if the flow-thread having auto-height regions in region chain needs layout.
Test: fast/regions/autoheight-regionlayoutupdate-multipletimes.html
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::hasRenderNamedFlowThreadsNeedingLayout):
* rendering/FlowThreadController.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::layout):
2012-12-02 Rik Cabanier <cabanier@adobe.com>
Extend JavaScript support for blending in canvas
https://bugs.webkit.org/show_bug.cgi?id=101804
Reviewed by Dirk Schulze.
Added parsing code and variables to support additional canvas blend modes
see spec: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#canvascompositingandblending
Test: canvas/philip/tests/2d.composite.globalComposite.html
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseAttribute):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::State::State):
(WebCore::CanvasRenderingContext2D::State::operator=):
(WebCore::CanvasRenderingContext2D::globalCompositeOperation):
(WebCore::CanvasRenderingContext2D::setGlobalCompositeOperation):
(WebCore::CanvasRenderingContext2D::drawImageFromRect):
* html/canvas/CanvasRenderingContext2D.h:
(State):
* platform/graphics/GraphicsTypes.cpp:
(WebCore):
(WebCore::parseCompositeAndBlendOperator):
(WebCore::compositeOperatorName):
* platform/graphics/GraphicsTypes.h:
2012-12-02 KyungTae Kim <ktf.kim@samsung.com>
[EFL] Fix build warning in GraphicsContext3DEfl.cpp
https://bugs.webkit.org/show_bug.cgi?id=103807
Reviewed by Laszlo Gombos.
Because GraphicsContext3D::ImageExtractor::extractImage is not implemented yet,
comment out the parameter names for removing -Wunused-parameter warnings.
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
2012-12-02 Andreas Kling <akling@apple.com>
Keep ElementAttributeData sharing cache open for a while after document parsing finishes.
<http://webkit.org/b/103720>
Reviewed by Antti Koivisto.
Allow web pages that generate content dynamically to benefit more from the ElementAttributeData sharing
cache by keeping it open for 10 seconds after document parsing finishes. This enables elements constructed
from HTML fragments to share attribute data with other identical elements.
Elements created via Document.createElement are still unsupported since we don't know the list of attributes
at the time of construction.
401kB progression on Membuster3.
Document now holds on to a DocumentSharedObjectPool, accessible via Document::sharedObjectPool().
It is non-null during parsing and for some time afterwards, and can be used to implement additional
caches that are not worth holding on to permanently.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* WebCore.vcproj/WebCore.vcproj:
Add new class DocumentSharedObjectPool.
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::setParsing):
(WebCore::Document::finishedParsing):
(WebCore::Document::sharedObjectPoolClearTimerFired):
* dom/Document.h:
(WebCore::Document::sharedObjectPool):
Create DocumentSharedObjectPool when parsing starts, kill it on a 10s timer after parsing finishes.
* dom/DocumentSharedObjectPool.cpp: Added.
(ImmutableElementAttributeDataCacheKey):
(WebCore::ImmutableElementAttributeDataCacheKey::ImmutableElementAttributeDataCacheKey):
(WebCore::ImmutableElementAttributeDataCacheKey::operator!=):
(WebCore::ImmutableElementAttributeDataCacheKey::hash):
(ImmutableElementAttributeDataCacheEntry):
(WebCore::ImmutableElementAttributeDataCacheEntry::ImmutableElementAttributeDataCacheEntry):
(WebCore::DocumentSharedObjectPool::cachedImmutableElementAttributeData):
(WebCore::DocumentSharedObjectPool::DocumentSharedObjectPool):
(WebCore::DocumentSharedObjectPool::~DocumentSharedObjectPool):
* dom/DocumentSharedObjectPool.h: Added.
(DocumentSharedObjectPool):
(WebCore::DocumentSharedObjectPool::create):
* dom/Element.cpp:
(WebCore::Element::parserSetAttributes):
Moved the ElementAttributeData cache to DocumentSharedObjectPool.
2012-12-02 John Bauman <jbauman@chromium.org>
[chromium] Let Pepper Flash use integrated GPU
https://bugs.webkit.org/show_bug.cgi?id=103800
Reviewed by Kenneth Russell.
Pepper Flash uses the SharedGraphicsContext3D as a parent, so don't
require that to use the discrete GPU. This means that accelerated
canvas will use the integrated GPU, but that will save battery life
and seems acceptable.
* platform/graphics/gpu/SharedGraphicsContext3D.cpp:
(WebCore::SharedGraphicsContext3DImpl::createContext):
2012-12-02 Elliott Sprehn <esprehn@gmail.com>
documentElement should not always get a renderer
https://bugs.webkit.org/show_bug.cgi?id=103475
Reviewed by Ojan Vafai.
Only SVG documents need a renderer on the documentElement when it's
display: none. This behavior is wrong, but there's assumptions in
FrameView and SVGImage that depend on a RenderSVGRoot existing for all
loaded SVG document and images.
The current code has logic that makes it appear as if we always create
a renderer for the documentElement even when it's display: none, but
because HTMLElement::createRenderer doesn't call super we end up with
HTMLElement::rendererIsNeeded returning true for display: none, but
HTMLElement::createRenderer returning null.
Instead of this generic documentElement logic only special case SVG
until someone can fix Bug 103493 so we don't need it.
Test: fast/css/display-none-documentElement.html
* dom/Element.cpp:
(WebCore::Element::rendererIsNeeded):
(WebCore::Element::createRenderer):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::rendererIsNeeded):
* svg/SVGSVGElement.h:
(SVGSVGElement):
2012-12-02 Pan Deng <pan.deng@intel.com>
[Resource Timing] implementation of cross origin resouce timing restrictions.
https://bugs.webkit.org/show_bug.cgi?id=84886.
Reviewed by Tony Gentilcore.
This patch implemented resource timing behaviors of cross origin. By default, detailed timing info is hided in cross origin resource timing, only startTime, duration, fetchStart and responseEnd can be observed. Exceptions are, server side allow its origin can be timing by another through a header with "timing-allow-origin" field.
Tests: http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_resource_request.html
http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request.html
* page/Performance.cpp:
(WebCore::passesTimingAllowCheck):
(WebCore):
(WebCore::Performance::addResourceTiming):
* page/Performance.h:
(WebCore):
(Performance):
* page/PerformanceResourceTiming.cpp:
(WebCore):
* page/PerformanceResourceTiming.h:
(WebCore::PerformanceResourceTiming::create):
(PerformanceResourceTiming):
2012-12-02 Elliott Sprehn <esprehn@gmail.com>
Simplify treeScope and setTreeScope
https://bugs.webkit.org/show_bug.cgi?id=103708
Reviewed by Hajime Morita.
By making the default treeScope in NodeRareData the document and then
moving the m_treeScope field to NodeRareDataBase we can make treeScope
inline and make setTreeScope much simpler.
There's also no reason to save calls to rareData() now that the map has
been eliminated by r133372 so we can eliminate the return value from
setTreeScope.
No new tests, just refactoring.
* WebCore.exp.in:
* dom/Document.h:
(WebCore::Node::treeScope):
(WebCore):
* dom/Element.cpp:
(WebCore::Element::createRareData):
* dom/ElementRareData.h:
(ElementRareData):
(WebCore::ElementRareData::ElementRareData):
* dom/Node.cpp:
(WebCore::Node::setTreeScope):
(WebCore::Node::createRareData):
* dom/Node.h:
(NodeRareDataBase):
(WebCore::NodeRareDataBase::treeScope):
(WebCore::NodeRareDataBase::setTreeScope):
(WebCore::NodeRareDataBase::NodeRareDataBase):
(Node):
* dom/NodeRareData.cpp:
(WebCore::NodeRareData::reportMemoryUsage):
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
(NodeRareData):
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
2012-12-02 Justin Novosad <junov@google.com>
Fix occlusion culling logic to handle css background layer clipping
https://bugs.webkit.org/show_bug.cgi?id=103276
Reviewed by Simon Fraser.
Bug was introduced by r135629
This patch fixes it by verifying layer clip. A fill layer must
not be treated as if it occludes the layers under it unless it has
a larger or equal clip setting than the layers under it.
Test: fast/backgrounds/background-opaque-clipped-gradients.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintFillLayers):
* rendering/style/FillLayer.cpp:
(WebCore::clipMax):
(WebCore::FillLayer::computeClipMax):
(WebCore::FillLayer::clipOccludesNextLayers):
* rendering/style/FillLayer.h:
(FillLayer):
2012-12-02 Tony Chang <tony@chromium.org>
Avoid a second layout of flex items in layoutAndPlaceChildren()
https://bugs.webkit.org/show_bug.cgi?id=102352
Reviewed by Ojan Vafai.
Avoid doing a second layout if we're going to get the same size as before.
This prevents us from doing an exponential number of layouts in some
common cases.
Test: css3/flexbox/stretch-after-sibling-size-change.html
* html/shadow/SliderThumbElement.cpp:
(WebCore::RenderSliderContainer::layout): Force a layout of the track, which positions the thumb.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::needToStretchChild): Determine if a child is going to stretch.
(WebCore::RenderFlexibleBox::resetAutoMarginsAndLogicalTopInCrossAxis): Makes sure we're in a consistent state before
we apply auto margins.
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
* rendering/RenderFlexibleBox.h: Add needToStretchChild.
2012-12-02 Yongjun Zhang <yongjun_zhang@apple.com>
Need a method to close all idle localstorage databases immediately.
https://bugs.webkit.org/show_bug.cgi?id=103469
Reviewed by David Kilzer.
Add a new PageGroup method closeIdleLocalStorageDatabases, which walks through
all local storage areas that don't have document referencing to them and closes
their underlying databases.
Test: storage/domstorage/localstorage/close-idle-localstorage-databases-immediately.html
* WebCore.exp.in:
* page/PageGroup.cpp:
(WebCore::PageGroup::clearLocalStorageForOrigin):
(WebCore):
(WebCore::PageGroup::closeIdleLocalStorageDatabases): walking through all idle local storages and
closing their databases.
* page/PageGroup.h:
(PageGroup):
* storage/StorageArea.h:
(WebCore::StorageArea::closeDatabaseIfIdle):
* storage/StorageAreaImpl.cpp:
(WebCore::StorageAreaImpl::closeDatabaseIfIdle): close the database if it is idle.
(WebCore):
* storage/StorageAreaImpl.h:
(StorageAreaImpl):
* storage/StorageNamespace.h:
(StorageNamespace):
* storage/StorageNamespaceImpl.cpp:
(WebCore::StorageNamespaceImpl::closeIdleLocalStorageDatabases):
(WebCore):
* storage/StorageNamespaceImpl.h:
(StorageNamespaceImpl):
2012-12-02 Otto Derek Cheung <otcheung@rim.com>
[BlackBerry] Adding checks for null when checking cookie status in CookieJarBlackBerry
https://bugs.webkit.org/show_bug.cgi?id=103748
Reviewed by Rob Buis.
Updating CookieJarBlackBerry::cookieEnabled and have other methods in the class call that
method. Also, adding null checks for document->settings().
No change in behaviour.
* loader/blackberry/CookieJarBlackBerry.cpp:
(WebCore::cookies):
(WebCore::setCookies):
(WebCore::cookiesEnabled):
(WebCore::getRawCookies):
(WebCore::deleteCookie):
(WebCore::cookieRequestHeaderFieldValue):
2012-12-02 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136236.
http://trac.webkit.org/changeset/136236
https://bugs.webkit.org/show_bug.cgi?id=103833
[chromium] Flakey crashes in SpeechRecognitionEvent::emma
during GC. (Requested by mkwst on #webkit).
* Modules/speech/SpeechRecognition.cpp:
(WebCore::SpeechRecognition::start):
* Modules/speech/SpeechRecognition.h:
(SpeechRecognition):
* Modules/speech/SpeechRecognitionEvent.cpp:
(WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
* Modules/speech/SpeechRecognitionEvent.h:
(SpeechRecognitionEventInit):
(SpeechRecognitionEvent):
(WebCore::SpeechRecognitionEvent::resultIndex):
* Modules/speech/SpeechRecognitionEvent.idl:
* Modules/speech/SpeechRecognitionResult.cpp:
(WebCore::emmaQualifiedName):
(WebCore):
(WebCore::SpeechRecognitionResult::emma):
* Modules/speech/SpeechRecognitionResult.h:
(WebCore):
(WebCore::SpeechRecognitionResult::final):
(SpeechRecognitionResult):
* Modules/speech/SpeechRecognitionResult.idl:
* WebCore.gypi:
* bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8SpeechRecognitionEventCustom.cpp.
(WebCore):
(WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
2012-12-01 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136015.
http://trac.webkit.org/changeset/136015
https://bugs.webkit.org/show_bug.cgi?id=103821
Did not heal performance bot and caused other performance
regressions (Requested by abarth on #webkit).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
2012-12-01 Xiaobo Wang <xiaobo.wang@torchmobile.com.cn>
DRT - crashed in WebCore::SearchFieldCancelButtonElement::defaultEventHandler
https://bugs.webkit.org/show_bug.cgi?id=103592
Reviewed by Kent Tamura.
The crash happened when the search field cancel button handles mouseout
event after the search input was detached. When it happens the input
element returned from shadowHost() is null, need to check the pointer
before dereferencing.
InputFieldSpeechButton and SearchFieldResultsButtonElement have the
similar issue.
No new tests. The patch fixes the following test on BlackBerry platform.
Test: fast/forms/search-delete-while-cancel-button-clicked.html
* html/shadow/TextControlInnerElements.cpp:
(WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
(WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
(WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents):
(WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
(WebCore::InputFieldSpeechButtonElement::willRespondToMouseClickEvents):
(WebCore::InputFieldSpeechButtonElement::setRecognitionResult):
2012-11-30 Mike West <mkwst@chromium.org>
CSP 1.1: Make the CSP_NEXT flag runtime enabled.
https://bugs.webkit.org/show_bug.cgi?id=103652
Reviewed by Adam Barth.
Content Security Policy 1.1 continues to live behind the CSP_NEXT flag,
this patch adds another layer on top of that in order to enable runtime
decisions about whether it should be active.
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures):
(WebCore::RuntimeEnabledFeatures::experimentalContentSecurityPolicyFeaturesEnabled):
(WebCore::RuntimeEnabledFeatures::setExperimentalContentSecurityPolicyFeaturesEnabled):
Adds methods in order to correctly handle enabling and disabling
CSP 1.1 features.
* dom/Document.idl:
Gate the 'document.securityPolicy' object on the runtime flag.
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPDirectiveList::addDirective):
Check that experimental features are runtime enabled before
processing 1.1 directives.
(WebCore::ContentSecurityPolicy::experimentalFeaturesEnabled):
(WebCore):
* page/ContentSecurityPolicy.h:
Adds a new method which checks against the runtime flag to determine
whether CSP 1.1 features are enabled.
2012-11-30 Simon Fraser <simon.fraser@apple.com>
Avoid calling into NSUserDefaults every time we start a scroll
https://bugs.webkit.org/show_bug.cgi?id=103804
Reviewed by Dan Bernstein.
Cache the NSScrollAnimationEnabled preference to avoid
hitting NSUserDefaults every time we start scrolling.
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::scrollAnimationEnabledForSystem):
2012-11-30 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=103790
The LayerPool m_pruneTimer should have a longer delay
Reviewed by Simon Fraser.
A 1 second delay is more appropriate here.
* platform/graphics/ca/mac/LayerPool.mm:
(WebCore::LayerPool::schedulePrune):
2012-11-30 Jer Noble <jer.noble@apple.com>
Unreviewed Windows build fix.
Add a default: entry to an case statement to fix a build error when compiled in VS2005.
* html/MediaController.cpp:
(MediaController::playbackState):
2012-11-30 Jer Noble <jer.noble@apple.com>
Add support for the 'unpause()' method on MediaController.
https://bugs.webkit.org/show_bug.cgi?id=103751
Reviewed by Eric Carlson.
The MediaController spec has been updated to add an unpause() method
which is functionally identical to the old play() method, and changes
the semantics of play() to call play() on the underlying slaved media
elements. The spec also added a playbackState() method, returning a
string representing the last calculated playback state.
Test: media/media-controller-unpause.html
* html/MediaController.cpp:
(MediaController::unpause): Renamed from play().
(MediaController::play): Added. Same as unpause(), but also call
play() on slaved media elements.
(playbackStateWaiting): Static string accessor.
(playbackStatePlaying): Ditto.
(playbackStateEnded): Ditto.
(MediaController::playbackState): Added. Returns string value of
m_playbackState.
* html/MediaController.h:
* html/MediaController.idl:
2012-11-30 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] Align the grid track code with the specification's production rules
https://bugs.webkit.org/show_bug.cgi?id=103703
Reviewed by Alexis Menard.
In order to support more of the syntax and make the code more readable, this change
splits following the grammar's production rules (see
http://dev.w3.org/csswg/css3-grid-layout/#grid-definition-columns-and-grid-definit).
Refactoring covered by existing tests.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackMinMax):
(WebCore::valueForGridTrackGroup):
(WebCore::valueForGridTrackList):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridTrackList):
(WebCore::CSSParser::parseGridTrackGroup):
(WebCore::CSSParser::parseGridTrackMinMax):
* css/CSSParser.h:
* css/StyleResolver.cpp:
(WebCore::createGridTrackMinMax):
(WebCore::createGridTrackGroup):
(WebCore::createGridTrackList):
Mechanical split of the parsing, resolving and computed style code into
<track-list>, <track-group>, <track-minmax> and <track-breadth> parts.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridBreadth):
Changed this function to just parse a single value (without any extra logic).
* css/StyleResolver.cpp:
(WebCore::createGridTrackBreadth):
Changed this function to take a Length as it is used to parse a <track-breadth>.
The goal is for it to be the low-level function createGridTrackMinmax will call on
each function parameter.
2012-11-30 Simon Fraser <simon.fraser@apple.com>
Fix potential crash when canceling animations on renderers with no node
https://bugs.webkit.org/show_bug.cgi?id=103784
Reviewed by Dan Bernstein.
We could crash when tearing down RenderScrollbars because we hit
AnimationController::cancelAnimations() for a renderer with no node.
The assertion already check for a null node, but the line after
does not, so fix that.
I tried to make a test with animations/transitions on a custom scrollbar, but was not able
to get it to crash.
* page/animation/AnimationController.cpp:
(WebCore::AnimationController::cancelAnimations):
2012-11-30 Tim Horton <timothy_horton@apple.com>
PluginDocument fires didFinishDocumentLoadForFrame upon receiving initial bytes instead of when load completes
https://bugs.webkit.org/show_bug.cgi?id=103702
<rdar://problem/12762534>
Reviewed by Alexey Proskuryakov.
Remove the call to finish() from PluginDocumentParser::appendBytes().
This was introduced in http://trac.webkit.org/changeset/14838, when finish() wouldn't get
called for PluginDocuments any other way. In the time since, DocumentWriter::end() was made
to call finish() anyway, at the correct time (the call from appendBytes makes a PluginDocument
appear to be finished loading after the first bytes are received).
No new tests, because there doesn't seem to be any state in a PluginDocument that can be accessed
from JavaScript to determine whether or not it has finished loading.
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::appendBytes):
2012-11-29 Ilya Tikhonovsky <loislo@chromium.org>
RenderBlock minor clean-up: replace raw pointers with OwnPtrs.
https://bugs.webkit.org/show_bug.cgi?id=103690
Reviewed by Eric Seidel.
raw pointers were replaced with OwnPtrs.
Probably we also gain a small performance improvements because
I replaced get && remove pair with take.
* rendering/RenderBlock.cpp:
(WebCore):
(WebCore::removeBlockFromDescendantAndContainerMaps):
(WebCore::RenderBlock::~RenderBlock):
(WebCore::RenderBlock::addOverflowFromFloats):
(WebCore::RenderBlock::addContinuationWithOutline):
(WebCore::RenderBlock::paintContinuationOutlines):
(WebCore::RenderBlock::insertIntoTrackedRendererMaps):
(WebCore::RenderBlock::removeFromTrackedRendererMaps):
(WebCore::RenderBlock::setDesiredColumnCountAndWidth):
* rendering/RenderBlock.h:
(WebCore):
2012-11-30 Jun Jiang <jun.a.jiang@intel.com>
WebGL: Add a class to abstract the status of the Image in texImage2D() and texSubImage2D()
https://bugs.webkit.org/show_bug.cgi?id=103606
Reviewed by Kenneth Russell.
In texImage2D() and texSubImage2D() for WebGL, the status of the Image is extracted and kept in the function GraphicsContext3D::getImageData() but provides no interface or guaranteed way to use the status of the Image outside GraphicsContext3D::getImageData() safely. For example, you can not get the address of the raw Image data and operate it outside the scope of the GraphicsContext3D::getImageData() and there is at least one memory copy existed from the Image to the intermediate vector.
This patch refactors the code by adding a ImageExtractor class to abstract and keep the status of the Image. The lifetime and validity of Image status are determined by the lifetime of the object instead of the scope of getImageData(). It provides flexibility on future optimizations.
No new tests. It is a code refactoring patch.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::texImage2DImpl):
(WebCore::WebGLRenderingContext::texSubImage2DImpl):
* platform/graphics/GraphicsContext3D.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::ImageExtractor):
(WebCore):
(WebCore::GraphicsContext3D::packImageData):
* platform/graphics/GraphicsContext3D.h:
(WebCore):
(GraphicsContext3D):
(ImageExtractor):
(WebCore::GraphicsContext3D::ImageExtractor::extractSucceeded):
(WebCore::GraphicsContext3D::ImageExtractor::imagePixelData):
(WebCore::GraphicsContext3D::ImageExtractor::imageWidth):
(WebCore::GraphicsContext3D::ImageExtractor::imageHeight):
(WebCore::GraphicsContext3D::ImageExtractor::imageSourceFormat):
(WebCore::GraphicsContext3D::ImageExtractor::imageAlphaOp):
(WebCore::GraphicsContext3D::ImageExtractor::imageSourceUnpackAlignment):
* platform/graphics/NativeImagePtr.h:
* platform/graphics/cairo/GraphicsContext3DCairo.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
(WebCore):
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
* platform/graphics/cg/GraphicsContext3DCG.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
(WebCore):
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
* platform/graphics/clutter/GraphicsContext3DClutter.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
(WebCore):
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
(WebCore):
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
(WebCore):
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
* platform/graphics/skia/GraphicsContext3DSkia.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
(WebCore):
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
2012-11-30 Simon Fraser <simon.fraser@apple.com>
Make RenderLayer::updateLayerPosition() private
https://bugs.webkit.org/show_bug.cgi?id=102624
Reviewed by Ryosuke Niwa.
Made updateLayerPosition() private. The only external caller was
MouseRelatedEvent::computeRelativePosition(), which has no business updating
layer positions. In fact it had positively dangerous behavior; doing just
a style update without layout, and then calling absoluteToLocal() and walking
layers. Fixed by having it call updateLayoutIgnorePendingStylesheets().
This revealed a bug where event.offsetX/offsetY could be wrong in some cases.
fast/events/stopPropagation-submit.html does a simulated click (which has
client coordinates at 0,0), so the image submit coordinates were incorrectly
0,0. Now that we do layout before computing them, they are correctly reported
as being relative to the element.
* dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::computeRelativePosition):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
* rendering/RenderLayer.h:
(RenderLayer):
2012-11-30 Simon Fraser <simon.fraser@apple.com>
Late-loading stylesheets can cause composited layers to be blank
https://bugs.webkit.org/show_bug.cgi?id=103773
Reviewed by Tim Horton.
Early painting can be short-circuited in RenderBlock::paintContents() if we know a stylesheet
is pending, which is done to avoid a flash of unstyled content (FOUC). When the stylesheet
finally loaded, Document::styleResolverChanged() would try to repaint everything by calling
repaint() on the RenderView(). In a composited world, however, this repaint() doesn't repaint
composited layers.
This was particularly prevalent on this specific URL because it failed to load
a CSS file from typekit.com, so Document::styleResolverChanged()
just did the repaint and returned (rather than doing a recalc style as would
happen for correctly loaded stylesheets).
Fix by making a way to repaint all compositing layers, and calling it
from Document::styleResolverChanged().
No tests because this is timing-dependant.
* dom/Document.cpp:
(WebCore::Document::styleResolverChanged): Call repaintViewAndCompositedLayers().
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintContents): Fix the comment.
* rendering/RenderLayerCompositor.cpp: Convert repaintCompositedLayersAbsoluteRect()
and associated recursiveRepaintLayerRect() to allow the rect to be null, which indicates
that we should just repaint the entire layer, and improve their names.
(WebCore::RenderLayerCompositor::repaintCompositedLayers):
(WebCore::RenderLayerCompositor::recursiveRepaintLayer):
* rendering/RenderLayerCompositor.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::repaintRectangleInViewAndCompositedLayers): repaintCompositedLayersAbsoluteRect()
was renamed to repaintCompositedLayers().
(WebCore::RenderView::repaintViewAndCompositedLayers):
* rendering/RenderView.h:
(RenderView): repaintViewRectangle() and repaintRectangleInViewAndCompositedLayers() should not
be virtual. Add repaintViewAndCompositedLayers().
2012-11-30 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136142.
http://trac.webkit.org/changeset/136142
https://bugs.webkit.org/show_bug.cgi?id=103768
break a bunch of interactive_ui_tests in chromium win
(Requested by zhenyao_home on #webkit).
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
* css/CSSPrimitiveValueMappings.h:
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesInBlockDirection):
(WebCore::InlineFlowBox::computeOverAnnotationAdjustment):
(WebCore::InlineFlowBox::computeUnderAnnotationAdjustment):
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::layout):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h:
(StyleRareInheritedData):
2012-11-30 Joshua Bell <jsbell@chromium.org>
IndexedDB: Replace use of ScriptExecutionContext::Task (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=101483
Reviewed by Tony Chang.
The IDB back end (which runs on a single thread) makes use of ScriptExecutionContext's
Task and facilities for cross-task posting with callbacks, and requires decorating various
IDB classes with "ThreadSafe" when they are not. Move towards encapsulating the tasks
in "Operation" classes which are IDB-operation specific.
Part 1 (this patch) retains the use of ScriptExecutionContext::Task but wraps the creation
and the callback function in an Operation class which will be fleshed out in later patches.
As an aside, a little bit of RefPtr churn is eliminated, and IDB_TRACE sprinkled in.
No new tests - just a refactor.
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(IDBCursorBackendImpl::CursorIterationOperation):
(WebCore::IDBCursorBackendImpl::CursorIterationOperation::create):
(WebCore):
(IDBCursorBackendImpl::CursorAdvanceOperation):
(WebCore::IDBCursorBackendImpl::CursorAdvanceOperation::create):
(IDBCursorBackendImpl::CursorPrefetchIterationOperation):
(WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::create):
(WebCore::IDBCursorBackendImpl::continueFunction):
(WebCore::IDBCursorBackendImpl::advance):
(WebCore::IDBCursorBackendImpl::CursorAdvanceOperation::perform):
(WebCore::IDBCursorBackendImpl::CursorIterationOperation::perform):
(WebCore::IDBCursorBackendImpl::prefetchContinue):
(WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
* Modules/indexeddb/IDBCursorBackendImpl.h:
(IDBCursorBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(IDBDatabaseBackendImpl::CreateObjectStoreOperation):
(WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::create):
(WebCore):
(IDBDatabaseBackendImpl::DeleteObjectStoreOperation):
(WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::create):
(IDBDatabaseBackendImpl::VersionChangeOperation):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::create):
(IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation):
(WebCore::IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation::create):
(IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation):
(WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation::create):
(IDBDatabaseBackendImpl::VersionChangeAbortOperation):
(WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::create):
(WebCore::IDBDatabaseBackendImpl::createObjectStore):
(WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
(WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
(WebCore::IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation::perform):
(WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation::perform):
(WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(IDBIndexBackendImpl::OpenIndexCursorOperation):
(WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::create):
(WebCore):
(IDBIndexBackendImpl::IndexCountOperation):
(WebCore::IDBIndexBackendImpl::IndexCountOperation::create):
(IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation):
(WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::create):
(IDBIndexBackendImpl::IndexValueRetrievalOperation):
(WebCore::IDBIndexBackendImpl::IndexValueRetrievalOperation::create):
(WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::perform):
(WebCore::IDBIndexBackendImpl::openCursor):
(WebCore::IDBIndexBackendImpl::openKeyCursor):
(WebCore::IDBIndexBackendImpl::IndexCountOperation::perform):
(WebCore::IDBIndexBackendImpl::count):
(WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::perform):
(WebCore::IDBIndexBackendImpl::IndexValueRetrievalOperation::perform):
(WebCore::IDBIndexBackendImpl::get):
(WebCore::IDBIndexBackendImpl::getKey):
* Modules/indexeddb/IDBIndexBackendImpl.h:
(WebCore::IDBIndexBackendImpl::metadata):
(IDBIndexBackendImpl):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::create):
(WebCore):
(IDBObjectStoreBackendImpl::ObjectStoreStorageOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::create):
(IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation::create):
(IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation::create):
(IDBObjectStoreBackendImpl::ObjectStoreClearOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreClearOperation::create):
(IDBObjectStoreBackendImpl::CreateIndexOperation):
(WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::create):
(IDBObjectStoreBackendImpl::DeleteIndexOperation):
(WebCore::IDBObjectStoreBackendImpl::DeleteIndexOperation::create):
(IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation):
(WebCore::IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation::create):
(IDBObjectStoreBackendImpl::ObjectStoreCountOperation):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreCountOperation::create):
(IDBObjectStoreBackendImpl::CreateIndexAbortOperation):
(WebCore::IDBObjectStoreBackendImpl::CreateIndexAbortOperation::create):
(IDBObjectStoreBackendImpl::DeleteIndexAbortOperation):
(WebCore::IDBObjectStoreBackendImpl::DeleteIndexAbortOperation::create):
(WebCore::IDBObjectStoreBackendImpl::get):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::put):
(WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::deleteFunction):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::clear):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreClearOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::createIndex):
(WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::deleteIndex):
(WebCore::IDBObjectStoreBackendImpl::DeleteIndexOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::openCursor):
(WebCore::IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::count):
(WebCore::IDBObjectStoreBackendImpl::ObjectStoreCountOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::CreateIndexAbortOperation::perform):
(WebCore::IDBObjectStoreBackendImpl::DeleteIndexAbortOperation::perform):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(IDBObjectStoreBackendImpl):
2012-11-30 Tim Horton <timothy_horton@apple.com>
(Simple)PDFPlugin: Support conversion of PostScript documents
https://bugs.webkit.org/show_bug.cgi?id=103289
<rdar://problem/10235708>
Reviewed by Dan Bernstein.
SimplePDFPlugin (and PDFPlugin) should support converting PostScript files
to PDF before handing them off to their respective backends.
* English.lproj/Localizable.strings:
* WebCore.exp.in:
* platform/LocalizedStrings.cpp:
(WebCore::postScriptDocumentTypeDescription):
* platform/LocalizedStrings.h:
Add and export postScriptDocumentTypeDescription, for PostScript files.
2012-11-30 Justin Novosad <junov@google.com>
[Chromium] Animation updates fail when using a canvas as a CSS backround-image style with -webkit-canvas
https://bugs.webkit.org/show_bug.cgi?id=103643
Reviewed by Stephen White.
CanvasRenderingContext2D::didDraw was not propagating the change
notification to observers in the accelerated compositing case.
Problem fixed by adding observer notifications.
New manual test: animated-canvas-as-background.html
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::didDraw):
The observer notification was factored out into a separate method
so that it can be invoked directly for accelerated compositing.
(WebCore):
(WebCore::HTMLCanvasElement::notifyObserversCanvasChanged):
* html/HTMLCanvasElement.h:
(HTMLCanvasElement):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::didDraw):
Added observer notification call to trigger repainting of elements that
use this canvas for their style.
2012-11-30 James Simonsen <simonjam@chromium.org>
Report CSS as initiator instead of elements, except body
https://bugs.webkit.org/show_bug.cgi?id=103546
Reviewed by Tony Gentilcore.
The Resource Timing spec says the initiator should be "css" when the the load comes from a
url() rule in a stylesheet. Separately, WebKit reports <body background> as a CSS load, we
need to override that to match the spec.
Tests: http/tests/w3c/webperf/submission/resource-timing
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::cachedImage):
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::cachedImage): By default, the initiator is "css".
* css/CSSImageValue.h:
(CSSImageValue):
(WebCore::CSSImageValue::setInitiator): Allow users to manually override it (see body).
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingImage):
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::collectStyleForPresentationAttribute): Record "body" as the initiator.
2012-11-30 James Simonsen <simonjam@chromium.org>
Remember the CachedResourceRequest for preloads
https://bugs.webkit.org/show_bug.cgi?id=102995
Reviewed by Tony Gentilcore.
Without this, the initiator is lost.
Tests: http/tests/w3c/webperf/submission/resource-timing
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::loadResource):
(WebCore::CachedResourceLoader::preload):
(WebCore::CachedResourceLoader::checkForPendingPreloads):
(WebCore::CachedResourceLoader::requestPreload):
(WebCore::CachedResourceLoader::isPreloaded):
* loader/cache/CachedResourceLoader.h:
(CachedResourceLoader):
(PendingPreload):
2012-11-30 Michelangelo De Simone <michelangelo@webkit.org>
[CSS Shaders] Clamp input colors before blending
https://bugs.webkit.org/show_bug.cgi?id=98962
Reviewed by Dean Jackson.
The result of css_ColorMatrix multiplication is now clamped in [0.0, 1.0]
before the blending step.
Relevant spec section is:
http://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#shader-processing-model
Tests: css3/filters/custom/custom-filter-color-clamping-negative.html
css3/filters/custom/custom-filter-color-clamping.html
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader): Added clamping
code.
2012-11-30 Abhishek Arya <inferno@chromium.org>
Crash due to intruding float not removed after writing mode changed.
https://bugs.webkit.org/show_bug.cgi?id=100149
Reviewed by Levi Weintraub.
When RenderView writing mode changes, make sure to mark all descendants
with floats for layout.
Test: fast/block/float/intruding-float-not-removed-writing-mode.xhtml
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
2012-11-30 Florin Malita <fmalita@chromium.org>
SVG pattern data deleted while in use
https://bugs.webkit.org/show_bug.cgi?id=103415
Reviewed by Dirk Schulze.
Various calls in RenderSVGResourcePattern::applyResource() can trigger invalidations,
which may end up deleting our current pattern data (via removeAllClientsFromCache).
To avoid this, we should add the pattern data to the cache only after it is fully built.
For clarity, the patch also refactors the pattern setup code into a separate method.
Test: svg/custom/large-image-pattern-crash.html
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::buildPattern):
(WebCore::RenderSVGResourcePattern::applyResource):
* rendering/svg/RenderSVGResourcePattern.h:
(RenderSVGResourcePattern):
2012-11-30 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: It's Sass, not SASS
https://bugs.webkit.org/show_bug.cgi?id=103626
Reviewed by Yury Semikhatsky.
Change "SASS" to "Sass" in UI strings.
* English.lproj/localizedStrings.js:
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/SettingsScreen.js:
2012-11-29 Tommy Widenflycht <tommyw@google.com>
Speech Recognition API: Update SpeechRecognitionEvent/Result to match the specification
https://bugs.webkit.org/show_bug.cgi?id=103407
Reviewed by Adam Barth.
This patch does the following:
o Adds results, and removing result on SpeechRecognitionEvent
o Renaming SpeechRecognitionResult::final to isFinal
o Moving emma to SpeechRecognitionEvent from SpeechRecognitionResult
Existing tests updated to test the new API.
* Modules/speech/SpeechRecognition.cpp:
(WebCore::SpeechRecognition::start):
(WebCore::SpeechRecognition::didReceiveResults):
(WebCore):
* Modules/speech/SpeechRecognition.h:
(SpeechRecognition):
* Modules/speech/SpeechRecognitionEvent.cpp:
(WebCore::SpeechRecognitionEvent::createResult):
(WebCore):
(WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
(WebCore::SpeechRecognitionEvent::~SpeechRecognitionEvent):
(WebCore::emmaQualifiedName):
(WebCore::SpeechRecognitionEvent::emma):
* Modules/speech/SpeechRecognitionEvent.h:
(WebCore):
(SpeechRecognitionEventInit):
(SpeechRecognitionEvent):
(WebCore::SpeechRecognitionEvent::resultIndex):
(WebCore::SpeechRecognitionEvent::results):
* Modules/speech/SpeechRecognitionEvent.idl:
* Modules/speech/SpeechRecognitionResult.cpp:
* Modules/speech/SpeechRecognitionResult.h:
(WebCore::SpeechRecognitionResult::isFinal):
(SpeechRecognitionResult):
* Modules/speech/SpeechRecognitionResult.idl:
* WebCore.gypi:
* bindings/v8/custom/V8SpeechRecognitionEventCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp.
(WebCore):
(WebCore::V8SpeechRecognitionEvent::opaqueRootForGC):
2012-11-30 Simon Hausmann <simon.hausmann@digia.com>, Pierre Rossi <pierre.rossi@digia.com>
[Qt] Separate Qt WebKit into Qt WebKit and Qt WebKit Widgets
https://bugs.webkit.org/show_bug.cgi?id=99314
Reviewed by Tor Arne Vestbø.
This big change separates QtWebKit into QtWebKit and QtWebKitWidgets as
shared libraries.
It's a big refactoring that mostly involves moving WebCore dependent
code into QtWebKit and accessing it through exported QWebFrameAdapter
and QWebPageAdapter classes.
* Target.pri:
* platform/qt/QStyleFacade.h: Get rid of styleForPage function, not needed
anymore.
* platform/qt/QWebPageClient.h:
(QWebPageClient): Remove a whole lot of cruft in favour of a simple GL enabling
callback to select the GL texture mapper.
(QWebPageClient::makeOpenGLContextCurrentIfAvailable):
2012-11-30 Simon Hausmann <simon.hausmann@digia.com>
Unreviewed, rolling out r136227.
http://trac.webkit.org/changeset/136227
Broke the Qt bots due to version mismatch
* platform/graphics/gstreamer/PlatformVideoWindowQt.cpp:
(FullScreenVideoWindow::FullScreenVideoWindow):
(PlatformVideoWindow::PlatformVideoWindow):
2012-11-30 Samuel Rødal <samuel.rodal@digia.com>
[Qt] Fixed use of to-be-removed compatibility functions in QWindow.
Reviewed by Simon Hausmann.
* platform/graphics/gstreamer/PlatformVideoWindowQt.cpp:
(FullScreenVideoWindow::FullScreenVideoWindow):
(PlatformVideoWindow::PlatformVideoWindow):
2012-11-30 Arpita Bahuguna <arpitabahuguna@gmail.com>
Caret is painted horizontally in vertical writing mode when there are no visible text
https://bugs.webkit.org/show_bug.cgi?id=102359
Reviewed by Ryosuke Niwa.
In the vertical writing mode the caret rect on an empty editable box or
an empty line is rendered as per the horizontal writing mode.
This changes though when any text is added; the caret is then displayed
in accordance with the vertical writing mode.
Test: editing/selection/caret-alignment-for-vertical-text.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::localCaretRect):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::localCaretRectForEmptyElement):
The caret rect should be transposed for the vertical writing mode. Its
width and height values need to be interchanged for it to be oriented
as per the vertical text.
2012-11-30 Sankeerth V S <sankeerth.vs@samsung.com>
Web Inspector: [Timeline] JS error when clicking in Memory Statistics view
https://bugs.webkit.org/show_bug.cgi?id=103486
Reviewed by Alexander Pavlov.
The counter value can be null/undefined. Hence a check is needed
before we access the "time" property on this counter object.
No new tests required as UI related change.
* inspector/front-end/MemoryStatistics.js:
(WebInspector.MemoryStatistics.prototype._onClick):
2012-11-30 Kent Tamura <tkent@chromium.org>
Fix typos in DateTimeNumericFieldElement.cpp and DateTimeSymbolicFieldElement.cpp
https://bugs.webkit.org/show_bug.cgi?id=103717
Reviewed by Hajime Morita.
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
maximum, not maxium.
* html/shadow/DateTimeSymbolicFieldElement.cpp:
(WebCore::DateTimeSymbolicFieldElement::customStyleForRenderer): Ditto.
2012-11-30 Halton Huo <halton.huo@intel.com>
[EFL] libwebcore_efl.a fail to link when enable webgl
https://bugs.webkit.org/show_bug.cgi?id=103610
Reviewed by Gyuyoung Kim.
libwebcore_efl.a should link to X11, Xcomposite and Xrender libraries when ENABLE_WEBGL is ON
No new tests, no behavior change for layout tests.
* PlatformEfl.cmake: Append ${X11_X11_LIB}, ${X11_Xcomposite_LIB} and ${X11_Xrender_LIB} to WebCore_LIBRARIES
2012-11-30 Tim Horton <timothy_horton@apple.com>
Unreviewed, fix the PDFPlugin build after http://trac.webkit.org/changeset/136205.
* WebCore.xcodeproj/project.pbxproj:
2012-11-30 Mihai Maerean <mmaerean@adobe.com>
[CSSRegions] when WebKit uses V8, there should be a single variable to store if the CSS Regions feature is enabled
https://bugs.webkit.org/show_bug.cgi?id=101192
Reviewed by Hajime Morita.
Removed the CSS Regions flag in Settings and switched to using the new flag I have added in RuntimeEnabledFeatures.
Tests: No new tests because there is no functional change.
* WebCore.exp.in:
* WebCore.vcproj/copyForwardingHeaders.cmd:
* WebCore.xcodeproj/project.pbxproj:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures):
(WebCore::RuntimeEnabledFeatures::setCSSRegionsEnabled):
(WebCore::RuntimeEnabledFeatures::cssRegionsEnabled):
* dom/Document.cpp:
(WebCore::Document::cssRegionsEnabled):
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
(Settings):
2012-11-29 Martin Robinson <mrobinson@igalia.com>
[GTK] [WebKit2] WebKitWebViewBase creates a GL context for the redirected XComposite window crashing WebKit in Xvfb
https://bugs.webkit.org/show_bug.cgi?id=103476
Reviewed by Alejandro G. Castro.
Allow creation of RedirectedXCompositeWindow in a mode which does not have a backing
GLContext. For WebKit2 the GLContext is always in the WebProcess. Creating the GLContext
in both processes can cause crashes when library is run in Xvfb.
No new tests. This fixes a crash running tests on some systems.
* platform/gtk/RedirectedXCompositeWindow.cpp:
(WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
(WebCore::RedirectedXCompositeWindow::resize): Do not create the GLContext when
in the new no-GLContext mode.
(WebCore::RedirectedXCompositeWindow::context): ASSERT that we are not in
no-GLContext mode.
2012-11-29 Keishi Hattori <keishi@webkit.org>
Better type ahead for DateTimeSymbolicFieldElement
https://bugs.webkit.org/show_bug.cgi?id=103031
Reviewed by Kent Tamura.
This cuts out the type ahead code that will be used by HTMLSelectElement
and DateTimeSymbolicFieldElement into a TypeAhead class. This will
improve DateTimeSymbolicFieldElement type ahead which was first
character match only, by adding cycling, prefix match and index number
match.
Added tests to month-multiple-fields-keyboard-events.html.
* GNUmakefile.list.am: Added TypeAhead.{h,cpp}
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* CMakeLists.txt: Ditto.
* html/HTMLSelectElement.cpp:
(WebCore):
(WebCore::HTMLSelectElement::HTMLSelectElement):
(WebCore::HTMLSelectElement::indexOfSelectedOption): Returns index of current selection.
(WebCore::HTMLSelectElement::optionCount): Returns total number of options.
(WebCore::HTMLSelectElement::optionAtIndex): Returns option at index.
(WebCore::HTMLSelectElement::typeAheadFind): Use TypeAhead.
* html/HTMLSelectElement.h:
(HTMLSelectElement):
* html/TypeAhead.cpp: Added.
(WebCore):
(WebCore::TypeAhead::TypeAhead):
(WebCore::stripLeadingWhiteSpace): Moved from HTMLSelectElement.cpp.
(WebCore::TypeAhead::handleEvent): Returns index for match.
* html/TypeAhead.h: Added.
(WebCore):
(TypeAheadDataSource): Provide the data about the options that TypeAhead should match against.
(TypeAhead):
* html/shadow/DateTimeSymbolicFieldElement.cpp:
(WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
(WebCore::DateTimeSymbolicFieldElement::handleKeyboardEvent):
(WebCore::DateTimeSymbolicFieldElement::indexOfSelectedOption):
(WebCore):
(WebCore::DateTimeSymbolicFieldElement::optionCount):
(WebCore::DateTimeSymbolicFieldElement::optionAtIndex):
* html/shadow/DateTimeSymbolicFieldElement.h:
(DateTimeSymbolicFieldElement):
2012-11-29 Rafael Weinstein <rafaelw@chromium.org>
[HTMLTemplateElement] Add feature flag
https://bugs.webkit.org/show_bug.cgi?id=103694
Reviewed by Adam Barth.
This flag will guard the implementation of the HTMLTemplateElement.
http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.features.am:
2012-11-29 Viatcheslav Ostapenko <v.ostapenko@samsung.com>
Fix typo in commit 136189
https://bugs.webkit.org/show_bug.cgi?id=103706
Reviewed by Kentaro Hara.
Because of typo in commit 136189 blue color value was set twice for every pixel.
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::setPixel):
2012-11-29 Elliott Sprehn <esprehn@chromium.org>
Node::isDescendantOf contains logic that duplicates isDocumentNode
https://bugs.webkit.org/show_bug.cgi?id=103698
Reviewed by Hajime Morita.
Instead of checking for documents with node->document() == node just
use node->isDocumentNode().
* dom/Node.cpp:
(WebCore::Node::isDescendantOf):
2012-11-29 Alexey Proskuryakov <ap@apple.com>
[WK2] Forward cookie jar calls to NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=103457
Reviewed by Darin Adler.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
PlatformCookieJar.h functions are now used in WebKit2.
* loader/CookieJar.cpp:
(WebCore::cookies):
(WebCore::setCookies):
(WebCore::cookiesEnabled):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::getRawCookies):
(WebCore::deleteCookie):
(WebCore::getHostnamesWithCookies):
(WebCore::deleteCookiesForHostname):
(WebCore::deleteAllCookies):
Use a strategy instead of going to PlatformCookieJar directly.
* platform/Cookie.h: (Cookie): Added a default constructor, so that Cookie could be
sent over IPC.
* platform/CookiesStrategy.h: Added functions for cookie jar.
2012-11-29 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136167.
http://trac.webkit.org/changeset/136167
https://bugs.webkit.org/show_bug.cgi?id=103701
Win debug build failure (Requested by zhenyao on #webkit).
* platform/graphics/chromium/LazyDecodingPixelRef.cpp:
(WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
* platform/graphics/chromium/LazyDecodingPixelRef.h:
(LazyDecodingPixelRef):
2012-11-29 David Grogan <dgrogan@chromium.org>
IndexedDB: Propagate more leveldb errors to script
https://bugs.webkit.org/show_bug.cgi?id=103580
Reviewed by Tony Chang.
LevelDBDatabase used a single return value to indicate both I/O problems
and a missing key. Now an out variable is used to indicate if the
requested key was found. The return value is used to report corruption
or disk error.
This is a small step toward propagating low level errors everywhere
possible. So far only one scenario will newly cause script to receive
an error: when leveldb has trouble looking for existing keys during an
objectstore->add.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::getInt):
(WebCore::getVarInt):
(WebCore::getString):
(WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::keyExistsInObjectStore):
* Modules/indexeddb/IDBBackingStore.h:
(IDBBackingStore):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::generateKey):
(WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(IDBObjectStoreBackendImpl):
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::LevelDBDatabase::safeGet):
* platform/leveldb/LevelDBDatabase.h:
(LevelDBDatabase):
* platform/leveldb/LevelDBTransaction.cpp:
(WebCore::LevelDBTransaction::safeGet):
(WebCore):
(WebCore::LevelDBTransaction::get):
* platform/leveldb/LevelDBTransaction.h:
(LevelDBTransaction):
2012-11-29 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136171.
http://trac.webkit.org/changeset/136171
https://bugs.webkit.org/show_bug.cgi?id=103695
Likely caused ReOpenedWithID and ReOpenedWithURL to fail in
linux/chromeos (Requested by zhenyao on #webkit).
* inspector/InspectorClient.h:
(WebCore::InspectorClient::startMainThreadMonitoring):
(WebCore::InspectorClient::stopMainThreadMonitoring):
* inspector/InspectorController.cpp:
* inspector/InspectorController.h:
(InspectorController):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willProcessTaskImpl):
(WebCore::InspectorInstrumentation::didProcessTaskImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::willProcessTask):
(WebCore):
(WebCore::InspectorInstrumentation::didProcessTask):
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::stop):
2012-11-29 Viatcheslav Ostapenko <v.ostapenko@samsung.com>
Optimization in image decoding.
https://bugs.webkit.org/show_bug.cgi?id=88424
Reviewed by Brent Fulgham.
Reduce branching and multiplications in JPEG image decoding loops and functions.
Code is moved to the template functions with scale and color space template parameters
because they were reason of branches inside loops. With templated funtions compiler
will generate separate instance of function for every set of parameters removing
unreachable code in every condition where constant value is used.
Rebase and update of original patch by Misha Tyutyunik <michael.tyuytunik@nokia.com> .
Thanks to Noel Gordon for his help in cleaning up remaining issues.
Covered by existing tests.
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore):
(WebCore::setPixel):
(WebCore::JPEGImageDecoder::outputScanlines):
* platform/image-decoders/jpeg/JPEGImageDecoder.h:
(JPEGImageDecoder):
2012-11-29 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r135862.
http://trac.webkit.org/changeset/135862
https://bugs.webkit.org/show_bug.cgi?id=103367
We've been observing 'Fatal error in
v8::V8::AddMessageListener()' in bots
* bindings/v8/V8Binding.cpp:
(WebCore::v8NonStringValueToWebCoreString):
* bindings/v8/V8StringResource.cpp:
(WebCore::int32ToWebCoreStringFast):
(WebCore::int32ToWebCoreString):
* bindings/v8/V8StringResource.h:
(WebCore::V8StringResource::V8StringResource):
(WebCore::V8StringResource::prepareBase):
(WebCore::V8StringResource::setString):
(V8StringResource):
(WebCore::V8StringResource::toString):
(WebCore::::prepare):
2012-11-29 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: optimize repaint regions upon text editing
https://bugs.webkit.org/show_bug.cgi?id=103674
Reviewed by Vsevolod Vlasov.
There is a lot happening that makes repaint area larger than it should be,
namely unnecessary tabbed pane and navigator updates.
* inspector/front-end/NavigatorView.js:
(WebInspector.NavigatorView.prototype._updateScriptTitle):
* inspector/front-end/TabbedPane.js:
(WebInspector.TabbedPaneTab.prototype.set title):
2012-11-29 KyungTae Kim <ktf.kim@samsung.com>
Unused parameters on plugins/npapi.cpp
https://bugs.webkit.org/show_bug.cgi?id=103676
Reviewed by Kentaro Hara.
Because 'instance' and 'menu' are not used when !PLATFORM(QT) || !defined(XP_MACOSX),
use UNUSED_PARAM macro to fix build warning -Wunused-parameter
* plugins/npapi.cpp:
(NPN_PopUpContextMenu):
2012-11-29 Pablo Flouret <pablof@motorola.com>
REGRESSION(r134693): Compilation error on @supports grammar code
https://bugs.webkit.org/show_bug.cgi?id=103678
Reviewed by Tony Chang.
Coming from https://bugs.webkit.org/show_bug.cgi?id=102295
No new tests, compile fix.
* css/CSSGrammar.y.in:
2012-11-29 Simon Fraser <simon.fraser@apple.com>
Avoid painting lots of small rects in WebLayer painting
https://bugs.webkit.org/show_bug.cgi?id=103673
Reviewed by Tim Horton.
r109186 added code in drawLayerContents() to enumerate over the rects in
the CALayer's dirty region, and paint them individually. This was done
to help performance on the IE Maze Solver test.
On large, complex pages like Facebook, the overhead of traversing the
RenderLayer tree for painting is such that it's better to paint a single,
or fewer rects rather than lots of little ones.
So adopt a heuristic similar to that in DrawingArea, where if the
combined area of the small rects is 75% or more of the combined rect,
just paint the combined rect. Also paint the combined rect if there
are more than 5 individual rects.
I verified that this preserves the optimization for IE Maze Solver.
* platform/graphics/mac/WebLayer.mm:
(drawLayerContents):
2012-11-29 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: Web Inspector: Make main-thread monitoring go through InspectorController.
https://bugs.webkit.org/show_bug.cgi?id=103550
Reviewed by Pavel Feldman.
InspectorInstrumentation was a wrong path.
* inspector/InspectorClient.h: Remove start/stop methods.
* inspector/InspectorController.cpp:
Dispatch main thread activity notifications.
* inspector/InspectorController.h: Ditto.
* inspector/InspectorInstrumentation.cpp: Remove dispatching.
* inspector/InspectorInstrumentation.h: Ditto.
* inspector/InspectorTimelineAgent.cpp:
Do not subscribe for notifications explicitly.
2012-11-29 Adam Barth <abarth@webkit.org>
[V8] DOM callbacks shouldn't reimplement ScopedPersistent they should use it
https://bugs.webkit.org/show_bug.cgi?id=103662
Reviewed by Eric Seidel.
This patch replaces yet another instance of the ScopedPersistent
pattern with ScopedPersistent.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateCallbackHeader):
(GenerateCallbackImplementation):
* bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
(WebCore::V8SQLStatementErrorCallback::handleEvent):
* bindings/v8/custom/V8MutationCallbackCustom.cpp:
(WebCore::V8MutationCallback::handleEvent):
2012-11-29 Min Qin <qinmin@chromium.org>
Make LazyDecodingPixelRef inherit from skia::LazyPixelRef so that cc thread can access it
https://bugs.webkit.org/show_bug.cgi?id=103555
Reviewed by Stephen White.
Expose LazyDecodingPixelRef to the cc thread by inheriting from skia::LazyPixelRef.
No test added for now as impl side paiting is still WIP.
* platform/graphics/chromium/LazyDecodingPixelRef.cpp:
(WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
(WebCore::LazyDecodingPixelRef::PrepareToDecode):
(WebCore):
(WebCore::LazyDecodingPixelRef::Decode):
* platform/graphics/chromium/LazyDecodingPixelRef.h:
(LazyDecodingPixelRef):
2012-11-29 Julien Chaffraix <jchaffraix@webkit.org>
Unreviewed build fix.
* WebCore.gypi:
The new file is GridTrackSize.h not GridTrackSizes.h. For some reason, the
EWS didn't complain.
2012-11-29 John Knottenbelt <jknotten@chromium.org>
Use GeolocationController's last geoposition as cached position.
https://bugs.webkit.org/show_bug.cgi?id=103540
Reviewed by Benjamin Poulain.
The page's GeolocationController mediates access to the
GeolocationClient for multiple frames' Geolocation instances. This
patch changes the position cache to be on the GeolocationController
rather than on the Geolocation instance.
This fixes a bug where if one frame has has received a fresh
position, then a request for a cached position from a second frame
does not succeed because the Geolocation instance in the second
frame's position cache hasn't received the position update that
went to the first frame.
Test: fast/dom/Geolocation/cached-position-iframe.html
* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::makeCachedPositionCallbacks):
(WebCore::Geolocation::haveSuitableCachedPosition):
(WebCore::Geolocation::positionChanged):
* Modules/geolocation/Geolocation.h:
* Modules/geolocation/GeolocationController.h:
(GeolocationController):
2012-11-29 Alexei Filippov <alph@chromium.org>
Web Inspector: Allow sorting in NMI snapshot grid view
https://bugs.webkit.org/show_bug.cgi?id=102955
Reviewed by Yury Semikhatsky.
* English.lproj/localizedStrings.js:
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeSnapshotDataGrid.prototype.sortingChanged):
(WebInspector.NativeSnapshotDataGrid.prototype._sortingFunction):
(WebInspector.NativeSnapshotNode):
(WebInspector.NativeSnapshotNode.prototype._storeState):
(WebInspector.NativeSnapshotNode.prototype._restoreState):
(WebInspector.NativeSnapshotNode.prototype.uid):
(WebInspector.NativeSnapshotNode.prototype._createSizeCell):
2012-11-29 Martin Robinson <mrobinson@igalia.com>
[GTK] [WebKit2] Embed the HTTP authentication dialog into the WebView
https://bugs.webkit.org/show_bug.cgi?id=103277
Reviewed by Carlos Garcia Campos.
Refactor the WebCore authentication dialog so that it can be reused for the WebKit2
embedded authentication dialog. The main purpose of this refactor is so that the
dialog does not rely on GtkDialog to add the action buttons to the dialog itself.
This also simplifies the structure of the dialog, using the GtkTable or GtkGrid to
contain more of the widget elements, greatly simplifying this code. We also expose
a new constructor that does not create the parent GtkDialog -- so that WebKit2
can embed the dialog directly into the WebView.
No new tests. This shouldn't change behavior, only slightly the look of the authentication
dialog.
* platform/gtk/GtkAuthenticationDialog.cpp:
(WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog): Added this new constructor
which does not add the dialog contents to a GtkDialog.
(WebCore::packTwoColumnLayoutInBox): Added this generic method for creating a two column
layout in the style the dialog box needs (for both GTK+ 2.x and GTK+ 3.x).
(WebCore::createDialogLabel): Added this helper.
(WebCore::createDialogEntry): ditto.
(WebCore::GtkAuthenticationDialog::createContentsInContainer): Added this method which
can be used by subclasses to add the guts of the dialog to the parent container.
(WebCore::GtkAuthenticationDialog::show): Added some focus/default handling code that
GtkDialog was calling before.
(WebCore::GtkAuthenticationDialog::buttonClickedCallback): Added a button clicked handler.
Before GtkDialog handled this.
* platform/gtk/GtkAuthenticationDialog.h: Updated methods to reflect new functionality.
(WebCore::GtkAuthenticationDialog::~GtkAuthenticationDialog): Inline the default constructor.
2012-11-29 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=103577
TiledDrawingArea should recycle tiles
-and corresponding-
<rdar://problem/12714586>
Reviewed by Simon Fraser.
New class LayerPool will keep a list of layers to reuse so that
we can avoid creating and destroying so many layer.
When removing layers, add them to the LayerPool
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::revalidateTiles):
Before creating a new layer, try to get one of the appropriate size
from the LayerPool.
(WebCore::TileCache::createTileLayer):
New class.
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/ca/mac/LayerPool.h: Added.
(WebCore):
(LayerPool):
(WebCore::LayerPool::capacity):
(WebCore::LayerPool::canReuseLayerWithSize):
* platform/graphics/ca/mac/LayerPool.mm: Added.
(WebCore):
(WebCore::LayerPool:: LayerPool):
(WebCore::LayerPool::sharedPool):
(WebCore::LayerPool::bytesBackingLayerWithPixelSize):
(WebCore::LayerPool::listOfLayersWithSize):
(WebCore::LayerPool::addLayer):
(WebCore::LayerPool::takeLayerWithSize):
(WebCore::LayerPool::decayedCapacity):
(WebCore::LayerPool::schedulePrune):
(WebCore::LayerPool::prune):
(WebCore::LayerPool::drain):
If we're under memory pressure, drain the LayerPool
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::releaseMemory):
2012-11-29 Julien Chaffraix <jchaffraix@webkit.org>
[CSS Grid Layout] track sizing functions should have their own type
https://bugs.webkit.org/show_bug.cgi?id=103343
Reviewed by Tony Chang.
The current code uses a Length to represent the track sizing function. This is
fine as we only parse <length> | <percentage> but in order to support minmax
sizing, we have to store 2 Lengths. We could go with a pair but that would make
the code not very readable so this change introduces GridTrackSize.
Refactoring, covered by existing tests.
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Added GridTrackSize.h to all our build systems.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackBreadth):
(WebCore::valueForGridTrackList):
* css/StyleResolver.cpp:
(WebCore::createGridTrackBreadth):
(WebCore::createGridTrackList):
(WebCore::StyleResolver::applyProperty):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computePreferredLogicalWidths):
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
* rendering/style/RenderStyle.h:
Updated the above call sites to use GridTrackSize. While
touching them, changed the code to use an empty Vector to represent
'none' instead of Length(Undefined).
* rendering/style/StyleGridData.h:
Updated #include, removed a comment as it would have gone stale after
adding more grammar support and added a FIXME to rename some variables.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutGridItems):
Implemented a work-around to avoid crashing due to implicit columns / rows.
* rendering/style/GridTrackSize.h: Added.
(WebCore::GridTrackSize::GridTrackSize):
(WebCore::GridTrackSize::length):
(WebCore::GridTrackSize::setLength):
(WebCore::GridTrackSize::type):
(WebCore::GridTrackSize::operator==):
New class, it now only wraps a single Length.
2012-11-29 Helder Correia <helder.correia@nokia.com>
Typo in Color creation function name
https://bugs.webkit.org/show_bug.cgi?id=103464
Reviewed by Alexey Proskuryakov.
Renaming createUnCheked() as createUnchecked().
No new tests.
* platform/graphics/Color.cpp:
(WebCore::colorFromPremultipliedARGB):
* platform/graphics/Color.h:
(WebCore::Color::createUnchecked):
2012-11-29 Otto Derek Cheung <otcheung@rim.com>
[BlackBerry] Cookies in private mode should not have access to public cookies
https://bugs.webkit.org/show_bug.cgi?id=103649
Reviewed by Rob Buis.
PR 253983
When CookieManager switches back from public to private mode,
we will clear the cookie tree so the browser won't have access
to the public cookies.
Tested using browser.swlab.rim.net cookie tests and the steps in
the PR.
* platform/blackberry/CookieManager.cpp:
(WebCore::CookieManager::setPrivateMode):
2012-11-29 Brent Fulgham <bfulgham@gmail.com>
Be consistent in handling of frameAtIndex (and related) returns.
https://bugs.webkit.org/show_bug.cgi?id=103207
Reviewed by David Hyatt.
Under various conditions, frameAtIndex (and therefore,
nativeImageForCurrentFrame) returns null. A series of bugs over
the years has ensured null returns are handled in some cases,
but there are a handful of remaining cases where this is still a
problem.
No new tests, as these low-level functions are covered by
numerous existing test cases.
2012-11-29 David Hyatt <hyatt@apple.com>
[New Multicolumn] Add minimum column height tracking and forced break tracking to column sets.
https://bugs.webkit.org/show_bug.cgi?id=103657
Reviewed by Simon Fraser.
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
* rendering/RenderMultiColumnSet.h:
(WebCore::RenderMultiColumnSet::updateMinimumColumnHeight):
(WebCore::RenderMultiColumnSet::minimumColumnHeight):
(RenderMultiColumnSet):
(WebCore::RenderMultiColumnSet::forcedBreaksCount):
(WebCore::RenderMultiColumnSet::forcedBreakOffset):
(WebCore::RenderMultiColumnSet::maximumDistanceBetweenForcedBreaks):
(WebCore::RenderMultiColumnSet::clearForcedBreaks):
(WebCore::RenderMultiColumnSet::addForcedBreak):
2012-11-29 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: introduce fast case for within-chunk edit
https://bugs.webkit.org/show_bug.cgi?id=103545
Reviewed by Vsevolod Vlasov.
Special-casing edits within the chunk for faster operation.
* inspector/front-end/DOMExtension.js:
(removeSubsequentNodes):
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
2012-11-29 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: Console: hovering node wrappers in object tree should highlight them on the page
https://bugs.webkit.org/show_bug.cgi?id=101150
Reviewed by Vsevolod Vlasov.
- Introduced a way to highlight nodes by object id in addition to node id.
- Decorated nodes in the object tree outline and added on-hover highlighting.
* inspector/Inspector.json:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::highlightNode):
* inspector/InspectorDOMAgent.h:
(InspectorDOMAgent):
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreview):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMAgent.prototype.highlightDOMNode):
* inspector/front-end/DOMPresentationUtils.js:
(WebInspector.DOMPresentationUtils.createSpansForNodeTitle):
* inspector/front-end/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertyTreeElement.prototype.update):
(WebInspector.ObjectPropertyTreeElement.prototype._mouseMove):
(WebInspector.ObjectPropertyTreeElement.prototype._mouseOut):
* inspector/front-end/RemoteObject.js:
(WebInspector.RemoteObject.prototype.highlightAsDOMNode):
(WebInspector.RemoteObject.prototype.hideDOMNodeHighlight):
* inspector/front-end/TestController.js:
* inspector/front-end/externs.js:
* inspector/front-end/inspector.css:
(.console-formatted-node:hover):
* inspector/front-end/utilities.js:
2012-11-29 Dan Bernstein <mitz@apple.com>
<rdar://problem/12771885> Support ruby-position: {before, after}
https://bugs.webkit.org/show_bug.cgi?id=103569
Reviewed by Anders Carlsson.
Specified in <http://www.w3.org/TR/2011/WD-css3-ruby-20110630/#rubypos>, the ruby-position
property takes four values: before, after, inter-character, and inline. This change adds
support for the values before and after.
Test: fast/ruby/position-after.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Handle ruby-position.
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue): Accept before and after as valid values for
ruby-position.
(WebCore::isKeywordPropertyID): Added ruby-position to the list of properties with keyword
values.
(WebCore::CSSParser::parseValue): Added ruby-position to the switch statement.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added mapping from RubyPosition.
(WebCore::CSSPrimitiveValue::operator RubyPosition): Added mapping from CSSPrimitiveValue.
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty): Added ruby-position as an inherited property.
* css/CSSPropertyNames.in: Added -webkit-ruby-position.
* css/CSSValueKeywords.in: Added after and before.
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder): Added a handler for ruby-position.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty): Added ruby-position.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesInBlockDirection): Changed to choose which of
hasAnnotationsBefore and hasAnnotationsAfter to set based on ruby position.
(WebCore::InlineFlowBox::computeOverAnnotationAdjustment): Changed to adjust only for
ruby positioned before the base.
(WebCore::InlineFlowBox::computeUnderAnnotationAdjustment): Added adjustment for ruby
positioned after the base.
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::layout): Account for ruby-position when positioning the ruby text
relative to the base.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff): Made a ruby-position difference a layout difference.
* rendering/style/RenderStyle.h: Added rubyPosition(), setRubyPosition(), and
initialRubyPosition().
* rendering/style/RenderStyleConstants.h: Added the RubyPosition enum.
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData): Added initialized for
m_rubyPosition. Added copying the value of this member to the copy constructor.
(WebCore::StyleRareInheritedData::operator==): Added comparison of m_rubyPosition.
* rendering/style/StyleRareInheritedData.h:
(StyleRareInheritedData): Added m_rubyPosition member variable.
2012-11-29 Tiancheng Jiang <tijiang@rim.com>
[BlackBerry] Update BB10 form theme.
https://bugs.webkit.org/show_bug.cgi?id=100760
Reviewed by Rob Buis.
Internally Reviewed by Eli Fidler.
Set text color after buttons are pressed.
* css/themeBlackBerry.css:
(input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]:active::-webkit-file-upload-button, button:active):
(select:active):
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore):
(WebCore::RenderThemeBlackBerry::paintButton):
(WebCore::RenderThemeBlackBerry::paintMenuList):
2012-11-29 Zeno Albisser <zeno@webkit.org>
GraphicsSurfaceGLX: remove redundant parameter from resolveGLMethods.
https://bugs.webkit.org/show_bug.cgi?id=103636
Reviewed by Kenneth Rohde Christiansen.
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore::resolveGLMethods):
(WebCore::GraphicsSurface::platformCreate):
(WebCore::GraphicsSurface::platformImport):
2012-11-29 Mike West <mkwst@chromium.org>
Typo in 'autofocus' sandboxing error message.
https://bugs.webkit.org/show_bug.cgi?id=103616
Reviewed by Jochen Eisinger.
The sandbox attribute name is 'allow-scripts', not 'allow-script'. :(
* html/HTMLFormControlElement.cpp:
(WebCore::shouldAutofocus):
2012-11-29 Hajime Morrita <morrita@google.com>
HTMLMediaElement's .textTracks property does not reflect <track> element
https://bugs.webkit.org/show_bug.cgi?id=103420
Reviewed by Eric Carlson.
There were some assumptions that <track> elements are valid only
if the parent <media> is in document. This change relaxes this
assumption so that <track> is valid when it has <media> as a
parent regardless whether the <media> is in the document or not.
HTMLMediaElement::didAddTrack and didRemoveTrack are now called
when the <track> is inserted to or removed from the parent <media>
element.
Test: media/track/track-node-add-remove.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::didRemoveTrack):
Renamed from willRemoveTrack() to reflect the timing. This was once called from
Node::willRemove(), which was removed a while ago.
* html/HTMLMediaElement.h:
(HTMLMediaElement):
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::insertedInto):
The old code notified parent <media> only if the subtree became a part of the document.
Now it notifies the <media> when this <track> becomes a child of that <media>.
(WebCore::HTMLTrackElement::removedFrom):
The old code notifies the parent <media> every time as long as the parent is available.
Now it notifies the <media> only if this <track> is removed from the parent <media>.
This matches how corresponding notification is done in insertedInto().
* html/track/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::trackElementIndex):
2012-11-29 Florin Malita <fmalita@chromium.org>
[Skia] Add missing OpaqueRegionSkia notifier calls
https://bugs.webkit.org/show_bug.cgi?id=102824
Reviewed by Stephen White.
http://trac.webkit.org/changeset/135390 exposed some canvas draw clients which are not
updating the opaque region tracker. This patch adds the required notifier calls.
No new tests: platform unit tests added.
* platform/graphics/skia/OpaqueRegionSkia.h:
(OpaqueRegionSkia):
* platform/graphics/skia/PlatformContextSkia.h:
(WebCore::PlatformContextSkia::writePixels):
(WebCore::PlatformContextSkia::drawBitmap):
(WebCore::PlatformContextSkia::drawBitmapRect):
(WebCore::PlatformContextSkia::drawIRect):
(WebCore::PlatformContextSkia::drawPosText):
(WebCore::PlatformContextSkia::drawPosTextH):
(WebCore::PlatformContextSkia::drawTextOnPath):
2012-11-29 Andy Shaw <andy.shaw@digia.com>
[Qt] Implement support for Cocoa based NPAPI plugins on Mac
https://bugs.webkit.org/show_bug.cgi?id=72358
Reviewed by Simon Hausmann.
With later versions of Flash they are only Cocoa based which meant that it was not possible to use Flash in a QtWebKit browser.
This makes it possible to also use 64bit based plugins too.
* plugins/PluginPackage.cpp:
(WebCore::PluginPackage::initializeBrowserFuncs):
(WebCore):
* plugins/PluginQuirkSet.h:
* plugins/PluginView.cpp:
(WebCore::PluginView::handleEvent):
(WebCore::PluginView::PluginView):
(WebCore):
(WebCore::PluginView::userAgent):
* plugins/PluginView.h:
(WebCore):
(PluginView):
* plugins/mac/PluginPackageMac.cpp:
(WebCore::PluginPackage::determineQuirks):
(WebCore::PluginPackage::fetchInfo):
* plugins/mac/PluginViewMac.mm:
(WebCore):
(WebCore::initializeNPCocoaEvent):
(WebCore::getModifiers):
(WebCore::PluginView::platformStart):
* plugins/npapi.cpp:
(NPN_PopUpContextMenu):
* plugins/npapi.h:
2012-11-29 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r136111.
http://trac.webkit.org/changeset/136111
https://bugs.webkit.org/show_bug.cgi?id=103620
Broke compilation on Mac (unused private field m_matchMode)
(Requested by apavlov on #webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLSelectElement.cpp:
(WebCore):
(WebCore::HTMLSelectElement::HTMLSelectElement):
(WebCore::stripLeadingWhiteSpace):
(WebCore::HTMLSelectElement::typeAheadFind):
* html/HTMLSelectElement.h:
(HTMLSelectElement):
* html/TypeAhead.cpp: Removed.
* html/TypeAhead.h: Removed.
* html/shadow/DateTimeSymbolicFieldElement.cpp:
(WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
(WebCore::DateTimeSymbolicFieldElement::handleKeyboardEvent):
* html/shadow/DateTimeSymbolicFieldElement.h:
(DateTimeSymbolicFieldElement):
2012-11-29 Keishi Hattori <keishi@webkit.org>
Better type ahead for DateTimeSymbolicFieldElement
https://bugs.webkit.org/show_bug.cgi?id=103031
Reviewed by Kent Tamura.
This cuts out the type ahead code that will be used by HTMLSelectElement
and DateTimeSymbolicFieldElement into a TypeAhead class. This will
improve DateTimeSymbolicFieldElement type ahead which was first
character match only, by adding cycling, prefix match and index number
match.
Added tests to month-multiple-fields-keyboard-events.html.
* GNUmakefile.list.am: Added TypeAhead.{h,cpp}
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* CMakeLists.txt: Ditto.
* html/HTMLSelectElement.cpp:
(WebCore):
(WebCore::HTMLSelectElement::HTMLSelectElement):
(WebCore::HTMLSelectElement::indexOfSelectedOption): Returns index of current selection.
(WebCore::HTMLSelectElement::optionCount): Returns total number of options.
(WebCore::HTMLSelectElement::optionAtIndex): Returns option at index.
(WebCore::HTMLSelectElement::typeAheadFind): Use TypeAhead.
* html/HTMLSelectElement.h:
(HTMLSelectElement):
* html/TypeAhead.cpp: Added.
(WebCore):
(WebCore::TypeAhead::TypeAhead):
(WebCore::stripLeadingWhiteSpace): Moved from HTMLSelectElement.cpp.
(WebCore::TypeAhead::handleEvent): Returns index for match.
* html/TypeAhead.h: Added.
(WebCore):
(TypeAheadDataSource): Provide the data about the options that TypeAhead should match against.
(TypeAhead):
* html/shadow/DateTimeSymbolicFieldElement.cpp:
(WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
(WebCore::DateTimeSymbolicFieldElement::handleKeyboardEvent):
(WebCore::DateTimeSymbolicFieldElement::indexOfSelectedOption):
(WebCore):
(WebCore::DateTimeSymbolicFieldElement::optionCount):
(WebCore::DateTimeSymbolicFieldElement::optionAtIndex):
* html/shadow/DateTimeSymbolicFieldElement.h:
(DateTimeSymbolicFieldElement):
2012-11-29 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Fix content node renderers ordering inside the named flow thread
https://bugs.webkit.org/show_bug.cgi?id=103501
Reviewed by David Hyatt.
This patch fixes two issues with how content nodes renderers are added to a named flow thread.
The first issue was about determining the insertion position of a renderer inside the children list of a named flow thread. Before this patch, the
insertion point was based on both the DOM ordering of the elements and insertion order of previous renderers.
The patch fixes this and makes the renderer position just a function of the DOM ordering of elements.
The second issue appeared when next/previousRenderer methods were skipping nodes because they had the flow-into property as a side effect
of copying the style of the parent element (e.g. Text nodes). The patch ensures the skipped nodes are also elements.
Tests: fast/regions/named-flow-content-order-1.html
fast/regions/named-flow-content-order-2.html
fast/regions/named-flow-content-order-3.html
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::nextRenderer): Skip only elements.
(WebCore::NodeRenderingContext::previousRenderer): Skip only elements.
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::addFlowChild): Insert the renderer in the list based on the DOM position of the owner element.
* rendering/RenderNamedFlowThread.h:
(RenderNamedFlowThread):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::renderNamedFlowThreadWrapper): Rename to eliminate the confusion with enclosingRenderFlowThread.
(WebCore::RenderObject::insertedIntoTree):
(WebCore::RenderObject::willBeRemovedFromTree):
* rendering/RenderObject.h:
(RenderObject):
2012-11-28 Mike West <mkwst@chromium.org>
Add a test to ensure that 'seamless' iframes do not inherit contenteditable.
https://bugs.webkit.org/show_bug.cgi?id=95890
Reviewed by Ojan Vafai.
We don't currently support inheriting contenteditable into a seamless
frame. http://html5.org/tools/web-apps-tracker?from=7318&to=7319
brought the spec in line with WebKit's behavior (ha!). This patch
defends the behavior by adding a test, and removes a FIXME comment
now that the question is settled.
It also exposes a brand new bug: https://bugs.webkit.org/show_bug.cgi?id=103539
How exciting.
Test: fast/frames/seamless/seamless-contenteditable-not-inherited.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::styleForDocument):
No functional change, just dropping a FIXME comment.
2012-11-28 Mike West <mkwst@chromium.org>
Web Inspector: Console message's anchor element should be trimmed for readability.
https://bugs.webkit.org/show_bug.cgi?id=100095
Reviewed by Pavel Feldman.
We're currently trimming URLs that go through
'WebInspector.linkifyURLAsNode' down to 150 characters total. Not all
URLs go that path, however. We were missing a few cases that dropped
back to the default Linkifier (which especially showed up for "Live"
anchor elements).
This patch ensures that anything using WebInspector.Linkifier is also
trimmed by default. It adds a new constant to do so in order to avoid
magic numbers in the code.
Test: http/tests/inspector/network/script-as-text-loading-long-url.html
* inspector/front-end/Linkifier.js:
(WebInspector.Linkifier):
Pass the max length into the default formatter that's created and
stored when creating a 'WebInspector.Linkifier' object.
* inspector/front-end/ResourceUtils.js:
(WebInspector.linkifyURLAsNode):
Use the new maxlength constant rather than hard-coding 150.
2012-11-28 Kentaro Hara <haraken@chromium.org>
Unreviewed. Rebaselined run-bindings-tests.
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::toV8Fast):
2012-11-28 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] ShadowRoot should cache InsertionPointList.
https://bugs.webkit.org/show_bug.cgi?id=103212
Reviewed by Hajime Morita.
When distributing or invalidating distribution, we used to traverse all descendent nodes in Shadow DOM.
If ShadowRoot has a InsertionPoint list, we can just traverse the list.
No new tests, should be covered by existing tests.
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::insertionPointList):
(WebCore):
* dom/ShadowRoot.h:
(ShadowRoot):
* html/shadow/ContentDistributor.cpp:
(WebCore::ShadowRootContentDistributionData::ShadowRootContentDistributionData):
(WebCore::ShadowRootContentDistributionData::invalidateInsertionPointList):
(WebCore):
(WebCore::ShadowRootContentDistributionData::ensureInsertionPointList): Creates InsertionPoint list
if it's not created and return it.
(WebCore::ContentDistributor::distribute): Traverse InsertionPointList instead of all descendent nodes in Shadow DOM.
(WebCore::ContentDistributor::invalidate): ditto.
* html/shadow/ContentDistributor.h:
(WebCore::ShadowRootContentDistributionData::incrementNumberOfShadowElementChildren): Invalidate InsertionPointList cache.
(WebCore::ShadowRootContentDistributionData::decrementNumberOfShadowElementChildren): ditto.
(WebCore::ShadowRootContentDistributionData::incrementNumberOfContentElementChildren): ditto.
(WebCore::ShadowRootContentDistributionData::decrementNumberOfContentElementChildren): ditto.
(ShadowRootContentDistributionData):
2012-11-28 Michael Pruett <michael@68k.org>
IndexedDB: Remove duplicate toWireString() and createFromWire() methods in JSC SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=103554
Reviewed by Kentaro Hara.
In r135022, duplicate createFromWire() and toWireString() methods
were added to the JSC version of SerializedScriptValue. In
order to allow the JSC SerializedScriptValue to compile when
ENABLE(INDEXED_DATABASE) is turned on, these new methods have
been removed and the old methods have been moved outside the
ENABLE(INDEXED_DATABASE) guard.
No new tests. No change in functionality.
* WebCore.exp.in:
* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::toWireString):
(WebCore):
(WebCore::SerializedScriptValue::createFromWire):
* bindings/js/SerializedScriptValue.h:
2012-11-28 Hajime Morrita <morrita@google.com>
[Shadow DOM] Element.createShadowRoot() should be prefixed.
https://bugs.webkit.org/show_bug.cgi?id=103595
Reviewed by Kentaro Hara.
No new tests, updated shadow-aware-create-shadow-root.html to follow the change.
* dom/Element.idl:
2012-11-28 Hayato Ito <hayato@chromium.org>
Node::compareDocumentPosition returns wrong value for a node in the different shadow tree.
https://bugs.webkit.org/show_bug.cgi?id=103502
Reviewed by Dimitri Glazkov.
Make Node::compareDocumentPosition() return the correct value when two nodes are in the different shadow trees.
Test: fast/dom/shadow/compare-document-position.html
* dom/Node.cpp:
(WebCore::Node::compareDocumentPosition):
2012-11-28 Joshua Bell <jsbell@chromium.org>
[Chromium] IndexedDB: Assert/crash in indexing layout tests in content_shell
https://bugs.webkit.org/show_bug.cgi?id=103562
Reviewed by Tony Chang.
In multi-process ports, an commit request or setIndexesReady request may arrive from the
front-end after the back-end has already aborted. Don't freak out if those occur.
Tests: storage/indexeddb/index-population.html
storage/indexeddb/lazy-index-population.html
storage/indexeddb/transaction-error.html
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys): Ensure transaction hasn't finished before continuing.
(WebCore::IDBObjectStoreBackendImpl::setIndexesReady): Ditto.
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::commit): Ignore a commit request if already aborted.
2012-11-28 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] Move Distribution requirements from ShadowRoot
https://bugs.webkit.org/show_bug.cgi?id=103481
Reviewed by Hajime Morita.
We would like to shrink the ShadowRoot memory size in this patch. ShadowRoot had several distribution related members,
however they were used only if ShadowRoot has <content>, <shadow>, or nested ShadowRoot.
Since <input> or <textarea> do not have such requirements, the members consume a few amount of memory.
We remove them from ShadowRoot and introduce some RareData-like data structure for ShadowRoot.
This will reduce memory footprint in most cases.
No new tests, refactoring.
* WebCore.exp.in:
* dom/ShadowRoot.cpp:
(SameSizeAsShadowRoot): Reduced 3 * sizeof(unsigned) bytes from ShadowRoot.
(WebCore::ShadowRoot::ShadowRoot): DistributionData is created only when necessary. <input> or <textarea> won't
create such data.
(WebCore::ShadowRoot::assignedTo):
(WebCore):
(WebCore::ShadowRoot::setAssignedTo):
(WebCore::ShadowRoot::ensureDistributionData):
(WebCore::ShadowRoot::registerShadowElement):
(WebCore::ShadowRoot::unregisterShadowElement):
(WebCore::ShadowRoot::hasShadowInsertionPoint):
(WebCore::ShadowRoot::registerContentElement):
(WebCore::ShadowRoot::unregisterContentElement):
(WebCore::ShadowRoot::hasContentElement):
(WebCore::ShadowRoot::registerElementShadow):
(WebCore::ShadowRoot::unregisterElementShadow):
(WebCore::ShadowRoot::hasElementShadow):
(WebCore::ShadowRoot::countElementShadow):
(WebCore::ShadowRoot::reportMemoryUsage):
* dom/ShadowRoot.h:
(WebCore):
(ShadowRoot):
(WebCore::ShadowRoot::distributionData):
* html/shadow/ContentDistributor.cpp:
(WebCore::ShadowRootContentDistributionData::ShadowRootContentDistributionData):
(WebCore):
* html/shadow/ContentDistributor.h:
(ShadowRootContentDistributionData): Distribution related fields in ShadowRoot are moved to here.
(WebCore::ShadowRootContentDistributionData::insertionPointAssignedTo):
(WebCore::ShadowRootContentDistributionData::setInsertionPointAssignedTo):
(WebCore::ShadowRootContentDistributionData::incrementNumberOfShadowElementChildren):
(WebCore::ShadowRootContentDistributionData::decrementNumberOfShadowElementChildren):
(WebCore::ShadowRootContentDistributionData::numberOfShadowElementChildren):
(WebCore::ShadowRootContentDistributionData::incrementNumberOfContentElementChildren):
(WebCore::ShadowRootContentDistributionData::decrementNumberOfContentElementChildren):
(WebCore::ShadowRootContentDistributionData::numberOfContentElementChildren):
(WebCore::ShadowRootContentDistributionData::incrementNumberOfElementShadowChildren):
(WebCore::ShadowRootContentDistributionData::decrementNumberOfElementShadowChildren):
(WebCore::ShadowRootContentDistributionData::numberOfElementShadowChildren):
(WebCore):
2012-11-23 Dirk Schulze <krit@webkit.org>
Remove -webkit-mask-attachment
https://bugs.webkit.org/show_bug.cgi?id=67137
Reviewed by David Hyatt.
Remove CSS property '-webkit-attachment'. The CSS WG agreed that this should not be
part of the CSS Masking specification. WebKit never implemented the behavior of
attached masks either. The property was just exposed in CSSOM.
Test: Added negative tests to fast/masking/parsing-mask.html.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFillProperty):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in:
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::asText):
* css/StylePropertyShorthand.cpp:
(WebCore::webkitMaskShorthand):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* rendering/style/RenderStyle.h:
2012-11-28 Michael Pruett <michael@68k.org>
IndexedDB: Add forward declaration of SecurityOrigin to IDBBackingStore.h
https://bugs.webkit.org/show_bug.cgi?id=103578
Reviewed by Kentaro Hara.
Add forward declaration of SecurityOrigin to IDBBackingStore.h
in order to enable compilation of IndexedDB for JSC.
Tests: storage/indexeddb/*
* Modules/indexeddb/IDBBackingStore.h:
(WebCore):
2012-11-28 Hajime Morrita <morrita@google.com>
checkAcceptChild() needs fewer virtual calls
https://bugs.webkit.org/show_bug.cgi?id=103372
Reviewed by Ojan Vafai.
This change reorganizes checkAcceptChild family for speed.
- Made Node::checkAddChild and Node::checkReplaceChild() static inline functions
in ContainerNode.cpp. checkAcceptChild() was also moved to the same file. This allows us
more aggressive inlining.
- Added a fast path in checkAcceptChild(), where we can assume that the parent is element
and the new child is element or text. Under this assumption, we need no extra type checks
and just needs a cycle prevention through Node::contains(). This is faster than current generic version.
- Moved extra checks from checkAddChild() and checkReplaceChild() to
checkAcceptChild(). This allows the fast path skips even these extra checks.
- Node::canReplaceChild() is devirtualized. Since the only override is on
Document, we can check isDocumentNode() to call it directly.
- The default implemenation of Node::canReplaceChild() just calls isChildTypeAllowed().
That is what an extra check for checkAddChild() did. So we can share these code path in checkAcceptChild().
This gains 2-3% win on Dromaeo dom-modify.html.
No new tests, covered by existing tests.
* dom/ContainerNode.cpp:
(WebCore::isChildTypeAllowed): Moved from Node.cpp
(WebCore::checkAcceptChild): Moved from Node.cpp, Added a fast path.
(WebCore::checkAddChild): Moved from Node.cpp
(WebCore::checkReplaceChild): Moved from Node.cpp
(WebCore::ContainerNode::insertBefore): Followed the signature change.
(WebCore::ContainerNode::replaceChild): Followed the signature change, moved null check from checkReplaceChild to here.
(WebCore::ContainerNode::appendChild): Followed the signature change.
* dom/Document.h:
(Document):
* dom/Node.cpp:
* dom/Node.h:
(WebCore::Node::isDocumentTypeNode): Added for better readability of call sites.
2012-11-28 Kenichi Ishibashi <bashi@chromium.org>
StyleResolver should not set NaN to font size
https://bugs.webkit.org/show_bug.cgi?id=99506
Reviewed by Abhishek Arya.
fixedScaleFactor could be NaN since settings->defaultFixedFontSize()
and settings->defaultFontSize() are zero in some case. This turns
out setting NaN to font size. Add a zero checks so that
fixedScaleFactor won't be NaN.
Test: fast/css/font-size-nan.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::checkForGenericFamilyChange):
2012-11-28 Tim Horton <timothy_horton@apple.com>
[mac] WebHTMLConverter should maintain font size even when there is no related NSFont
https://bugs.webkit.org/show_bug.cgi?id=103568
Reviewed by Alexey Proskuryakov.
WebHTMLConverter should use the default font at the correct size when it
encounters a font that cannot be backed by an NSFont (e.g. a WebFont).
* platform/mac/HTMLConverter.mm:
(+[WebHTMLConverter editingAttributedStringFromRange:]):
2012-11-23 Dirk Schulze <krit@webkit.org>
CSS parser does not support -webkit-mask-size for -webkit-mask shorthand
https://bugs.webkit.org/show_bug.cgi?id=103020
Reviewed by David Hyatt.
Harmonize the syntax of '-webkit-mask' property with 'background' according to the
CSS Masking specification[1]. This should make it easier to maintain both shorthand
properties in the long term.
It is very unlikely that a lot of content (if any) is affected by this change. The
computed style still is not implemented and this change should rather make it easier
for developers.
With the harmonization, the '-webkit-mask-size' property is part of the shorthand as
well now.
parsing-mask.html covers all the changes. Added new tests for the changed syntax and
'-webkit-mask-size'
[1] http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html#mask-property
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFillShorthand):
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::getLayeredShorthandValue):
* css/StylePropertyShorthand.cpp:
(WebCore::webkitMaskShorthand):
2012-11-28 Alec Flett <alecflett@chromium.org>
IndexedDB: Change frontend to call IDBDatabaseBackendInterface::createTransaction()
https://bugs.webkit.org/show_bug.cgi?id=102732
Reviewed by Tony Chang.
Use the new createTransaction, now that it has been stubbed
out. This is part 2 of 3 of a refactor. See
https://bugs.webkit.org/show_bug.cgi?id=102733 for part 3.
No new tests as this refactor simply keeps and propagates a
counter that is currently unused.
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::nextTransactionId):
(WebCore):
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBDatabase.h:
(IDBDatabase):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::create):
(WebCore::IDBTransaction::IDBTransaction):
* Modules/indexeddb/IDBTransaction.h:
(IDBTransaction):
2012-11-28 Michael Saboff <msaboff@apple.com>
HTMLFontElement font size parsing should directly handle 8 bit strings
https://bugs.webkit.org/show_bug.cgi?id=103315
Reviewed by Oliver Hunt.
Split parseFontSize() into a templated function based on character type and a wrapper that determines
a string's bitness before calling the template.
No new tests. No change in functionality.
* html/HTMLFontElement.cpp:
(WebCore::parseFontSize):
2012-11-28 Robert Kroeger <rjkroege@chromium.org>
remove unused PlatformGestureCurve code
https://bugs.webkit.org/show_bug.cgi?id=103296
Reviewed by Adam Barth.
Previous CLs have made the Chromium embedder provide gesture fling
curve implementation to WebKit. Consequently no platform uses the
gestural fling code currently found in WebKit. This CL removes this code.
Code removal only: covered by existing tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* platform/ActivePlatformGestureAnimation.cpp: Removed.
* platform/ActivePlatformGestureAnimation.h: Removed.
* platform/PlatformGestureCurve.h: Removed.
* platform/PlatformGestureCurveTarget.h: Removed.
* platform/ScrollAnimatorNone.cpp: References to removed code removed.
* platform/ScrollAnimatorNone.h:
* platform/TouchFlingPlatformGestureCurve.cpp: Removed.
* platform/TouchFlingPlatformGestureCurve.h: Removed.
* platform/WheelFlingPlatformGestureCurve.cpp: Removed.
* platform/WheelFlingPlatformGestureCurve.h: Removed.
* platform/chromium/support/PlatformGestureCurveFactory.cpp: Removed.
* platform/chromium/support/PlatformGestureCurveFactory.h: Removed.
* platform/chromium/support/WebFlingAnimatorToGestureCurveAdapter.h: Removed.
2012-11-28 Abhishek Arya <inferno@chromium.org>
Heap-use-after-free in WebCore::EventHandler::handleMousePressEvent
https://bugs.webkit.org/show_bug.cgi?id=101098
Reviewed by Adam Barth.
|subframe| can be blown away inside passMousePressEventToSubframe
call. Use RefPtr to protect it in handleMousePressEvent function.
We use similar approach in handleMouseMoveEvent function.
No new tests. Test is extremely time dependent and needs to trigger
interaction gesture. Reproduced on ClusterFuzz.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
2012-11-28 Tom Sepez <tsepez@chromium.org>
XSSAuditor bypass with script src=data: URL ending in <!--
https://bugs.webkit.org/show_bug.cgi?id=103548
Reviewed by Adam Barth.
This fixes an additional case where characters from the page itself are
included with the snippet to match against the reflected vector, and the
JS remains legitimate because of a <!--- comment. Truncate the snippet at
such a comment.
Test: http/tests/security/xssAuditor/script-tag-with-source-data-url3.html
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::decodedSnippetForAttribute):
2012-11-28 Abhishek Arya <inferno@chromium.org>
Heap-use-after-free in WebCore::RenderLayerModelObject::hasSelfPaintingL
ayer
https://bugs.webkit.org/show_bug.cgi?id=101970
Reviewed by David Hyatt.
RenderInline::splitFlow and RenderBlock::splitFlow re-use |pre|
block in some cases. In those cases, |pre| might hold floating objects
and those floating descendants might get moved to |post| block. If
the |pre| block does not get a layout later, then the floating
descendant will never get removed since it is now part of |post|
ancestor chain. We don't want failing-to-layout bugs turned into
security bugs and hence clear floating objects list since we expect
it to be rebuilt in subsequent layout.
Test: fast/block/float/float-not-removed-from-pre-block.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::splitFlow): Call removeFloatingObjects on |pre| block.
(WebCore::RenderBlock::removeFloatingObjects): Clear all floating objects from our list.
(WebCore):
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::splitFlow): Call removeFloatingObjects on |pre| block.
2012-11-28 Mark Pilgrim <pilgrim@chromium.org>
[Chromium] Remove pluginsScriptableObject from PlatformSupport
https://bugs.webkit.org/show_bug.cgi?id=103542
Reviewed by Adam Barth.
Part of a refactoring series. See tracking bug 82948.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::createScriptInstanceForWidget):
* platform/chromium/PlatformSupport.h:
(PlatformSupport):
* plugins/PluginViewBase.h:
(PluginViewBase):
(WebCore::PluginViewBase::scriptableObject):
2012-11-28 Otto Derek Cheung <otcheung@rim.com>
[BlackBerry] CookieJarBlackBerry will use document settings for cookiesEnabled
https://bugs.webkit.org/show_bug.cgi?id=103560
Reviewed by Rob Buis.
PR 253490
CookieJarBlackBerry will now use page settings to check whether
cookie is enabled.
Tested setting/reading cookies on different client cookie settings using
javascript and HTTP. Cookie behaviour is now back to spec.
* loader/blackberry/CookieJarBlackBerry.cpp:
(WebCore::cookies):
(WebCore::cookieRequestHeaderFieldValue):
2012-11-28 Mark Pilgrim <pilgrim@chromium.org>
[Chromium][Win] Remove ensureFontLoaded from PlatformSupport
https://bugs.webkit.org/show_bug.cgi?id=97696
Reviewed by Adam Barth.
Move ensureFontLoaded() from PlatformSupport to
FontPlatformDataChromiumWin. Part of a refactoring series; see
tracking bug 82948.
* platform/chromium/PlatformSupport.h:
(PlatformSupport):
* platform/graphics/chromium/FontCacheChromiumWin.cpp:
(WebCore::fontContainsCharacter):
* platform/graphics/chromium/FontChromiumWin.cpp:
(WebCore::drawGlyphsWin):
* platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
(WebCore::FontPlatformData::scriptFontProperties):
(WebCore):
(WebCore::FontPlatformData::ensureFontLoaded):
* platform/graphics/chromium/FontPlatformDataChromiumWin.h:
(FontPlatformData):
* platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
(WebCore::getGlyphIndices):
(WebCore::fillBMPGlyphs):
* platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
(WebCore::SimpleFontData::platformInit):
(WebCore::SimpleFontData::determinePitch):
(WebCore::SimpleFontData::platformBoundsForGlyph):
(WebCore::SimpleFontData::platformWidthForGlyph):
* platform/graphics/chromium/UniscribeHelperTextRun.cpp:
(WebCore::UniscribeHelperTextRun::tryToPreloadFont):
* platform/graphics/skia/SkiaFontWin.cpp:
(WebCore::paintSkiaText):
2012-11-28 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Crash when requesting favicon.
https://bugs.webkit.org/show_bug.cgi?id=102689
Reviewed by Brent Fulgham.
* platform/graphics/BitmapImage.h: Made frameCount() method virtual, subclasses made for testing can then override it.
* platform/graphics/win/ImageCairoWin.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize): Added NULL pointer check.
(WebCore::BitmapImage::drawFrameMatchingSourceSize): Added NULL pointer check.
2012-11-28 Tony Chang <tony@chromium.org>
Move internals.settings.setPageScaleFactor to internals.setPageScaleFactor
https://bugs.webkit.org/show_bug.cgi?id=103559
Reviewed by Jochen Eisinger.
This method doesn't alter the Settings object, so move it to internals.
No new tests, this is a refactor.
* testing/InternalSettings.cpp: Remove.
* testing/InternalSettings.h: Remove.
* testing/InternalSettings.idl: Remove.
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState): Add reset code.
(WebCore::Internals::setPageScaleFactor): Add method.
* testing/Internals.h: Add method.
* testing/Internals.idl: Add method.
2012-11-28 Alexandru Chiculita <achicu@adobe.com>
[CSS Regions] Elements using transforms are not repainted correctly when rendered in a region
https://bugs.webkit.org/show_bug.cgi?id=102826
Reviewed by Dave Hyatt.
Follow up update of a comment after the patch was landed by the commit queue in r135921.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containerForRepaint):
2012-11-28 Christophe Dumez <christophe.dumez@intel.com>
CSS3 Multicolumn: column-span should accept value 'none' (instead of '1')
https://bugs.webkit.org/show_bug.cgi?id=101462
Reviewed by David Hyatt.
According to the latest CSS3 Multi-column specification:
http://www.w3.org/TR/2011/CR-css3-multicol-20110412/#column-span
column-span should accept values [ none | all ], instead of
[ 1 | all ]. This patch updates WebKit implementation to reflect
this change in the specification. The value 1 is still supported
for compatibility reasons and is mapped to none.
No new tests, already covered by existing tests.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ColumnSpan):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
2012-11-28 Anton Vayvod <avayvod@chromium.org>
Text Autosizing: Clusters should use width of LCA of their text nodes
https://bugs.webkit.org/show_bug.cgi?id=102562
Reviewed by Kenneth Rohde Christiansen.
Many pages set a max-width on their content. So especially for the
RenderView, instead of just taking the width of |cluster| we find
the lowest common ancestor of the first and last descendant text node of
the cluster (i.e. the deepest wrapper block that contains all the text),
and use its width instead.
Tests: fast/text-autosizing/cluster-with-narrow-lca-and-cluster.html
fast/text-autosizing/cluster-with-narrow-lca.html
fast/text-autosizing/cluster-with-wide-lca.html
fast/text-autosizing/list-item-out-of-flow.html
fast/text-autosizing/wide-in-narrow-overflow-scroll.html
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::processCluster): use text nodes LCA instead of cluster for width calculation
(WebCore::TextAutosizer::isAutosizingContainer): list items that are out of parent list element's flow are valid containers (that therefore become clusters in isAutosizingCluster)
(WebCore::TextAutosizer::findDeepestBlockContainingAllText): searches for LCA of text nodes ignoring descendant clusters
(WebCore::TextAutosizer::findFirstTextLeafNotInCluster): searches for the first or the last (depending on specified direction) text leaf node in-order ignoring any descendant clusters
* rendering/TextAutosizer.h: new private methods declarations and an enum for tree traversal direction.
2012-11-28 Sadrul Habib Chowdhury <sadrul@chromium.org>
cleanup: Change some code to be cleaner, more readable and style conforming
https://bugs.webkit.org/show_bug.cgi?id=103543
Reviewed by Antonio Gomes.
Use more appropriate function name and more meaningful variable names to make the code cleaner.
This is covered by existing tests. This does not make any behavioural changes, so no new tests.
* page/EventHandler.cpp:
(WebCore::closestScrollableNodeInDocumentIfPossible):
(WebCore::EventHandler::handleWheelEvent):
2012-11-28 Alexandru Chiculita <achicu@adobe.com>
[CSS Regions] Crash when using hover and first-letter inside a flow-thread
https://bugs.webkit.org/show_bug.cgi?id=102957
Reviewed by David Hyatt.
Some RenderObjects use a different path when they are destroyed. That's because they are dynamically
added just before layout happens and their parent is usually not their actual owner. In those cases the parent
will remove the object from the tree, but it's actually the owner that will destroy the object and all its
children.
RenderFlowThread maintains a RenderBoxRegionInfo object for each RenderObject that is rendered inside the
flow-thread. When the RenderObject is removed from the RenderFlowThread, the associated RenderBoxRegionInfo object
also needs to be removed.
In these special cases (list-marker, first-letter), the object itself was removed from the RenderFlowThread,
but its children were still left in the flow-thread. When the these special objects were later destroyed,
they will remove their own children. Removing their children means it will try to remove them from the
associated RenderFlowThread. However, in this cases there would be no link back to the parent flow-thread,
as the tree is now detached from the enclosing RenderFlowThread.
Added code that recursively removes the whole children tree from the RenderFlowThread when the root is removed.
Tests: fast/regions/firstletter-inside-flowthread.html
fast/regions/listmarker-inside-flowthread.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::willBeRemovedFromTree):
(WebCore::RenderObject::removeFromRenderFlowThread):
(WebCore):
(WebCore::RenderObject::removeFromRenderFlowThreadRecursive):
* rendering/RenderObject.h:
(RenderObject):
2012-11-28 Alexandru Chiculita <achicu@adobe.com>
[CSS Regions] Auto-height regions will not calculate the height correctly when the content changes dynamically
https://bugs.webkit.org/show_bug.cgi?id=102954
Reviewed by David Hyatt.
Whenever the flow changes, we need to reset the region computed auto-heights.
However, when we reset the region heights to "auto" or "un-computed", we also need to make
sure that all the region breaks are counted again, so that we split regions correctly during the new layout.
I've reused the m_regionsInvalidated property to force the flow do a complete layout.
Test: fast/regions/autoheight-dynamic-update.html
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight):
2012-11-28 Alexandru Chiculita <achicu@adobe.com>
[CSS Regions] InRenderFlowThread returns false in the first setStyle
https://bugs.webkit.org/show_bug.cgi?id=102839
Reviewed by Dave Hyatt.
Some render objects use the "inRenderFlowThread" during the first styleWillChange/styleDidChange.
The first call to these methods comes from NodeRendererFactory::createRenderer. That happens before the RenderObject is
attached to the parent renderer, meaning that inRenderFlowThread is false. That means a RenderLayerBacking will be
created for renderers inside the RenderFlowThread, but composited layers inside the RenderFlowThread are not supported yet.
https://bugs.webkit.org/show_bug.cgi?id=84900
Test: fast/repaint/region-painting-composited-element.html
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRendererFactory::createRenderer):
Added code to propagate the inRenderFlowThread flag from the parent node before the style is set for the first time.
2012-11-28 Dan Bernstein <mitz@apple.com>
<rdar://problem/12645085> REGRESSION (r130851): With kerning enabled, a white-space: pre-wrap inline starting with tab+space has the wrong width
https://bugs.webkit.org/show_bug.cgi?id=103541
Reviewed by Anders Carlsson.
Test: fast/text/tab-with-kerning.html
When kerning is enabled, words are measured with their trailing space, then the width of a
space is subtracted. The logic to do this was incorrectly being invoked even when the
trailing whitespace character was a tab or a newline.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextLineBreak): Changed to check only for the space
character, not other space-like characters.
2012-11-28 Nate Chapin <japhet@chromium.org>
Move empty loading to DocumentLoader, simplify FrameLoader::init()
https://bugs.webkit.org/show_bug.cgi?id=101512
Reviewed by Adam Barth.
No new tests, though several outputs changed because we no longer send resource
load callbacks for empty loads.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::~DocumentLoader):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::commitData):
(WebCore::DocumentLoader::clearMainResourceLoader):
(WebCore::DocumentLoader::isLoadingInAPISense):
(WebCore::DocumentLoader::documentURL):
(WebCore::DocumentLoader::isLoadingMainResource):
(WebCore::DocumentLoader::maybeLoadEmpty):
(WebCore):
(WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
loads directly here.
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::serverRedirectSourceForHistory):
(DocumentLoader):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
were previously being reset in init(). Given that the FrameLoader is in
an inconsistent state before init() is called anyway, there doesn't seem
to be a disadvantage to just initializing them to their post-init() values.
(WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
doing a bunch of direct calls to functions FrameLoader shouldn't know about.
* loader/FrameLoaderStateMachine.cpp:
(WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
* loader/FrameLoaderStateMachine.h:
* loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
(WebCore::MainResourceLoader::loadNow): This only returned true when an empty
load got deferred, which won't happen now. Return void and always treat
as returning false.
* loader/MainResourceLoader.h:
(MainResourceLoader):
2012-11-28 Antoine Quint <graouts@apple.com>
Calling .removeCue() for a cue that was never added should raise a NOT_FOUND_ERR
https://bugs.webkit.org/show_bug.cgi?id=103412
Reviewed by Eric Carlson.
Updating the .removeCue() implementation to match the latest spec. This means we now
raise a NOT_FOUND_ERR exception when trying to remove a cue that wasn't present in the
cue list instead of a INVALID_STATE_ERR exception like the spec used to mandate.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::removeCue):
2012-11-28 Zeno Albisser <zeno@webkit.org>
[Qt][Win] Enable usage of QTWEBKIT_PLUGIN_PATH.
https://bugs.webkit.org/show_bug.cgi?id=103529
This patch enables the same behavior for Windows
as it is currently implemented for all other operating
systems supported by Qt.
Directories listed in the environment variable
QTWEBKIT_PLUGIN_PATH are being searched for additional
plugins.
The only difference is that directories on Windows
need to be separated by a semicolon instead of a colon.
Reviewed by Kenneth Rohde Christiansen.
* plugins/win/PluginDatabaseWin.cpp:
(WebCore):
(WebCore::addQtWebKitPluginPath):
(WebCore::PluginDatabase::defaultPluginDirectories):
2012-11-28 Adam Barth <abarth@webkit.org>
[v8] 4% regression in dom_traverse tests
https://bugs.webkit.org/show_bug.cgi?id=102858
Unreviewed.
This patch is a manual rollout of
http://trac.webkit.org/changeset/134729. We can't do a mechanical
rollout because V8DOMWrapper::getCachedWrapper no longer exists.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
2012-11-28 Denis Nomiyama <d.nomiyama@samsung.com>
Removed extra definition of GLXContext.
https://bugs.webkit.org/show_bug.cgi?id=103500
Reviewed by Martin Robinson.
A minor cleanup to remove a spare definition of GLXContext in GLContextGLX.h.
No new tests. This doesn't change any behavior.
* platform/graphics/glx/GLContextGLX.h:
2012-11-28 Sadrul Habib Chowdhury <sadrul@chromium.org>
Fix gesture scrolling when the target-element of scroll-begin is removed
https://bugs.webkit.org/show_bug.cgi?id=103355
Reviewed by Antonio Gomes.
When a touch-scroll starts, the node under the touch-point gets latched, and
subsequent scroll-update events are dispatched to that node. But if the node is
removed while the gesture event is in progress (e.g. in a dynamically updated
list), then the scrolling stops, although there are enough elements to still
enable scrolling. So instead of latching on to the node immediately under the
touch point, latch on to the scrollable node under the touch point.
Test: fast/events/touch/gesture/touch-gesture-scroll-remove-node.html
* page/EventHandler.cpp:
(WebCore::getClosestScrollableNodeInDocumentIfPossible):
(WebCore):
(WebCore::EventHandler::handleWheelEvent):
2012-11-28 Anton Obzhirov <a.obzhirov@samsung.com>
Fix .libs/libwebkitgtk-3.0.so: undefined reference to `WebCore::validationMessageBadInputForNumberText().
https://bugs.webkit.org/show_bug.cgi?id=103509
Reviewed by Philippe Normand.
GTK build fix after r136001.
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::validationMessageBadInputForNumberText):
(WebCore):
2012-11-28 Byungwoo Lee <bw80.lee@samsung.com>
[EFL] Use mutex locker in wakeUp() to ensure thread-safety.
https://bugs.webkit.org/show_bug.cgi?id=101132
Reviewed by Gyuyoung Kim.
Add mutex locker for the ecore pipe to ensure thread-safety of
RunLoop::wakeUp().
RunLoop::wakeUp() can be called by multiple thread. It uses
ecore_pipe_write() function but the function is not thread-safe.
* platform/RunLoop.h:
(RunLoop):
* platform/efl/RunLoopEfl.cpp:
(WebCore::RunLoop::wakeUp):
2012-11-28 Ryuan Choi <ryuan.choi@gmail.com>
[EFL] Refactor theme to choose whether to support foreground color of selection
https://bugs.webkit.org/show_bug.cgi?id=102037
Reviewed by Kenneth Rohde Christiansen.
If foreground selection color is supported, selected text is painted to
SelectionForegroundColor instead of text color. If not, text can be painted
to text color.
However, EFL port does not have a way to disable support of foreground
selection color. So this patch refactors color classes of theme from
active and inactive to foreground and background in order to disable support
of foreground selection color when foreground color class is not specified.
* platform/efl/RenderThemeEfl.cpp:
(WebCore::fillColorsFromEdjeClass):
Returned false without error message when colorClass is not specified.
(WebCore::RenderThemeEfl::setColorFromThemeClass):
(WebCore::RenderThemeEfl::loadTheme):
(WebCore::RenderThemeEfl::RenderThemeEfl):
(WebCore::RenderThemeEfl::supportsSelectionForegroundColors):
(WebCore):
* platform/efl/RenderThemeEfl.h:
(RenderThemeEfl):
2012-11-28 Allan Sandfeld Jensen <allan.jensen@digia.com>
Move childrenAffectedBy bits from RenderStyle to Element
https://bugs.webkit.org/show_bug.cgi?id=101448
Unreviewed buildfix.
To use renderStyle() on some Macs we need to include NodeRenderStyle.h.
* dom/ContainerNode.cpp:
2012-11-28 Allan Sandfeld Jensen <allan.jensen@digia.com>
Move childrenAffectedBy bits from RenderStyle to Element
https://bugs.webkit.org/show_bug.cgi?id=101448
https://bugs.webkit.org/show_bug.cgi?id=98021
Reviewed by Antti Koivisto.
Moves facts observed about restyling dependencies out of RenderStyle and
into RareData for Node and Element. This also enables further cleanup
in related code that tried to deal with problems caused with the placement
of the data.
Test: fast/css/nth-child-not-in-rightmost.html
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkSelector):
(WebCore::SelectorChecker::checkOneSelector):
* css/SiblingTraversalStrategies.h:
(WebCore::DOMSiblingTraversalStrategy::countElementsBefore):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::sortAndTransferMatchedRules):
(WebCore::StyleResolver::canShareStyleWithElement):
(WebCore::parentElementPreventsSharing):
(WebCore::StyleResolver::locateSharedStyle):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::setActive):
(WebCore::ContainerNode::setHovered):
* dom/Element.cpp:
(WebCore::Element::detach):
(WebCore::Element::recalcStyle):
(WebCore::checkForEmptyStyleChange):
(WebCore::checkForSiblingStyleChanges):
(WebCore::Element::setChildrenAffectedByHover):
(WebCore::Element::setChildrenAffectedByActive):
(WebCore::Element::setChildrenAffectedByDrag):
(WebCore::Element::setChildrenAffectedByFirstChildRules):
(WebCore::Element::setChildrenAffectedByLastChildRules):
(WebCore::Element::setChildrenAffectedByDirectAdjacentRules):
(WebCore::Element::setChildrenAffectedByForwardPositionalRules):
(WebCore::Element::setChildrenAffectedByBackwardPositionalRules):
(WebCore::Element::setChildIndex):
(WebCore::Element::rareDataStyleAffectedByEmpty):
(WebCore::Element::rareDataChildrenAffectedByHover):
(WebCore::Element::rareDataChildrenAffectedByActive):
(WebCore::Element::rareDataChildrenAffectedByDrag):
(WebCore::Element::rareDataChildrenAffectedByFirstChildRules):
(WebCore::Element::rareDataChildrenAffectedByLastChildRules):
(WebCore::Element::rareDataChildrenAffectedByDirectAdjacentRules):
(WebCore::Element::rareDataChildrenAffectedByForwardPositionalRules):
(WebCore::Element::rareDataChildrenAffectedByBackwardPositionalRules):
(WebCore::Element::rareDataChildIndex):
* dom/Element.h:
(Element):
(WebCore::Element::styleAffectedByEmpty):
(WebCore::Element::childrenAffectedByHover):
(WebCore::Element::childrenAffectedByActive):
(WebCore::Element::childrenAffectedByDrag):
(WebCore::Element::childrenAffectedByPositionalRules):
(WebCore::Element::childrenAffectedByFirstChildRules):
(WebCore::Element::childrenAffectedByLastChildRules):
(WebCore::Element::childrenAffectedByDirectAdjacentRules):
(WebCore::Element::childrenAffectedByForwardPositionalRules):
(WebCore::Element::childrenAffectedByBackwardPositionalRules):
(WebCore::Element::childIndex):
* dom/ElementRareData.h:
(ElementRareData):
(WebCore::ElementRareData::resetComputedStyle):
(WebCore::ElementRareData::resetDynamicRestyleObservations):
* dom/Node.cpp:
(WebCore::Node::diff):
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
(WebCore::NodeRareData::childrenAffectedByHover):
(WebCore::NodeRareData::setChildrenAffectedByHover):
(WebCore::NodeRareData::childrenAffectedByActive):
(WebCore::NodeRareData::setChildrenAffectedByActive):
(WebCore::NodeRareData::childrenAffectedByDrag):
(WebCore::NodeRareData::setChildrenAffectedByDrag):
(NodeRareData):
(WebCore::NodeRareData::childrenAffectedByFirstChildRules):
(WebCore::NodeRareData::setChildrenAffectedByFirstChildRules):
(WebCore::NodeRareData::childrenAffectedByLastChildRules):
(WebCore::NodeRareData::setChildrenAffectedByLastChildRules):
(WebCore::NodeRareData::childrenAffectedByDirectAdjacentRules):
(WebCore::NodeRareData::setChildrenAffectedByDirectAdjacentRules):
(WebCore::NodeRareData::childrenAffectedByForwardPositionalRules):
(WebCore::NodeRareData::setChildrenAffectedByForwardPositionalRules):
(WebCore::NodeRareData::childrenAffectedByBackwardPositionalRules):
(WebCore::NodeRareData::setChildrenAffectedByBackwardPositionalRules):
(WebCore::NodeRareData::childIndex):
(WebCore::NodeRareData::setChildIndex):
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
* page/TouchAdjustment.cpp:
(WebCore::TouchAdjustment::nodeRespondsToTapGesture):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::updateDragState):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::copyNonInheritedFrom):
* rendering/style/RenderStyle.h:
2012-11-28 Zeno Albisser <zeno@webkit.org>
GraphicsSurface: Implement usage of GraphicsSurface for WebGL in WK1.
https://bugs.webkit.org/show_bug.cgi?id=103497
Unreviewed buildfix.
Any usage of GraphicsSurface needs to be wrapped with USE(GRAPHICS_SURFACE).
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
2012-11-28 Zeno Albisser <zeno@webkit.org>
GraphicsSurface: Implement usage of GraphicsSurface for WebGL in WK1.
https://bugs.webkit.org/show_bug.cgi?id=103497
This is a temporary workaround for an issue with GraphicsSurfaceMac.
GraphicsSurfaceMac is currently implemented using CGL only.
CGL does not allow us to properly restore the NSView a context was made current with.
Therefore we have to go through QOpenGLContext to ensure the context
is being restored correctly.
As soon as we are updating GraphicsSurfaceMac to use NSOpenGL,
we should revert this patch.
Reviewed by Simon Hausmann.
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
2012-11-28 Zeno Albisser <zeno@webkit.org>
GraphicsSurface: Implement usage of GraphicsSurface for WebGL in WK1.
https://bugs.webkit.org/show_bug.cgi?id=103497
Using GraphicsSurface for WebGL in WK1 allows us to share
the code with the WK2 implementation.
Reviewed by Simon Hausmann.
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
Remove obsolete code.
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
After blitting the multisample framebuffer,
we can copy the contents onto the GraphicsSurface.
Right after that we can use the GraphicsSurface
as a texture origin to paint to the TextureMapper.
Flags related to flipping and blending are being resolved
by GraphicsSurface, and do not need to be handled here anymore.
(WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
Remove a redundant makeCurrentIfNeeded call.
The original context is being restored by
blitMultisampleFramebufferAndRestoreContext anyway.
Instead of explicitly calling swapBuffers here,
we call swapBuffers on the GraphicsSurface implicitly
after in GraphicsSurfacePrivate::copyFromTexture().
* platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
Add members to hold the reading end texture IDs.
The texture on the reading side are in a different
context than the texture on the writing side.
By using GraphicsSurface in WK1 we have to distinguish
between these textures, as a single instance serves
for reading and writing.
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::swapBuffers):
(WebCore::GraphicsSurfacePrivate::copyFromTexture):
Add an implicit call to swapBuffers().
(WebCore::GraphicsSurfacePrivate::frontBufferTextureID):
(GraphicsSurfacePrivate):
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
Add a flag to distinguish between sending and receiving/reading
side of the surface. This flag is being initialized in the constructor
which is the only place where we know if an instance will be used for
writing or reading.
The purpose of this flag is to avoid erroneously swapping the buffers
on the reading side. We can no longer rely on m_xPixmap for this purpose.
(WebCore::GraphicsSurfacePrivate::swapBuffers):
(WebCore::GraphicsSurfacePrivate::copyFromTexture):
(WebCore::GraphicsSurfacePrivate::glxPixmap):
Lazily create the GLX pixmap on demand.
(GraphicsSurfacePrivate):
(WebCore::GraphicsSurface::platformImport):
2012-11-28 Roger Fong <roger_fong@apple.com>
Unreviewed. Fix extra spaces in SimpleFontData::initGDIFont().
* platform/graphics/win/SimpleFontDataWin.cpp:
(WebCore::SimpleFontData::initGDIFont):
2012-11-28 Dan Carney <dcarney@google.com>
[V8] Crash wrapping media element when MediaPlayer isn't available
https://bugs.webkit.org/show_bug.cgi?id=103431
Reviewed by Kentaro Hara.
Call HTMLElement::createWrapper directly when dispatching a
disabled MediaElement wrap.
No new tests. Testing this must apparently be manual.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* dom/make_names.pl:
(printWrapperFunctions):
(printWrapperFactoryHeaderFile):
2012-11-28 Roger Fong <roger_fong@apple.com>
Initialize identity matrix in SimpleFontData::initGDIFont() properly.
https://bugs.webkit.org/show_bug.cgi?id=103499
<rdar://problem/12400700>
Reviewed by Timothy Horton.
We are incorrectly initializing the matrix passed into GetGlyphOutline.
This patch fixes MAT2 initialization to match the way we initialize the
identity matrix in SimpleFontData::boundsForGDIGlyph and SimpleFontData::widthForGDIGlyph.
* platform/graphics/win/SimpleFontDataWin.cpp:
(WebCore::SimpleFontData::initGDIFont):
2012-11-28 Huang Dongsung <luxtella@company100.net>
[Texmap] REGRESSION(r135620) QtTestBrowser crashes on Google-gravity.
https://bugs.webkit.org/show_bug.cgi?id=103410
Reviewed by Noam Rosenthal.
GraphicsLayerTextureMapper::updateBackingStore() should return early
before TextureMapper is set.
GraphicsLayer::FlushCompositingState() can be called by RenderLayerBacking. It
means this method can be called before creating TextureMapper. So
TextureMapperLayer::flushCompositingState() checks and returns early if
TextureMapper was not created.
However, GraphicsLayerTextureMapper::updateBackingStore() expects that TextureMapper
always exists. updateBackingStore should also return early when TextureMapper
was not created.
No new tests. Covered by existing tests.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
(WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
(WebCore::GraphicsLayerTextureMapper::didFlushCompositingState):
(WebCore::GraphicsLayerTextureMapper::prepareBackingStore):
2012-11-28 Tommy Widenflycht <tommyw@google.com>
Add basic implementation for MediaStreamAudioDestinationNode
https://bugs.webkit.org/show_bug.cgi?id=101815
Reviewed by Chris Rogers.
Implements an audio destination node which has a MediaStream.
This can be added to a PeerConnection with peerConnection.addStream().
Please see use case (3):
https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/webrtc-integration.html
Test: webaudio/mediastreamaudiodestinationnode.html
* Modules/webaudio/AudioContext.cpp:
(WebCore):
(WebCore::AudioContext::createMediaStreamDestination):
* Modules/webaudio/AudioContext.h:
(WebCore):
(AudioContext):
* Modules/webaudio/AudioContext.idl:
* Modules/webaudio/AudioNode.h:
* Modules/webaudio/MediaStreamAudioDestinationNode.cpp: Added.
(WebCore):
(WebCore::MediaStreamAudioDestinationNode::create):
(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
(WebCore::MediaStreamAudioDestinationNode::mediaStreamSource):
(WebCore::MediaStreamAudioDestinationNode::~MediaStreamAudioDestinationNode):
(WebCore::MediaStreamAudioDestinationNode::process):
(WebCore::MediaStreamAudioDestinationNode::reset):
* Modules/webaudio/MediaStreamAudioDestinationNode.h: Added.
(WebCore):
(MediaStreamAudioDestinationNode):
(WebCore::MediaStreamAudioDestinationNode::stream):
* Modules/webaudio/MediaStreamAudioDestinationNode.idl: Added.
* WebCore.gypi:
* platform/audio/AudioDestinationConsumer.h: Copied from Source/WebCore/platform/mediastream/MediaStreamSource.cpp.
(WebCore):
(AudioDestinationConsumer):
(WebCore::AudioDestinationConsumer::~AudioDestinationConsumer):
* platform/chromium/support/WebMediaStreamSource.cpp:
(WebKit::WebMediaStreamSource::extraData):
(WebKit::WebMediaStreamSource::setExtraData):
(WebKit::WebMediaStreamSource::requiresAudioConsumer):
(WebKit):
(ConsumerWrapper):
(WebKit::ConsumerWrapper::create):
(WebKit::ConsumerWrapper::consumer):
(WebKit::ConsumerWrapper::ConsumerWrapper):
(WebKit::ConsumerWrapper::consumeAudio):
(WebKit::WebMediaStreamSource::addAudioConsumer):
(WebKit::WebMediaStreamSource::removeAudioConsumer):
* platform/mediastream/MediaStreamSource.cpp:
(WebCore::MediaStreamSource::create):
(WebCore::MediaStreamSource::MediaStreamSource):
(WebCore::MediaStreamSource::addAudioConsumer):
(WebCore):
(WebCore::MediaStreamSource::removeAudioConsumer):
(WebCore::MediaStreamSource::consumeAudio):
* platform/mediastream/MediaStreamSource.h:
(WebCore):
(MediaStreamSource):
(WebCore::MediaStreamSource::requiresAudioConsumer):
(WebCore::MediaStreamSource::audioConsumers):
2012-11-27 Mike West <mkwst@chromium.org>
Improve WebSocketChannel connection failure console messages.
https://bugs.webkit.org/show_bug.cgi?id=103448
Reviewed by Adam Barth.
When a WebSocket connection fails, the current implementation of
WebSocketChannel::fail binds the generated console message to the
document's URL, but doesn't give much indication as to the connection
itself. This patch adjusts the console message to explicitly show the
URL of the failed connection to give developers a better chance of
debugging and resolving errors.
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::fail):
Drop the URL parameter from addConsoleMessage, in favour of adding
the WebSocketHandshake's URL to the message text.
2012-11-27 Zan Dobersek <zandobersek@gmail.com>
Unreviewed functionality fix, return the height in ImageFrame::height()
on non-Skia platforms.
* platform/image-decoders/ImageDecoder.h:
(WebCore::ImageFrame::height):
2012-11-27 Viatcheslav Ostapenko <v.ostapenko@samsung.com>
Optimization in image decoding
https://bugs.webkit.org/show_bug.cgi?id=88424
Reviewed by Brent Fulgham.
Optimization in image decoding.
Reduce branching and multiplications in GIF image decoding loops and functions.
Rebase and update of original patch by Misha Tyutyunik <michael.tyuytunik@nokia.com>
Covered by existing tests.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::haveDecodedRow):
2012-11-27 Michael Saboff <msaboff@apple.com>
TextIterator unnecessarily converts 8 bit strings to 16 bits
https://bugs.webkit.org/show_bug.cgi?id=103295
Reviewed by Brent Fulgham.
Changed TextIterator to use the contained string instead of calling characters() on that string.
Other sources of text, like emitCharacter() still use the contained UChar* buffer.
Added appendTextToStringBuilder() to append the text contents of the current iterator to a string builder
irrespective of the source of the text.
No new tests as functionality covered by existing tests.
* WebCore.exp.in: Updated plainText export and eliminated plainTextToMallocAllocatedBuffer export
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::stringForVisiblePositionRange): Updated to use TextIterator::appendTextToStringBuilder()
* editing/TextIterator.cpp:
(WebCore::TextIterator::characterAt): New function to return the indexed character of the current TextIterator
(WebCore::TextIterator::appendTextToStringBuilder): Added method to append whatever the current text to a StringBuilder
(WebCore::TextIterator::emitText): Eliminated accessing the character data via characters().
(WebCore::TextIterator::rangeFromLocationAndLength): Changed to use characterAt().
(WebCore::plainText): Combined with plainTextToMallocAllocatedBuffer().
* editing/TextIterator.h:
(WebCore::TextIterator::startOffset): New getter.
(WebCore::TextIterator::string): New getter.
(WebCore::TextIterator::characters): Updated to use correct test source.
* page/ContextMenuController.cpp:
(WebCore::selectionContainsPossibleWord): Changed to use characterAt().
2012-11-27 Noel Gordon <noel.gordon@gmail.com>
Inline ImageFrame width() and height()
https://bugs.webkit.org/show_bug.cgi?id=103401
Reviewed by Brent Fulgham.
Inline ImageFrame width() and height() to improve the performance of ImageFrame
function getAddr(x,y) per https://bugs.webkit.org/show_bug.cgi?id=88424#c38
No new tests. Covered by many existing tests.
* platform/image-decoders/ImageDecoder.cpp: Remove width() and height() routines
since they now inlined in the ImageFrame class definition in ImageDecoder.h.
* platform/image-decoders/ImageDecoder.h: Add inline definitions of width() and
height() for all ports.
* platform/image-decoders/skia/ImageDecoderSkia.cpp:
(WebCore::ImageFrame::width): Remove.
(WebCore::ImageFrame::height): Remove.
2012-11-27 Michael Pruett <michael@68k.org>
Remove ASSERT_NOT_REACHED() from IDBCursorBackendImpl::postSuccessHandlerCallback()
https://bugs.webkit.org/show_bug.cgi?id=103461
Reviewed by Kentaro Hara.
The assertion is applicable only to the Chromium port.
Tests: storage/indexeddb/*
* Modules/indexeddb/IDBCursorBackendImpl.h:
(WebCore::IDBCursorBackendImpl::postSuccessHandlerCallback):
2012-11-27 Shinya Kawanaka <shinyak@chromium.org>
[Refactoring] HasSelectorForClassStyleFunctor in Element.cpp seems verbose
https://bugs.webkit.org/show_bug.cgi?id=103474
Reviewed by Hajime Morita.
The code introduced in r135174 looks verbose. We would like to make it simpler.
We have removed several inline functions and unnecessary structs.
No new tests, simple refactoring.
* dom/Element.cpp:
(WebCore):
(WebCore::checkSelectorForClassChange):
(WebCore::Element::classAttributeChanged):
(WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
2012-11-27 Julien Chaffraix <jchaffraix@webkit.org>
Support proper <percent> / calc() resolution for grid items
https://bugs.webkit.org/show_bug.cgi?id=102968
Reviewed by Ojan Vafai.
This change introduces a mechanism similar to logical height / width override
but for containing block. This is required as we don't have a renderer for the
grid area but any <percent> or calc() size should be resolved against the grid
area size (which is sized after the grid tracks).
Tests: fast/css-grid-layout/calc-resolution-grid-item.html
fast/css-grid-layout/percent-resolution-grid-item.html
fast/css-grid-layout/percent-grid-item-in-percent-grid-track.html
fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::willBeDestroyed):
Remove any containing block size override.
(WebCore::RenderBox::overrideContainingBlockContentLogicalWidth):
(WebCore::RenderBox::overrideContainingBlockContentLogicalHeight):
(WebCore::RenderBox::hasOverrideContainingBlockLogicalWidth):
(WebCore::RenderBox::hasOverrideContainingBlockLogicalHeight):
(WebCore::RenderBox::setOverrideContainingBlockContentLogicalWidth):
(WebCore::RenderBox::setOverrideContainingBlockContentLogicalHeight):
(WebCore::RenderBox::clearContainingBlockOverrideSize):
Containing block override size functions.
(WebCore::RenderBox::containingBlockLogicalWidthForContent):
Updated the function to check for any override logical width.
(WebCore::RenderBox::containingBlockLogicalHeightForContent):
New function, similar to RenderBox::containingBlockLogicalWidthForContent.
(WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
(WebCore::RenderBox::computePercentageLogicalHeight):
Updated these function to return overrideContainingBlockContentLogicalHeight as needed.
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
(WebCore::RenderBox::availableLogicalHeightUsing):
Updated these functions to use the new containingBlockLogicalHeightForContent instead
of availableLogicalHeight.
* rendering/RenderBox.h:
Added the previous new functions.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutGridItems):
Updated to override the containing block size so that we properly size our grid items.
2012-11-27 Kent Tamura <tkent@chromium.org>
Fix build errors by r135955.
* dom/ShadowRoot.cpp: Use struct instead of class.
* dom/TreeScope.cpp: Ditto.
2012-11-27 Eugene Klyuchnikov <eustas@chromium.com>
Web Inspector: [Timeline] "Show CPU activity on the ruler" settings checkbox does not take effect until Inspector restart
https://bugs.webkit.org/show_bug.cgi?id=102210
Reviewed by Pavel Feldman.
The checkbox changes should take effect in the real time.
* inspector/front-end/SettingsScreen.js:
(WebInspector.GenericSettingsTab):
Do not show checkpox if browser is not capable.
* inspector/front-end/TimelinePanel.js:
Added setting change listener.
2012-11-27 Andreas Kling <akling@apple.com>
Compile time size assertions for TreeScope, ShadowRoot and ElementAttributeData.
Rubber-stamped by Anders Carlsson.
* dom/ShadowRoot.cpp:
(SameSizeAsShadowRoot):
* dom/TreeScope.cpp:
(SameSizeAsTreeScope):
* dom/ElementAttributeData.cpp: Derp.
2012-11-27 James Simonsen <simonjam@chromium.org>
Consolidate FrameLoader::load() into one function taking a FrameLoadRequest
https://bugs.webkit.org/show_bug.cgi?id=102151
Reviewed by Adam Barth.
There's a FIXME that we have too many FrameLoader::load*() functions. This patch consolidates 3 into 1.
There are still a few more load functions that will be consolidated later. Using FrameLoadRequest as
the interface into FrameLoader will also provide a place to pass in the initiator. Finally, this matches
the refactoring done with CachedResourceRequest and CachedResourceLoader.
No new tests. No change in functionality.
* WebCore.exp.in:
* loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::FrameLoadRequest):
(WebCore::FrameLoadRequest::setLockHistory): These are former arguments to load().
(WebCore::FrameLoadRequest::lockHistory): Ditto.
(FrameLoadRequest):
(WebCore::FrameLoadRequest::setShouldCheckNewWindowPolicy): Ditto.
(WebCore::FrameLoadRequest::shouldCheckNewWindowPolicy): Ditto.
(WebCore::FrameLoadRequest::substituteData): Ditto.
(WebCore::FrameLoadRequest::setSubstituteData): Ditto.
(WebCore::FrameLoadRequest::hasSubstituteData): Ditto.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load): No change in behavior, just merged it all into one function.
* loader/FrameLoader.h:
(FrameLoader):
* page/DragController.cpp:
(WebCore::DragController::performDrag):
2012-11-27 Jer Noble <jer.noble@apple.com>
Unreviewed build fix; NSSize is not a CGSize in 32-bit.
* platform/mac/WebCoreFullScreenWarningView.mm:
2012-11-27 Dean Jackson <dino@apple.com>
Attempted build fix for my last commit. The private member variable
is only used on MAC (at the moment) so guard it with #if PLATFORM.
I did this rather than having another constructor, because I expect
other platforms will follow the MAC code soon.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
* html/shadow/MediaControlElements.h:
2012-11-14 Jer Noble <jer.noble@apple.com>
Add a new shared class WebCoreFullScreenPlaceholderView, for use in WebKit and WebKit2.
https://bugs.webkit.org/show_bug.cgi?id=102300
Reviewed by Anders Carlsson.
Add a new shared class WebCoreFullScreenPlaceholderView, which presents the contents of the
WebView prior to full screen with a message informing the user how to exit from full screen mode.
* platform/mac/WebCoreFullScreenPlaceholderView.mm:
(-[WebCoreFullScreenPlaceholderView initWithFrame:]): Create the warning view and set up the placeholder layer.
(-[WebCoreFullScreenPlaceholderView setContents:]): Pass along to content view layer.
(-[WebCoreFullScreenPlaceholderView contents]): Ditto.
(-[WebCoreFullScreenPlaceholderView setExitWarningVisible:]): Show or hide the exit warning.
(-[WebCoreFullScreenPlaceholderView mouseDown:]): Call the target with action.
Add a localized string entry for the "click to exit" text:
* English.lproj/Localizable.strings:
* platform/LocalizedStrings.cpp:
(WebCore::clickToExitFullScreenText):
* platform/LocalizedStrings.h:
* English.lproj/Localizable.strings:
Add the new files to the project and exports list:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
2012-11-27 Andreas Kling <akling@apple.com>
Shrink ShadowRoot and TreeScope.
<http://webkit.org/b/103459>
Reviewed by Antti Koivisto.
We're creating ~1500 ShadowRoots on Apple's PLT3 content (from <input> and <textarea> elements)
and a lot of this is wasted space.
Shrink ShadowRoot and TreeScope a bit by making TreeScope's DocumentOrderedMaps heap-allocated
and packing the counters on ShadowRoot harder together with the bits.
202kB progression on Membuster3.
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
* dom/ShadowRoot.h:
(WebCore::ShadowRoot::countElementShadow):
(ShadowRoot):
* dom/TreeScope.cpp:
(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::getElementById):
(WebCore::TreeScope::addElementById):
(WebCore::TreeScope::removeElementById):
(WebCore::TreeScope::addImageMap):
(WebCore::TreeScope::removeImageMap):
(WebCore::TreeScope::getImageMap):
(WebCore::TreeScope::addLabel):
(WebCore::TreeScope::removeLabel):
(WebCore::TreeScope::labelElementForId):
* dom/TreeScope.h:
(WebCore::TreeScope::shouldCacheLabelsByForAttribute):
(TreeScope):
(WebCore::TreeScope::hasElementWithId):
(WebCore::TreeScope::containsMultipleElementsWithId):
2012-11-14 Jer Noble <jer.noble@apple.com>
Add a new shared class WebCoreFullScreenWarningView which presents a styled warning message.
https://bugs.webkit.org/show_bug.cgi?id=102299
Reviewed by Alexey Proskuryakov.
Add a shared implementation of a warning view for use in WebKit and WebKit2.
* platform/mac/WebCoreFullScreenWarningView.h: Added.
* platform/mac/WebCoreFullScreenWarningView.mm: Added.
(-[WebCoreFullScreenWarningView initWithTitle:]): Create the view.
Add the new files to the project and exports list:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
2012-11-27 Dean Jackson <dino@apple.com>
Make track list control active
https://bugs.webkit.org/show_bug.cgi?id=101670
Reviewed by Eric Carlson.
Hook up the event handler for the captions menu so that it enables or
disables tracks in the associated HTMLMediaElement.
Test: media/video-controls-captions-trackmenu.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::toggleTrackAtIndex): New method to toggle the state of a track, by index.
* html/HTMLMediaElement.h:
(HTMLMediaElement): Ditto.
(WebCore::HTMLMediaElement::textTracksOffIndex): Static method to return the "Off" value.
* html/shadow/MediaControlElements.cpp:
(WebCore::trackListIndexForElement): Helper function to take a track list <li> element and return the value of the custom attribute.
(WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType): Toggle the state of the button based on captions visibility.
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler): On Mac platforms show the captions menu. On other platforms, toggle captions.
(WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): Now has a reference to the controls.
(WebCore::MediaControlClosedCaptionsTrackListElement::create):
(WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler): When the user clicks on a track list item, look
for the custom attribute that identifies the associated track, and then toggle that track.
(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Set a class on the track list elements so they can be
styled by the injected CSS (with tick marks to represent visibility).
(WebCore::MediaControlClosedCaptionsTrackListElement::resetTrackListMenu): When building the list of track menu items, add
a custom HTML attribute to the element so that the corresponding track can be found in the event handler.
* html/shadow/MediaControlElements.h:
(MediaControlClosedCaptionsTrackListElement): Add a list of elements representing the track list.
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::createControls):
(WebCore::MediaControlsApple::changedClosedCaptionsVisibility): Make sure to update the track menu.
(WebCore::MediaControlsApple::reset):
* html/shadow/MediaControlsApple.h:
(MediaControlsApple):
2012-11-27 Joshua Bell <jsbell@chromium.org>
IndexedDB: Simplify transaction timers and event tracking
https://bugs.webkit.org/show_bug.cgi?id=102984
Reviewed by Tony Chang.
Now that the transaction "commit" decision is made on the front-end, the back end no-longer
needs to be aware of when individual IDBRequests have dispatched to script or track pending
events (except for preemptive ones like createIndex). This also lets two timers be collapsed
into one which significantly simplifies the code flow in IDBTransactionBackendImpl.
No new tests - just simplification. Exercised by storage/indexeddb/transaction-*.html etc.
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::prefetchContinueInternal): No more tracking.
(WebCore::IDBCursorBackendImpl::prefetchReset): No more tracking.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal): No more tracking.
(WebCore::IDBDatabaseBackendImpl::deleteObjectStoreInternal): No more tracking.
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal): No more tracking.
(WebCore::IDBObjectStoreBackendImpl::createIndexInternal): No more tracking.
(WebCore::IDBObjectStoreBackendImpl::deleteIndexInternal): No more tracking.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::dispatchEvent): Order must be:
1. request is unregistered from transaction (so request list may be empty)
2. abort transaction if event being dispatched was an error
3. deactivate transaction (which may commit if #1 left it empty and #2 didn't abort)
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl): Need to track if commit
was requested; previously the front end would have triggered an event timer which, on
completion, would be the signal that the front end was finished.
(WebCore::IDBTransactionBackendImpl::scheduleTask): Schedule a timer to service the new
task, if necessary.
(WebCore::IDBTransactionBackendImpl::abort):
(WebCore::IDBTransactionBackendImpl::hasPendingTasks):
(WebCore::IDBTransactionBackendImpl::commit):
(WebCore::IDBTransactionBackendImpl::taskTimerFired): Picks up "commit" responsibilities
from the now deleted taskEventTimerFired, if everything is truly complete done.
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionBackendInterface.h:
(WebCore::IDBTransactionBackendInterface::didCompleteTaskEvents): Removed from interface.
2012-11-27 Kentaro Hara <haraken@chromium.org>
[V8] Replace toWebCoreString()/toWebCoreAtomicString() in CodeGeneratorV8.pm with V8StringResource
https://bugs.webkit.org/show_bug.cgi?id=103391
Reviewed by Adam Barth.
This is an incremental effort for fixing bug 103331.
I confirmed that this patch causes no performance regression
for the micro benchmarks (https://bugs.webkit.org/attachment.cgi?id=176178).
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrSetter):
(GenerateEventListenerCallback):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::TestEventTargetV8Internal::addEventListenerCallback):
(WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::addEventListenerCallback):
(WebCore::TestObjV8Internal::removeEventListenerCallback):
2012-11-27 Alexandru Chiculita <achicu@adobe.com>
[CSS Regions] Elements using transforms are not repainted correctly when rendered in a region
https://bugs.webkit.org/show_bug.cgi?id=102826
Reviewed by David Hyatt.
When the page is composited, all the elements will have a composited repaint container. In that case we will
never catch the repaints in the RenderFlowThread, but they will go directly to the RenderView.
There's a single case when the parent composited layer of an element inside the RenderFlowThread will get
its own repaints. That case only happens when the parent composited layer is also part of the same flow thread.
Right now compositing is disabled for elements inside the RenderFlowThread, so that case doesn't even happen yet.
That will be fixed in https://bugs.webkit.org/show_bug.cgi?id=84900.
Test: fast/repaint/region-painting-in-composited-view.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containerForRepaint):
2012-11-27 Tony Chang <tony@chromium.org>
Unreviewed, win compile fix take 2.
Try again to force this file to recompile.
* rendering/RenderingAllInOne.cpp:
2012-11-27 Tony Chang <tony@chromium.org>
Unreviewed, win compile fix.
Touch RenderingAllInOne.cpp to force it to rebuild.
* rendering/RenderingAllInOne.cpp:
2012-11-27 Tim Horton <timothy_horton@apple.com>
PDFPlugin: Scroll bars do not grow on hover
https://bugs.webkit.org/show_bug.cgi?id=103382
<rdar://problem/12555262>
Reviewed by Beth Dakin.
Export a few WebCore::Scrollbar methods to WebKit(2).
* WebCore.exp.in:
2012-11-27 Tom Sepez <tsepez@chromium.org>
Regression(r129406): Fix the scope of the WidgetHierarchyUpdateSuspensionScope in Element::Attach().
https://bugs.webkit.org/show_bug.cgi?id=100803
Reviewed by Abhishek Arya.
Ensures that the suspension scope has gone out of scope before calling into
resumePostAttachCallbacks().
Test: fast/dom/adopt-node-crash-2.html
* dom/Element.cpp:
(WebCore::Element::attach):
2012-11-27 Tony Chang <tony@chromium.org>
Remove hidden limiter div in the input slider shadow DOM
https://bugs.webkit.org/show_bug.cgi?id=102993
Reviewed by Ojan Vafai.
The shadow DOM for input sliders would have a hidden div (the TrackLimiterElement)
the size of the thumb which would limit the position of thumb since the width of
the thumb takes up space in the track. This patch simplifies the shadow DOM by
removing this hidden div and computing the position of the thumb taking the size of
the thumb into account.
No new tests, covered by existing tests in fast/forms.
* css/mediaControlsChromium.css:
(input[type="range"]::-webkit-media-slider-container > div): We were depending on the behavior of the limiter having negative margins, causing the slider div
to overflow. Moving the negative margin to the slider produces the same effect.
* css/mediaControlsChromiumAndroid.css:
(input[type="range"]::-webkit-media-slider-container > div): Ditto.
* html/RangeInputType.cpp:
(WebCore::RangeInputType::createShadowSubtree): Remove limiter div.
* html/shadow/SliderThumbElement.cpp:
(WebCore::RenderSliderContainer::layout): Adjust the available space for the thumb and correctly position in the vertical case.
(WebCore::SliderThumbElement::setPositionFromPoint): Adjust the usable track size and simplify RTL code (no need to account for the limiter).
(WebCore): Delete limiter code.
* html/shadow/SliderThumbElement.h:
(WebCore): Delete limiter code.
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::layout): Delete limiter code.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paintSliderTicks): Simplify code for painting tick marks.
2012-11-27 Alpha Lam <hclam@chromium.org>
[chromium] Implement full-featured image cache
https://bugs.webkit.org/show_bug.cgi?id=99784
Reviewed by Stephen White.
Implement a thread-safe image cache to be used with deferred image
decoding. Image cache can now be accessed on any thread.
The patch implements the following logic:
1. Mutex to protect all cache operations.
2. Cache indexing using key (ImageFrameGenerator*, SkISize scaledSize)
3. Cache lookup.
4. Cache insertion.
5. Generation of cache entry by scaling full size image.
6. Generation of cache entries by decoding and scaling.
Classes involved:
ImageDecodingStore
Responsible for owning cache entries and indexing. Pruning and memory
management will be added later.
ImageFrameGenerator
Responsible for generating new cache enties and insert them into
ImageDecodingStore.
LazyDecodingPixelRef
Responsible for cache lookup and lazy generation of cache entries
using ImageFrameGenerator. There is a mutex to protect concurrent
lock operations.
These items are not implemented in this patch:
1. Cache pruning.
2. Setting cache memory limit.
3. Cache deletion.
4. Caching incomplete images and ImageDecoder.
Unit tests added in ImageFrameGeneratorTest.cpp.
Layout tests are under platform/chromium/virtual/fast/images.
* platform/graphics/chromium/DeferredImageDecoder.cpp:
(WebCore::DeferredImageDecoder::~DeferredImageDecoder):
(WebCore::DeferredImageDecoder::createResizedLazyDecodingBitmap):
(WebCore::DeferredImageDecoder::setEnabled):
(WebCore):
(WebCore::DeferredImageDecoder::frameBufferAtIndex):
(WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
* platform/graphics/chromium/DeferredImageDecoder.h:
(DeferredImageDecoder):
* platform/graphics/chromium/ImageDecodingStore.cpp:
(WebCore::ImageDecodingStore::instance):
(WebCore::ImageDecodingStore::initializeOnce):
(WebCore::ImageDecodingStore::shutdown):
(WebCore::ImageDecodingStore::lockCompleteCache):
Lookup complete cache entry using hash key, increment use count.
(WebCore::ImageDecodingStore::lockIncompleteCache): TODO.
(WebCore::ImageDecodingStore::unlockCache):
Lookup cache entry using hash key, decrement use count.
(WebCore):
(WebCore::ImageDecodingStore::insertAndLockCache):
Insert new cache entry and increment use count.
(WebCore::ImageDecodingStore::prune): TODO.
* platform/graphics/chromium/ImageDecodingStore.h:
(WebCore):
(ImageDecodingStore):
(WebCore::ImageDecodingStore::CacheEntry::create):
(WebCore::ImageDecodingStore::CacheEntry::createAndUse):
(CacheEntry):
(WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
(WebCore::ImageDecodingStore::CacheEntry::~CacheEntry):
* platform/graphics/chromium/ImageFrameGenerator.cpp:
(WebCore::ImageFrameGenerator::ImageFrameGenerator):
(WebCore::ImageFrameGenerator::setData):
(WebCore::ImageFrameGenerator::decodeAndScale):
Method for creating new cache entries. This is protected by a mutex
to prevent concurrent operations. Which means only one thread can
generate new cache entries for a set of encoded data.
(WebCore):
(WebCore::ImageFrameGenerator::tryToLockCache):
Tries to lookup a cache entry.
(WebCore::ImageFrameGenerator::tryToScale):
Tries to lookup a full size cache entry and generate a scaled version.
(WebCore::ImageFrameGenerator::tryToDecodeAndScale):
Tries to decode and scale.
* platform/graphics/chromium/ImageFrameGenerator.h:
(WebCore):
(ImageDecoderFactory):
(WebCore::ImageFrameGenerator::create):
(ImageFrameGenerator):
(WebCore::ImageFrameGenerator::setImageDecoderFactoryForTesting):
* platform/graphics/chromium/LazyDecodingPixelRef.cpp:
(WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
(WebCore::LazyDecodingPixelRef::onLockPixels):
(WebCore::LazyDecodingPixelRef::onUnlockPixels):
* platform/graphics/chromium/LazyDecodingPixelRef.h:
(WebCore):
(LazyDecodingPixelRef):
* platform/graphics/chromium/ScaledImageFragment.cpp:
(WebCore::ScaledImageFragment::ScaledImageFragment):
* platform/graphics/chromium/ScaledImageFragment.h:
(WebCore):
(WebCore::ScaledImageFragment::create):
(ScaledImageFragment):
(WebCore::ScaledImageFragment::scaledSize):
* platform/graphics/chromium/SkSizeHash.h: Added.
(WTF):
2012-11-27 Mike West <mkwst@chromium.org>
Expanding variable names in ConsoleMessage.
https://bugs.webkit.org/show_bug.cgi?id=103436
Reviewed by Adam Barth.
Variable names like 'm' should be replaced with full words, like
'myOhMyThisIsAnAwesomeVariable' (or something more descriptive).
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
* inspector/ConsoleMessage.h:
(ConsoleMessage):
2012-11-27 Aaron Colwell <acolwell@chromium.org>
Use-after-free in media player handling
https://bugs.webkit.org/show_bug.cgi?id=103426
Reviewed by Eric Carlson.
Fixed use-after-free bugs caused by the MediaSource not being closed before the HTMLMediaElement or the MediaPlayer
is destroyed. Closing the MediaSource causes it to clear its reference to the MediaPlayer which prevents
the use-after-free problems from happening.
Test: http/tests/media/media-source/video-media-source-closed-on-htmlmediaelement-destruction.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::clearMediaPlayer):
2012-11-27 David Grogan <dgrogan@chromium.org>
IndexedDB: Remove IDBDatabase.setVersion API
https://bugs.webkit.org/show_bug.cgi?id=94972
Reviewed by Tony Chang.
This has been out of the spec for over a year. No other browser has
implemented it for close to a year.
Tests - removed.html
* Modules/indexeddb/IDBCallbacks.h:
(IDBCallbacks):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::IDBDatabase):
* Modules/indexeddb/IDBDatabase.h:
(IDBDatabase):
* Modules/indexeddb/IDBDatabase.idl:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(IDBDatabaseBackendInterface):
* Modules/indexeddb/IDBRequest.cpp:
* Modules/indexeddb/IDBRequest.h:
2012-11-27 Mike West <mkwst@chromium.org>
Log to console when autofocus is blocked by sandbox attribute.
https://bugs.webkit.org/show_bug.cgi?id=103255
Reviewed by Ojan Vafai.
Adding a short log message when autofocus is blocked by a document's
sandbox flags, as it's currently a black box.
Test: fast/forms/autofocus-in-sandbox-without-allow-scripts.html
* html/HTMLFormControlElement.cpp:
(WebCore::shouldAutofocus):
2012-11-27 Dean Jackson <dino@apple.com>
Attempted build fix after http://trac.webkit.org/changeset/135888.
* WebCore.exp.in:
* WebCore.order:
2012-11-27 Ryosuke Niwa <rniwa@webkit.org>
Build fix after r135890. #else, not #elif.
* platform/graphics/ca/PlatformCALayer.h:
(PlatformCALayer):
2012-11-27 Ryosuke Niwa <rniwa@webkit.org>
HTMLCollection on Document should be stored on NodeListsNodeData like other HTMLCollections and LiveNodeLists
https://bugs.webkit.org/show_bug.cgi?id=103364
Reviewed by Anders Carlsson.
Replaced the HTMLCollection storage in Document by NodeListsNodeData used by other HTMLCollection's
and LiveNodeList's. Now NodeListsNodeData is the only storage for HTMLCollection and LiveNodeList.
* dom/Document.cpp:
(WebCore::Document::Document): Removed code for m_collection since it has been removed.
(WebCore::Document::~Document): Ditto.
(WebCore::Document::registerNodeList): Renamed.
(WebCore::Document::unregisterNodeList): Ditto.
(WebCore::Document::ensureCachedCollection): Renamed from cachedCollection to match the convetion
used elsewhere. Also use NodeListNodeData::addCacheWithAtomicName now that m_collection is gone.
(WebCore::Document::images):
(WebCore::Document::applets):
(WebCore::Document::embeds):
(WebCore::Document::plugins):
(WebCore::Document::scripts):
(WebCore::Document::links):
(WebCore::Document::forms):
(WebCore::Document::anchors):
(WebCore::Document::all):
(WebCore::Document::windowNamedItems): Use addCacheWithAtomicName.
(WebCore::Document::documentNamedItems): Ditto.
(WebCore::Document::reportMemoryUsage): Removed code for m_collection since it has been removed.
* dom/Document.h:
(WebCore::Document): Removed m_collections, m_documentNamedItemCollections, and
m_windowNamedItemCollections.
* dom/Element.cpp:
(WebCore::Element::ensureCachedHTMLCollection): Merged ElementRareData::ensureCachedHTMLCollection.
(WebCore::Element::cachedHTMLCollection): Merged ElementRareData::cachedHTMLCollection.
* Source/WebCore/dom/ElementRareData.h: Removed ensureCachedHTMLCollection, cachedHTMLCollection,
and removeCachedHTMLCollection since they're no longer used.
* dom/LiveNodeList.h:
(WebCore::LiveNodeListBase::LiveNodeListBase): Call registerNodeList now that LiveNodeList
and HTMLCollection share the same storage in all nodes.
(WebCore::LiveNodeListBase::~LiveNodeListBase): Ditto about unregisterNodeList.
(WebCore::LiveNodeList): Removed the calls to registerNodeList and unregisterNodeList since they
are now called in the base class.
* dom/NameNodeList.h:
(WebCore::NameNodeList::create):
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::addCacheWithAtomicName): Pass in CollectionType as the second argument
to T::create. This is used in HTMLNameCollection::create. Sevearl LiveNodeList constructors and
create functions have been modified to support this.
(WebCore::NodeListsNodeData::adoptTreeScope):
(WebCore::NodeListsNodeData::namedNodeListKey): CollectionType is no longer restricted in its range.
* dom/TagNodeList.h:
(WebCore::TagNodeList::create):
(WebCore::HTMLTagNodeList::create):
* html/CollectionType.h: Deleted a bunch of unused inline functions and constants, and cleanup enum.
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::HTMLCollection): Removed the call to registerNodeListCache since it's called
in LiveNodeListBase now.
(WebCore::HTMLCollection::~HTMLCollection): Ditto. Also replaced calls to removeCachedHTMLCollection
of Element and Document by a call to NodeListsNodeData::removeCacheWithAtomicName.
* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
(WebCore::HTMLFormControlsCollection::create):
* html/HTMLFormControlsCollection.h:
(HTMLFormControlsCollection):
* html/HTMLNameCollection.cpp:
(WebCore::HTMLNameCollection::HTMLNameCollection):
(WebCore::HTMLNameCollection::~HTMLNameCollection):
* html/HTMLNameCollection.h:
(WebCore::HTMLNameCollection::create):
(HTMLNameCollection):
* html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::HTMLOptionsCollection):
(WebCore::HTMLOptionsCollection::create):
* html/HTMLOptionsCollection.h:
(HTMLOptionsCollection):
* html/HTMLTableRowsCollection.cpp:
(WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection):
(WebCore::HTMLTableRowsCollection::create):
* html/HTMLTableRowsCollection.h:
(HTMLTableRowsCollection):
* html/LabelsNodeList.h:
(WebCore::LabelsNodeList::create):
* html/RadioNodeList.h:
(WebCore::RadioNodeList::create):
2012-11-27 Pravin D <pravind.2k4@gmail.com>
max-height property not respected in case of tables
https://bugs.webkit.org/show_bug.cgi?id=98633
Reviewed by Julien Chaffraix.
The max-height property determines the maximum computed height an element can have. In case of tables
the computed height was not being limited by the max-height property. The current patch fixes the same.
Test: fast/table/css-table-max-height.html
* rendering/RenderTable.cpp:
(WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
Helper function to compute height from the given style height.
This function handles style height of type fixed, percent and viewport percent.
As height of type 'calculated' gets internally resolved to either fixed or percent
there is no special handling required for the same.
(WebCore):
(WebCore::RenderTable::layout):
Logic to compute the logical height of an element such that it does not exceed the max-height value given that
min-width < Content height < max-height, when min-height < max-height.
However max-height value is not respected if either min-height > max-height or Content height > max-height.
* rendering/RenderTable.h:
(RenderTable):
Function definition for the newly add function convertStyleLogicalHeightToComputedHeight().
2012-11-27 Roger Fong <roger_fong@apple.com>
Windows specific implementation of usesTileCacheLayer needed after r133056.
https://bugs.webkit.org/show_bug.cgi?id=103321
Reviewed by Simon Fraser.
After r133056 it no longer suffices to use the existing usesTileCacheLayer method on Windows.
The change resulted in 3 crashing tests:
compositing/rotated-tiled-clamped
compositing/rotated-tiled-preserve3d-clamped
fast/events/tabindex-focus-blur-all
* platform/graphics/ca/PlatformCALayer.h:
(WebCore::PlatformCALayer::usesTileCacheLayer):
(PlatformCALayer):
Adding in platform specific method for Windows that returns false for this method.
2012-11-27 Christophe Dumez <christophe.dumez@intel.com>
Canvas does not draw any text if the font is not fully loaded yet
https://bugs.webkit.org/show_bug.cgi?id=103392
Reviewed by Kenneth Rohde Christiansen.
Update CanvasRenderingContext2D::drawTextInternal() so that the
text is being drawn, even if custom fonts are still being loaded.
Without this, WebKit was not drawing any text on the canvas if
the needed font is custom and is not fully loaded yet. This seems
broken.
The new behavior is according to specification:
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html
The specification says: "If a font is used before it is fully
loaded, or if the font style source object does not have that
font in scope at the time the font is to be used, then it must be
treated as if it was an unknown font, falling back to another as
described by the relevant CSS specifications."
Test: http/tests/canvas/canvas-slow-font-loading.html
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawTextInternal):
* platform/graphics/Font.cpp:
(WebCore::Font::drawText): Add argument to specify the behavior
when custom fonts are not ready. By default, it will not draw
anything (same behavior as before). However, the Canvas code
can now request that a fallback font is used if the custom
font is not fully loaded yet.
* platform/graphics/Font.h: #undef Complex if defined to avoid
conflicting with Complex value in CodePath enum. X11/X.h is
defining Complex to 0.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawBidiText):
* platform/graphics/GraphicsContext.h:
(WebCore):
(GraphicsContext):
2012-11-27 Dean Jackson <dino@apple.com>
No need for ExceptionCode in HTMLMediaElement::load
https://bugs.webkit.org/show_bug.cgi?id=103438
Reviewed by Eric Carlson.
After https://bugs.webkit.org/show_bug.cgi?id=103318, there is no
need for the ExceptionCode parameter in load(). The HTML5 spec says
that all errors in loading are communicated via state.
http://dev.w3.org/html5/spec/media-elements.html#dom-media-load
Of the 29 tests exercising load(), none of them were exercising
exceptions (obviously).
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::load):
(WebCore::HTMLMediaElement::resume):
* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl:
2012-11-27 Robert Hogan <robert@webkit.org>
REGRESSION (r125578): word-wrapping in absolute position with nbsp, word-spacing and custom font
https://bugs.webkit.org/show_bug.cgi?id=101443
Reviewed by David Hyatt.
Leading non-breaking space in a text run should always get word-spacing applied. When RenderText
calculates the preferred with of a run of text it breaks it up into word segments that contain
no breaking spaces and calculates the width of each. So when calculating the width of ' b'
it needs to add word-spacing to the leading non-breaking space as it does not get collapsed away.
Test: fast/text/word-space-nbsp.html
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advanceInternal):
2012-11-27 Yong Li <yoli@rim.com>
[BlackBerry] EventLoop should end when WebKit thread is exiting
https://bugs.webkit.org/show_bug.cgi?id=103301
Reviewed by Rob Buis.
RIM PR# 194379.
Internally reviewed by Joe Mason.
Break the nested event loop when WebKit thread has been asked to quit.
* platform/blackberry/EventLoopBlackBerry.cpp:
(WebCore::EventLoop::cycle):
2012-11-27 Pratik Solanki <psolanki@apple.com>
objc/objc-runtime.h does not exist on all PLATFORM(MAC)
https://bugs.webkit.org/show_bug.cgi?id=101780
Reviewed by Brent Fulgham.
Clean up header includes so we don't include objc/objc-runtime.h.
No new tests because no functional changes.
* bridge/objc/objc_header.h:
* page/mac/EventHandlerMac.mm:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
* platform/graphics/mac/WebLayer.mm:
* platform/mac/WebCoreObjCExtras.mm:
* platform/mac/WebVideoFullscreenController.mm:
2012-11-27 Eberhard Graether <egraether@google.com>
Plumbing showPaintRects out of InspectorPageAgent to use a different drawing implementation if available.
https://bugs.webkit.org/show_bug.cgi?id=102452
Reviewed by Pavel Feldman.
This change makes the showPaintRects setting in the Web Inspector's settings notify InspectorClient
when changed. And the default paint rects drawing is not used if an alternative is available.
This allows Chromium to draw the paint rects in the compositor's HUDLayer.
No new tests.
* inspector/InspectorClient.h:
(WebCore::InspectorClient::overridesShowPaintRects):
(WebCore::InspectorClient::setShowPaintRects):
(InspectorClient):
* inspector/InspectorPageAgent.cpp:
(PageAgentState):
(WebCore::InspectorPageAgent::restore):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::setShowPaintRects):
(WebCore::InspectorPageAgent::didPaint):
2012-11-27 Allan Sandfeld Jensen <allan.jensen@digia.com>
Unreviewed cleanup.
Remove leftover file that was replaced by PlatformScreenQt.cpp 4 years ago.
* platform/qt/ScreenQt.cpp: Removed.
2012-11-27 Istiaque Ahmed <lazyboy@chromium.org>
freeV8NPObject: Skip trying to remove object from per context data's ObjectMap if the object does not exist in the map.
https://bugs.webkit.org/show_bug.cgi?id=103356
Reviewed by Adam Barth.
Before introducing per context data, it used to be the case that we would ignore removing v8 object
from context data's map if we couldn't find it. With perContextData change, this turned into an ASSERT
instead and we had crash reports.
Related crbug.com/154462.
Test: platform/chromium/plugins/release-frame-content-window.html
* bindings/v8/NPV8Object.cpp:
(WebCore::freeV8NPObject):
2012-11-27 Marja Hölttä <marja@chromium.org>
Add callbacks to the FrameLoaderClient when a resource is requested
https://bugs.webkit.org/show_bug.cgi?id=92761
Reviewed by Adam Barth.
In Chromium, when an extension script cancels a network
request (which happens out of process), we'd like to
notify content scripts running on the current page about
which elements failed to load because the requests were
cancelled (as opposed to e.g. the network request just
didn't work). Since the resource request itself does not
carry any information what DOM element is was made for,
currently a content script has to search the DOM tree and
guess which requests will be cancelled by its counter
part. By adding these callbacks, the embedder can make
this connection explictly.
Test: platform/chromium/fast/loader/resource-request-callbacks.html
* loader/FrameLoaderClient.h:
(WebCore):
(WebCore::FrameLoaderClient::dispatchWillRequestResource):
(FrameLoaderClient):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
2012-11-27 Dean Jackson <dino@apple.com>
Unreviewed build fix for r135866.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::load):
2012-11-27 Leo Yang <leoyang@rim.com>
[BlackBerry] Adapt to the change of BlackBerry::Platform::FilterStream::notifyHeadersReceived
https://bugs.webkit.org/show_bug.cgi?id=103425
Reviewed by Yong Li.
A const has been added for HeaderList parameter of BlackBerry::Platform::FilterStream::notifyHeadersReceived.
The patch is adapting to this change.
No functionalities changed no new tests.
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::notifyHeadersReceived):
* platform/network/blackberry/NetworkJob.h:
(NetworkJob):
* platform/network/blackberry/rss/RSSFilterStream.cpp:
(WebCore::RSSFilterStream::notifyHeadersReceived):
* platform/network/blackberry/rss/RSSFilterStream.h:
2012-11-27 Min Qin <qinmin@chromium.org>
Don't throw an exception if user gesture is required for load
https://bugs.webkit.org/show_bug.cgi?id=103318
Reviewed by Eric Carlson.
There is no need to throw an exception if media load requires user gesture.
Since chrome does not render the poster and media control after an exception is thrown, throwing an exception may break a lot of sites on android.
Change a current test to match the new behavior: media/video-load-require-user-gesture.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::load):
2012-11-27 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
[GStreamer] Verify if GStreamer was previously initialized
https://bugs.webkit.org/show_bug.cgi?id=103151
Reviewed by Philippe Normand.
This patch calls gst_is_initialized() before calling gst_init_check()
in order to verify if GStreamer has not been initialized before.
This is useful particularly for WebKit1 so the applications could
initialize GStreamer before.
As the API call was added in GStreamer v0.10.31, the patch fences the
call only in that version of GStreamer or above.
No new tests, existing media tests cover this change.
* platform/graphics/gstreamer/GStreamerUtilities.cpp:
(WebCore::initializeGStreamer):
2012-11-27 Kentaro Hara <haraken@chromium.org>
[V8] Remove V8StringResource::m_string
https://bugs.webkit.org/show_bug.cgi?id=103367
Reviewed by Adam Barth.
This patch cleans up V8StringResource and removes V8StringResource::m_string.
This patch won't change performance. (This patch just adds one redundant IsString()
check and one IsInt32() check.) I confirmed no performance regression in micro benchmarks
(https://bugs.webkit.org/attachment.cgi?id=176178).
No tests. No change in behavior.
* bindings/v8/V8Binding.cpp:
(WebCore::v8NonStringValueToWebCoreString):
* bindings/v8/V8StringResource.cpp:
(WebCore::int32ToWebCoreStringFast):
(WebCore::String):
(WebCore::AtomicString):
(WebCore):
* bindings/v8/V8StringResource.h:
(WebCore::V8StringResource::V8StringResource):
(WebCore::V8StringResource::prepareBase):
(WebCore::V8StringResource::toString):
(V8StringResource):
(WebCore::::prepare):
2012-11-27 Alec Flett <alecflett@chromium.org>
IndexedDB: stub out IDBDatabaseBackendInterface::createTransaction
https://bugs.webkit.org/show_bug.cgi?id=102730
Reviewed by Darin Fisher.
Stub out and support passing a 64-bit transaction id
so the frontend can refer to transactions by id rather than
a proxy object or a direct pointer reference. This will ultimately
loosen ownership and lifetime of transactions from the frontend
and backend.
No new tests, this is just part of a refactor.
* Modules/indexeddb/IDBDatabase.cpp:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore):
(WebCore::IDBDatabaseBackendImpl::transaction):
(WebCore::IDBDatabaseBackendImpl::createTransaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(IDBDatabaseBackendInterface):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::create):
(WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(IDBTransactionBackendImpl):
(WebCore::IDBTransactionBackendImpl::id):
2012-11-27 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Crash when dispatching regionlayoutupdate
https://bugs.webkit.org/show_bug.cgi?id=102944
Reviewed by Andreas Kling.
The event dispatch function was incorrectly assuming the RenderNamedFlowThread is valid. Because the event is asynchronous it's
possible for the flow to be in the "NULL" state (the renderer is 0) while the regionlayoutupdate event is dispatched.
Test: fast/regions/webkit-named-flow-event-crash.html
* dom/WebKitNamedFlow.cpp:
(WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent): Remove the ASSERT and don't dispatch the event if the flow is
in the "NULL" state.
2012-11-27 Mihnea Ovidenie <mihnea@adobe.com>
[CSS Regions] Absolutely positioned regions do not expand to fill their container
https://bugs.webkit.org/show_bug.cgi?id=102385
Reviewed by Julien Chaffraix.
In the case of an absolutely positioned region with height auto, height computation should follow
the path of block elements instead of replaced elements.
Tests: fast/regions/autosize-abspos-anchoredregion-vertlr.html
fast/regions/autosize-abspos-anchoredregion.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePositionedLogicalHeight): Skip replaced element height computation when a region has height auto.
* rendering/RenderRegion.h:
(WebCore::RenderRegion::shouldHaveAutoLogicalHeight): Make it private since it is not accessed from outside.
2012-11-27 Alexander Pavlov <apavlov@chromium.org>
Incorrect value of CSSStyleDeclaration#length when a shorthand property is inherit or initial
https://bugs.webkit.org/show_bug.cgi?id=73002
Reviewed by Alexis Menard.
Before the patch, "inherit" and "initial" shorthands would get added to the StylePropertySet as-is, their longhands unspecified.
This patch tackles two aspects of the problem:
- When parsing "initial" and "inherit" shorthands, their longhands are added to the property set with the corresponding values.
- When querying "initial" and "inherit" shorthands, their values are reconstructed from the longhands as usual, but if all of the longhands
are found to have the same explicit "initial" or "inherit" value, the respective single value is returned as the shorthand value.
When reconstructing shorthands, a "common value" is tracked. If all longhands involved have the same explicit value, it becomes the
"common value", otherwise it is a String(). The "inherit" or "initial" common value ultimately becomes the shorthand value
(except for the "background-position" shorthand, which is a special case).
* css/CSSParser.cpp:
(WebCore::parseKeywordValue): Parse shorthands' "initial" and "inherit" values using the CSSParser.
(WebCore::CSSParser::addExpandedPropertyForValue): Add simple property or all sharthand's longhands with given value and priority.
(WebCore::CSSParser::parseValue): For "initial" and "inherit" shorthands, add their longhands with the respective value, not the shorthands proper.
* css/CSSParser.h: Add addExpandedPropertyForValue().
* css/StylePropertySet.cpp:
(WebCore::isInitialOrInherit): Check if the value is "initial" or "inherit".
(WebCore):
(WebCore::StylePropertySet::appendFontLonghandValueIfExplicit): Modified to track the common value for the "font" shorthand.
(WebCore::StylePropertySet::fontValue): Ditto.
(WebCore::StylePropertySet::get4Values): Return "inherit" or "initial" if all 4 values are explicitly "inherit" or "initial".
(WebCore::StylePropertySet::getLayeredShorthandValue): Use the common value approach for layered shorthands.
(WebCore::StylePropertySet::getShorthandValue): Ditto for ordinary shorthands.
(WebCore::StylePropertySet::borderPropertyValue): Ditto for the "border" shorthand.
* css/StylePropertySet.h: Modify the appendFontLonghandValueIfExplicit() signature.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setFont): Now that "inherit" and "initial" shorthands are represented by their longhands,
we need to check the string value of the "font" shorthand for being "inherit" or "initial" instead: getPropertyCSSValue() no longer works,
since the shorthand itself is no longer added to the StylePropertySet.
2012-11-27 Kentaro Hara <haraken@chromium.org>
Unreviewed. Renamed TRYCATCH => V8TRYCATCH.
(I forgot to apply reviewer's comment in bug 103352 when landing r135817.)
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateParametersCheck):
(GenerateEventConstructorCallback):
(ConvertToV8StringResource):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::Float64ArrayV8Internal::fooCallback):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
(WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::constructorCallback):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::TestEventTargetV8Internal::itemCallback):
(WebCore::TestEventTargetV8Internal::dispatchEventCallback):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
(WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter):
(WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
(WebCore::V8TestInterface::constructorCallback):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructorCallback):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
(WebCore::TestObjV8Internal::stringAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter):
(WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
(WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
(WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
(WebCore::TestObjV8Internal::longMethodWithArgsCallback):
(WebCore::TestObjV8Internal::objMethodWithArgsCallback):
(WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
(WebCore::TestObjV8Internal::methodReturningSequenceCallback):
(WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
(WebCore::TestObjV8Internal::idbKeyCallback):
(WebCore::TestObjV8Internal::optionsObjectCallback):
(WebCore::TestObjV8Internal::methodWithOptionalArgCallback):
(WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
(WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
(WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
(WebCore::TestObjV8Internal::overloadedMethod1Callback):
(WebCore::TestObjV8Internal::overloadedMethod2Callback):
(WebCore::TestObjV8Internal::overloadedMethod3Callback):
(WebCore::TestObjV8Internal::overloadedMethod4Callback):
(WebCore::TestObjV8Internal::overloadedMethod6Callback):
(WebCore::TestObjV8Internal::overloadedMethod7Callback):
(WebCore::TestObjV8Internal::overloadedMethod8Callback):
(WebCore::TestObjV8Internal::overloadedMethod9Callback):
(WebCore::TestObjV8Internal::overloadedMethod10Callback):
(WebCore::TestObjV8Internal::overloadedMethod11Callback):
(WebCore::TestObjV8Internal::classMethodWithOptionalCallback):
(WebCore::TestObjV8Internal::overloadedMethod12Callback):
(WebCore::TestObjV8Internal::classMethodWithClampCallback):
(WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
(WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
(WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
(WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
(WebCore::TestObjV8Internal::stringArrayFunctionCallback):
(WebCore::TestObjV8Internal::convert1Callback):
(WebCore::TestObjV8Internal::convert2Callback):
(WebCore::TestObjV8Internal::convert4Callback):
(WebCore::TestObjV8Internal::convert5Callback):
(WebCore::TestObjV8Internal::strictFunctionCallback):
(WebCore::TestObjV8Internal::variadicStringMethodCallback):
(WebCore::TestObjV8Internal::variadicDoubleMethodCallback):
(WebCore::TestObjV8Internal::variadicNodeMethodCallback):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::constructor1Callback):
(WebCore::V8TestOverloadedConstructors::constructor2Callback):
(WebCore::V8TestOverloadedConstructors::constructor3Callback):
(WebCore::V8TestOverloadedConstructors::constructor4Callback):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
* bindings/v8/V8Binding.h:
(WebCore::toV8Sequence):
* bindings/v8/V8BindingMacros.h:
* bindings/v8/custom/V8BlobCustom.cpp:
(WebCore::V8Blob::constructorCallbackCustom):
* bindings/v8/custom/V8ConsoleCustom.cpp:
(WebCore::V8Console::profileCallback):
(WebCore::V8Console::profileEndCallback):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::handlePostMessageCallback):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::V8DataView::getInt8Callback):
(WebCore::V8DataView::getUint8Callback):
(WebCore::V8DataView::setInt8Callback):
(WebCore::V8DataView::setUint8Callback):
* bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
(WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
* bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
(WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::evaluateCallback):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::addCallback):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::pushStateCallback):
(WebCore::V8History::replaceStateCallback):
* bindings/v8/custom/V8IntentCustom.cpp:
(WebCore::V8Intent::constructorCallbackCustom):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::V8SQLTransaction::executeSqlCallback):
* bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
(WebCore::V8SQLTransactionSync::executeSqlCallback):
* bindings/v8/custom/V8SVGLengthCustom.cpp:
(WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::V8WebGLRenderingContext::getExtensionCallback):
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::V8WorkerContext::importScriptsCallback):
2012-11-27 Dan Carney <dcarney@google.com>
[V8] add contextForWorld helper function to ScriptController
https://bugs.webkit.org/show_bug.cgi?id=103376
Reviewed by Kentaro Hara.
Reducing some commonly occuring code with an inline function.
No new tests. No change in functionality.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::contextForWorld):
(WebCore):
(WebCore::ScriptController::currentWorldContext):
(WebCore::ScriptController::mainWorldContext):
* bindings/v8/ScriptController.h:
(ScriptController):
2012-11-26 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Implement the mimetype icon methods
https://bugs.webkit.org/show_bug.cgi?id=103260
Reviewed by Simon Hausmann.
* platform/graphics/Icon.h:
(Icon):
* platform/graphics/qt/IconQt.cpp:
(WebCore::Icon::createIconForFiles):
(WebCore::Icon::paint):
2012-09-17 Allan Sandfeld Jensen <allan.jensen@nokia.com>
Incorrect rect-based hit-test result when hit-test region includes culled inlines
https://bugs.webkit.org/show_bug.cgi?id=88376
Reviewed by Dave Hyatt.
Move the handling of culled inlines from HitTestResult::addNodeToRectBasedTestResult to
InlineFlowBox::nodeAtPoint. This makes it possible to fix a number of bugs with how
culled inlines were handled. They are now checked after all their children, and may
terminate area-based hit-testing if they contain the whole area.
Tests: fast/dom/nodesFromRect/nodesFromRect-culled-inlines.html
fast/dom/nodesFromRect/nodesFromRect-culled-inline-with-linebreak.html
* rendering/HitTestResult.cpp:
(WebCore::HitTestLocation::HitTestLocation):
(WebCore::HitTestResult::addNodeToRectBasedTestResult):
* rendering/HitTestResult.h:
(HitTestLocation):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::nodeAtPoint):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::hitTestCulledInline):
* rendering/RenderInline.h:
(RenderInline):
2012-11-27 Kenneth Rohde Christiansen <kenneth@webkit.org>
REGRESSION(134887) [Qt][EFL][WK2] Repaint counter not working
https://bugs.webkit.org/show_bug.cgi?id=103261
Reviewed by Noam Rosenthal.
Fixed regression introduced in 134887, which introduced the
updateContentsNoSwizzle method and called it directly from
the repaint counter.
This method obviously needs to bind the texture.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::BitmapTextureGL::updateContentsNoSwizzle):
2012-11-27 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135786.
http://trac.webkit.org/changeset/135786
https://bugs.webkit.org/show_bug.cgi?id=103379
It made 3 plugin tests timeout on several platforms (Requested
by Ossy on #webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* loader/FrameLoadRequest.cpp: Removed.
* loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::FrameLoadRequest):
(FrameLoadRequest):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
* loader/FrameLoader.h:
(FrameLoader):
* page/DragController.cpp:
(WebCore::DragController::performDrag):
* plugins/PluginView.cpp:
(WebCore::PluginView::performRequest):
2012-11-27 Kent Tamura <tkent@chromium.org>
Implement ValidityState::badInput
https://bugs.webkit.org/show_bug.cgi?id=102861
Reviewed by Hajime Morita.
Add ValidityState::badInput, add hasBadInput, which always returns
false, to FormAssociatedElement, HTMLInputElement, and InputType.
For NumberInputType, we had hasUnacceptableValue, which was a hack to
make an input element match to :invalid if the element had non-number
strings. We don't need the hack any more because badInput affects :invalid
style. hasUnacceptableValue is re-used for hasBadInput implementation.
We cleared invalid numbers when elements lost focus to tell users that
the element had invalid numbers. We don't need this behavior because the
interactive validation tells it.
For date/time input types, we should make an input badInput when the
input has empty value but its sub-fields have values. It covers both of
partial input cases such as 12/--/2012 and invalid dates such as
02/31/2012.
For other types, ValidityState::badInput always returns false.
This patch doesn't contain tests for badInput validation messages. They
will be added later.
Tests: fast/forms/date-multiple-fields/date-multiple-fields-validity-badinput.html
fast/forms/datetime-multiple-fields/datetime-multiple-fields-validity-badinput.html
fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-validity-badinput.html
fast/forms/month-multiple-fields/month-multiple-fields-validity-badinput.html
fast/forms/number/number-validity-badinput.html
fast/forms/time-multiple-fields/time-multiple-fields-validity-badinput.html
fast/forms/week-multiple-fields/week-multiple-fields-validity-badinput.html
* html/ValidityState.idl: Add badInput IDL attribute.
* html/ValidityState.h:
(ValidityState): Add badInput.
* html/ValidityState.cpp:
(WebCore::ValidityState::badInput):
Added. Calls FormAssociatedElement::hasBadInput.
* html/FormAssociatedElement.h:
(FormAssociatedElement): Add hasBadInput.
* html/FormAssociatedElement.cpp:
(WebCore::FormAssociatedElement::hasBadInput):
Added. It always returns false.
(WebCore::FormAssociatedElement::valid): Takes account of hasBadInput().
* html/HTMLInputElement.h:
(HTMLInputElement):
Remove hasUnacceptableValue, and add hasBadInput override.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::hasBadInput):
Added. Delegate to InputType::hasBadInput.
(WebCore): Remove hasUnacceptableValue.
* html/InputType.h:
(InputType): Add hasBadInput and badInputText, and remove
hasUnacceptableValue.
* html/InputType.cpp:
(WebCore::InputType::hasBadInput): Added. Returns false.
(WebCore::InputType::badInputText):
Added. This function should not be called because hasBadInput always
returns false.
(WebCore::InputType::validationMessage):
Supports badInput. This returns badInputText if hasBadInput is true.
* html/NumberInputType.h:
(NumberInputType): Add hasBadInput and badInputTest. Remove
handleBlurEvent and hasUnacceptableValue.
* html/NumberInputType.cpp:
Remove handleBlurEvent, which cleared invalid number strings.
(WebCore::NumberInputType::hasBadInput):
Added. We don't need to check existence of a renderer. The standard form
validation feature doesn't care of it.
(WebCore::NumberInputType::badInputText): Returns
validationMessageBadInputForNumberText defined in LocalizedStrings.h.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOneSelector):
Remove a hack for hasUnacceptableValue. isValidFormControlElement takes
account of badInput.
* dom/Element.h: Remove hasUnacceptableValue.
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType): Add hasBadInput and badInputText.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::badInputText):
Returns validationMessageBadInputForDateTimeText defined in LocalizedStrings.h.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::hasBadInput):
Added.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue):
Add setNeedsValidityCheck call. It is needed because
updateInnerTextValue can modify subfields empty state.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::subtreeHasChanged): Update a comment.
* platform/LocalizedStrings.h:
(WebCore): Add validationMessageBadInputForNumberText and
validationMessageBadInputForDateTimeText.
* platform/LocalizedStrings.cpp:
(WebCore::validationMessageBadInputForNumberText):
Added a placeholder implementation. This should be fixed later.
* platform/blackberry/LocalizedStringsBlackBerry.cpp:
(WebCore::validationMessageBadInputForNumberText): Ditto.
* platform/efl/LocalizedStringsEfl.cpp:
(WebCore::validationMessageBadInputForNumberText): Ditto.
* platform/qt/LocalizedStringsQt.cpp:
(WebCore::validationMessageBadInputForNumberText): Ditto.
2012-11-27 Hajime Morrita <morrita@google.com>
[Refactoring] NodeFlags::IsShadowRootFlag should be Node::IsDocumentFragmentFlag
https://bugs.webkit.org/show_bug.cgi?id=103370
Reviewed by Kentaro Hara.
This chagne introduces Node::IsDocumentFragmentFlag so that we can
have fast Node::isDocumentFragment().
Note that Node::isShadowRoot() can become slightly slower when it
returns true, but that is minor in terms of the number of calls at runtime.
No new tests. No behavior change.
* dom/DocumentFragment.cpp:
(WebCore::DocumentFragment::create):
* dom/DocumentFragment.h:
* dom/Node.cpp:
(WebCore::Node::documentFragmentIsShadowRoot):
(WebCore):
* dom/Node.h:
(Node):
(WebCore::Node::isDocumentFragment):
(WebCore::Node::isShadowRoot):
(WebCore::Node::parentNode):
(WebCore::Node::parentNodeGuaranteedHostFree):
* dom/ShadowRoot.h:
2012-11-26 Kent Tamura <tkent@chromium.org>
:read-only selector should match to date/time input types
https://bugs.webkit.org/show_bug.cgi?id=103350
Reviewed by Kentaro Hara.
We supported :read-only and :read-write only for text form controls;
i.e. <textarea> and text-field <input>. According to [1], we should
support them for date/time types. So, this patch removes
isTextFormControl check in SelectorChecker, and just relies on
shouldMatchRead{Only,Write}Selector virtual functions.
Tests: Update fast/forms/*/*-appearance-pseudo-classes.html.
[1] http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOneSelector):
Remove isFormControlElement check and isTextFormControl check.
* html/HTMLFormControlElement.cpp:
Remove shouldMatchRead{Only,Write}Selector functions. We don't need
common implementations any more.
* html/HTMLFormControlElement.h: Ditto.
* html/HTMLTextAreaElement.h:
(HTMLTextAreaElement): Add shouldMatchRead{Only,Write}Selector overrides.
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::shouldMatchReadOnlySelector): Added.
(WebCore::HTMLTextAreaElement::shouldMatchReadWriteSelector): Added.
* html/HTMLInputElement.h:
(HTMLInputElement): Add shouldMatchRead{Only,Write}Selector overrides.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::shouldMatchReadOnlySelector):
Added. This checks InputType::supportsReadOnly and readOnly.
(WebCore::HTMLInputElement::shouldMatchReadWriteSelector): Ditto.
* html/InputType.h:
(InputType): Add supportsReadOnly.
* html/InputType.cpp:
(WebCore::InputType::supportsReadOnly): Added. Returns false by default.
* html/BaseDateAndTimeInputType.h:
(BaseDateAndTimeInputType): Add supportsReadOnly.
* html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::supportsReadOnly): Added. Returns true.
* html/TextFieldInputType.h:
(TextFieldInputType): Add supportsReadOnly.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::supportsReadOnly): Added. Returns true.
2012-11-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135822.
http://trac.webkit.org/changeset/135822
https://bugs.webkit.org/show_bug.cgi?id=103369
Undo the revert of r135818, since that change does not affect
code used by Chromium (Requested by apavlov on #webkit).
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setMaskLayer):
(WebCore::GraphicsLayerTextureMapper::setContentsVisible):
2012-11-26 Michael Pruett <michael@68k.org>
[GTK] Fix build error on GTK due to r135749
https://bugs.webkit.org/show_bug.cgi?id=103365
Reviewed by Dean Jackson.
In r135749, many files which were already included
in webcore_built_sources were erroneously added to
webcore_svg_built_sources in GNUmakefile.list.am.
* GNUmakefile.list.am:
2012-11-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135818.
http://trac.webkit.org/changeset/135818
https://bugs.webkit.org/show_bug.cgi?id=103368
platform/chromium/virtual/threaded/compositing/visibility
/visibility-simple-webgl-layer.html crash on Mountain Lion
(Requested by apavlov on #webkit).
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setMaskLayer):
(WebCore::GraphicsLayerTextureMapper::setContentsVisible):
2012-11-26 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: Set visibility to a mask layer in GraphicsLayer::setContentsVisible().
https://bugs.webkit.org/show_bug.cgi?id=103297
Reviewed by Noam Rosenthal.
GraphicsLayerTextureMapper and CoordinatedGraphicsLayer set the visibility of a
mask layer in setContentsVisible() and setMaskLayer() like setting a size.
This patch is needed because RenderLayerBacking does not set the visibility to a
mask layer like the size.
This patch does not change user experience because an invisible layer is not
rendered although the mask layer is rendered. In that sense, it is an
optimization patch.
No new tests. It is an optimization patch.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setMaskLayer):
(WebCore::GraphicsLayerTextureMapper::setContentsVisible):
2012-11-26 Kentaro Hara <haraken@chromium.org>
[V8] Rename EXCEPTION_BLOCK() macros
https://bugs.webkit.org/show_bug.cgi?id=103352
Reviewed by Adam Barth.
Since V8Parameter was renamed to V8StringResource,
we rename macros that use V8Parameter.
EXCEPTION_BLOCK() => V8TRYCATCH()
STRING_TO_V8PARAMETER_EXCEPTION_BLOCK() => V8TRYCATCH_FOR_V8STRINGRESOURCE()
STRING_TO_V8PARAMETER_EXCEPTION_BLOCK_VOID() => V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID()
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateParametersCheck):
(GenerateEventConstructorCallback):
(ConvertToV8StringResource):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::Float64ArrayV8Internal::fooCallback):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
(WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::constructorCallback):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::TestEventTargetV8Internal::itemCallback):
(WebCore::TestEventTargetV8Internal::dispatchEventCallback):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
(WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter):
(WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
(WebCore::V8TestInterface::constructorCallback):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructorCallback):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
(WebCore::TestObjV8Internal::stringAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter):
(WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
(WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
(WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
(WebCore::TestObjV8Internal::longMethodWithArgsCallback):
(WebCore::TestObjV8Internal::objMethodWithArgsCallback):
(WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
(WebCore::TestObjV8Internal::methodReturningSequenceCallback):
(WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
(WebCore::TestObjV8Internal::idbKeyCallback):
(WebCore::TestObjV8Internal::optionsObjectCallback):
(WebCore::TestObjV8Internal::methodWithOptionalArgCallback):
(WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
(WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
(WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
(WebCore::TestObjV8Internal::overloadedMethod1Callback):
(WebCore::TestObjV8Internal::overloadedMethod2Callback):
(WebCore::TestObjV8Internal::overloadedMethod3Callback):
(WebCore::TestObjV8Internal::overloadedMethod4Callback):
(WebCore::TestObjV8Internal::overloadedMethod6Callback):
(WebCore::TestObjV8Internal::overloadedMethod7Callback):
(WebCore::TestObjV8Internal::overloadedMethod8Callback):
(WebCore::TestObjV8Internal::overloadedMethod9Callback):
(WebCore::TestObjV8Internal::overloadedMethod10Callback):
(WebCore::TestObjV8Internal::overloadedMethod11Callback):
(WebCore::TestObjV8Internal::classMethodWithOptionalCallback):
(WebCore::TestObjV8Internal::overloadedMethod12Callback):
(WebCore::TestObjV8Internal::classMethodWithClampCallback):
(WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
(WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
(WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
(WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
(WebCore::TestObjV8Internal::stringArrayFunctionCallback):
(WebCore::TestObjV8Internal::convert1Callback):
(WebCore::TestObjV8Internal::convert2Callback):
(WebCore::TestObjV8Internal::convert4Callback):
(WebCore::TestObjV8Internal::convert5Callback):
(WebCore::TestObjV8Internal::strictFunctionCallback):
(WebCore::TestObjV8Internal::variadicStringMethodCallback):
(WebCore::TestObjV8Internal::variadicDoubleMethodCallback):
(WebCore::TestObjV8Internal::variadicNodeMethodCallback):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::constructor1Callback):
(WebCore::V8TestOverloadedConstructors::constructor2Callback):
(WebCore::V8TestOverloadedConstructors::constructor3Callback):
(WebCore::V8TestOverloadedConstructors::constructor4Callback):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
* bindings/v8/V8Binding.h:
(WebCore::toV8Sequence):
* bindings/v8/V8BindingMacros.h:
* bindings/v8/custom/V8BlobCustom.cpp:
(WebCore::V8Blob::constructorCallbackCustom):
* bindings/v8/custom/V8ConsoleCustom.cpp:
(WebCore::V8Console::profileCallback):
(WebCore::V8Console::profileEndCallback):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::handlePostMessageCallback):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::V8DataView::getInt8Callback):
(WebCore::V8DataView::getUint8Callback):
(WebCore::V8DataView::setInt8Callback):
(WebCore::V8DataView::setUint8Callback):
* bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
(WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
* bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
(WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::evaluateCallback):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::addCallback):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::pushStateCallback):
(WebCore::V8History::replaceStateCallback):
* bindings/v8/custom/V8IntentCustom.cpp:
(WebCore::V8Intent::constructorCallbackCustom):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::V8SQLTransaction::executeSqlCallback):
* bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
(WebCore::V8SQLTransactionSync::executeSqlCallback):
* bindings/v8/custom/V8SVGLengthCustom.cpp:
(WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::V8WebGLRenderingContext::getExtensionCallback):
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::V8WorkerContext::importScriptsCallback):
2012-11-26 Andreas Kling <akling@apple.com>
Node: Move AreSVGAttributesValidFlag to ElementAttributeData.
<http://webkit.org/b/103349>
Reviewed by Anders Carlsson.
Moved AreSVGAttributesValidFlag to ElementAttributeData and change it to use "dirty" semantics.
This frees up a bit on Node, and we will always have ElementAttributeData if the animated
attributes are dirty anyway.
* dom/Element.cpp:
(WebCore::Element::getAttribute):
* dom/Element.h:
(WebCore::Element::updateInvalidAttributes):
* dom/ElementAttributeData.cpp:
(WebCore::ElementAttributeData::ElementAttributeData):
* dom/ElementAttributeData.h:
(WebCore::ElementAttributeData::ElementAttributeData):
(ElementAttributeData):
* dom/Node.h:
(Node):
* svg/SVGElement.cpp:
(WebCore::SVGElement::updateAnimatedSVGAttribute):
* svg/SVGElement.h:
(WebCore::SVGElement::invalidateSVGAttributes):
2012-11-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135798.
http://trac.webkit.org/changeset/135798
https://bugs.webkit.org/show_bug.cgi?id=103354
Broke the chrome mac build (Requested by noel_ on #webkit).
* platform/graphics/chromium/DeferredImageDecoder.cpp:
(WebCore::DeferredImageDecoder::~DeferredImageDecoder):
(WebCore::DeferredImageDecoder::createResizedLazyDecodingBitmap):
(WebCore::DeferredImageDecoder::frameBufferAtIndex):
(WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
* platform/graphics/chromium/DeferredImageDecoder.h:
(DeferredImageDecoder):
* platform/graphics/chromium/ImageDecodingStore.cpp:
(WebCore::ImageDecodingStore::instanceOnMainThread):
(WebCore::ImageDecodingStore::initializeOnMainThread):
(WebCore::ImageDecodingStore::shutdown):
(WebCore::ImageDecodingStore::calledOnValidThread):
(WebCore::ImageDecodingStore::lookupFrameCache):
(WebCore::ImageDecodingStore::deleteFrameCache):
* platform/graphics/chromium/ImageDecodingStore.h:
(WebCore):
(ImageDecodingStore):
* platform/graphics/chromium/ImageFrameGenerator.cpp:
(WebCore::ImageFrameGenerator::ImageFrameGenerator):
(WebCore::ImageFrameGenerator::~ImageFrameGenerator):
(WebCore::ImageFrameGenerator::setData):
(WebCore::ImageFrameGenerator::decodeAndScale):
* platform/graphics/chromium/ImageFrameGenerator.h:
(WebCore):
(WebCore::ImageFrameGenerator::create):
(ImageFrameGenerator):
* platform/graphics/chromium/LazyDecodingPixelRef.cpp:
(WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
(WebCore::LazyDecodingPixelRef::onLockPixels):
(WebCore::LazyDecodingPixelRef::onUnlockPixels):
* platform/graphics/chromium/LazyDecodingPixelRef.h:
(WebCore):
(LazyDecodingPixelRef):
* platform/graphics/chromium/ScaledImageFragment.cpp:
(WebCore::ScaledImageFragment::ScaledImageFragment):
(WebCore::ScaledImageFragment::isEqual):
(WebCore):
* platform/graphics/chromium/ScaledImageFragment.h:
(WebCore):
(WebCore::ScaledImageFragment::create):
(ScaledImageFragment):
* platform/graphics/chromium/SkSizeHash.h: Removed.
2012-11-26 Huang Dongsung <luxtella@company100.net>
[TexMap] GraphicsLayerTextureMapper::setSize() sets the size of a mask layer.
https://bugs.webkit.org/show_bug.cgi?id=103297
Reviewed by Noam Rosenthal.
Currently, CoordinatedGraphicsLayer sets the size of a mask layer in setSize()
and setMaksLayer(). GraphicsLayerTextureMapper follows the behavior. If so we
don't have to check the size of the mask layer in TextureMapperLayer::flushCompositingState().
No new tests. Covered by existing tests.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setMaskLayer):
(WebCore::GraphicsLayerTextureMapper::setSize):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::flushCompositingState):
2012-11-26 Kentaro Hara <haraken@chromium.org>
[V8] Remove V8Parameter::object()
https://bugs.webkit.org/show_bug.cgi?id=103340
Reviewed by Adam Barth.
V8Parameter can use m_v8Object directly.
No tests. No change in behavior.
* bindings/v8/V8StringResource.h:
(WebCore::::prepare):
2012-11-26 Kentaro Hara <haraken@chromium.org>
[V8] Rename V8Parameter to V8StringResource
https://bugs.webkit.org/show_bug.cgi?id=103341
Reviewed by Adam Barth.
We can rename V8Parameter to V8StringResource. In a follow-up patch,
I will rename macros around V8Parameter.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateParametersCheck):
(GenerateEventConstructorCallback):
(GetNativeTypeFromSignature):
(GetNativeType):
(ConvertToV8StringResource):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::constructorCallback):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
(WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter):
(WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
(WebCore::V8TestInterface::constructorCallback):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructorCallback):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
(WebCore::TestObjV8Internal::stringAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter):
(WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
(WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
(WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
(WebCore::TestObjV8Internal::longMethodWithArgsCallback):
(WebCore::TestObjV8Internal::objMethodWithArgsCallback):
(WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
(WebCore::TestObjV8Internal::overloadedMethod1Callback):
(WebCore::TestObjV8Internal::overloadedMethod3Callback):
(WebCore::TestObjV8Internal::overloadedMethod11Callback):
(WebCore::TestObjV8Internal::overloadedMethod12Callback):
(WebCore::TestObjV8Internal::strictFunctionCallback):
(WebCore::TestObjV8Internal::variadicStringMethodCallback):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::constructor4Callback):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
* bindings/v8/V8StringResource.h:
(WebCore::V8StringResource::V8StringResource):
(WebCore::::prepare):
* bindings/v8/custom/V8ConsoleCustom.cpp:
(WebCore::V8Console::profileCallback):
(WebCore::V8Console::profileEndCallback):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::handlePostMessageCallback):
* bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
(WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
* bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
(WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::pushStateCallback):
(WebCore::V8History::replaceStateCallback):
* bindings/v8/custom/V8IntentCustom.cpp:
(WebCore::V8Intent::constructorCallbackCustom):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::V8SQLTransaction::executeSqlCallback):
* bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
(WebCore::V8SQLTransactionSync::executeSqlCallback):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::V8WebGLRenderingContext::getExtensionCallback):
2012-11-26 Andreas Kling <akling@apple.com>
HTMLOptionElement: Remove two unused members.
<http://webkit.org/b/103337>
Reviewed by Kent Tamura.
Remove two unused members from HTMLOptionElement, m_value and m_label.
40kB progression on Membuster3.
* html/HTMLOptionElement.h:
(HTMLOptionElement):
2012-11-26 Stephen White <senorblanco@chromium.org>
[Chromium] Shared graphics context should only pushGroupMarker() once
https://bugs.webkit.org/show_bug.cgi?id=103082
Reviewed by James Robinson.
GraphicsContext3D's pushGroupMarkerEXT() is being called every time
an ImageBuffer is created, leading to unlimited memory growth, since
they share a common GraphicsContext3D. It should be called only once,
on context creation.
Tested by manually checking the memory usage in Chrome's TaskManager.
(Sorry, I can't think of a way to test this automatically.)
* platform/graphics/gpu/SharedGraphicsContext3D.cpp:
(WebCore::SharedGraphicsContext3DImpl::getOrCreateContext):
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::createAcceleratedCanvas):
2012-11-26 Kentaro Hara <haraken@chromium.org>
[V8] Remove WorkerContextExecutionProxy.{h,cpp}
https://bugs.webkit.org/show_bug.cgi?id=103325
Reviewed by Adam Barth.
Now WorkerContextExecutionProxy.{h,cpp} are empty.
No tests. No change in behavior.
* UseV8.cmake:
* WebCore.gypi:
* bindings/v8/ScheduledAction.cpp:
* bindings/v8/V8AbstractEventListener.cpp:
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/V8WorkerContextEventListener.h:
(WebCore):
* bindings/v8/WorkerContextExecutionProxy.cpp: Removed.
* bindings/v8/WorkerContextExecutionProxy.h: Removed.
* bindings/v8/WorkerScriptController.cpp:
* bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
* bindings/v8/custom/V8MessageChannelCustom.cpp:
* bindings/v8/custom/V8MessagePortCustom.cpp:
* bindings/v8/custom/V8WorkerCustom.cpp:
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
2012-11-26 Michael Saboff <msaboff@apple.com>
Grapheme cluster functions can be simplified for 8 bit Strings
https://bugs.webkit.org/show_bug.cgi?id=102996
Reviewed by Alexey Proskuryakov.
For 8 bit strings, check for the uncommon CR-LF by looking for any CR. If there aren't any CR characters,
the number of Extended Grapheme Clusters is equal to the string length. If we need to handle Tailored
Graheme Clusters, then this will need to change.
No new tests. No change in functionality.
* platform/text/TextBreakIterator.cpp:
(WebCore::numGraphemeClusters):
(WebCore::numCharactersInGraphemeClusters):
2012-11-26 Istiaque Ahmed <lazyboy@chromium.org>
Check for empty perContextData while creating NP V8 Object.
https://bugs.webkit.org/show_bug.cgi?id=98448
Reviewed by Adam Barth.
Fixes crash in npCreateV8ScriptObject(), if NP Invoke is called from a document
that is no longer displayed in frame (isCurrentlyDisplayedInFrame() ==
false), we have empty perContextData and this results in invalid memory access.
Test: platform/chromium/plugins/empty-per-context-data.html
* bindings/v8/NPV8Object.cpp:
(WebCore::npCreateV8ScriptObject):
2012-11-26 Michael Saboff <msaboff@apple.com>
HTML/XML parser helper unconsumeCharacters() can push back 8 bit text as 16 bit text
https://bugs.webkit.org/show_bug.cgi?id=103317
Reviewed by Oliver Hunt.
Changed to use the String directly from the StringBuilder instead of creating our own.
Used toStringPreserveCapacity() in case the caller may want to add to the StringBuilder
even though current callers don't.
No new tests. No change in functionality.
* xml/parser/CharacterReferenceParserInlines.h:
(WebCore::unconsumeCharacters):
2012-11-26 Noel Gordon <noel.gordon@gmail.com>
PNG decode performance: avoid using frame buffer.setRGBA(x,y)
https://bugs.webkit.org/show_bug.cgi?id=103216
Reviewed by Brent Fulgham.
Writing decoded row pixels to the frame buffer with buffer.setRGBA(x,y) is slow compared
to writing direct to the frame buffer address. Use buffer.getAddr() to obtain the output
pixel row address, write the decoded row pixels to that address.
No new tests. Covered by many existing tests.
* platform/image-decoders/ImageDecoder.h:
(WebCore::ImageFrame::setRGBA): Make routine setRGBA(PixelData* dest, ...) public. Test
m_premultiplyAlpha once to minimize code branching in this routine.
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::rowAvailable): Write decoded row pixels to the frame buffer
using the pixel address form: buffer.setRGBA(address++, ...).
2012-11-26 Alpha Lam <hclam@chromium.org>
[chromium] Implement full-featured image cache
https://bugs.webkit.org/show_bug.cgi?id=99784
Reviewed by James Robinson.
Implement a thread-safe image cache to be used with deferred image
decoding. Image cache can now be accessed on any thread.
The patch implements the following logic:
1. Mutex to protect all cache operations.
2. Cache indexing using key (ImageFrameGenerator*, SkISize scaledSize)
3. Cache lookup.
4. Cache insertion.
5. Generation of cache entry by scaling full size image.
6. Generation of cache entries by decoding and scaling.
Classes involved:
ImageDecodingStore
Responsible for owning cache entries and indexing. Pruning and memory
management will be added later.
ImageFrameGenerator
Responsible for generating new cache enties and insert them into
ImageDecodingStore.
LazyDecodingPixelRef
Responsible for cache lookup and lazy generation of cache entries
using ImageFrameGenerator. There is a mutex to protect concurrent
lock operations.
These items are not implemented in this patch:
1. Cache pruning.
2. Setting cache memory limit.
3. Cache deletion.
4. Caching incomplete images and ImageDecoder.
Unit tests added in ImageFrameGeneratorTest.cpp.
Layout tests are under platform/chromium/virtual/fast/images.
* platform/graphics/chromium/DeferredImageDecoder.cpp:
(WebCore::DeferredImageDecoder::~DeferredImageDecoder):
(WebCore::DeferredImageDecoder::createResizedLazyDecodingBitmap):
(WebCore::DeferredImageDecoder::setEnabled):
(WebCore):
(WebCore::DeferredImageDecoder::frameBufferAtIndex):
(WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
* platform/graphics/chromium/DeferredImageDecoder.h:
(DeferredImageDecoder):
* platform/graphics/chromium/ImageDecodingStore.cpp:
(WebCore::ImageDecodingStore::instance):
(WebCore::ImageDecodingStore::initializeOnce):
(WebCore::ImageDecodingStore::shutdown):
(WebCore::ImageDecodingStore::lockCompleteCache):
Lookup complete cache entry using hash key, increment use count.
(WebCore::ImageDecodingStore::lockIncompleteCache): TODO.
(WebCore::ImageDecodingStore::unlockCache):
Lookup cache entry using hash key, decrement use count.
(WebCore):
(WebCore::ImageDecodingStore::insertAndLockCache):
Insert new cache entry and increment use count.
(WebCore::ImageDecodingStore::prune): TODO.
* platform/graphics/chromium/ImageDecodingStore.h:
(WebCore):
(ImageDecodingStore):
(WebCore::ImageDecodingStore::CacheEntry::create):
(WebCore::ImageDecodingStore::CacheEntry::createAndUse):
(CacheEntry):
(WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
(WebCore::ImageDecodingStore::CacheEntry::~CacheEntry):
* platform/graphics/chromium/ImageFrameGenerator.cpp:
(WebCore::ImageFrameGenerator::ImageFrameGenerator):
(WebCore::ImageFrameGenerator::setData):
(WebCore::ImageFrameGenerator::decodeAndScale):
Method for creating new cache entries. This is protected by a mutex
to prevent concurrent operations. Which means only one thread can
generate new cache entries for a set of encoded data.
(WebCore):
(WebCore::ImageFrameGenerator::tryToLockCache):
Tries to lookup a cache entry.
(WebCore::ImageFrameGenerator::tryToScale):
Tries to lookup a full size cache entry and generate a scaled version.
(WebCore::ImageFrameGenerator::tryToDecodeAndScale):
Tries to decode and scale.
* platform/graphics/chromium/ImageFrameGenerator.h:
(WebCore):
(ImageDecoderFactory):
(WebCore::ImageFrameGenerator::create):
(ImageFrameGenerator):
(WebCore::ImageFrameGenerator::setImageDecoderFactoryForTesting):
* platform/graphics/chromium/LazyDecodingPixelRef.cpp:
(WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
(WebCore::LazyDecodingPixelRef::onLockPixels):
(WebCore::LazyDecodingPixelRef::onUnlockPixels):
* platform/graphics/chromium/LazyDecodingPixelRef.h:
(WebCore):
(LazyDecodingPixelRef):
* platform/graphics/chromium/ScaledImageFragment.cpp:
(WebCore::ScaledImageFragment::ScaledImageFragment):
* platform/graphics/chromium/ScaledImageFragment.h:
(WebCore):
(WebCore::ScaledImageFragment::create):
(ScaledImageFragment):
(WebCore::ScaledImageFragment::scaledSize):
* platform/graphics/chromium/SkSizeHash.h: Added.
(WTF):
2012-11-26 Andreas Kling <akling@apple.com>
Node: Remove IsSynchronizingSVGAttributesFlag.
<http://webkit.org/b/103328>
Reviewed by Antti Koivisto.
Animated SVG attributes used to be synchronized by using DOM API which could use unwanted re-entrancy
via callbacks below Element::attributeChanged(). The "is synchronizing SVG attributes" flag was used
to protect against such re-entrancy.
These days, lazy attributes are synchronized using Element::setSynchronizedLazyAttribute() to avoid
issues like this. The flag does nothing, so we can just remove it.
* dom/Node.h:
(WebCore):
* svg/SVGElement.cpp:
(WebCore::SVGElement::attributeChanged):
(WebCore::SVGElement::updateAnimatedSVGAttribute):
2012-11-26 Kentaro Hara <haraken@chromium.org>
[V8] Refactor WorkerScriptController
https://bugs.webkit.org/show_bug.cgi?id=103330
Reviewed by Adam Barth.
r135703 just moved methods from WorkerContextExecutionProxy
to WorkerScriptController. We should refactor the methods as a follow-up.
No tests. No change in behavior.
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::~WorkerScriptController):
(WebCore::WorkerScriptController::disposeContext):
(WebCore::WorkerScriptController::initializeContextIfNeeded):
(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::disableEval):
* bindings/v8/WorkerScriptController.h:
(WorkerScriptController):
2012-11-26 Varun Jain <varunjain@chromium.org>
LongPress and LongTap gestures should start drag/drop and open context menu respectively.
https://bugs.webkit.org/show_bug.cgi?id=101545
Reviewed by Antonio Gomes.
For LongPress, we simulate drag by sending a mouse down and mouse drag
events. If a drag is not started (because maybe there is no draggable
element), then we show context menu instead (which is the current
behavior for LongPress). For LongTap, we use the existing functions that
LongPress uses to summon the context menu. LongPress initiated drag and
drop can be enabled/disabled by the platform using the Setting
touchDragDropEnabled which is disabled by default.
Tests: fast/events/touch/gesture/context-menu-on-long-tap.html
fast/events/touch/gesture/long-press-on-draggable-element-triggers-drag.html
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::clear):
(WebCore::EventHandler::handleMouseDraggedEvent):
(WebCore::EventHandler::handleGestureEvent):
(WebCore::EventHandler::handleGestureLongPress):
(WebCore::EventHandler::handleGestureLongTap):
(WebCore):
(WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
(WebCore::EventHandler::adjustGesturePosition):
(WebCore::EventHandler::handleDrag):
* page/EventHandler.h:
(EventHandler):
* page/Settings.in:
2012-11-26 Andreas Kling <akling@apple.com>
RenderStyle: Move 'list-style-image' to rare inherited data.
<http://webkit.org/b/103300>
Reviewed by Antti Koivisto.
list-style-image is not nearly common enough to merit a spot in StyleInheritedData.
Move it to StyleRareInheritedData.
134kB progression on Membuster3.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff):
(WebCore::RenderStyle::listStyleImage):
(WebCore::RenderStyle::setListStyleImage):
* rendering/style/StyleInheritedData.cpp:
(WebCore::StyleInheritedData::StyleInheritedData):
(WebCore::StyleInheritedData::operator==):
* rendering/style/StyleInheritedData.h:
(StyleInheritedData):
* rendering/style/StyleRareInheritedData.h:
* rendering/style/StyleRareInheritedData.cpp:
(SameSizeAsStyleRareInheritedData):
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
2012-11-26 James Simonsen <simonjam@chromium.org>
Consolidate FrameLoader::load() into one function taking a FrameLoadRequest
https://bugs.webkit.org/show_bug.cgi?id=102151
Reviewed by Adam Barth.
There's a FIXME that we have too many FrameLoader::load*() functions. This patch consolidates 3 into 1.
There are still a few more load functions that will be consolidated later. Using FrameLoadRequest as
the interface into FrameLoader will also provide a place to pass in the initiator. Finally, this matches
the refactoring done with CachedResourceRequest and CachedResourceLoader.
No new tests. No change in functionality.
* WebCore.exp.in:
* loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::FrameLoadRequest):
(WebCore::FrameLoadRequest::setLockHistory): These are former arguments to load().
(WebCore::FrameLoadRequest::lockHistory): Ditto.
(FrameLoadRequest):
(WebCore::FrameLoadRequest::setShouldCheckNewWindowPolicy): Ditto.
(WebCore::FrameLoadRequest::shouldCheckNewWindowPolicy): Ditto.
(WebCore::FrameLoadRequest::substituteData): Ditto.
(WebCore::FrameLoadRequest::setSubstituteData): Ditto.
(WebCore::FrameLoadRequest::hasSubstituteData): Ditto.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load): No change in behavior, just merged it all into one function.
* loader/FrameLoader.h:
(FrameLoader):
* page/DragController.cpp:
(WebCore::DragController::performDrag):
2012-11-24 Genevieve Mak <gmak@rim.com>
[BlackBerry] Stop sending touch events to plugins.
https://bugs.webkit.org/show_bug.cgi?id=103188
Reviewed by Rob Buis.
Reviewed internally by Jeff Rogers and Mike Lattanzio.
No tests required.
PR #248605
* plugins/blackberry/PluginViewBlackBerry.cpp:
(WebCore::PluginView::handleTouchEvent):
(WebCore::PluginView::handleMouseEvent):
2012-11-26 Adenilson Cavalcanti <cavalcantii@gmail.com>
Removing unnecessary friend classes in RenderObject: LayoutRepainter, RenderSVGContainer
https://bugs.webkit.org/show_bug.cgi?id=103164
Reviewed by Simon Fraser.
Removing some of classes marked as friend of RenderObject. This patch solves this issue
for 2 classes: RenderSVGContainer (that is derived from RenderObject) and LayoutRepainter
(that accesses one const member function in RenderObject that is now made public).
No new tests, no changes in functionality.
* rendering/RenderObject.h:
(RenderObject):
(WebCore::RenderObject::outlineBoundsForRepaint):
2012-11-26 Jon Lee <jonlee@apple.com>
Pass clicks through to the restarted plugin
https://bugs.webkit.org/show_bug.cgi?id=102150
<rdar://problem/12695575>
Reviewed by Simon Fraser.
Add a new state to the machine for plugin snapshotting, called PlayingWithPendingMouseClick.
This represents the state where the plugin is playing, but before the pending mouse click
has been fired. Once the click is sent, the plugin state transitions to Playing. For
situations where the plugin just runs normally without a simulated click, the plugin state
jumps from DisplayingSnapshot straight to Playing, as before.
* html/HTMLPlugInElement.h: Add new display state to represent when the plugin is running,
but a pending mouse click is about to be sent to the plugin.
(WebCore::HTMLPlugInElement::dispatchPendingMouseClick): Called by the plugin when it is
ok for the element to send the pending mouse click.
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::defaultEventHandler): Update the handler to pass the event
to the renderer to handle if the state is before PlayingWithPendingMouseClick.
* html/HTMLPlugInImageElement.h:
* html/HTMLPlugInImageElement.cpp: Add a click timer to delay the mouse click so that the
plugin has some time to initialize.
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Initialize the mouse timer.
(WebCore::HTMLPlugInImageElement::setPendingClickEvent): Keep track of the click event
the user made to restart the plugin.
(WebCore::HTMLPlugInImageElement::dispatchPendingMouseClick): Start the timer.
(WebCore::HTMLPlugInImageElement::simulatedMouseClickTimerFired): When the timer fires,
dispatch the simulated click, with mouse over, mouse down, and mouse up events. Transition
to the Playing state, and we no longer need the click event.
* rendering/RenderSnapshottedPlugIn.cpp: Change the threshold state to PlayingWithPendingMouseClick
instead of Playing, since that is the earliest state where the plugin is playing.
(WebCore::RenderSnapshottedPlugIn::paint):
(WebCore::RenderSnapshottedPlugIn::paintReplaced):
(WebCore::RenderSnapshottedPlugIn::getCursor):
(WebCore::RenderSnapshottedPlugIn::handleEvent): If the user clicked on the button, jump to
Playing, and don't send a simulated click. Otherwise, transition to PlayingWithPendingMouseClick,
and keep track of that mouse event.
* WebCore.exp.in: Export MouseRelatedEvent::offsetX() and offsetY().
2012-11-26 Dan Carney <dcarney@google.com>
Refactor V8 bindings to allow content scripts to access subframes
https://bugs.webkit.org/show_bug.cgi?id=93646
Reviewed by Adam Barth.
Isolated window shells are now initialized on the fly
as needed.
No new tests. Existing test modified.
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore::DOMWrapperWorld::ensureIsolatedWorld):
* bindings/v8/DOMWrapperWorld.h:
(WebCore::DOMWrapperWorld::createdFromUnitializedWorld):
(DOMWrapperWorld):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::currentWorldContext):
2012-11-26 Alex Christensen <alex.christensen@flexsim.com>
clipboardwin compile error for win64
https://bugs.webkit.org/show_bug.cgi?id=94124
Reviewed by Brent Fulgham.
The clipboard utilities code uses std::min with one unsigned int parameter and one size_t parameter.
This causes a problem when compiling for 64-bit Windows because the two types are not the same size.
To resolve this issue, we specify the template type as the type the return value is being cast into
Fixed a few compile errors for Windows x64 by specifying template parameters.
* platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::setFileDescriptorData): Specify the types for the std::min macro to avoid compiler errors
under 64-bit builds.
2012-11-26 Arnaud Renevier <a.renevier@sisa.samsung.com>
[GTK] GtkSocket is leaked until webview is destroyed.
https://bugs.webkit.org/show_bug.cgi?id=102564
Reviewed by Martin Robinson.
Remove GtkSocket from its parent when pluginview is destroyed. Then,
the GtkSocket and it's possible child widgets are realeased when it is
no more needed.
No new tests, already covered by existing tests.
* plugins/gtk/PluginViewGtk.cpp:
(WebCore::PluginView::platformDestroy):
2012-11-26 Luke Macpherson <macpherson@chromium.org>
Make StyleResolver::applyProperty use isInherit in CSSPropertyWebkitMarquee instead of calculating equivalent in-place.
https://bugs.webkit.org/show_bug.cgi?id=102446
Reviewed by Tony Chang.
!m_parentNode || !value->isInheritedValue() is equivalent to !isInherit (by De Morgan's law).
No new tests / code is provably equivalent.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
2012-11-26 Pratik Solanki <psolanki@apple.com>
Add ResourceBuffer::append(CFDataRef) to get code to compile with USE(NETWORK_CFDATA_ARRAY_CALLBACK)
https://bugs.webkit.org/show_bug.cgi?id=102706
Reviewed by Brent Fulgham.
No new tests because the flag isn't enabled. Also the functionality should be covered by
existing tests.
* loader/ResourceBuffer.cpp:
(WebCore):
(WebCore::ResourceBuffer::append):
* loader/ResourceBuffer.h:
(ResourceBuffer):
* loader/mac/ResourceLoaderMac.mm:
2012-11-26 Tony Chang <tony@chromium.org>
Move more functions from internals.settings to internals
https://bugs.webkit.org/show_bug.cgi?id=102976
Reviewed by Adam Barth.
Move functions that don't have to do with Settings off of internals.settings.
setPagination and configurationForViewport were defined on internals, so we
can inline the functions (no test change).
setEnableMockPagePopup is moved to Internals.
No new tests, this is a refactor.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::reset): Move reset code into Internals.
* testing/InternalSettings.h:
(InternalSettings): Remove code for setPagination, configurationForViewport and setEnableMockPagePopup.
* testing/InternalSettings.idl: Remove setPagination and setEnableMockPagePopup.
* testing/Internals.cpp:
(WebCore): Use a static to keep track of the MockPagePopupDriver.
(WebCore::Internals::resetToConsistentState): Code from InternalSettings::reset
(WebCore::Internals::setEnableMockPagePopup): Code copied from InternalSettings.
(WebCore::Internals::pagePopupController): Code copied from InternalSettings.
(WebCore::Internals::setPagination): Code copied from InternalSettings.
(WebCore::Internals::configurationForViewport): Code copied from InternalSettings.
* testing/Internals.h:
(Internals): Add setEnableMockPagePopup.
* testing/Internals.idl: Add setEnableMockPagePopup.
2012-11-26 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Add Region info for RootLineBoxes and pack the pagination data
https://bugs.webkit.org/show_bug.cgi?id=101332
Reviewed by David Hyatt.
Currently the pagination information for lines is spread between the RootInlineBox and InlineFlowBox classes, consuming memory even though
the boxes were not the result of an pagination layout. To overcome this, a new struct (LineFragmentationData) is created that wraps all the data,
including two new members, the containing Region for the line and a boolean that states if the line was laid out in a Region or not.
The flag is necessary because the sanitize function on LineFragmentationData resets the containing Region to 0 if the Region was removed from
chain (so a value of 0 for the containing Region means two things). The sanitize function should prevent access to an invalid address.
The containing Region is used to detect if a line changed the Region where it resides. This will be helpful especially when implementing region
styling for layout properties (e.g. the font-size property https://bugs.webkit.org/show_bug.cgi?id=95559 ).
A line can change the region when it is shifted inside the containing block or if the entire block moves. This means it's better to delegate
the task of updating the containing Region to the block.
Tests: fast/regions/line-containing-region-crash.html
* rendering/InlineFlowBox.cpp:
(SameSizeAsInlineFlowBox):
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::InlineFlowBox):
(InlineFlowBox):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange):
(WebCore::RenderBlock::linkToEndLineIfNeeded):
(WebCore::RenderBlock::determineStartPosition):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::RootInlineBox):
(WebCore::RootInlineBox::setContainingRegion):
(WebCore):
(WebCore::RootInlineBox::LineFragmentationData::sanitize): This is an O(1) function that checks if the containig Region is still valid pointer.
* rendering/RootInlineBox.h:
(WebCore):
(WebCore::RootInlineBox::paginationStrut):
(WebCore::RootInlineBox::setPaginationStrut):
(WebCore::RootInlineBox::isFirstAfterPageBreak):
(WebCore::RootInlineBox::setIsFirstAfterPageBreak):
(WebCore::RootInlineBox::paginatedLineWidth):
(WebCore::RootInlineBox::setPaginatedLineWidth):
(RootInlineBox):
(WebCore::RootInlineBox::containingRegion):
(WebCore::RootInlineBox::hasContainingRegion): Use this to determine if the line has a region or not.
(WebCore::RootInlineBox::ensureLineFragmentationData):
(LineFragmentationData):
(WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):
2012-11-26 Michelangelo De Simone <michelangelo@webkit.org>
[CSS Shaders] Add IDL file and bindings for mix function
https://bugs.webkit.org/show_bug.cgi?id=93011
Reviewed by Dean Jackson.
JavaScript bindings have been added for the Custom Filter mix()
function (WebKitCSSMixFunctionValue). As of now, this is only a
placeholder that extends CSSValueList without adding any new
property.
Test: css3/filters/custom/custom-filter-mix-bindings.html
* CMakeLists.txt: mix() IDL has been added to the Generator;
DerivedSources have been included.
* DerivedSources.cpp: Ditto.
* DerivedSources.make: Ditto.
* DerivedSources.pri: Ditto.
* GNUmakefile.list.am: Ditto.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* bindings/js/JSCSSValueCustom.cpp:
(WebCore::toJS): return a JSC DOM wrapper for WebKitCSSMixFunctionValue.
* bindings/v8/custom/V8CSSValueCustom.cpp:
(WebCore::V8CSSValue::dispatchWrapCustom): Ditto, for V8.
* css/WebKitCSSMixFunctionValue.idl: Added.
2012-11-26 Simon Fraser <simon.fraser@apple.com>
Optimize layer updates after scrolling
https://bugs.webkit.org/show_bug.cgi?id=102635
Reviewed by Sam Weinig.
updateLayerPositionsAfterScroll() previously unconditionally cleared clip
rects, and recomputed repaint rects too often. Recomputing both of these
can be very expensive, as they involve tree walks up to the root.
We can optimize layer updates after document scrolling by only clearing clip
rects, and recomputing repaint rects, if we encounter a fixed- or sticky-position
element. For overflow scroll, we have to clear clip rects and recompute repaint rects.
* page/FrameView.cpp:
(WebCore::FrameView::repaintFixedElementsAfterScrolling): Call updateLayerPositionsAfterDocumentScroll().
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions): Call clearClipRects() because
updateLayerPosition() no longer does.
(WebCore::RenderLayer::updateLayerPositionsAfterDocumentScroll): Version of updateLayerPositionsAfterScroll()
that is for document scrolls. It has no need to push layers to the geometry map.
(WebCore::RenderLayer::updateLayerPositionsAfterOverflowScroll): Pushes layers to the geometry map,
and calls updateLayerPositionsAfterScroll() with the IsOverflowScroll flag.
(WebCore::RenderLayer::updateLayerPositionsAfterScroll): Set the HasChangedAncestor flag
if our location changed, and use that as a hint to clear cached rects. Be more conservative
than before about when to clear cached clip rects.
(WebCore::RenderLayer::updateLayerPosition): Move responsibility for calling
clearClipRects() ouf of this function and into callers.
(The one caller outside RenderLayer will be removed via bug 102624).
Return a bool indicating whether our position changed.
(WebCore::RenderLayer::scrollTo): Call updateLayerPositionsAfterOverflowScroll().
(WebCore::RenderLayer::updateClipRects): Added some #ifdeffed out code that is useful
to verify that cached clips are correct; it's too slow to leave enabled in debug builds.
* rendering/RenderLayer.h:
(WebCore::RenderLayer::setLocation): Change to take a LayoutPoint, rather than separate
x and y.
2012-11-26 Rafael Brandao <rafael.lobo@openbossa.org>
[Cairo] Surface should not be destroyed before its usage
https://bugs.webkit.org/show_bug.cgi?id=103273
Reviewed by Brent Fulgham.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawRepaintCounter): There's some calls to get
the bits and stride from surface right after its destructions. It should
be postponed to avoid annoying bugs.
2012-11-26 Julien Chaffraix <jchaffraix@webkit.org>
RenderBox::computePercentageLogicalHeight should use containingBlockLogicalWidthForContent
https://bugs.webkit.org/show_bug.cgi?id=103075
Reviewed by Ojan Vafai.
Using the containing block's content logical block was working for most renderers but 2 renderers
were special and were broken in orthogonal writing modes:
- captions as they override containingBlockLogicalWidthForContent to return the table's logical width.
- multi-column renderers as they override availableLogicalWidth to constrain the child to the column logical width.
By switching to containingBlockLogicalWidthForContent, we got those 2 cases covered.
Tests: fast/multicol/fixed-column-percent-logical-height-orthogonal-writing-mode.html
fast/table/caption-orthogonal-writing-mode-sizing.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePercentageLogicalHeight):
Updated the function to track which renderer's containing block we use and call
containingBlockLogicalWidthForContent on it.
2012-11-26 Abhishek Arya <inferno@chromium.org>
Crash in Frame::dispatchVisibilityStateChangeEvent.
https://bugs.webkit.org/show_bug.cgi?id=102053
Reviewed by Adam Barth.
Child frame can go away inside webkitvisibilitychange
event handler. Store it in a ref counted vector.
Test: fast/frames/page-visibility-crash.html
* page/Frame.cpp:
(WebCore::Frame::dispatchVisibilityStateChangeEvent):
2012-11-26 Hurnjoo Lee <hurnjoo.lee@samsung.com>
[Cairo] fillRectWithColor with Color::transparent doesn't perform anything
https://bugs.webkit.org/show_bug.cgi?id=101911
Reviewed by Kenneth Rohde Christiansen.
fillRectWithColor with Color::transparent doesn't perform anything
because fillRectWithColor does early-return if the alpha value of
color is zero. But we expect that fill the rect with transparent color
in case the cairo_operator is CAIRO_OPERATOR_SOURCE.
Covered by existing tests.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::fillRectWithColor):Add condition to prevent early-return if
cairo_operator is not CAIRO_OPERATOR_OVER
2012-11-26 Jae Hyun Park <jae.park@company100.net>
Remove redundant assignment in TextureMapperLayer::flushCompositingStateSelf
https://bugs.webkit.org/show_bug.cgi?id=103233
Reviewed by Noam Rosenthal.
This patch removes redundant assignment in TextureMapperLayer::flushCompositingStateSelf.
No new tests, because no change in bahavior.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::flushCompositingStateSelf):
2012-11-26 Tamas Czene <tczene@inf.u-szeged.hu>
OpenCL version of SourceAlpha, SourceGraphics and FETurbulence filter effects
https://bugs.webkit.org/show_bug.cgi?id=99829
Reviewed by Zoltan Herczeg.
This patch contains the OpenCL implementation of SourceAlpha, SourceGraphic, FETurbulence and a simple OpenCL environment.
At the moment only the Qt build system is supported
~3x speed-up (depending on hardware configuration)
* Target.pri:
* WebCore.pri:
* platform/graphics/filters/FETurbulence.h: Added platformApplyOpenCL() virtual function.
(FETurbulence):
* platform/graphics/filters/FilterEffect.cpp: Added platform specific apply.
(WebCore::FilterEffect::apply):
(WebCore):
(WebCore::FilterEffect::platformApplyOpenCL): A function to use software computing if a filter is not implemented on OpenCL. It will be deleted after all of the filters are implemented.
(WebCore::FilterEffect::clearResult):
(WebCore::FilterEffect::asImageBuffer):
(WebCore::FilterEffect::openCLImageToImageBuffer): Gets the result of the filter from the OpenCL device and converts it to ImageBuffer type.
(WebCore::FilterEffect::createOpenCLImageResult): Allocates memory on OpenCL device and if it gets an image as a parameter, it uploads the image to the OpenCL device.
(WebCore::FilterEffect::transformResultColorSpace):
* platform/graphics/filters/FilterEffect.h:
(FilterEffect):
(WebCore::FilterEffect::openCLImage):
(WebCore::FilterEffect::setOpenCLImage):
(WebCore::FilterEffect::hasResult):
* platform/graphics/filters/SourceAlpha.h:
(SourceAlpha):
* platform/graphics/filters/SourceGraphic.h:
(SourceGraphic):
* platform/graphics/gpu/opencl/FilterContextOpenCL.cpp: Added.
(WebCore):
(WebCore::FilterContextOpenCL::context): Configures the OpenCL environment.
(WebCore::FilterContextOpenCL::createOpenCLImage): Allocates memory on OpenCL device.
(WebCore::FilterContextOpenCL::openCLTransformColorSpace): OpenCL implementation of transformColorSpace.
(WebCore::FilterContextOpenCL::compileProgram):
* platform/graphics/gpu/opencl/FilterContextOpenCL.h: Added.
(WebCore):
(FilterContextOpenCL):
(WebCore::FilterContextOpenCL::deviceId):
(WebCore::FilterContextOpenCL::deviceContext):
(WebCore::FilterContextOpenCL::commandQueue):
(RunKernel):
(WebCore::FilterContextOpenCL::RunKernel::RunKernel):
(WebCore::FilterContextOpenCL::RunKernel::addArgument):
(WebCore::FilterContextOpenCL::RunKernel::run):
(WebCore::FilterContextOpenCL::kernelByName): Returns the reference of a function in the OpenCL program.
* platform/graphics/gpu/opencl/OpenCLFESourceAlpha.cpp: Added.
(WebCore):
(WebCore::SourceAlpha::platformApplyOpenCL):
* platform/graphics/gpu/opencl/OpenCLFESourceGraphic.cpp: Added.
(WebCore):
(WebCore::SourceGraphic::platformApplyOpenCL):
* platform/graphics/gpu/opencl/OpenCLFETurbulence.cpp: Added.
(WebCore):
(WebCore::FilterContextOpenCL::compileFETurbulence):
(WebCore::FilterContextOpenCL::applyFETurbulence):
(WebCore::FETurbulence::platformApplyOpenCL):
* platform/graphics/gpu/opencl/OpenCLHandle.h: Added.
(WebCore):
(OpenCLHandle):
(WebCore::OpenCLHandle::OpenCLHandle):
(WebCore::OpenCLHandle::operator cl_mem):
(WebCore::OpenCLHandle::operator=):
(WebCore::OpenCLHandle::operator UnspecifiedBoolType):
(WebCore::OpenCLHandle::handleAddress):
(WebCore::OpenCLHandle::clear):
2012-11-26 'Pavel Feldman' <pfeldman@chromium.org>
Not reviewed: follow up for r135720, fixing node highlight.
* inspector/InspectorOverlayPage.html:
2012-11-26 Viatcheslav Ostapenko <v.ostapenko@samsung.com>
[EFL] Crashes in compositing layout tests with AC on.
https://bugs.webkit.org/show_bug.cgi?id=103144
Reviewed by Noam Rosenthal.
Application could leave texture packing parameters in non-zero state before
texture mapper drawing/texture uploading. To avoid crash texture upload should
specify packing parameters before each texture upload if packing is supported.
Covered by existing tests.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::BitmapTextureGL::updateContentsNoSwizzle):
2012-11-26 George Staikos <staikos@webkit.org>
[BlackBerry] Remove a lot of unnecessary and incorrect code causing crashes
https://bugs.webkit.org/show_bug.cgi?id=103199
Reviewed by Yong Li.
This is the first big step to unforking this code. It's very close to
where it needs to be now, but the first step is to get rid of the
crashes by deleting code that isn't needed and makes bad assumptions
about object lifetime. Crashes were found by automation without
test case or reproduction steps.
* loader/blackberry/CookieJarBlackBerry.cpp:
(WebCore::cookies): delete most code
(WebCore::setCookies): delete most code
2012-11-26 Thiago Marcos P. Santos <thiago.santos@intel.com>
Viewport CSS rules should not clamp values like Viewport META
https://bugs.webkit.org/show_bug.cgi?id=103068
Reviewed by Kenneth Rohde Christiansen.
CSS Device Adaption does not clamp the length and zoom values the
same way as the Viewport META. In fact, they are not clamped at all,
but instead, we just make sure that length values are at least 1px.
Tests: css3/device-adapt/opera/constrain-018.xhtml
css3/device-adapt/opera/constrain-019.xhtml
css3/device-adapt/opera/constrain-023.xhtml
css3/device-adapt/opera/constrain-024.xhtml
* dom/ViewportArguments.cpp:
(WebCore::ViewportArguments::resolve):
2012-11-26 Mike West <mkwst@chromium.org>
Web Inspector: URLs containing '^' are improperly linked in console messages.
https://bugs.webkit.org/show_bug.cgi?id=103248
Reviewed by Yury Semikhatsky.
This patch adds '^' to WebInspector's regex of acceptable characters for
URLs that it knows how to display.
Test: http/tests/inspector/network/script-as-text-loading-with-caret.html
* inspector/front-end/ResourceUtils.js:
(WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
2012-11-26 Yury Semikhatsky <yurys@chromium.org>
Unreviewed. Fix Qt minimal compilation after r135713.
* inspector/InspectorController.h: hid file content behind ENABLE(INSPECTOR)
2012-11-26 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: object preview does not render node id, className; logs too many functions for jQuery.
https://bugs.webkit.org/show_bug.cgi?id=103222
Reviewed by Yury Semikhatsky.
- Added node class name and id into the preview
- Now keeps track of properties separately from array indexes.
* inspector/InjectedScriptSource.js:
(.):
* inspector/InspectorOverlayPage.html:
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
(WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreview):
2012-11-26 Florin Malita <fmalita@chromium.org>
RenderSVGResourceContainer does not clear cached data on removal
https://bugs.webkit.org/show_bug.cgi?id=102620
Reviewed by Dirk Schulze.
RenderSVGResourceContainer::removeClient needs to also remove the client from specialized
caches, otherwise we can end up with stale references.
Test: svg/custom/stale-resource-data-crash.svg
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::removeClient):
2012-11-26 'Pavel Feldman' <pfeldman@chromium.org>
Not reviewed: rolling out r135714 and r135712 for breaking debug tests.
* inspector/InjectedScriptSource.js:
(.):
* inspector/InspectorOverlayPage.html:
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
2012-11-26 Zeno Albisser <zeno@webkit.org>
[Qt][Win] buildfix after r135706.
https://bugs.webkit.org/show_bug.cgi?id=103249
The Windows implementation of GraphicsSurface cannot use
m_size anymore, as this member has been removed.
Further it needs to implement a platformSize() function.
Reviewed by Kenneth Rohde Christiansen.
* platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp:
(WebCore::GraphicsSurfacePrivate::size):
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
(WebCore::GraphicsSurface::platformSize):
(WebCore):
2012-11-26 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: unify agents handling in Page and Worker inspector controllers
https://bugs.webkit.org/show_bug.cgi?id=103238
Reviewed by Alexander Pavlov.
Introduced a class that represents a collection of inspector agents and allows
to call methods declared on InspectorAgentBaseInterface for all registered agents.
InspectorController and WorkerInspectorController switched to this class.
* inspector/InspectorBaseAgent.cpp:
(WebCore::InspectorAgentRegistry::append):
(WebCore):
(WebCore::InspectorAgentRegistry::setFrontend):
(WebCore::InspectorAgentRegistry::clearFrontend):
(WebCore::InspectorAgentRegistry::restore):
(WebCore::InspectorAgentRegistry::registerInDispatcher):
(WebCore::InspectorAgentRegistry::discardAgents):
* inspector/InspectorBaseAgent.h:
(InspectorAgentRegistry):
(WebCore):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::~InspectorController):
(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::disconnectFrontend):
(WebCore::InspectorController::reconnectFrontend):
* inspector/InspectorController.h:
(InspectorController):
2012-11-26 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: object preview does not render node id, className; logs too many functions for jQuery.
https://bugs.webkit.org/show_bug.cgi?id=103222
Reviewed by Yury Semikhatsky.
- Added node class name and id into the preview
- Now keeps track of properties separately from array indexes.
* inspector/InjectedScriptSource.js:
(.):
* inspector/InspectorOverlayPage.html:
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
(WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreview):
2012-11-26 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [WebGL] Save WebGL extensions and restore on replay
https://bugs.webkit.org/show_bug.cgi?id=103141
Reviewed by Yury Semikhatsky.
Save WebGL extensions that were enabled by the application, and restore it before the replay.
Drive-by: remove redundant if- checks in WebGL custom function wrappers (similar to 2D canvas).
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
2012-11-26 Allan Sandfeld Jensen <allan.jensen@digia.com>
HitTestResult should not be a HitTestLocation
https://bugs.webkit.org/show_bug.cgi?id=101590
Reviewed by Sam Weinig.
Change HitTestResult from being a HitTestLocation to having a HitTestLocation.
A result of a test should not be a special case of the location of the test.
No change in functionality. No new tests.
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::HitTestResult):
(WebCore::HitTestResult::operator=):
(WebCore::HitTestResult::isSelected):
(WebCore::HitTestResult::spellingToolTip):
(WebCore::HitTestResult::replacedString):
* rendering/HitTestResult.h:
(WebCore::HitTestResult::isRectBasedTest):
(WebCore::HitTestResult::pointInInnerNodeFrame):
(WebCore::HitTestResult::hitTestLocation):
(HitTestResult):
2012-11-26 Marja Hölttä <marja@chromium.org>
Circular reference between Document and MediaQueryMatcher.
https://bugs.webkit.org/show_bug.cgi?id=103242
Reviewed by Kenneth Rohde Christiansen.
It's not enough to clean up listeners in MediaQueryMatcher in ~Document,
since MediaQueryListListener keeps the Document alive. This caused
www.crbug.com/113983.
No new tests: No visible change in behavior (except that it doesn't leak memory).
* dom/Document.cpp:
(WebCore::Document::~Document):
(WebCore::Document::detach):
2012-11-26 Eugene Klyuchnikov <eustas@chromium.org>
Web Inspector: HeapProfiler: remove snapshotView reference from data-grids.
https://bugs.webkit.org/show_bug.cgi?id=103240
Reviewed by Yury Semikhatsky.
Cleanup: remove redundant dependency.
* inspector/front-end/HeapSnapshotDataGrids.js: Do not store view ref.
* inspector/front-end/HeapSnapshotGridNodes.js:
Removed unused assignments.
* inspector/front-end/HeapSnapshotView.js:
Do not pass self to data-grids.
2012-11-26 Zeno Albisser <zeno@webkit.org>
GraphicsSurface should only store its size in a single place.
https://bugs.webkit.org/show_bug.cgi?id=103143
Reviewed by Kenneth Rohde Christiansen.
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
Cosmetics only.
* platform/graphics/surfaces/GraphicsSurface.cpp:
(WebCore::GraphicsSurface::size):
Return the size as received from the platform abstraction.
(WebCore):
(WebCore::GraphicsSurface::GraphicsSurface):
* platform/graphics/surfaces/GraphicsSurface.h:
(GraphicsSurface):
Remove data member m_size.
* platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
Always take the size of the GraphicsSurface as an argument.
(WebCore::GraphicsSurfacePrivate::size):
(GraphicsSurfacePrivate):
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
Retrieve the size from GraphicsSurfacePrivate where necessary.
(WebCore::GraphicsSurface::platformSize):
(WebCore):
(WebCore::GraphicsSurface::platformImport):
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
Add a constructor that takes a window id as an argument
for the receiving side of the GraphcisSurface.
The GraphicsSurface can then determine its dimensions
from the provided XWindow.
(WebCore::GraphicsSurfacePrivate::createPixmap):
(WebCore::GraphicsSurfacePrivate::size):
Query the size of the GraphicsSurface backing from X.
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
Retrieve the size from GraphicsSurfacePrivate where necessary.
(WebCore::GraphicsSurface::platformSize):
(WebCore):
(WebCore::GraphicsSurface::platformImport):
2012-11-26 Thiago Santos <thiago.sousa.santos@collabora.com>
[GStreamer] Floating reference handling fix
https://bugs.webkit.org/show_bug.cgi?id=101349
Reviewed by Philippe Normand.
GStreamer 0.10 and 1.0 differ when creating GstGhostPad from pad
templates, the 1.0 doesn't take ownership on the passed
GstPadTemplate, while 0.10 does. So this patch adds a
GStreamerVersioning function to handle this different approach
transparently in Webkit gstreamer elements.
Existing media tests cover this change.
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webkit_web_audio_src_init):
* platform/graphics/gstreamer/GStreamerVersioning.cpp:
(webkitGstGhostPadFromStaticTemplate):
* platform/graphics/gstreamer/GStreamerVersioning.h:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webkit_web_src_init):
2012-11-26 Kentaro Hara <haraken@chromium.org>
[V8] Remove WorkerContextExecutionProxy
https://bugs.webkit.org/show_bug.cgi?id=103210
Reviewed by Adam Barth.
This patch moves all methods in WorkerContextExecutionProxy
to WorkerScriptController.
Due to the dependency between WorkerContextExecutionProxy's methods,
it is a bit difficult to split this patch into pieces.
This patch simply moves methods without changing their logic.
Also this patch doesn't remove empty WorkerContextExecutionProxy.{h,cpp}
to keep the diff sane. I will address these issues in a follow-up patch.
Tests: fast/worker/*
* bindings/v8/ScriptState.cpp:
(WebCore::scriptStateFromWorkerContext):
* bindings/v8/V8Binding.cpp:
(WebCore::toV8Context):
* bindings/v8/V8WorkerContextEventListener.cpp:
(WebCore::V8WorkerContextEventListener::handleEvent):
* bindings/v8/WorkerContextExecutionProxy.cpp:
* bindings/v8/WorkerContextExecutionProxy.h:
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::WorkerScriptController):
(WebCore::WorkerScriptController::~WorkerScriptController):
(WebCore::WorkerScriptController::dispose):
(WebCore):
(WebCore::WorkerScriptController::initializeIfNeeded):
(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::setEvalAllowed):
(WebCore::WorkerScriptController::disableEval):
* bindings/v8/WorkerScriptController.h:
(WebCore):
(WebCore::WorkerContextExecutionState::WorkerContextExecutionState):
(WorkerContextExecutionState):
(WorkerScriptController):
(WebCore::WorkerScriptController::context):
* bindings/v8/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::addListener):
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::SetTimeoutOrInterval):
(WebCore::toV8):
2012-11-26 Hajime Morrita <morrita@google.com>
[Refactoring] Some Node::isDescendant calls can be replaced with Node::contains()
https://bugs.webkit.org/show_bug.cgi?id=103211
Reviewed by Daniel Bates.
A couple of call sites of isDescendant() does same as Node::contains().
This change replaces these locations with Node::contains().
No new tests, no behavior change.
* dom/Node.cpp:
(WebCore::checkAcceptChild):
* dom/Range.cpp:
(WebCore::Range::surroundContents):
2012-11-26 Kunihiko Sakamoto <ksakamoto@chromium.org>
[Chromium] Enable input type datetime-local
https://bugs.webkit.org/show_bug.cgi?id=103213
Reviewed by Kent Tamura.
This patch enables <input type=datetime-local> for Chromium.
No new tests. Covered by existing tests.
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore): Changed RuntimeEnabledFeatures::isInputTypeDateTimeLocalEnabled to true
if INPUT_TYPE_DATETIMELOCAL is enabled.
2012-11-26 Hajime Morrita <morrita@google.com>
[Shadow DOM] Implement Element::createShadowRoot()
https://bugs.webkit.org/show_bug.cgi?id=102911
Reviewed by Kentaro Hara.
Added an API implementation and exposed it.
This is basically an alias of the ShadowRoot constructor, which
will be removed as bug 102913.
Test: fast/dom/shadow/shadow-aware-create-shdow-root.html
* bindings/gobject/GNUmakefile.am:
* dom/Element.cpp:
(WebCore::Element::createShadowRoot):
(WebCore):
* dom/Element.h:
(Element):
* dom/Element.idl:
2012-11-26 Jon Lee <jonlee@apple.com>
Extend EventDispatcher::dispatchSimulatedClick to allow sending a mouseover event
https://bugs.webkit.org/show_bug.cgi?id=102610
<rdar://problem/12725663>
Reviewed by Darin Adler.
Update the dispatchSimulatedClick() to take option enums for dispatching events.
* dom/SimulatedClickOptions.h: Added. Define two options enums. One tracks which mouse
events to send. The other determines whether to force the element to repaint.
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchSimulatedClick): Refactor to use the option enums.
* dom/EventDispatcher.h:
(EventDispatcher): Update function signature.
* dom/Node.cpp: Refactor parameters to use the options enums rather than booleans.
(WebCore::Node::dispatchSimulatedClick):
* dom/Node.h:
Refactor. Remove redundant comments.
* html/BaseCheckableInputType.cpp:
(WebCore::BaseCheckableInputType::accessKeyAction):
* html/BaseClickableWithKeyInputType.cpp:
(WebCore::BaseClickableWithKeyInputType::accessKeyAction):
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::accessKeyAction):
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::accessKeyAction):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::click):
(WebCore::HTMLElement::accessKeyAction):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::accessKeyAction):
* html/RadioInputType.cpp:
(WebCore::RadioInputType::handleKeydownEvent):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::accessKeyAction):
Add SimulatedClickOptions.h.
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
2012-11-26 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] Attaching children of a shadow host takes O(N^2) where N is the number of host children
https://bugs.webkit.org/show_bug.cgi?id=103017
Reviewed by Hajime Morita.
Since ContentDistribution was just a Vector, ContentDistribution::find() took O(N). Each child of shadow host calls it.
As a result, attaching children of shadow host takes O(N^2) at all.
In this patch, we make ContentDistribution::find() O(1) amortizedly. We introduce HashMap from a Node to Vector index,
and use it for ContentDistribution::find().
No new tests, covered by existing tests.
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistribution::swap):
(WebCore):
(WebCore::ContentDistribution::append):
(WebCore::ContentDistribution::find):
(WebCore::ContentDistributor::distributeSelectionsTo):
* html/shadow/ContentDistributor.h:
(ContentDistribution): ContentDistribution now contains Vector and a reverse map.
(WebCore::ContentDistribution::first):
(WebCore::ContentDistribution::last):
(WebCore::ContentDistribution::at):
(WebCore::ContentDistribution::size):
(WebCore::ContentDistribution::isEmpty):
(WebCore::ContentDistribution::clear):
(WebCore::ContentDistribution::contains):
(WebCore::ContentDistribution::nodes):
2012-11-26 Dan Carney <dcarney@google.com>
[V8] Give isolated shells a lifecycle like that of main shells
https://bugs.webkit.org/show_bug.cgi?id=96522
Reviewed by Adam Barth.
Refactored the isolated shells in ScriptController
to be cleaned up the same way the main shell is.
No new tests. No change in functionality.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::~ScriptController):
(WebCore::ScriptController::clearForOutOfMemory):
(WebCore::ScriptController::clearForClose):
(WebCore::ScriptController::clearWindowShell):
* bindings/v8/ScriptController.h:
(ScriptController):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::destroyIsolatedShell):
(WebCore::V8DOMWindowShell::clearForClose):
* bindings/v8/V8DOMWindowShell.h:
(V8DOMWindowShell):
2012-11-25 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135656.
http://trac.webkit.org/changeset/135656
https://bugs.webkit.org/show_bug.cgi?id=103218
Made a few SVG tests crash on all platforms (Requested by
apavlov on #webkit).
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForFamily):
* css/CSSValuePool.cpp:
(WebCore::CSSValuePool::createFontFamilyValue):
2012-11-25 Takashi Sakamoto <tasak@google.com>
WebCore::RenderBlock::determineStartPosition crash
https://bugs.webkit.org/show_bug.cgi?id=98993
Reviewed by Brent Fulgham.
If we move some node and the node has some text,
InlineFlowBox::removeChild() is invoked. The method invokes
RootInlineBox::childRemoved(). childRemoved() checks whether the
removed inlinebox has the renderer of its parent's line break object.
If so, use setLineBreakInfo to make the parent's line break info to
be 0. However in RenderBlock::determineStartPosition(), the code
assume that all line break info is solved, i.e.
prevRootBox->lineBreakObj()->isText(). Since lineBreakObj() returns 0
because of removeChild(), determineStartPosition crash occurs.
Test: fast/inline/inline-box-append-child-crash.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::determineStartPosition):
Checks whether lineBreakObj() is 0 or not before using lineBreakObj().
2012-11-25 Nikita Vasilyev <me@elv1s.ru>
Web Inspector: use native Element.prototype.normalize instead of custom defined Element.prototype.pruneEmptyTextNodes
https://bugs.webkit.org/show_bug.cgi?id=103205
Reviewed by Pavel Feldman.
* inspector/front-end/DOMExtension.js:
* inspector/front-end/TextPrompt.js:
(WebInspector.TextPrompt.prototype.clearAutoComplete):
(WebInspector.TextPrompt.prototype._completionsReady):
(WebInspector.TextPrompt.prototype.applySuggestion):
2012-11-25 Nikita Vasilyev <me@elv1s.ru>
Web Inspector: remove unused DOM methods
https://bugs.webkit.org/show_bug.cgi?id=103204
Reviewed by Pavel Feldman.
* inspector/front-end/DOMExtension.js:
2012-11-25 Nikita Vasilyev <me@elv1s.ru>
Web Inspector: Remove unused Array.convert method
https://bugs.webkit.org/show_bug.cgi?id=103202
Reviewed by Daniel Bates.
* inspector/front-end/utilities.js:
2012-11-25 Chris Fleizach <cfleizach@apple.com>
AX: file upload input cannot be activated with VoiceOver
https://bugs.webkit.org/show_bug.cgi?id=100343
Reviewed by Sam Weinig.
Simulated events were not allowed to be processed in the file input type in the DOMActivate handler.
This was a problem for accessibility clients which rely on simulated events.
The solution is to mark the UserGestureIndicator as definitely processing an event.
Test: accessibility/file-upload-button-with-axpress.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::press):
2012-11-25 Nikita Vasilyev <me@elv1s.ru>
Web Inspector: dispatch an event upon heap snapshot filter change
https://bugs.webkit.org/show_bug.cgi?id=103201
Reviewed by Pavel Feldman.
Dispatch heapSnapshotFilterChanged event so it can be received by third parties.
* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapSnapshotView.prototype._changeFilter):
* inspector/front-end/UserMetrics.js:
2012-11-25 Kent Tamura <tkent@chromium.org>
Refactoring: Move the content of HTMLInputElement::subtreeHasChanged to TextFieldInputType
https://bugs.webkit.org/show_bug.cgi?id=103195
Reviewed by Kentaro Hara.
HTMLInputElement::subtreeHasChanged is called only if the input is
a text field. The code should be moved to TextFieldInputType.
No new tests. This should not change any behavior.
* html/HTMLInputElement.cpp:
- Remove unnecessary NumberInputType.h inclusion.
- Remove convertFromVisibleValue. It was used only by subtreeHasChanged.
(WebCore::HTMLInputElement::subtreeHasChanged):
Move the code to TextFieldInputType::subtreeHasChanged except
calculateAndAdjustDirectionality, which is a protected member of
HTMLElement.
* html/HTMLInputElement.h:
(HTMLInputElement): Remove convertFromVisibleValue.
* html/InputType.cpp:
Move convertFromVisibleValue to TextFieldInputType.
(WebCore::InputType::subtreeHasChanged):
Add ASSERT_NOT_REACHED.
* html/InputType.h:
(InputType): Remove convertFromVisibleValue.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::convertFromVisibleValue):
Moved from InputType.
(WebCore::TextFieldInputType::subtreeHasChanged):
Moved from HTMLInputElement. A latter part is moved to
didSetValueByUserEdit to be hooked by SearchInputType.
(WebCore::TextFieldInputType::didSetValueByUserEdit):
Moved from HTMLInputElement::subtreeHasChanged, and clean up the code.
* html/TextFieldInputType.h:
(TextFieldInputType):
- Move convertFromVisibleValue from InputType.
- Add didSetValueByUserEdit and subtreeHasChanged.
* html/SearchInputType.cpp:
(WebCore::SearchInputType::didSetValueByUserEdit):
Renamed from subtreeHasChanged, and calls TextFieldInputType::didSetValueByUserEdit.
* html/SearchInputType.h:
(SearchInputType): Rename subtreeHasChanged to didSetValueByUserEdit.
2012-11-22 Kentaro Hara <haraken@chromium.org>
[V8] Move WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer
https://bugs.webkit.org/show_bug.cgi?id=103061
Reviewed by Adam Barth.
This is an incremental step to remove WorkerExecutionContextProxy.
This patch moves WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer.
This patch also renames methods so that the names become consistent
between the main thread and workers.
No tests. No change in behavior.
* bindings/v8/V8Initializer.cpp:
(WebCore::reportFatalErrorInMainThread):
(WebCore::messageHandlerInMainThread):
(WebCore::failedAccessCheckCallbackInMainThread):
(WebCore::V8Initializer::initializeMainThreadIfNeeded):
(WebCore::reportFatalErrorInWorker):
(WebCore):
(WebCore::messageHandlerInWorker):
(WebCore::V8Initializer::initializeWorkerIfNeeded):
* bindings/v8/V8Initializer.h:
(V8Initializer):
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
* bindings/v8/WorkerContextExecutionProxy.h:
(WorkerContextExecutionProxy):
2012-11-25 Christophe Dumez <christophe.dumez@intel.com>
[EFL] Refactor RenderThemeEfl::ThemePartCacheEntry::reuse()
https://bugs.webkit.org/show_bug.cgi?id=103189
Reviewed by Kenneth Rohde Christiansen.
Check if the entry size and type changed in
RenderThemeEfl::ThemePartCacheEntry::reuse() to avoid
useless processing if one of them did not change.
Remove useless call to cairo_surface_finish() since
we are using a smart pointer for the surface.
Resize the edge object *after* loading its content
from the theme file as it seems more logical this
way.
No new tests, no behavior change for layout tests.
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::ThemePartCacheEntry::reuse):
* platform/efl/RenderThemeEfl.h:
(ThemePartCacheEntry):
2012-11-25 Ryosuke Niwa <rniwa@webkit.org>
Rename DynamicNodeList to LiveNodeList
https://bugs.webkit.org/show_bug.cgi?id=103197
Reviewed by Ojan Vafai.
Rename DynamicNodeList to LiveNodeList to match the terminology used in DOM4 working draft:
http://www.w3.org/TR/2012/WD-dom-20120405/#concept-collection-live
"A collection (either NodeList or HTMLCollection) can be either live or static".
Also rename DynamicNodeListCacheBase to LiveNodeListBase, and merge DynamicSubtreeNodeList
into LiveNodeList (old DynamicNodeList) now that the only difference between those two classes
is the former calling registerNodeListCache and unregisterNodeListCache on Document.
This patch completes the series of simplification of NodeList/HTMLCollection classes.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::getNamedItems):
* bindings/js/JSNodeListCustom.cpp:
(WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
* bindings/v8/custom/V8NodeListCustom.cpp:
(WebCore::V8NodeList::opaqueRootForGC):
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::ChildNodeList):
(WebCore::ChildNodeList::nodeMatches):
* dom/ChildNodeList.h:
* dom/ClassNodeList.cpp:
(WebCore::ClassNodeList::ClassNodeList):
* dom/ClassNodeList.h:
* dom/DOMAllInOne.cpp:
* dom/Document.cpp:
(WebCore::Document::registerNodeListCache):
(WebCore::Document::unregisterNodeListCache):
(WebCore):
* dom/Document.h:
(WebCore):
(Document):
* dom/DynamicNodeList.cpp: Removed.
* dom/DynamicNodeList.h: Removed.
* dom/LiveNodeList.cpp: Copied from Source/WebCore/dom/DynamicNodeList.cpp.
(WebCore::LiveNodeListBase::rootNode):
(WebCore::LiveNodeListBase::invalidateCache):
(WebCore::LiveNodeListBase::invalidateIdNameCacheMaps):
(WebCore::LiveNodeListBase::reportMemoryUsage):
(WebCore::LiveNodeList::namedItem):
* dom/LiveNodeList.h: Copied from Source/WebCore/dom/DynamicNodeList.h.
(WebCore::LiveNodeListBase::LiveNodeListBase):
(WebCore::LiveNodeListBase::shouldInvalidateTypeOnAttributeChange):
(WebCore::LiveNodeList::LiveNodeList):
(WebCore::LiveNodeList::~LiveNodeList):
(LiveNodeList):
* dom/MicroDataItemList.cpp:
(WebCore::MicroDataItemList::MicroDataItemList):
* dom/MicroDataItemList.h:
* dom/NameNodeList.cpp:
(WebCore::NameNodeList::NameNodeList):
* dom/NameNodeList.h:
* dom/Node.cpp:
(WebCore::shouldInvalidateNodeListCachesForAttr):
(WebCore::Document::invalidateNodeListCaches):
* dom/Node.h:
(WebCore):
* dom/NodeList.h:
(WebCore::NodeList::isLiveNodeList):
* dom/NodeRareData.h:
(NodeListsNodeData):
(WebCore::NodeListsNodeData::removeCacheWithAtomicName):
(WebCore::NodeListsNodeData::removeCacheWithName):
(WebCore::NodeListsNodeData::removeCacheWithQualifiedName):
(WebCore::NodeListsNodeData::adoptTreeScope):
* dom/PropertyNodeList.cpp:
(WebCore::PropertyNodeList::PropertyNodeList):
* dom/PropertyNodeList.h:
* dom/TagNodeList.cpp:
(WebCore::TagNodeList::TagNodeList):
* dom/TagNodeList.h:
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::HTMLCollection):
(WebCore::LiveNodeListBase::iterateForNextNode):
(WebCore::LiveNodeListBase::itemBeforeOrAfter):
(WebCore::LiveNodeListBase::itemBefore):
(WebCore::LiveNodeListBase::itemAfter):
(WebCore::LiveNodeListBase::isLastItemCloserThanLastOrCachedItem):
(WebCore::LiveNodeListBase::isFirstItemCloserThanCachedItem):
(WebCore::LiveNodeListBase::setItemCache):
(WebCore::LiveNodeListBase::length):
(WebCore::LiveNodeListBase::item):
(WebCore::LiveNodeListBase::itemBeforeOrAfterCachedItem):
* html/HTMLCollection.h:
* html/LabelsNodeList.cpp:
(WebCore::LabelsNodeList::LabelsNodeList):
* html/LabelsNodeList.h:
* html/RadioNodeList.cpp:
(WebCore::RadioNodeList::RadioNodeList):
* html/RadioNodeList.h:
2012-10-08 Robert Hogan <robert@webkit.org>
Changing position:relative to position:static results in mis-positioned div
https://bugs.webkit.org/show_bug.cgi?id=26397
Reviewed by Ojan Vafai.
When a block changes position from relative to static it is no longer the containing block for any
positioned objects it may have. If any of those positioned objects actually have a position specified
they are going to need a layout as their new containing block will likely have a different location they
need to offset from. Positioned objects without a specified position always get a layout anyway
in layoutPositionedObjects() so no need to worry about them in this situation.
Test: fast/block/abspos-child-container-changes-from-relative-to-static-expected.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::styleWillChange):
(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::removePositionedObjects):
* rendering/RenderBlock.h:
(RenderBlock):
2012-11-24 Antti Koivisto <antti@apple.com>
Make renderer construction less generic
https://bugs.webkit.org/show_bug.cgi?id=103175
Reviewed by Ojan Vafai.
The renderer construction code currently operates on Nodes and is very generic. In reality
only Element and Text nodes can have renderers and the Text case is much simpler.
This patch separates the Text and Element renderer construction paths and makes it statically
known that other Node types can't have renderers. Less generic code is less branchy and enables
further optimizations.
* dom/CharacterData.cpp:
(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::setDataAndUpdate):
(WebCore):
(WebCore::CharacterData::rendererIsNeeded):
(WebCore::CharacterData::createRenderer):
Only Text subclass of CharacterData can have renderers.
* dom/CharacterData.h:
(CharacterData):
* dom/ContainerNode.h:
(WebCore::ContainerNode::childShouldCreateRenderer):
Move childShouldCreateRenderer from Node to ContainerNode.
(ContainerNode):
* dom/Element.cpp:
(WebCore::Element::rendererIsNeeded):
(WebCore):
(WebCore::Element::attach):
(WebCore::Element::childShouldCreateRenderer):
* dom/Element.h:
Move rendererIsNeeded and createRenderer from Node to Element.
(Element):
* dom/Node.cpp:
(WebCore::Node::attach):
(WebCore):
* dom/Node.h:
(Node):
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
(WebCore::NodeRenderingContext::createRendererForTextIfNeeded):
Separate the Element and Text renderer creation paths. Both are less branchy.
The Text path is much simpler and avoids a bunch of virtual calls.
(WebCore):
* dom/NodeRenderingContext.h:
(NodeRenderingContext):
* dom/Text.cpp:
(WebCore::Text::textRendererIsNeeded):
(WebCore::Text::createTextRendererIfNeeded):
(WebCore):
(WebCore::Text::createTextRenderer):
(WebCore::Text::attach):
(WebCore::Text::updateTextRenderer):
* dom/Text.h:
Add non-virtual Text specific functions.
(WebCore):
(Text):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::clone):
2012-11-22 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r135493): HTMLCollection and DynamicNodeList have two vtable pointers
https://bugs.webkit.org/show_bug.cgi?id=103096
Reviewed by Sam Weinig.
Co-authored by Ilya Tikhonovsky.
Made DynamicNodeListCacheBase inherit from NodeList. While HTMLCollection doesn't inherit
from NodeList in IDL, it makes a lot of sense for the C++ implementation to do so via
DynamicNodeListCacheBase since HTMLCollection and live NodeList share a lot of code in
DynamicNodeListCacheBase.
This lets remove proxies for item() and length() in DynamicNodeList and HTMLCollection
and directly implement them in DynamicNodeListCacheBase which used to provide itemCommon()
and lengthCommon().
Also renamed NodeList::itemWithName() to NodeList::namedItem() to match HTMLCollection's
naming convention.
Finally, removed reportMemoryUsage in DynamicNodeList::reportMemoryUsage since DynamicNodeList
now uses single inheritance.
* bindings/js/JSNodeListCustom.cpp:
(WebCore::JSNodeList::canGetItemsForName): Calls namedItem, which has been renamed from
itemWithName.
(WebCore::JSNodeList::nameGetter): Ditto.
* bindings/v8/custom/V8NodeListCustom.cpp:
(WebCore::V8NodeList::namedPropertyGetter): Ditto.
* bindings/v8/custom/V8NamedNodesCollection.cpp:
(WebCore::V8NamedNodesCollection::namedItem): Renamed from itemWithName.
* bindings/v8/custom/V8NamedNodesCollection.h:
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::nodeMatches): Updated comment.
* dom/DynamicNodeList.cpp:
(WebCore::DynamicNodeList::namedItem): Renamed from itemWithName.
* dom/DynamicNodeList.h:
(DynamicNodeListCacheBase): Inhertis from NodeList and renamed lengthCommon and itemCommon
to virtual length and item respectively.
(DynamicNodeList): Now inherits from just DynamicNodeListCacheBase instead of NodeList
and DynamicNodeListCacheBase since the former now inhertis from NodeList. Also removed
length() and item() since they're implemented in DynamicNodeListCacheBase now and renamed
itemWithName() to namedItem() to match HTMLCollection's naming convention.
* dom/NodeList.h:
(NodeList::namedItem): Renamed from itemWithName. Note that this member function is not
exposed via IDL. It's merely used in the binding code.
* dom/StaticHashSetNodeList.cpp:
(WebCore::StaticHashSetNodeList::namedItem): Ditto.
* dom/StaticHashSetNodeList.h:
(StaticHashSetNodeList::namedItem): Ditto.
* dom/StaticNodeList.cpp:
(WebCore::StaticNodeList::namedItem): Ditto.
* dom/StaticNodeList.h:
(StaticNodeList::namedItem): Ditto.
* html/HTMLCollection.cpp:
(WebCore::DynamicNodeListCacheBase::length): Renamed from lengthCommon.
(WebCore::DynamicNodeListCacheBase::item): Renamed from itemCommon.
* html/HTMLCollection.h:
(HTMLCollection): Inherits from DynamicNodeListCacheBase since DynamicNodeListCacheBase
is already RefCount'ed and NodeList, from which DynamicNodeListCacheBase inherits,
inherits from ScriptWrappable.
2012-11-24 Christophe Dumez <christophe.dumez@intel.com>
[EFL] Refactor RenderThemeEfl::paintThemePart()
https://bugs.webkit.org/show_bug.cgi?id=103192
Reviewed by Kenneth Rohde Christiansen.
Refactor RenderThemeEfl::paintThemePart() so that:
- Some C'ism is removed
- RTL related code is moved to applyEdjeRTLState()
- evas_render() is called instead of evas_render_updates()
to avoid creating uselessly update rects.
No new tests, no behavior change for layout tests.
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::applyEdjeRTLState):
(WebCore):
(WebCore::RenderThemeEfl::paintThemePart):
* platform/efl/RenderThemeEfl.h:
(RenderThemeEfl):
2012-11-24 Brent Fulgham <bfulgham@webkit.org>
[WinCairo] Avoid access violation when frame is NULL.
https://bugs.webkit.org/show_bug.cgi?id=68753
BitmapImage::drawFrameMatchingSourceSize causes an access violation
if BitmapImage::frameAtIndex returns NULL. (Found by David Delaune).
Reviewed by Simon Fraser.
* platform/graphics/win/ImageCairoWin.cpp:
(WebCore::BitmapImage::drawFrameMatchingSourceSize): Check for null
cairo_surface_t pointer and avoid dereferencing.
2012-11-24 Christophe Dumez <christophe.dumez@intel.com>
[EFL] Refactor RenderThemeEfl::getThemePartFromCache()
https://bugs.webkit.org/show_bug.cgi?id=103186
Reviewed by Kenneth Rohde Christiansen.
Refactor getThemePartFromCache() so that a list is used
for the cache instead of a vector. The function moves
items to the head of the container which is much more
efficient with a list than a vector.
The list ordering is also slightly altered so that the
cached parts that were used last come first. Previously,
they were sorted by creation time which may cause an
item to be removed from the cache because it is older
even if is was used recently.
This patch also gets rid of some code duplication at the
end of the function.
No new tests, no behavior change.
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::ThemePartCacheEntry::create): Return
a smart pointer instead of a raw pointer.
(WebCore::RenderThemeEfl::getThemePartFromCache):
(WebCore::RenderThemeEfl::clearThemePartCache): Rename
flushThemePartCache to clearThemePartCache for clarity.
(WebCore::RenderThemeEfl::loadTheme):
(WebCore::RenderThemeEfl::RenderThemeEfl):
(WebCore::RenderThemeEfl::~RenderThemeEfl):
* platform/efl/RenderThemeEfl.h:
(ThemePartCacheEntry):
(RenderThemeEfl):
2012-11-24 Liam Quinn <lquinn@rim.com>
[BlackBerry] RTSP should use the same MediaDocument as HTTP videos.
https://bugs.webkit.org/show_bug.cgi?id=103185
RIM PR 250114
Reviewed by George Staikos.
Make our MediaPlayer implementation indicate that it supports RTSP. That way, DOMImplementation::createDocument will create the same MediaDocument as is used for HTTP videos.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::supportsType):
2012-11-24 Andreas Kling <akling@apple.com>
Put computed style 'font-family' values in the CSSValuePool.
<http://webkit.org/b/103184>
Reviewed by Ojan Vafai.
Use CSSValuePool::createFontFamilyValue() when handing out 'font-family' values from CSSComputedStyleDeclaration.
This avoids creating extra CSSPrimitiveValue objects since we already have these in the pool from parsing.
Also added a max capacity to the font-family cache (using random eviction.)
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForFamily):
* css/CSSValuePool.cpp:
(WebCore::CSSValuePool::createFontFamilyValue):
2012-11-24 Hayato Ito <hayato@chromium.org>
It's confusing that return values of 'bool Node::dispatchEvent(...)' and 'bool Node::dispatchMouseEvent(..)' have the opposite meanings.
https://bugs.webkit.org/show_bug.cgi?id=103058
Reviewed by Ojan Vafai.
Refactor MouseEventDispatchMediator::dispatchEvent() and
EventHandler::dispatchMouseEvent() so that they return bool
which has the same meaning of the return value of
Node::dispatchEvent().
No tests. No change in behavior.
* dom/MouseEvent.cpp:
(WebCore::MouseEventDispatchMediator::dispatchEvent):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::dispatchMouseEvent):
(WebCore::EventHandler::sendContextMenuEvent):
(WebCore::EventHandler::sendContextMenuEventForKey):
2012-11-23 Kangil Han <kangil.han@samsung.com>
Fix unused parameter compile warnings
https://bugs.webkit.org/show_bug.cgi?id=103167
Reviewed by Gyuyoung Kim.
Remove compile warning messages by omitting parameter name and using UNUSED_PARAM.
* accessibility/atk/WebKitAccessibleHyperlink.cpp:
(webkitAccessibleHyperlinkIsSelectedLink):
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(webkitAccessibleTextGetTextAfterOffset):
(webkitAccessibleTextGetTextAtOffset):
(webkitAccessibleTextGetTextBeforeOffset):
(webkitAccessibleTextGetOffsetAtPoint):
2012-11-23 Michael Saboff <msaboff@apple.com>
listMarkerText() should create 8 bit strings when possible
https://bugs.webkit.org/show_bug.cgi?id=103011
Reviewed by Filip Pizlo.
Made processing of marker text items use 8 bit strings where possible in order to reduce 16 bit strings.
Changes covered by existing tests.
* rendering/RenderListMarker.cpp:
(WebCore::toRoman): Changed character constants and buffer to build string to LChar's
(WebCore::toAlphabeticOrNumeric): Made a template based on character type.
(WebCore::toSymbolic): Made a template based on character type.
(WebCore::toAlphabetic): Made a template based on character type.
(WebCore::toNumeric): Added character type template parameter.
(WebCore::listMarkerText): Changed character constants to LChar where possible.
2012-11-23 Robert Kroeger <rjkroege@chromium.org>
Remove unused ScrollByPixelVelocity
https://bugs.webkit.org/show_bug.cgi?id=102840
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=80311 wrongly introduced a new
kind of scroll: "ScrollByPixelVelocity". This code is not used on any platform
and will not be of use in the future so this patch removes it.
No new tests: code removal/cleanup.
* page/EventHandler.cpp:
(WebCore::EventHandler::defaultWheelEventHandler):
(WebCore::EventHandler::handleGestureEvent):
* platform/PlatformWheelEvent.h:
* platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::handleWheelEvent):
* platform/ScrollAnimatorNone.cpp:
(WebCore::ScrollAnimatorNone::ScrollAnimatorNone):
(WebCore::ScrollAnimatorNone::scroll):
(WebCore::ScrollAnimatorNone::cancelAnimations):
(WebCore::ScrollAnimatorNone::animationTimerFired):
* platform/ScrollAnimatorNone.h:
(ScrollAnimatorNone):
* platform/ScrollTypes.h:
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::scroll):
2012-11-23 Adenilson Cavalcanti <cavalcantii@gmail.com>
Removing unnecessary RenderBox friend access in RenderObject
https://bugs.webkit.org/show_bug.cgi?id=103159
Reviewed by Eric Seidel.
RenderObject has several classes marked as friend, between them,
there is RenderBox which is derived from it indirectly and is not accessing
its forefather private data making unnecessary the 'friend' access level.
No new tests, no changes in functionality.
* rendering/RenderObject.h:
(RenderObject):
2012-11-23 Alexis Menard <alexis@webkit.org>
[CSS3 Backgrounds and Borders] Implement new CSS3 background-position parsing.
https://bugs.webkit.org/show_bug.cgi?id=102104
Reviewed by Julien Chaffraix.
Implement the parsing of the CSS3 background-position property which
allows to specify up to four values to position the background. It is
documented here :
http://www.w3.org/TR/css3-background/#the-background-position . I
decided to split up the patch is two pieces, the parsing and later I
will do the rendering. I kept the old code as much as possible (i.e.
the two values parsing) as it is used not only by background-position
but by few other properties. The new four values support is only valid
on the property itself but does not work on the shorthand.
Opera has already implemented this feature.
I extended backgrounds/background-position-parsing-2.html to cover the
new possible values as well as buggy values.
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
* GNUmakefile.features.am:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseFillPositionComponent): Modify this function
to allow creation of CSS primitive values with not only percentage or
length but with keywords also as the new <position> type allows to
specify keywords, for example top 30px right 20px.
(WebCore):
(WebCore::isValueConflictingWithCurrentEdge):
(WebCore::isBackgroundPositionKeyword):
(WebCore::CSSParser::parse3ValuesBackgroundPosition):
(WebCore::CSSParser::parse4ValuesBackgroundPosition):
(WebCore::CSSParser::parseFillBackgroundPosition): This function counts
the number of words for the property value and call dedicated parsing
functions for each case. Note that in case of two values we just call the old CSS 2.1
method.
(WebCore::CSSParser::parseFillPosition):
(WebCore::CSSParser::parseFillProperty): Only call the new parsing
function if the feature is activated otherwise fallback to the old code
path.
* css/CSSParser.h:
2012-11-23 Justin Novosad <junov@google.com>
Adding occlusion detection to reduce overdraw in RenderBox background rendering
https://bugs.webkit.org/show_bug.cgi?id=102557
Reviewed by Stephen White.
Adding hasAlpha method to all classes dervived from CSSImageValue and
StyleImage, in order to support occlusion testing.
This allows the FillLayer recursion to stop early when an opaque layer
is encountered while applying a CSS background style. This also allows
the elimination of background color application when the background is
completely covered by an image. The optimization also skips the
clearing of the page's root element when the page background is
entirely covered by an image (e.g a tiled bitmap or a gradient)
Test: fast/backgrounds/background-opaque-images-over-color.html
* css/CSSCrossfadeValue.cpp:
(WebCore::subimageHasAlpha):
(WebCore):
(WebCore::CSSCrossfadeValue::isPending):
(WebCore::CSSCrossfadeValue::hasAlpha):
* css/CSSCrossfadeValue.h:
(CSSCrossfadeValue):
* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::hasAlpha):
(WebCore):
* css/CSSGradientValue.h:
(CSSGradientValue):
* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::hasAlpha):
(WebCore):
* css/CSSImageGeneratorValue.h:
(CSSImageGeneratorValue):
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::hasAlpha):
(WebCore):
* css/CSSImageValue.h:
(WebCore):
(CSSImageValue):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::currentFrameHasAlpha):
Test whether a cached image has alpha, with side effect of ensuring
the image is in cache. (new method)
(WebCore):
* loader/cache/CachedImage.h:
(CachedImage):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintFillLayers):
Added layer recursion early exit when an opaque layer is encountered.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
Eliminated background color fill when the layer contains an opaque
image that covers the entire RenderBox.
* rendering/style/FillLayer.cpp:
(WebCore::FillLayer::hasOpaqueImage):
Returns true if the layer's image is known to be fully opaque.
(WebCore):
(WebCore::FillLayer::hasRepeatXY):
* rendering/style/FillLayer.h:
(FillLayer):
* rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::hasAlpha):
(WebCore):
* rendering/style/StyleCachedImage.h:
(StyleCachedImage):
* rendering/style/StyleCachedImageSet.cpp:
(WebCore::StyleCachedImageSet::hasAlpha):
(WebCore):
* rendering/style/StyleCachedImageSet.h:
(StyleCachedImageSet):
* rendering/style/StyleGeneratedImage.cpp:
(WebCore::StyleGeneratedImage::hasAlpha):
(WebCore):
* rendering/style/StyleGeneratedImage.h:
(StyleGeneratedImage):
* rendering/style/StyleImage.h:
(StyleImage):
* rendering/style/StylePendingImage.h:
(WebCore::StylePendingImage::hasAlpha):
2012-11-23 Justin Novosad <junov@google.com>
Page background color bleeds through inner edge of div border with rounded edges
https://bugs.webkit.org/show_bug.cgi?id=103089
Reviewed by Stephen White.
Test that verifies whether a RenderBoxEdge is more than 2 pixels wide
was applying the content scale factor backwards, so the
obscuresBackgroundEdge was falsely passing for downsized boxes.
Test: fast/backgrounds/gradient-background-leakage-2.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::BorderEdge::obscuresBackgroundEdge):
2012-11-23 Huang Dongsung <luxtella@company100.net>
[TexMap] Remove dependency of TextureMapperLayer on GraphicsLayerTextureMapper.
https://bugs.webkit.org/show_bug.cgi?id=103046
Reviewed by Noam Rosenthal.
It is a preparation patch for Threaded Coordinated Graphics on WK1.
We want to make TextureMapperLayer into an actor model. After making an actor
model, GraphicsLayerTextureMapper and LayerTreeRenderer will communicate with
TextureMapperLayer using message passing. In the first step, we want to hide
GraphicsLayerTextureMapper from TextureMapperLayer.
There are 2 kinds of dependencies of TextureMapperLayer in GraphicsLayerTextureMapper.
1. To query layer states
2. To paint layer contents
In this patch, we removed the second dependency. Currently, TextureMapperLayer
requests painting contents to GraphicsLayerTextureMapper in WK1 while
Coordinated Graphics prepares the contents in LayerTreeRenderer. This patch
makes WK1 prepare the contents in GraphicsLayerTextureMapper like
LayerTreeRenderer.
We will remove the first dependency in a follow-up patch.
Covered by existing layout tests.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
(WebCore::GraphicsLayerTextureMapper::flushCompositingState):
(WebCore):
(WebCore::GraphicsLayerTextureMapper::didFlushCompositingState):
(WebCore::GraphicsLayerTextureMapper::didFlushCompositingStateRecursive):
(WebCore::GraphicsLayerTextureMapper::updateBackingStore):
(WebCore::GraphicsLayerTextureMapper::prepareBackingStore):
(WebCore::GraphicsLayerTextureMapper::shouldHaveBackingStore):
(WebCore::GraphicsLayerTextureMapper::drawRepaintCounter):
(WebCore::GraphicsLayerTextureMapper::setDebugBorder):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::setHasOwnBackingStore):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::rootLayer):
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::textureMapper):
(WebCore):
(WebCore::TextureMapperLayer::flushCompositingState):
(WebCore::TextureMapperLayer::flushCompositingStateSelf):
* platform/graphics/texmap/TextureMapperLayer.h:
(WebCore):
(WebCore::TextureMapperLayer::TextureMapperLayer):
(TextureMapperLayer):
(WebCore::TextureMapperLayer::setBackingStore):
(State):
(WebCore::TextureMapperLayer::State::State):
2012-11-23 Carlos Garcia Campos <cgarcia@igalia.com>
[ENCHANT] Infinite loop when end word position is not found
https://bugs.webkit.org/show_bug.cgi?id=103139
Reviewed by Martin Robinson.
Covered by existing tests in editing/spelling.
* editing/visible_units.cpp:
(WebCore::isLogicalStartOfWord): Make it private again.
(WebCore::islogicalEndOfWord): Ditto.
* editing/visible_units.h:
* platform/text/enchant/TextCheckerEnchant.cpp:
(WebCore::TextCheckerEnchant::checkSpellingOfWord): Helper funtion
to check a word inside a string using the loaded dictionaries.
(WebCore::TextCheckerEnchant::checkSpellingOfString): Optimize and
simply the code by using the word iterator to iterate the
words.
* platform/text/enchant/TextCheckerEnchant.h:
(TextCheckerEnchant):
2012-11-23 Zeno Albisser <zeno@webkit.org>
[Qt] GraphicsContext3DQt makes wrong surface current.
https://bugs.webkit.org/show_bug.cgi?id=103136
blitMultisampleFramebufferAndRestoreContext restores
the wrong surface in case the currentContext is the same
as m_platformContext.
In this case we would reset the bound surface to NULL.
Instead we should just leave the context unchanged.
Reviewed by Kenneth Rohde Christiansen.
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
2012-11-23 Alexei Filippov <alph@chromium.org>
Web Inspector: remove total item from NMI snapshot grid
https://bugs.webkit.org/show_bug.cgi?id=101926
Reviewed by Yury Semikhatsky.
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeSnapshotDataGrid):
2012-11-23 Zeno Albisser <zeno@webkit.org>
[Qt] GraphicsContext3DQt should not overwrite glClearColor of sharing context.
https://bugs.webkit.org/show_bug.cgi?id=103135
In case we use GraphicsContext3DQt to render into or
read from an existing context, we should not reset
the glClearColor on construction.
Otherwise we might overwrite an existing definition from
the sharing context.
Reviewed by Kenneth Rohde Christiansen.
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
2012-11-23 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: damaging last chunk does not remove its garbage from DOM
https://bugs.webkit.org/show_bug.cgi?id=103132
Reviewed by Vsevolod Vlasov.
Removing everything between undamaged chunks, not registered chunk rows.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
(WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
(WebInspector.TextEditorMainChunk.prototype.updateCollapsedLineRow):
(WebInspector.TextEditorMainChunk.prototype.firstElement):
(WebInspector.TextEditorMainChunk.prototype.lastElement):
2012-11-23 Ilya Tikhonovsky <loislo@chromium.org>
RenderLayer minor clean-up: replace raw pointers with OwnPtrs.
https://bugs.webkit.org/show_bug.cgi?id=103134
Reviewed by Eric Seidel.
I found that RenderLayer still uses raw pointers to the objects which it owns.
Looks like these pointers could be replaced with OwnPtrs.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::~RenderLayer):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::updateNormalFlowList):
(WebCore::RenderLayer::collectLayers):
(WebCore::RenderLayer::styleChanged):
* rendering/RenderLayer.h:
(WebCore::RenderLayer::marquee):
(WebCore::RenderLayer::posZOrderList):
(WebCore::RenderLayer::negZOrderList):
(WebCore::RenderLayer::normalFlowList):
(RenderLayer):
(WebCore::RenderLayer::clearZOrderLists):
2012-11-23 Christophe Dumez <christophe.dumez@intel.com>
[EFL][AC] Mouse cursor is not updated when accelerated compositing is enabled
https://bugs.webkit.org/show_bug.cgi?id=103131
Reviewed by Kenneth Rohde Christiansen.
Make sure we try to get the Ecore_X_Window using ecore_evas_gl_x11_window_get()
in applyFallbackCursor() if accelerated compositing is enabled instead of
using ecore_evas_software_x11_window_get(). This fixes mouse cursor update
when accelerated compositing is enabled.
No new tests, no behavior change for layout tests.
* platform/efl/EflScreenUtilities.cpp:
(WebCore::applyFallbackCursor):
2012-11-16 Yury Semikhatsky <yurys@chromium.org>
Memory instrumentation: extract MemoryObjectInfo declaration into a separate file
https://bugs.webkit.org/show_bug.cgi?id=102510
Reviewed by Pavel Feldman.
Added necessary includes where MemoryObjectInfo declaration is required.
* platform/audio/FFTFrame.cpp:
* rendering/style/RenderStyle.cpp:
* rendering/style/StyleRareInheritedData.cpp:
* rendering/style/StyleRareNonInheritedData.cpp:
2012-11-23 Dan Carney <dcarney@google.com>
Remove V8DOMWindowShell::getEntered
https://bugs.webkit.org/show_bug.cgi?id=96637
Reviewed by Adam Barth.
V8DOMWindowShell::getEntered was refactored so that the window shell
no longer has to be kept alive by a v8 context. Instead, only
the DOMWrapperWorld will be kept alive.
No new tests. No change in functionality.
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore::isolatedWorldWeakCallback):
(WebCore):
(WebCore::DOMWrapperWorld::makeContextWeak):
(WebCore::DOMWrapperWorld::setIsolatedWorldField):
* bindings/v8/DOMWrapperWorld.h:
(DOMWrapperWorld):
(WebCore::DOMWrapperWorld::isolated):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::existingWindowShell):
(WebCore::ScriptController::windowShell):
(WebCore::ScriptController::evaluateInIsolatedWorld):
(WebCore::ScriptController::currentWorldContext):
(WebCore::ScriptController::collectIsolatedContexts):
* bindings/v8/ScriptController.h:
(ScriptController):
* bindings/v8/V8Binding.h:
(WebCore::worldForEnteredContextIfIsolated):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::destroyIsolatedShell):
(WebCore::V8DOMWindowShell::disposeContext):
(WebCore::V8DOMWindowShell::initializeIfNeeded):
* bindings/v8/V8DOMWindowShell.h:
(V8DOMWindowShell):
* bindings/v8/V8PerContextData.h:
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::WorldContextHandle):
2012-11-23 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Refine JsDoc in ProfilesPanel.js
https://bugs.webkit.org/show_bug.cgi?id=103042
Reviewed by Yury Semikhatsky.
I'm going to make profiler output typed.
This will require some amount of refactoring.
Before refactoring I would like to make things
unambiguous by adding JsDoc where they are missing.
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel.prototype._onToggleProfiling):
Added to eliminate parameter type ambiguity.
2012-11-23 Kent Tamura <tkent@chromium.org>
Correct input[type=number] value sanitization for user-input
https://bugs.webkit.org/show_bug.cgi?id=103018
Reviewed by Kentaro Hara.
If a number field has non-number string, HTMLInputElement::value is not
updated and returns the past valid value. It doesn't match to the value
sanitization algorithm defined by the HTML standard [1], and Opera's
behavior. We should sanitize non-number strings to "".
[1] http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#number-state-(type=number)
> The value sanitization algorithm is as follows: If the value of the
> element is not a valid floating-point number, then set it to the empty
> string instead.
No new tests. Update existing tests;
fast/forms/number/number-commit-valid-only.html and
fast/forms/number/number-unacceptable-style.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::subtreeHasChanged):
Remove isAcceptableValue check.
* html/HTMLInputElement.h:
(HTMLInputElement): isAcceptableValue is no longer needed.
* html/InputType.cpp: Remove isAcceptableValue.
* html/InputType.h: Ditto.
* html/NumberInputType.cpp: Ditto.
(WebCore::NumberInputType::hasUnacceptableValue):
Fold the isAcceptableValue content into this.
* html/NumberInputType.h:
(NumberInputType): Remove isAcceptableValue.
2012-11-23 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135592.
http://trac.webkit.org/changeset/135592
https://bugs.webkit.org/show_bug.cgi?id=103126
broke Chromium Mac compilation (Requested by yurys on
#webkit).
* WebCore.gypi:
2012-11-23 Yury Semikhatsky <yurys@chromium.org>
Remove references to non-chromium entries from WebCore.gypi (part 2)
https://bugs.webkit.org/show_bug.cgi?id=103124
Reviewed by Pavel Feldman.
* WebCore.gypi: removed references to gtk, cocoa, posix, ios, cf, win and mac
2012-11-23 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] add startCapturing and stopCapturing methods to protocol
https://bugs.webkit.org/show_bug.cgi?id=103053
Reviewed by Pavel Feldman.
Add startCapturing and stopCapturing methods to the protocol to instrument several canvas frames in a row.
Drive-by: support start offset index in retrieving trace logs in the backend as well as "alive" flag.
* inspector/InjectedScriptCanvasModule.cpp:
(WebCore::InjectedScriptCanvasModule::captureFrame):
(WebCore):
(WebCore::InjectedScriptCanvasModule::startCapturing):
(WebCore::InjectedScriptCanvasModule::callStartCapturingFunction):
(WebCore::InjectedScriptCanvasModule::stopCapturing):
(WebCore::InjectedScriptCanvasModule::dropTraceLog):
(WebCore::InjectedScriptCanvasModule::callVoidFunctionWithTraceLogIdArgument):
(WebCore::InjectedScriptCanvasModule::traceLog):
* inspector/InjectedScriptCanvasModule.h:
(InjectedScriptCanvasModule):
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
* inspector/Inspector.json:
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::startCapturing):
(WebCore):
(WebCore::InspectorCanvasAgent::stopCapturing):
(WebCore::InspectorCanvasAgent::getTraceLog):
* inspector/InspectorCanvasAgent.h:
(InspectorCanvasAgent):
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView):
2012-11-23 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: dispatch events upon certain user actions on inspector's notification services
https://bugs.webkit.org/show_bug.cgi?id=103114
Reviewed by Pavel Feldman.
Add a bunch of WebInspector.UserMetrics.UserAction, so platform-specific code can wire to user actions
without breaking too often.
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype._setPseudoClassForNodeId):
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
* inspector/front-end/NetworkItemView.js:
(WebInspector.NetworkItemView.prototype._tabSelected.set WebInspector):
(WebInspector.NetworkItemView.prototype._tabSelected):
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._sortItems):
(WebInspector.NetworkDataGridNode.prototype.select):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel.prototype.addProfileHeader):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._showSourceLine):
(WebInspector.ScriptsPanel.prototype._toggleFormatSource):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.revertToOriginal):
(WebInspector.UISourceCode.prototype.revertAndClearHistory):
(WebInspector.UISourceCode.prototype.commitWorkingCopy):
* inspector/front-end/UserMetrics.js:
* inspector/front-end/externs.js:
* inspector/front-end/inspector.js:
(WebInspector._requestZoom.set var):
(WebInspector._requestZoom):
2012-11-23 Christophe Dumez <christophe.dumez@intel.com>
WebSocket's MessageEvent.origin attribute is an empty string
https://bugs.webkit.org/show_bug.cgi?id=102889
Reviewed by Kentaro Hara.
Fix WebSocket implementation so that the message event's origin
attribute is properly set to the Unicode serialization of the
origin of the URL that was passed to the WebSocket object's
constructor, instead of an empty string.
The new behavior is according to the specification:
http://www.whatwg.org/specs/web-apps/current-work/multipage/network.html#feedback-from-the-protocol
It also matches the behavior of Firefox.
Tests: http/tests/websocket/tests/hybi/send-blob-onmessage-origin.html
http/tests/websocket/tests/hybi/send-onmessage-origin.html
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::didReceiveMessage):
(WebCore::WebSocket::didReceiveBinaryData):
* dom/MessageEvent.cpp:
(WebCore::MessageEvent::MessageEvent):
* dom/MessageEvent.h:
(WebCore::MessageEvent::create):
(MessageEvent):
2012-11-22 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: No "Save Heap Snapshot" option after canceling save to file dialog.
https://bugs.webkit.org/show_bug.cgi?id=100916
Reviewed by Yury Semikhatsky.
Fixed order of operations - now receiver is assigned only when save
dialog responds.
* inspector/front-end/HeapSnapshotView.js: Fixed order of operations.
2012-11-23 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] REGRESSION(r135507): It made 13 tests fail
https://bugs.webkit.org/show_bug.cgi?id=103069
Reviewed by Simon Hausmann.
The subframe loading logic depends on that script extensions are not recognized,
so avoid recognizing them in getMIMETypeForExtension which is used for pre-load
mimetype detection.
* platform/qt/MIMETypeRegistryQt.cpp:
(WebCore::MIMETypeRegistry::getMIMETypeForExtension):
2012-11-23 Jochen Eisinger <jochen@chromium.org>
REGRESSION (r135455): Compilation without SVG enabled broken
https://bugs.webkit.org/show_bug.cgi?id=103108
Reviewed by Yury Semikhatsky.
Move SVG-only code behind #if ENABLE(SVG) that was accidentially moved
outside of the #if block during the refactoring.
* platform/graphics/filters/FilterOperation.h:
(ReferenceFilterOperation):
2012-11-23 Julian Pastarmov <pastarmovj@chromium.org>
REGRESSION (r128633): td changes size during re-layout of table although it shouldn't
https://bugs.webkit.org/show_bug.cgi?id=102802
Reviewed by Ojan Vafai.
The bug was caused by incorrectly rewriting a nested condition which caused the else
clause to trigger in wrong cases.
Test: fast/table/nested-tables-with-div-offset.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePercentageLogicalHeight):
Reverted wrong combination of nested if statements.
2012-11-23 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] REGRESSION(r135507): It made 13 tests fail
https://bugs.webkit.org/show_bug.cgi?id=103069
Reviewed by Simon Hausmann.
Fix regression in recognizing MHTML on some platforms.
* platform/qt/MIMETypeRegistryQt.cpp:
(ExtensionMap):
(WebCore::MIMETypeRegistry::getMIMETypeForExtension):
(WebCore::MIMETypeRegistry::getMIMETypeForPath):
2012-11-22 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: ctrl+end in editor does not select the last symbol.
https://bugs.webkit.org/show_bug.cgi?id=103078
Reviewed by Vsevolod Vlasov.
Test: inspector/editor/text-editor-selection.html
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype._handleScrollChanged):
(WebInspector.DefaultTextEditor.prototype.overrideViewportForTest):
(WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
(WebInspector.TextEditorChunkedPanel.prototype._scrollTop):
(WebInspector.TextEditorChunkedPanel.prototype._clientHeight):
(WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
(WebInspector.TextEditorMainPanel.prototype._selectionToPosition):
(WebInspector.TextEditorMainPanel.prototype._updateHighlightsForRange):
2012-11-23 Yury Semikhatsky <yurys@chromium.org>
Remove references to non-chromium entries from WebCore.gypi
https://bugs.webkit.org/show_bug.cgi?id=103103
Reviewed by Pavel Feldman.
* WebCore.gypi: Removed references to files specific for wince, cairo, qt, wx and efl.
2012-11-23 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: inspector overlay is always updated when inspector is open
https://bugs.webkit.org/show_bug.cgi?id=103106
Reviewed by Pavel Feldman.
Provide empty size into the InspectorOverlay if the metrics emulation is disabled,
so that it will not get painted in all cases.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::webViewResized): Call InspectorPageAgent::webViewResized() rather than InspectorOverlay::resize().
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::webViewResized): Provide empty size into InspectorOverlay::resize() if device metrics are not emulated.
* inspector/InspectorPageAgent.h:
2012-11-23 Krzysztof Czech <k.czech@samsung.com>
[EFL] Platform support for Accessibility feature.
https://bugs.webkit.org/show_bug.cgi?id=100848
Reviewed by Gyuyoung Kim.
Add EFL platform's definitions to enable proper accessibility routines.
No new tests. Covered by existing layout tests.
* PlatformEfl.cmake: Add accessibility/atk content to compilation.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::AccessibilityObject):
* accessibility/AccessibilityObject.h:
(AccessibilityObject):
* accessibility/efl/AccessibilityObjectEfl.cpp: Removed. No needed platform specific implementation. ATK shared implementation will be used.
2012-11-23 Thiago Marcos P. Santos <thiago.santos@intel.com>
Expose DOM interface for CSS Device Adaptation
https://bugs.webkit.org/show_bug.cgi?id=95966
Reviewed by Kenneth Rohde Christiansen.
Added V8 and JSC bindings for CSS Device Adapation.
Test: css3/device-adapt/opera/cssom-001.xhtml
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJS):
* bindings/objc/DOMCSS.mm:
(kitClass):
* bindings/v8/custom/V8CSSRuleCustom.cpp:
(WebCore::wrap):
* css/CSSRule.idl:
* css/WebKitCSSViewportRule.idl: Added.
* page/DOMWindow.idl:
2012-11-22 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135549.
http://trac.webkit.org/changeset/135549
https://bugs.webkit.org/show_bug.cgi?id=103102
Multiple layout test crashes (Requested by yurys on #webkit).
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
* rendering/RenderTable.h:
(RenderTable):
2012-11-22 Rick Byers <rbyers@chromium.org>
window is missing Touch and TouchList - touch event conformance test failure
https://bugs.webkit.org/show_bug.cgi?id=96295
Reviewed by Adam Barth.
Add Touch and TouchList constructors to window for ENABLE(TOUCH_EVENTS).
Tests: fast/js/global-constructors.html
fast/events/touch/document-create-touch-list.html
* page/DOMWindow.idl:
2012-11-22 Dan Carney <dcarney@google.com>
[V8] Make worker context prototype chain match other browsers
https://bugs.webkit.org/show_bug.cgi?id=103057
Reviewed by Adam Barth.
The following should be defined in a worker:
Object.getOwnPropertyDescriptor(this.__proto__, "postMessage")
It is currently undefined in chrome only. This patch fixes that.
No new tests. No change in functionality.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateImplementation):
2012-11-22 Rafael Brandao <rafael.lobo@openbossa.org>
Remove PLATFORM(HAIKU) leftovers code
https://bugs.webkit.org/show_bug.cgi?id=103086
Reviewed by Antti Koivisto.
* platform/PlatformWheelEvent.h:
(PlatformWheelEvent):
2012-11-22 Dirk Schulze <krit@webkit.org>
-webkit-mask shorthand switches -webkit-mask-clip and -webkit-mask-origin values
https://bugs.webkit.org/show_bug.cgi?id=103083
Reviewed by Antti Koivisto.
The order of CSSPropertyWebkitMaskOrigin and CSSPropertyWebkitMaskClip was not correct
for property value. Just changed the order in the property array to match behavior of
background and CSS Masking spec.
Test: fast/masking/parsing-mask.html
* css/StylePropertyShorthand.cpp:
(WebCore::webkitMaskShorthand):
2012-11-22 John Mellor <johnme@chromium.org>
Text Autosizing: Improve handling of nested comments on reddit.com
https://bugs.webkit.org/show_bug.cgi?id=102409
Reviewed by Kenneth Rohde Christiansen.
No longer consider overflow != visible as requiring an independent
cluster. Some sites (e.g. reddit.com) wrap ordinary blocks (such as
comments) in overflow:hidden or overflow:auto, for various reasons
(like allowing it to be scrollable, or clipping an element that sticks
out). These reasons are not sufficient justification for a new cluster.
On reddit.com this means that comments will all get the same multiplier,
rather than being independently assigned a variety of multipliers based
on how much text each comment contains (etc), which significantly
improves the look.
Test: fast/text-autosizing/cluster-narrow-in-wide-ohidden.html
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::isAutosizingCluster):
2012-11-22 Pravin D <pravind.2k4@gmail.com>
max-height property not respected in case of tables
https://bugs.webkit.org/show_bug.cgi?id=98633
Reviewed by Julien Chaffraix.
The max-height property determines the maximum computed height an element can have. In case of tables
the computed height was not being limited by the max-height property. The current patch fixes the same.
Test: fast/table/css-table-max-height.html
* rendering/RenderTable.cpp:
(WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
Helper function to compute height from the given style height.
This function handles style height of type fixed, percent and viewport percent.
As height of type 'calculated' gets internally resolved to either fixed or percent
there is no special handling required for the same.
(WebCore):
(WebCore::RenderTable::layout):
Logic to compute the logical height of an element such that it does not exceed the max-height value given that
min-width < Content height < max-height, when min-height < max-height.
However max-height value is not respected if either min-height > max-height or Content height > max-height.
* rendering/RenderTable.h:
(RenderTable):
Function definition for the newly add function convertStyleLogicalHeightToComputedHeight().
2012-11-22 Kentaro Hara <haraken@chromium.org>
Remove 'module' from IDL parser
https://bugs.webkit.org/show_bug.cgi?id=102670
Reviewed by Adam Barth.
The Web IDL spec no longer supports 'module'. We already removed
'module's from WebKit IDL files. So this patch removes 'module'
from the IDL parser.
No tests. No change in behavior.
* bindings/scripts/IDLParser.pm:
(Parse):
(parseDefinitionOld):
2012-11-22 Dan Carney <dcarney@google.com>
[V8] fix DOMWrapperWorld destructor
https://bugs.webkit.org/show_bug.cgi?id=103066
Reviewed by Jochen Eisinger.
DOMWrapperWorld had a workaround in place during deletion.
This patch brings it in line with WebKit standards.
No new tests: refactor.
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore::DOMWrapperWorld::~DOMWrapperWorld):
(WebCore::DOMWrapperWorld::ensureIsolatedWorld):
* bindings/v8/DOMWrapperWorld.h:
(DOMWrapperWorld):
(WebCore::DOMWrapperWorld::isolatedWorldDOMDataStore):
2012-11-22 Antti Koivisto <antti@apple.com>
Remove SVGShadowText class
https://bugs.webkit.org/show_bug.cgi?id=103088
Reviewed by Ryosuke Niwa.
Remove SVGShadowText class and merge the little functionality it has to Text.
* dom/Text.cpp:
(WebCore):
(WebCore::isSVGShadowText):
Figure out if we are a SVGShadowText from the context.
(WebCore::isSVGText):
(WebCore::Text::createRenderer):
(WebCore::Text::recalcTextStyle):
Factor SVG special case testing to functions.
* dom/Text.h:
(Text):
Get rid of the now unnecessary willRecalcTextStyle mechanism.
* svg/SVGTRefElement.cpp:
(WebCore):
(WebCore::SVGTRefElement::updateReferencedText):
2012-11-22 Andreas Kling <akling@apple.com>
Style sharing: Remove O(n^2) presentation attribute checks that never found anything anyway.
<http://webkit.org/b/103019>
Reviewed by Ojan Vafai.
Rely on the global presentation attribute cache and remove the slow-path code that compares
the full StylePropertySets for attribute-derived style.
There are virtually no cases of logically equivalent presentation attribute styles that don't
already share the same memory address. (Zero hits on Apple and Chromium PLT content.)
* css/StyleResolver.cpp:
(WebCore::haveIdenticalStyleAffectingAttributes):
(WebCore::StyleResolver::canShareStyleWithElement):
2012-11-22 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: evaluate on hover regressed with the editor change
https://bugs.webkit.org/show_bug.cgi?id=103063
Reviewed by Vsevolod Vlasov.
We are no longer mutating the editor's dom from outside.
* inspector/front-end/DOMExtension.js:
(Element.prototype.remove):
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype.highlightRangesWithStyleClass):
(WebInspector.DefaultTextEditor.prototype.highlightExpression):
(WebInspector.DefaultTextEditor.prototype.hideHighlightedExpression):
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame.prototype._getPopoverAnchor):
(WebInspector.JavaScriptSourceFrame.prototype._onHidePopover):
(WebInspector.JavaScriptSourceFrame.prototype._highlightExpression):
2012-09-26 Gustavo Noronha Silva <gns@gnome.org>
[GTK] Split SVG from WebCore to work-around make limitation
https://bugs.webkit.org/show_bug.cgi?id=97735
Reviewed by Carlos Garcia Campos.
Add a new libtool convenience library, libWebCoreSVG.la, to work-around
make limitation when linking libWebCore.
* GNUmakefile.am: new libWebCoreSVG.la library.
* GNUmakefile.list.am: move SVG-related files to be part of the new library.
2012-11-22 Pan Deng <pan.deng@intel.com>
[Web Inspector]Code Style changes in TimelinePresentationModel.js.
https://bugs.webkit.org/show_bug.cgi?id=102885.
Reviewed by Pavel Feldman.
This patch changes "switch" code style for TimelinePresentationModel.js, no functionality update.
No new tests.
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
2012-11-22 Ryosuke Niwa <rniwa@webkit.org>
Build fix attempt.
* html/HTMLCollection.h:
(HTMLCollection):
2012-11-22 Ryosuke Niwa <rniwa@webkit.org>
Get rid of HTMLCollectionCacheBase
https://bugs.webkit.org/show_bug.cgi?id=103085
Reviewed by Sam Weinig.
Merged HTMLCollectionCacheBase into HTMLCollection now that DynamicNodeList and HTMLCollection
share one implementation.
* dom/DynamicNodeList.cpp:
(WebCore::DynamicNodeListCacheBase::rootNode): Merged ownerNodeHasItemRefAttribute since this was
the only caller of this function, and the function name didn't match what it was checking.
(WebCore::DynamicNodeListCacheBase::invalidateCache):
(WebCore::DynamicNodeListCacheBase::invalidateIdNameCacheMaps):
* dom/DynamicNodeList.h:
(WebCore):
(WebCore::DynamicNodeListCacheBase::cachedItemOffset):
(DynamicNodeListCacheBase):
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::HTMLCollection):
(WebCore::DynamicNodeListCacheBase::setItemCache):
(WebCore::DynamicNodeListCacheBase::itemBeforeOrAfterCachedItem): Merged cachedElementsArrayOffset()
now that this is the only caller.
(WebCore::HTMLCollection::append):
* html/HTMLCollection.h:
(HTMLCollection):
(WebCore::HTMLCollection::idCache): Moved from HTMLCollectionCacheBase.
(WebCore::HTMLCollection::nameCache): Ditto.
(WebCore::HTMLCollection::appendIdCache): Ditto.
(WebCore::HTMLCollection::appendNameCache): Ditto.
2012-11-22 Antti Koivisto <antti@apple.com>
Merge EditingText into Text
https://bugs.webkit.org/show_bug.cgi?id=103060
Reviewed by Ryosuke Niwa.
Remove the EditingText class. Its only function beyond the regular Text is that it always creates a renderer.
It can be replaced with a bit.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/CDATASection.cpp:
(WebCore::CDATASection::CDATASection):
* dom/Document.cpp:
(WebCore::Document::createEditingTextNode):
* dom/Document.h:
(WebCore):
(Document):
* dom/EditingText.cpp: Removed.
* dom/EditingText.h: Removed.
* dom/Node.h:
(WebCore::Node::hasName):
(WebCore::Node::isEditingText):
(WebCore::Node::setHasName):
Use the same bit as hasName() which is Element specific.
* dom/Text.cpp:
(WebCore::Text::create):
(WebCore):
(WebCore::Text::createEditingText):
(WebCore::Text::rendererIsNeeded):
* dom/Text.h:
(Text):
(WebCore::Text::Text):
* editing/Editor.cpp:
* editing/InsertTextCommand.cpp:
* editing/ReplaceSelectionCommand.cpp:
* editing/htmlediting.cpp:
* editing/mac/EditorMac.mm:
* page/Frame.cpp:
2012-11-22 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Timeline: Disclosure arrows rendered underneath frame boundaries
https://bugs.webkit.org/show_bug.cgi?id=101053
Reviewed by Yury Semikhatsky.
In Timeline, when in "frames" mode, event disclosure arrows are rendered
below the dividing lines for the frame (div.timeline-frame-divider).
When this happens, the frame divider can capture mouse clicks and make
it difficult to open the disclosure arrow.
* inspector/front-end/timelinePanel.css:
(#timeline-grid-header): Render dividers under timeline bars.
2012-11-22 Huang Dongsung <luxtella@company100.net>
[TexMap] Reduce public methods of TextureMapperTiledBackingStore.
https://bugs.webkit.org/show_bug.cgi?id=103032
Reviewed by Noam Rosenthal.
This patch makes two methods private and removes one method.
No new tests, refactoring only.
* platform/graphics/texmap/TextureMapperBackingStore.cpp:
(WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
* platform/graphics/texmap/TextureMapperBackingStore.h:
(WebCore::TextureMapperTiledBackingStore::create):
(TextureMapperTiledBackingStore):
(WebCore::TextureMapperTiledBackingStore::setContentsToImage):
(WebCore::TextureMapperTiledBackingStore::rect):
2012-11-22 Simon Hausmann <simon.hausmann@digia.com>, Pierre Rossi <pierre.rossi@digia.com>
[Qt] Separate QWidget dependant code into separate WebKitWidgets static library
https://bugs.webkit.org/show_bug.cgi?id=102800
Reviewed by Tor Arne Vestbø.
This patch separates code that needs to use QWidget related APIs in
WebKit/qt/WebCoreSupport and Api from code that doesn't. This means for
example FrameLoaderClientQt.cpp remains in the WebKit1 static library,
while qwebpage.cpp and qwebframe.cpp become part of the WebKitWidgets
static library. WebKit1 is compiled without QT += widgets and therefore
any widget related dependency has been moved "up" and out of WebKit1 into
the WebKitWidgets library.
Between the code in WebKit.a and WebKitWidgets.a new adapters and
interfaces have been introduced, such as QWebPageAdapter and
QWebFrameAdapter. QWebPageAdapter, when used from WebKit1, is a way to
call out into the API layer, implemented by QWebPage (QWebPagePrivate).
The other way around if QWebPage wants to access WebCore or
WebCoreSupport related functionality, it will go through
QWebPageAdapater (as base class). The separation in the direction up
into the API layer is complete with this patch, no code in WebKit1
depends on QtWidgets. The separation the other way around, code in the
API layer not using any WebCore types, is not complete yet.
Some classes such as QWebSettings, QWebElement or
DumpRenderTreeSupportQt remain in WebKit1. While they are API layer,
they do not depend on widget related Qt APIs and they make much more
use of WebCore internal APIs and therefore are easier to keep in
WebKit1.
In the future we plan to place a real shared library boundary between
WebKit1 and WebKitWidgets, by keeping the WebKit1 static library as
part of the QtWebKit shared library and by turning the WebKitWidgets
static library into a shared one.
* platform/qt/QWebPageClient.h:
(QWebPageClient):
2012-11-22 Dan Carney <dcarney@google.com>
[V8] Add context checks to WorldContextHandle and V8DOMWindowShell
https://bugs.webkit.org/show_bug.cgi?id=101573
Reviewed by Adam Barth.
Added a bunch of assertions to ensure the problems with IndexedDB
contexts cannot reemerge.
No new tests. No change in functionality.
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore):
(WebCore::V8DOMWindowShell::assertContextHasCorrectPrototype):
* bindings/v8/V8DOMWindowShell.h:
(V8DOMWindowShell):
(WebCore::V8DOMWindowShell::isolated):
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::WorldContextHandle):
2012-11-22 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Correct extensions on preferredFilename
https://bugs.webkit.org/show_bug.cgi?id=103054
Reviewed by Simon Hausmann.
When guessing a filename we will now ensure it has an extension that is valid for its mimetype.
To do this the two missing methods getExtensionsForMIMEType and getPreferredExtensionForMIMEType
have been added to the Qt implementation of MIMETypeRegistry.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
* platform/qt/MIMETypeRegistryQt.cpp:
(WebCore::MIMETypeRegistry::getExtensionsForMIMEType):
(WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
2012-11-22 Kent Tamura <tkent@chromium.org>
INPUT_MULTIPLE_FIELDS_UI: Refactoring: Do not call updateInnerTextValue if only read-only sub-fields have values
https://bugs.webkit.org/show_bug.cgi?id=103033
Reviewed by Kentaro Hara.
input[type=time] can have read-only sub fields. If only read-only fields
have values, we don't need to call updateInnerTextValue when
HTMLInputElement::value is set to "".
Tests: this patch doesn't change any visible behavior, but we add test cases to
fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html
just in case.
* html/shadow/DateTimeEditElement.h:
(DateTimeEditElement): Declare anyEditableFieldsHaveValues.
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditElement::anyEditableFieldsHaveValues):
Added. This function checks value existence against only editable sub-fields.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue):
Call DateTimeEditElement::anyEditableFieldsHaveValues() instead of
DateTimeFieldsState::hasAnyValue().
* html/DateTimeFieldsState.h: Remove hasAnyValue.
2012-11-22 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Lookup mimetypes using QMimeDatabase
https://bugs.webkit.org/show_bug.cgi?id=102667
Reviewed by Simon Hausmann.
The Qt backend of MIMETypeRegistry now looks up using QMimeDatabase.
* loader/archive/ArchiveFactory.cpp:
(WebCore::archiveMIMETypes):
Also map the preferred freedesktop mimetype for MIME archives to MIME archive constructor.
* platform/MIMETypeRegistry.cpp:
(WebCore::MIMETypeRegistry::getNormalizedMIMEType):
* platform/qt/MIMETypeRegistryQt.cpp:
(WebCore::MIMETypeRegistry::getMIMETypeForExtension):
(WebCore::MIMETypeRegistry::getMIMETypeForPath):
(WebCore::MIMETypeRegistry::getNormalizedMIMEType):
2012-11-22 Cosmin Truta <ctruta@rim.com>
Move URL-checking code into Frame
https://bugs.webkit.org/show_bug.cgi?id=103014
Reviewed by Ojan Vafai.
Move the common URL checking logic from HTMLFrameElementBase::isURLAllowed
and HTMLPlugInImageElement::allowedToLoadFrameURL into Frame::isURLAllowed.
No new tests. Refactoring.
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::isURLAllowed): Call Frame::isURLAllowed.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::allowedToLoadFrameURL): Call Frame::isURLAllowed.
* page/Frame.cpp:
(WebCore::Frame::isURLAllowed): Added.
* page/Frame.h:
(Frame): Added isURLAllowed.
2012-11-22 Kentaro Hara <haraken@chromium.org>
[V8] Rename toWebCoreStringWithNullOrUndefinedCheck() with toWebCoreStringWithUndefinedOrNullCheck()
https://bugs.webkit.org/show_bug.cgi?id=103013
Reviewed by Adam Barth.
IDL attributes and other V8 and JSC files use "UndefinedOrNull" instead of "NullOrUndefined".
No tests. No change in behavior.
* bindings/v8/JavaScriptCallFrame.cpp:
(WebCore::JavaScriptCallFrame::functionName):
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::setScriptSource):
(WebCore::ScriptDebugServer::dispatchDidParseSource):
(WebCore::ScriptDebugServer::compileScript):
(WebCore::ScriptDebugServer::runScript):
* bindings/v8/ScriptEventListener.cpp:
(WebCore::eventListenerHandlerLocation):
* bindings/v8/V8Binding.h:
(WebCore::toWebCoreStringWithUndefinedOrNullCheck):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::showModalDialogCallback):
(WebCore::V8DOMWindow::openCallback):
* bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
(WebCore::V8JavaScriptCallFrame::evaluateCallback):
2012-11-22 Harald Alvestrand <hta@google.com>
Name enumerator function for GetStats RTCStatsElement
https://bugs.webkit.org/show_bug.cgi?id=102933
Reviewed by Adam Barth.
Tested by extensions to the RTCPeerConnection-stats test.
* Modules/mediastream/RTCStatsElement.cpp:
(WebCore::RTCStatsElement::names):
(WebCore):
* Modules/mediastream/RTCStatsElement.h:
(RTCStatsElement):
* Modules/mediastream/RTCStatsElement.idl:
2012-11-22 Kentaro Hara <haraken@chromium.org>
Rename the "eden" bit to something more descriptive
https://bugs.webkit.org/show_bug.cgi?id=102985
Reviewed by Adam Barth.
InEdenFlag is not descriptive. Per the discussion in IRC,
we rename InEdenFlag to V8CollectableDuringMinorGCFlag.
No tests. No change in behavior.
* bindings/v8/V8GCController.cpp:
(WebCore::gcTree):
(WebCore::V8GCController::didCreateWrapperForNode):
(WebCore::V8GCController::minorGCPrologue):
* dom/Node.h:
(WebCore::Node::isV8CollectableDuringMinorGC):
(WebCore::Node::setV8CollectableDuringMinorGC):
2012-11-22 Kentaro Hara <haraken@chromium.org>
[V8] Move AddMessageListener() from WorkerContextExecutionProxy::initializeIfNeeded() to WorkerContextExecutionProxy::initIsolate()
https://bugs.webkit.org/show_bug.cgi?id=102998
Reviewed by Adam Barth.
This is an incremental step for moving initializeIfNeeded()
to V8Initializer.h. Given that AddMessageListener() needs to
be called once per Isolate, we can move AddMessageListener()
from initializeIfNeeded() to initIsolate().
No tests. No change in behavior.
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::WorkerContextExecutionProxy::initIsolate):
(WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
2012-11-22 Michael Saboff <msaboff@apple.com>
HTML integer parsing functions don't natively handle 8 bit strings
https://bugs.webkit.org/show_bug.cgi?id=102997
Reviewed by Filip Pizlo.
In order to avoid unnecessary up convering of 8 bit strings to 16 bits, added 8 bit paths to
parseHTMLInteger() and parseHTMLNonNegativeInteger() by breaking out the core logic into
templated helper functions. These methods are primarily used to process attribute values.
No new tests needed, functionnality covered by existing tests.
* html/parser/HTMLParserIdioms.cpp:
(WebCore::parseHTMLIntegerInternal):
(WebCore::parseHTMLInteger):
(WebCore::parseHTMLNonNegativeIntegerInternal):
(WebCore::parseHTMLNonNegativeInteger):
2012-11-22 Kentaro Hara <haraken@chromium.org>
[V8] WebCoreStringResourceBase should be located in V8StringResource.h
https://bugs.webkit.org/show_bug.cgi?id=103002
Reviewed by Adam Barth.
Currently WebCoreStringResourceBase is mis-located in V8ValueCache.h.
It should be in V8StringResource.h.
No tests. No change in behavior.
* bindings/v8/V8StringResource.cpp:
(WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
(WebCore):
(WebCore::WebCoreStringResourceBase::visitStrings):
* bindings/v8/V8StringResource.h:
(WebCore):
(WebCoreStringResourceBase):
(WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
(WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
(WebCore::WebCoreStringResourceBase::webcoreString):
(WebCore::WebCoreStringResourceBase::atomicString):
(WebCore::WebCoreStringResourceBase::memoryConsumption):
(WebCoreStringResource16):
(WebCore::WebCoreStringResource16::WebCoreStringResource16):
(WebCoreStringResource8):
(WebCore::WebCoreStringResource8::WebCoreStringResource8):
* bindings/v8/V8ValueCache.cpp:
* bindings/v8/V8ValueCache.h:
(WebCore):
2012-11-21 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: NMI add instrumentation to DynamicNodeList classes hierarchy.
https://bugs.webkit.org/show_bug.cgi?id=103025
Reviewed by Yury Semikhatsky.
RNiwa changed pointer type in NodeRareData::NodeListAtomicNameCacheMap from the topmost
DynamicSubtreeNodeList to the base DynamicNodeListCacheBase at r135429.
As a result we got non zero count of pointers that don't match with tcmalloc data,
because DynamicNodeList uses multiple inheritance.
It could be fixed with help of explicit native memory instrumentation for DynamicNodeList class hierarchy.
No change in behavior, so no new tests.
* dom/Document.cpp: drive by fix.
(WebCore::Document::reportMemoryUsage):
* dom/DynamicNodeList.cpp:
(WebCore::DynamicNodeListCacheBase::reportMemoryUsage):
(WebCore):
(WebCore::DynamicNodeList::reportMemoryUsage):
(WebCore::DynamicSubtreeNodeList::reportMemoryUsage):
* dom/DynamicNodeList.h:
(WebCore::DynamicNodeListCacheBase::~DynamicNodeListCacheBase):
(DynamicNodeListCacheBase):
(DynamicNodeList):
(DynamicSubtreeNodeList):
2012-11-22 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r135482.
http://trac.webkit.org/changeset/135482
https://bugs.webkit.org/show_bug.cgi?id=103002
It broke Chrome/Linux Debug build
* bindings/v8/V8StringResource.cpp:
* bindings/v8/V8StringResource.h:
* bindings/v8/V8ValueCache.cpp:
(WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
(WebCore):
(WebCore::WebCoreStringResourceBase::visitStrings):
* bindings/v8/V8ValueCache.h:
(WebCore):
(WebCoreStringResourceBase):
(WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
(WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
(WebCore::WebCoreStringResourceBase::webcoreString):
(WebCore::WebCoreStringResourceBase::atomicString):
(WebCore::WebCoreStringResourceBase::memoryConsumption):
(WebCoreStringResource16):
(WebCore::WebCoreStringResource16::WebCoreStringResource16):
(WebCoreStringResource8):
(WebCore::WebCoreStringResource8::WebCoreStringResource8):
2012-11-22 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134927 and r134944.
http://trac.webkit.org/changeset/134927
http://trac.webkit.org/changeset/134944
https://bugs.webkit.org/show_bug.cgi?id=103028
Reverting the reverts after merging. (Requested by vsevik on
#webkit).
* English.lproj/localizedStrings.js:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/AdvancedSearchController.js:
* inspector/front-end/CallStackSidebarPane.js:
(WebInspector.CallStackSidebarPane.prototype.registerShortcuts):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype._registerShortcuts):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel):
* inspector/front-end/ElementsPanelDescriptor.js:
(WebInspector.ElementsPanelDescriptor.prototype.registerShortcuts):
* inspector/front-end/GoToLineDialog.js:
(WebInspector.GoToLineDialog.install):
* inspector/front-end/KeyboardShortcut.js:
(WebInspector.KeyboardShortcut._keyName):
* inspector/front-end/Panel.js:
(WebInspector.Panel.prototype.registerShortcuts):
(WebInspector.PanelDescriptor.prototype.panel):
(WebInspector.PanelDescriptor.prototype.registerShortcuts):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype._createDebugToolbar):
(WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
* inspector/front-end/ScriptsPanelDescriptor.js:
(WebInspector.ScriptsPanelDescriptor.prototype.registerShortcuts):
* inspector/front-end/ShortcutsScreen.js:
(WebInspector.ShortcutsScreen):
(WebInspector.ShortcutsSection):
(WebInspector.ShortcutsSection.prototype._renderKey):
* inspector/front-end/StylesSidebarPane.js:
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._registerShortcuts):
* inspector/front-end/TimelinePanelDescriptor.js: Copied from Source/WebCore/inspector/front-end/ScriptsPanelDescriptor.js.
(WebInspector.TimelinePanelDescriptor):
(WebInspector.TimelinePanelDescriptor.prototype.registerShortcuts):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
(WebInspector._panelDescriptors):
(WebInspector._registerShortcuts):
2012-11-21 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135433 and r135479.
http://trac.webkit.org/changeset/135433
http://trac.webkit.org/changeset/135479
https://bugs.webkit.org/show_bug.cgi?id=103029
"IDBRequestTest.EventsAfterStopping crashes" (Requested by
yurys on #webkit).
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
* bindings/v8/DOMWrapperWorld.cpp:
* bindings/v8/DOMWrapperWorld.h:
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::existingWindowShell):
(WebCore::ScriptController::windowShell):
(WebCore::ScriptController::evaluateInIsolatedWorld):
(WebCore::ScriptController::currentWorldContext):
(WebCore::ScriptController::collectIsolatedContexts):
* bindings/v8/ScriptController.h:
(ScriptController):
* bindings/v8/V8Binding.h:
(WebCore::worldForEnteredContextIfIsolated):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::destroyIsolatedShell):
(WebCore::isolatedContextWeakCallback):
(WebCore):
(WebCore::V8DOMWindowShell::disposeContext):
(WebCore::V8DOMWindowShell::initializeIfNeeded):
(WebCore::V8DOMWindowShell::installDOMWindow):
* bindings/v8/V8DOMWindowShell.h:
(WebCore::V8DOMWindowShell::isolated):
(V8DOMWindowShell):
* bindings/v8/V8PerContextData.h:
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::WorldContextHandle):
2012-11-21 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: simplify the _updateChunksForRanges routine
https://bugs.webkit.org/show_bug.cgi?id=102927
Reviewed by Vsevolod Vlasov.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
(WebInspector.TextEditorMainChunk.prototype.updateCollapsedLineRow):
(WebInspector.TextEditorMainChunk.prototype.detachFromDOM):
(WebInspector.TextEditorMainChunk.prototype.anchorElement):
2012-11-21 Kentaro Hara <haraken@chromium.org>
[V8] WebCoreStringResourceBase should be located in V8StringResource.h
https://bugs.webkit.org/show_bug.cgi?id=103002
Reviewed by Adam Barth.
Currently WebCoreStringResourceBase is mis-located in V8ValueCache.h.
It should be in V8StringResource.h.
No tests. No change in behavior.
* bindings/v8/V8StringResource.cpp:
(WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
(WebCore):
(WebCore::WebCoreStringResourceBase::visitStrings):
* bindings/v8/V8StringResource.h:
(WebCore):
(WebCoreStringResourceBase):
(WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
(WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
(WebCore::WebCoreStringResourceBase::webcoreString):
(WebCore::WebCoreStringResourceBase::atomicString):
(WebCore::WebCoreStringResourceBase::memoryConsumption):
(WebCoreStringResource16):
(WebCore::WebCoreStringResource16::WebCoreStringResource16):
(WebCoreStringResource8):
(WebCore::WebCoreStringResource8::WebCoreStringResource8):
* bindings/v8/V8ValueCache.cpp:
* bindings/v8/V8ValueCache.h:
(WebCore):
2012-11-21 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135464.
http://trac.webkit.org/changeset/135464
https://bugs.webkit.org/show_bug.cgi?id=103026
breaks gtk bot (Requested by morrita on #webkit).
* dom/Element.cpp:
* dom/Element.h:
(Element):
* dom/Element.idl:
2012-11-21 Dan Carney <dcarney@google.com>
Remove V8DOMWindowShell::getEntered
https://bugs.webkit.org/show_bug.cgi?id=96637
Reviewed by Adam Barth.
V8DOMWindowShell::getEntered was refactored so that the window shell
no longer has to be kept alive by a v8 context. Instead, only
the DOMWrapperWorld will be kept alive.
No new tests. No change in functionality.
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore::isolatedWorldWeakCallback):
(WebCore):
(WebCore::DOMWrapperWorld::makeContextWeak):
(WebCore::DOMWrapperWorld::setIsolatedWorldField):
* bindings/v8/DOMWrapperWorld.h:
(DOMWrapperWorld):
(WebCore::DOMWrapperWorld::isolated):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::existingWindowShell):
(WebCore::ScriptController::windowShell):
(WebCore::ScriptController::evaluateInIsolatedWorld):
(WebCore::ScriptController::currentWorldContext):
(WebCore::ScriptController::collectIsolatedContexts):
* bindings/v8/ScriptController.h:
(ScriptController):
* bindings/v8/V8Binding.h:
(WebCore::worldForEnteredContextIfIsolated):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::destroyIsolatedShell):
(WebCore::V8DOMWindowShell::disposeContext):
(WebCore::V8DOMWindowShell::initializeIfNeeded):
* bindings/v8/V8DOMWindowShell.h:
(V8DOMWindowShell):
* bindings/v8/V8PerContextData.h:
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::WorldContextHandle):
2012-11-21 Cosmin Truta <ctruta@rim.com>
Numeric identifiers of events should not be globally sequential
https://bugs.webkit.org/show_bug.cgi?id=102244
Reviewed by Alexey Proskuryakov.
The functions setTimeout, setInterval and navigator.geolocation.watchPosition
are currently returning values that are unique across all JavaScript execution
contexts, due to their dependency on global variables.
Such a guarantee is unnecessarily strong. In this patch, we constrain uniqueness
to these functions' own script execution context only.
Tests: fast/dom/Geolocation/watchPosition-unique.html
fast/dom/Window/setTimeout-setInterval-unique.html
* Modules/geolocation/Geolocation.cpp:
(WebCore): Remove firstAvailableWatchId.
(WebCore::Geolocation::watchPosition): Get new watchID from script execution context.
(WebCore::Geolocation::clearWatch): Invalid watchID means less than or equal to 0.
* Modules/geolocation/Geolocation.h:
(Geolocation): Renamed the argument of Geolocation::clearWatch to WatchID.
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::ScriptExecutionContext): Update initialization.
(WebCore::ScriptExecutionContext::newUniqueID): Add.
* dom/ScriptExecutionContext.h:
(ScriptExecutionContext): Add m_sequentialID.
(WebCore::ScriptExecutionContext::addTimeout): Inline.
(WebCore::ScriptExecutionContext::removeTimeout): Inline.
(WebCore::ScriptExecutionContext::findTimeout): Inline.
* page/DOMTimer.cpp:
(WebCore): Remove timeoutId.
(WebCore::DOMTimer::DOMTimer): Get new timeoutId from script execution context.
2012-11-21 Ryosuke Niwa <rniwa@webkit.org>
CollectionType and DynamicNodeList::NodeListType should be merged
https://bugs.webkit.org/show_bug.cgi?id=102983
Reviewed by Antti Koivisto.
Merged DynamicNodeList::NodeListType (for live NodeList) into CollectionType.
* dom/ClassNodeList.cpp:
(WebCore::ClassNodeList::~ClassNodeList):
* dom/Document.cpp:
(WebCore::Document::registerNodeListCache):
(WebCore::Document::unregisterNodeListCache):
(WebCore::Document::getItems):
* dom/DynamicNodeList.cpp:
(WebCore::DynamicNodeListCacheBase::invalidateCache):
(WebCore::DynamicNodeListCacheBase::invalidateIdNameCacheMaps):
* dom/DynamicNodeList.h:
(WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase):
(WebCore::DynamicNodeListCacheBase::hasIdNameCache): Added. Returns iff this is a HTMLCollection.
(WebCore::DynamicNodeListCacheBase::invalidateCache):
(WebCore::DynamicNodeList::DynamicNodeList):
(WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
* dom/MicroDataItemList.cpp:
(WebCore::MicroDataItemList::~MicroDataItemList):
* dom/NameNodeList.cpp:
(WebCore::NameNodeList::~NameNodeList):
* dom/Node.cpp:
(WebCore::Node::getElementsByTagName):
(WebCore::Node::getElementsByName):
(WebCore::Node::getElementsByClassName):
(WebCore::Node::radioNodeList):
(WebCore::Node::propertyNodeList):
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::addCacheWithAtomicName): No longer converts CollectionType to
a NodeListType equivalent since two enums have been merged.
(WebCore::NodeListsNodeData::cacheWithAtomicName): Ditto.
(WebCore::NodeListsNodeData::addCacheWithName): Ditto.
(WebCore::NodeListsNodeData::removeCacheWithAtomicName): Ditto.
(WebCore::NodeListsNodeData::removeCacheWithName): Ditto.
(WebCore::NodeListsNodeData::namedNodeListKey): Ignore types before FirstNodeCollectionType
to minimize the hash conflicts.
* dom/PropertyNodeList.cpp:
(WebCore::PropertyNodeList::~PropertyNodeList):
* dom/TagNodeList.cpp:
(WebCore::TagNodeList::~TagNodeList):
* html/CollectionType.h:
(WebCore::isNodeList): Added.
* html/HTMLCollection.cpp:
(WebCore::shouldOnlyIncludeDirectChildren):
(WebCore::rootTypeFromCollectionType):
(WebCore::invalidationTypeExcludingIdAndNameAttributes):
(WebCore::isAcceptableElement):
(WebCore::DynamicNodeListCacheBase::iterateForNextNode):
(WebCore::DynamicNodeListCacheBase::itemBeforeOrAfter):
* html/LabelableElement.cpp:
(WebCore::LabelableElement::labels):
* html/LabelsNodeList.cpp:
(WebCore::LabelsNodeList::~LabelsNodeList):
* html/RadioNodeList.cpp:
(WebCore::RadioNodeList::~RadioNodeList):
2012-11-21 Michael Pruett <michael@68k.org>
IndexedDB: Obtain ScriptState from IDL binding generator
https://bugs.webkit.org/show_bug.cgi?id=102552
Reviewed by Kentaro Hara.
Obtain ScriptState from IDL binding generator rather than directly
calling ScriptState::current() since that method does not exist
in JSC.
Tests: storage/indexeddb/*
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::update):
* Modules/indexeddb/IDBCursor.h:
(IDBCursor):
* Modules/indexeddb/IDBCursor.idl:
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::add):
(WebCore::IDBObjectStore::put):
* Modules/indexeddb/IDBObjectStore.h:
(WebCore::IDBObjectStore::add):
(WebCore::IDBObjectStore::put):
(IDBObjectStore):
* Modules/indexeddb/IDBObjectStore.idl:
2012-11-21 Filip Pizlo <fpizlo@apple.com>
Rename dataLog() and dataLogV() to dataLogF() and dataLogFV()
https://bugs.webkit.org/show_bug.cgi?id=103001
Rubber stamped by Dan Bernstein.
No change in behavior, so no new tests.
* platform/KURLWTFURL.cpp:
(WebCore::KURL::print):
2012-11-21 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL] Refactor GraphicsContext3DEFL.
https://bugs.webkit.org/show_bug.cgi?id=101291.
Reviewed by Kenneth Rohde Christiansen.
GraphicsContext3DEfl creates GraphicsContext3DPrivate, which acts as its platform Layer.
GraphicsContext3DPrivate needs to handle the following cases:
1) To provide an off-screen buffer for accelerated composition.
2) Render to a current context.
3) To render directly to host window. (currently not supported.)
Before this patch Evas was used to provide us an off-screen context and buffer. GLX was used in
the other supported case. Evas acts as a glue layer to provide us with appropriate
GL bindings (OpenGL functions), GL context and drawable (surface/offscreenbuffer).
However, primitive rendering is handled by TextureMapper and OpenGLShims is used to load the needed GL functions.
It would be for our advantage to be able to take in to use any optimisations/extensions
provided by underlying drivers, specific to a platform (e.g. GLX_MESA_copy_sub_buffer etc.).
This patch introduces an abstraction layer to make it easy to add support for any GL backend (GLX, EGL etc.)
and do any platform specific optimizations as needed without complicating GraphicsContext3DPrivate class.
Two new classes are added with this implementation, GLPlatformContext and GLPlatformSurface.
GraphicsContext3DPrivate would create and own a GLPlatformContext and GLPlatformSurface.
GLPlatformContext encapsulates an OpenGL context hiding any platform specific management.
It uses GL extension ARB_robustness (when available) to detect driver resets.
It defines a simple interface for things that need to be handled by the context. Support
for multi-threaded usage and shared context-group would be added later.
GLPlatformSurface encapsulates an OpenGL drawable hiding any platform specific management.
It defines a simple interface for things that need to be handled by the surface.
It creates an off-screen rendering area. Any GLPlatformContext (compatible with the surface)
can be used to render into this off-screen area.
This patch also adds GLX implementation. To keep the patch to minimum EGL support would be added in another changeset.
* PlatformEfl.cmake:
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::create):
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::~GraphicsContext3D):
(WebCore::GraphicsContext3D::makeContextCurrent):
(WebCore::GraphicsContext3D::setContextLostCallback):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
(GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
(GraphicsContext3DPrivate::releaseResources):
(GraphicsContext3DPrivate::setContextLostCallback):
(GraphicsContext3DPrivate::platformGraphicsContext3D):
(GraphicsContext3DPrivate::makeContextCurrent):
(GraphicsContext3DPrivate::createGraphicsSurfaces):
(GraphicsContext3DPrivate::copyToGraphicsSurface):
(GraphicsContext3DPrivate::graphicsSurfaceToken):
* platform/graphics/efl/GraphicsContext3DPrivate.h:
(GraphicsContext3DPrivate):
* platform/graphics/opengl/GLDefs.h: Added.
(WebCore):
* platform/graphics/opengl/GLPlatformContext.cpp: Added.
(WebCore):
(WebCore::GLPlatformContext::createContext):
(WebCore::GLPlatformContext::createOffScreenContext):
(WebCore::GLPlatformContext::createCurrentContextWrapper):
(WebCore::GLPlatformContext::GLPlatformContext):
(WebCore::GLPlatformContext::~GLPlatformContext):
(WebCore::GLPlatformContext::makeCurrent):
(WebCore::GLPlatformContext::isValid):
(WebCore::GLPlatformContext::releaseCurrent):
(WebCore::GLPlatformContext::handle):
(WebCore::GLPlatformContext::isCurrentContext):
(WebCore::GLPlatformContext::initialize):
(WebCore::GLPlatformContext::getCurrent):
(WebCore::GLPlatformContext::platformMakeCurrent):
(WebCore::GLPlatformContext::platformReleaseCurrent):
(WebCore::GLPlatformContext::destroy):
* platform/graphics/opengl/GLPlatformContext.h: Added.
(WebCore):
(GLPlatformContext):
* platform/graphics/opengl/GLPlatformSurface.cpp: Added.
(WebCore):
(WebCore::GLPlatformSurface::createOffscreenSurface):
(WebCore::GLPlatformSurface::createTransportSurface):
(WebCore::GLPlatformSurface::GLPlatformSurface):
(WebCore::GLPlatformSurface::~GLPlatformSurface):
(WebCore::GLPlatformSurface::handle):
(WebCore::GLPlatformSurface::geometry):
(WebCore::GLPlatformSurface::sharedDisplay):
(WebCore::GLPlatformSurface::configuration):
(WebCore::GLPlatformSurface::swapBuffers):
(WebCore::GLPlatformSurface::copyTexture):
(WebCore::GLPlatformSurface::updateContents):
(WebCore::GLPlatformSurface::setGeometry):
(WebCore::GLPlatformSurface::destroy):
* platform/graphics/opengl/GLPlatformSurface.h: Added.
(WebCore):
(GLPlatformSurface):
GLXOffScreenContext creates an off-screen context. This is used when
renderstyle is RenderOffscreen.
It uses GL extension GLX_ARB_create_context (when available)
to create a context else falls back to use glXCreateNewContext.
* platform/graphics/surfaces/glx/GLXContext.cpp: Added.
(WebCore):
(WebCore::initializeARBExtensions):
(WebCore::GLXOffScreenContext::GLXOffScreenContext):
(WebCore::GLXOffScreenContext::initialize):
(WebCore::GLXOffScreenContext::~GLXOffScreenContext):
(WebCore::GLXOffScreenContext::isCurrentContext):
(WebCore::GLXOffScreenContext::platformMakeCurrent):
(WebCore::GLXOffScreenContext::platformReleaseCurrent):
(WebCore::GLXOffScreenContext::freeResources):
(WebCore::GLXOffScreenContext::destroy):
GLXCurrentContextWrapper acts as a wrapper for current context.
This is used when renderstyle is RenderToCurrentGLContext.
* platform/graphics/surfaces/glx/GLXContext.h: Added.
(WebCore):
(GLXCurrentContextWrapper):
(WebCore::GLXCurrentContextWrapper::GLXCurrentContextWrapper):
(WebCore::GLXCurrentContextWrapper::~GLXCurrentContextWrapper):
(GLXOffScreenContext):
* platform/graphics/surfaces/glx/GLXSurface.cpp: Added.
(WebCore):
(WebCore::GLXSurface::GLXSurface):
(WebCore::GLXSurface::~GLXSurface):
(WebCore::GLXSurface::visualInfo):
(WebCore::GLXSurface::xWindow):
(WebCore::GLXSurface::pBufferConfiguration):
(WebCore::GLXSurface::transportSurfaceConfiguration):
(WebCore::GLXSurface::isXRenderExtensionSupported):
GLXTransportSurface creates Window and uses it as an off-screen surface.
Any GLContext that was created with respect to configuration can be used
to render into this.
This is used when contents of the buffer are to be provided to UI Process
for display.
(WebCore::GLXTransportSurface::GLXTransportSurface):
(WebCore::GLXTransportSurface::~GLXTransportSurface):
(WebCore::GLXTransportSurface::configuration):
(WebCore::GLXTransportSurface::swapBuffers):
(WebCore::GLXTransportSurface::setGeometry):
(WebCore::GLXTransportSurface::initialize):
(WebCore::GLXTransportSurface::destroy):
(WebCore::GLXTransportSurface::freeResources):
GLXPBuffer, Creates a GL surface (PBuffer) used for offscreen rendering.
Any GLContext that was created with respect to configuration can be used
to render into this.
(WebCore::GLXPBuffer::GLXPBuffer):
(WebCore::GLXPBuffer::~GLXPBuffer):
(WebCore::GLXPBuffer::initialize):
(WebCore::GLXPBuffer::configuration):
(WebCore::GLXPBuffer::destroy):
(WebCore::GLXPBuffer::freeResources):
* platform/graphics/surfaces/glx/GLXSurface.h: Added.
(WebCore):
Creates X resources which are shared between surface and context.
(SharedX11Resources):
(WebCore::SharedX11Resources::create):
(WebCore::SharedX11Resources::deref):
(WebCore::SharedX11Resources::getXWindow):
(WebCore::SharedX11Resources::display):
(WebCore::SharedX11Resources::visualInfo):
(WebCore::SharedX11Resources::createConfig):
(WebCore::SharedX11Resources::pBufferContextConfig):
(WebCore::SharedX11Resources::surfaceContextConfig):
(WebCore::SharedX11Resources::isXRenderExtensionSupported):
(WebCore::SharedX11Resources::SharedX11Resources):
(WebCore::SharedX11Resources::~SharedX11Resources):
(GLXSurface):
(GLXTransportSurface):
(GLXPBuffer):
2012-11-21 Andreas Kling <akling@apple.com>
Re-virtualize CSSRule.
<http://webkit.org/b/103003>
Reviewed by Anders Carlsson.
Make CSSRule virtual once again, since it's no longer important to keep it as small as possible.
StyleRuleBase and its various subclasses are the relevant ones now.
* css/CSSCharsetRule.cpp:
(WebCore::CSSCharsetRule::CSSCharsetRule):
(WebCore::CSSCharsetRule::reportMemoryUsage):
* css/CSSCharsetRule.h:
(WebCore::CSSCharsetRule::~CSSCharsetRule):
(WebCore::CSSCharsetRule::encoding):
(WebCore::CSSCharsetRule::setEncoding):
* css/CSSFontFaceRule.cpp:
(WebCore::CSSFontFaceRule::CSSFontFaceRule):
(WebCore::CSSFontFaceRule::reattach):
(WebCore::CSSFontFaceRule::reportMemoryUsage):
* css/CSSFontFaceRule.h:
(CSSFontFaceRule):
* css/CSSImportRule.cpp:
(WebCore::CSSImportRule::CSSImportRule):
(WebCore::CSSImportRule::reportMemoryUsage):
(WebCore::CSSImportRule::reattach):
(WebCore):
* css/CSSImportRule.h:
(CSSImportRule):
* css/CSSMediaRule.cpp:
(WebCore::CSSMediaRule::CSSMediaRule):
(WebCore::CSSMediaRule::reattach):
(WebCore::CSSMediaRule::reportMemoryUsage):
* css/CSSMediaRule.h:
(CSSMediaRule):
* css/CSSPageRule.cpp:
(WebCore::CSSPageRule::CSSPageRule):
(WebCore::CSSPageRule::reattach):
(WebCore::CSSPageRule::reportMemoryUsage):
* css/CSSPageRule.h:
(CSSPageRule):
* css/CSSRule.cpp:
(SameSizeAsCSSRule):
(WebCore::CSSRule::reportMemoryUsage):
* css/CSSRule.h:
(WebCore::CSSRule::~CSSRule):
(CSSRule):
(WebCore::CSSRule::CSSRule):
* css/CSSStyleRule.cpp:
(WebCore::CSSStyleRule::CSSStyleRule):
(WebCore::CSSStyleRule::reattach):
(WebCore::CSSStyleRule::reportMemoryUsage):
* css/CSSStyleRule.h:
(CSSStyleRule):
(WebCore::CSSStyleRule::type):
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::rules):
* css/CSSUnknownRule.h:
(WebCore::CSSUnknownRule::CSSUnknownRule):
(WebCore::CSSUnknownRule::~CSSUnknownRule):
* css/StyleResolver.cpp:
(WebCore::collectCSSOMWrappers):
* css/WebKitCSSKeyframeRule.cpp:
(WebCore::WebKitCSSKeyframeRule::WebKitCSSKeyframeRule):
(WebCore::WebKitCSSKeyframeRule::reportMemoryUsage):
(WebCore::WebKitCSSKeyframeRule::reattach):
(WebCore):
* css/WebKitCSSKeyframeRule.h:
(WebKitCSSKeyframeRule):
* css/WebKitCSSKeyframesRule.cpp:
(WebCore::WebKitCSSKeyframesRule::WebKitCSSKeyframesRule):
(WebCore::WebKitCSSKeyframesRule::reattach):
(WebCore::WebKitCSSKeyframesRule::reportMemoryUsage):
* css/WebKitCSSKeyframesRule.h:
(WebKitCSSKeyframesRule):
* css/WebKitCSSRegionRule.cpp:
(WebCore::WebKitCSSRegionRule::WebKitCSSRegionRule):
(WebCore::WebKitCSSRegionRule::reattach):
(WebCore::WebKitCSSRegionRule::reportMemoryUsage):
* css/WebKitCSSRegionRule.h:
(WebKitCSSRegionRule):
* css/WebKitCSSViewportRule.cpp:
(WebCore::WebKitCSSViewportRule::WebKitCSSViewportRule):
(WebCore::WebKitCSSViewportRule::reattach):
(WebCore::WebKitCSSViewportRule::reportMemoryUsage):
* css/WebKitCSSViewportRule.h:
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::asCSSStyleRule):
(WebCore::InspectorCSSAgent::collectStyleSheets):
* inspector/InspectorStyleSheet.cpp:
(WebCore::asCSSRuleList):
(WebCore::fillMediaListChain):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::serializeCSSStyleSheet):
2012-11-21 Hajime Morrita <morrita@google.com>
[Shadow DOM] Implement Element::createShadowRoot()
https://bugs.webkit.org/show_bug.cgi?id=102911
Reviewed by Kentaro Hara.
Added an API implementation and exposed it.
This is basically an alias of the ShadowRoot constructor, which
will be removed as bug 102913.
Test: fast/dom/shadow/shadow-aware-create-shdow-root.html
* dom/Element.cpp:
(WebCore::Element::createShadowRoot):
(WebCore):
* dom/Element.h:
(Element):
* dom/Element.idl:
2012-11-20 James Simonsen <simonjam@chromium.org>
[Resource Timing] Populate PerformanceResourceTiming structs with timing data
https://bugs.webkit.org/show_bug.cgi?id=102862
Reviewed by Tony Gentilcore.
This allows CachedResourceLoader to pass in all of the necessary values and populates
them in the PerformanceResourceTiming struct. A follow up patch will actually call
addResourceTiming() as necessary.
Tests: http/tests/w3c/webperf/submission/resource-timing
* page/Performance.cpp:
(WebCore::Performance::addResourceTiming): Accept all necessary timing data.
* page/Performance.h:
(WebCore):
(Performance):
* page/PerformanceEntry.cpp:
(WebCore::PerformanceEntry::PerformanceEntry):
* page/PerformanceEntry.h:
(PerformanceEntry):
* page/PerformanceResourceTiming.cpp:
(WebCore::monotonicTimeToDocumentMilliseconds):
(WebCore):
(WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
(WebCore::PerformanceResourceTiming::initiatorType): Return the spec'd values.
(WebCore::PerformanceResourceTiming::fetchStart):
(WebCore::PerformanceResourceTiming::domainLookupStart):
(WebCore::PerformanceResourceTiming::domainLookupEnd):
(WebCore::PerformanceResourceTiming::connectStart):
(WebCore::PerformanceResourceTiming::connectEnd):
(WebCore::PerformanceResourceTiming::secureConnectionStart):
(WebCore::PerformanceResourceTiming::requestStart):
(WebCore::PerformanceResourceTiming::responseStart):
(WebCore::PerformanceResourceTiming::responseEnd):
(WebCore::PerformanceResourceTiming::resourceTimeToDocumentMilliseconds):
* page/PerformanceResourceTiming.h:
(WebCore::PerformanceResourceTiming::create):
(PerformanceResourceTiming):
2012-11-21 Hajime Morrita <morrita@google.com>
[Shadow DOM][V8] Assertion failure when shadow host is reclaimed before ShadowRoot
https://bugs.webkit.org/show_bug.cgi?id=102893
Reviewed by Kentaro Hara.
Due to bug 88834, shadow hosts can be reclaimed before
corresponding ShadowRoots are. This breaks an invariant, that is,
the host is always available for any ShadowRoot. This change adds
guards for the possibly broken invariant.
Since bug 88834 is planned to be fixed shortly, this change
doesn't aim to fix this problem by make it work correctly, but
just lays a safety net which is needed until the root cause is
gone.
Test: fast/dom/shadow/host-wrapper-reclaimed.html
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::setInnerHTML):
(WebCore::ShadowRoot::setApplyAuthorStyles):
(WebCore::ShadowRoot::setResetStyleInheritance):
(WebCore::ShadowRoot::childrenChanged):
2012-11-21 Dirk Schulze <krit@webkit.org>
Make CachedSVGDocumentReference independent of FilterOperation
https://bugs.webkit.org/show_bug.cgi?id=102967
Reviewed by Antti Koivisto.
Make CachedSVGDocumentReference independent of FilterOperation to reuse the code for clip-path and masking.
No new tests, refactoring.
* GNUmakefile.list.am: Move CachedSVGDocumentReference to it's proper location and it to the projects.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingSVGDocuments):
(WebCore::StyleResolver::createFilterOperations):
* loader/cache/CachedSVGDocumentReference.h: Renamed from Source/WebCore/css/CachedSVGDocumentReference.h.
(WebCore):
(CachedSVGDocumentReference):
(WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
(WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
(WebCore::CachedSVGDocumentReference::document):
* platform/graphics/filters/FilterOperation.h: Rename data() and setData() to
cachedSVGDocumentReference() and its setter. Adapt other classes.
(WebCore::FilterOperation::ReferenceFilterOperation::cachedSVGDocumentReference):
(WebCore::FilterOperation::ReferenceFilterOperation::setCachedSVGDocumentReference):
(ReferenceFilterOperation):
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::buildReferenceFilter):
* rendering/RenderLayerFilterInfo.cpp:
(WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
2012-11-21 James Simonsen <simonjam@chromium.org>
Remove the concept of initiatorDocument from CachedResourceRequest
https://bugs.webkit.org/show_bug.cgi?id=102855
Reviewed by Sam Weinig.
It turns out this isn't necessary for the new implementation of Resource Timing. Instead,
we can get at it from the CachedResourceLoader. I don't think anyone else needed it either.
No new tests. This was never used.
* css/CSSFontFaceSrcValue.cpp:
(WebCore::CSSFontFaceSrcValue::cachedFont):
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::cachedImageSet):
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::cachedImage):
* css/StyleRuleImport.cpp:
(WebCore::StyleRuleImport::requestStyleSheet):
* css/WebKitCSSSVGDocumentValue.cpp:
(WebCore::WebKitCSSSVGDocumentValue::load):
* css/WebKitCSSShaderValue.cpp:
(WebCore::WebKitCSSShaderValue::cachedShader):
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::emitRule):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::PreloadTask::preload):
* loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::setInitiator):
* loader/cache/CachedResourceRequest.h:
(CachedResourceRequest):
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::startLoading):
2012-11-21 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135437.
http://trac.webkit.org/changeset/135437
https://bugs.webkit.org/show_bug.cgi?id=102986
This patch causes crash to some layout tests (Requested by
jianli on #webkit).
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::createRendererIfNeeded):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::createObject):
2012-11-21 Andreas Kling <akling@apple.com>
Style sharing: Compare class lists via SpaceSplitString instead of string comparison.
<http://webkit.org/b/102982>
Reviewed by Antti Koivisto.
Add an operator!= to SpaceSplitString and use that check if two elements are eligible
for style sharing instead of comparing the fastGetAttribute(classAttr) return values.
This works because SpaceSplitString maps equal strings to the same data internally.
* css/StyleResolver.cpp:
(WebCore::haveIdenticalStyleAffectingAttributes):
* dom/SpaceSplitString.h:
(WebCore::SpaceSplitString::operator!=):
(SpaceSplitString):
2012-11-21 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135338, r135359, and r135378.
http://trac.webkit.org/changeset/135338
http://trac.webkit.org/changeset/135359
http://trac.webkit.org/changeset/135378
https://bugs.webkit.org/show_bug.cgi?id=102981
Likely caused a 10% regression in
dromaeo_domcoreattr/dom_attr_getAttribute (Requested by abarth
on #webkit).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateEventConstructorCallback):
(ConvertToV8Parameter):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::constructorCallback):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
(WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter):
(WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
(WebCore::V8TestInterface::constructorCallback):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructorCallback):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
(WebCore::TestObjV8Internal::stringAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter):
(WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
(WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
(WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
(WebCore::TestObjV8Internal::longMethodWithArgsCallback):
(WebCore::TestObjV8Internal::objMethodWithArgsCallback):
(WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
(WebCore::TestObjV8Internal::overloadedMethod1Callback):
(WebCore::TestObjV8Internal::overloadedMethod3Callback):
(WebCore::TestObjV8Internal::overloadedMethod11Callback):
(WebCore::TestObjV8Internal::overloadedMethod12Callback):
(WebCore::TestObjV8Internal::strictFunctionCallback):
(WebCore::TestObjV8Internal::variadicStringMethodCallback):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::constructor4Callback):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
* bindings/v8/V8BindingMacros.h:
* bindings/v8/V8StringResource.h:
(WebCore::V8Parameter::V8Parameter):
(V8Parameter):
(WebCore::V8Parameter::prepareBase):
(WebCore::V8Parameter::object):
(WebCore::::prepare):
* bindings/v8/custom/V8ConsoleCustom.cpp:
(WebCore::V8Console::profileCallback):
(WebCore::V8Console::profileEndCallback):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::handlePostMessageCallback):
* bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
(WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
* bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
(WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::pushStateCallback):
(WebCore::V8History::replaceStateCallback):
* bindings/v8/custom/V8IntentCustom.cpp:
(WebCore::V8Intent::constructorCallbackCustom):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::V8SQLTransaction::executeSqlCallback):
* bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
(WebCore::V8SQLTransactionSync::executeSqlCallback):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::V8WebGLRenderingContext::getExtensionCallback):
2012-11-21 Tien-Ren Chen <trchen@chromium.org>
Invalidate non-composited content host when page scale factor changes
https://bugs.webkit.org/show_bug.cgi?id=100718
Reviewed by Adam Barth.
During a scale change, non-composited content layer doesn't get invalidated
automatically by the transformation change on RenderView. Need to force
update non-composited contents ourself.
Test: compositing/repaint/page-scale-repaint.html
* page/Page.cpp:
(WebCore::Page::setPageScaleFactor):
2012-11-21 Ryosuke Niwa <rniwa@webkit.org>
Yet another EFL & GTK+ build fix after r135429.
* html/HTMLPropertiesCollection.cpp:
(WebCore::HTMLPropertiesCollection::create):
2012-11-21 Elliott Sprehn <esprehn@chromium.org>
Node::createRenderer should never return null
https://bugs.webkit.org/show_bug.cgi?id=102975
Reviewed by Ojan Vafai.
Node::createRenderer should never return null, instead Node::rendererIsNeeded
should return false if a node doesn't wish to have a renderer. This method
never actually returns null right now, but the code makes it look like it
could.
No new tests, just refactoring.
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::createRendererIfNeeded):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::createObject):
2012-11-21 Fady Samuel <fsamuel@chromium.org>
Clear MousePressed state on context menu to avoid initiating a drag
https://bugs.webkit.org/show_bug.cgi?id=101786
Reviewed by Ojan Vafai.
If a user initiates a drag via left mouse down, brings up the context menu,
and then cancels the context menu while keeping the left mouse button down,
then the drag operation will continue. This does not match the platform
conventions on Windows, Linux or Mac .
This change cancels the drag if the context menu is about to be displayed.
Test: fast/events/context-nodrag.html
* page/EventHandler.cpp:
(WebCore::EventHandler::sendContextMenuEvent):
2012-11-21 Patrick Gansterer <paroga@webkit.org>
Use MIMETypeRegistryWin for WinCE port too
https://bugs.webkit.org/show_bug.cgi?id=102977
Reviewed by Laszlo Gombos.
r135217 made MIMETypeRegistryWin compile on WinCE too,
which allows us to get rid of MIMETypeRegistryWinCE.
* PlatformWinCE.cmake:
* WebCore.gypi:
* platform/wince/MIMETypeRegistryWinCE.cpp: Removed.
2012-11-21 Dan Carney <dcarney@google.com>
[V8] Add context checks to WorldContextHandle and V8DOMWindowShell
https://bugs.webkit.org/show_bug.cgi?id=101573
Reviewed by Adam Barth.
Added a bunch of assertions to ensure the problems with IndexedDB
contexts cannot reemerge.
No new tests. No change in functionality.
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore):
(WebCore::V8DOMWindowShell::assertContextHasCorrectPrototype):
* bindings/v8/V8DOMWindowShell.h:
(V8DOMWindowShell):
(WebCore::V8DOMWindowShell::isolated):
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::WorldContextHandle):
2012-11-21 Elliott Sprehn <esprehn@chromium.org>
Remove unnecessary ternaries in createRendererIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=102974
Reviewed by Ojan Vafai.
parentRenderer, nextRenderer and previousRenderer all handle flow
threads automatically so there's no reason to duplicate the check in
createRendererIfNeeded.
Note that while these methods first check the node for a renderer and
then delegate to the flow thread the node never has a renderer when
calling createRendererIfNeeded per the assertion at the top so this
change is equivalent.
No new tests, just refactoring.
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::createRendererIfNeeded):
2012-11-21 Ryosuke Niwa <rniwa@webkit.org>
EFL and GTK+ build fix after r135429.
* dom/Element.cpp:
(WebCore::ElementRareData::ensureCachedHTMLCollection):
2012-11-20 Ryosuke Niwa <rniwa@webkit.org>
HTMLCollection should use the same storage as DynamicNodeList
https://bugs.webkit.org/show_bug.cgi?id=102886
Reviewed by Antti Koivisto.
This patch removes ElementRareData::m_collection. HTMLCollections are now held by
NodeListNodeData in NodeRareData like DynamicNodeLists. This simplifies several
Element and Node functions where we used to call into both ElementRareData and
NodeRareData to invalidate caches.
This is a refactoring and there should be no behavioral change.
* dom/DynamicNodeList.h:
* dom/Element.cpp:
(WebCore::ElementRareData::ensureCachedHTMLCollection):
* dom/ElementRareData.cpp:
(WebCore::ElementRareData::reportMemoryUsage):
* dom/ElementRareData.h:
(ElementRareData):
(WebCore::ElementRareData::cachedHTMLCollection):
(WebCore::ElementRareData::removeCachedHTMLCollection):
* dom/Node.cpp:
(WebCore::Node::invalidateNodeListCachesInAncestors):
* dom/NodeRareData.h:
(NodeListsNodeData):
(WebCore::NodeListsNodeData::addCacheWithAtomicName):
(WebCore::NodeListsNodeData::cacheWithAtomicName):
(WebCore::NodeListsNodeData::removeCacheWithAtomicName):
(WebCore::NodeListsNodeData::adoptTreeScope):
(WebCore::NodeListsNodeData::namedNodeListKey):
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::create):
* html/HTMLFormControlsCollection.h:
(HTMLFormControlsCollection):
* html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::create):
* html/HTMLOptionsCollection.h:
(HTMLOptionsCollection::create):
* html/HTMLPropertiesCollection.h:
(HTMLPropertiesCollection::create):
* html/HTMLTableRowsCollection.cpp:
(WebCore::HTMLTableRowsCollection::create):
* html/HTMLTableRowsCollection.h:
(HTMLTableRowsCollection):
2012-11-21 Andreas Kling <akling@apple.com>
Update incorrect assertion in ImmutableElementAttributeData(MutableElementAttributeData).
<http://webkit.org/b/102972>
Reviewed by Antti Koivisto.
Manipulation by editing code may cause an element to have mutable inline style, and this is fine.
Change the assertion to confirm that the inline style doesn't have a CSSOM wrapper attached,
which is where real problems would happen.
Fixes an assertion on editing/undo/replace-by-span-then-remove.html
* dom/ElementAttributeData.cpp:
(WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
2012-11-21 Kentaro Hara <haraken@chromium.org>
Remove $outputDir and $outputHeadersDir from global variables of code generators
https://bugs.webkit.org/show_bug.cgi?id=102492
Reviewed by Adam Barth.
$outputDir and $outputHeadersDir are used in WriteData() only.
We don't need to use global variables for them.
No tests. No change in behavior.
* bindings/scripts/CodeGenerator.pm:
(ProcessDocument):
(FileNamePrefix):
* bindings/scripts/CodeGeneratorCPP.pm:
(new):
(GenerateInterface):
(WriteData):
* bindings/scripts/CodeGeneratorGObject.pm:
(new):
(WriteData):
(GenerateInterface):
* bindings/scripts/CodeGeneratorJS.pm:
(new):
(GenerateInterface):
(WriteData):
* bindings/scripts/CodeGeneratorObjC.pm:
(new):
(GenerateInterface):
(WriteData):
* bindings/scripts/CodeGeneratorV8.pm:
(new):
(GenerateInterface):
(WriteData):
2012-11-21 Joshua Bell <jsbell@chromium.org>
Remove IDBDatabaseException
https://bugs.webkit.org/show_bug.cgi?id=102514
Reviewed by Adam Barth.
After the WebKit implementation landed, the IndexedDB spec changed from defining new
exception codes with constants hanging off an interface to using DOM4-styled named
DOMExceptions. Remove the IDBDatabaseException interface and set codes for IDB-specific
exceptions to 0. (The .idl file is retained pending general ExceptionCode cleanup.)
Also remove IDBRequest.errorCode which was used for reporting asynchronous errors;
IDBRequest.error - a DOMError - should be used instead.
No new tests - covered by plenty of existing tests which have been updated.
* Modules/indexeddb/DOMWindowIndexedDatabase.idl: Don't expose the interface.
* Modules/indexeddb/IDBCursor.idl: Remove reference to IDBDatabaseException.
* Modules/indexeddb/IDBDatabase.idl: Ditto.
* Modules/indexeddb/IDBDatabaseException.cpp:
(IDBDatabaseExceptionNameDescription): Use either a DOMException code or 0.
(WebCore::IDBDatabaseException::initializeDescription):
(WebCore::IDBDatabaseException::getLegacyErrorCode):
* Modules/indexeddb/IDBFactory.idl: Remove reference to IDBDatabaseException.
* Modules/indexeddb/IDBIndex.idl: Ditto.
* Modules/indexeddb/IDBKeyRange.idl: Ditto.
* Modules/indexeddb/IDBObjectStore.idl: Ditto.
* Modules/indexeddb/IDBRequest.idl: Ditto.
* Modules/indexeddb/IDBTransaction.idl: Ditto.
* Modules/indexeddb/WorkerContextIndexedDatabase.idl: Don't expose the interface.
* bindings/v8/IDBBindingUtilities.cpp: Remove unneeded #include.
2012-11-21 W. James MacLean <wjmaclean@chromium.org>
[chromium] Fix indenting in RenderThemeChromiumSkia.h.
https://bugs.webkit.org/show_bug.cgi?id=102965
Reviewed by Adam Barth.
Much of RenderThemeChromiumSkia.h was indented too far, making the
file confusing to read. This CL removes the extra indents.
* rendering/RenderThemeChromiumSkia.h:
(RenderThemeChromiumSkia):
2012-11-21 Andreas Kling <akling@apple.com>
Make it possible for elements with different tag names to share attribute data.
<http://webkit.org/b/102845>
Reviewed by Antti Koivisto.
Allow all elements to share ElementAttributeData with one another. This means that the elements
in this hypothetical markup will all point to the same attribute data:
<div class="foo">
<span class="foo">
<hr class="foo"/>
</span>
</div>
This optimization happens at the expense of an old one. We no longer share attribute data
between elements that have presentation attributes, since they map to different CSS properties
depending on what tag they're attached to. These are mostly used in ye olde web 1.0 content
though, and we should prefer optimizing in favor of modern markup. The global cache for
presentation attribute style in StyledElement.cpp still prevents redundant parsing.
On the upside, excluding elements with presentation attributes from the data cache means that
we can move one pointer (m_presentationAttributeStyle) from ImmutableElementAttributeData
to MutableElementAttributeData.
800kB progression on Membuster3.
* dom/Document.h:
* dom/Document.cpp:
(WebCore::ImmutableAttributeDataCacheKey::ImmutableAttributeDataCacheKey):
(WebCore::ImmutableAttributeDataCacheKey::operator!=):
(WebCore::ImmutableAttributeDataCacheKey::hash):
(ImmutableAttributeDataCacheKey):
(WebCore::Document::cachedImmutableAttributeData):
* dom/Element.cpp:
(WebCore::Element::parserSetAttributes):
Don't use the element's tag name in the key for the immutable attribute data cache.
(WebCore::Element::cloneAttributesFromElement):
Prevent cloneNode() from converting mutable attribute data to immutable if it has
presentation attributes.
* dom/ElementAttributeData.cpp:
(WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
Add an assertion that mutable-to-immutable conversion never happens with presentation
attribute style present.
(WebCore::ElementAttributeData::ElementAttributeData):
(WebCore::MutableElementAttributeData::MutableElementAttributeData):
(WebCore::ElementAttributeData::reportMemoryUsage):
* dom/ElementAttributeData.h:
(ElementAttributeData):
(MutableElementAttributeData):
(WebCore::ElementAttributeData::presentationAttributeStyle):
(WebCore):
(WebCore::ElementAttributeData::setPresentationAttributeStyle):
Move the RefPtr<StylePropertySet> that holds presentation attribute-derived style
from the common ElementAttributeData base class to MutableElementAttributeData.
* dom/StyledElement.cpp:
(WebCore::StyledElement::attributeChanged):
Always dirty the presentation attribute style when a presentation attribute changes.
(WebCore::StyledElement::rebuildPresentationAttributeStyle):
Force promotion to mutable attribute data when it turns out that we need to hang a
StylePropertySet with the presentation attribute style off of it.
2012-11-21 Antti Koivisto <antti@apple.com>
Replace NodeRendererFactory class with a function
https://bugs.webkit.org/show_bug.cgi?id=102950
Reviewed by Andreas Kling.
Simplify the code by turning NodeRendererFactory single-use class into function of NodeRenderingContext.
* dom/Node.cpp:
(WebCore::Node::createRendererIfNeeded):
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::NodeRenderingContext):
(WebCore):
(WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
(WebCore::NodeRenderingContext::createRendererIfNeeded):
* dom/NodeRenderingContext.h:
(NodeRenderingContext):
(WebCore::NodeRenderingContext::style):
(WebCore):
2012-11-21 W. James MacLean <wjmaclean@chromium.org>
[chromium] Change default tap highlight color for Chromium Windows & Linux.
https://bugs.webkit.org/show_bug.cgi?id=102939
Reviewed by Adam Barth.
Change default tap highlight colour on Chromium Win/Linux to be 18% black.
* rendering/RenderThemeChromiumSkia.h:
(RenderThemeChromiumSkia): Override platformTapHighlightColor() to change default highlight colour.
2012-11-21 Tony Chang <tony@chromium.org>
Relayout the slider track when a data list is set
https://bugs.webkit.org/show_bug.cgi?id=102851
Reviewed by Ojan Vafai.
Previously, we would relayout the <input>. Once we fix bug 102352, this
causes the slider track to not relayout. It should relayout because it
draws the data list tick marks and needs to provide space for them.
No new tests, not testable until bug 102352 is fixed. Specifically,
fast/forms/datalist/update-range-with-datalist.html reveals the bug.
* html/RangeInputType.cpp:
(WebCore::RangeInputType::listAttributeTargetChanged):
2012-11-21 Kevin Ellis <kevers@chromium.org>
[chromium] Add flag to enable/disable touch adjustment at runtime.
https://bugs.webkit.org/show_bug.cgi?id=102534
Reviewed by Antonio Gomes.
Add setting for enabling or disabling touch adjustment. Note that for
touch adjustment to apply, the compile flag must also be enabled. A
compile only option is insufficient as it does not allow developers to
quickly test the impact of touch adjustemnt without recompiling. Nor
does it allow end users to disable touch adjustemnt if they find that
touch adjustment is not working well for a particular site.
No new tests required.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureEvent): Move enable check to adjustGesturePosition.
(WebCore::EventHandler::handleGestureTap): Move enable check to adjustGesturePosition.
(WebCore::EventHandler::shouldApplyTouchAdjustment): Checks if touch adjustment is enabled.
(WebCore):
(WebCore::EventHandler::adjustGesturePosition): Add check for enabling of touch adjustment.
(WebCore::EventHandler::sendContextMenuEventForGesture): Move enable check to adjustGesturePosition.
* page/EventHandler.h:
(EventHandler):
* page/Settings.in:
2012-11-21 Philippe Normand <pnormand@igalia.com>
Unreviewed, build fix after r135410.
* html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::addCue): Prevent unused parameter error.
2012-11-21 Andrey Lushnikov <lushnikov@chromium.com>
Web Inspector: Ctrl+A closes breakpoint condition editor
https://bugs.webkit.org/show_bug.cgi?id=102906
Reviewed by Pavel Feldman.
Check if e.target has no ancestors with className
"webkit-line-decorations" in DefaultTextEditor._handleKeyDown
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype._handleKeyDown): Add check
2012-11-21 Tom Hudson <tomhudson@chromium.org>
Avoid creating degenerate cubics at corners of rounded rects.
https://bugs.webkit.org/show_bug.cgi?id=102945
Reviewed by Stephen White.
Covered by existing layout tests.
* platform/graphics/Path.cpp:
(Path::addBeziersForRoundedRect):
2012-11-21 Eric Carlson <eric.carlson@apple.com>
In-band text tracks infrastructure
https://bugs.webkit.org/show_bug.cgi?id=102830
Reviewed by Philippe Normand.
Add the infrastructure necessary to allow a port-specific media engine to expose in-band text
tracks.
No new tests, this patch only adds plumbing. Existing tests verify that these changes don't
break existing functionality.
* CMakeLists.txt: Add new project files.
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setReadyState): Call processInbandTextTracks when readyState reaches
HAVE_METADATA
(WebCore::HTMLMediaElement::processInbandTextTracks): Fetch the in-band text tracks from the
media player and processes them.
* html/HTMLMediaElement.h:
* html/track/InbandTextTrack.cpp: Added.
* html/track/InbandTextTrack.h: Added.
* html/track/InbandTextTrackPrivate.h: Added.
* html/track/TextTrack.h:
(TextTrack):
(WebCore::TextTrack::clearClient): Remove virtual, it is unnecessary
(WebCore::TextTrack::mode): Make virtual so derived classes can override.
(WebCore::TextTrack::setMode): Ditto.
* html/track/TextTrackList.cpp:
(TextTrackList::length): Update to deal with in-band tracks.
(TextTrackList::getTrackIndex): Ditto.
(TextTrackList::getTrackIndexRelativeToRenderedTracks): Ditto.
(TextTrackList::item): Ditto.
(TextTrackList::invalidateTrackIndexesAfterTrack): New, invalidate the cached track indexes of
all tracks after another.
(TextTrackList::append): Update to deal with in-band tracks.
(TextTrackList::remove): Update to deal with in-band tracks.
(TextTrackList::scheduleAddTrackEvent): Remove typo.
* html/track/TextTrackList.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::getTextTracks): New, pass through to the media engine.
(WebCore::MediaPlayer::setTextTrackClient):
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::setPreload): Cleanup.
(WebCore::MediaPlayerPrivateInterface::sourceEndOfStream): Ditto.
(WebCore::MediaPlayerPrivateInterface::getTextTracks): New client method.
(WebCore::MediaPlayerPrivateInterface::setTextTrackClient): Ditto.
2012-11-21 Kai Koehne <kai.koehne@digia.com>
[Qt] MinGW: Explicitly add OpenGL library dependencies
https://bugs.webkit.org/show_bug.cgi?id=102924
Reviewed by Simon Hausmann.
Adding the dependencies to WebKit1 is too late, because linking will have already failed. Also make sure that
the we link against OpenGLES1 e.g. for Angle.
* WebCore.pri:
2012-11-21 Allan Sandfeld Jensen <allan.jensen@digia.com>
Disambiguate innerNodeFramePoint and mainFramePoint
https://bugs.webkit.org/show_bug.cgi?id=98139
Reviewed by Julien Chaffraix.
Splits the point() method in HitTestResult into two, innerNodeFramePoint and mainFramePoint().
To do this HitTestResult no longer inherits publically from HitTestLocation, which should also
help to later separate the two classes completely.
Many of the call-sites of hitTestResultAtPoint confuses which coordinates the point is in.
These have not have been fixed in this patch, and they should be audited by the individual ports.
* WebCore.exp.in:
* dom/Document.cpp:
(WebCore::Document::nodesFromRect):
* page/EventHandler.cpp:
(WebCore::EventHandler::eventMayStartDrag):
(WebCore::EventHandler::hitTestResultAtPoint):
Set and maintain pointInMainFrame on the HitTestResult.
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::HitTestResult):
Construct pointInMainFrame as a copy of pointInInnerNodeFrame. This is correct
for all hit-tests outside of the recursion in EventHandler::hitTestResultAtPoint.
(WebCore::HitTestResult::operator=):
(WebCore::HitTestResult::innerNodeFrame):
(WebCore::HitTestResult::append):
* rendering/HitTestResult.h:
(WebCore::HitTestLocation::point):
(HitTestResult):
Inherits protected now from HitTestLocation to avoid exposing the ambiguous
point() and roundedPoint() methods.
HitTestResult will be split completely from HitTestLocation in a later patch.
(WebCore::HitTestResult::isRectBasedTest):
(WebCore::HitTestResult::pointInMainFrame):
(WebCore::HitTestResult::roundedPointInMainFrame):
(WebCore::HitTestResult::setPointInMainFrame):
(WebCore::HitTestResult::pointInInnerNodeFrame):
(WebCore::HitTestResult::roundedPointInInnerNodeFrame):
(WebCore::HitTestResult::localPoint):
(WebCore::HitTestResult::setLocalPoint):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTest):
2012-11-21 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135383.
http://trac.webkit.org/changeset/135383
https://bugs.webkit.org/show_bug.cgi?id=102935
IDBRequestTest.* unit tests are failing (Requested by yurys on
#webkit).
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::installDOMWindow):
* bindings/v8/V8DOMWindowShell.h:
(V8DOMWindowShell):
(WebCore::V8DOMWindowShell::isolated):
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::WorldContextHandle):
2012-11-21 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL][WK2] Support Context Menu
https://bugs.webkit.org/show_bug.cgi?id=96200
Reviewed by Laszlo Gombos.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::populate):
EFL port also doesn't hide unavailable menus as gtk port.
2012-11-21 Florin Malita <fmalita@chromium.org>
[Chromium] Unreviewed Mac build fix after http://trac.webkit.org/changeset/135390.
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::drawInnerPath):
2012-11-21 Florin Malita <fmalita@chromium.org>
[Skia] Encapsulate access to PlatformContextSkia's SkCanvas
https://bugs.webkit.org/show_bug.cgi?id=102694
Reviewed by Stephen White.
Add SkCanvas-equivalent methods to PlatformContextSkia, and refactor direct canvas call
sites to use these wrappers instead. This reduces the number of canvas() users from 90+
to 22 (mostly theme/ui code).
No new tests: refactoring only.
* platform/chromium/PlatformThemeChromiumLinux.cpp:
(WebCore::PlatformThemeChromiumLinux::paintArrowButton):
* platform/graphics/chromium/FontChromiumWin.cpp:
* platform/graphics/chromium/TransparencyWin.cpp:
(WebCore::TransparencyWin::computeLayerSize):
(WebCore::TransparencyWin::compositeOpaqueComposite):
(WebCore::TransparencyWin::compositeTextComposite):
(WebCore::TransparencyWin::makeLayerOpaque):
* platform/graphics/filters/skia/FEBlendSkia.cpp:
(WebCore::FEBlend::platformApplySkia):
* platform/graphics/filters/skia/FEColorMatrixSkia.cpp:
(WebCore::FEColorMatrix::platformApplySkia):
* platform/graphics/filters/skia/FEComponentTransferSkia.cpp:
(WebCore::FEComponentTransfer::platformApplySkia):
* platform/graphics/filters/skia/FELightingSkia.cpp:
(WebCore::FELighting::platformApplySkia):
* platform/graphics/harfbuzz/FontHarfBuzz.cpp:
(WebCore::Font::drawGlyphs):
(WebCore::Font::drawComplexText):
* platform/graphics/skia/FontSkia.cpp:
(WebCore::Font::drawGlyphs):
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::addInnerRoundedRectClip):
(WebCore::GraphicsContext::clearRect):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::clipPath):
(WebCore::GraphicsContext::concatCTM):
(WebCore::GraphicsContext::setCTM):
(WebCore::GraphicsContext::drawConvexPolygon):
(WebCore::GraphicsContext::clipConvexPolygon):
(WebCore::GraphicsContext::drawEllipse):
(WebCore::drawOuterPath):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::drawLineForDocumentMarker):
(WebCore::GraphicsContext::drawLineForText):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::getCTM):
(WebCore::GraphicsContext::scale):
(WebCore::GraphicsContext::strokeArc):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::rotate):
(WebCore::GraphicsContext::translate):
(WebCore::GraphicsContext::platformFillEllipse):
(WebCore::GraphicsContext::platformStrokeEllipse):
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::getImageData):
(WebCore::ImageBuffer::getUnmultipliedImageData):
(WebCore::ImageBuffer::getPremultipliedImageData):
(WebCore::ImageBuffer::putByteArray):
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::drawResampledBitmap):
(WebCore::hasNon90rotation):
(WebCore::paintSkBitmap):
(WebCore::Image::drawPattern):
* platform/graphics/skia/PlatformContextSkia.cpp:
(WebCore::PlatformContextSkia::save):
(WebCore::PlatformContextSkia::beginLayerClippedToImage):
(WebCore::PlatformContextSkia::restore):
(WebCore::PlatformContextSkia::drawRect):
(WebCore::PlatformContextSkia::couldUseLCDRenderedText):
* platform/graphics/skia/PlatformContextSkia.h:
(PlatformContextSkia):
(WebCore::PlatformContextSkia::layerBitmap):
(WebCore):
(WebCore::PlatformContextSkia::readPixels):
(WebCore::PlatformContextSkia::writePixels):
(WebCore::PlatformContextSkia::isDrawingToLayer):
(WebCore::PlatformContextSkia::isVector):
(WebCore::PlatformContextSkia::clipPath):
(WebCore::PlatformContextSkia::clipRect):
(WebCore::PlatformContextSkia::getClipBounds):
(WebCore::PlatformContextSkia::setMatrix):
(WebCore::PlatformContextSkia::getTotalMatrix):
(WebCore::PlatformContextSkia::concat):
(WebCore::PlatformContextSkia::rotate):
(WebCore::PlatformContextSkia::scale):
(WebCore::PlatformContextSkia::translate):
(WebCore::PlatformContextSkia::drawBitmap):
(WebCore::PlatformContextSkia::drawBitmapRect):
(WebCore::PlatformContextSkia::drawOval):
(WebCore::PlatformContextSkia::drawPath):
(WebCore::PlatformContextSkia::drawPoints):
(WebCore::PlatformContextSkia::drawRect):
(WebCore::PlatformContextSkia::drawIRect):
(WebCore::PlatformContextSkia::drawPosText):
(WebCore::PlatformContextSkia::drawPosTextH):
(WebCore::PlatformContextSkia::drawTextOnPath):
* platform/graphics/skia/SkiaFontWin.cpp:
(WebCore::skiaDrawText):
(WebCore::paintSkiaText):
* platform/graphics/skia/SkiaUtils.cpp:
(WebCore::ClipRectToCanvas):
* platform/graphics/skia/SkiaUtils.h:
(WebCore):
2012-11-21 Carlos Garcia Campos <cgarcia@igalia.com>
Reset the slider thumb location before every layout of the slider container
https://bugs.webkit.org/show_bug.cgi?id=102817
Reviewed by Tony Chang.
The location of the slider thumb is set by the slider container
assuming the slider thumb has been laid out. When this happens,
the location of the slider thumb is reset during the layout
ignoring any previous location set. If the slider thumb is not
laid out, the previous value is added to the new one by the slider
container.
* html/shadow/SliderThumbElement.cpp:
(WebCore::RenderSliderContainer::layout): Reset the location of
the slider thumb before calling RenderFlexibleBox::layout().
2012-11-21 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r135340.
http://trac.webkit.org/changeset/135340
https://bugs.webkit.org/show_bug.cgi?id=102492
It broke Safari's internal build
* bindings/scripts/CodeGenerator.pm:
(ProcessDocument):
(FileNamePrefix):
* bindings/scripts/CodeGeneratorCPP.pm:
(new):
(GenerateInterface):
(WriteData):
* bindings/scripts/CodeGeneratorGObject.pm:
(new):
(WriteData):
(GenerateInterface):
* bindings/scripts/CodeGeneratorJS.pm:
(new):
(GenerateInterface):
(WriteData):
* bindings/scripts/CodeGeneratorObjC.pm:
(new):
(GenerateInterface):
(WriteData):
* bindings/scripts/CodeGeneratorV8.pm:
(new):
(GenerateInterface):
(WriteData):
2012-11-21 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: reparenting view does not detach from the previous parent.
https://bugs.webkit.org/show_bug.cgi?id=102902
Reviewed by Vsevolod Vlasov.
* inspector/front-end/View.js:
(WebInspector.View.prototype.show):
2012-11-21 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: NMI add instrumentation to widely used ActiveDOMObjects. XMLHttpRequest, Prerenderer, HTMLMediaElement and DOMTimer.
https://bugs.webkit.org/show_bug.cgi?id=102818
Reviewed by Vsevolod Vlasov.
Our test bot counts pointers which don't match with objects allocated by tcmalloc.
This counter becomes nonzero after instrumenting ActiveDOMObject class.
It happens because it is the base class for many other classes (~30).
And almost all these classes use multiple inheritance.
* dom/Document.cpp:
(WebCore::Document::reportMemoryUsage):
* dom/DocumentEventQueue.cpp:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::reportMemoryUsage):
(WebCore):
* html/HTMLMediaElement.h:
* loader/Prerenderer.cpp:
(WebCore::Prerenderer::reportMemoryUsage):
(WebCore):
* loader/Prerenderer.h:
(Prerenderer):
* page/DOMTimer.cpp:
(WebCore::DOMTimer::reportMemoryUsage):
(WebCore):
* page/DOMTimer.h:
(DOMTimer):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::reportMemoryUsage):
(WebCore):
* xml/XMLHttpRequest.h:
(XMLHttpRequest):
2012-11-21 Dan Carney <dcarney@google.com>
[V8] Add context checks to WorldContextHandle and V8DOMWindowShell
https://bugs.webkit.org/show_bug.cgi?id=101573
Reviewed by Adam Barth.
Added a bunch of assertions to ensure the problems with IndexedDB
contexts cannot reemerge.
No new tests. No change in functionality.
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore):
(WebCore::V8DOMWindowShell::assertContextHasCorrectPrototype):
* bindings/v8/V8DOMWindowShell.h:
(V8DOMWindowShell):
(WebCore::V8DOMWindowShell::isolated):
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::WorldContextHandle):
2012-11-21 Harald Alvestrand <hta@google.com>
WebMediaStreamComponent: Add assignment and copy operators
https://bugs.webkit.org/show_bug.cgi?id=102915
Reviewed by Adam Barth.
Tests that use this functionality are being submitted to Chrome.
* platform/chromium/support/WebMediaStreamComponent.cpp:
(WebKit::WebMediaStreamComponent::assign):
(WebKit):
* platform/chromium/support/WebMediaStreamDescriptor.cpp:
2012-11-21 Kentaro Hara <haraken@chromium.org>
[V8] Remove STRING_TO_V8PARAMETER_EXCEPTION_BLOCK()
https://bugs.webkit.org/show_bug.cgi?id=102917
Reviewed by Adam Barth.
Now EXCEPTION_BLOCK() and STRING_TO_V8PARAMETER_EXCEPTION_BLOCK()
are equivalent. We can remove STRING_TO_V8PARAMETER_EXCEPTION_BLOCK().
To make a code generate change smaller, this patch also renames
STRING_TO_V8PARAMETER_EXCEPTION_BLOCK_VOID() to EXCEPTION_BLOCK_VOID().
I will rename these macros in a follow-up patch.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateEventConstructorCallback):
(ConvertToV8Parameter):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::constructorCallback):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
(WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter):
(WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
(WebCore::V8TestInterface::constructorCallback):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructorCallback):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
(WebCore::TestObjV8Internal::stringAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter):
(WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter):
(WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
(WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
(WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
(WebCore::TestObjV8Internal::longMethodWithArgsCallback):
(WebCore::TestObjV8Internal::objMethodWithArgsCallback):
(WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
(WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
(WebCore::TestObjV8Internal::overloadedMethod1Callback):
(WebCore::TestObjV8Internal::overloadedMethod3Callback):
(WebCore::TestObjV8Internal::overloadedMethod11Callback):
(WebCore::TestObjV8Internal::overloadedMethod12Callback):
(WebCore::TestObjV8Internal::strictFunctionCallback):
(WebCore::TestObjV8Internal::variadicStringMethodCallback):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::constructor4Callback):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
* bindings/v8/V8BindingMacros.h:
* bindings/v8/V8StringResource.h:
(V8Parameter):
* bindings/v8/custom/V8ConsoleCustom.cpp:
(WebCore::V8Console::profileCallback):
(WebCore::V8Console::profileEndCallback):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::handlePostMessageCallback):
* bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
(WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
* bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
(WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::pushStateCallback):
(WebCore::V8History::replaceStateCallback):
* bindings/v8/custom/V8IntentCustom.cpp:
(WebCore::V8Intent::constructorCallbackCustom):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::V8SQLTransaction::executeSqlCallback):
* bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
(WebCore::V8SQLTransactionSync::executeSqlCallback):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::V8WebGLRenderingContext::getExtensionCallback):
2012-11-21 Kentaro Hara <haraken@chromium.org>
[V8] Move V8DOMWindowShell::initializeV8IfNeeded() to V8Initializer
https://bugs.webkit.org/show_bug.cgi?id=102899
Reviewed by Adam Barth.
This is an incremental step to kill WorkerContextExecutionProxy.
As commented by abarth in bug 97066, we move
V8DOMWindowShell::initializeV8IfNeeded() to V8Initializer.
This patch renames initializeV8IfNeeded() to initializeMainThreadIfNeeded()
because we will add initializeWorkerIfNeeded() in a follow-up patch.
No tests. No change in behavior.
* UseV8.cmake:
* WebCore.gypi:
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initializeIfNeeded):
* bindings/v8/V8Initializer.cpp: Added.
(WebCore):
(WebCore::findFrame):
(WebCore::reportFatalError):
(WebCore::reportUncaughtException):
(WebCore::reportUnsafeJavaScriptAccess):
(WebCore::V8Initializer::initializeMainThreadIfNeeded):
* bindings/v8/V8Initializer.h: Added.
(WebCore):
(V8Initializer):
2012-11-21 Alexander Pavlov <apavlov@chromium.org>
Turn -webkit-text-emphasis into a shorthand property
https://bugs.webkit.org/show_bug.cgi?id=102879
Reviewed by Antti Koivisto.
-webkit-text-emphasis value is no longer empty.
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::getPropertyValue): Reconstruct the -webkit-text-emphasis value based on the longhands.
2012-11-21 Kentaro Hara <haraken@chromium.org>
Unreviewed. Build fix.
* bindings/v8/custom/V8BlobCustom.cpp:
(WebCore::V8Blob::constructorCallbackCustom):
2012-11-21 Kentaro Hara <haraken@chromium.org>
[V8] Rename v8/custom/*Constructor.cpp to v8/custom/*Custom.cpp
https://bugs.webkit.org/show_bug.cgi?id=102881
Reviewed by Adam Barth.
Writing constructorCallback()s in *Custom.cpp is a convention of
custom bindings of JSC and V8. We can rename v8/custom/*Constructor.cpp
to v8/custom/*Custom.cpp.
No tests. No change in behavior.
* UseV8.cmake: This file is already out of sync.
* WebCore.gypi:
* bindings/v8/custom/V8IntentCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8IntentConstructor.cpp.
(WebCore):
(WebCore::V8Intent::constructorCallbackCustom):
* bindings/v8/custom/V8MessageChannelCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8MessageChannelConstructor.cpp.
(WebCore):
(WebCore::V8MessageChannel::constructorCallbackCustom):
* bindings/v8/custom/V8WebKitPointCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8WebKitPointConstructor.cpp.
(WebCore):
(WebCore::V8WebKitPoint::constructorCallbackCustom):
2012-11-21 Dan Carney <dcarney@google.com>
[V8] Inspector does not callback IDB methods in context
https://bugs.webkit.org/show_bug.cgi?id=101725
Reviewed by Adam Barth.
Inserted v8 context before calling out to IDB.
No new tests.
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
(WebCore::InspectorIndexedDBAgent::requestDatabase):
(WebCore::InspectorIndexedDBAgent::requestData):
2012-11-21 Huang Dongsung <luxtella@company100.net>
REGRESSION(134048): TiledBackingStore must create tiles when the contents rect is changed.
https://bugs.webkit.org/show_bug.cgi?id=102035
Reviewed by Kenneth Rohde Christiansen.
Before r134048, the visibleRect contained information of both the viewport and
the contents rect. Now the visible rect is related to only the viewport. So
TiledBackingStore::coverWithTilesIfNeeded() early returns even if the contents
rect is changed, because changing the contents rect is independent on changing
both a trajectory vector and the visible rect.
* platform/graphics/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::coverWithTilesIfNeeded):
2012-11-21 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Request preview tuning: enable json preview for text/html XHRs
https://bugs.webkit.org/show_bug.cgi?id=102892
Reviewed by Alexander Pavlov.
* inspector/front-end/RequestPreviewView.js:
(WebInspector.RequestPreviewView.prototype._jsonView):
(WebInspector.RequestPreviewView.prototype._htmlView):
(WebInspector.RequestPreviewView.prototype._createPreviewView):
2012-11-21 Kentaro Hara <haraken@chromium.org>
[V8] Remove manually written v8::TryCatches in custom bindings
https://bugs.webkit.org/show_bug.cgi?id=102883
Reviewed by Adam Barth.
We can replace them with the EXCEPTION_BLOCK() macro or its friends.
No new tests. This patch shouldn't change any behavior.
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::handlePostMessageCallback):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::evaluateCallback):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::addCallback):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::pushStateCallback):
(WebCore::V8History::replaceStateCallback):
2012-11-21 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r135358.
http://trac.webkit.org/changeset/135358
https://bugs.webkit.org/show_bug.cgi?id=102881
It broke Chromium/Linux build
* UseV8.cmake:
* WebCore.gypi:
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8HTMLImageElementCustom.cpp.
(WebCore):
(WebCore::v8HTMLImageElementConstructorCallback):
(WebCore::V8HTMLImageElementConstructor::GetTemplate):
* bindings/v8/custom/V8HTMLImageElementConstructor.h: Renamed from Source/WebCore/bindings/v8/custom/V8HTMLImageElementCustom.h.
(WebCore):
(V8HTMLImageElementConstructor):
* bindings/v8/custom/V8IntentConstructor.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8IntentCustom.cpp.
(WebCore):
(WebCore::V8Intent::constructorCallbackCustom):
* bindings/v8/custom/V8MessageChannelConstructor.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8MessageChannelCustom.cpp.
(WebCore):
(WebCore::V8MessageChannel::constructorCallbackCustom):
* bindings/v8/custom/V8WebKitPointConstructor.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8WebKitPointCustom.cpp.
(WebCore):
(WebCore::V8WebKitPoint::constructorCallbackCustom):
2012-11-21 KyungTae Kim <ktf.kim@samsung.com>
Unused parameters on ScrollingCoordinator.cpp
https://bugs.webkit.org/show_bug.cgi?id=102884
Reviewed by Kentaro Hara.
Because the 'scrollingLayerPositionAction' parameter is not used when !USE(ACCELERATED_COMPOSITING),
use UNUSED_PARAM macro to fix build warning -Wunused-parameter
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
2012-11-21 Kentaro Hara <haraken@chromium.org>
[V8] Replace V8Parameter::prepare() with V8Parameter::operator=()
https://bugs.webkit.org/show_bug.cgi?id=102870
Reviewed by Adam Barth.
This is an incremental step for V8Parameter refactoring.
By replacing V8Parameter::prepare() with V8Parameter::operator=(),
we can make EXCEPTION_BLOCK() and STRING_TO_V8PARAMETER_EXCEPTION_BLOCK()
equivalent (except for a return value).
Tests: fast/workers/worker-constructor.html
storage/websql/sql-error-codes.html
inspector/console/alert-toString-exception.html
http/tests/websocket/tests/hybi/send-throw.html
* bindings/v8/V8BindingMacros.h:
* bindings/v8/V8StringResource.h:
(WebCore::V8Parameter::V8Parameter):
(V8Parameter):
(WebCore::=):
2012-11-21 Kentaro Hara <haraken@chromium.org>
[V8] Rename v8/custom/*Constructor.cpp to v8/custom/*Custom.cpp
https://bugs.webkit.org/show_bug.cgi?id=102881
Reviewed by Adam Barth.
Writing constructorCallback()s in *Custom.cpp is a convention of
custom bindings of JSC and V8. We can rename v8/custom/*Constructor.cpp
to v8/custom/*Custom.cpp.
No tests. No change in behavior.
* UseV8.cmake: This file is already out of sync.
* WebCore.gypi:
* bindings/v8/custom/V8HTMLImageElementCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8HTMLImageElementConstructor.cpp.
(WebCore):
(WebCore::v8HTMLImageElementConstructorCallback):
(WebCore::V8HTMLImageElementConstructor::GetTemplate):
* bindings/v8/custom/V8HTMLImageElementCustom.h: Renamed from Source/WebCore/bindings/v8/custom/V8HTMLImageElementConstructor.h.
(WebCore):
(V8HTMLImageElementConstructor):
* bindings/v8/custom/V8IntentCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8IntentConstructor.cpp.
(WebCore):
(WebCore::V8Intent::constructorCallbackCustom):
* bindings/v8/custom/V8MessageChannelCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8MessageChannelConstructor.cpp.
(WebCore):
(WebCore::V8MessageChannel::constructorCallbackCustom):
* bindings/v8/custom/V8WebKitPointCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8WebKitPointConstructor.cpp.
(WebCore):
(WebCore::V8WebKitPoint::constructorCallbackCustom):
2012-11-21 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] throttle wait icon in the ui
https://bugs.webkit.org/show_bug.cgi?id=102685
Reviewed by Vsevolod Vlasov.
Do not show the wait icon for small operations during the replay to reduce flickering.
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView.prototype._enableWaitIcon):
2012-11-21 Kunihiko Sakamoto <ksakamoto@chromium.org>
Enable datalist UI for input types datetime and datetime-local
https://bugs.webkit.org/show_bug.cgi?id=102882
Reviewed by Kent Tamura.
Enabling datalist UI for input types datetime and datetime-local.
No new tests yet. Tests will be added later in Bug 102888.
* platform/text/PlatformLocale.cpp:
(WebCore::Locale::formatDateTime): Support datetime and datetime-local types.
* rendering/RenderThemeChromiumCommon.cpp:
(WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add datetime and datetimelocal to the list.
2012-11-20 Kentaro Hara <haraken@chromium.org>
[V8] Remove v8/custom/V8XMLHttpRequestConstructor.cpp
https://bugs.webkit.org/show_bug.cgi?id=102876
Reviewed by Sam Weinig.
It doesn't make sense to have one custom cpp file for
XXX::constructorCallback() only. We can move XXX::constructorCallback()
in v8/custom/V8XXXConstructor.cpp to v8/custom/V8XXXCustom.cpp
and thus remove v8/custom/V8XXXConstructor.cpp.
Note: Some XXX::constructorCallback()s are already written in
v8/custom/V8XXXCustom.cpp. JSC already has almost all
XXX::constructorCallback()s in js/JSXXXCustom.cpp.
No tests. No change in behavior.
* UseV8.cmake:
* WebCore.gypi:
* bindings/v8/custom/V8XMLHttpRequestConstructor.cpp: Removed.
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::V8XMLHttpRequest::constructorCallbackCustom):
(WebCore):
2012-11-20 Kentaro Hara <haraken@chromium.org>
Unreviewed. Rebaselined run-bindings-tests.
* bindings/scripts/test/CPP/WebDOMFloat64Array.cpp:
* bindings/scripts/test/CPP/WebDOMTestActiveDOMObject.cpp:
* bindings/scripts/test/CPP/WebDOMTestCallback.cpp:
* bindings/scripts/test/CPP/WebDOMTestCustomNamedGetter.cpp:
* bindings/scripts/test/CPP/WebDOMTestEventConstructor.cpp:
* bindings/scripts/test/CPP/WebDOMTestEventTarget.cpp:
* bindings/scripts/test/CPP/WebDOMTestException.cpp:
* bindings/scripts/test/CPP/WebDOMTestInterface.cpp:
* bindings/scripts/test/CPP/WebDOMTestMediaQueryListListener.cpp:
* bindings/scripts/test/CPP/WebDOMTestNamedConstructor.cpp:
* bindings/scripts/test/CPP/WebDOMTestNode.cpp:
* bindings/scripts/test/CPP/WebDOMTestObj.cpp:
* bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.cpp:
* bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::withScriptStateAttributeAttrGetter):
(WebCore::TestObjV8Internal::withScriptStateAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetter):
(WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptStateVoidCallback):
(WebCore::TestObjV8Internal::withScriptStateObjCallback):
(WebCore::TestObjV8Internal::withScriptStateVoidExceptionCallback):
(WebCore::TestObjV8Internal::withScriptStateObjExceptionCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
(WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesCallback):
2012-11-20 Kentaro Hara <haraken@chromium.org>
[V8] Introduce constructorCallbackCustom()
https://bugs.webkit.org/show_bug.cgi?id=102763
Reviewed by Adam Barth.
Currently custom constructors have the following code:
v8::Handle<v8::Value> V8XXX::constructorCallback(const v8::Arguments& args) {
INC_STATS("DOM.XXX.Constructor");
if (!args.IsConstructCall())
return throwTypeError("DOM object constructor cannot be called as a function.", args.GetIsolate());
if (ConstructorMode::current() == ConstructorMode::WrapExistingObject)
return args.Holder();
/* body of the constructor */;
}
To avoid duplicating the same logic in all custom constructors,
this patch changes the generated code as follows:
// Generated automatically
v8::Handle<v8::Value> V8XXX::constructorCallback(const v8::Arguments& args) {
INC_STATS("DOM.XXX.Constructor");
${maybeObserveFeature} // Newly supported for custom constructors.
if (!args.IsConstructCall())
return throwTypeError("DOM object constructor cannot be called as a function.", args.GetIsolate());
if (ConstructorMode::current() == ConstructorMode::WrapExistingObject)
return args.Holder();
V8XXX::constructorCallbackCustom(args);
}
// Written manually
v8::Handle<v8::Value> V8XXX::constructorCallback(const v8::Arguments& args) {
/* body of the constructor */;
}
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(HasCustomConstructor):
(GenerateCustomConstructorCallback):
(GenerateImplementation):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::constructorCallback):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructorCallback):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::constructorCallback):
* bindings/v8/custom/V8ArrayBufferCustom.cpp:
(WebCore::V8ArrayBuffer::constructorCallbackCustom):
* bindings/v8/custom/V8AudioContextCustom.cpp:
(WebCore::V8AudioContext::constructorCallbackCustom):
* bindings/v8/custom/V8BlobCustom.cpp:
(WebCore::V8Blob::constructorCallbackCustom):
* bindings/v8/custom/V8DOMFormDataCustom.cpp:
(WebCore::V8DOMFormData::constructorCallbackCustom):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::V8DataView::constructorCallbackCustom):
* bindings/v8/custom/V8IntentConstructor.cpp:
(WebCore::V8Intent::constructorCallbackCustom):
* bindings/v8/custom/V8MessageChannelConstructor.cpp:
(WebCore::V8MessageChannel::constructorCallbackCustom):
* bindings/v8/custom/V8MutationObserverCustom.cpp:
(WebCore::V8MutationObserver::constructorCallbackCustom):
* bindings/v8/custom/V8WebKitPointConstructor.cpp:
(WebCore::V8WebKitPoint::constructorCallbackCustom):
* bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
(WebCore::V8XMLHttpRequest::constructorCallbackCustom):
2012-11-20 Kunihiko Sakamoto <ksakamoto@chromium.org>
REGRESSION(r135263): Fix a wrong argument for udat_close
https://bugs.webkit.org/show_bug.cgi?id=102856
Reviewed by Kent Tamura.
Fixed a bug that passed wrong pointer to udat_close.
No new tests. No changes in behavior.
* platform/text/LocaleICU.cpp:
(WebCore::LocaleICU::initializeDateTimeFormat): Close correct object.
2012-11-20 Kentaro Hara <haraken@chromium.org>
Remove $outputDir and $outputHeadersDir from global variables of code generators
https://bugs.webkit.org/show_bug.cgi?id=102492
Reviewed by Adam Barth.
$outputDir and $outputHeadersDir are used in WriteData() only.
We don't need to use global variables for them.
No tests. No change in behavior.
* bindings/scripts/CodeGenerator.pm:
(ProcessDocument):
(FileNamePrefix):
* bindings/scripts/CodeGeneratorCPP.pm:
(new):
(GenerateInterface):
(WriteData):
* bindings/scripts/CodeGeneratorGObject.pm:
(new):
(WriteData):
(GenerateInterface):
* bindings/scripts/CodeGeneratorJS.pm:
(new):
(GenerateInterface):
(WriteData):
* bindings/scripts/CodeGeneratorObjC.pm:
(new):
(GenerateInterface):
(WriteData):
* bindings/scripts/CodeGeneratorV8.pm:
(new):
(GenerateInterface):
(WriteData):
2012-11-20 Adam Barth <abarth@webkit.org>
7% regression in dromaeo_domcorequery/dom_query_getElementsByTagName__not_in_document
https://bugs.webkit.org/show_bug.cgi?id=102852
Reviewed by Kentaro Hara.
In http://trac.webkit.org/changeset/135208/, we lost the early-exit
check for whether isolatedWorldsExist() in this code path. This
regression points to benchmarks that we can further improve by
continuing to merge the general ScriptWrappable code path with the Node
code path.
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
2012-11-20 Kentaro Hara <haraken@chromium.org>
[V8] Change a return type of V8Parameter::prepare() from bool to void
https://bugs.webkit.org/show_bug.cgi?id=102805
Reviewed by Adam Barth.
This is an incremental step for V8Parameter refactoring.
V8Parameter::prepare() is always called just after V8Parameter's
constructor. So I want to move the logic of V8Parameter::prepare()
to V8Parameter's constructor. In preparation for that (i.e. because
a constructor cannot return any value), this patch changes the return
type of V8Parameter::prepare() from bool to void.
Tests: fast/workers/worker-constructor.html
storage/websql/sql-error-codes.html
inspector/console/alert-toString-exception.html
http/tests/websocket/tests/hybi/send-throw.html
etc
* bindings/v8/V8BindingMacros.h:
* bindings/v8/V8StringResource.h:
(V8Parameter):
(WebCore::V8Parameter::prepareBase): This patch removes a TryCatch block.
This change is safe because (1) all V8Parameter::prepareBase() in the code base
is called inside STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(), and because
(2) STRING_TO_V8PARAMETER_EXCEPTION_BLOCK() has a TryCatch block.
(Note: In a follow-up patch I'm planning to refactor the macros.)
(WebCore::::prepare): I will remove this method shortly.
2012-11-20 Adam Klein <adamk@chromium.org>
[JSC] MutationObserver wrapper should not be collected while still observing
https://bugs.webkit.org/show_bug.cgi?id=102744
Reviewed by Adam Barth.
This is the JSC side of the change landed for V8 in r135228.
It ensures MutationObserver wrapper objects are kept alive as long as
any observed nodes.
* bindings/js/JSMutationObserverCustom.cpp:
(WebCore::JSMutationObserverOwner::isReachableFromOpaqueRoots): Keep MutationObserver wrappers alive
if any of their observed nodes' roots is an opaque root.
* dom/MutationObserver.idl: Add JSCustomIsReachable
2012-11-20 Joshua Bell <jsbell@chromium.org>
IndexedDB: Move control of transaction completion to front end
https://bugs.webkit.org/show_bug.cgi?id=100903
Reviewed by Tony Chang.
"When a transaction can no longer become active, the implementation must attempt to
commit it" - that is, all requests have dispatched success/error events and no further
requests have been made. Previously, this was done by the back end waiting for events
from the front end, but the front end can more efficiently make the decision.
There should be no detectable behavior change.
Tests: storage/indexeddb/transaction-*.html
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::setActive):
(WebCore::IDBTransaction::registerRequest):
* Modules/indexeddb/IDBTransaction.h:
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::hasPendingTasks): Added.
(WebCore::IDBTransactionBackendImpl::didCompleteTaskEvents):
(WebCore::IDBTransactionBackendImpl::run):
(WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
2012-11-20 Kentaro Hara <haraken@chromium.org>
Unreviewed. Rebaselined run-bindings-tests results.
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::constructorCallback):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructorCallback):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::constructorCallback):
2012-11-20 Alpha Lam <hclam@chromium.org>
Unreviewed. Chromium build fix.
Removed unnecessary mutex unlock that triggered crash on Linux debug build.
Chromium Linux Debug layout tests should be green:
platform/chromium/virtual/deferred/fast/images/image-in-map.html
* platform/graphics/chromium/LazyDecodingPixelRef.cpp:
(WebCore::LazyDecodingPixelRef::onLockPixels):
2012-11-20 Ryosuke Niwa <rniwa@webkit.org>
Fix another typo. I need to checking that type() != NodeListCollectionType,
not that type() >= FirstNodeCollectionType.
* dom/DynamicNodeList.cpp:
(WebCore::DynamicNodeListCacheBase::invalidateIdNameCacheMaps):
* dom/DynamicNodeList.h:
(WebCore::DynamicNodeListCacheBase::invalidateCache):
2012-11-20 Michael Pruett <michael@68k.org>
[V8] Pass ScriptState::current() to functions marked with CallWith=ScriptState
https://bugs.webkit.org/show_bug.cgi?id=102739
Reviewed by Kentaro Hara.
Previously EmptyScriptState rather than ScriptState::current()
was passed to functions marked with [CallWith=ScriptState].
Since the EmptyScriptState has a null v8::Context, any functions
which depended upon a valid v8::Context would fail.
No new tests. Covered by existing tests.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateCallWith):
(GenerateFunctionCallString):
* bindings/v8/ScriptState.h:
(WebCore::ScriptState::clearException): Added.
2012-11-20 Brent Fulgham <bfulgham@webkit.org>
[Qt] Build fix after r135217.
https://bugs.webkit.org/show_bug.cgi?id=102787
* platform/win/WindowsExtras.h: Switch to direct include of
<ObjBase.h>, as is done in other <shlwapi.h> includes.
2012-11-20 Ryosuke Niwa <rniwa@webkit.org>
Fix typos. Apparently XCode failed to text-replace earlier when it was busy making a snapshot :(
* dom/DynamicNodeList.cpp:
(WebCore::DynamicNodeListCacheBase::invalidateIdNameCacheMaps):
* dom/DynamicNodeList.h:
(WebCore::DynamicNodeListCacheBase::invalidateCache):
(DynamicNodeListCacheBase):
2012-11-20 Kentaro Hara <haraken@chromium.org>
[V8] Introduce GenerateConstructorHeader() to CodeGeneratorV8.pm
https://bugs.webkit.org/show_bug.cgi?id=102806
Reviewed by Adam Barth.
This is an incremental step for introducing constructorCallbackCustom().
(See bug 102763.) This patch adds GenerateConstructorHeader()
that generates a common code for constructors.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateOverloadedConstructorCallback):
(GenerateSingleConstructorCallback):
(GenerateEventConstructorCallback):
(GenerateNamedConstructorCallback):
(GenerateConstructorHeader):
2012-11-20 Ryosuke Niwa <rniwa@webkit.org>
HTMLCollection's cache should not be invalidated when id or name attributes are changed
https://bugs.webkit.org/show_bug.cgi?id=102843
Reviewed by Eric Seidel.
When an id or name attribute changes, only invaliate id and name cache maps when the collection
doesn't depend on id and name attributes (e.g. document.images).
Unfortunately, I could not create a reliable test for this performance problem.
* dom/DynamicNodeList.cpp:
(WebCore::DynamicNodeListCacheBase::invalidateIdNameCacheMaps):
* dom/DynamicNodeList.h:
(WebCore::DynamicNodeListCacheBase::invalidateCache):
(DynamicNodeListCacheBase):
* dom/ElementRareData.h:
(WebCore::ElementRareData::clearHTMLCollectionCaches):
* html/HTMLCollection.cpp:
(WebCore::invalidationTypeExcludingIdAndNameAttributes):
2012-11-20 Adam Klein <adamk@chromium.org>
[v8] Avoid unnecessary call to ToObject() in Callback constructors
https://bugs.webkit.org/show_bug.cgi?id=102831
Reviewed by Adam Barth.
The code already asserted that the argument was an object, so calling
ToObject() is unnecessary: a simple Cast() suffices.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateCallbackHeader):
* bindings/scripts/test/V8/V8TestCallback.h:
(WebCore::V8TestCallback::create):
2012-11-20 Brent Fulgham <bfulgham@webkit.org>
[WinCairo] Build fix after r135316
* platform/network/curl/AuthenticationChallenge.h: Update stub
implementations to match Apple Windows port.
(WebCore::AuthenticationChallenge::AuthenticationChallenge): Add
missing identifier argument.
(WebCore::AuthenticationChallenge::setAuthenticationClient): Supply
missing set method.
2012-11-20 Tony Chang <tony@chromium.org>
When calling DocumentStyleSheetCollection::addUserSheet, pass in a user sheet
https://bugs.webkit.org/show_bug.cgi?id=102835
Reviewed by Ojan Vafai.
After r135082, Chromium browser_tests were triggering the ASSERT in
StyleResolver::collectRulesFromUserStyleSheets. Add an ASSERT that will
trigger earlier and make it clear in the Chromium code that we're always
inserting user level styles.
No new tests, no behavior change except no longer triggering the StyleResolver ASSERT
in Chromium browser_tests.
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::addUserSheet):
2012-11-20 Bear Travis <betravis@adobe.com>
[CSS Exclusions] Support outside-shape value on shape-inside
https://bugs.webkit.org/show_bug.cgi?id=101108
Reviewed by Dirk Schulze.
Shape-inside can potentially be: 'auto' | 'outside-shape' | <shape> | <url>.
Webkit currently supports the value 'auto' (null) and <shape> (a BasicShape*).
This patch adds support for the value 'outside-shape.' It adds the ExclusionShapeValue
class, which may be any of the three values: 'auto', 'outside-shape', or <shape>.
Bug 102738 tracks adding <url> support.
Modifying existing tests:
LayoutTests/fast/exclusions/parsing-wrap-shape-inside.html
LayoutTests/fast/exclusions/parsing-wrap-shape-outside.html
* GNUmakefile.list.am: Adding ExclusionShapeValue.h to the build files.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
(WebCore):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Modifying code to use
ExclusionShapeValue* rather than the previous BasicShape* values.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Handle the outside-shape value.
* css/CSSValueKeywords.in: Adding outside-shape value.
* css/StyleBuilder.cpp:
(WebCore):
(WebCore::ApplyPropertyExclusionShape::setValue): Modify code to use
ExclusionShapeValue* rather than BasicShape*.
(WebCore::ApplyPropertyExclusionShape::applyValue): Ditto.
(WebCore::ApplyPropertyExclusionShape::createHandler): Ditto.
* page/animation/CSSPropertyAnimation.cpp: Ditto.
(WebCore::blendFunc): Ditto.
(WebCore::PropertyWrapperExclusionShape::PropertyWrapperExclusionShape): Ditto.
(WebCore::CSSPropertyAnimation::ensurePropertyMap): Ditto.
* rendering/ExclusionShapeInsideInfo.cpp:
(WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock):
Ditto.
(WebCore::ExclusionShapeInsideInfo::computeShapeSize): Ditto.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange): Ditto.
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/style/ExclusionShapeValue.h: Added.
(WebCore):
(ExclusionShapeValue): New type to represent the possible values of shape-inside
and shape-outside. Only shape-inside can have a value of 'outside-shape.'
(WebCore::ExclusionShapeValue::~ExclusionShapeValue):
(WebCore::ExclusionShapeValue::type): Returns the value type.
(WebCore::ExclusionShapeValue::shape): Returns <shape> value's BasicShape*.
(WebCore::ExclusionShapeValue::operator==):
(WebCore::ExclusionShapeInfo::createShapeValue):
(WebCore::ExclusionShapeInfo::createOutsideValue):
(WebCore::ExclusionShapeValue::ExclusionShapeValue):
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareNonInheritedData.h:
(StyleRareNonInheritedData):
2012-11-20 Alpha Lam <hclam@chromium.org>
[chromium] Make lazy image decoding thread-safe
https://bugs.webkit.org/show_bug.cgi?id=102721
Reviewed by Stephen White.
Added mutex to LazyDecodingPixelRef such that there is no parallel
onLockPixels() running on multiple threads.
Added mutex to ImageFrameGenerator to protect the use of raw image
data.
The result is that we can decode on threads other than the main
thread while data is being supplied on the main thread.
New unit test:
DeferredImageDecoderTest.decodeOnOtherThread
* platform/graphics/chromium/ImageFrameGenerator.cpp:
(WebCore::ImageFrameGenerator::setData):
(WebCore::ImageFrameGenerator::decodeAndScale):
* platform/graphics/chromium/ImageFrameGenerator.h:
(ImageFrameGenerator):
* platform/graphics/chromium/LazyDecodingPixelRef.cpp:
(WebCore::LazyDecodingPixelRef::onLockPixels):
(WebCore::LazyDecodingPixelRef::onUnlockPixels):
* platform/graphics/chromium/LazyDecodingPixelRef.h:
(LazyDecodingPixelRef):
2012-11-20 Brent Fulgham <bfulgham@webkit.org>
[Qt] Build fix after r135217.
https://bugs.webkit.org/show_bug.cgi?id=102787
* platform/win/WindowsExtras.h: Add #undef of NOSHLWAPI to
allow include of <ObjBase.h> needed by Qt build.
2012-11-20 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135295.
http://trac.webkit.org/changeset/135295
https://bugs.webkit.org/show_bug.cgi?id=102834
This patch causes assertion to some layout tests on chromium
(Requested by jianli on #webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* loader/FrameLoadRequest.cpp: Removed.
* loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::FrameLoadRequest):
(FrameLoadRequest):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
* loader/FrameLoader.h:
(FrameLoader):
* page/DragController.cpp:
(WebCore::DragController::performDrag):
* plugins/PluginView.cpp:
(WebCore::PluginView::performRequest):
2012-11-20 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135293.
http://trac.webkit.org/changeset/135293
https://bugs.webkit.org/show_bug.cgi?id=102832
This patch causes crash to some layout tests on chromium
(Requested by jianli on #webkit).
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
* bindings/v8/DOMWrapperWorld.cpp:
* bindings/v8/DOMWrapperWorld.h:
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::existingWindowShell):
(WebCore::ScriptController::windowShell):
(WebCore::ScriptController::evaluateInIsolatedWorld):
(WebCore::ScriptController::currentWorldContext):
(WebCore::ScriptController::collectIsolatedContexts):
* bindings/v8/ScriptController.h:
(ScriptController):
* bindings/v8/V8Binding.h:
(WebCore::worldForEnteredContextIfIsolated):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::destroyIsolatedShell):
(WebCore):
(WebCore::isolatedContextWeakCallback):
(WebCore::V8DOMWindowShell::disposeContext):
(WebCore::V8DOMWindowShell::initializeIfNeeded):
* bindings/v8/V8DOMWindowShell.h:
(WebCore::V8DOMWindowShell::isolated):
(V8DOMWindowShell):
* bindings/v8/V8PerContextData.h:
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::WorldContextHandle):
2012-11-20 David Grogan <dgrogan@chromium.org>
IndexedDB: Remove legacy enum-based constants from IDL
https://bugs.webkit.org/show_bug.cgi?id=85315
Reviewed by Adam Barth.
These were only present in an earlier working draft of the spec and have
been removed for 8 months. See
http://lists.w3.org/Archives/Public/public-webapps/2012JanMar/0957.html
Tests - legacy-constants.html
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::stringToDirection):
* Modules/indexeddb/IDBCursor.idl:
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::stringToMode):
* Modules/indexeddb/IDBTransaction.idl:
2012-11-20 Elliott Sprehn <esprehn@chromium.org>
Store MutationObserver callback in a hidden property for V8
https://bugs.webkit.org/show_bug.cgi?id=102555
Reviewed by Adam Barth.
To prevent circular reference leaks we should store the MutationObserver
callback in a hidden property on the wrapper of the observer.
This is done by extending the code generator to support a new owner
argument to ::create() that lets you set the owner of the callback where
the hidden property should be stored.
Test: ManualTests/leak-cycle-observer-wrapper.html
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateCallbackHeader):
(GenerateCallbackImplementation):
* bindings/scripts/test/V8/V8TestCallback.cpp: rebaselined.
* bindings/scripts/test/V8/V8TestCallback.h: rebaselined.
* bindings/v8/V8HiddenPropertyName.h:
* bindings/v8/custom/V8MutationObserverCustom.cpp:
(WebCore::V8MutationObserver::constructorCallback):
2012-11-20 Abhishek Arya <inferno@chromium.org>
Crash in FrameLoader::stopLoading.
https://bugs.webkit.org/show_bug.cgi?id=99504
Reviewed by Nate Chapin.
Frame can be blown away in unload event handler. Need
to protect it with a RefPtr.
Test: fast/frames/frame-unload-crash2.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
2012-11-20 Dirk Schulze <krit@webkit.org>
Remove unnecessary FilterOperations header from RenderBoxModelObject
https://bugs.webkit.org/show_bug.cgi?id=102821
Reviewed by Ojan Vafai.
No new tests, simple refactoring.
* rendering/RenderBoxModelObject.cpp:
2012-11-20 Tom Sepez <tsepez@chromium.org>
XSSAuditor::decodedSnippetForJavaScript stopping when comma encountered.
https://bugs.webkit.org/show_bug.cgi?id=102587
Reviewed by Adam Barth.
Rather than returning an empty fragment, continue processing the body
of a script tag when the decoded fragment reduces to nothing.
Test: http/tests/security/xssAuditor/script-tag-with-actual-comma.html
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::decodedSnippetForJavaScript):
2012-11-20 James Simonsen <simonjam@chromium.org>
Consolidate FrameLoader::load() into one function taking a FrameLoadRequest
https://bugs.webkit.org/show_bug.cgi?id=102151
Reviewed by Adam Barth.
There's a FIXME that we have too many FrameLoader::load*() functions. This patch consolidates 3 into 1.
There are still a few more load functions that will be consolidated later. Using FrameLoadRequest as
the interface into FrameLoader will also provide a place to pass in the initiator. Finally, this matches
the refactoring done with CachedResourceRequest and CachedResourceLoader.
No new tests. No change in functionality.
* WebCore.exp.in:
* loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::FrameLoadRequest):
(WebCore::FrameLoadRequest::setLockHistory): These are former arguments to load().
(WebCore::FrameLoadRequest::lockHistory): Ditto.
(FrameLoadRequest):
(WebCore::FrameLoadRequest::setShouldCheckNewWindowPolicy): Ditto.
(WebCore::FrameLoadRequest::shouldCheckNewWindowPolicy): Ditto.
(WebCore::FrameLoadRequest::substituteData): Ditto.
(WebCore::FrameLoadRequest::setSubstituteData): Ditto.
(WebCore::FrameLoadRequest::hasSubstituteData): Ditto.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load): No change in behavior, just merged it all into one function.
* loader/FrameLoader.h:
(FrameLoader):
* page/DragController.cpp:
(WebCore::DragController::performDrag):
2012-11-20 Dan Carney <dcarney@google.com>
Remove V8DOMWindowShell::getEntered
https://bugs.webkit.org/show_bug.cgi?id=96637
Reviewed by Adam Barth.
V8DOMWindowShell::getEntered was refactored so that the window shell
no longer has to be kept alive by a v8 context. Instead, only
the DOMWrapperWorld will be kept alive.
No new tests. No change in functionality.
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore::isolatedWorldWeakCallback):
(WebCore):
(WebCore::DOMWrapperWorld::makeContextWeak):
(WebCore::DOMWrapperWorld::setIsolatedWorldField):
* bindings/v8/DOMWrapperWorld.h:
(DOMWrapperWorld):
(WebCore::DOMWrapperWorld::isolated):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::existingWindowShell):
(WebCore::ScriptController::windowShell):
(WebCore::ScriptController::evaluateInIsolatedWorld):
(WebCore::ScriptController::currentWorldContext):
(WebCore::ScriptController::collectIsolatedContexts):
* bindings/v8/ScriptController.h:
(ScriptController):
* bindings/v8/V8Binding.h:
(WebCore::worldForEnteredContextIfIsolated):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::destroyIsolatedShell):
(WebCore::V8DOMWindowShell::disposeContext):
(WebCore::V8DOMWindowShell::initializeIfNeeded):
* bindings/v8/V8DOMWindowShell.h:
(V8DOMWindowShell):
* bindings/v8/V8PerContextData.h:
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::WorldContextHandle):
2012-11-20 Mike West <mkwst@chromium.org>
Remove '#include "ScriptCallStackFactory.h"' include when unnecessary.
https://bugs.webkit.org/show_bug.cgi?id=102812
Reviewed by Jochen Eisinger.
"ScriptCallStackFactory.h" is included in a few files where it doesn't
seem to be required. Since I'm in the process of centralizing stack
trace generation anyway, I'll just clean this up as a drive-by.
* bindings/js/JSConsoleCustom.cpp:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
* bindings/v8/custom/V8WorkerContextCustom.cpp:
* loader/FrameLoader.cpp:
Removed "ScriptCallStackFactory.h".
* bindings/js/ScheduledAction.cpp:
This also included (but didn't use) "ScriptCallStack.h". I've
removed it as well.
2012-11-20 Elliott Sprehn <esprehn@chromium.org>
Merge checks for creating renderers into shouldCreateRenderer
https://bugs.webkit.org/show_bug.cgi?id=102768
Reviewed by Ojan Vafai.
Merge the checks for if renderers should be created into shouldCreateRenderer
so simplify the code and ensure correctness if doing
NodeRenderingContext(node).shouldCreateRenderer() in other places in webkit.
No new tests, just refactoring.
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::shouldCreateRenderer):
(WebCore::NodeRendererFactory::createRendererIfNeeded):
2012-11-19 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: simplify? damaged region computation in the editor
https://bugs.webkit.org/show_bug.cgi?id=102688
Reviewed by Vsevolod Vlasov.
This change simplifies the damaged region computation. Drive-by make _getSelection work properly.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor):
(WebInspector.DefaultTextEditor.prototype._handleCut):
(WebInspector.TextEditorChunkedPanel.prototype._findFirstVisibleLineNumber.compareLineRowOffsetTops):
(WebInspector.TextEditorChunkedPanel.prototype._findFirstVisibleLineNumber):
(WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
(WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
(WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
(WebInspector.TextEditorMainPanel.prototype._getSelection):
(WebInspector.TextEditorMainPanel.prototype._restoreSelection):
(WebInspector.TextEditorMainPanel.prototype._selectionToPosition):
(WebInspector.TextEditorMainPanel.prototype._positionToSelection):
(WebInspector.TextEditorMainPanel.prototype._handleMutations):
(WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
(WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
(WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
(WebInspector.TextEditorMainPanel.prototype._assertDOMMatchesTextModel):
(WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
(WebInspector.TextEditorMainPanel.prototype._collectLinesFromDOM):
(WebInspector.TextEditorMainChunk):
(WebInspector.TextEditorMainChunk.prototype.addDecoration):
(WebInspector.TextEditorMainChunk.prototype.get endLine):
(WebInspector.TextEditorMainChunk.prototype.lineRowContainingLine):
(WebInspector.TextEditorMainChunk.prototype.expandedLineRow):
2012-11-19 Erik Arvidsson <arv@chromium.org>
Remove historical enums from ExceptionCode.h
https://bugs.webkit.org/show_bug.cgi?id=102095
Reviewed by Ojan Vafai.
Remove unused enums from ExceptionCode.
No new tests. No tests affected.
* Modules/intents/NavigatorIntents.cpp:
(WebCore::NavigatorIntents::webkitStartActivity): The error type for this is unspecified.
* dom/DOMCoreException.cpp:
* dom/ExceptionCode.h:
2012-11-20 Keishi Hattori <keishi@webkit.org>
Week picker width is too small
https://bugs.webkit.org/show_bug.cgi?id=102766
Reviewed by Kent Tamura.
The width of week picker was too small because we were forgetting about
the week number column when calculating the desired width.
No new tests. Covered by week-picker-appearance*.html.
* Resources/pagepopups/calendarPicker.css:
(.week-mode .week-column): Needs to be table-cell.
* Resources/pagepopups/calendarPicker.js:
(CalendarPicker.prototype.fixWindowSize):
2012-11-20 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GTK] no volume slider in HTML5 media element controls
https://bugs.webkit.org/show_bug.cgi?id=97192
Reviewed by Philippe Normand.
r115829 was causing this regression so it was partially
reverted. The revert causes some small regressions, in the tests
but it is better to have the volume slider shown.
* css/mediaControlsGtk.css:
(audio::-webkit-media-controls-panel)
(video::-webkit-media-controls-panel): Partially reverted
r115829.
2012-11-19 Antti Koivisto <antti@apple.com>
Collect user style sheets in DocumentStyleSheetCollection
https://bugs.webkit.org/show_bug.cgi?id=102683
Reviewed by Andreas Kling.
Move the user stylesheet collection logic from StyleResolver to DocumentStyleSheetCollection.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::collectRulesFromUserStyleSheets):
(WebCore::collectCSSOMWrappers):
* css/StyleResolver.h:
(StyleResolver):
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
(WebCore::DocumentStyleSheetCollection::pageUserStyleSheet):
(WebCore::DocumentStyleSheetCollection::clearPageUserStyleSheet):
(WebCore::DocumentStyleSheetCollection::updatePageUserStyleSheet):
(WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
(WebCore::collectActiveStyleSheetsFromSeamlessParents):
(WebCore::DocumentStyleSheetCollection::updateStyleResolver):
Factor the StyleResolver updating code to function.
(WebCore):
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
Collect the user style sheets. Some renaming and other minor refactoring.
(WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
* dom/DocumentStyleSheetCollection.h:
(WebCore::DocumentStyleSheetCollection::activeUserStyleSheets):
Add activeUserStyleSheets vector that contains all user stylesheets from different sources,
similar to activeAuthorStyleSheets.
(DocumentStyleSheetCollection):
(WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
2012-11-20 Elliott Sprehn <esprehn@chromium.org>
Remove unneeded optimization in Element::isInTopLayer
https://bugs.webkit.org/show_bug.cgi?id=102772
Reviewed by Andreas Kling.
There's no reason to worry about calling elementRareData() multiple
times in this non performance sensitive code path as it's only used
in HTMLDialogElement's showModal and close methods.
No new tests, just simplification.
* dom/Element.cpp:
(WebCore::Element::setIsInTopLayer):
2012-11-20 Elliott Sprehn <esprehn@chromium.org>
Simplify Element::isSpellCheckingEnabled
https://bugs.webkit.org/show_bug.cgi?id=102779
Reviewed by Andreas Kling.
isSpellCheckingEnabled contains logic that duplicates parentOrHostElement
and can be simplified by just calling that.
No new tests, just simplification.
* dom/Element.cpp:
(WebCore::Element::isSpellCheckingEnabled):
2012-11-20 Kihong Kwon <kihong.kwon@samsung.com>
Apply DeviceController as parent class of DeviceMotionController.
https://bugs.webkit.org/show_bug.cgi?id=102578
Reviewed by Hajime Morita.
DeviceController needs to be applied as parent class of DeviceMotionController
because DeviceController which is extracted as parent class of
DeviceMotionController and DeviceOrientationController is already added.
Therefore duplicated implementation can be removed.
Covered by existing tests.
* dom/DeviceMotionClient.h:
* dom/DeviceMotionController.cpp:
(WebCore::DeviceMotionController::DeviceMotionController):
(WebCore::DeviceMotionController::didChangeDeviceMotion):
(WebCore::DeviceMotionController::deviceMotionClient):
(WebCore::DeviceMotionController::hasLastData):
(WebCore::DeviceMotionController::getLastEvent):
(WebCore::DeviceMotionController::from):
(WebCore):
* dom/DeviceMotionController.h:
(WebCore):
(WebCore::DeviceMotionController::~DeviceMotionController):
(DeviceMotionController):
* dom/Document.cpp:
Remove all implementations which are related DeviceOrientationEvnet and DeviceMotionEvent.
Because DeviceController checks suspend and stop status of active dom object before dispatchEvent.
(WebCore::Document::suspendActiveDOMObjects):
(WebCore::Document::resumeActiveDOMObjects):
* loader/EmptyClients.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
(WebCore::DOMWindow::removeAllEventListeners):
2012-11-20 Kentaro Hara <haraken@chromium.org>
[V8] Remove V8ParameterBase
https://bugs.webkit.org/show_bug.cgi?id=102774
Reviewed by Adam Barth.
V8ParameterBase is a redundant indirection.
We can flatten methods of V8ParameterBase to V8Parameter.
No tests. No change in behavior.
* bindings/v8/V8StringResource.h:
(WebCore::V8Parameter::V8Parameter):
(V8Parameter):
(WebCore::V8Parameter::toString):
(WebCore::::prepare):
2012-11-20 Kunihiko Sakamoto <ksakamoto@chromium.org>
Use localized date-time format in datetime input
https://bugs.webkit.org/show_bug.cgi?id=102769
Reviewed by Kent Tamura.
Move the implementation of Locale::dateTimeFormatWithSeconds and Locale::dateTimeFormatWithoutSeconds
to its subclasses and use platform-specific methods to get date-time pattern.
Because Windows does not provide an API to get date-time pattern. We use fixed "{date} {time}"
pattern for Windows.
Test: fast/forms/datetime/datetime-appearance-l10n.html
* platform/text/LocaleICU.cpp:
(WebCore::LocaleICU::initializeDateTimeFormat): Retrieve datetime formats too.
(WebCore::LocaleICU::dateTimeFormatWithSeconds): Added.
(WebCore):
(WebCore::LocaleICU::dateTimeFormatWithoutSeconds): Added.
* platform/text/LocaleICU.h:
(LocaleICU): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
* platform/text/LocaleNone.cpp:
(LocaleNone):
(WebCore::LocaleNone::dateTimeFormatWithSeconds): Added. Always returns "dd/MM/yyyyy HH:mm:ss".
(WebCore):
(WebCore::LocaleNone::dateTimeFormatWithoutSeconds): Added. Always returns "dd/MM/yyyyy HH:mm".
* platform/text/PlatformLocale.cpp:
(WebCore): Remove dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() as these are now pure virtual.
* platform/text/PlatformLocale.h:
(Locale): Make dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() pure virtual.
* platform/text/mac/LocaleMac.h:
(LocaleMac): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
* platform/text/mac/LocaleMac.mm:
(WebCore::LocaleMac::dateTimeFormatterWithSeconds): Added.
(WebCore):
(WebCore::LocaleMac::dateTimeFormatterWithoutSeconds): Added.
(WebCore::LocaleMac::dateTimeFormatWithSeconds): Added.
(WebCore::LocaleMac::dateTimeFormatWithoutSeconds): Added.
* platform/text/win/LocaleWin.cpp:
(WebCore::LocaleWin::dateTimeFormatWithSeconds): Copied from original Locale::dateTimeFormatWithSeconds().
(WebCore):
(WebCore::LocaleWin::dateTimeFormatWithoutSeconds): Copied from original Locale::dateTimeFormatWithoutSeconds().
* platform/text/win/LocaleWin.h:
(LocaleWin): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
2012-11-20 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135257.
http://trac.webkit.org/changeset/135257
https://bugs.webkit.org/show_bug.cgi?id=102777
Broke Chromium Debug compilation (Requested by yurys on
#webkit).
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::getNode):
2012-11-20 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Revert r133149: breaks revision reverting
https://bugs.webkit.org/show_bug.cgi?id=102672
Reviewed by Yury Semikhatsky.
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame):
(WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
(WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
(WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
2012-11-19 Csaba Osztrogonác <ossy@webkit.org>
[Qt][Win] Unreviewed speculative buildfix after r135217.
* platform/win/WindowsExtras.h:
2012-11-19 Yury Semikhatsky <yurys@chromium.org>
Unreviewed. Fix Chromium Win compilation after r135255.
https://bugs.webkit.org/show_bug.cgi?id=97803
* WebCore.gypi: removed reference to platform/wince/DragDataWince.cpp which
was deleted in the aforementioned change.
2012-11-19 Kentaro Hara <haraken@chromium.org>
[V8] Merge getCachedWrapper(Node*) into DOMDataStore
https://bugs.webkit.org/show_bug.cgi?id=102158
Reviewed by Adam Barth.
A follow-up patch for r135230. This patch adds a correct ASSERTION.
No tests. No change in behavior.
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::getNode):
2012-11-19 Kentaro Hara <haraken@chromium.org>
[JSC] Replace $implClassName with $interfaceName in CodeGeneratorJS.pm
https://bugs.webkit.org/show_bug.cgi?id=102757
Reviewed by Adam Barth.
In CodeGeneratorJS.pm $implClassName and $interfaceName are
equivalent. We're using them interchangeably. We should replace
$implClassName with $interfaceName.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorJS.pm:
(AddClassForwardIfNeeded):
(GenerateGetOwnPropertySlotBody):
(GenerateGetOwnPropertyDescriptorBody):
(GenerateHeader):
(GenerateOverloadedFunction):
(GenerateImplementation):
(GenerateParametersCheck):
(GenerateImplementationFunctionCall):
(NativeToJSValue):
2012-11-19 Patrick Gansterer <paroga@webkit.org>
Port DragDataWin.cpp to WinCE
https://bugs.webkit.org/show_bug.cgi?id=97803
Reviewed by Brent Fulgham.
Add two simple #if OS(WINCE) to DragDataWin.cpp, so it can be used by the WinCE port too.
* PlatformWinCE.cmake:
* platform/win/DragDataWin.cpp:
(WebCore::DragData::containsFiles):
(WebCore::DragData::numberOfFiles):
(WebCore::DragData::asFilenames):
* platform/wince/DragDataWinCE.cpp: Removed.
2012-11-19 Pan Deng <pan.deng@intel.com>
[Web Inspector] This patch makes script line number search-able in Timeline panel.
https://bugs.webkit.org/show_bug.cgi?id=101910.
Reviewed by Pavel Feldman.
Script line number is visible in Timeline panel, however, not search-able. This patch makes it search-able.
No new tests.
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelineRecordListRow.prototype.update):
(WebInspector.TimelineRecordListRow.testContentMatching):
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
(WebInspector.TimelinePresentationModel.Record.prototype._refreshDetails):
(WebInspector.TimelinePresentationModel.Record.prototype.detailsNode):
(WebInspector.TimelinePresentationModel.Record.prototype._createSpanWithText):
(WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
2012-11-19 Elliott Sprehn <esprehn@chromium.org>
Remove unneeded null check in NodeRendererFactory::createRendererIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=102765
Reviewed by Ojan Vafai.
If parentRenderer() was null then we return early from
createRendererIfNeeded() because shouldCreateRenderer() will return false
so there's no reason to check for it again.
Additionally if either parentRenderer() or style() is null then
implementations of rendererIsNeeded() will crash, so add asserts to
make this assumption more clear.
No new tests, just simplification.
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRendererFactory::createRendererIfNeeded):
2012-11-19 Shinya Kawanaka <shinyak@chromium.org>
[Refactoring] Remove WebCore::isInsertionPoint(Node*)
https://bugs.webkit.org/show_bug.cgi?id=102756
Reviewed by Hajime Morita.
Now that WebCore::isInsertionPoint(Node* node) does nothing special. We can remove this.
No new tests, simple refactoring.
* dom/ComposedShadowTreeWalker.cpp:
(WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
* dom/ContainerNode.cpp:
(WebCore::childAttachedAllowedWhenAttachingChildren):
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::invalidate):
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::isActive):
* html/shadow/InsertionPoint.h:
(WebCore::toInsertionPoint):
(WebCore::isActiveInsertionPoint):
(WebCore::isLowerEncapsulationBoundary):
(WebCore::parentNodeForDistribution):
* testing/Internals.cpp:
(WebCore::Internals::isValidContentSelect):
2012-11-19 Shinya Kawanaka <shinyak@chromium.org>
[Refactoring] Remove shadowPseudoId() and use setPseudo() in <progress> ElementShadow.
https://bugs.webkit.org/show_bug.cgi?id=101703
Reviewed by Hajime Morita.
We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
setPseudo()/pseudo() instead.
No new tests, simple refactoring.
* html/shadow/ProgressShadowElement.cpp:
(WebCore::ProgressInnerElement::ProgressInnerElement):
* html/shadow/ProgressShadowElement.h:
(ProgressInnerElement):
(WebCore::ProgressBarElement::ProgressBarElement):
(ProgressBarElement):
(WebCore::ProgressValueElement::ProgressValueElement):
2012-11-19 Yury Semikhatsky <yurys@chromium.org>
Unreviewed. Fix Chromium Debug compilation after r135230.
https://bugs.webkit.org/show_bug.cgi?id=102158
Removed ASSERT that used instance field in a static method.
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::getWrapperFromObject):
2012-11-19 Chris Guan <chris.guan@torchmobile.com.cn>
[Blackberry] When a frame is being detached, cancel all its network jobs.
https://bugs.webkit.org/show_bug.cgi?id=102758
Reviewed by George Staikos.
I use FrameDestructionObserver to refactor Networkjob code.
NetworkJob is inheriting from FrameDestructionObserver to be
aware of frame's destroyed. When a frame is being detached,
the willDetachPage() can be called in which we can cancel
the job. This patch reverted the fix for RIM PR134207 as well.
Manually test is on
"http://www.reuters.com/article/2012/01/27/us-greece-idUSTRE80P0DE20120127"
which triggers a ping loader.
No behavior changed, no new layout tests.
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::NetworkJob):
(WebCore::NetworkJob::initialize):
(WebCore::NetworkJob::handleNotifyHeaderReceived):
(WebCore::NetworkJob::startNewJobWithRequest):
(WebCore::NetworkJob::frameDestroyed):
(WebCore):
(WebCore::NetworkJob::willDetachPage):
* platform/network/blackberry/NetworkJob.h:
(NetworkJob):
* platform/network/blackberry/NetworkManager.cpp:
(WebCore::NetworkManager::startJob):
* platform/network/blackberry/NetworkManager.h:
(NetworkManager):
* platform/network/blackberry/ResourceHandleBlackBerry.cpp:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::loadResourceSynchronously):
2012-11-19 Matt Falkenhagen <falken@chromium.org>
Implement the new stacking layer needed by the Fullscreen API and the new <dialog> element
https://bugs.webkit.org/show_bug.cgi?id=84796
Reviewed by Julien Chaffraix.
This adds the top layer element stack to Document. The Fullscreen
specification mandates that we track the ordering of the DOM nodes in
the top layer, not the renderers. That makes it hard to implement on
the rendering side only.
Elements in the top layer get a layer. Layers in the top layer are
added to the root layer's child list after normal layers and in the
order of the top layer stack. This way, the top layer appears above
all other stacking contexts and in the desired order.
In addition, top layer renderers are added as children of RenderView
in top layer order. This is to satisfy requirements such as the
containing block of an element in the top layer is the initial
containing block. It also allows RenderLayer to know the proper
stacking order of the layers without going directly from the top layer
elements to their layers.
So far, only modal dialog elements can be added to the top layer.
The plan is to make the Fullscreen API also use the top layer.
Tests: fast/dom/HTMLDialogElement/top-layer-containing-block.html
fast/dom/HTMLDialogElement/top-layer-display-none.html
fast/dom/HTMLDialogElement/top-layer-nesting.html
fast/dom/HTMLDialogElement/top-layer-stacking-dynamic.html
fast/dom/HTMLDialogElement/top-layer-stacking.html
* WebCore.exp.in:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle): Elements in the top layer have a stacking context.
* dom/Document.cpp:
(WebCore):
(WebCore::Document::addToTopLayer):
(WebCore::Document::removeFromTopLayer):
* dom/Document.h:
(Document):
(WebCore::Document::topLayerElements): Add the top layer element stack to Document.
* dom/Element.cpp:
(WebCore::Element::removedFrom):
(WebCore):
(WebCore::Element::isInTopLayer):
(WebCore::Element::setIsInTopLayer):
* dom/Element.h:
* dom/ElementRareData.h:
(ElementRareData):
* dom/Node.cpp:
(WebCore::Node::detach): Add an exception to the assert since top layer elements and their descendants are moved from their
regular position in the render tree.
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
(NodeRareData):
(WebCore::NodeRareData::isInTopLayer):
(WebCore::NodeRareData::setIsInTopLayer):
* dom/NodeRenderingContext.cpp:
(WebCore):
(WebCore::adjustInsertionPointForTopLayerElement):
(WebCore::NodeRendererFactory::createRendererIfNeeded): Add renderers for top layer elements as children of RenderView, and
in top layer stacking order.
* html/HTMLDialogElement.cpp:
(WebCore::HTMLDialogElement::close):
(WebCore::HTMLDialogElement::showModal):
* rendering/RenderLayer.cpp:
(WebCore):
(WebCore::RenderLayer::isInTopLayer):
(WebCore::RenderLayer::isInTopLayerSubtree):
(WebCore::RenderLayer::rebuildZOrderLists): Add the top layer stack after normal layer collection.
(WebCore::RenderLayer::collectLayers): Avoid adding layers for top layer elements during normal layer collection.
* rendering/RenderLayer.h:
(RenderLayer):
2012-11-19 Kentaro Hara <haraken@chromium.org>
In CodeGeneratorObj.pm we should rename $dataNode to $interface.
https://bugs.webkit.org/show_bug.cgi?id=102749
Reviewed by Adam Barth.
$dataNode is misnamed. It should be renamed to $interface.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorObjC.pm:
(GenerateInterface):
(GetParentImplClassName):
(GetParentAndProtocols):
(GenerateHeader):
(GenerateImplementation):
2012-11-19 Kentaro Hara <haraken@chromium.org>
In CodeGeneratorV8.pm, we should rename $dataNode to $interface
https://bugs.webkit.org/show_bug.cgi?id=102747
Reviewed by Adam Barth.
$dataNode is misnamed. It should be $interface.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateInterface):
(NeedsCustomOpaqueRootForGC):
(GetGenerateIsReachable):
(GetCustomIsReachable):
(GenerateOpaqueRootForGC):
(GenerateHeader):
(GetInternalFields):
(GenerateHeaderCustomInternalFieldIndices):
(GenerateHeaderNamedAndIndexedPropertyAccessors):
(GenerateHeaderCustomCall):
(IsConstructable):
(GenerateConstructorGetter):
(GenerateNormalAttrGetter):
(GenerateReplaceableAttrSetter):
(GenerateNormalAttrSetter):
(GenerateOverloadedFunctionCallback):
(GenerateFunctionCallback):
(GenerateArgumentsCountCheck):
(GenerateOverloadedConstructorCallback):
(GenerateSingleConstructorCallback):
(GenerateConstructorCallback):
(GenerateEventConstructorCallback):
(GenerateTypedArrayConstructorCallback):
(GenerateNamedConstructorCallback):
(GenerateBatchedAttributeData):
(IsStandardFunction):
(GenerateNonStandardFunction):
(GenerateImplementationIndexer):
(GenerateImplementationNamedPropertyGetter):
(GenerateImplementationCustomCall):
(GenerateImplementationMasqueradesAsUndefined):
(GenerateImplementation):
(GenerateHeaderContentHeader):
(GenerateImplementationContentHeader):
(GenerateCallbackHeader):
(GenerateCallbackImplementation):
(BaseInterfaceName):
(GenerateToV8Converters):
(GetNativeTypeForConversions):
(GetTypeNameOfExternalTypedArray):
(WriteData):
2012-11-19 Keishi Hattori <keishi@webkit.org>
Move in animation should be disabled until the calendar picker is loaded.
https://bugs.webkit.org/show_bug.cgi?id=102661
Reviewed by Kent Tamura.
On weeks where the first day is in the previous month (e.x. 2013-W01)
the move in animation happens when you open the calendar picker. This
patch disables the move in animation until the calendar picker is fully
loaded.
No new tests.
* Resources/pagepopups/calendarPicker.js:
(CalendarPicker):
(CalendarPicker.prototype._handleWindowResize):
(DaysTable.prototype._startMoveInAnimation):
2012-11-19 Elliott Sprehn <esprehn@chromium.org>
Clean up loop in NodeRenderingContext::nextRenderer and previousRenderer
https://bugs.webkit.org/show_bug.cgi?id=102743
Reviewed by Hajime Morita.
Clean up while (true) loops in NodeRenderingContext reducing the
amount of code and the need for ASSERT_NOT_REACHED.
No new tests, just simplifcation.
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRenderingContext::nextRenderer):
(WebCore::NodeRenderingContext::previousRenderer):
2012-11-19 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] attribute pseudo should return empty string instead of null when nothing is specified.
https://bugs.webkit.org/show_bug.cgi?id=102753
Reviewed by Hajime Morita.
The ShadowDOM spec is changed so that attribute 'pseudo' returns empty string instead of null when
no value is set.
Test: fast/dom/shadow/pseudo-attribute.html
* dom/Element.idl:
2012-11-19 Kentaro Hara <haraken@chromium.org>
In CodeGeneratorGObject.pm we should rename $dataNode to $interface
https://bugs.webkit.org/show_bug.cgi?id=102751
Reviewed by Adam Barth.
$dataNode is misnamed. It should be $interface.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorGObject.pm:
(GetParentClassName):
(GetParentGObjType):
(GenerateProperties):
(GenerateFunctions):
(GenerateCFile):
(GenerateEventTargetIface):
(Generate):
(WriteData):
(GenerateInterface):
2012-11-19 Kentaro Hara <haraken@chromium.org>
In CodeGenerator.pm we should rename $dataNode to $interface
https://bugs.webkit.org/show_bug.cgi?id=102754
Reviewed by Adam Barth.
$dataNode is misnamed. It should be $interface.
No tests. No change in behavior.
* bindings/scripts/CodeGenerator.pm:
(ForAllParents):
(AddMethodsConstantsAndAttributesFromParentInterfaces):
(FindSuperMethod):
(IsConstructorTemplate):
(LinkOverloadedFunctions):
(GenerateCompileTimeCheckForEnumsIfNeeded):
(GetVisibleInterfaceName):
(IsSubType):
2012-11-19 Kentaro Hara <haraken@chromium.org>
In CodeGeneratorCPP.pm we should rename $dataNode to $interface
https://bugs.webkit.org/show_bug.cgi?id=102752
Reviewed by Adam Barth.
$dataNode is misnamed. It should be $interface.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorCPP.pm:
(GenerateInterface):
(GetParentImplClassName):
(GetParent):
(GenerateHeader):
(GenerateImplementation):
2012-11-19 Kentaro Hara <haraken@chromium.org>
In CodeGeneratorJS.pm we should rename $dataNode to $interface
https://bugs.webkit.org/show_bug.cgi?id=102748
Reviewed by Adam Barth.
$dataNode is misnamed. It should be $interface.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateInterface):
(GetParentClassName):
(GetGenerateIsReachable):
(GetCustomIsReachable):
(GenerateGetOwnPropertySlotBody):
(GenerateGetOwnPropertyDescriptorBody):
(GenerateHeaderContentHeader):
(GenerateImplementationContentHeader):
(ShouldGenerateToJSDeclaration):
(ShouldGenerateToJSImplementation):
(GenerateHeader):
(GenerateAttributesHashTable):
(GenerateOverloadedFunction):
(GenerateImplementation):
(GenerateArgumentsCountCheck):
(GenerateParametersCheck):
(GenerateCallbackHeader):
(GenerateCallbackImplementation):
(WriteData):
(GenerateConstructorDeclaration):
(GenerateConstructorDefinition):
(IsConstructable):
2012-11-19 Adam Barth <abarth@webkit.org>
[V8] Merge getCachedWrapper(Node*) into DOMDataStore
https://bugs.webkit.org/show_bug.cgi?id=102158
Reviewed by Eric Seidel.
This patch is an incremental step towards fully merging the Node code
path with the general code path. After this patch, at least Nodes flow
through the same class.
* Modules/indexeddb/IDBTransactionCoordinator.h:
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateToV8Converters):
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::getNode):
(DOMDataStore):
(WebCore::DOMDataStore::getWrapperFromObject):
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore::DOMWrapperWorld::DOMWrapperWorld):
(WebCore):
* bindings/v8/DOMWrapperWorld.h:
(WebCore):
(DOMWrapperWorld):
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
2012-11-19 Kentaro Hara <haraken@chromium.org>
In the IDL parser, we should rename $dataNode to $interface
https://bugs.webkit.org/show_bug.cgi?id=102746
Reviewed by Adam Barth.
$dataNode is misnamed. It should be $interface.
No tests. No change in behavior.
* bindings/scripts/IDLParser.pm:
(parseInterface):
(parseException):
(parseAttributeOrOperationRest):
(parseOperationOrIterator):
(parseSpecialOperation):
(parseInterfaceOld):
(parseExceptionOld):
(parseAttributeOrOperationOrIteratorOld):
(parseAttributeOrOperationRestOld):
(applyMemberList):
(applyExtendedAttributeList):
* bindings/scripts/generate-bindings.pl:
* bindings/scripts/preprocess-idls.pl:
(checkIDLAttributes):
2012-11-19 Adam Klein <adamk@chromium.org>
MutationObserver wrapper should not be collected while still observing
https://bugs.webkit.org/show_bug.cgi?id=102328
Reviewed by Adam Barth.
Use the new opaqueRootForGC helper in V8GCController to put each
MutationObserver wrapper in the same object group as the nodes it's
observing.
Only includes V8 impl for now, JSC impl coming soon.
Tests: fast/mutation/observer-wrapper-dropoff-transient.html
fast/mutation/observer-wrapper-dropoff.html
* bindings/v8/V8GCController.cpp: Add custom code for MutationObserver
with a FIXME to move this out once we update the opaque roots API.
* dom/MutationObserver.cpp:
(WebCore::MutationObserver::getObservedNodes): Plumbing to expose the observed nodes
to the GC controller.
(WebCore):
* dom/MutationObserver.h:
* dom/MutationObserverRegistration.cpp:
(WebCore::MutationObserverRegistration::addRegistrationNodesToSet): More plumbing.
(WebCore):
* dom/MutationObserverRegistration.h:
(MutationObserverRegistration):
2012-11-19 Tony Chang <tony@chromium.org>
Move more non-settings out of InternalSettings
https://bugs.webkit.org/show_bug.cgi?id=102711
Reviewed by Adam Barth.
Remove userPreferredLanguages, setUserPreferredLanguages and allowRoundingHacks
from internal.settings since they are already exposed by window.internals (in
fact, no one calls the internal.settings version).
Move setUsesOverlayScrollbars from internals.settings to internals because it is
a global (static) setting and not tied to the lifetime of the Settings object.
No new tests, there should be no behavior change since this is a refactor.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::reset): Remove custom reset code.
(WebCore::InternalSettings::setUsesOverlayScrollbars): Add exception code handling to make it more consistent with other settings setters.
* testing/InternalSettings.h:
* testing/InternalSettings.idl: Remove unnecessary methods.
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState): Reset userPreferredLanguages, allowRoundingHacks and overlay scrollbars.
(WebCore::Internals::userPreferredLanguages): Don't go through InternalSettings.
(WebCore::Internals::setUserPreferredLanguages): Don't go through InternalSettings.
(WebCore::Internals::setUsesOverlayScrollbars): Moved from InternalsSettings.
(WebCore::Internals::allowRoundingHacks): Don't go through InternalSettings.
2012-11-19 David Grogan <dgrogan@chromium.org>
IndexedDB: Complex series of opens/deleteDatabase fails an ASSERT
https://bugs.webkit.org/show_bug.cgi?id=101810
Reviewed by Tony Chang.
Tests - storage/indexeddb/deletedatabase-delayed-by-versionchange.html
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
The condition tested by this assert is a valid state.
2012-11-19 Peter Wang <peter.wang@torchmobile.com.cn>
Web Inspector: [JSC] worker debugger shouldn't stop for "willExecuteProgram" instruction
https://bugs.webkit.org/show_bug.cgi?id=102637
Reviewed by Timothy Hatcher.
Override the interface "willExecuteProgram" to let WorkerScriptDebugServer to avoid to stop for it.
No new DRT test case. Sorry, so far it seems impossible to write a case to controle the popupped
worker inspector window.
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::createCallFrame):
(WebCore::ScriptDebugServer::callEvent):
(WebCore::ScriptDebugServer::willExecuteProgram):
* bindings/js/ScriptDebugServer.h:
(ScriptDebugServer):
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::willExecuteProgram):
(WebCore):
* bindings/js/WorkerScriptDebugServer.h:
(WorkerScriptDebugServer):
2012-11-19 Pratik Solanki <psolanki@apple.com>
For single element arrays use the pointer into the CFDataRef instead of copying data
https://bugs.webkit.org/show_bug.cgi?id=102306
Reviewed by Brent Fulgham.
Address review comments for slightly nicer code.
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::data):
* platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::singleDataArrayBuffer):
2012-11-19 Chris Rogers <crogers@google.com>
Remove empirical bass-boost for HRTF spatialization
https://bugs.webkit.org/show_bug.cgi?id=102745
Reviewed by Kenneth Russell.
Some empirically-based post-processing is being removed so that we'll
now process with the exact HRTF impulse response measurements.
Listening tests have determined that this post-processing is not necessary.
* platform/audio/HRTFElevation.cpp:
(WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):
* platform/audio/HRTFKernel.cpp:
(WebCore::HRTFKernel::HRTFKernel):
* platform/audio/HRTFKernel.h:
(WebCore::HRTFKernel::create):
(HRTFKernel):
2012-11-19 Adam Barth <abarth@webkit.org>
DISALLOW_COPY_AND_ASSIGN is not a WebKit macro
https://bugs.webkit.org/show_bug.cgi?id=102755
Reviewed by Sam Weinig.
WTF_MAKE_NONCOPYABLE is the idiom we use in WebKit. I don't understand
how this compiles.
* Modules/indexeddb/IDBBackingStore.h:
(RecordIdentifier):
2012-11-19 Chris Rogers <crogers@google.com>
Implement .detune attribute for BiquadFilterNode
https://bugs.webkit.org/show_bug.cgi?id=102737
Reviewed by Kenneth Russell.
Similar to OscillatorNode, BiquadFilterNode must have a .detune attribute
Tests changed: webaudio/biquad-lowpass.html
* Modules/webaudio/BiquadDSPKernel.cpp:
(WebCore::BiquadDSPKernel::updateCoefficientsIfNecessary):
* Modules/webaudio/BiquadFilterNode.h:
(WebCore::BiquadFilterNode::detune):
* Modules/webaudio/BiquadFilterNode.idl:
* Modules/webaudio/BiquadProcessor.cpp:
(WebCore::BiquadProcessor::BiquadProcessor):
(WebCore::BiquadProcessor::checkForDirtyCoefficients):
* Modules/webaudio/BiquadProcessor.h:
(WebCore::BiquadProcessor::parameter4):
(BiquadProcessor):
2012-11-19 Patrick Gansterer <paroga@webkit.org>
[WIN] Add WebCore::getRegistryValue()
https://bugs.webkit.org/show_bug.cgi?id=97828
Reviewed by Brent Fulgham.
The new function adds an abstraction to SHGetValue(), which isn't available on WinCE.
Changing the existing files allows us to share more code between WinCE and WinNT in a next step.
* platform/win/MIMETypeRegistryWin.cpp:
(WebCore::mimeTypeForExtension):
(WebCore):
(WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
* platform/win/WindowsExtras.h:
(WebCore::getRegistryValue):
(WebCore):
* plugins/win/PluginDatabaseWin.cpp:
(WebCore::addPluginPathsFromRegistry):
(WebCore::addWindowsMediaPlayerPluginDirectory):
(WebCore::addQuickTimePluginDirectory):
(WebCore::addAdobeAcrobatPluginDirectory):
(WebCore::addJavaPluginDirectory):
2012-11-19 Alpha Lam <hclam@chromium.org>
Not reviewed. Build fix for Chromium.
Added SkTypes.h includes for Windows.
* platform/graphics/chromium/ImageDecodingStore.h:
* platform/graphics/chromium/ImageFrameGenerator.h:
* platform/graphics/chromium/LazyDecodingPixelRef.h:
2012-11-19 Adam Barth <abarth@webkit.org>
[V8] Simplify V8DOMWindowShell::getEntered
https://bugs.webkit.org/show_bug.cgi?id=102156
Reviewed by Eric Seidel.
This patch is an incremental step towards merging
V8DOMWrapper::getCachedWrapper(Node*) with the general case for looking
up DOM wrappers. In order to merge with the general case, we need to
get down to calling v8::Context::GetCurrent once, which means we need
to factor the call to v8::Context::GetEntered out of V8DOMWindowShell.
As a side-benefit to this change, we can remove some redundant checks
for isolatedWorldsExist and v8::Context::InContext from callers of
V8DOMWindowShell::getEntered, including in getCachedWrapper.
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
(WebCore::ScriptController::currentWorldContext):
* bindings/v8/V8DOMWindowShell.h:
(WebCore::V8DOMWindowShell::isolated):
(WebCore::V8DOMWindowShell::perContextData):
(WebCore::V8DOMWindowShell::world):
(V8DOMWindowShell):
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::getCachedWrapper):
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::WorldContextHandle):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::dispatchWrapCustom):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::dispatchWrapCustom):
* bindings/v8/custom/V8SVGDocumentCustom.cpp:
(WebCore::V8SVGDocument::dispatchWrapCustom):
* bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
(WebCore::V8XMLHttpRequest::constructorCallback):
2012-11-19 Kentaro Hara <haraken@chromium.org>
Rename idlDocument::classes to idlDocument::interfaces in the IDL parser
https://bugs.webkit.org/show_bug.cgi?id=102671
Reviewed by Adam Barth.
Most part of code generators use 'interface'. The spec uses 'interface'.
Thus, the IDL parser should use 'interface' instead of 'class'.
No tests. No change in behavior.
* bindings/scripts/CodeGenerator.pm:
(ProcessDocument):
(AddMethodsConstantsAndAttributesFromParentInterfaces):
(ParseInterface):
* bindings/scripts/CodeGeneratorCPP.pm:
(GenerateImplementation):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
* bindings/scripts/CodeGeneratorObjC.pm:
(GenerateImplementation):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateFunctionCallback):
* bindings/scripts/IDLParser.pm:
(Parse):
(parseModule):
* bindings/scripts/generate-bindings.pl:
2012-11-19 Eric Carlson <eric.carlson@apple.com>
HTMLMediaElement::configureTextTracks should configure all text tracks
https://bugs.webkit.org/show_bug.cgi?id=102561
Reviewed by Philippe Normand.
No new tests, track-mode-not-changed-by-new-track.html was updated to test the changes.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::textTrackModeChanged): HTMLTrackElement -> TextTrack.
(WebCore::HTMLMediaElement::willRemoveTrack): Ditto.
(WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto.
(WebCore::HTMLMediaElement::configureTextTracks): Ditto.
(WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Ditto.
* html/HTMLMediaElement.h:
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::HTMLTrackElement): Move hasBeenConfigured down to TextTrack.
(WebCore::HTMLTrackElement::parseAttribute): isDefault is stored on TextTrack.
(WebCore::HTMLTrackElement::ensureTrack): LoadableTextTrack constructor doesn't take
"default" argument.
* html/HTMLTrackElement.h:
* html/track/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::LoadableTextTrack): Initialize m_isDefault to false.
* html/track/LoadableTextTrack.h:
(WebCore::TextTrack::isDefault): Override base class implementation, because a track element
can be flagged as default.
(WebCore::TextTrack::setIsDefault): Ditto.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::TextTrack): Initialize m_hasBeenConfigured.
* html/track/TextTrack.h:
(WebCore::TextTrack::hasBeenConfigured): New, moved from HTMLTrackElement so other code doesn't
need know what type of track it is calling.
(WebCore::TextTrack::setHasBeenConfigured): Ditto.
(WebCore::TextTrack::isDefault): Base, do nothing, implementation because only LoadableTextTrack
can be "default".
(WebCore::TextTrack::setIsDefault): Ditto.
2012-11-19 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: refactor syncCanvas to handle the lifecycle clearly.
https://bugs.webkit.org/show_bug.cgi?id=102664
Reviewed by Noam Rosenthal.
As refactoring Coordinated Graphics in WebKit2, code related to
TextureMapper is changed.
No new tests. Refactoring only.
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(GraphicsContext3DPrivate):
(WebCore::GraphicsContext3DPrivate::platformLayerSize):
We need to know the size of a texture mapper platform layer.
(WebCore):
* platform/graphics/texmap/TextureMapperBackingStore.cpp:
Because CoordinatedGraphicsLayer handles the canvas GraphicsSurface
lifecycle, TextureMapperSurfaceBackingStore does not need to know
GraphicsSurfaceToken.
(WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
(WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
(WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
* platform/graphics/texmap/TextureMapperBackingStore.h:
(TextureMapperSurfaceBackingStore):
* platform/graphics/texmap/TextureMapperPlatformLayer.h:
(WebCore::TextureMapperPlatformLayer::platformLayerSize):
2012-11-19 Alpha Lam <hclam@chromium.org>
[chromium] Lazy image decoding without cache
https://bugs.webkit.org/show_bug.cgi?id=102021
Reviewed by Stephen White.
Goal of this change is to make image decoding in ImageFrameGenerator
completely lazy without caching. Image decoding logic is then removed
from ImageDecodingStore.
These methods are removed.
- ImageDecodingStore::lockPixels
- ImageDecodingStore::unlockPixels
Instead image decoding and scaling is done in
ImageFrameGenerator::decodeAndScale().
Unit tests are updated:
DeferredImageDecoderTest::drawIntoSkPicture
DeferredImageDecoderTest::drawScaledIntoSkPicture
Also covered by layout tests:
platform/chromium/virtual/deferred
* platform/graphics/chromium/DeferredImageDecoder.cpp:
(WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
* platform/graphics/chromium/ImageDecodingStore.h:
(ImageDecodingStore):
* platform/graphics/chromium/ImageFrameGenerator.cpp:
(WebCore::ImageFrameGenerator::ImageFrameGenerator):
(WebCore::ImageFrameGenerator::~ImageFrameGenerator):
(WebCore::ImageFrameGenerator::setData):
(WebCore::ImageFrameGenerator::decodeAndScale):
* platform/graphics/chromium/ImageFrameGenerator.h:
(WebCore::ImageFrameGenerator::create):
(ImageFrameGenerator):
* platform/graphics/chromium/LazyDecodingPixelRef.cpp:
(WebCore::LazyDecodingPixelRef::onLockPixels):
(WebCore::LazyDecodingPixelRef::onUnlockPixels):
* platform/graphics/chromium/LazyDecodingPixelRef.h:
(LazyDecodingPixelRef):
2012-11-19 Abhishek Arya <inferno@chromium.org>
Crash in ApplyStyleCommand::cleanupUnstyledAppleStyleSpans.
https://bugs.webkit.org/show_bug.cgi?id=100150
Reviewed by Ryosuke Niwa.
RefPtr startDummySpanAncestor and endDummySpanAncestor since
they can go away inside fixRangeAndApplyInlineStyle call.
Test: editing/style/apply-style-crash.html
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyInlineStyle):
2012-11-19 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135172.
http://trac.webkit.org/changeset/135172
https://bugs.webkit.org/show_bug.cgi?id=102710
Broke some WebKit2 api tests :( (Requested by japhet on
#webkit).
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::~DocumentLoader):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::clearMainResourceLoader):
(WebCore::DocumentLoader::isLoadingInAPISense):
(WebCore::DocumentLoader::documentURL):
(WebCore::DocumentLoader::isLoadingMainResource):
(WebCore::DocumentLoader::startLoadingMainResource):
* loader/DocumentLoader.h:
(DocumentLoader):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::init):
* loader/FrameLoaderStateMachine.cpp:
(WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
* loader/FrameLoaderStateMachine.h:
* loader/MainResourceLoader.cpp:
(WebCore::shouldLoadAsEmptyDocument):
(WebCore):
(WebCore::MainResourceLoader::continueAfterContentPolicy):
(WebCore::MainResourceLoader::didReceiveResponse):
(WebCore::MainResourceLoader::didFinishLoading):
(WebCore::MainResourceLoader::handleEmptyLoad):
(WebCore::MainResourceLoader::loadNow):
(WebCore::MainResourceLoader::load):
* loader/MainResourceLoader.h:
(MainResourceLoader):
2012-11-19 Tony Chang <tony@chromium.org>
Remove 'is' prefix from WebSettings::isWebSecurityEnabled and WebSettings::isSpatialNavigationEnabled
https://bugs.webkit.org/show_bug.cgi?id=102548
Reviewed by Adam Barth.
This allows us to use Settings.in to generate the code for this.
I didn't rename any of the WebKit API methods with similar names because that would
probably break consumers. It turns out that the getter is only called from
Source/WebKit/efl (most of the time, WebPreferences just sets values on Settings).
No new tests, just a refactor.
* WebCore.exp.in: Remove symbols that are now inlined.
* WebCore.order: Remove symbols that are now inlined.
* dom/Document.cpp:
(WebCore::Document::initSecurityContext): Rename.
* page/Settings.cpp:
(WebCore::Settings::Settings): Remove code since it will be generated.
* page/Settings.h:
(Settings): Remove code since it will be generated.
* page/Settings.in: Add entries to be generated.
* page/SpatialNavigation.cpp:
(WebCore::isSpatialNavigationEnabled): Fix caller.
2012-11-19 Yael Aharon <yael.aharon@intel.com>
[EFL][TexMap] Complie error when considering warnings as errors
https://bugs.webkit.org/show_bug.cgi?id=102705
Reviewed by Kenneth Rohde Christiansen.
Change GaussianKernelHalfWidth to unsigned.
No new tests.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore):
2012-11-19 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134830.
http://trac.webkit.org/changeset/134830
https://bugs.webkit.org/show_bug.cgi?id=102701
ActiveDOMObject is not applicable to MutationObservers due to
being tied to a Document (Requested by aklein on #webkit).
* bindings/js/JSMutationObserverCustom.cpp:
(WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
* bindings/v8/custom/V8MutationObserverCustom.cpp:
(WebCore::V8MutationObserver::constructorCallback):
* dom/MutationObserver.cpp:
(WebCore::MutationObserver::create):
(WebCore::MutationObserver::MutationObserver):
(WebCore::MutationObserver::observationStarted):
(WebCore::MutationObserver::observationEnded):
* dom/MutationObserver.h:
(WebCore):
* dom/MutationObserver.idl:
2012-11-19 Brady Eidson <beidson@apple.com>
NetworkProcess Authentication.
https://bugs.webkit.org/show_bug.cgi?id=102592
Reviewed by Alexey Proskuryakov.
Change an ASSERT that assumes there should be a resource handle which is not true with the NetworkProcess.
Also export some more stuff.
No new tests (Platform support, no effect in tested configs).
* WebCore.exp.in:
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Only ASSERT that the handle has a challenge if
there is a handle.
2012-11-19 Alec Flett <alecflett@chromium.org>
IndexedDB: simplify RecordIdentifier
https://bugs.webkit.org/show_bug.cgi?id=102018
Reviewed by Tony Chang.
Make IDBBackingStore's RecordIdentifier be a simple
class, existing only as an inline or stack-based instance.
This makes much of the copy semantics more explicit, and
removes refcounting from an object that only ever had a refcount
of 1 or 2.
No new tests, just a refactor.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::putRecord):
(WebCore::IDBBackingStore::deleteRecord):
(WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBBackingStore::putIndexDataForRecord):
(WebCore::IDBBackingStore::deleteIndexDataForRecord):
(WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
(ObjectStoreCursorImpl):
(WebCore::ObjectStoreCursorImpl::loadCurrentRow):
(WebCore::IndexKeyCursorImpl::recordIdentifier):
(WebCore::IndexCursorImpl::recordIdentifier):
* Modules/indexeddb/IDBBackingStore.h:
(WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
(WebCore::IDBBackingStore::RecordIdentifier::isValid):
(WebCore::IDBBackingStore::RecordIdentifier::reset):
(RecordIdentifier):
(IDBBackingStore):
(WebCore::IDBBackingStore::Cursor::recordIdentifier):
(WebCore::IDBBackingStore::Cursor::Cursor):
(Cursor):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore):
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::deleteInternal):
2012-11-19 Alexander Shalamov <alexander.shalamov@intel.com>
Improve ContentTypeParser, so that it could be used to validate mime type according to RFC
https://bugs.webkit.org/show_bug.cgi?id=100927
Reviewed by Alexey Proskuryakov.
This patch adds ParsedContentType class that represents contents of parsed
content type string. isValidContentType function could be used to check if
format of the content type string is acorrding to RFC 2616 section 4.2.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* platform/network/MIMEHeader.cpp:
(WebCore::MIMEHeader::parseHeader):
* platform/network/ParsedContentType.cpp: Renamed from Source/WebCore/platform/network/ContentTypeParser.cpp.
(WebCore):
(EmptyParsedContentType):
(WebCore::EmptyParsedContentType::setContentType):
(WebCore::EmptyParsedContentType::setContentTypeParameter):
(WebCore::skipSpaces):
(WebCore::isTokenCharacter):
(WebCore::parseToken):
(WebCore::parseQuotedString):
(WebCore::substringForRange):
(WebCore::parseContentType):
(WebCore::isValidContentType):
(WebCore::ParsedContentType::ParsedContentType):
(WebCore::ParsedContentType::charset):
(WebCore::ParsedContentType::parameterValueForName):
(WebCore::ParsedContentType::parameterCount):
(WebCore::ParsedContentType::setContentType):
(WebCore::ParsedContentType::setContentTypeParameter):
* platform/network/ParsedContentType.h: Renamed from Source/WebCore/platform/network/ContentTypeParser.h.
(WebCore):
(ParsedContentType):
(WebCore::ParsedContentType::mimeType):
2012-11-19 Erik Arvidsson <arv@chromium.org>
Update DOMException name: InvalidNodeTypeError
https://bugs.webkit.org/show_bug.cgi?id=102519
Reviewed by Kentaro Hara.
Patch 24 of 25 to update DOMException name to match the spec and Firefox.
No code uses DOMException InvalidNodeTypeError. We do use INVALID_NODE_TYPE_ERR for RangeException. See bug 102515.
* dom/DOMCoreException.cpp:
2012-11-19 Shinya Kawanaka <shinyak@chromium.org>
Changing id, className, or attribute should invalidate distribution
https://bugs.webkit.org/show_bug.cgi?id=100738
Reviewed by Dimitri Glazkov.
When id, className, or attribute is changed, we might have to invalidate distribution.
However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow
to invalidate distribution only if necessary.
For the code that className is changed, we can share a lot of code between invalidating distribution and
invalidating style. So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
Since attributeChanged() is a hot method, we don't want to make it slow. So we made one function to determine
whether we have to invalidate distribution, and make it called only if necessary. Also, we've optimized
shadowOfParentForDistribution() by making isInsertionPoint() de-virtualed. We consuded NodeFlags (IsInsertionPointFlag)
for this purpose.
We've measured how this patch makes changing attribute slow. I've measured each code 3 times.
DOM/ModifyAttribute.html is a micro benchmark which changes attribute a lot of times. The result of this benchmark
will be the most affected by this patch. However, it's only 2% performance regression.
DOM/ModifyAttribute.html
Before this patch:
median stdev min max [ms]
1st 494.0 3.36 490.0 502.0
2nd 503.5 3.44 497.0 512.0
3rd 494.0 3.48 488.0 499.0
After this patch:
median stdev min max [ms]
1st 504.0 2.00 501.0 509.0
2nd 505.5 3.08 500.0 513.0
3rd 507.0 2.32 502.0 510.0
Tests: fast/dom/shadow/distribution-attribute-modified.html
fast/dom/shadow/distribution-className-modified.html
fast/dom/shadow/distribution-id-modified.html
fast/dom/shadow/reprojection-attribute-modified.html
fast/dom/shadow/reprojection-className-modified.html
fast/dom/shadow/reprojection-id-modified.html
* dom/Element.cpp:
(WebCore::Element::attributeChanged):
(WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
(HasSelectorForClassStyleFunctor):
(WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
(WebCore):
(WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
(HasSelectorForClassDistributionFunctor):
(WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectForClass returns true.
(WebCore::checkFunctorForClassChange):
(WebCore::checkNeedsStyleInvalidationForClassChange):
(WebCore::checkNeedsDistributionInvalidationForClassChange): Extracted the implementation to checkFunctorForClassChange.
(WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
* dom/Element.h:
(Element):
* dom/Node.h:
(WebCore::Node::isInsertionPoint):
* html/HTMLElement.h:
(HTMLElement):
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::InsertionPoint):
* html/shadow/InsertionPoint.h:
(InsertionPoint):
(WebCore::isInsertionPoint):
(WebCore::shadowOfParentForDistribution):
(WebCore::resolveReprojection):
2012-11-19 Nate Chapin <japhet@chromium.org>
Move empty loading to DocumentLoader, simplify FrameLoader::init()
https://bugs.webkit.org/show_bug.cgi?id=101512
Reviewed by Adam Barth.
No new tests, though several outputs changed because we no longer send resource
load callbacks for empty loads.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::~DocumentLoader):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::clearMainResourceLoader):
(WebCore::DocumentLoader::isLoadingInAPISense):
(WebCore::DocumentLoader::isLoadingMainResource):
(WebCore::DocumentLoader::maybeLoadEmpty):
(WebCore):
(WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
loads directly here.
* loader/DocumentLoader.h:
(DocumentLoader):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
were previously being reset in init(). Given that the FrameLoader is in
an inconsistent state before init() is called anyway, there doesn't seem
to be a disadvantage to just initializing them to their post-init() values.
(WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
doing a bunch of direct calls to functions FrameLoader shouldn't know about.
* loader/FrameLoaderStateMachine.cpp:
(WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
* loader/FrameLoaderStateMachine.h:
* loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
(WebCore::MainResourceLoader::loadNow): This only returned true when an empty
load got deferred, which won't happen now. Return void and always treat
as returning false.
* loader/MainResourceLoader.h:
(MainResourceLoader):
2012-11-19 Erik Arvidsson <arv@chromium.org>
Update DOMException name: TimeoutError
https://bugs.webkit.org/show_bug.cgi?id=102513
Reviewed by Kentaro Hara.
Patch 23 of 25 to update DOMException name to match the spec and Firefox.
No code uses DOMException TimeoutError. We do use TIMEOUT_ERR for XMLHttpRequestException. See bug 102506.
* dom/DOMCoreException.cpp:
2012-11-19 Erik Arvidsson <arv@chromium.org>
Update DOMException name: DataCloneError
https://bugs.webkit.org/show_bug.cgi?id=102521
Reviewed by Kentaro Hara.
Patch 25 of 25 to update DOMException name to match the spec and Firefox.
Updated existing tests.
* dom/DOMCoreException.cpp:
2012-11-19 Tom Hudson <tomhudson@chromium.org>
Improve performance of RenderBoxModelObject::paintTranslucentBorderSides()
https://bugs.webkit.org/show_bug.cgi?id=98660
Reviewed by Simon Fraser.
Accumulate edges[i].shouldRender() in a flag field and pass that to paintBorderSides()
and paintTranslucentBorderSides() so that we don't do unnecessary work.
If we can avoid setting up and tearing down an unnecessary transparent layer we save
30ms on some mobile platforms.
* rendering/RenderBoxModelObject.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintBorder):
(WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
2012-11-19 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] remove null exclusion shape check from ExclusionShape::createExclusionShape
https://bugs.webkit.org/show_bug.cgi?id=100765
Reviewed by Dirk Schulze.
ExclusionShape::createExclusionShape now ASSERTs that its basicShape argument
isn't null, since the caller is expected to ensure as much. No new tests were
needed since this is a near-trivial cleanup.
* rendering/ExclusionShape.cpp:
(WebCore::ExclusionShape::createExclusionShape): This method no longer defends against a null basicShape argument by returning null.
2012-11-19 Sami Kyostila <skyostil@chromium.org>
Use device scale factor instead of physical screen DPI for screen DPI
https://bugs.webkit.org/show_bug.cgi?id=101769
Reviewed by Adam Barth.
Media queries call WebCore::Screen::{horizontal,vertical}DPI() to determine
the dots per CSS inch[1] value for the "screen" media type. On Chromium these
functions currently return the physical screen DPI, which is wrong. To fix
this, we remove both of these functions entirely and make media queries use
the device scale factor multiplied by 96 on all ports.
[1] http://www.w3.org/TR/css3-mediaqueries/#resolution0
* page/Screen.cpp:
(WebCore::Screen::horizontalDPI):
(WebCore::Screen::verticalDPI):
* platform/PlatformScreen.h:
(WebCore):
* platform/blackberry/PlatformScreenBlackBerry.cpp:
* platform/chromium/PlatformScreenChromium.cpp:
* platform/efl/PlatformScreenEfl.cpp:
* platform/gtk/PlatformScreenGtk.cpp:
* platform/mac/PlatformScreenMac.mm:
* platform/qt/PlatformScreenQt.cpp:
* platform/win/PlatformScreenWin.cpp:
* platform/wx/ScreenWx.cpp:
2012-11-19 Julien Chaffraix <jchaffraix@webkit.org>
Computed grid items' positions shouldn't be using Length
https://bugs.webkit.org/show_bug.cgi?id=102537
Reviewed by Tony Chang.
This change refactors how we store the grid items' position to use
a new type GridPosition. Length was a temporary type as it supported
'auto' | <integer> but it was starting to get more and more confusing
as we were implementing the layout routines.
No change in behavior.
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Added the new file to the build systems.
* rendering/style/RenderStyle.h:
Updated after the type change. Also made some getters
return a const reference instead of forcing a copy.
* rendering/style/StyleGridItemData.h:
(StyleGridItemData):
Ditto, also removed a comment about adding a new type.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridPosition):
* css/StyleResolver.cpp:
(WebCore::createGridPosition):
(WebCore::StyleResolver::applyProperty):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::resolveGridPosition):
Updated these sites after switching to GridPosition.
* rendering/RenderGrid.h:
Changed resolveGridPosition signature: it now takes a GridPosition.
* rendering/style/GridPosition.h: Added.
(WebCore::GridPosition::GridPosition):
Default constructor, creates an 'auto' position.
(WebCore::GridPosition::isPositive):
(WebCore::GridPosition::type):
(WebCore::GridPosition::isAuto):
(WebCore::GridPosition::setIntegerPosition):
(WebCore::GridPosition::integerPosition):
Helper functions.
(WebCore::GridPosition::operator==):
Required comparison operator for StyleGridItemData.
2012-11-19 Thiago Marcos P. Santos <thiago.santos@intel.com>
Apply the resolved viewport rules
https://bugs.webkit.org/show_bug.cgi?id=95964
Reviewed by Kenneth Rohde Christiansen.
This patch implements the CSS Device Adaptation specification. The
WebKit implementation relies on the already implemented Viewport Meta
infrastructure to notify the browser of viewport changes.
The implementation was tests with success on the Qt and EFL ports, but
basically every port supporting Viewport Meta should be fine.
The usage of @-webkit-viewport inside media queries (more tests coming
to map all the corner cases) is currently limited when the media query
depends on the viewport dimensions itself. Defining the width and height
based on screen size will fail on ports reporting the screen
size as the size of the browser window instead of the device screen.
Tests: css3/device-adapt/opera/cascading-001.xhtml
css3/device-adapt/opera/cascading-002.xhtml
css3/device-adapt/opera/cascading-003.xhtml
css3/device-adapt/opera/cascading-004.xhtml
css3/device-adapt/opera/constrain-001.xhtml
css3/device-adapt/opera/constrain-002.xhtml
css3/device-adapt/opera/constrain-003.xhtml
css3/device-adapt/opera/constrain-004.xhtml
css3/device-adapt/opera/constrain-005.xhtml
css3/device-adapt/opera/constrain-006.xhtml
css3/device-adapt/opera/constrain-007.xhtml
css3/device-adapt/opera/constrain-008.xhtml
css3/device-adapt/opera/constrain-009.xhtml
css3/device-adapt/opera/constrain-010.xhtml
css3/device-adapt/opera/constrain-011.xhtml
css3/device-adapt/opera/constrain-012.xhtml
css3/device-adapt/opera/constrain-013.xhtml
css3/device-adapt/opera/constrain-014.xhtml
css3/device-adapt/opera/constrain-015.xhtml
css3/device-adapt/opera/constrain-016.xhtml
css3/device-adapt/opera/constrain-017.xhtml
css3/device-adapt/opera/constrain-020.xhtml
css3/device-adapt/opera/syntax-001.xhtml
css3/device-adapt/opera/syntax-002.xhtml
css3/device-adapt/opera/syntax-003.xhtml
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSAllInOne.cpp:
* css/RuleSet.cpp:
(WebCore::RuleSet::addRulesFromSheet):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::appendAuthorStyleSheets):
(WebCore::StyleResolver::~StyleResolver):
* css/StyleResolver.h:
(StyleResolver):
(WebCore::StyleResolver::viewportStyleResolver):
* css/ViewportStyleResolver.cpp: Added.
(WebCore):
(WebCore::ViewportStyleResolver::ViewportStyleResolver):
(WebCore::ViewportStyleResolver::addViewportRule):
(WebCore::ViewportStyleResolver::clearDocument):
(WebCore::ViewportStyleResolver::resolve):
(WebCore::ViewportStyleResolver::getViewportArgumentValue):
* css/ViewportStyleResolver.h: Added.
(WebCore):
(ViewportStyleResolver):
(WebCore::ViewportStyleResolver::create):
* dom/Document.h:
(WebCore::Document::setViewportArguments):
* dom/ViewportArguments.cpp:
(WebCore::compareIgnoringAuto):
(WebCore):
(WebCore::ViewportArguments::resolve):
* dom/ViewportArguments.h:
(ViewportAttributes):
(WebCore::ViewportArguments::ViewportArguments):
(ViewportArguments):
(WebCore::ViewportArguments::operator==):
2012-11-19 Erik Arvidsson <arv@chromium.org>
Update DOMException name: SecurityError
https://bugs.webkit.org/show_bug.cgi?id=102437
Reviewed by Kentaro Hara.
Patch 18 of 25 to update DOMException name to match the spec and Firefox.
Updated existing tests.
* dom/DOMCoreException.cpp:
2012-11-19 Erik Arvidsson <arv@chromium.org>
Update DOMException name: URLMismatchError
https://bugs.webkit.org/show_bug.cgi?id=102511
Reviewed by Kentaro Hara.
Patch 21 of 25 to update DOMException name to match the spec and Firefox.
Updated existing tests.
* dom/DOMCoreException.cpp:
(WebCore):
2012-11-19 Kihong Kwon <kihong.kwon@samsung.com>
Add PROXIMITY_EVENTS feature
https://bugs.webkit.org/show_bug.cgi?id=102658
Reviewed by Kentaro Hara.
Add PROXIMITY_EVENTS feature to xcode project for WebCorei and GNU make.
No new tests. Just add a new feature.
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.features.am:
2012-11-19 Alexei Filippov <alph@chromium.org>
Web Inspector: Dim a component's subitems' color in NMI snapshot
https://bugs.webkit.org/show_bug.cgi?id=102224
Reviewed by Yury Semikhatsky.
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeSnapshotNode.prototype._createSizeCell):
* inspector/front-end/nativeMemoryProfiler.css:
(.native-snapshot-view .data-grid .dimmed div.size-bar):
2012-11-19 Erik Arvidsson <arv@chromium.org>
Update DOMException name: NetworkError
https://bugs.webkit.org/show_bug.cgi?id=102503
Reviewed by Kentaro Hara.
Patch 19 of 25 to update DOMException name to match the spec and Firefox.
No code uses DOMException NetworkError. We do use NETWORK_ERR for XMLHttpRequestException. See bug 102506.
* dom/DOMCoreException.cpp:
2012-11-19 Ilya Tikhonovsky <loislo@chromium.org>
webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
https://bugs.webkit.org/show_bug.cgi?id=102649
Reviewed by Adam Barth.
AudioContext uses m_document only as a pointer to ScriptExecutionContext.
It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
No new tests as there is no new functionality.
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::looping):
(WebCore::AudioBufferSourceNode::setLooping):
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::stop):
(WebCore::AudioContext::scriptExecutionContext):
(WebCore::AudioContext::fireCompletionEvent):
(WebCore::AudioContext::reportMemoryUsage):
* Modules/webaudio/AudioContext.h:
(AudioContext):
* Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::fireProcessEvent):
(WebCore::ScriptProcessorNode::scriptExecutionContext):
2012-11-19 Ilya Tikhonovsky <loislo@chromium.org>
webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
https://bugs.webkit.org/show_bug.cgi?id=102356
Reviewed by Adam Barth.
A clean-up code was moved from uninitialize to clear method.
AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
m_isStopScheduled filters out second ActiveDOMObject::stop call.
markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
adoptRef was added in createOfflineContext method.
A guard was added into deleteMarkedNodes.
Test: inspector-protocol/nmi-webaudio-leak-test.html
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createOfflineContext):
(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::constructCommon):
(WebCore::AudioContext::~AudioContext):
(WebCore::AudioContext::clear):
(WebCore::AudioContext::uninitialize):
(WebCore::AudioContext::stopDispatch):
(WebCore::AudioContext::stop):
(WebCore::AudioContext::markForDeletion):
(WebCore::AudioContext::scheduleNodeDeletion):
(WebCore::AudioContext::deleteMarkedNodes):
* Modules/webaudio/AudioContext.h:
(AudioContext):
* bindings/v8/custom/V8AudioContextCustom.cpp:
(WebCore::V8AudioContext::constructorCallback):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* platform/PlatformMemoryInstrumentation.cpp:
(WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
(WebCore):
* platform/PlatformMemoryInstrumentation.h:
(PlatformMemoryInstrumentation):
(WebCore):
2012-11-19 Erik Arvidsson <arv@chromium.org>
Update DOMException name: QuotaExceededError
https://bugs.webkit.org/show_bug.cgi?id=102512
Reviewed by Kentaro Hara.
Patch 22 of 25 to update DOMException name to match the spec and Firefox.
Updated existing tests.
* dom/DOMCoreException.cpp:
2012-11-19 Erik Arvidsson <arv@chromium.org>
Update DOMException name: AbortError
https://bugs.webkit.org/show_bug.cgi?id=102508
Reviewed by Kentaro Hara.
Patch 20 of 25 to update DOMException name to match the spec and Firefox.
No code uses DOMException AbortError. We do use ABORT_ERR for XMLHttpRequestException. See bug 102506.
* dom/DOMCoreException.cpp:
2012-11-19 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r135111.
http://trac.webkit.org/changeset/135111
https://bugs.webkit.org/show_bug.cgi?id=102356
The patch caused crashes in several layout tests
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createOfflineContext):
(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::constructCommon):
(WebCore::AudioContext::~AudioContext):
(WebCore::AudioContext::uninitialize):
(WebCore::AudioContext::uninitializeDispatch):
(WebCore::AudioContext::stop):
(WebCore::AudioContext::markForDeletion):
(WebCore::AudioContext::scheduleNodeDeletion):
(WebCore::AudioContext::deleteMarkedNodes):
* Modules/webaudio/AudioContext.h:
(AudioContext):
* bindings/v8/custom/V8AudioContextCustom.cpp:
(WebCore::V8AudioContext::constructorCallback):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* platform/PlatformMemoryInstrumentation.cpp:
(WebCore):
* platform/PlatformMemoryInstrumentation.h:
2012-11-19 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r135116.
http://trac.webkit.org/changeset/135116
https://bugs.webkit.org/show_bug.cgi?id=102649
Revert this patch to revert r135111, which caused crashes in
several layout tests
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::looping):
(WebCore::AudioBufferSourceNode::setLooping):
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::stop):
(WebCore::AudioContext::document):
(WebCore):
(WebCore::AudioContext::hasDocument):
(WebCore::AudioContext::scriptExecutionContext):
(WebCore::AudioContext::fireCompletionEvent):
(WebCore::AudioContext::reportMemoryUsage):
* Modules/webaudio/AudioContext.h:
(AudioContext):
* Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::fireProcessEvent):
(WebCore::ScriptProcessorNode::scriptExecutionContext):
2012-11-19 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Refine JsDoc in DebuggerScriptMapping.js
https://bugs.webkit.org/show_bug.cgi?id=102673
Reviewed by Vsevolod Vlasov.
DebuggerScriptMapping calls public method "addScript" not defined
in SourceMapping interface.
To make things clear I've added ScriptSourceMapping interface that
extends SourceMapping interface by adding "addScript" method.
* inspector/front-end/SourceMapping.js: Added "ScriptSourceMapping".
* inspector/front-end/CompilerScriptMapping.js:
Updated "@implements" to ScriptSourceMapping.
* inspector/front-end/ResourceScriptMapping.js: Ditto.
* inspector/front-end/ScriptSnippetModel.js: Ditto.
* inspector/front-end/DebuggerScriptMapping.js: Updated signatures.
Removed useless code.
2012-11-19 Tim Horton <timothy_horton@apple.com>
Unreviewed, untested build fix.
* bindings/scripts/IDLParser.pm:
(parseModule):
2012-11-19 Dongwoo Joshua Im <dw.im@samsung.com>
[CSS3] Move CSSPropertyWebkitTextAlignLast into isValidKeywordPropertyAndValue function
https://bugs.webkit.org/show_bug.cgi?id=102303
Reviewed by Alexis Menard.
Move the part which check whether CSSPropertyWebkitTextAlignLast has available value
into the isValidKeywordPropertyAndValue function, like the same kind of properties.
This will help speed wise in JS.
No new functionality, no new tests.
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
2012-11-19 Keishi Hattori <keishi@webkit.org>
REGRESSION (r133565): Calendar picker isn't animating when changing month by pressing 't'
https://bugs.webkit.org/show_bug.cgi?id=102660
Reviewed by Kent Tamura.
The calendar picker used to animate when you press 't'.
No new tests.
* Resources/pagepopups/calendarPicker.js:
(DaysTable.prototype.selectRange):
2012-11-19 Kent Tamura <tkent@chromium.org>
input.value="" should clear date/time input elements with partial values
https://bugs.webkit.org/show_bug.cgi?id=102645
Reviewed by Kentaro Hara.
Tests: fast/forms/date-multiple-fields/date-multiple-fields-value-set-empty.html
fast/forms/datetime-multiple-fields/datetime-multiple-fields-value-set-empty.html
fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-value-set-empty.html
fast/forms/month-multiple-fields/month-multiple-fields-value-set-empty.html
fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html
fast/forms/week-multiple-fields/week-multiple-fields-value-set-empty.html
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue):
If the new value is an empty string and sub-fields has values, we should
update the UI value to the empty state.
* html/DateTimeFieldsState.h:
(WebCore::DateTimeFieldsState::hasAnyValue):
Added. It returns true if one or more sub-fields are not empty.
2012-11-19 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] if many canvases are being instrumented show the screenshot of the first one
https://bugs.webkit.org/show_bug.cgi?id=102522
Reviewed by Yury Semikhatsky.
When many canvases are being instrumented we'll want to show replay screenshots for each canvas.
Meanwhile, show the screenshot of the first one (instead of the last one), as it's likely to be the "main" canvas.
Drive-by: add more typification for the JS compiler.
Drive-by: create a new canvas for WebGL replay every time (similar to 2D replay) to avoid problems with resetting the context state.
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
2012-11-19 Kentaro Hara <haraken@chromium.org>
Remove IDLStructure.pm
https://bugs.webkit.org/show_bug.cgi?id=102642
Reviewed by Adam Barth.
Previously IDLStructure.pm was full of regular expressions to
parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
just contains several data structures for the IDL parser. We can
move them to IDLParser.pm and thus remove IDLStructure.pm.
No tests. No change in generated code.
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.am:
* WebCore.gyp/WebCore.gyp:
* WebCore.vcproj/MigrateScripts:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/IDLParser.pm:
(Parse):
(parseInterface):
(parseException):
(parseConst):
(parseAttributeRest):
(parseOperationRest):
(parseOptionalOrRequiredArgument):
(parseExceptionField):
(parseInterfaceOld):
(parseExceptionOld):
(parseAttributeRestOld):
(applyExtendedAttributeList):
* bindings/scripts/IDLStructure.pm: Removed.
2012-11-19 Alexei Filippov <alph@chromium.org>
Web Inspector: refine time and bytes output formatting
https://bugs.webkit.org/show_bug.cgi?id=102265
Reviewed by Yury Semikhatsky.
Add a space between number and unit, otherwise it's hard to read things like 88B.
Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
* English.lproj/localizedStrings.js:
* inspector/front-end/CookiesTable.js:
(WebInspector.CookiesTable.prototype._createGridNode):
* inspector/front-end/UIUtils.js:
(Number.secondsToString):
(Number.bytesToString):
2012-11-19 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
https://bugs.webkit.org/show_bug.cgi?id=102383
Reviewed by Yury Semikhatsky.
Fixed string presentation of event.
* inspector/front-end/TimelinePresentationModel.js: Fixed string.
2012-11-19 Kentaro Hara <haraken@chromium.org>
Remove IDLStructure.pm
https://bugs.webkit.org/show_bug.cgi?id=102642
Reviewed by Adam Barth.
Previously IDLStructure.pm was full of regular expressions to
parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
just contains several data structures for the IDL parser. We can
move them to IDLParser.pm and thus remove IDLStructure.pm.
No tests. No change in generated code.
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.am:
* WebCore.gyp/WebCore.gyp:
* WebCore.vcproj/MigrateScripts:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/IDLParser.pm:
(Parse):
(parseInterface):
(parseException):
(parseConst):
(parseAttributeRest):
(parseOperationRest):
(parseOptionalOrRequiredArgument):
(parseExceptionField):
(parseInterfaceOld):
(parseExceptionOld):
(parseAttributeRestOld):
(applyExtendedAttributeList):
* bindings/scripts/IDLStructure.pm: Removed.
2012-11-19 Alexei Filippov <alph@chromium.org>
Web Inspector: refine time and bytes output formatting
https://bugs.webkit.org/show_bug.cgi?id=102265
Reviewed by Yury Semikhatsky.
Add a space between number and unit, otherwise it's hard to read things like 88B.
Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
* English.lproj/localizedStrings.js:
* inspector/front-end/CookiesTable.js:
(WebInspector.CookiesTable.prototype._createGridNode):
* inspector/front-end/UIUtils.js:
(Number.secondsToString):
(Number.bytesToString):
2012-11-19 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
https://bugs.webkit.org/show_bug.cgi?id=102383
Reviewed by Yury Semikhatsky.
Fixed string presentation of event.
* inspector/front-end/TimelinePresentationModel.js: Fixed string.
2012-11-19 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r135114.
http://trac.webkit.org/changeset/135114
https://bugs.webkit.org/show_bug.cgi?id=102642
it broke Qt build
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.am:
* WebCore.gyp/WebCore.gyp:
* WebCore.vcproj/MigrateScripts:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/IDLParser.pm:
(Parse):
(parseInterface):
(parseException):
(parseConst):
(parseAttributeRest):
(parseOperationRest):
(parseOptionalOrRequiredArgument):
(parseExceptionField):
(parseInterfaceOld):
(parseExceptionOld):
(parseAttributeRestOld):
(applyExtendedAttributeList):
* bindings/scripts/IDLStructure.pm: Added.
2012-11-19 Vsevolod Vlasov <vsevik@chromium.org>
Unreviewed inspector closure compilation fix.
* inspector/front-end/ObjectPropertiesSection.js:
* inspector/front-end/externs.js:
2012-11-18 Ilya Tikhonovsky <loislo@chromium.org>
webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
https://bugs.webkit.org/show_bug.cgi?id=102649
Reviewed by Adam Barth.
AudioContext uses m_document only as a pointer to ScriptExecutionContext.
It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
No new tests as there is no new functionality.
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::looping):
(WebCore::AudioBufferSourceNode::setLooping):
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::stop):
(WebCore::AudioContext::fireCompletionEvent):
(WebCore::AudioContext::reportMemoryUsage):
* Modules/webaudio/AudioContext.h:
(WebCore::AudioContext::scriptExecutionContext):
(AudioContext):
* Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::fireProcessEvent):
(WebCore::ScriptProcessorNode::scriptExecutionContext):
2012-11-18 Kentaro Hara <haraken@chromium.org>
[V8] Remove unused variables from CodeGeneratorV8.pm
https://bugs.webkit.org/show_bug.cgi?id=102648
Reviewed by Adam Barth.
No tests. No change in generated code.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateInterface):
(GenerateHeader):
(GetInternalFields):
(GenerateNormalAttrGetter):
(GenerateSingleBatchedAttribute):
(GenerateImplementationCustomCall):
(GenerateFunctionCallString):
(CreateCustomSignature):
(GetContextEnableFunction):
2012-11-18 Kentaro Hara <haraken@chromium.org>
Remove IDLStructure.pm
https://bugs.webkit.org/show_bug.cgi?id=102642
Reviewed by Adam Barth.
Previously IDLStructure.pm was full of regular expressions to
parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
just contains several data structures for the IDL parser. We can
move them to IDLParser.pm and thus remove IDLStructure.pm.
No tests. No change in generated code.
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.am:
* WebCore.gyp/WebCore.gyp:
* WebCore.vcproj/MigrateScripts:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/IDLParser.pm:
(Parse):
(parseInterface):
(parseException):
(parseConst):
(parseAttributeRest):
(parseOperationRest):
(parseOptionalOrRequiredArgument):
(parseExceptionField):
(parseInterfaceOld):
(parseExceptionOld):
(parseAttributeRestOld):
(applyExtendedAttributeList):
* bindings/scripts/IDLStructure.pm: Removed.
2012-11-18 Kentaro Hara <haraken@chromium.org>
[V8] Make more use of $v8Interface in CodeGeneratorV8.pm
https://bugs.webkit.org/show_bug.cgi?id=102639
Reviewed by Adam Barth.
We can replace hard-coded "V8${interfaceName}" with $v8Interface.
No tests. No change in generated code.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateFunctionCallback):
(GenerateNamedConstructorCallback):
(GenerateImplementationIndexer):
(GenerateImplementationNamedPropertyGetter):
(GenerateImplementation):
2012-11-16 Ilya Tikhonovsky <loislo@chromium.org>
webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
https://bugs.webkit.org/show_bug.cgi?id=102356
Reviewed by Adam Barth.
A clean-up code was moved from uninitialize to clear method.
AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
m_isStopScheduled filters out second ActiveDOMObject::stop call.
markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
adoptRef was added in createOfflineContext method.
Test: inspector-protocol/nmi-webaudio-leak-test.html
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createOfflineContext):
(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::constructCommon):
(WebCore::AudioContext::~AudioContext):
(WebCore::AudioContext::clear):
(WebCore::AudioContext::uninitialize):
(WebCore::AudioContext::stopDispatch):
(WebCore::AudioContext::stop):
(WebCore::AudioContext::markForDeletion):
(WebCore::AudioContext::scheduleNodeDeletion):
(WebCore::AudioContext::deleteMarkedNodes):
* Modules/webaudio/AudioContext.h:
(AudioContext):
* bindings/v8/custom/V8AudioContextCustom.cpp:
(WebCore::V8AudioContext::constructorCallback):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* platform/PlatformMemoryInstrumentation.cpp:
(WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
(WebCore):
* platform/PlatformMemoryInstrumentation.h:
(PlatformMemoryInstrumentation):
(WebCore):
2012-11-18 Kunihiko Sakamoto <ksakamoto@chromium.org>
min/max/step support for calendar picker on datetime/datetime-local
https://bugs.webkit.org/show_bug.cgi?id=102628
Reviewed by Kent Tamura.
Gray out dates with no allowed values on calendar picker for datetime/datetime-local
when values are limited by min/max/step attributes.
Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-with-step.html
* Resources/pagepopups/calendarPicker.js:
(CalendarPicker.prototype._stepMismatch):
Returns true iff there are any allowed values in the given day.
2012-11-18 Laszlo Gombos <l.gombos@samsung.com>
Remove non-existent directories from the make system
https://bugs.webkit.org/show_bug.cgi?id=102632
Reviewed by Adam Barth.
Remove (non-existent) symbian references from the exclude list in gyp project files.
No new tests as there is no new functionality.
* WebCore.gyp/WebCore.gyp:
2012-11-18 Patrick Gansterer <paroga@webkit.org>
[WIN] Add a IMLangFontLinkType typedef
https://bugs.webkit.org/show_bug.cgi?id=102584
Reviewed by Brent Fulgham.
Add a central typedef for IMLangFontLink(2) to get rid of a bunch of ifdefs.
* platform/graphics/FontCache.h:
(WebCore):
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::getFontLinkInterface):
(WebCore::getCJKCodePageMasks):
(WebCore::createMLangFont):
(WebCore::FontCache::getFontDataForCharacters):
* platform/graphics/win/SimpleFontDataWin.cpp:
(WebCore::SimpleFontData::containsCharacters):
* platform/graphics/wince/FontCacheWinCE.cpp:
(WebCore):
(WebCore::FontCache::getFontLinkInterface):
(WebCore::getCJKCodePageMasks):
(WebCore::FontCache::getFontDataForCharacters):
* platform/graphics/wince/FontPlatformData.cpp:
(WebCore::FontFamilyCodePageInfo::codePages):
(WebCore::FixedSizeFontData::create):
* platform/graphics/wince/GlyphPageTreeNodeWinCE.cpp:
(WebCore::GlyphPage::fill):
2012-11-18 Mike West <mkwst@chromium.org>
Web Inspector: Remove unused ConsoleMessage constructor.
https://bugs.webkit.org/show_bug.cgi?id=102590
Reviewed by Brent Fulgham.
We currently have a ConsoleMessage constructor that's unused. Let's
kill it.
* inspector/ConsoleMessage.cpp:
* inspector/ConsoleMessage.h:
(ConsoleMessage):
Removing an unused constructor variant.
2012-11-18 Andreas Kling <akling@apple.com>
StyledElement: Make handling the "style" attribute a litte faster.
<http://webkit.org/b/102623>
Reviewed by Ojan Vafai.
We know that "style" is never a presentation attribute, so avoid the virtual call to isPresentationAttribute()
by hoisting the parseAttribute() logic up into attributeChanged().
Did the same thing with Element::parseAttribute() for consistency.
Knocks ~0.6% of samples off of the DOM/CreateNodes performance test.
* dom/Element.cpp:
(WebCore::Element::attributeChanged):
* dom/Element.h:
(WebCore::Element::parseAttribute):
* dom/StyledElement.cpp:
(WebCore::StyledElement::attributeChanged):
* dom/StyledElement.h:
(StyledElement):
2012-11-18 Laszlo Gombos <l.gombos@samsung.com>
[CMake] Consolidate common input files
https://bugs.webkit.org/show_bug.cgi?id=101632
Reviewed by Rob Buis.
Consolidate and sort the list of files, move common source files
into CMakeLists.txt from the port specific files.
No new tests as there is no new functionality.
* CMakeLists.txt:
* PlatformBlackBerry.cmake:
* PlatformEfl.cmake:
* PlatformWinCE.cmake:
2012-11-18 Andreas Kling <akling@apple.com>
Tighten small SharedBuffers by reserving the exact amount of space needed.
<http://webkit.org/b/102625>
Reviewed by Anders Carlsson.
When adding the first chunk to a small (<4096 bytes) SharedBuffer, reserve the exact
amount of space needed instead of leaving it to Vector<char>::append().
1.86MB progression on Membuster3.
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::append):
2012-11-18 Ryosuke Niwa <rniwa@webkit.org>
Make namedItem return a node list only in HTMLFormControlsCollection and HTMLOptionsCollection
https://bugs.webkit.org/show_bug.cgi?id=101311
Reviewed by Darin Adler.
Introduce two new interfaces HTMLFormControlsCollection and HTMLOptionsCollection to be used by form.elements
and select.options. These two interfaces have the named getter and namedItem that returns a live NodeList when
there are multiple matches. Introducing these two interfaces allow us to make "regular" HTMLCollection's named
getter and namedItem return exactly one node or null as specified in HTML5:
http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#collections-0
Unfortunately, HTMLOptionsCollection still has a bug that its named getter and namedItem returns
a static NodeList instead of a live NodeList (DynamicNodeList) at the moment.
Also got rid of Document::objects since it's not exposed in IDL or called anywhere.
Test: fast/dom/html-collections-namedItem.html
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* 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/JSHTMLAllCollectionCustom.cpp:
(WebCore::getNamedItems):
* bindings/js/JSHTMLCollectionCustom.cpp:
(WebCore::JSHTMLCollection::nameGetter): Now returns exactly one node or null.
(WebCore::toJS):
* bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Added.
(WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
(WebCore::JSHTMLFormControlsCollection::canGetItemsForName):
(WebCore::JSHTMLFormControlsCollection::nameGetter):
(WebCore::JSHTMLFormControlsCollection::namedItem):
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
This is a bug. It should be a live NodeList instead.
(WebCore::JSHTMLOptionsCollection::canGetItemsForName):
(WebCore::JSHTMLOptionsCollection::nameGetter):
(WebCore::JSHTMLOptionsCollection::namedItem):
* bindings/js/CodeGeneratorJS.pm: Include JSNode.js for all HTML*Collection interfaces for simplicity.
* bindings/js/CodeGeneratorV8.pm: HTMLOptionsCollection now inherits from HTMLCollection. See
http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmloptionscollection
* bindings/v8/custom/V8HTMLAllCollectionCustom.cpp: Pass in isolate when we can.
(WebCore::getNamedItems): Added a comment about how we should be returning
a HTMLCollection when there are multiple matches.
(WebCore::getItem):
(WebCore::V8HTMLAllCollection::namedPropertyGetter):
(WebCore::V8HTMLAllCollection::namedItemCallback):
* bindings/v8/custom/V8HTMLCollectionCustom.cpp: Now returns exactly one node or null.
(WebCore::V8HTMLCollection::namedPropertyGetter):
(WebCore::toV8):
* bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp: Added.
(WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
(WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
(WebCore::V8HTMLFormControlsCollection::namedItemCallback):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
This is a bug. It should be a live NodeList instead.
(WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
(WebCore::V8HTMLOptionsCollection::namedItemCallback):
* dom/Document.cpp: Removed Document::objects since it was not used anywhere.
* dom/Document.h:
(Document):
* dom/Element.cpp:
(WebCore::ElementRareData::ensureCachedHTMLCollection): form.elements should instantiate
a HTMLFormControlsCollection instead of a HTMLCollection.
* html/CollectionType.h:
* html/HTMLCollection.idl: Removed [Custom] since namedItem is a regular function call now.
* html/HTMLFieldSetElement.cpp:
* html/HTMLFieldSetElement.h:
* html/HTMLFormCollection.cpp: Removed.
* html/HTMLFormCollection.h: Removed.
* html/HTMLFormControlsCollection.cpp: Copied from Source/WebCore/html/HTMLFormCollection.cpp.
(WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
(WebCore::HTMLFormControlsCollection::create):
(WebCore::HTMLFormControlsCollection::~HTMLFormControlsCollection):
(WebCore::HTMLFormControlsCollection::formControlElements):
(WebCore::HTMLFormControlsCollection::formImageElements):
(WebCore::HTMLFormControlsCollection::virtualItemAfter):
(WebCore::HTMLFormControlsCollection::namedItem):
(WebCore::HTMLFormControlsCollection::updateNameCache):
* html/HTMLFormControlsCollection.h: Copied from Source/WebCore/html/HTMLFormCollection.h.
(HTMLFormControlsCollection):
* html/HTMLFormControlsCollection.idl: Added.
* html/HTMLFormElement.cpp:
* html/HTMLFormElement.h:
* html/HTMLOptionsCollection.idl:
2012-11-18 Kentaro Hara <haraken@chromium.org>
[V8] Rename $className to $v8InterfaceName
https://bugs.webkit.org/show_bug.cgi?id=102487
Reviewed by Adam Barth.
In CodeGeneratorV8.pm, $className is always "V8$interfaceName".
We should rename $className to $v8InterfaceName. Also we can
remove GetCallbackClassName().
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GetHeaderClassInclude):
(GenerateDomainSafeFunctionGetter):
(GenerateDomainSafeFunctionSetter):
(GenerateParametersCheck):
(GenerateImplementation):
(GenerateHeaderContentHeader):
(GenerateImplementationContentHeader):
(GenerateCallbackHeader):
(GenerateCallbackImplementation):
(GenerateToV8Converters):
(GetPassRefPtrType):
2012-11-18 Kentaro Hara <haraken@chromium.org>
[V8] Remove GetTypeFromSignature() from CodeGeneratorV8.pm
https://bugs.webkit.org/show_bug.cgi?id=102499
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateParametersCheckExpression):
(GenerateParametersCheck):
(GenerateFunctionCallString):
(GetNativeTypeFromSignature):
(TranslateParameter):
(TypeCanFailConversion):
(JSValueToNative):
(NativeToJSValue):
2012-11-18 Kentaro Hara <haraken@chromium.org>
Remove GenerateModule() from all code generators
https://bugs.webkit.org/show_bug.cgi?id=102490
Reviewed by Adam Barth.
WebKit IDL files no longer support modules. The Web IDL spec
no longer supports modules. We can remove it from code generators.
No tests. No change in behavior.
* bindings/scripts/CodeGenerator.pm:
(ProcessDocument):
* bindings/scripts/CodeGeneratorCPP.pm:
* bindings/scripts/CodeGeneratorGObject.pm:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorObjC.pm:
* bindings/scripts/CodeGeneratorV8.pm:
2012-11-18 Kentaro Hara <haraken@chromium.org>
[V8] Get rid of unused functions and inline redundant functions in CodeGeneratorV8.pm
https://bugs.webkit.org/show_bug.cgi?id=102497
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateDomainSafeFunctionGetter):
(GenerateNormalAttrGetter):
(GenerateFunctionCallString):
2012-11-18 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r135074.
http://trac.webkit.org/changeset/135074
https://bugs.webkit.org/show_bug.cgi?id=102619
Made most layout tests crash. (Requested by rakuco on
#webkit).
* PlatformEfl.cmake:
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::create):
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::~GraphicsContext3D):
(WebCore::GraphicsContext3D::makeContextCurrent):
(WebCore::GraphicsContext3D::setContextLostCallback):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
(WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
(WebCore::GraphicsContext3DPrivate::createSurface):
(WebCore::GraphicsContext3DPrivate::setCurrentGLContext):
(WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
(WebCore::GraphicsContext3DPrivate::makeContextCurrent):
(WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
(WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
(WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
* platform/graphics/efl/GraphicsContext3DPrivate.h:
(GraphicsContext3DPrivate):
* platform/graphics/opengl/GLDefs.h: Removed.
* platform/graphics/opengl/GLPlatformContext.cpp: Removed.
* platform/graphics/opengl/GLPlatformContext.h: Removed.
* platform/graphics/opengl/GLPlatformSurface.cpp: Removed.
* platform/graphics/opengl/GLPlatformSurface.h: Removed.
* platform/graphics/surfaces/glx/GLXContext.cpp: Removed.
* platform/graphics/surfaces/glx/GLXContext.h: Removed.
* platform/graphics/surfaces/glx/GLXSurface.cpp: Removed.
* platform/graphics/surfaces/glx/GLXSurface.h: Removed.
2012-11-18 Antti Koivisto <antti@apple.com>
REGRESSION(r129644): User StyleSheet not applying
https://bugs.webkit.org/show_bug.cgi?id=102110
Reviewed by Andreas Kling.
Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
It also generally cleans up the code around injected and user stylesheets.
Tests: userscripts/user-script-and-stylesheet.html
userscripts/user-stylesheet-invalidate.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::collectRulesFromUserStyleSheets):
(WebCore::collectCSSOMWrappers):
* css/StyleResolver.h:
(StyleResolver):
* dom/Document.cpp:
(WebCore::Document::setCompatibilityMode):
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
(WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
(WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
(WebCore):
(WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
(WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
(WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
(WebCore::DocumentStyleSheetCollection::addUserSheet):
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
(WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
* dom/DocumentStyleSheetCollection.h:
(WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
(DocumentStyleSheetCollection):
* page/PageGroup.cpp:
(WebCore::PageGroup::addUserStyleSheetToWorld):
(WebCore::PageGroup::removeUserStyleSheetFromWorld):
(WebCore::PageGroup::removeUserStyleSheetsFromWorld):
(WebCore::PageGroup::removeAllUserContent):
(WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
* page/PageGroup.h:
(PageGroup):
2012-11-18 Adam Barth <abarth@webkit.org>
Unreviewed.
Update run-bindings-tests baselines after
http://trac.webkit.org/changeset/135063
* bindings/scripts/test/JS/JSTestActiveDOMObject.h:
(JSTestActiveDOMObjectOwner):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
(JSTestCustomNamedGetterOwner):
* bindings/scripts/test/JS/JSTestEventConstructor.h:
(JSTestEventConstructorOwner):
* bindings/scripts/test/JS/JSTestEventTarget.h:
(JSTestEventTargetOwner):
* bindings/scripts/test/JS/JSTestException.h:
(JSTestExceptionOwner):
* bindings/scripts/test/JS/JSTestInterface.h:
(JSTestInterfaceOwner):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
(JSTestMediaQueryListListenerOwner):
* bindings/scripts/test/JS/JSTestNamedConstructor.h:
(JSTestNamedConstructorOwner):
* bindings/scripts/test/JS/JSTestObj.h:
(JSTestObjOwner):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
(JSTestOverloadedConstructorsOwner):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
(JSTestSerializedScriptValueInterfaceOwner):
2012-11-18 Simon Fraser <simon.fraser@apple.com>
Make convertToLayerCoords iterative, rather than recursive
https://bugs.webkit.org/show_bug.cgi?id=102618
Reviewed by Antti Koivisto.
RenderLayer::convertToLayerCoords() is a hot function on profiles.
Change it to be iterative, rather than recursive, so that the
bulk of the function can be inlined.
Was tested with assertions against the old code during development.
* rendering/RenderLayer.cpp:
(WebCore::accumulateOffsetTowardsAncestor):
(WebCore::RenderLayer::convertToLayerCoords):
2012-11-18 Andreas Kling <akling@apple.com>
Inline the StyledElement constructor.
<http://webkit.org/b/102615>
Reviewed by Antti Koivisto.
StyledElement sits between Element and HTMLElement in the inheritance chain, and both of those are inline.
Knocks ~0.4% of samples off of the DOM/CreateNodes performance test.
* dom/StyledElement.cpp:
* dom/StyledElement.h:
(WebCore::StyledElement::StyledElement):
2012-11-18 Andreas Kling <akling@apple.com>
HTMLMediaElement: Skip unnecessary attribute lookup in parsing of "src" attribute.
<http://webkit.org/b/102614>
Reviewed by Anders Carlsson.
When parsing the "src" attribute, we don't need to look it up with fastHasAttribute()
to know if it's present. If it's not present, 'value' argument will be null.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
2012-11-18 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL] Refactor GraphicsContext3DEFL.
https://bugs.webkit.org/show_bug.cgi?id=101291.
Reviewed by Kenneth Rohde Christiansen.
GraphicsContext3DEfl creates GraphicsContext3DPrivate, which acts as its platform Layer.
GraphicsContext3DPrivate needs to handle the following cases:
1) To provide an off-screen buffer for accelerated composition.
2) Render to a current context.
3) To render directly to host window. (currently not supported.)
Before this patch Evas was used to provide us an off-screen context and buffer. GLX was used in
the other supported case. Evas acts as a glue layer to provide us with appropriate
GL bindings (OpenGL functions), GL context and drawable (surface/offscreenbuffer).
However, primitive rendering is handled by TextureMapper and OpenGLShims is used to load the needed GL functions.
It would be for our advantage to be able to take in to use any optimisations/extensions
provided by underlying drivers, specific to a platform (e.g. GLX_MESA_copy_sub_buffer etc.).
This patch introduces an abstraction layer to make it easy to add support for any GL backend (GLX, EGL etc.)
and do any platform specific optimizations as needed without complicating GraphicsContext3DPrivate class.
Two new classes are added with this implementation, GLPlatformContext and GLPlatformSurface.
GraphicsContext3DPrivate would create and own a GLPlatformContext and GLPlatformSurface.
GLPlatformContext encapsulates an OpenGL context hiding any platform specific management.
It uses GL extension ARB_robustness (when available) to detect driver resets.
It defines a simple interface for things that need to be handled by the context. Support
for multi-threaded usage and shared context-group would be added later.
GLPlatformSurface encapsulates an OpenGL drawable hiding any platform specific management.
It defines a simple interface for things that need to be handled by the surface.
It creates an off-screen rendering area. Any GLPlatformContext (compatible with the surface)
can be used to render into this off-screen area.
This patch also adds GLX implementation. To keep the patch to minimum EGL support would be added in another changeset.
* PlatformEfl.cmake:
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::create):
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::~GraphicsContext3D):
(WebCore::GraphicsContext3D::makeContextCurrent):
(WebCore::GraphicsContext3D::setContextLostCallback):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
(GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
(GraphicsContext3DPrivate::releaseResources):
(GraphicsContext3DPrivate::setContextLostCallback):
(GraphicsContext3DPrivate::platformGraphicsContext3D):
(GraphicsContext3DPrivate::makeContextCurrent):
(GraphicsContext3DPrivate::createGraphicsSurfaces):
(GraphicsContext3DPrivate::copyToGraphicsSurface):
(GraphicsContext3DPrivate::graphicsSurfaceToken):
* platform/graphics/efl/GraphicsContext3DPrivate.h:
(GraphicsContext3DPrivate):
* platform/graphics/opengl/GLDefs.h: Added.
(WebCore):
* platform/graphics/opengl/GLPlatformContext.cpp: Added.
(WebCore):
(WebCore::GLPlatformContext::createContext):
(WebCore::GLPlatformContext::createOffScreenContext):
(WebCore::GLPlatformContext::createCurrentContextWrapper):
(WebCore::GLPlatformContext::GLPlatformContext):
(WebCore::GLPlatformContext::~GLPlatformContext):
(WebCore::GLPlatformContext::makeCurrent):
(WebCore::GLPlatformContext::isValid):
(WebCore::GLPlatformContext::releaseCurrent):
(WebCore::GLPlatformContext::handle):
(WebCore::GLPlatformContext::isCurrentContext):
(WebCore::GLPlatformContext::initialize):
(WebCore::GLPlatformContext::getCurrent):
(WebCore::GLPlatformContext::platformMakeCurrent):
(WebCore::GLPlatformContext::platformReleaseCurrent):
(WebCore::GLPlatformContext::destroy):
* platform/graphics/opengl/GLPlatformContext.h: Added.
(WebCore):
(GLPlatformContext):
* platform/graphics/opengl/GLPlatformSurface.cpp: Added.
(WebCore):
(WebCore::GLPlatformSurface::createOffscreenSurface):
(WebCore::GLPlatformSurface::createTransportSurface):
(WebCore::GLPlatformSurface::GLPlatformSurface):
(WebCore::GLPlatformSurface::~GLPlatformSurface):
(WebCore::GLPlatformSurface::handle):
(WebCore::GLPlatformSurface::geometry):
(WebCore::GLPlatformSurface::sharedDisplay):
(WebCore::GLPlatformSurface::configuration):
(WebCore::GLPlatformSurface::swapBuffers):
(WebCore::GLPlatformSurface::copyTexture):
(WebCore::GLPlatformSurface::updateContents):
(WebCore::GLPlatformSurface::setGeometry):
(WebCore::GLPlatformSurface::destroy):
* platform/graphics/opengl/GLPlatformSurface.h: Added.
(WebCore):
(GLPlatformSurface):
GLXOffScreenContext creates an off-screen context. This is used when
renderstyle is RenderOffscreen.
It uses GL extension GLX_ARB_create_context (when available)
to create a context else falls back to use glXCreateNewContext.
* platform/graphics/surfaces/glx/GLXContext.cpp: Added.
(WebCore):
(WebCore::initializeARBExtensions):
(WebCore::GLXOffScreenContext::GLXOffScreenContext):
(WebCore::GLXOffScreenContext::initialize):
(WebCore::GLXOffScreenContext::~GLXOffScreenContext):
(WebCore::GLXOffScreenContext::isCurrentContext):
(WebCore::GLXOffScreenContext::platformMakeCurrent):
(WebCore::GLXOffScreenContext::platformReleaseCurrent):
(WebCore::GLXOffScreenContext::freeResources):
(WebCore::GLXOffScreenContext::destroy):
GLXCurrentContextWrapper acts as a wrapper for current context.
This is used when renderstyle is RenderToCurrentGLContext.
* platform/graphics/surfaces/glx/GLXContext.h: Added.
(WebCore):
(GLXCurrentContextWrapper):
(WebCore::GLXCurrentContextWrapper::GLXCurrentContextWrapper):
(WebCore::GLXCurrentContextWrapper::~GLXCurrentContextWrapper):
(GLXOffScreenContext):
* platform/graphics/surfaces/glx/GLXSurface.cpp: Added.
(WebCore):
(WebCore::GLXSurface::GLXSurface):
(WebCore::GLXSurface::~GLXSurface):
(WebCore::GLXSurface::visualInfo):
(WebCore::GLXSurface::xWindow):
(WebCore::GLXSurface::pBufferConfiguration):
(WebCore::GLXSurface::transportSurfaceConfiguration):
(WebCore::GLXSurface::isXRenderExtensionSupported):
GLXTransportSurface creates Window and uses it as an off-screen surface.
Any GLContext that was created with respect to configuration can be used
to render into this.
This is used when contents of the buffer are to be provided to UI Process
for display.
(WebCore::GLXTransportSurface::GLXTransportSurface):
(WebCore::GLXTransportSurface::~GLXTransportSurface):
(WebCore::GLXTransportSurface::configuration):
(WebCore::GLXTransportSurface::swapBuffers):
(WebCore::GLXTransportSurface::setGeometry):
(WebCore::GLXTransportSurface::initialize):
(WebCore::GLXTransportSurface::destroy):
(WebCore::GLXTransportSurface::freeResources):
GLXPBuffer, Creates a GL surface (PBuffer) used for offscreen rendering.
Any GLContext that was created with respect to configuration can be used
to render into this.
(WebCore::GLXPBuffer::GLXPBuffer):
(WebCore::GLXPBuffer::~GLXPBuffer):
(WebCore::GLXPBuffer::initialize):
(WebCore::GLXPBuffer::configuration):
(WebCore::GLXPBuffer::destroy):
(WebCore::GLXPBuffer::freeResources):
* platform/graphics/surfaces/glx/GLXSurface.h: Added.
(WebCore):
Creates X resources which are shared between surface and context.
(SharedX11Resources):
(WebCore::SharedX11Resources::create):
(WebCore::SharedX11Resources::deref):
(WebCore::SharedX11Resources::getXWindow):
(WebCore::SharedX11Resources::display):
(WebCore::SharedX11Resources::visualInfo):
(WebCore::SharedX11Resources::createConfig):
(WebCore::SharedX11Resources::pBufferContextConfig):
(WebCore::SharedX11Resources::surfaceContextConfig):
(WebCore::SharedX11Resources::isXRenderExtensionSupported):
(WebCore::SharedX11Resources::SharedX11Resources):
(WebCore::SharedX11Resources::~SharedX11Resources):
(GLXSurface):
(GLXTransportSurface):
(GLXPBuffer):
2012-11-18 Andreas Kling <akling@apple.com>
Element::parseAttribute() should take name & value as separate arguments.
<http://webkit.org/b/102608>
Reviewed by Antti Koivisto.
Update the signature of parseAttribute() to take a QualifiedName/AtomicString combo instead
of an Attribute. This lets us pass avoid refcount churn in Element::attributeChanged() since
creating a temporary Attribute is no longer necessary.
This was surprisingly hot (~1%) on the DOM/CreateNodes performance test.
* bindings/js/ScriptEventListener.cpp:
(WebCore::createAttributeEventListener):
* bindings/js/ScriptEventListener.h:
(WebCore):
* bindings/v8/ScriptEventListener.cpp:
(WebCore::createAttributeEventListener):
* bindings/v8/ScriptEventListener.h:
(WebCore):
* dom/Element.cpp:
(WebCore::Element::attributeChanged):
(WebCore::Element::parseAttribute):
* dom/Element.h:
(Element):
* dom/StyledElement.cpp:
(WebCore::StyledElement::parseAttribute):
* dom/StyledElement.h:
(StyledElement):
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parseAttribute):
* html/HTMLAnchorElement.h:
(HTMLAnchorElement):
* html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::parseAttribute):
* html/HTMLAppletElement.h:
(HTMLAppletElement):
* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::parseAttribute):
* html/HTMLAreaElement.h:
(HTMLAreaElement):
* html/HTMLBaseElement.cpp:
(WebCore::HTMLBaseElement::parseAttribute):
* html/HTMLBaseElement.h:
(HTMLBaseElement):
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::parseAttribute):
* html/HTMLBodyElement.h:
(HTMLBodyElement):
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::parseAttribute):
* html/HTMLButtonElement.h:
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::parseAttribute):
* html/HTMLCanvasElement.h:
(HTMLCanvasElement):
* html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::parseAttribute):
* html/HTMLDetailsElement.h:
(HTMLDetailsElement):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseAttribute):
(WebCore::HTMLElement::dirAttributeChanged):
* html/HTMLElement.h:
(HTMLElement):
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::parseAttribute):
* html/HTMLEmbedElement.h:
(HTMLEmbedElement):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::parseAttribute):
* html/HTMLFormControlElement.h:
(HTMLFormControlElement):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::parseAttribute):
* html/HTMLFormElement.h:
(HTMLFormElement):
* html/HTMLFrameElement.cpp:
(WebCore::HTMLFrameElement::parseAttribute):
* html/HTMLFrameElement.h:
(HTMLFrameElement):
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::parseAttribute):
* html/HTMLFrameElementBase.h:
(HTMLFrameElementBase):
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::parseAttribute):
* html/HTMLFrameSetElement.h:
(HTMLFrameSetElement):
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::parseAttribute):
* html/HTMLIFrameElement.h:
(HTMLIFrameElement):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseAttribute):
* html/HTMLImageElement.h:
(HTMLImageElement):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::parseMaxLengthAttribute):
* html/HTMLInputElement.h:
(HTMLInputElement):
* html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::parseAttribute):
* html/HTMLKeygenElement.h:
(HTMLKeygenElement):
* html/HTMLLIElement.cpp:
(WebCore::HTMLLIElement::parseAttribute):
* html/HTMLLIElement.h:
(HTMLLIElement):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::parseAttribute):
* html/HTMLLinkElement.h:
(HTMLLinkElement):
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::parseAttribute):
* html/HTMLMapElement.h:
(HTMLMapElement):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h:
* html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::parseAttribute):
* html/HTMLMetaElement.h:
(HTMLMetaElement):
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::parseAttribute):
* html/HTMLMeterElement.h:
(HTMLMeterElement):
* html/HTMLOListElement.cpp:
(WebCore::HTMLOListElement::parseAttribute):
* html/HTMLOListElement.h:
(HTMLOListElement):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::parseAttribute):
* html/HTMLObjectElement.h:
(HTMLObjectElement):
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::parseAttribute):
* html/HTMLOptGroupElement.h:
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::parseAttribute):
* html/HTMLOptionElement.h:
(HTMLOptionElement):
* html/HTMLOutputElement.cpp:
(WebCore::HTMLOutputElement::parseAttribute):
* html/HTMLOutputElement.h:
(HTMLOutputElement):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::parseAttribute):
* html/HTMLProgressElement.h:
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::parseAttribute):
* html/HTMLScriptElement.h:
(HTMLScriptElement):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseAttribute):
(WebCore::HTMLSelectElement::parseMultipleAttribute):
* html/HTMLSelectElement.h:
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::parseAttribute):
* html/HTMLStyleElement.h:
(HTMLStyleElement):
* html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::parseAttribute):
* html/HTMLTableCellElement.h:
(HTMLTableCellElement):
* html/HTMLTableColElement.cpp:
(WebCore::HTMLTableColElement::parseAttribute):
* html/HTMLTableColElement.h:
(HTMLTableColElement):
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::parseAttribute):
* html/HTMLTableElement.h:
(HTMLTableElement):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::parseAttribute):
* html/HTMLTextAreaElement.h:
(HTMLTextAreaElement):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::parseAttribute):
* html/HTMLTextFormControlElement.h:
(HTMLTextFormControlElement):
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::parseAttribute):
* html/HTMLTrackElement.h:
(HTMLTrackElement):
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::parseAttribute):
* html/HTMLVideoElement.h:
(HTMLVideoElement):
* html/shadow/HTMLContentElement.cpp:
(WebCore::HTMLContentElement::parseAttribute):
* html/shadow/HTMLContentElement.h:
(HTMLContentElement):
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::parseAttribute):
* mathml/MathMLElement.h:
(MathMLElement):
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::parseAttribute):
* svg/SVGAElement.h:
(SVGAElement):
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::parseAttribute):
* svg/SVGAnimateMotionElement.h:
(SVGAnimateMotionElement):
* svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::parseAttribute):
* svg/SVGAnimateTransformElement.h:
(SVGAnimateTransformElement):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::parseAttribute):
* svg/SVGAnimationElement.h:
(SVGAnimationElement):
* svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::parseAttribute):
* svg/SVGCircleElement.h:
(SVGCircleElement):
* svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::parseAttribute):
* svg/SVGClipPathElement.h:
(SVGClipPathElement):
* svg/SVGComponentTransferFunctionElement.cpp:
(WebCore::SVGComponentTransferFunctionElement::parseAttribute):
* svg/SVGComponentTransferFunctionElement.h:
(SVGComponentTransferFunctionElement):
* svg/SVGCursorElement.cpp:
(WebCore::SVGCursorElement::parseAttribute):
* svg/SVGCursorElement.h:
(SVGCursorElement):
* svg/SVGElement.cpp:
(WebCore::SVGElement::reportAttributeParsingError):
(WebCore::SVGElement::parseAttribute):
* svg/SVGElement.h:
(SVGElement):
* svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::parseAttribute):
* svg/SVGEllipseElement.h:
(SVGEllipseElement):
* svg/SVGExternalResourcesRequired.cpp:
(WebCore::SVGExternalResourcesRequired::parseAttribute):
* svg/SVGExternalResourcesRequired.h:
(SVGExternalResourcesRequired):
* svg/SVGFEBlendElement.cpp:
(WebCore::SVGFEBlendElement::parseAttribute):
* svg/SVGFEBlendElement.h:
(SVGFEBlendElement):
* svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::parseAttribute):
* svg/SVGFEColorMatrixElement.h:
(SVGFEColorMatrixElement):
* svg/SVGFEComponentTransferElement.cpp:
(WebCore::SVGFEComponentTransferElement::parseAttribute):
* svg/SVGFEComponentTransferElement.h:
(SVGFEComponentTransferElement):
* svg/SVGFECompositeElement.cpp:
(WebCore::SVGFECompositeElement::parseAttribute):
* svg/SVGFECompositeElement.h:
(SVGFECompositeElement):
* svg/SVGFEConvolveMatrixElement.cpp:
(WebCore::SVGFEConvolveMatrixElement::parseAttribute):
* svg/SVGFEConvolveMatrixElement.h:
(SVGFEConvolveMatrixElement):
* svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::parseAttribute):
* svg/SVGFEDiffuseLightingElement.h:
(SVGFEDiffuseLightingElement):
* svg/SVGFEDisplacementMapElement.cpp:
(WebCore::SVGFEDisplacementMapElement::parseAttribute):
* svg/SVGFEDisplacementMapElement.h:
(SVGFEDisplacementMapElement):
* svg/SVGFEDropShadowElement.cpp:
(WebCore::SVGFEDropShadowElement::parseAttribute):
* svg/SVGFEDropShadowElement.h:
(SVGFEDropShadowElement):
* svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::parseAttribute):
* svg/SVGFEGaussianBlurElement.h:
(SVGFEGaussianBlurElement):
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::parseAttribute):
* svg/SVGFEImageElement.h:
(SVGFEImageElement):
* svg/SVGFELightElement.cpp:
(WebCore::SVGFELightElement::parseAttribute):
* svg/SVGFELightElement.h:
(SVGFELightElement):
* svg/SVGFEMergeNodeElement.cpp:
(WebCore::SVGFEMergeNodeElement::parseAttribute):
* svg/SVGFEMergeNodeElement.h:
(SVGFEMergeNodeElement):
* svg/SVGFEMorphologyElement.cpp:
(WebCore::SVGFEMorphologyElement::parseAttribute):
* svg/SVGFEMorphologyElement.h:
(SVGFEMorphologyElement):
* svg/SVGFEOffsetElement.cpp:
(WebCore::SVGFEOffsetElement::parseAttribute):
* svg/SVGFEOffsetElement.h:
(SVGFEOffsetElement):
* svg/SVGFESpecularLightingElement.cpp:
(WebCore::SVGFESpecularLightingElement::parseAttribute):
* svg/SVGFESpecularLightingElement.h:
(SVGFESpecularLightingElement):
* svg/SVGFETileElement.cpp:
(WebCore::SVGFETileElement::parseAttribute):
* svg/SVGFETileElement.h:
(SVGFETileElement):
* svg/SVGFETurbulenceElement.cpp:
(WebCore::SVGFETurbulenceElement::parseAttribute):
* svg/SVGFETurbulenceElement.h:
(SVGFETurbulenceElement):
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::parseAttribute):
* svg/SVGFilterElement.h:
(SVGFilterElement):
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
* svg/SVGFilterPrimitiveStandardAttributes.h:
(SVGFilterPrimitiveStandardAttributes):
* svg/SVGFitToViewBox.h:
(WebCore::SVGFitToViewBox::parseAttribute):
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::parseAttribute):
* svg/SVGFontFaceElement.h:
(SVGFontFaceElement):
* svg/SVGFontFaceUriElement.cpp:
(WebCore::SVGFontFaceUriElement::parseAttribute):
* svg/SVGFontFaceUriElement.h:
(SVGFontFaceUriElement):
* svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::parseAttribute):
* svg/SVGForeignObjectElement.h:
(SVGForeignObjectElement):
* svg/SVGGElement.cpp:
(WebCore::SVGGElement::parseAttribute):
* svg/SVGGElement.h:
(SVGGElement):
* svg/SVGGlyphElement.cpp:
(WebCore::SVGGlyphElement::parseAttribute):
* svg/SVGGlyphElement.h:
(SVGGlyphElement):
* svg/SVGGlyphRefElement.cpp:
(WebCore::SVGGlyphRefElement::parseAttribute):
* svg/SVGGlyphRefElement.h:
* svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::parseAttribute):
* svg/SVGGradientElement.h:
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::parseAttribute):
* svg/SVGImageElement.h:
(SVGImageElement):
* svg/SVGLangSpace.cpp:
(WebCore::SVGLangSpace::parseAttribute):
* svg/SVGLangSpace.h:
(SVGLangSpace):
* svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::parseAttribute):
* svg/SVGLineElement.h:
(SVGLineElement):
* svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::parseAttribute):
* svg/SVGLinearGradientElement.h:
(SVGLinearGradientElement):
* svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::parseAttribute):
* svg/SVGMPathElement.h:
(SVGMPathElement):
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::parseAttribute):
* svg/SVGMarkerElement.h:
(SVGMarkerElement):
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::parseAttribute):
* svg/SVGMaskElement.h:
(SVGMaskElement):
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::parseAttribute):
* svg/SVGPathElement.h:
(SVGPathElement):
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::parseAttribute):
* svg/SVGPatternElement.h:
(SVGPatternElement):
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::parseAttribute):
* svg/SVGPolyElement.h:
(SVGPolyElement):
* svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::parseAttribute):
* svg/SVGRadialGradientElement.h:
(SVGRadialGradientElement):
* svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::parseAttribute):
* svg/SVGRectElement.h:
(SVGRectElement):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::parseAttribute):
* svg/SVGSVGElement.h:
(SVGSVGElement):
* svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::parseAttribute):
* svg/SVGScriptElement.h:
(SVGScriptElement):
* svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::parseAttribute):
* svg/SVGStopElement.h:
(SVGStopElement):
* svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::parseAttribute):
* svg/SVGStyleElement.h:
(SVGStyleElement):
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::parseAttribute):
* svg/SVGStyledElement.h:
(SVGStyledElement):
* svg/SVGStyledTransformableElement.cpp:
(WebCore::SVGStyledTransformableElement::parseAttribute):
* svg/SVGStyledTransformableElement.h:
(SVGStyledTransformableElement):
* svg/SVGSymbolElement.cpp:
(WebCore::SVGSymbolElement::parseAttribute):
* svg/SVGSymbolElement.h:
(SVGSymbolElement):
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::parseAttribute):
* svg/SVGTRefElement.h:
(SVGTRefElement):
* svg/SVGTests.cpp:
(WebCore::SVGTests::parseAttribute):
* svg/SVGTests.h:
(SVGTests):
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::parseAttribute):
* svg/SVGTextContentElement.h:
(SVGTextContentElement):
* svg/SVGTextElement.cpp:
(WebCore::SVGTextElement::parseAttribute):
* svg/SVGTextElement.h:
(SVGTextElement):
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::parseAttribute):
* svg/SVGTextPathElement.h:
* svg/SVGTextPositioningElement.cpp:
(WebCore::SVGTextPositioningElement::parseAttribute):
* svg/SVGTextPositioningElement.h:
(SVGTextPositioningElement):
* svg/SVGURIReference.cpp:
(WebCore::SVGURIReference::parseAttribute):
* svg/SVGURIReference.h:
(SVGURIReference):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::parseAttribute):
* svg/SVGUseElement.h:
(SVGUseElement):
* svg/SVGViewElement.cpp:
(WebCore::SVGViewElement::parseAttribute):
* svg/SVGViewElement.h:
(SVGViewElement):
* svg/SVGZoomAndPan.h:
(WebCore::SVGZoomAndPan::parseAttribute):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::parseAttribute):
* svg/animation/SVGSMILElement.h:
(SVGSMILElement):
2012-11-18 Andreas Kling <akling@apple.com>
StyleResolver: No need to compare "cellpadding" attributes when evaluating style sharing candidates.
<http://webkit.org/b/102596>
Reviewed by Antti Koivisto.
Differences in the cellpadding attribute is caught by comparing additionalPresentationAttributeStyle()
later on in canShareStyleWithElement() and we shouldn't waste time on comparing them.
* css/StyleResolver.cpp:
(WebCore::haveIdenticalStyleAffectingAttributes):
2012-11-17 Jon Lee <jonlee@apple.com>
Simulated mouse events should return an accurate offset
https://bugs.webkit.org/show_bug.cgi?id=102606
<rdar://problem/12725627>
Reviewed by Brady Eidson.
A check to see if the event is simulated prior to calculating the offset has existed for a
long time (since at least r14916). Back then the check was needed because the offset was
incrementally adjusted when the target was assigned (through
MouseRelatedEvent::receivedTarget()).
Since r82225, we started calculating the offset only when needed, and calculating the offset
from scratch rather than incrementally adjusting it. Since we recalculate from scratch,
the isSimulated check is irrelevant, and we should remove it.
Tests are not possible because all uses of simulated mouse events provide no underlying
event, so the offset is never recalculated.
* dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::computeRelativePosition): Remove the m_isSimulated check.
2012-11-17 Simon Fraser <simon.fraser@apple.com>
Don't say there are dirty overlay scrollbars when they are clipped out
https://bugs.webkit.org/show_bug.cgi?id=102609
Reviewed by Brady Eidson.
Painting overlay scrollbars involves a second painting pass over the entire
RenderLayer subtree for a compositing layer, which can be very expensive.
Avoid this when possible by detecting when overflow controls are not in
the damage rect.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::rectForHorizontalScrollbar): Compute a local rect
for the horizontal scrollbar.
(WebCore::RenderLayer::rectForVerticalScrollbar): Compute a local rect
for the vertical scrollbar.
(WebCore::RenderLayer::positionOverflowControls): Use rectForHorizontalScrollbar()
and rectForVerticalScrollbar().
(WebCore::RenderLayer::overflowControlsIntersectRect): Return true if any
of the present overflow controls intersect the given local rect.
(WebCore::RenderLayer::paintOverflowControls): Bail if the damage rect
doesn't intersect any of the overflow controls.
* rendering/RenderLayer.h:
(RenderLayer):
2012-11-17 Adam Barth <abarth@webkit.org>
REGRESSION (r133633): ASSERTION FAILED: m_wrapper || !m_jsFunction
https://bugs.webkit.org/show_bug.cgi?id=101428
Reviewed by Geoffrey Garen.
JSNodeOwner has some smarts that wrappers of subclasses of Node need to
call during garbage collection. This patch teaches subclasses of Node
to have their JSMumbleOwner objects inherit from JSNodeOwner.
The immediate benefit of this patch is that we correctly avoid
collecting wrappers for HTMLAudioElements when they are reachable from
the DOM.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
2012-11-17 Elliott Sprehn <esprehn@chromium.org>
Expose JSObject::removeDirect and PrivateName to WebCore
https://bugs.webkit.org/show_bug.cgi?id=102546
Reviewed by Geoffrey Garen.
Add forwarding header for PrivateName, so JSDependentRetained works.
No new tests, just adding headers.
* ForwardingHeaders/runtime/PrivateName.h: Added.
2012-11-17 Simon Fraser <simon.fraser@apple.com>
Reduce the crazy number of parameters to RenderLayer clip-rect functions
https://bugs.webkit.org/show_bug.cgi?id=102604
Reviewed by Dan Bernstein.
Many of the RenderLayer member functions related to clip rect computation
took a long list of similar parameters. Gather these into a struct, ClipRectsContext,
that we pass to these functions
No functional changes.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::updateClipRects):
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::parentClipRects):
(WebCore::RenderLayer::backgroundClipRect):
(WebCore::RenderLayer::calculateRects):
(WebCore::RenderLayer::childrenClipRect):
(WebCore::RenderLayer::selfClipRect):
(WebCore::RenderLayer::localClipRect):
* rendering/RenderLayer.h:
(WebCore::RenderLayer::ClipRectsContext::ClipRectsContext):
(ClipRectsContext):
(RenderLayer):
(WebCore::RenderLayer::clipRects):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateCompositedBounds):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::addToOverlapMap):
(WebCore::RenderLayerCompositor::clippedByAncestor):
* rendering/RenderTreeAsText.cpp:
(WebCore::writeLayers):
2012-11-17 Simon Fraser <simon.fraser@apple.com>
Simplify bounds computation for the RenderView's layer
https://bugs.webkit.org/show_bug.cgi?id=102597
Reviewed by Anders Carlsson.
Computing the bounds of the main layer (that of the RenderView) used to do
a full RenderLayer walk, taking the union of the bounds of all the sublayers,
which is very expensive on large pages.
For the RenderView we can avoid that entirely and just use the RenderView's
document rect. Since page scaling happens as a transform on this layer,
we want the unscaled document rect.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateLayerBounds):
2012-11-17 Eric Seidel <eric@webkit.org>
Add ScriptWrappable to more WebCore classes which are commonly JS-wrapped
https://bugs.webkit.org/show_bug.cgi?id=102601
Reviewed by Adam Barth.
From my investigations all of these classes exist only to be exposed
to the web (via JavaScript) and are not used internally by WebCore.
I beleive all of them always have wrappers.
These were found using this code:
https://bugs.webkit.org/show_bug.cgi?id=102539#c2
Geolocation -- navigator.geolocation
WebKitCSSMatrix -- represent matrixes in JS through various APIs
DOMStringMap, NamedNodeMap, NodeIterator, TreeWalker -- exclusively for the DOM API
Blob, FileList - used by the File, Clipboard and XHR, also exclusively as API
ValidityState -- formControl.validity
CanvasRenderingContext -- canvas.getContext()
DOMApplicationCache -- window.appcache
Screen -- window.screen
DOMMimeTypeArray -- navigator.mimetypes
DOMPlugin -- navigator.plugins[0]
DOMPluginArray -- navigator.plugins
* Modules/geolocation/Geolocation.h:
* css/WebKitCSSMatrix.h:
* dom/DOMStringMap.h:
* dom/NamedNodeMap.h:
* dom/NodeIterator.h:
* dom/TreeWalker.h:
* fileapi/Blob.h:
* fileapi/FileList.h: (had to un-indent to make check-webkit-style happy)
(FileList):
(WebCore::FileList::create):
(WebCore::FileList::length):
(WebCore::FileList::isEmpty):
(WebCore::FileList::clear):
(WebCore::FileList::append):
* html/ValidityState.h:
* html/canvas/CanvasRenderingContext.h:
* loader/appcache/DOMApplicationCache.h:
* page/Screen.h:
* platform/graphics/wince/MediaPlayerProxy.cpp:
(WebCore::WebMediaPlayerProxy::initEngine): This code was wrong, fixed to use internal APIs.
* plugins/DOMMimeTypeArray.h:
* plugins/DOMPlugin.h:
* plugins/DOMPluginArray.h:
2012-11-17 Alexandru Chiculita <achicu@adobe.com>
[Texmap][CSS Shaders] Reuse the precompiled shader for custom filters in TextureMapperGL
https://bugs.webkit.org/show_bug.cgi?id=101801
Reviewed by Noam Rosenthal.
Added a HashMap in TextureMapperGL to store the precompiled versions of the shaders.
Also added a new API on TextureMapper that receives a notification when the shader
is no longer needed.
No new tests, the code is tested by existing tests.
* platform/graphics/filters/CustomFilterOperation.h:
(WebCore::CustomFilterOperation::setProgram):
(CustomFilterOperation): Made the constructor protected, so that we can overwrite the class in WK2.
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore::CustomFilterValidatedProgram::validatedProgramInfo):
(WebCore):
* platform/graphics/filters/CustomFilterValidatedProgram.h:
(CustomFilterValidatedProgram):
* platform/graphics/texmap/TextureMapper.h:
(WebCore):
(TextureMapper):
(WebCore::TextureMapper::removeCachedCustomFilterProgram):
Function to be called by the platform code, when the shader is no longer
needed. This implementation is empty and overridden in TextureMapperGL.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::removeCachedCustomFilterProgram):
Removes the compiled shader from the cache. This is called from WK2 when the compiled shader
is no longer needed.
(WebCore):
(WebCore::TextureMapperGL::drawUsingCustomFilter): The first time it uses a new
shader it will cache the compiled version until removeCachedCustomFilterProgram is called.
* platform/graphics/texmap/TextureMapperGL.h:
(WebCore):
(TextureMapperGL):
2012-11-17 Brady Eidson <beidson@apple.com>
Add an integer identifier field to AuthenticationChallengeBase.
https://bugs.webkit.org/show_bug.cgi?id=102593
Reviewed by Darin Adler.
This is to support linking two different challenges that might not compare as equal but that
represent the same logical authentication challenge.
One example is in an IPC environment where the platform challenge can only exist in one process.
No new tests (Platform support, no effect in tested configs).
* WebCore.exp.in:
* platform/network/AuthenticationChallengeBase.cpp:
(WebCore::AuthenticationChallengeBase::AuthenticationChallengeBase):
* platform/network/AuthenticationChallengeBase.h:
(WebCore::AuthenticationChallengeBase::identifier):
* platform/network/cf/AuthenticationChallenge.h:
* platform/network/mac/AuthenticationMac.mm:
(WebCore::generateUniqueIdentifier):
(WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
constructing a challenge from an NSURLAuthenticationChallenge.
* platform/network/cf/AuthenticationCF.cpp:
(WebCore::generateUniqueIdentifier):
(WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
constructing a challenge from a CFURLAuthChallengeRef.
Implement the new constructor form for ports relevant to WebKit2:
* platform/network/qt/AuthenticationChallenge.h:
(WebCore::AuthenticationChallenge::AuthenticationChallenge):
* platform/network/soup/AuthenticationChallenge.h:
(WebCore::AuthenticationChallenge::AuthenticationChallenge):
* platform/network/win/AuthenticationChallenge.h:
(WebCore::AuthenticationChallenge::AuthenticationChallenge):
2012-11-17 Simon Fraser <simon.fraser@apple.com>
Dump the tile cache extent in layout tests
https://bugs.webkit.org/show_bug.cgi?id=102600
Reviewed by Anders Carlsson.
When dumping tiled layer stats in layout tests, also dump the extent
of the tile grid. This will allow us to detect issues related
to zooming, which is not possible with the existing tile coverage rect,
which is dumped in layer (not tile) coordinates.
* platform/graphics/TiledBacking.h: Added tileGridExtent().
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump the tile grid extent.
* platform/graphics/ca/mac/TileCache.h: tileCoverageRect() should be OVERRIDE.
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::getTileIndexRangeForRect):
(WebCore::TileCache::tileGridExtent): Return a rect with the size of
the grid as top,left width,height.
2012-11-17 Andreas Kling <akling@apple.com>
Avoid full style recalc when 'style' attribute changes.
<http://webkit.org/b/78718>
Reviewed by Anders Carlsson.
Use setNeedsStyleRecalc(InlineStyleChange) when the 'style' attribute changes
to reduce the amount of work done in recalcStyle().
* dom/StyledElement.cpp:
(WebCore::StyledElement::styleAttributeChanged):
2012-11-17 Li Yin <li.yin@intel.com>
Remove coneGain and distanceGain attributes from PannerNode.idl
https://bugs.webkit.org/show_bug.cgi?id=102343
Reviewed by Chris Rogers.
Removing .coneGain and .distanceGain as publicly accessible values,
since normally they only need to be calculated internally.
No changes to tests, since these attributes were not tested and are being removed.
* Modules/webaudio/PannerNode.idl:
2012-11-17 Balazs Kelemen <kbalazs@webkit.org>
[Coordinated Graphics] Resumed animations leave an obsolate GraphicsLayerAnimation behind
https://bugs.webkit.org/show_bug.cgi?id=102530
Reviewed by Noam Rosenthal.
GraphicsLayer::addAnimation is called no only when a new animation is created
but also when resuming a paused animation. If this is a resumed animation we
should remove the obsolate GraphicsLayerAnimation object.
Tested by animations tests.
* platform/graphics/GraphicsLayerAnimation.cpp:
(WebCore::GraphicsLayerAnimations::add):
2012-11-17 Martin Robinson <mrobinson@igalia.com>
[Soup] CredentialStorage should only be used for HTTP-family requests
https://bugs.webkit.org/show_bug.cgi?id=102582
Reviewed by Gustavo Noronha Silva.
Do not use CredentialStorage when handling non-HTTP family requests. CredentialStorage
only expects to handle requests in the HTTP family.
No new tests. This is covered by existing tests.
* platform/network/ResourceHandle.h:
(ResourceHandle): Add a shouldUseCredentialStorage helper to ResourceHandle. This
helper returns false when firstRequest() is a non-HTTP family request.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::applyAuthenticationToRequest): Use the new helper.
(WebCore::createSoupRequestAndMessageForHandle): Ditto.
(WebCore::ResourceHandle::start): Ditto.
(WebCore::ResourceHandle::shouldUseCredentialStorage): Ditto.
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto.
(WebCore::ResourceHandle::receivedCredential): Ditto.
2012-11-16 Patrick Gansterer <paroga@webkit.org>
Build fix for !USE(ACCELERATED_COMPOSITING) after r135029.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintOverflowControls):
2012-11-16 Benjamin Poulain <bpoulain@apple.com>
Improve the performance of rect transform
https://bugs.webkit.org/show_bug.cgi?id=101828
Reviewed by Simon Fraser.
Mapping a rect and a quad by a transform is a common operation because
we use it to recompute the repaint rect, overflow rect, etc.
The way it was done, is by transforming through mapRect()->mapQuad()->4 times mapPoint().
Each of those functions tests isIdentityOrTranslation() which has to read the whole matrix
and perform many comparison.
Because of that, the simple mapping of a rect was loading and checking the matrix 5 times
too many.
This patch just cut the intermediary calls.
On ARM, putting the operation together also has the advantage of loading the matrix
only once in registers and reusing it for every point.
* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::mapPoint):
(WebCore::TransformationMatrix::mapRect):
* platform/graphics/transforms/TransformationMatrix.h:
(WebCore):
(WebCore::TransformationMatrix::mapPointImpl): New convenience function to perform the
point project without doing isIdentityOrTranslation().
2012-11-16 Simon Fraser <simon.fraser@apple.com>
Avoid calling the virtual isBlockFlow() in RenderBox::computeRectForRepaint()
https://bugs.webkit.org/show_bug.cgi?id=102581
Reviewed by Dan Bernstein.
isBlockFlow() is a virtual function call, and shows up in profiles of
Facebook pages as called from RenderBox::computeRectForRepaint().
It's faster to do the hasColumns() bit-check first. Also replace
a call to layer() with the hasLayer() bit-check.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeRectForRepaint):
2012-11-16 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134817.
http://trac.webkit.org/changeset/134817
https://bugs.webkit.org/show_bug.cgi?id=102576
Broke iframes and causing tons of crashes on ClusterFuzz
(Requested by inferno-sec on #webkit).
* dom/ContainerNode.cpp:
(WebCore::willRemoveChildren):
* dom/ContainerNodeAlgorithms.cpp:
(WebCore::ChildFrameDisconnector::collectDescendant):
* dom/ContainerNodeAlgorithms.h:
(WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
(WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
(ChildFrameDisconnector):
(WebCore::ChildFrameDisconnector::collectDescendant):
(WebCore::ChildFrameDisconnector::disconnect):
* dom/Node.cpp:
* dom/Node.h:
(Node):
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
(NodeRareData):
* html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::setContentFrame):
(WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
2012-11-16 Simon Fraser <simon.fraser@apple.com>
Fix overlay scrollbar painting in compositing layers
https://bugs.webkit.org/show_bug.cgi?id=102442
Reviewed by Beth Dakin.
There were two issues with overlay scrollbar painting in
compositing layers.
First, we'd only ever call setContainsDirtyOverlayScrollbars()
on the RenderView's layer, even when encountering an overlay scrollbar
in some descendant compositing layer. This meant that we'd never
run the paintOverlayScrollbars() code for those child compositing
layers, so sometimes scrollbars were missing there.
Even after fixing that, we would fail to render scrollbars that
were not in the composited RenderLayer itself. This happened because
we called into RenderLayer::paintOverlayScrollbars(), which called
paintLayer() with flags that only said to paint the overlay scrollbars
but not any descendants, so this paint path would not walk child
RenderLayers.
Also remove the containsScrollableAreaWithOverlayScrollbars() flag on
ScrollView which is no longer used.
* platform/ScrollView.cpp:
(WebCore::ScrollView::ScrollView): Remove containsScrollableAreaWithOverlayScrollbars().
(WebCore::ScrollView::paint): Remove setting of m_containsScrollableAreaWithOverlayScrollbars.
* platform/ScrollView.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintOverflowControls): Call setContainsDirtyOverlayScrollbars()
on the compositing ancestor or the root.
Remove call to setContainsScrollableAreaWithOverlayScrollbars().
(WebCore::RenderLayer::paintOverlayScrollbars): When painting overlay
scrollbars, no need to say we have transparency, and no need to use
temporary clip rects.
(WebCore::RenderLayer::paintLayer): The PaintLayerPaintingOverlayScrollbars
check here was only needed because the compositing entrypoint to painting
overlay scrollbars went via paintLayer(), which isn't normally used as
a composited painting entry point. Now that we no longer call that, we
don't need this special check.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer): Jump into overlay scrollbar
painting via paintLayerContents(), not paintOverlayScrollbars(), since
the latter does not traverse sublayers.
2012-11-16 Joshua Bell <jsbell@chromium.org>
IndexedDB: Assert hit when getting non-existent object store in version change transaction
https://bugs.webkit.org/show_bug.cgi?id=102547
Reviewed by Tony Chang.
Code did not account for the not-found case in "versionchange" transactions, where all
object stores are implicitly in scope.
Test: storage/indexeddb/object-lookups-in-versionchange.html
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::objectStore):
2012-11-12 Simon Fraser <simon.fraser@apple.com>
Eliminate ancestor tree walk computing outlineBoundsForRepaint() when updating layer positions
https://bugs.webkit.org/show_bug.cgi?id=101874
Reviewed by Dave Hyatt.
RenderLayer::updateLayerPositions() and updateLayerPositionsAfterScroll() spend a
lot of time in computeRepaintRects(), which does two ancestor tree walks, once
for clippedOverflowRectForRepaint(), and one for outlineBoundsForRepaint().
Eliminate the ancestor tree walk in outlineBoundsForRepaint() by maintaining
a RenderGeometryMap as we traverse the layer tree, and then using it to map
the outline bounds to the repaint container. Replace the hokey cached offsetFromRoot
now that the RenderGeometryMap can do a better job.
The clipped overflow rect cannot be mapped simply, so cannot yet make use of
the geometry map.
Modify the RenderGeometryMap to support mapping to some repaintContainer ancestor.
Add a RenderObject walk that is necessary to detect flipped writing mode blocks.
Pass the RenderGeometryMap as an optional parameter to outlineBoundsForRepaint.
* page/FrameView.cpp:
(WebCore::FrameView::layout): Make a RenderGeometryMap and pass it down
to updateLayerPositions(). For partial layouts, we have to push layers
between the root and the enclosing layer of the layout subtree.
The geometry map used for repainting does not use SnapOffsetForTransforms,
so initialize it explicitly with just the UseTransforms flag.
(WebCore::FrameView::repaintFixedElementsAfterScrolling): Make a RenderGeometryMap
to pass along to updateLayerPositionsAfterScroll().
* rendering/RenderBox.cpp:
(WebCore::RenderBox::outlineBoundsForRepaint): Replace the optional cachedOffsetToRepaintContainer
parameter with an optional RenderGeometryMap, and it use to map the compute rect to
repaintContainer coordinates.
* rendering/RenderBox.h:
* rendering/RenderGeometryMap.cpp:
(WebCore::RenderGeometryMap::RenderGeometryMap): This now has to store the mapping
flags to use, so that its behavior can match that of mapLocalToContainer(). The
pertinent flag is the confusingly named SnapOffsetForTransforms.
(WebCore::RenderGeometryMap::absolutePoint): Call the new mapToContainer() with
a null container.
(WebCore::RenderGeometryMap::absoluteRect): Ditto.
(WebCore::RenderGeometryMap::mapToContainer): Map to the supplied container,
asserting that we found it. Add point- and rect-based mapping methods
akin to the old absoluteRect/absolutePoint.
(WebCore::canMapViaLayer): We need to test for isRenderFlowThread() here too.
(WebCore::RenderGeometryMap::pushMappingsToAncestor): When mapping via
layers, ensure that the RenderView is pushed as the first step.
* rendering/RenderGeometryMap.h:
(RenderGeometryMap):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositionsAfterLayout): New wrapper for updateLayerPositions()
that makes the geometry map.
(WebCore::RenderLayer::updateLayerPositionsAfterScroll): New wrapper for updateLayerPositionsAfterScroll
that makes the geometry map.
(WebCore::RenderLayer::updateLayerPositions): Now takes an optional RenderGeometryMap.
Remove the old offsetFromRoot code. Push and pop layers to/from the geometry map. Use
the geometry map to get the offsetFromRoot as needed by overflow controls. Pass
it to computeRepaintRects().
(WebCore::RenderLayer::computeRepaintRects): Pass the geometry map to outlineBoundsForRepaint().
(WebCore::RenderLayer::updateLayerPositionsAfterScroll): Push and pop to/from the
geometry map, and pass it to computeRepaintRects().
(WebCore::RenderLayer::removeOnlyThisLayer): Remove the offsetFromRootBeforeMove
computation; this could use a geometry map in future if it is shown to be a bottleneck.
* rendering/RenderLayer.h:
(WebCore::RenderLayer::canUseConvertToLayerCoords): It was thought that the isComposited()
was there because the older cached offsetFromRoot logic was sensitive to compositing,
but convertToLayerCoords() is not affected by compositing so this check is not needed,
and actually harmful.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::OverlapMap::OverlapMap): The geometry map
used for overlap testing should not use SnapOffsetForTransforms, so initialize
it explicitly with just the UseTransforms flag.
* rendering/RenderObject.h:
(WebCore::RenderObject::outlineBoundsForRepaint):
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
* rendering/svg/RenderSVGModelObject.h:
(RenderSVGModelObject):
2012-11-16 Alec Flett <alecflett@chromium.org>
Add tests for explicit serialization values
https://bugs.webkit.org/show_bug.cgi?id=96818
Reviewed by Adam Barth.
Expose direct access to the serialization/deserialization mechanisms
of SerializedScriptValue to DumpRenderTree.
* testing/Internals.cpp:
(WebCore::Internals::serializeObject):
(WebCore):
(WebCore::Internals::deserializeBuffer):
* testing/Internals.h:
(WebCore):
* testing/Internals.idl:
2012-11-16 Andreas Kling <akling@apple.com>
Exploit shared attribute data to avoid parsing identical "style" attributes.
<http://webkit.org/b/101163>
Reviewed by Antti Koivisto.
Track the "inline style dirty" state on ElementAttributeData instead of in a Node flag.
This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
since the state is no longer per-Element.
* css/StyleResolver.cpp:
(WebCore::isCacheableInMatchedPropertiesCache):
Disable the matched properties cache for styles with non-standard writing-mode.
This is necessary because some CSS properties have different meaning depending on context -
properties handled by CSSProperty::resolveDirectionAwareProperty().
Now that multiple elements may have identical inlineStyle() pointers, this is necessary to
avoid mapping StylePropertySets with direction-aware properties to RenderStyles with differing
writing-modes in the matched properties cache.
* dom/Node.h:
* dom/ElementAttributeData.cpp:
(WebCore::ElementAttributeData::ElementAttributeData):
* dom/ElementAttributeData.h:
(WebCore::ElementAttributeData::ElementAttributeData):
(ElementAttributeData):
* dom/Element.h:
(WebCore::Element::updateInvalidAttributes):
* dom/Element.cpp:
(WebCore::Element::getAttribute):
(WebCore::Element::removeAttribute):
* dom/StyledElement.h:
(WebCore::StyledElement::invalidateStyleAttribute):
* dom/StyledElement.cpp:
(WebCore::StyledElement::updateStyleAttribute):
Move "style attribute dirty" flag to ElementAttributeData.
(WebCore::Element::cloneAttributesFromElement):
Remove ugly optimization to avoid reparsing inline style when cloning elements. This now happens
automagically since cloning nodes just refs the original attribute data.
* dom/StyledElement.cpp:
(WebCore::StyledElement::updateStyleAttribute):
(WebCore::StyledElement::setInlineStyleFromString):
(WebCore::StyledElement::styleAttributeChanged):
(WebCore::StyledElement::inlineStyleChanged):
Avoid reparsing the inline style if the element's attribute data is immutable and already has
a parsed inlineStyle(). Split the set-inline-style-from-string code out of styleAttributeChanged()
to make the code more understandable.
2012-11-16 Simon Fraser <simon.fraser@apple.com>
Don't update layer positions on scrolling if we're in the middle of layout
https://bugs.webkit.org/show_bug.cgi?id=102556
Reviewed by Dan Bernstein.
RenderLayer::scrollTo() can be called in the middle of layout. When
that happens we should not waste time updating layer positions,
compositing layers, or widget positions, because we'll do those at the
end of layout anyway.
This prevents us from having inconsistent RenderLayer state, which
hinders future optimizations in this area.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollTo):
2012-11-16 Tony Chang <tony@chromium.org>
Remove ENABLE_CSS_HIERARCHIES since it's no longer in use
https://bugs.webkit.org/show_bug.cgi?id=102554
Reviewed by Andreas Kling.
As mentioned in https://bugs.webkit.org/show_bug.cgi?id=79939#c41 ,
we're going to revist this feature once additional vendor support is
achieved.
No new tests, just removing an unused define.
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.features.am:
2012-11-16 Mark Pilgrim <pilgrim@chromium.org>
[Chromium] Remove cookie-related functions from PlatformSupport
https://bugs.webkit.org/show_bug.cgi?id=99340
Reviewed by Adam Barth.
Move cookie-related functions out of PlatformSupport and implement
new PlatformCookieJar interface via NetworkContext.
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* loader/CookieJar.cpp:
* loader/chromium/CookieJarChromium.cpp: Removed.
* platform/chromium/PlatformSupport.h:
(WebCore):
(PlatformSupport):
* platform/network/NetworkingContext.h:
(WebKit):
(NetworkingContext):
* platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
(WebCore::setCookiesFromDOM):
(WebCore::cookiesForDOM):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::cookiesEnabled):
(WebCore::getRawCookies):
(WebCore::deleteCookie):
(WebCore::getHostnamesWithCookies):
(WebCore::deleteCookiesForHostname):
(WebCore::deleteAllCookies):
2012-11-16 Pablo Flouret <pablof@motorola.com>
[JSC] Don't sanitize window.onerror information on crossorigin-enabled scripts
https://bugs.webkit.org/show_bug.cgi?id=70574
Reviewed by Geoffrey Garen.
For scripts that use CORS (via the crossorigin attribute in this case),
don't sanitize the information passed to the window's onerror handler (i.e.
message, url, and line number). Useful for scripts hosted on CDNs.
Tests: http/tests/security/script-crossorigin-onerror-information.html
http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html
* WebCore.exp.in:
* WebCore.order:
* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
* bindings/js/JSDOMBinding.h:
(WebCore):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::evaluateInWorld):
* bindings/js/ScriptSourceCode.h:
(WebCore::ScriptSourceCode::ScriptSourceCode):
(WebCore::ScriptSourceCode::cachedScript):
(ScriptSourceCode):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
Keep a reference to the cached script in the ScriptSourceCode, so
that it can be passed around and be available when reporting the
exception.
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::sanitizeScriptError):
(WebCore::ScriptExecutionContext::reportException):
(WebCore::ScriptExecutionContext::dispatchErrorEvent):
* dom/ScriptExecutionContext.h:
(WebCore):
(ScriptExecutionContext):
Check if the script passes the access control checks, and if so,
don't sanitize the error information.
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::PreloadTask::processAttributes):
(WebCore::PreloadTask::preload):
(PreloadTask):
(WebCore::PreloadTask::crossOriginModeAllowsCookies):
When preloading script elements, check for the crossorigin attribute
and adjust the request's allowCookies value accordingly. Otherwise
when the script is loaded from the cache later on, the cross origin mode
(anonymous/use-credentials) will be effectively ignored.
2012-11-16 Jon Lee <jonlee@apple.com>
Change visual look of placeholder
https://bugs.webkit.org/show_bug.cgi?id=102149
<rdar://problem/12695566>
Reviewed by Darin Adler.
Move the button to the lower-right corner. Move the theming into
RenderSnapshottedPlugin for now. Eventually we will want to migrate to using the
shadow DOM instead, and the metrics of the button are needed for click passthrough.
* Resources/startButton.png: Added.
* Resources/startButton@2x.png: Added.
* Resources/startButtonPressed.png: Added.
* Resources/startButtonPressed@2x.png: Added.
* WebCore.xcodeproj/project.pbxproj: Add button images.
Maintain variables to track whether the mouse is over the button, and the rect
for the button. If the user clicks in the rect, we render a pressed button.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore): Add named constant for bottom and right padding of the button.
(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
(WebCore::RenderSnapshottedPlugIn::paintReplaced):
(WebCore::startButtonImage): Returns button image.
(WebCore::startButtonPressedImage): Returns pressed button image.
(WebCore::RenderSnapshottedPlugIn::paintButton): Draw the button image in the
lower right hand corner, but only if we are active or hovered.
(WebCore::RenderSnapshottedPlugIn::repaintButton): Stubbed to call repaint().
(WebCore::RenderSnapshottedPlugIn::handleEvent): Repaint the button if we are
hovering over the plugin rect. With a mouse down event, calculate whether the
mouse position is within the button rect.
(WebCore::RenderSnapshottedPlugIn::layout): Cache the rect representing the button
contents.
* rendering/RenderSnapshottedPlugIn.h:
Remove theming function for now.
* rendering/RenderTheme.h:
(RenderTheme):
* rendering/RenderThemeMacShared.h:
* rendering/RenderThemeMacShared.mm:
2012-11-16 Eric Seidel <eric@webkit.org>
Deploy ScriptWrappable to more always-wrapped objects
https://bugs.webkit.org/show_bug.cgi?id=102539
Reviewed by Adam Barth.
Add the ScriptWrappable baseclass to:
CSSStyleDeclaration (anttik tells me these should only be used from JS, even though some old Editing code used to use them)
ClientRect (element.getBoundingClientRects)
Event (Not all events end up wrapped, but any which live past dispatch do)
NodeList (this covers Static and Dynamic node list types, like document.all)
HTMLCollection (separate from NodeList, for things like table.rows)
Storage (for window.storage, always wrapped)
XMLHttpRequest (always wrapped, created from JS)
This should be a small memory savings as the inline pointer is only 4-8 bytes
instead of the hashmap entry which would be 8-16. This may also show up
on benchmarks which repeatedly access these objects (like window.storage).
These were found by adding a couple lines of logging-code to
WebCore::createWrapper when we were in the main world, but took the
HashMap (instead of inline) storage path. I used sort and uniq -c
to find the most-frequently wrapped objects (while surfing
a few common sites) and came up with this list. There are still a few
more complicated objects (like CSSStyleDeclaration) which may benifit
from inline-wrapper-access and will be covered in a later patch.
* css/CSSStyleDeclaration.h:
* dom/ClientRect.h:
* dom/Event.h:
* dom/NodeList.h:
* html/HTMLCollection.h:
* storage/Storage.h:
* xml/XMLHttpRequest.h:
2012-11-16 Jon Lee <jonlee@apple.com>
Simulated events instances do not all have the same underlying event
https://bugs.webkit.org/show_bug.cgi?id=102468
<rdar://problem/12716331>
Reviewed by Alexey Proskuryakov.
The PassRefPtr with the underlying event is included as an argument for the mouse
down, up, and click events. But the PassRefPtr loses its underlying pointer after
the first simulated mouse down event because it gets assigned to that event's
private m_underlyingEvent variable. We therefore send NULL to the other events.
The fix is for this and related functions to pass the raw pointer.
A layout test is not possible to put together because the call sites that use simulated
events with an underlying event do not send mouse events, and those that send mouse
events have a NULL underlying event.
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchSimulatedClick): Require passing in the raw pointer.
* dom/EventDispatcher.h:
* dom/Node.cpp:
(WebCore::Node::dispatchSimulatedClick): Ditto.
* dom/Node.h:
2012-11-16 Patrick Gansterer <paroga@webkit.org>
Build fix for WinCE after r134936.
* platform/network/win/CookieJarWin.cpp:
(WebCore::cookieRequestHeaderFieldValue):
2012-11-16 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, rolling out r134986.
http://trac.webkit.org/changeset/134986
https://bugs.webkit.org/show_bug.cgi?id=102110
Triggered ASSERT in fast/frames/seamless/seamless-inherited-
origin.html.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
(WebCore::collectCSSOMWrappers):
* css/StyleResolver.h:
(StyleResolver):
* dom/Document.cpp:
(WebCore::Document::setCompatibilityMode):
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
(WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
(WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
(WebCore):
(WebCore::DocumentStyleSheetCollection::clearPageGroupUserSheets):
(WebCore::DocumentStyleSheetCollection::updatePageGroupUserSheets):
(WebCore::DocumentStyleSheetCollection::addUserSheet):
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
(WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
* dom/DocumentStyleSheetCollection.h:
(DocumentStyleSheetCollection):
(WebCore::DocumentStyleSheetCollection::documentUserSheets):
* page/PageGroup.cpp:
(WebCore::PageGroup::addUserStyleSheetToWorld):
(WebCore::PageGroup::removeUserStyleSheetFromWorld):
(WebCore::PageGroup::removeUserStyleSheetsFromWorld):
(WebCore::PageGroup::removeAllUserContent):
(WebCore::PageGroup::resetUserStyleCacheInAllFrames):
* page/PageGroup.h:
(PageGroup):
2012-11-16 Michael Pruett <michael@68k.org>
IndexedDB: Propagate DOMRequestState to IndexedDB binding utility functions
https://bugs.webkit.org/show_bug.cgi?id=102430
Reviewed by Adam Barth.
DOMRequestState is currently propagated to some but not all of
the IndexedDB binding utility functions. In order to implement
these functions for JSC, this state must be propagated to all
of the utility functions.
Tests: storage/indexeddb/*
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::setValueReady):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::generateIndexKeysForValue):
(WebCore::IDBObjectStore::put):
(WebCore):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess):
(WebCore::IDBRequest::dispatchEvent):
* Modules/indexeddb/IDBRequest.h:
(WebCore::IDBRequest::requestState):
(IDBRequest):
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromScriptValueAndKeyPath):
(WebCore::serializeIDBValue):
(WebCore::injectIDBKeyIntoScriptValue):
* bindings/v8/IDBBindingUtilities.h:
(WebCore):
2012-11-16 Byungwoo Lee <bw80.lee@samsung.com>
Rebaselined run-bindings-tests.
https://bugs.webkit.org/show_bug.cgi?id=102523
Reviewed by Dimitri Glazkov.
Expected results need to be updated after r134931
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
(WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
(WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):
2012-11-16 Pratik Solanki <psolanki@apple.com>
For single element arrays use the pointer into the CFDataRef instead of copying data
https://bugs.webkit.org/show_bug.cgi?id=102306
<rdar://problem/12267471>
Reviewed by Alexey Proskuryakov.
We generally copy the data received from CFNetwork into our own buffers. But if the
CFArrayRef has exactly one CFDataRef inside it, then we can just hold on to the CFDataRef
and access its memory directly and avoid making a copy.
This also moves the creation of PurgeableBuffer from CachedResource to SharedBuffer.
SharedBuffer::createPurgeableBuffer() will avoid creating PurgeableBuffer when the
SharedBuffer is backed by a NSData/CFDataRef and when we want to optimize and directly use
the memory in the data array.
No new tests because no change in functionality.
* loader/ResourceBuffer.cpp:
(WebCore::ResourceBuffer::createPurgeableBuffer): Added.
* loader/ResourceBuffer.h:
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::makePurgeable):
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::createPurgeableBuffer): Added.
(WebCore::SharedBuffer::data):
* platform/SharedBuffer.h:
* platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::platformData): Use reinterpret_cast instead of C-style cast.
(WebCore::SharedBuffer::maybeTransferPlatformData): Use reinterpret_cast instead of C-style cast.
(WebCore::SharedBuffer::singleDataArrayBuffer): Added.
2012-11-16 Antti Koivisto <antti@apple.com>
REGRESSION(r129644): User StyleSheet not applying
https://bugs.webkit.org/show_bug.cgi?id=102110
Reviewed by Andreas Kling.
Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
It also generally cleans up the code around injected and user stylesheets.
Tests: userscripts/user-script-and-stylesheet.html
userscripts/user-stylesheet-invalidate.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::collectRulesFromUserStyleSheets):
(WebCore::collectCSSOMWrappers):
* css/StyleResolver.h:
(StyleResolver):
* dom/Document.cpp:
(WebCore::Document::setCompatibilityMode):
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
(WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
(WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
(WebCore):
(WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
(WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
(WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
(WebCore::DocumentStyleSheetCollection::addUserSheet):
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
(WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
* dom/DocumentStyleSheetCollection.h:
(WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
(DocumentStyleSheetCollection):
* page/PageGroup.cpp:
(WebCore::PageGroup::addUserStyleSheetToWorld):
(WebCore::PageGroup::removeUserStyleSheetFromWorld):
(WebCore::PageGroup::removeUserStyleSheetsFromWorld):
(WebCore::PageGroup::removeAllUserContent):
(WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
* page/PageGroup.h:
(PageGroup):
2012-11-16 Andreas Kling <akling@apple.com>
StyleResolver: Only input elements need equal "readonly" attribute for style sharing.
<http://webkit.org/b/102536>
Reviewed by Antti Koivisto.
Move the comparison of the "readonly" attribute into canShareStyleWithControl() since it's only
relevant for sharing style between <input> elements.
Also skip attribute comparisons for form control elements that share the same ElementAttributeData.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithControl):
(WebCore::haveIdenticalStyleAffectingAttributes):
2012-11-16 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134867.
http://trac.webkit.org/changeset/134867
https://bugs.webkit.org/show_bug.cgi?id=102544
Broke security fuzzier test (heap-buffer-overflow) (Requested
by bfulgham on #webkit).
* platform/audio/Biquad.cpp:
(WebCore::Biquad::process):
2012-11-16 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Update RTCPeerConnection states to match the latest editors draft
https://bugs.webkit.org/show_bug.cgi?id=102382
Reviewed by Adam Barth.
Updating readyState & iceState, and adding iceGatheringState.
Also safeguarding the event timer callback.
Patch covered by existing tests.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::createOffer):
(WebCore::RTCPeerConnection::createAnswer):
(WebCore::RTCPeerConnection::setLocalDescription):
(WebCore::RTCPeerConnection::localDescription):
(WebCore::RTCPeerConnection::setRemoteDescription):
(WebCore::RTCPeerConnection::remoteDescription):
(WebCore::RTCPeerConnection::updateIce):
(WebCore::RTCPeerConnection::addIceCandidate):
(WebCore::RTCPeerConnection::readyState):
(WebCore::RTCPeerConnection::iceGatheringState):
(WebCore):
(WebCore::RTCPeerConnection::iceState):
(WebCore::RTCPeerConnection::addStream):
(WebCore::RTCPeerConnection::close):
(WebCore::RTCPeerConnection::didChangeIceGatheringState):
(WebCore::RTCPeerConnection::stop):
(WebCore::RTCPeerConnection::changeReadyState):
(WebCore::RTCPeerConnection::scheduledEventTimerFired):
* Modules/mediastream/RTCPeerConnection.h:
(RTCPeerConnection):
* Modules/mediastream/RTCPeerConnection.idl:
* dom/EventNames.h:
(WebCore):
* platform/mediastream/RTCPeerConnectionHandlerClient.h:
(RTCPeerConnectionHandlerClient):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
(WebCore):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
(RTCPeerConnectionHandlerChromium):
2012-11-16 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, rolling out r134973.
http://trac.webkit.org/changeset/134973
https://bugs.webkit.org/show_bug.cgi?id=99340
Broke compile on at least Mac and Linux.
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* loader/CookieJar.cpp:
* loader/chromium/CookieJarChromium.cpp: Renamed from Source/WebKit/chromium/src/FrameNetworkingContextImpl.cpp.
(WebCore):
(WebCore::setCookies):
(WebCore::cookies):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::cookiesEnabled):
(WebCore::getRawCookies):
(WebCore::deleteCookie):
(WebCore::getHostnamesWithCookies):
(WebCore::deleteCookiesForHostname):
(WebCore::deleteAllCookies):
* platform/chromium/PlatformSupport.h:
(WebCore):
(PlatformSupport):
* platform/network/NetworkingContext.h:
* platform/network/chromium/CookieJarChromium.cpp: Removed.
2012-11-16 Martin Robinson <mrobinson@igalia.com>
[GTK] [WebKit2] Move GtkAuthenticationDialog to the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=101843
Reviewed by Gustavo Noronha Silva.
Make GtkAuthenticationDialog more general, so that it can be subclassed in
WebKit2. We cannot use the WebCore authentication-related classes directly there.
No new tests. This patch does not change behavior.
* platform/gtk/GtkAuthenticationDialog.cpp:
(WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog): Remove an unused include and reorder
some field initializers.
(WebCore::GtkAuthenticationDialog::authenticate): Now handle both the okay and cancel case here. This
makes it simpler to subclass.
(WebCore::GtkAuthenticationDialog::authenticationDialogResponseCallback): Handle fetching the username
and password here, so that it can be shared with subclasses.
* platform/gtk/GtkAuthenticationDialog.h: Make some methods virtual and protected so they can be
subclasses.
2012-11-16 Mark Pilgrim <pilgrim@chromium.org>
[Chromium] Remove cookie-related functions from PlatformSupport
https://bugs.webkit.org/show_bug.cgi?id=99340
Reviewed by Adam Barth.
Move cookie-related functions out of PlatformSupport and implement
new PlatformCookieJar interface via NetworkContext.
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* loader/CookieJar.cpp:
* loader/chromium/CookieJarChromium.cpp: Removed.
* platform/chromium/PlatformSupport.h:
(WebCore):
(PlatformSupport):
* platform/network/NetworkingContext.h:
(WebKit):
(NetworkingContext):
* platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
(WebCore::setCookiesFromDOM):
(WebCore::cookiesForDOM):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::cookiesEnabled):
(WebCore::getRawCookies):
(WebCore::deleteCookie):
(WebCore::getHostnamesWithCookies):
(WebCore::deleteCookiesForHostname):
(WebCore::deleteAllCookies):
2012-11-16 Byungwoo Lee <bw80.lee@samsung.com>
Fix assertion bug of build fix r134961
https://bugs.webkit.org/show_bug.cgi?id=102533
Reviewed by Martin Robinson.
Assertion condition should be '!d->m_currentWebChallenge.isNull()'
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
2012-11-16 Tommy Widenflycht <tommyw@google.com>
[chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
https://bugs.webkit.org/show_bug.cgi?id=102386
Reviewed by Adam Barth.
Existing tests expanded to cover patch.
* platform/mediastream/RTCDataChannelDescriptor.cpp:
(WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
(WebCore::RTCDataChannelDescriptor::readyStateChanged):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
(WebCore):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
(WebKit):
(RTCPeerConnectionHandlerChromium):
2012-11-16 Scott Violet <sky@chromium.org>
[chromium] Copy linux theme related files to default
https://bugs.webkit.org/show_bug.cgi?id=102403
Reviewed by Tony Chang
Transitional patch that copies linux WebThemeEngine to default directory.
No new tests, refactoring only.
* WebCore.gyp/WebCore.gyp: Update compile rules when use_default_render_theme is set.
* WebCore.gypi: Adds new files.
* platform/chromium/PlatformSupport.h:
* platform/chromium/PlatformThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.cpp.
* platform/chromium/PlatformThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.h.
* platform/chromium/ScrollbarThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp.
* platform/chromium/ScrollbarThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.h.
* rendering/RenderThemeChromiumDefault.cpp: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.cpp.
* rendering/RenderThemeChromiumDefault.h: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.h.
2012-11-16 Alec Flett <alecflett@chromium.org>
IndexedDB: add missing 'explicit' and fix backing store release
https://bugs.webkit.org/show_bug.cgi?id=102450
Reviewed by Tony Chang.
A inconsequential regression was introduced in http://trac.webkit.org/changeset/134129
which resulted in objects sticking around a bit longer than
expected. This makes sure the LevelDBTransaction is released
at the moment of commit/rollback rather than when IDBTransactionBackendImpl
is destroyed.
No new tests, this is just internal state that will affect
some future refactoring.
* Modules/indexeddb/IDBBackingStore.h:
(Cursor):
(Transaction):
(WebCore::IDBBackingStore::Transaction::reset):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::abort):
(WebCore::IDBTransactionBackendImpl::commit):
2012-11-16 Dimitri Glazkov <dglazkov@chromium.org>
[Chromium] One last tweak to WebCore.gypi to make Win build not sad.
* WebCore.gypi: Removed one last mention of accessibility/gtk file.
2012-11-16 Robert Flack <flackr@chromium.org>
Handle gesture events on scrollbars.
https://bugs.webkit.org/show_bug.cgi?id=101516
Reviewed by Antonio Gomes.
Adds a gesture event handler to scrollbars and sends gestures beginning
over a scrollbar to this handler to allow touch scrolling scrollbars.
Test: fast/events/touch/gesture/gesture-scrollbar.html
* page/EventHandler.cpp:
(WebCore::EventHandler::clear):
(WebCore::EventHandler::handleGestureEvent):
(WebCore::EventHandler::isScrollbarHandlingGestures):
(WebCore):
* page/EventHandler.h:
(EventHandler):
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::Scrollbar):
(WebCore):
(WebCore::Scrollbar::gestureEvent):
(WebCore::Scrollbar::mouseMoved):
(WebCore::Scrollbar::mouseUp):
(WebCore::Scrollbar::mouseDown):
* platform/Scrollbar.h:
(WebCore):
(Scrollbar):
* platform/ScrollbarTheme.h:
(WebCore::ScrollbarTheme::hitTest):
* platform/ScrollbarThemeComposite.cpp:
(WebCore::ScrollbarThemeComposite::hitTest):
* platform/ScrollbarThemeComposite.h:
(ScrollbarThemeComposite):
* platform/qt/ScrollbarThemeQStyle.cpp:
(WebCore::ScrollbarThemeQStyle::hitTest):
* platform/qt/ScrollbarThemeQStyle.h:
(ScrollbarThemeQStyle):
2012-11-16 Xianzhu Wang <wangxianzhu@chromium.org>
[Chromium-Android] Stack overflow in MediaControlsChromiumAndroid.cpp
https://bugs.webkit.org/show_bug.cgi?id=102444
Reviewed by Adam Barth.
No new tests. Have been covered by many existing layout tests.
* html/shadow/MediaControlsChromiumAndroid.cpp:
(WebCore::MediaControls::create): Calls createControls instead of itself.
2012-11-16 Andreas Kling <akling@apple.com>
StyleResolver: Optimize sharing candidate evaluation for elements with shared attribute data.
<http://webkit.org/b/102507>
Reviewed by Antti Koivisto.
When evaluating two elements as potential style sharing candidate, we have a whole bunch of code
comparing the various attributes that would prevent sharing.
If the two elements both share the same ElementAttributeData, we can skip all those checks
since they are guaranteed to have equal attributes.
Cuts the time spent in canShareStyleWithElement() by 25% on the HTML5 spec at <http://whatwg.org/c>.
* css/StyleResolver.cpp:
(WebCore::haveIdenticalStyleAffectingAttributes):
(WebCore::StyleResolver::canShareStyleWithElement):
2012-11-16 Byungwoo Lee <bw80.lee@samsung.com>
[EFL][GTK] Build fix after r134955
https://bugs.webkit.org/show_bug.cgi?id=102527
Reviewed by Martin Robinson.
Fix the EFL,GTK debug bulid fails after r134955.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
2012-11-15 Alexey Proskuryakov <ap@apple.com>
Private Browsing is a per-page setting that sets a global value
https://bugs.webkit.org/show_bug.cgi?id=67870
Reviewed by Sam Weinig.
Make ResourceHandle{Mac,CFNet} use context to access storage session.
* WebCore.exp.in: We track less session state in WebCore now, so we need fewer
exports.
* loader/FrameNetworkingContext.h: Added an OVERRIDE.
* page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled): WebCore
no longer keeps track of a globally enabled private CFNetwork storage session.
* platform/CookiesStrategy.h: Added defaultCookieStorage(). Some cookie jar methods
don't have a NetworkingContext pointer, and have to use whatever a client expects
them to do. Perhaps we should move those methods away from WebCore eventually.
* platform/network/NetworkingContext.h: Added storageSession().
* platform/network/ResourceHandle.h: Removed sttaic methods for dealing with global
sessions.
* platform/network/ResourceHandleInternal.h: Added m_storageSession. We need to
remember it post-creation to do things in willSendRequest. Alternatively, we could
keep a reference to NetworkingContext itself.
* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::setCookiesFromDOM): currentCFHTTPCookieStorage now needs a context,
there is no globally current one any more. Also, we don't really expect cookie
stirage to be 0 when not using NSURLConnection.
(WebCore::cookiesForDOM): Ditto.
(WebCore::cookieRequestHeaderFieldValue): Ditto.
(WebCore::cookiesEnabled): Ditto.
(WebCore::getRawCookies): Ditto.
(WebCore::deleteCookie): Ditto.
(WebCore::getHostnamesWithCookies): Ditto.
(WebCore::deleteCookiesForHostname): Ditto.
(WebCore::deleteAllCookies): Ditto.
* platform/network/cf/CookieStorageCFNet.cpp:
(WebCore::currentCFHTTPCookieStorage): Use a context.
(WebCore::defaultCFHTTPCookieStorage): Except for Windows-only override session,
this is implemented in a strategy.
(WebCore::overridenCookieStorage): Exposed the override for WebKit use on Windows.
* platform/network/cf/CookieStorageCFNet.h: Ditto.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::willSendRequest): Use storage session from the context, not global one.
(WebCore::makeFinalRequest): Merged this into the only remaining caller. This
function didn't really make any sense on its own.
(WebCore::shouldRelaxThirdPartyCookiePolicy): Factored out of createCFURLConnection
to match Mac.
(WebCore::ResourceHandle::createCFURLConnection): While merging makeFinalRequest()
in, removed some seemingly nonsensical code that was getting and immediately re-applying
cookie storage accept policy.
(WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
(WebCore::ResourceHandle::willSendRequest): Apply the stored session, not global one.
(WebCore::ResourceHandle::storageSession): An accessor for static methods that cannot
access "d".
(WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession() for use in willSendRequest.
(WebCore::ResourceHandle::willLoadFromCache): Don't call makeFinalRequest here.
It didn't match Mac, and nothing in makeFinalRequest should have affected the result.
* platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest):
This function used to apply current storage session to every request for no apparent
reason.
* platform/network/mac/CookieJarMac.mm:
(WebCore::cookiesForDOM): Changed to pass context to currentCFHTTPCookieStorage.
(WebCore::cookieRequestHeaderFieldValue): Ditto.
(WebCore::setCookiesFromDOM): Ditto.
(WebCore::cookiesEnabled): Ditto.
(WebCore::getRawCookies): Ditto.
(WebCore::deleteCookie): Ditto.
(WebCore::getHostnamesWithCookies): Ditto.
(WebCore::deleteCookiesForHostname): Ditto.
(WebCore::deleteAllCookies): Ditto.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::shouldRelaxThirdPartyCookiePolicy): There was no need to special case
null currentCFHTTPCookieStorage, WKSI handles that internally. Added a context
argument, so that the function can access current session.
(WebCore::ResourceHandle::createNSURLConnection): Updated for other code changes.
(WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
(WebCore::ResourceHandle::willLoadFromCache): Style fix.
(WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession()
for use in willSendRequest.
(WebCore::ResourceHandle::willSendRequest): Use stored session, not global one.
2012-11-16 Dimitri Glazkov <dglazkov@chromium.org>
[Chromium] Land a proper fix for r134939.
* WebCore.gyp/WebCore.gyp: Added exclusion for "atk".
* WebCore.gypi: Put the accessibility/atk directory back into WebCore.gypi.
2012-11-16 Dimitri Glazkov <dglazkov@chromium.org>
[Chromium] Just yank the whole accessibility/atk dir out of WebCore.gypi.
2012-11-16 Dimitri Glazkov <dglazkov@chromium.org>
[Chromium] Updated WebCore.gypi after r134939.
* WebCore.gypi: Renamed acessibility/gtk to accessibility/atk.
2012-11-16 Martin Robinson <mrobinson@igalia.com>
[GTK] Move CredentialBackingStore usage from GtkAuthenticationDialog to ResourceHandleSoup
https://bugs.webkit.org/show_bug.cgi?id=101840
Reviewed by Gustavo Noronha Silva.
Make ResourceHandleSoup aware of per-session CredentialStorage and persistent CredentialStorage.
Persistent credential storage interaction is moved from GtkAuthenticationDialog, so that it can
be used whether or not GtkAuthenticationDialog is used or not. We try to properly handle redirects
in the manner that the CFNet backend does.
No new tests. There are tests for this behavior, but they cannot be activated until we finish
plumbing this through to the API layer. Once that patch lands, the tests will be turned on.
* platform/gtk/GtkAuthenticationDialog.cpp: No longer store credentials into the persistent
storage manually, instead rely on ResourceHandleSoup. Also, we no longer get proposed credentials
from the persistent storage here as well. They are pre-loaded by the ResourceHanndle.
* platform/gtk/GtkAuthenticationDialog.h: Remove callbacks and members associated with saving
credentials to the persistent credential store.
* platform/network/ResourceHandle.h:
(ResourceHandle): Add a method which is used to continue asynchronously after looking for
proposed credentials in the persistent credential store.
* platform/network/ResourceHandleInternal.h: Add a member which tracks persistent credentials to be added once we know
an authentication succeeded.
* platform/network/gtk/CredentialBackingStore.cpp:
(CredentialForChallengeAsyncReadyCallbackData): Added this data structure used for asynchronous access
of stored credentials.
(WebCore::credentialForChallengeAsyncReadyCallback): Ditto for this callback.
(WebCore::CredentialBackingStore::credentialForChallenge): Make this method asynchronous.
* platform/network/gtk/CredentialBackingStore.h:
(CredentialBackingStore): Update method signatures for for making credentialForChallenge asynchronous.
* platform/network/soup/AuthenticationChallenge.h:
(WebCore::AuthenticationChallenge::setProposedCredential): Added a setter so that ResourceHandleSoup
can set proposed credentials from the persistent credential store.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::gotHeadersCallback): For GTK+ save any pending credential in the persistent credential storage
if the authentication succeeded.
(WebCore::applyAuthenticationToRequest): Added this method which generically embeds stored credentials
in the request URI. This is the method that Soup uses to override any soup-stored session credential.
(WebCore::restartedCallback): Strip credentials for requests that span a security origin. Handle
authenticating requests from the session store.
(WebCore::createSoupRequestAndMessageForHandle): Make the local request reference mutable.
(WebCore::ResourceHandle::start): Remove some code which is now part of applyAuthenticationToRequest.
Call applyAuthenticationToRequest and clear the user and password members like the CFNet backend does.
(WebCore::getCredentialFromPersistentStoreCallback): Added this callback for getting persistently stored credentials.
(WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge): Split out didReceiveAuthenticationChallenge
into this asynchronous bit.
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge): For GTK+ continue handling this situation after
first looking in the persistent credential store.
(WebCore::ResourceHandle::receivedCredential): Store session credentials in the session storage, which is
at the moment a redundant version of the Soup session storage and also prepare any persistent credentials
for storage later (see gotHeadersCallback).
2012-11-16 Erik Arvidsson <arv@chromium.org>
Update DOMException name: TypeMismatchError
https://bugs.webkit.org/show_bug.cgi?id=102418
Reviewed by Kentaro Hara.
Patch 17 of 25 to update DOMException name to match the spec and Firefox.
Updated existing tests.
* dom/DOMCoreException.cpp:
(WebCore):
* dom/ExceptionCode.h:
2012-11-16 Balazs Kelemen <kbalazs@webkit.org>
Coordinated Graphics: support the "freeze animations" API
https://bugs.webkit.org/show_bug.cgi?id=100703
Reviewed by Noam Rosenthal.
Typo fix after previous patch.
No new tests, it's just a typo that only takes effect in the browser.
* platform/graphics/GraphicsLayerAnimation.cpp:
(WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
Initialize members.
2012-11-16 Dan Carney <dcarney@google.com>
add 7 bit strings capabilities to the v8 binding layer
https://bugs.webkit.org/show_bug.cgi?id=91850
Reviewed by Adam Barth.
This change enables the v8 binding layer to make use of webkit's
8 bit string capabilities. Using 8 bit strings leads to certain
benchmark performance improvemnts as can be seen in
https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
No new tests. Test coverage already extensive.
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::visitExternalStrings):
* bindings/v8/V8StringResource.cpp:
(StringTraits):
(WebCore::false):
(WebCore):
(WebCore::true):
(WebCore::v8StringToWebCoreString):
* bindings/v8/V8ValueCache.cpp:
(WebCore::makeExternalString):
(WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
(WebCore):
(WebCore::WebCoreStringResourceBase::visitStrings):
* bindings/v8/V8ValueCache.h:
(WebCoreStringResourceBase):
(WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
(WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
(WebCore::WebCoreStringResourceBase::atomicString):
(WebCore::WebCoreStringResourceBase::memoryConsumption):
(WebCoreStringResource16):
(WebCore::WebCoreStringResource16::WebCoreStringResource16):
(WebCore):
(WebCoreStringResource8):
(WebCore::WebCoreStringResource8::WebCoreStringResource8):
2012-11-16 Erik Arvidsson <arv@chromium.org>
Update DOMException name: InvalidAccessError
https://bugs.webkit.org/show_bug.cgi?id=102400
Reviewed by Kentaro Hara.
Patch 15 of 25 to update DOMException name to match the spec and Firefox.
Updated existing tests.
* dom/DOMCoreException.cpp:
2012-11-16 Alexandru Chiculita <achicu@adobe.com>
[Texmap][CSS Shaders] Make the CustomFilterValidatedProgram maintain the platform compiled program
https://bugs.webkit.org/show_bug.cgi?id=102414
Reviewed by Noam Rosenthal.
Added WebCore classes needed for the WebKit2 implementation of Texture Mapper to keep a reference to the
platform compiled custom filter. It is just used to maintain the life-time of the objects. WebKit2 injects a
client in TextureMapperPlatformCompiledProgram and receives a callback when the custom filter program is not
used to render any layer on the page.
Note that CustomFilterValidatedProgram are reused across multiple elements of the same page. Also, the instances
are reused across frames, so animations should reuse the same pre-validated program. In this case, the mechanism is
extended and reused in the platform compositor.
No new tests, existing tests for CSS Custom Filters already cover this path.
* CMakeLists.txt:
* GNUmakefile.am:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.pri:
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore):
* platform/graphics/filters/CustomFilterValidatedProgram.h:
(WebCore):
(CustomFilterValidatedProgram):
* platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp: Added.
(WebCore):
(WebCore::CustomFilterValidatedProgram::platformCompiledProgram): Platform implementation for creating and deleting the reference.
(WebCore::CustomFilterValidatedProgram::platformInit):
(WebCore::CustomFilterValidatedProgram::platformDestroy):
* platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h: Added.
(WebCore):
(TextureMapperPlatformCompiledProgramClient):
(WebCore::TextureMapperPlatformCompiledProgramClient::ref):
(WebCore::TextureMapperPlatformCompiledProgramClient::deref):
(TextureMapperPlatformCompiledProgram):
Stores a link to a TextureMapperPlatformCompiledProgramClient. It's main purpose is to call unref on the client when
the shader is not needed anymore. WebKit2 can use that to delete the corresponding shader from the compositor side.
(WebCore::TextureMapperPlatformCompiledProgram::create):
(WebCore::TextureMapperPlatformCompiledProgram::setClient): Used by WebKit2 to inject the platform client.
(WebCore::TextureMapperPlatformCompiledProgram::client):
(WebCore::TextureMapperPlatformCompiledProgram::TextureMapperPlatformCompiledProgram):
2012-11-16 Andreas Kling <akling@apple.com>
Short-circuit Element::hasEquivalentAttributes() if elements share attribute data.
<http://webkit.org/b/102498>
Reviewed by Antti Koivisto.
Add a fast path to hasEquivalentAttributes() that checks if both elements are using
the same ElementAttributeData.
* dom/Element.cpp:
(WebCore::Element::hasEquivalentAttributes):
2012-11-16 Zeno Albisser <zeno@webkit.org>
[Qt] Adding a null pointer check for currentContext to GraphicsContext3DQt.
https://bugs.webkit.org/show_bug.cgi?id=102360
QOpenGLContext::currentContext() will return null, in case there is
no current context. Therefore currentContext must be null-checked
before it can be reused.
Making a context current on a null-surface on the other hand is
perfectly possible.
Reviewed by Kenneth Rohde Christiansen.
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
2012-11-16 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Workaround to show shortcuts for panels that hasn't been loaded.
https://bugs.webkit.org/show_bug.cgi?id=102488
Reviewed by Vsevolod Vlasov.
Panels are lazily loaded / instantiated.
Panel constructors register keyboard shortcuts.
When user open shortcuts screen all panel should be loaded.
Otherwise some shortcuts will be missing.
* inspector/front-end/ShortcutsScreen.js: Added callback invokation.
* inspector/front-end/inspector.js:
Provided callback that loads all panels.
2012-11-16 Kentaro Hara <haraken@chromium.org>
[V8] Remove IsSubType() from CodeGeneratorV8.pm
https://bugs.webkit.org/show_bug.cgi?id=102348
Reviewed by Adam Barth.
CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
No tests. No change in behavior.
* bindings/scripts/CodeGenerator.pm:
(IsSubType):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GetInternalFields):
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateFunctionCallback):
(GenerateImplementationIndexer):
(GenerateToV8Converters):
2012-11-16 Mario Sanchez Prada <mario@webkit.org>
[EFL] Share WebKit-Gtk's Accessibility implementation with others WebKit ports.
https://bugs.webkit.org/show_bug.cgi?id=99578
Reviewed by Martin Robinson.
Renamed WebCore/accessibility/gtk to WebCore/accessibility/atk.
* GNUmakefile.am:
* GNUmakefile.list.am:
* accessibility/atk/AXObjectCacheAtk.cpp: Renamed from
Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp.
* accessibility/atk/AccessibilityObjectAtk.cpp: Renamed from
Source/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp.
* accessibility/atk/WebKitAccessibleHyperlink.cpp: Renamed from
Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp.
* accessibility/atk/WebKitAccessibleHyperlink.h: Renamed from
Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.h.
* accessibility/atk/WebKitAccessibleInterfaceAction.cpp: Renamed
from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.cpp.
* accessibility/atk/WebKitAccessibleInterfaceAction.h: Renamed
from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.h.
* accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.cpp.
* accessibility/atk/WebKitAccessibleInterfaceComponent.h: Renamed
from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.h.
* accessibility/atk/WebKitAccessibleInterfaceDocument.cpp: Renamed
from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.cpp.
* accessibility/atk/WebKitAccessibleInterfaceDocument.h: Renamed
from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.h.
* accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp.
* accessibility/atk/WebKitAccessibleInterfaceEditableText.h:
Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.h.
* accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.cpp.
* accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h:
Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.h.
* accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.cpp.
* accessibility/atk/WebKitAccessibleInterfaceHypertext.h: Renamed
from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.h.
* accessibility/atk/WebKitAccessibleInterfaceImage.cpp: Renamed
from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.cpp.
* accessibility/atk/WebKitAccessibleInterfaceImage.h: Renamed from
Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.h.
* accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp.
* accessibility/atk/WebKitAccessibleInterfaceSelection.h: Renamed
from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.h.
* accessibility/atk/WebKitAccessibleInterfaceTable.cpp: Renamed
from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.cpp.
* accessibility/atk/WebKitAccessibleInterfaceTable.h: Renamed from
Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.h.
* accessibility/atk/WebKitAccessibleInterfaceText.cpp: Renamed
from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.cpp.
* accessibility/atk/WebKitAccessibleInterfaceText.h: Renamed from
Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.h.
* accessibility/atk/WebKitAccessibleInterfaceValue.cpp: Renamed
from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.cpp.
* accessibility/atk/WebKitAccessibleInterfaceValue.h: Renamed from
Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.h.
* accessibility/atk/WebKitAccessibleUtil.cpp: Renamed from
Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.cpp.
* accessibility/atk/WebKitAccessibleUtil.h: Renamed from
Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.h.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp: Renamed from
Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp.
* accessibility/atk/WebKitAccessibleWrapperAtk.h: Renamed from
Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.h.
2012-11-16 Shinya Kawanaka <shinyak@chromium.org>
Changing pseudoClass (:indeterminate) should cause distribution
https://bugs.webkit.org/show_bug.cgi?id=101903
Reviewed by Dimitri Glazkov.
<progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::setIndeterminate):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::didElementStateChange):
2012-11-16 Alexis Menard <alexis@webkit.org>
Factorize the creation of primitive values with a pair into a function.
https://bugs.webkit.org/show_bug.cgi?id=102485
Reviewed by Antti Koivisto.
The pattern is already existing in various call sites inside CSSParser
and more will be added in the future (see bug 102104).
No new tests : It's a refactoring only, the tests should cover it.
* css/CSSParser.cpp:
(WebCore):
(WebCore::createPrimitiveValuePair):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFillSize):
(WebCore::CSSParser::parseBorderImageRepeat):
(WebCore::CSSParser::parseBorderRadius):
(WebCore::CSSParser::parseCounter):
2012-11-16 Mark Pilgrim <pilgrim@chromium.org>
Expand PlatformCookieJar interface to allow for other ports
https://bugs.webkit.org/show_bug.cgi?id=102456
Reviewed by Adam Barth.
Add firstParty and cookieURL arguments to several functions to
prepare for integrating Chromium port into new PlatformCookieJar
interface.
* loader/CookieJar.cpp:
(WebCore::cookiesEnabled):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::getRawCookies):
* platform/network/PlatformCookieJar.h:
(WebCore):
* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::cookiesEnabled):
(WebCore::getRawCookies):
* platform/network/curl/CookieJarCurl.cpp:
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::cookiesEnabled):
(WebCore::getRawCookies):
* platform/network/mac/CookieJarMac.mm:
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::cookiesEnabled):
(WebCore::getRawCookies):
* platform/network/qt/CookieJarQt.cpp:
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::cookiesEnabled):
(WebCore::getRawCookies):
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::cookiesEnabled):
(WebCore::getRawCookies):
* platform/network/win/CookieJarWin.cpp:
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::cookiesEnabled):
(WebCore::getRawCookies):
2012-11-16 Julien Chaffraix <jchaffraix@webkit.org>
RenderGrid should have a function to resolve grid position
https://bugs.webkit.org/show_bug.cgi?id=102441
Reviewed by Ojan Vafai.
The code was doing this conversion implicitly inside RenderGrid::findChildLogicalPosition.
Also note that we also provided a fallback by returning LayoutPoint() (ie the (0, 0) position
on the grid) if we couldn't handle the value. The explicit conversion is needed in order to
support render areas and add a proper grid model to RenderGrid.
No expected change in behavior.
* rendering/RenderGrid.h:
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::resolveGridPosition):
Added this new function to handle the conversion. We re-use Length but should never see
a lot of the <length> values so I added some ASSERTs to enforce and catch that.
(WebCore::RenderGrid::findChildLogicalPosition):
Simplified the function now that it just use resolveGridPosition.
2012-11-16 Ulan Degenbaev <ulan@chromium.org>
[V8] Increment the amount of externally allocated memory for the receiving V8 isolate when transferring ArrayBuffer
https://bugs.webkit.org/show_bug.cgi?id=94463
Reviewed by Kentaro Hara.
Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer is deserialized and transferred.
Test: ManualTests/typed-array-memory.html
* bindings/v8/SerializedScriptValue.cpp:
2012-11-16 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134694.
http://trac.webkit.org/changeset/134694
https://bugs.webkit.org/show_bug.cgi?id=102481
it made API test crash on EFL port (Requested by gyuyoung on
#webkit).
* platform/efl/RenderThemeEfl.cpp:
(WebCore::fillColorsFromEdjeClass):
(WebCore::RenderThemeEfl::setColorFromThemeClass):
(WebCore::RenderThemeEfl::loadTheme):
(WebCore::RenderThemeEfl::RenderThemeEfl):
* platform/efl/RenderThemeEfl.h:
(RenderThemeEfl):
2012-11-16 Mike West <mkwst@chromium.org>
Web Inspector: Move call stack generation out of bindings.
https://bugs.webkit.org/show_bug.cgi?id=101331
Reviewed by Yury Semikhatsky.
Currently, we generate stack traces for console messages at each call
site. Bug 100650 has the end goal of moving all stack trace generation
inside of the Inspector in order to ensure that we never send a console
message without a stack trace if it's possible to generate one. This
also ensures that we never generate unused call stacks.
This patch is the first step in that direction, moving stack trace
generation out of the Console bindings, and into either Console or
InspectorConsoleAgent.
No visible change in behavior should result; this refactoring should
continue to pass all existing inspector tests.
* bindings/js/JSConsoleCustom.cpp:
(WebCore::JSConsole::profile):
(WebCore::JSConsole::profileEnd):
Adjust custom JSC Console bindings to drop call stack generation.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallWith):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateCallWith):
Drop call stack generation from JSC and V8 bindings.
* bindings/scripts/CodeGeneratorGObject.pm:
Skip timeEnd explicitly in these bindings; it used to include
ScriptArguments, which autoskipped it. Now it doesn't, so it needs
to be called out on its own.
* bindings/v8/ScriptCallStackFactory.cpp:
(WebCore::createScriptCallStackForConsole):
(WebCore::createScriptCallStack):
(WebCore):
* bindings/v8/ScriptCallStackFactory.h:
(WebCore):
Add 'createScriptCallStack(ScriptState*, size_t)' to V8's
ScriptCallStackFactory in order to match JCS' implementation.
It simply delegates to 'createScriptCallStackForConsole', which
now also accepts a 'maxStackSize' parameter.
* bindings/v8/custom/V8ConsoleCustom.cpp:
(WebCore::V8Console::traceCallback):
(WebCore::V8Console::assertCallback):
(WebCore::V8Console::profileCallback):
(WebCore::V8Console::profileEndCallback):
Adjust custom V8 bindings to drop call stack generation.
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::addMessageToConsole):
With the eventual goal of getting rid of the call stack parameter
entirely, this patch drops it from one version of
'addMessageToConsole' (replacing it with ScriptState*), and creates
a new version that only accepts a call stack. We should be able to
migrate most (all?) external call sites over to the arguments
version in future patches.
(WebCore):
(WebCore::InspectorConsoleAgent::count):
Count takes 'ScriptState*' instead of a call stack, and generates
the stack as needed.
* inspector/InspectorConsoleAgent.h:
(InspectorConsoleAgent):
* inspector/InspectorConsoleInstrumentation.h:
(WebCore::InspectorInstrumentation::addMessageToConsole):
(WebCore):
(WebCore::InspectorInstrumentation::consoleCount):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
(WebCore::InspectorInstrumentation::consoleCountImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
Changes the InspectorInstrumentation pipeline to match the
InspectorConsoleAgent changes.
* page/Console.cpp:
(WebCore::Console::addMessage):
We now (always) generate one frame of a stack trace in order to
populate line numbers and caller URLs. If we need to print the whole
trace here, we generate a full stack.
(WebCore::Console::debug):
(WebCore::Console::error):
(WebCore::Console::info):
(WebCore::Console::log):
(WebCore::Console::warn):
(WebCore::Console::dir):
(WebCore::Console::dirxml):
(WebCore::Console::clear):
(WebCore::Console::trace):
(WebCore::Console::assertCondition):
(WebCore::Console::count):
(WebCore::Console::markTimeline):
(WebCore::Console::timeEnd):
(WebCore::Console::timeStamp):
(WebCore::Console::group):
(WebCore::Console::groupCollapsed):
(WebCore::Console::profile):
(WebCore::Console::profileEnd):
s/ScriptCallStack/ScriptState*/g. Also, printing the stack trace
has been moved out of 'trace' and into 'addMessage'.
* page/Console.h:
(Console):
* page/Console.idl:
Drop the call stack, add the script state.
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::addMessageToWorkerConsole):
Use the new, explicitly call stacked addMessageToConsole. We'll kill
this in a future patch.
2012-11-16 Marja Hölttä <marja@chromium.org>
Add initiator to CachedResourceRequest.
https://bugs.webkit.org/show_bug.cgi?id=101935
Reviewed by Adam Barth.
Motivation: Chromium needs to know which elements request a
resource (such as an image or a script) (bug 92761). In addition,
for exposing resource timing information (bug 84883) we need to
store the initiator, and this is the first step towards it.
No new tests: No visible change in behavior.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::cachedImage):
* css/CSSFontFaceSrcValue.cpp:
(WebCore::CSSFontFaceSrcValue::cachedFont):
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::cachedImageSet):
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::cachedImage):
* css/CSSImageValue.h:
(WebCore):
(CSSImageValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingImage):
* css/StyleRuleImport.cpp:
(WebCore::StyleRuleImport::requestStyleSheet):
* css/WebKitCSSSVGDocumentValue.cpp:
(WebCore::WebKitCSSSVGDocumentValue::load):
* css/WebKitCSSShaderValue.cpp:
(WebCore::WebKitCSSShaderValue::cachedShader):
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestScript):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::emitRule):
* html/parser/CSSPreloadScanner.h:
(CSSPreloadScanner):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::PreloadTask::preload):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestImage):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::determineRevalidationPolicy):
(WebCore):
(WebCore::CachedResourceLoader::preload):
* loader/cache/CachedResourceLoader.h:
(WebCore):
(CachedResourceLoader):
* loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::CachedResourceRequest):
(WebCore):
(WebCore::CachedResourceRequest::~CachedResourceRequest):
(WebCore::CachedResourceRequest::setInitiator):
(WebCore::CachedResourceRequest::initiatorName):
(WebCore::CachedResourceRequest::initiatorDocument):
(WebCore::CachedResourceRequest::initiatorElement):
* loader/cache/CachedResourceRequest.h:
(WebCore):
(WebCore::CachedResourceRequest::setOptions):
(WebCore::CachedResourceRequest::defer):
(WebCore::CachedResourceRequest::setDefer):
(CachedResourceRequest):
* loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
(WebCore):
(WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
* loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
(WebCore):
(CachedResourceRequestInitiators):
(WebCore::cachedResourceRequestInitiators):
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::startLoading):
* platform/ThreadGlobalData.cpp:
(WebCore::ThreadGlobalData::ThreadGlobalData):
* platform/ThreadGlobalData.h:
(WebCore):
(WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
(ThreadGlobalData):
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::requestImageResource):
* svg/SVGFontFaceUriElement.cpp:
(WebCore::SVGFontFaceUriElement::loadFont):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::svgAttributeChanged):
2012-11-16 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: don't show an Error when evaluating a watch expression results in an exception
https://bugs.webkit.org/show_bug.cgi?id=102470
Reviewed by Vsevolod Vlasov.
Dim watch expression and show "<not available>" as its value in cases when it evaluates
into an exception.
* English.lproj/localizedStrings.js:
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionTreeElement.prototype.update):
* inspector/front-end/inspector.css:
2012-11-16 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Rollout 134404 134548 134552 Temporarily rolling out to ease merging.
https://bugs.webkit.org/show_bug.cgi?id=102476
Unreviewed rolling out.
* English.lproj/localizedStrings.js:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/AdvancedSearchController.js:
* inspector/front-end/CallStackSidebarPane.js:
(WebInspector.CallStackSidebarPane.prototype.registerShortcuts):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype._registerShortcuts):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel):
(WebInspector.ElementsPanel.prototype._registerShortcuts):
* inspector/front-end/ElementsPanelDescriptor.js:
* inspector/front-end/GoToLineDialog.js:
(WebInspector.GoToLineDialog.install):
* inspector/front-end/KeyboardShortcut.js:
(WebInspector.KeyboardShortcut._keyName):
* inspector/front-end/Panel.js:
(WebInspector.Panel.prototype.registerShortcut):
(WebInspector.Panel.prototype.unregisterShortcut):
(WebInspector.PanelDescriptor.prototype.panel):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype._createDebugToolbar):
(WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
* inspector/front-end/ScriptsPanelDescriptor.js:
* inspector/front-end/ShortcutsScreen.js:
(WebInspector.ShortcutsScreen):
(WebInspector.ShortcutsSection):
(WebInspector.ShortcutsSection.prototype._renderKey):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype.registerShortcuts):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._registerShortcuts):
* inspector/front-end/TimelinePanelDescriptor.js: Removed.
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
(WebInspector._panelDescriptors):
(WebInspector._registerShortcuts):
2012-11-16 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Memory Timeline Crash
https://bugs.webkit.org/show_bug.cgi?id=102390
Reviewed by Vsevolod Vlasov.
Crash seems to be caused by IPC overflow.
Messages "ParsedScriptSource" are routed to
ResourceScriptMapping.prototype.addScript that process them in time
linear to number of already registered non-anonymous non-inline scripts.
Fixed this with replacing repreated filtering with "on-line" bucketing.
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping):
Removed duplicating initialization code.
(WebInspector.ResourceScriptMapping.prototype.addScript):
Added script bucketing by sourceURL/isInline parameters.
(WebInspector.ResourceScriptMapping.prototype._scriptsForSourceURL):
Avoid filterfig.
(WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
Added outgoing muatable array safeguard.
(WebInspector.ResourceScriptMapping.prototype._reset):
Added type information and added two new maps.
2012-11-16 Helder Correia <helder.correia@nokia.com>
[CoordGfx] Follow coding style on explicit constructors
https://bugs.webkit.org/show_bug.cgi?id=102451
Reviewed by Noam Rosenthal.
Use the explicit keyword on single argument constructors.
No new tests needed.
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(GraphicsLayerTextureMapper):
* platform/graphics/texmap/TextureMapper.h:
(TextureMapper):
* platform/graphics/texmap/TextureMapperBackingStore.h:
(WebCore::TextureMapperTile::TextureMapperTile):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
(WebCore::TextureMapperGLData::TextureMapperGLData):
* platform/graphics/texmap/TextureMapperGL.h:
(BitmapTextureGL):
* platform/graphics/texmap/TextureMapperShaderManager.h:
(TextureMapperShaderManager):
2012-11-16 Kihong Kwon <kihong.kwon@samsung.com>
Add DeviceController base-class to remove duplication of DeviceXXXControler
https://bugs.webkit.org/show_bug.cgi?id=96894
Reviewed by Hajime Morita.
Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
And soon-to-be-added DeviceMotionController and ProximityController.
Covered by existing tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/DeviceOrientationClient.h:
* dom/DeviceOrientationController.cpp:
Remove member functions to move to DeviceController.
- addListener(), removeListener(), removeAllListeners(), isActive()
(WebCore::DeviceOrientationController::DeviceOrientationController):
(WebCore::DeviceOrientationController::didChangeDeviceOrientation):
(WebCore::DeviceOrientationController::client):
(WebCore::DeviceOrientationController::hasLastData):
(WebCore::DeviceOrientationController::getLastEvent):
(WebCore::DeviceOrientationController::from):
(WebCore):
* dom/DeviceOrientationController.h:
(WebCore):
(WebCore::DeviceOrientationController::~DeviceOrientationController):
(DeviceOrientationController):
* dom/Document.cpp:
Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
(WebCore::Document::suspendActiveDOMObjects):
(WebCore::Document::resumeActiveDOMObjects):
* loader/EmptyClients.h:
(EmptyDeviceClient):
(WebCore::EmptyDeviceClient::startUpdating):
(WebCore::EmptyDeviceClient::stopUpdating):
(WebCore):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
(WebCore::DOMWindow::removeAllEventListeners):
* page/DeviceClient.h: Added.
(WebCore):
(DeviceClient):
(WebCore::DeviceClient::~DeviceClient):
* page/DeviceController.cpp: Added.
DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
- addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
All kind of device event controller which has DeviceClient can be inherited from DeviceController.
(WebCore):
(WebCore::DeviceController::DeviceController):
(WebCore::DeviceController::addDeviceEventListener):
(WebCore::DeviceController::removeDeviceEventListener):
(WebCore::DeviceController::removeAllDeviceEventListeners):
(WebCore::DeviceController::dispatchDeviceEvent):
(WebCore::DeviceController::fireDeviceEvent):
* page/DeviceController.h: Added.
(WebCore):
(DeviceController):
(WebCore::DeviceController::~DeviceController):
(WebCore::DeviceController::isActive):
(WebCore::DeviceController::client):
(WebCore::DeviceController::hasLastData):
(WebCore::DeviceController::getLastEvent):
2012-11-16 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Overrides] Device metrics get reset on navigation, yet remain in the Overrides view
https://bugs.webkit.org/show_bug.cgi?id=102467
Reviewed by Pavel Feldman.
Restore the device metrics overrides from the inspector cookie in InspectorPageAgent::restore().
Drive-by: move the script execution and FPS counter display state restoration from enable() into restore(),
so that they will get restored only upon page navigation, not upon any agent enablement.
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::restore): Restore device metrics overrides, script execution and FPS counter display state.
(WebCore::InspectorPageAgent::enable): Don't restore script execution and FPS counter display state on any enablement.
2012-11-16 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134908.
http://trac.webkit.org/changeset/134908
https://bugs.webkit.org/show_bug.cgi?id=102473
Broke the Apple Windows Debug build. (Requested by dydx on
#webkit).
* WebCore.exp.in:
* dom/ViewportArguments.cpp:
(WebCore::computeViewportAttributes):
* dom/ViewportArguments.h:
(WebCore):
2012-11-16 Peter Rybin <prybin@chromium.org>
Web Inspector: show internal properties in inspector frontend
https://bugs.webkit.org/show_bug.cgi?id=100021
Reviewed by Yury Semikhatsky.
New field 'internalProperties' is parsed and passed via all callbacks to Object Properties section.
Test: inspector/debugger/properties-special.html
* inspector/front-end/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertiesSection.prototype.update.callback):
(WebInspector.ObjectPropertiesSection.prototype.update):
(.callback):
(WebInspector.ObjectPropertyTreeElement.populate):
(.processProperties):
(WebInspector.ArrayGroupingTreeElement._populateAsFragment):
(WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties):
* inspector/front-end/RemoteObject.js:
(WebInspector.RemoteObject.prototype.set else):
2012-11-06 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: metrics, geolocation, orientation overrides do not belong to the settings panel
https://bugs.webkit.org/show_bug.cgi?id=93691
Reviewed by Vsevolod Vlasov.
- The Overrides tab contents have been moved from the Settings dialog into a brand new Overrides drawer view,
both receiving a new, more light-weight design.
- The Cog button now brings up a popup menu with the "Overrides" and "Settings" items.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/ContextMenu.js:
(WebInspector.ContextMenu.prototype.showSoftMenu): Display the ContextMenu as a soft menu.
* inspector/front-end/OverridesView.js: Copied from Source/WebCore/inspector/front-end/SettingsScreen.js.
(WebInspector.OverridesView.appendBlockTo):
(WebInspector.OverridesView):
(WebInspector.OverridesView.showInDrawer):
(WebInspector.OverridesView.prototype.get listener):
(WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.get const):
(WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textDoubleClicked):
(WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textChanged):
(WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.set checkboxClicked):
(WebInspector.OverridesView.prototype._createUserAgentSelectRowElement):
(WebInspector.OverridesView.prototype._createInput):
(WebInspector.OverridesView.prototype._onMetricsCheckboxClicked):
(WebInspector.OverridesView.prototype._applyDeviceMetricsUserInput):
(WebInspector.OverridesView.prototype.):
(WebInspector.OverridesView.prototype.set if):
(WebInspector.OverridesView.prototype._createDeviceMetricsElement.swapDimensionsClicked):
(WebInspector.OverridesView.prototype._createDeviceMetricsElement):
(WebInspector.OverridesView.prototype._onGeolocationOverrideCheckboxClicked):
(WebInspector.OverridesView.prototype._applyGeolocationUserInput):
(WebInspector.OverridesView.prototype._setGeolocationPosition):
(WebInspector.OverridesView.prototype._createGeolocationOverrideElement):
(WebInspector.OverridesView.prototype._onDeviceOrientationOverrideCheckboxClicked):
(WebInspector.OverridesView.prototype._applyDeviceOrientationUserInput):
(WebInspector.OverridesView.prototype._setDeviceOrientation):
(WebInspector.OverridesView.prototype._createDeviceOrientationOverrideElement):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel): Fix the "DOM Breakpoints" pane move upon the panel creation.
* inspector/front-end/SettingsScreen.js:
(WebInspector.SettingsTab):
(WebInspector.SettingsTab.prototype._appendSection):
(WebInspector.GenericSettingsTab):
(WebInspector.ExperimentsSettingsTab):
(WebInspector.SettingsController): Implement the popup menu upon the button click.
(WebInspector.SettingsController.prototype.showOverrides):
(WebInspector.SettingsController.prototype.showSettings):
(WebInspector.SettingsController.prototype.appendApplicableItems):
(WebInspector.SettingsController.prototype._buttonPressed):
(WebInspector.SettingsController.prototype._onHideSettingsScreen):
(WebInspector.SettingsController.prototype.showSettingsScreen):
* inspector/front-end/ShortcutsScreen.js: Add "Shortcuts" header.
(WebInspector.ShortcutsScreen.prototype.createShortcutsTabView):
* inspector/front-end/SoftContextMenu.js: Enable in all cases, implement the alignToCurrentTarget mode in show().
(WebInspector.SoftContextMenu.prototype.show):
* inspector/front-end/TabbedPane.js: Implement vertical tab layout (skipping the tab width computations).
(WebInspector.TabbedPane.prototype.set verticalTabLayout):
(WebInspector.TabbedPane.prototype._updateWidths):
(WebInspector.TabbedPaneTab.prototype.setWidth):
(WebInspector.TabbedPaneTab.prototype._createTabElement):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/helpScreen.css: Update styles for the new Settings and Overrides look-and-feel.
* inspector/front-end/inspector.css: Drive-by fix small artifacts in the soft menu and drawer view statusbar item label.
(.soft-context-menu-item):
(.drawer-header):
* inspector/front-end/inspector.html:
2012-11-16 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134865.
http://trac.webkit.org/changeset/134865
https://bugs.webkit.org/show_bug.cgi?id=102466
Broke the Apple Windows Debug build. (Requested by dydx on
#webkit).
* WebCore.exp.in:
* bindings/js/SerializedScriptValue.h:
* testing/Internals.cpp:
* testing/Internals.h:
(WebCore):
* testing/Internals.idl:
2012-11-16 Takashi Sakamoto <tasak@google.com>
ASSERT_NOT_REACHED() when building a CSSOM wrapper for StyleRuleHost
https://bugs.webkit.org/show_bug.cgi?id=102116
Reviewed by Alexander Pavlov.
Provide a CSSUnknownRule instance as a CSSOM wrapper for StyleRuleHost
rules. Since there is no CSSOM wrapper for @host @-rules and
ASSERT_NOT_REACHED is used when a CSSOM wrapper is requested,
this crash occurs.
Tests: fast/css/at-host-cssom-crash.html
inspector/styles/styles-include-host-rules-crash.html
* css/StyleRule.cpp:
(WebCore::StyleRuleBase::createCSSOMWrapper):
Return a CSSUnknownRule instance for StyleRuleHost rules instead of
calling ASSERT_NOT_REACHED().
2012-11-16 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
Avoid copying of ViewportArguments in computeViewportAttributes function
https://bugs.webkit.org/show_bug.cgi?id=102354
Reviewed by Kenneth Rohde Christiansen.
Since r134749 we do not need copying of ViewportArguments parameter in
computeViewportAttributes() as it is not modified any more.
Tested by existing tests fast/viewport.
* WebCore.exp.in: Updated exported symbols for MAC.
* dom/ViewportArguments.cpp:
(WebCore::computeViewportAttributes):
* dom/ViewportArguments.h:
(WebCore):
2012-11-15 Yury Semikhatsky <yurys@chromium.org>
Memory instrumentation: add code for reporting stack traces of unknown instrumented objects
https://bugs.webkit.org/show_bug.cgi?id=102384
Reviewed by Pavel Feldman.
* inspector/InspectorMemoryAgent.cpp:
(WebCore::MemoryInstrumentationClientImpl::checkCountedObject): return false
if the check fails.
* inspector/MemoryInstrumentationImpl.h:
(MemoryInstrumentationClientImpl):
2012-11-15 Jer Noble <jer.noble@apple.com>
Crash at WebCore::PluginData::pluginFileForMimeType const + 38
https://bugs.webkit.org/show_bug.cgi?id=102454
Reviewed by Dan Bernstein.
NULL-check the return value of Page::pluginData().
* loader/SubframeLoader.cpp:
(WebCore::logPluginRequest):
2012-11-15 Kenichi Ishibashi <bashi@chromium.org>
[Chromium] Unreviewed build fix attempt on win
Include OpenTypeVerticalData.h
* platform/graphics/chromium/FontPlatformDataChromiumWin.h:
(WebCore):
2012-11-15 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r134881.
http://trac.webkit.org/changeset/134881
https://bugs.webkit.org/show_bug.cgi?id=102348
http/tests/appcache tests on JSC platforms are broken
* bindings/scripts/CodeGenerator.pm:
(IsStrictSubtype):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GetInternalFields):
(IsSubType):
(IsNodeSubType):
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateFunctionCallback):
(GenerateImplementationIndexer):
(GenerateToV8Converters):
2012-11-15 Viatcheslav Ostapenko <v.ostapenko@samsung.com>
[TexMap][Cairo][Qt] Refactor BitmapTextureGL::updateContents().
https://bugs.webkit.org/show_bug.cgi?id=102420
Reviewed by Gyuyoung Kim.
Moved out texture upload without swizzle to the separate method and changed
drawRepaintCounter to use no-swizzle method. This also fixes blue background
of repaint counters in Qt Minibrowser.
Added condition for sub-image buffer creation to not create it if full image is
uploaded. This should give noticeable improvement for platforms that do not
support sub-image upload to texture.
Covered by existing tests.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawRepaintCounter):
(WebCore::BitmapTextureGL::updateContentsNoSwizzle):
(WebCore):
(WebCore::BitmapTextureGL::updateContents):
* platform/graphics/texmap/TextureMapperGL.h:
(BitmapTextureGL):
2012-11-15 Kent Tamura <tkent@chromium.org>
A Spin button should release mouse event capturing when a modal dialog opens
https://bugs.webkit.org/show_bug.cgi?id=98007
Reviewed by Hajime Morita.
Description of bug:
If the mouse left button is pressed on a spin button in
input[type=number] and a 'change' event handler opens a modal dialog
such as alert(), a repeating timer doesn't stop and mouse event
capturing isn't released even though the mouse pointer isn't on the spin
button.
A user will see repeating alert dialogs for a document like <input
type=number value=1 onchange="if (this.value==1) {alert(...);
this.value=1;}"> by clicking the up button.
How to solve:
We should notify modal dialog or popup open to a spin button.
This patch introduce PopupOpeningObserver. Chrome notifies it when
any dialogs / popups is opening. SpinButtonElement implements
PopupOpeningObserver and registers/unregisters itself to/from
Chrome.
No new tests. This is a behavior change, but it's very hard to make an
automated test for timer-related behavior.
* page/PopupOpeningObserver.h: Added.
* GNUmakefile.list.am: Add PopupOpeningObserver.h
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* page/Chrome.cpp:
(WebCore::Chrome::runJavaScriptAlert): Calls notifyPopupOpeningObservers.
(WebCore::Chrome::runJavaScriptConfirm): Ditto.
(WebCore::Chrome::runJavaScriptPrompt): Ditto.
(WebCore::Chrome::createColorChooser): Ditto.
(WebCore::Chrome::openDateTimeChooser):
Added. Calls notifyPopupOpeningObservers before calling
ChromeClient::openDateTimeChooser.
(WebCore::Chrome::runOpenPanel): Calls notifyPopupOpeningObservers.
(WebCore::Chrome::createPopupMenu): Ditto.
(WebCore::Chrome::createSearchPopupMenu): Ditto.
(WebCore::Chrome::registerPopupOpeningObserver): Added.
(WebCore::Chrome::unregisterPopupOpeningObserver): Added.
(WebCore::Chrome::notifyPopupOpeningObservers): Added.
* page/Chrome.h: Added new members and required class/struct declarations.
* html/BaseChooserOnlyDateAndTimeInputType.cpp:
(WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
Use Chrome::openDateTimeChooser instead of ChromeClient::openDateTimeChooser.
* html/shadow/PickerIndicatorElement.cpp:
(WebCore::PickerIndicatorElement::openPopup): Ditto.
* html/shadow/SpinButtonElement.h:
(SpinButtonElement): Declare willOpenPopup.
* html/shadow/SpinButtonElement.cpp:
(WebCore::SpinButtonElement::defaultEventHandler):
Change the order of timer start and changing the value so that we
can cancel the timer correctly.
Calls Chrome::registerPopupOpeningObserver on starting mouse capturing.
(WebCore::SpinButtonElement::willOpenPopup):
Release mouse event capturing before opening a modal dialog.
(WebCore::SpinButtonElement::releaseCapture):
Calls Chrome::unregisterPopupOpeningObserver.
2012-11-15 Shinya Kawanaka <shinyak@chromium.org>
Chaging pseudoClass (:enabled) should cause distribution
https://bugs.webkit.org/show_bug.cgi?id=101900
Reviewed by Dimitri Glazkov.
When element's 'enabled' state is changed, we have to invalidate distribution.
According to the spec, :enabled matches anchor/area/link element having href attribute,
and several form control elements which is not disabled. However, currently :enalbed does not match
anchor/area/link yet. See https://bugs.webkit.org/show_bug.cgi?id=102349
Tests: fast/dom/shadow/pseudoclass-update-enabled-anchor.html
fast/dom/shadow/pseudoclass-update-enabled-area.html
fast/dom/shadow/pseudoclass-update-enabled-button.html
fast/dom/shadow/pseudoclass-update-enabled-fieldset.html
fast/dom/shadow/pseudoclass-update-enabled-input.html
fast/dom/shadow/pseudoclass-update-enabled-optgroup.html
fast/dom/shadow/pseudoclass-update-enabled-option.html
fast/dom/shadow/pseudoclass-update-enabled-select.html
fast/dom/shadow/pseudoclass-update-enabled-textarea.html
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parseAttribute):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::disabledAttributeChanged):
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::parseAttribute):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::parseAttribute):
2012-11-15 Erik Arvidsson <arv@chromium.org>
Update DOMException name: ValidationError
https://bugs.webkit.org/show_bug.cgi?id=102416
Reviewed by Kentaro Hara.
Patch 16 of 25 to update DOMException name to match the spec and Firefox.
VALIDATION_ERR is historical and not used in any spec or our code.
* dom/DOMCoreException.cpp:
* dom/ExceptionCode.h:
2012-11-15 Kentaro Hara <haraken@chromium.org>
[V8] Remove IsSubType() from CodeGeneratorV8.pm
https://bugs.webkit.org/show_bug.cgi?id=102348
Reviewed by Adam Barth.
CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
No tests. No change in behavior.
* bindings/scripts/CodeGenerator.pm:
(IsSubType):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GetInternalFields):
(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateFunctionCallback):
(GenerateImplementationIndexer):
(GenerateToV8Converters):
2012-11-15 Erik Arvidsson <arv@chromium.org>
Update DOMException name: NamespaceError
https://bugs.webkit.org/show_bug.cgi?id=102395
Reviewed by Kentaro Hara.
Patch 14 of 25 to update DOMException name to match the spec and Firefox.
Updated existing tests.
* dom/DOMCoreException.cpp:
2012-11-15 Tien-Ren Chen <trchen@chromium.org>
Add Settings to disable custom scrollbars on main frame
https://bugs.webkit.org/show_bug.cgi?id=102323
Reviewed by Adam Barth.
Custom scrollbars on main frame don't really work well on touch devices.
Add a setting to inhibit their creation.
No new tests. No change in default layout behavior.
* page/FrameView.cpp:
(WebCore::FrameView::createScrollbar):
* page/Settings.in:
2012-11-15 Rick Byers <rbyers@chromium.org>
custom CSS cursors ignore hotspot values embedded in CUR files
https://bugs.webkit.org/show_bug.cgi?id=100059
Reviewed by Kenneth Russell.
Add reading the hotspot values to the ICOImageDecoder (for CUR files only),
and plumb it through so that the existing calls to ImageSource::getHotSpot
actually return the hot spot value when there is one.
Tests: fast/events/mouse-cursor.html, fast/events/mouse-cursor-multiframecur.html
* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::getHotSpot):
* platform/graphics/chromium/DeferredImageDecoder.cpp:
(WebCore::DeferredImageDecoder::hotSpot):
(WebCore::DeferredImageDecoder::hotSpotAtIndex):
* platform/graphics/chromium/DeferredImageDecoder.h:
(DeferredImageDecoder):
* platform/image-decoders/ImageDecoder.h:
(WebCore::ImageDecoder::hotSpot):
(WebCore::ImageDecoder::hotSpotAtIndex):
(ImageDecoder):
* platform/image-decoders/ico/ICOImageDecoder.cpp:
(WebCore::ICOImageDecoder::hotSpot):
(WebCore::ICOImageDecoder::hotSpotAtIndex):
(WebCore::ICOImageDecoder::processDirectory):
(WebCore::ICOImageDecoder::readDirectoryEntry):
* platform/image-decoders/ico/ICOImageDecoder.h:
(ICOImageDecoder):
(IconDirectoryEntry):
2012-11-15 Kenichi Ishibashi <bashi@chromium.org>
Make OpenTypeVerticalData be ref-counted
https://bugs.webkit.org/show_bug.cgi?id=101971
Reviewed by Tony Chang.
FontCache::purgeInactiveFontData() uses mark & sweep algorithm to remove unused
OpenTypeVerticalData objects. It marks only OpenTypeVerticalData which can be reached
via SimpleFontData in gFontDataCache. However, OpenTypeVerticalData can be referred by
SimpleFontData which resides in CSSFontFaceSource::m_fontDataTable so the algorithm can
delete active OpenTypeVerticalData. To avoid deleting active OpenTypeVerticalData, make
it be ref-counted.
No new tests. No changes in behavior. Checked manually that the use-after-free was fixed.
* platform/graphics/FontCache.cpp:
(WebCore): Use RefPtr instead of OwnPtr for FontVerticalDataCache.
(WebCore::FontCache::getVerticalData): Return PassRefPtr<OpenTypeVerticalData>.
(WebCore::FontCache::purgeInactiveFontData): Follow the change of OwnPtr -> RefPtr.
* platform/graphics/FontCache.h:
* platform/graphics/SimpleFontData.cpp:
(WebCore::SimpleFontData::SimpleFontData):
* platform/graphics/SimpleFontData.h:
Use RefPtr instead of raw const pointer for OpenTypeVerticalData.
(WebCore::SimpleFontData::verticalData):
* platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
(WebCore::FontPlatformData::verticalData): Return PassRefPtr<OpenTypeVerticalData>.
* platform/graphics/chromium/FontPlatformDataChromiumWin.h:
(FontPlatformData):
* platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
(WebCore::FontPlatformData::verticalData): Ditto.
* platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
(WebCore):
(FontPlatformData):
* platform/graphics/opentype/OpenTypeVerticalData.h:
(WebCore::OpenTypeVerticalData::create): Added.
(OpenTypeVerticalData):
2012-11-15 Xingnan Wang <xingnan.wang@intel.com>
Optimize the multiply-add in Biquad.cpp::process
https://bugs.webkit.org/show_bug.cgi?id=75528
Reviewed by Brent Fulgham.
Pipeline the multiply-add with SSE2 intrinsics.
Get ~45% performance improvement for the function.
* platform/audio/Biquad.cpp:
(WebCore::Biquad::process):
2012-11-15 Alec Flett <alecflett@chromium.org>
Add tests for explicit serialization values
https://bugs.webkit.org/show_bug.cgi?id=96818
Reviewed by Adam Barth.
Expose direct access to the serialization/deserialization mechanisms
of SerializedScriptValue to DumpRenderTree.
* testing/Internals.cpp:
(WebCore::Internals::serializeObject):
(WebCore):
(WebCore::Internals::deserializeBuffer):
* testing/Internals.h:
(WebCore):
* testing/Internals.idl:
2012-11-15 Gustavo Noronha Silva <gns@gnome.org>
[GTK] Split WebCore/platform into a separate library
https://bugs.webkit.org/show_bug.cgi?id=94435
Reviewed by Martin Robinson.
More people have been reporting problems when linking WebCore because
the command line limit is being exceeded. Splitting WebCore a bit more
is in order.
* GNUmakefile.am: add new libWebCorePlatform convenience library.
* GNUmakefile.list.am: move list of platform/* files to its own variable.
2012-11-15 Luke Macpherson <macpherson@chromium.org>
Remove unused macro HANDLE_INHERIT_AND_INITIAL_WITH_VALUE in StyleResolver.cpp
https://bugs.webkit.org/show_bug.cgi?id=102036
Reviewed by Darin Adler.
Remove HANDLE_INHERIT_AND_INITIAL_WITH_VALUE macro, as it is not used anywhere.
No tests added because code is unused, and compile is enough to verify that conculsively.
* css/StyleResolver.cpp:
2012-11-15 Erik Arvidsson <arv@chromium.org>
Update DOMException name: SyntaxError
https://bugs.webkit.org/show_bug.cgi?id=102279
Reviewed by Kentaro Hara.
Patch 12 of 25 to update DOMException name to match the spec and Firefox.
Updated existing tests.
* dom/DOMCoreException.cpp:
2012-11-15 Takashi Sakamoto <tasak@google.com>
[Win] key event's location does not work on Windows platform.
https://bugs.webkit.org/show_bug.cgi?id=89742
Reviewed by Brent Fulgham.
As WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, and WM_SYSKEYUP doesn't
directly provide a virtual keycode which distinguish between left-hand
and right-hand keys. To obtain a virtual keycode, we have to look at
lparam, i.e. scancode and extended key bit. So if the given virtual
keycode is control, shift, or menu, use MapVirtualKey with scancode and
extended key bit and recreate a virtual keycode which distinguishes
between left-hand and right-hand.
No new tests, because left-hand keys, right-hand keys layout tests
have been already added.
* platform/win/KeyEventWin.cpp:
(WebCore::windowsKeycodeWithLocation):
Use wparam and lparam to recreate a virtual keycode which distinguishes
between left-hand and right-hand if the given wparam (=virtual keycode)
is control, shift, or menu.
(WebCore):
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
Use the newly added function to obtain windows virtual keycode.
2012-11-15 Joe Mason <jmason@rim.com>
[BlackBerry] Don't assert when notifyAuthReceived is called with a different auth type
https://bugs.webkit.org/show_bug.cgi?id=102436
Reviewed by Rob Buis.
The server type could change if we contact a site taking HTTP auth, through an HTTP proxy
taking auth of its own. First we get a 407 from the proxy, and then when get past the
proxy, we get a 401 from the end site - so notifyAuthReceived gets called again with auth
type Proxy instead of HTTP.
The correct thing to do when that happens is skip the "update the auth type in the
credentials" step, since these are actually new credentials and not just credentials being
reused for a different auth type on the same server.
PR 241637
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::notifyAuthReceived):
2012-11-15 Stephen Chenney <schenney@chromium.org>
mpath elements do not clear resource lists before destruction
https://bugs.webkit.org/show_bug.cgi?id=101505
Reviewed by Abhishek Arya.
The destructor for SVGMPathElement should clear its resources before
deletion, so as not to leave hanging pointers in resource lists.
Test: svg/animations/mpath-remove-from-dependents-on-delete-crash.html
* svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::~SVGMPathElement): Add destructor that calls clearResourceReferences.
(WebCore):
* svg/SVGMPathElement.h:
(SVGMPathElement): Add destructor.
2012-11-15 Kentaro Hara <haraken@chromium.org>
Remove CodeGenerator::StripModule
https://bugs.webkit.org/show_bug.cgi?id=102338
Reviewed by Adam Barth.
Now WebKit IDL files have no modules. (The Web IDL spec has no modules.)
We can remove CodeGenerator::StripModule.
This might break some internal builds if the internal builds are still
using modules. Ping haraken@ you observe it.
No tests. No change in behavior.
* bindings/scripts/CodeGenerator.pm:
(ForAllParents):
(AttributeNameForGetterAndSetter):
(IsStrictSubtype):
* bindings/scripts/CodeGeneratorCPP.pm:
(GetClassName):
(GetImplClassName):
(GetParentImplClassName):
(GetParent):
(ConversionNeeded):
(GetCPPTypeGetter):
(AddForwardDeclarationsForType):
(AddIncludesForType):
(GenerateImplementation):
* bindings/scripts/CodeGeneratorGObject.pm:
(GetParentClassName):
(GetParentGObjType):
(GetClassName):
* bindings/scripts/CodeGeneratorJS.pm:
(GetParentClassName):
(AddIncludesForTypeInImpl):
(AddIncludesForTypeInHeader):
(GenerateParametersCheckExpression):
(GenerateImplementation):
(GenerateParametersCheck):
(GetNativeTypeFromSignature):
(JSValueToNative):
(NativeToJSValue):
* bindings/scripts/CodeGeneratorObjC.pm:
(GetClassName):
(GetImplClassName):
(GetParentImplClassName):
(GetParentAndProtocols):
(GetPropertyAttributes):
(ConversionNeeded):
(GetObjCTypeGetter):
(AddForwardDeclarationsForType):
(AddIncludesForType):
(GenerateImplementation):
* bindings/scripts/CodeGeneratorV8.pm:
(AddIncludesForType):
(GenerateHeader):
(IsSubType):
(GenerateSingleBatchedAttribute):
(GenerateImplementation):
(BaseInterfaceName):
(GetTypeFromSignature):
(IsWrapperType):
2012-11-15 Luke Macpherson <macpherson@chromium.org>
Make assumptions about m_parentStyle consistent within StyleResolver::applyProperty()
https://bugs.webkit.org/show_bug.cgi?id=101696
Reviewed by Tony Chang.
Most of the code in StyleResolver::applyProperty assumes that isInherit implies that m_parentStyle is available.
This patch ASSERTs that this assumption is correct, and removes the few existing checks to maintain consistency.
No new tests / covered by all existing CSS tests.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
2012-11-15 Kentaro Hara <haraken@chromium.org>
[V8] Remove redundant $interfaceName from function parameters
https://bugs.webkit.org/show_bug.cgi?id=102334
Reviewed by Adam Barth.
'sub func { my $dataNode = shift; my $interfaceName = shift; }'
is redundant. We can get $interfaceName by $dataNode->name.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateOpaqueRootForGC):
(GenerateHeader):
(GenerateConstructorGetter):
(GenerateNormalAttrGetter):
(GenerateReplaceableAttrSetter):
(GenerateNormalAttrSetter):
(GenerateOverloadedFunctionCallback):
(GenerateFunctionCallback):
(GenerateOverloadedConstructorCallback):
(GenerateSingleConstructorCallback):
(GenerateConstructorCallback):
(GenerateEventConstructorCallback):
(GenerateTypedArrayConstructorCallback):
(GenerateNamedConstructorCallback):
(GenerateBatchedAttributeData):
(GenerateImplementation):
(GenerateToV8Converters):
(GetNativeTypeForConversions):
2012-11-15 Simon Fraser <simon.fraser@apple.com>
Ensure that scrollbar layers show debug borders
https://bugs.webkit.org/show_bug.cgi?id=102429
Reviewed by Anders Carlsson.
After r133517, scrollbar layers no longer showed debug borders, which
was very confusing. Fix this by explicitly calling setShowDebugBorder()
on the scrollbar-related layers owned by RenderLayerCompositor
and RenderLayerBacking.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateDebugIndicators):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
2012-11-15 Andreas Kling <akling@apple.com>
ASSERTION FAILED: fastAttributeLookupAllowed(name) for 7 layout tests
<http://webkit.org/b/102423>
Reviewed by Anders Carlsson.
Use Element::getAttributeItem() to find out if the element has a given attribute
instead of fastHasAttribute() since that causes assertions for the "style" attribute.
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
2012-11-15 Erik Arvidsson <arv@chromium.org>
Update DOMException name: DOMStringSizeError
https://bugs.webkit.org/show_bug.cgi?id=102089
Reviewed by Ojan Vafai.
Patch 2 of 25 to update DOMException name to match the spec and Firefox.
DOMSTRING_SIZE_ERR is historical and not used in any spec or in our code.
* dom/DOMCoreException.cpp:
* dom/ExceptionCode.h:
2012-11-15 Joshua Bell <jsbell@chromium.org>
IndexedDB: Indexing tests are flaky-crashing
https://bugs.webkit.org/show_bug.cgi?id=102283
Reviewed by Tony Chang.
Processing the final task can cause IDBTransactionBackendImpl references to be released
by all holders. Prior to looping over the tasks (or, in an even earlier implementation,
swapping queues) control would fall off the end of the function. The loop termination
check introduced in http://wkrev.com/134529 requires that |this| be kept alive until
the method completes.
Test: storage/indexeddb/transaction-crash-in-tasks.html
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::abort): Rename self => protect.
(WebCore::IDBTransactionBackendImpl::commit): Rename self => protect.
(WebCore::IDBTransactionBackendImpl::taskTimerFired): New self-ref.
2012-11-15 Elliott Sprehn <esprehn@chromium.org>
MutationObserver wrapper should not be collected while still observing
https://bugs.webkit.org/show_bug.cgi?id=102328
Reviewed by Adam Barth.
Make MutationObserver an ActiveDOMObject so that the wrapper is not
collected while it is still observing the DOM. This is needed because
the wrapper is passed into the callback and expandos on the wrapper
should be preserved.
Test: fast/mutation/observer-wrapper-dropoff.html
* bindings/js/JSMutationObserverCustom.cpp:
(WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
* bindings/v8/custom/V8MutationObserverCustom.cpp:
(WebCore::V8MutationObserver::constructorCallback):
* dom/MutationObserver.cpp:
(WebCore::MutationObserver::create):
(WebCore::MutationObserver::MutationObserver):
(WebCore::MutationObserver::observationStarted):
(WebCore::MutationObserver::observationEnded):
* dom/MutationObserver.h:
(WebCore):
* dom/MutationObserver.idl:
2012-11-15 Tony Chang <tony@chromium.org>
Generate Settings from a .in file
https://bugs.webkit.org/show_bug.cgi?id=100393
Reviewed by Adam Barth.
Generate most settings from an .in file to reduce human mistakes and
to make it easier to add/remove new settings.
I only moved settings that are easy to move at this point. There are many more that
have some minor naming inconsistencies that we can also move to Settings.in, but I'll
do that in a follow up patch.
This doesn't generate SettingInternals.* yet-- we can do that in a follow up patch.
No new tests, this is a refactor.
* CMakeLists.txt:
* DerivedSources.make: Run make_settings.pl.
* DerivedSources.pri: Run make_settings.pl.
* GNUmakefile.am: Run make_settings.pl.
* GNUmakefile.list.am:
* WebCore.exp.in: Remove functions that are now inline in the header.
* WebCore.gyp/WebCore.gyp: Run action_makenames.py, which will run make_settings.pl.
* WebCore.gyp/scripts/action_makenames.py:
(main): Allow make_settings.pl.
* WebCore.order: Remove functions that are now inline in the header.
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::setMessageDOMAndStartTimer): Fix a typo in "magnification".
* page/Settings.cpp:
(WebCore::Settings::Settings): Replace generated settings with SETTINGS_INITIALIZER_LIST.
* page/Settings.h:
(Settings): Replace generated settings with SETTINGS_GETTERS_AND_SETTERS and SETTINGS_MEMBER_VARIABLES.
* page/Settings.in: Added.
* page/make_settings.pl: Added.
(defaultItemFactory):
(generateCode):
(generateHeader): Use a similar model as make_names.pl.
(printConditionalMacros):
(printGettersAndSetters):
(printMemberVariables):
(printGetterAndSetter):
(printInitializerList):
(printInitializer):
2012-11-15 Alpha Lam <hclam@chromium.org>
[chromium] Refactoring to move logic of creating lazy decoded SkBitmap into DeferredImageDecoder
https://bugs.webkit.org/show_bug.cgi?id=102019
Reviewed by Stephen White.
Goal of this change is to keep ImageDecodingStore clean and only do
image caching. Logic of creating lazily decoded SkBitmaps is moved into
DeferredImageDecoder.
In particular these two methods are moved:
- ImageDecodingStore::createLazyDecodedSkBitmap
- ImageDecodingStore::resizeLazyDecodedSkBitmap
No new tests. There is no new code (really). It is just moved from
ImageDecodingStore to DeferredImageDecoder.
No change in behavior. Code is tested with:
Unit tests: webkit_unit_tests
Layout test: platform/chromium/virtual/deferred
* platform/graphics/chromium/DeferredImageDecoder.cpp:
(WebCore::DeferredImageDecoder::isLazyDecoded):
(WebCore):
(WebCore::DeferredImageDecoder::resizeLazyDecodedSkBitmap):
(WebCore::DeferredImageDecoder::frameBufferAtIndex):
(WebCore::DeferredImageDecoder::setData):
(WebCore::DeferredImageDecoder::createLazyDecodedSkBitmap):
* platform/graphics/chromium/DeferredImageDecoder.h:
(WebCore):
(DeferredImageDecoder):
* platform/graphics/chromium/ImageDecodingStore.cpp:
* platform/graphics/chromium/ImageDecodingStore.h:
(ImageDecodingStore):
* platform/graphics/chromium/ImageFrameGenerator.cpp:
(WebCore::ImageFrameGenerator::ImageFrameGenerator):
* platform/graphics/chromium/ImageFrameGenerator.h:
(WebCore::ImageFrameGenerator::create):
(ImageFrameGenerator):
* platform/graphics/skia/NativeImageSkia.cpp:
(WebCore::NativeImageSkia::resizedBitmap):
2012-11-15 Roger Fong <roger_fong@apple.com>
Unreviewed. Build fix for Windows after r134767.
Update vsprops and vcproj files to reflect changes to file locations in r134767.
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcproj/WebCoreCommon.vsprops:
2012-11-15 Elliott Sprehn <esprehn@chromium.org>
Track subframe count to avoid traversing the tree when there's no subframes
https://bugs.webkit.org/show_bug.cgi?id=101821
Reviewed by Ojan Vafai.
Bug 101619 showed a 9-14% improvement from not walking the children during
removeChild looking for frames when there's known to be no frames. The fix
in that bug only avoids this walk when the whole document has no frames, this
patch extends it to skip traversing subtrees that have no iframes by hooking
the frame assignment to walk up the tree and keep track of the count of frames
in the subtree on contentFrame assignment and then decrement it on disconnect.
No new tests, this is just a perf refactor.
* dom/ContainerNode.cpp:
(WebCore::willRemoveChildren):
* dom/ContainerNodeAlgorithms.cpp:
(WebCore::ChildFrameDisconnector::collectFrameOwners):
* dom/ContainerNodeAlgorithms.h:
(WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
(ChildFrameDisconnector):
(WebCore::ChildFrameDisconnector::collectFrameOwners):
Renamed from collectDescendant() to better reflect what it really does.
(WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):
Renamed from disconnect() to better reflect what it really does.
(WebCore::ChildFrameDisconnector::disconnect):
New method that does the collection of frame owners on either the root
or only it's descendants.
* dom/Node.cpp:
(WebCore::Node::connectedSubframeCount):
(WebCore::Node::incrementConnectedSubframeCount):
(WebCore::Node::decrementConnectedSubframeCount):
* dom/Node.h:
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
(WebCore::NodeRareData::connectedSubframeCount):
(WebCore::NodeRareData::incrementConnectedSubframeCount):
(WebCore::NodeRareData::decrementConnectedSubframeCount):
* html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::setContentFrame):
(WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
2012-11-15 Alpha Lam <hclam@chromium.org>
[chromium] WebGL texImage2D fails with deferred image decoding
https://bugs.webkit.org/show_bug.cgi?id=102310
Reviewed by Kenneth Russell.
Skia's implementation of GraphicsContext3D::getImageData() uses ImageSource
to decode an image. When deferred image decoding is enabled this class
generates an ImageFrame marked as incomplete, which WebGL rejects. This results
in failing of texImage2D.
This change uses ImageDecoder directly instead of ImageSource. This skips
the code path of deferred image decoding. This behavior is correct because
GraphicsContext3D wants to decode the image differently with alpha not
premultiplied and color profile applied optionally.
Added a test to prove this change fixed the bug.
Test: fast/images/webgl-teximage2d.html
* platform/graphics/skia/GraphicsContext3DSkia.cpp:
(WebCore::GraphicsContext3D::getImageData):
2012-11-15 Jer Noble <jer.noble@apple.com>
Further unreviewed build fix. Add explicit static_casts to avoid implicit precision warnings.
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
(WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
2012-11-15 Jer Noble <jer.noble@apple.com>
Unreviewed build fix. Avoid implicit precision and unused parameter warnings.
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
(WebCore::WebCoreAVFResourceLoader::responseReceived):
(WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
2012-11-15 Adam Barth <abarth@webkit.org>
[V8] We shouldn't call deprecated V8 APIs
https://bugs.webkit.org/show_bug.cgi?id=102407
Reviewed by Eric Seidel.
This patch was written by Sven Panne on the V8 team. He would prefer
that we not call deprecated V8 APIs. This patch updates these call
sites to more modern idioms.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateConstructorGetter):
(GenerateImplementation):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::TestObjConstructorGetter):
* bindings/v8/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::addListener):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::setContextDebugId):
(WebCore::ScriptController::contextDebugId):
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::objectByHeapObjectId):
- This code doesn't seem to do anything anymore.
* bindings/v8/V8DOMConfiguration.h:
(WebCore::V8DOMConfiguration::configureAttribute):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::setInjectedScriptContextDebugId):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::maybeDOMWrapper):
(WebCore::V8DOMWrapper::isWrapperOfType):
* bindings/v8/V8EventListenerList.h:
(WebCore::V8EventListenerList::doFindWrapper):
(WebCore::V8EventListenerList::findOrCreateWrapper):
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
* bindings/v8/WrapperTypeInfo.h:
(WebCore::WrapperTypeInfo::unwrap):
2012-11-15 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134800 and r134805.
http://trac.webkit.org/changeset/134800
http://trac.webkit.org/changeset/134805
https://bugs.webkit.org/show_bug.cgi?id=102417
This patch broke chromium port (Requested by jianli on
#webkit).
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::createOffer):
(WebCore::RTCPeerConnection::createAnswer):
(WebCore::RTCPeerConnection::setLocalDescription):
(WebCore::RTCPeerConnection::localDescription):
(WebCore::RTCPeerConnection::setRemoteDescription):
(WebCore::RTCPeerConnection::remoteDescription):
(WebCore::RTCPeerConnection::updateIce):
(WebCore::RTCPeerConnection::addIceCandidate):
(WebCore::RTCPeerConnection::readyState):
(WebCore::RTCPeerConnection::iceState):
(WebCore::RTCPeerConnection::addStream):
(WebCore::RTCPeerConnection::close):
(WebCore::RTCPeerConnection::stop):
(WebCore::RTCPeerConnection::changeReadyState):
(WebCore::RTCPeerConnection::scheduledEventTimerFired):
* Modules/mediastream/RTCPeerConnection.h:
(RTCPeerConnection):
* Modules/mediastream/RTCPeerConnection.idl:
* dom/EventNames.h:
(WebCore):
* platform/mediastream/RTCDataChannelDescriptor.cpp:
(WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
(WebCore::RTCDataChannelDescriptor::readyStateChanged):
* platform/mediastream/RTCPeerConnectionHandlerClient.h:
(RTCPeerConnectionHandlerClient):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
(RTCPeerConnectionHandlerChromium):
2012-11-15 Elliott Sprehn <esprehn@chromium.org>
Remove Node::aboutToUnload and be more explicit about what it was for
https://bugs.webkit.org/show_bug.cgi?id=102357
Reviewed by Ryosuke Niwa.
Node::aboutToUnload was confusingly named because it was only called on
the focused node, and it really only existed to support notifying the
embedder that inputs should stop being editable on unload. Instead add
a new method to HTMLInputElement that ends editing and call that
explicitly in the FrameLoader so it's clear what this is about.
No new tests, this is just a refactoring.
* dom/Node.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::endEditing):
New method that handles finishing editing.
* html/HTMLInputElement.h:
(HTMLInputElement):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::handleBlurEvent):
Use the new method to reduce code duplication.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading):
Be explicit about what this check was for.
2012-11-15 Tommy Widenflycht <tommyw@google.com>
[chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
https://bugs.webkit.org/show_bug.cgi?id=102386
Reviewed by Adam Barth.
Existing tests expanded to cover patch.
* platform/mediastream/RTCDataChannelDescriptor.cpp:
(WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
(WebCore::RTCDataChannelDescriptor::readyStateChanged):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
(WebCore):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
(WebKit):
(RTCPeerConnectionHandlerChromium):
2012-11-15 Rick Byers <rbyers@chromium.org>
No tests for changing mouse cursors
https://bugs.webkit.org/show_bug.cgi?id=100550
Reviewed by Brent Fulgham.
Add infrastructure to keep track of the last set mouse cursor,
and then to query it from DumpRenderTree. Also adds ASSERTs to help ensure
we can reliably detect when an uninitialized Cursor object is used (such as
the one that can be returned from OptionalCursor in the NoCursorChange scenario).
Test: fast/events/mouse-cursor.html
* WebCore.exp.in: Add Cursor copy ctor export
* page/EventHandler.cpp:
(WebCore::OptionalCursor::cursor):
(WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
* page/EventHandler.h:
(WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
* platform/Cursor.h:
(WebCore::Cursor::Cursor): Mark uninitialized cursor types as invalid.
(WebCore::Cursor::type): Assert cursor type is valid.
* testing/Internals.cpp:
(WebCore::cursorTypeToString): Helper to convert cursor type to enum
(WebCore):
(WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
* testing/Internals.h: Declare getCurrentCursorInfo
* testing/Internals.idl: Declare getCurrentCursorInfo
2012-11-13 Jer Noble <jer.noble@apple.com>
Support loading of blob URLs in AVFoundation.
https://bugs.webkit.org/show_bug.cgi?id=102182
Reviewed by Eric Carlson.
Add support for BLOB (and other non-natively supported schemed) URLs through the AVAssetResourceLoader API.
Test: media/video-src-blob.html
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Only go down the encrypted
media path if the key scheme is skp://.
(WebCore::MediaPlayerPrivateAVFoundationObjC::didCancelLoadingRequest): Added. Cancel resource loading if
the media engine requests it.
(WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Use the new, non-deprecated API.
Use the dispatch_main_queue() as the AVAssetResourceLoadDelegate queue now that <rdar://problem/12362461> is fixed.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
Add a new helper class to manage loading the CachedRawResource and feed the incoming
data to the AVAssetResourceLoader.
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Added.
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: Added.
(WebCore::WebCoreAVFResourceLoader::create): Simple factory.
(WebCore::WebCoreAVFResourceLoader::WebCoreAVFResourceLoader): Simple constructor.
(WebCore::WebCoreAVFResourceLoader::~WebCoreAVFResourceLoader): Simple destructor.
(WebCore::WebCoreAVFResourceLoader::startLoading): Tell the cachedResourceLoader to schedule loading.
(WebCore::WebCoreAVFResourceLoader::stopLoading): Remove this as a client of the resource.
(WebCore::WebCoreAVFResourceLoader::responseReceived): Fill in the contentInformation field of the
AVAssetResourceLoadingRequest.
(WebCore::WebCoreAVFResourceLoader::dataReceived): Call fulfillRequestWithResource.
(WebCore::WebCoreAVFResourceLoader::notifyFinished): Tell the AVAssetResourceLoadingRequest that loading
has completed.
(WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): Fill in (if possible) the dataRequest
field of the AVAssetResourceLoadingRequest.
Add a MediaPlayerClient method allowing MediaPlayerPrivate subclasses to access the HTMLMediaElement's
document's cachedResourceLoader.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerCachedResourceLoader):
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::cachedResourceLoader):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerCachedResourceLoader):
Add a convenience method to convert from MIME type -> UTI.
* platform/network/mac/UTIUtilities.h:
* platform/network/mac/UTIUtilities.mm:
(WebCore::UTIFromMIMEType):
Add new files to project.
* WebCore.xcodeproj/project.pbxproj:
2012-11-15 Kenneth Rohde Christiansen <kenneth@webkit.org>
Remove initiallyFitToViewport attribute
https://bugs.webkit.org/show_bug.cgi?id=102392
Reviewed by Noam Rosenthal.
Remove the initiallyFitToViewport which shouldn't have been
added in the first place. We now reset userScalable to auto (-1)
in case it was not explicitly set by the web author.
Same behavior, covered by existing tests.
* dom/ViewportArguments.cpp:
(WebCore::ViewportArguments::resolve):
* dom/ViewportArguments.h:
(ViewportAttributes):
2012-11-15 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Update RTCPeerConnection states to match the latest editors draft
https://bugs.webkit.org/show_bug.cgi?id=102382
Reviewed by Adam Barth.
Updating readyState & iceState, and adding iceGatheringState.
Also safeguarding the event timer callback.
Patch covered by existing tests.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::createOffer):
(WebCore::RTCPeerConnection::createAnswer):
(WebCore::RTCPeerConnection::setLocalDescription):
(WebCore::RTCPeerConnection::localDescription):
(WebCore::RTCPeerConnection::setRemoteDescription):
(WebCore::RTCPeerConnection::remoteDescription):
(WebCore::RTCPeerConnection::updateIce):
(WebCore::RTCPeerConnection::addIceCandidate):
(WebCore::RTCPeerConnection::readyState):
(WebCore::RTCPeerConnection::iceGatheringState):
(WebCore):
(WebCore::RTCPeerConnection::iceState):
(WebCore::RTCPeerConnection::addStream):
(WebCore::RTCPeerConnection::close):
(WebCore::RTCPeerConnection::didChangeIceGatheringState):
(WebCore::RTCPeerConnection::stop):
(WebCore::RTCPeerConnection::changeReadyState):
(WebCore::RTCPeerConnection::scheduledEventTimerFired):
* Modules/mediastream/RTCPeerConnection.h:
(RTCPeerConnection):
* Modules/mediastream/RTCPeerConnection.idl:
* dom/EventNames.h:
(WebCore):
* platform/mediastream/RTCPeerConnectionHandlerClient.h:
(RTCPeerConnectionHandlerClient):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
(WebCore):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
(RTCPeerConnectionHandlerChromium):
2012-11-15 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134649 and r134665.
http://trac.webkit.org/changeset/134649
http://trac.webkit.org/changeset/134665
https://bugs.webkit.org/show_bug.cgi?id=102413
Broke a ton of downstream chromium tests (Requested by japhet
on #webkit).
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::~DocumentLoader):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::clearMainResourceLoader):
(WebCore::DocumentLoader::isLoadingInAPISense):
(WebCore::DocumentLoader::documentURL):
(WebCore::DocumentLoader::isLoadingMainResource):
(WebCore::DocumentLoader::startLoadingMainResource):
* loader/DocumentLoader.h:
(DocumentLoader):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::init):
* loader/FrameLoaderStateMachine.cpp:
(WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
* loader/FrameLoaderStateMachine.h:
* loader/MainResourceLoader.cpp:
(WebCore::shouldLoadAsEmptyDocument):
(WebCore):
(WebCore::MainResourceLoader::continueAfterContentPolicy):
(WebCore::MainResourceLoader::didReceiveResponse):
(WebCore::MainResourceLoader::didFinishLoading):
(WebCore::MainResourceLoader::handleEmptyLoad):
(WebCore::MainResourceLoader::loadNow):
(WebCore::MainResourceLoader::load):
* loader/MainResourceLoader.h:
(MainResourceLoader):
2012-11-15 Kentaro Hara <haraken@chromium.org>
Correct syntax of old-style IDL files
https://bugs.webkit.org/show_bug.cgi?id=102335
Reviewed by Adam Barth.
Recently tasak@ corrected an IDL syntax of almost all IDL files.
We should correct the rest of them.
No tests. No change in behavior.
* html/canvas/OESElementIndexUint.idl:
* page/PerformanceMark.idl:
* page/PerformanceMeasure.idl:
2012-11-15 Elliott Sprehn <esprehn@chromium.org>
Remove isHTMLInputElement since it's unused and toInputElement exists
https://bugs.webkit.org/show_bug.cgi?id=102358
Reviewed by Ojan Vafai.
Remove isHTMLInputElement as no one uses it. Everyone just uses
Node::toInputElement and checks for a 0 return value instead.
toInputElement is also more reliable as there's no requirement that
subclasses of HTMLInputElement have the tag name of inputTag so using
this method in a check could potentially miss future subclasses with
different tag names, though none exist right now.
No new tests, this just deletes dead code.
* html/HTMLInputElement.h:
2012-11-15 Erik Arvidsson <arv@chromium.org>
Update DOMException name: NotSupportedError
https://bugs.webkit.org/show_bug.cgi?id=102139
Reviewed by Ojan Vafai.
Patch 9 of 25 to update DOMException name to match the spec and Firefox.
Updated existing tests.
* dom/DOMCoreException.cpp:
2012-11-15 Elliott Sprehn <esprehn@chromium.org>
Remove isHTMLInputElement since it's unused and toInputElement exists
https://bugs.webkit.org/show_bug.cgi?id=102358
Reviewed by Ojan Vafai.
Remove isHTMLInputElement as no one uses it. Everyone just uses
Node::toInputElement and checks for a 0 return value instead.
toInputElement is also more reliable as there's no requirement that
subclasses of HTMLInputElement have the tag name of inputTag so using
this method in a check could potentially miss future subclasses with
different tag names, though none exist right now.
No new tests, this just deletes dead code.
* html/HTMLInputElement.h:
2012-11-15 Erik Arvidsson <arv@chromium.org>
Update DOMException name: NoModificationAllowedError
https://bugs.webkit.org/show_bug.cgi?id=102134
Reviewed by Ojan Vafai.
Patch 7 of 25 to update DOMException name to match the spec and Firefox.
Updated existing tests.
* dom/DOMCoreException.cpp:
2012-11-15 Miguel Garcia <miguelg@chromium.org>
Remove unnecesary dependencies INPUT_TYPE_COLOR
https://bugs.webkit.org/show_bug.cgi?id=102379
Reviewed by Darin Adler.
Platforms should be able to enable INPUT_TYPE_COLOR without enabling
CALENDAR_PICKER and DATALIST_ELEMENT. Before this patch however there would be
compile errors in such configuration.
No new tests since this is not adding any extra functionality.
* WebCore.gyp/WebCore.gyp:
* html/ColorInputType.cpp:
(WebCore::ColorInputType::shouldShowSuggestions):
* make-file-arrays.py:
(main):
2012-11-15 Eric Carlson <eric.carlson@apple.com>
Update computed line position algorithm
https://bugs.webkit.org/show_bug.cgi?id=93779
Reviewed by Philippe Normand.
Compute the position of a text track relative to rendered tracks. This is needed to position
cues correctly when there is more than one text track.
Test: media/track/track-cue-container-rendering-position.html
* html/track/TextTrack.cpp:
(WebCore::TextTrack::invalidateTrackIndex): Invalidate both cached track indices.
(WebCore::TextTrack::trackIndexRelativeToRenderedTracks): Return the index of the track relative
to other rendered tracks.
* html/track/TextTrack.h:
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::calculateComputedLinePosition): Use trackIndexRelativeToRenderedTracks()
instead of trackIndex() so cues are positioned correctly.
* html/track/TextTrackList.cpp:
(TextTrackList::getTrackIndex): Change return type from unsigned to int.
(TextTrackList::getTrackIndexRelativeToRenderedTracks): New.
* html/track/TextTrackList.h:
2012-11-15 Dominik Röttsches <dominik.rottsches@intel.com>
[EFL] Bump Harfbuzz to allow fixing bug 101009 on EFL
https://bugs.webkit.org/show_bug.cgi?id=101323
Reviewed by Martin Robinson.
Removing ifdef since we bumped Harfbuzz dependency. This is the
real fix replacing the previous workaround of having a Chromium
specific ifdef here, since Chromium uses a newer HarfBuzz version
already.
No new tests, covered by css3/flexbox/inline-flex-crash.html
which will not crash anymore even with the ifdef removed.
* platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
2012-11-15 Andreas Kling <kling@webkit.org>
REGRESSION(r134408): Heap-use-after-free in WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement().
<http://webkit.org/b/102304>
Reviewed by Anders Carlsson.
Test: fast/dom/cloneNode-below-body-attribute-merging.html
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
Use Element::fastHasAttribute() to determine if a given attribute is already present on the element
we're merging attributes into.
* dom/ElementAttributeData.h:
(ElementAttributeData):
Remove a now-unnecessary friend declaration.
2012-11-15 Elliott Sprehn <esprehn@chromium.org>
Prevent creation of detached frames in ShadowRoot
https://bugs.webkit.org/show_bug.cgi?id=102333
Reviewed by Dimitri Glazkov.
Similar to Bug 94717 you can create a loaded iframe in a detached
subtree using ShadowRoot. To fix this we just need to make
SubframeLoadingDisabler traverse through shadow boundaries.
Test: fast/frames/detached-shadow-frame.html
* html/HTMLFrameOwnerElement.h:
(WebCore::SubframeLoadingDisabler::canLoadFrame):
2012-11-15 Shinya Kawanaka <shinyak@chromium.org>
Changing pseudoClass (:visited) should cause distribution.
https://bugs.webkit.org/show_bug.cgi?id=101700
Reviewed by Dimitri Glazkov.
When href attribute of an anchor or area element is changed, we have to invalidate distribution.
Since we would like to check a few pseudoClasses at once, we make the argument of
SelectRuleFeatureSet::hasSelectorFor int.
Tests: fast/dom/shadow/pseudoclass-update-visited-anchor.html
fast/dom/shadow/pseudoclass-update-visited-area.html
* dom/ElementShadow.cpp:
(WebCore::invalidateParentDistributionIfNecessary):
* dom/ElementShadow.h:
(WebCore):
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parseAttribute):
* html/shadow/SelectRuleFeatureSet.h:
(WebCore::SelectRuleFeatureSet::hasSelectorFor):
2012-11-15 Balazs Kelemen <kbalazs@webkit.org>
Coordinated Graphics: support the "freeze animations" API
https://bugs.webkit.org/show_bug.cgi?id=100703
Reviewed by Noam Rosenthal.
Make animations resumable in Coordinated Graphics.
Pausing was already implemented.
Tested with animations and transitions tests. No tests to be
unskipped because these tests has been working without this API
as well (although this is the preferred way).
* platform/graphics/GraphicsLayerAnimation.cpp:
(WebCore::GraphicsLayerAnimation::apply):
(WebCore::GraphicsLayerAnimation::computeTotalRunningTime):
Do not consider the time while we was suspended as part of
the total running time.
(WebCore):
(WebCore::GraphicsLayerAnimation::resume):
(WebCore::GraphicsLayerAnimations::suspend):
(WebCore::GraphicsLayerAnimations::resume):
* platform/graphics/GraphicsLayerAnimation.h:
(GraphicsLayerAnimation):
(GraphicsLayerAnimations):
2012-11-15 Gabor Rapcsanyi <rgabor@webkit.org>
Relocate the ARM NEON SVG filter optimizations
https://bugs.webkit.org/show_bug.cgi?id=102214
Reviewed by Zoltan Herczeg.
Relocate the ARM filter optimizations into platform/graphics/cpu/arm
to keep them together with the others.
From now all graphics optimization for ARM NEON should go here.
* CMakeLists.txt:
* GNUmakefile.am:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* WebCore.pri:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/cpu/arm/filters/FEBlendNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEBlendNEON.h.
(WebCore):
(FEBlendUtilitiesNEON):
(WebCore::FEBlendUtilitiesNEON::div255):
(WebCore::FEBlendUtilitiesNEON::normal):
(WebCore::FEBlendUtilitiesNEON::multiply):
(WebCore::FEBlendUtilitiesNEON::screen):
(WebCore::FEBlendUtilitiesNEON::darken):
(WebCore::FEBlendUtilitiesNEON::lighten):
(WebCore::FEBlend::platformApplyNEON):
* platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FECompositeArithmeticNEON.h.
(WebCore):
(WebCore::FEComposite::computeArithmeticPixelsNeon):
(WebCore::FEComposite::platformArithmeticNeon):
* platform/graphics/cpu/arm/filters/FEGaussianBlurNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEGaussianBlurNEON.h.
(WebCore):
(WebCore::boxBlurNEON):
* platform/graphics/cpu/arm/filters/FELightingNEON.cpp: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp.
(WebCore):
(WebCore::feLightingConstantsForNeon):
(WebCore::FELighting::platformApplyNeonWorker):
(WebCore::FELighting::getPowerCoefficients):
* platform/graphics/cpu/arm/filters/FELightingNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h.
(WebCore):
(FELightingFloatArgumentsForNeon):
(FELightingPaintingDataForNeon):
(WebCore::FELighting::platformApplyNeon):
* platform/graphics/cpu/arm/filters/NEONHelpers.h: Renamed from Source/WebCore/platform/graphics/filters/arm/NEONHelpers.h.
(WebCore):
(WebCore::loadRGBA8AsFloat):
(WebCore::storeFloatAsRGBA8):
2012-11-15 Mike West <mkwst@chromium.org>
We should trigger a console warning when we encounter invalid sandbox flags.
https://bugs.webkit.org/show_bug.cgi?id=101956
Reviewed by Adam Barth.
A developer who writes '<iframe sandbox="allowScripts">' probably has
something in mind other than what the browser interprets. In these
situations, we should log a console warning that notes 'allowScripts'
is an invalid sandbox flag ('allow-scripts' is probably what she
meant).
This patch does the simplest thing possible: it throws a warning that
lists the invalid flags encountered for sandbox attributes on iframes,
and for sandbox Content Security Policy directives.
Tests: http/tests/security/contentSecurityPolicy/sandbox-invalid-header.html
http/tests/security/sandboxed-iframe-invalid.html
* dom/SecurityContext.cpp:
(WebCore::SecurityContext::parseSandboxPolicy):
* dom/SecurityContext.h:
(SecurityContext):
Accept a new out parameter, invalidTokensErrorMessage. If invalid
tokens are encountered, build an error message string, and pass it
back to the caller through this parameter.
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::parseAttribute):
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPDirectiveList::applySandboxPolicy):
When applying a sandbox policy, pass a string into
SecurityContext::parseSandboxPolicy to grab any errors that might
be encountered, and log a warning in that event.
(WebCore::ContentSecurityPolicy::reportInvalidSandboxFlags):
(WebCore):
* page/ContentSecurityPolicy.h:
Adding a new method to report invalid sandbox flags.
2012-11-15 Kenneth Rohde Christiansen <kenneth@webkit.org>
Rename member vars in ViewportArgument to match css-device-adapt
https://bugs.webkit.org/show_bug.cgi?id=102355
Reviewed by Gyuyoung Kim.
No behavior change, thus no new tests.
* dom/ViewportArguments.cpp:
(WebCore::ViewportArguments::resolve):
(WebCore::setViewportFeature):
* dom/ViewportArguments.h:
(WebCore::ViewportArguments::ViewportArguments):
(ViewportArguments):
(WebCore::ViewportArguments::operator==):
2012-11-15 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [WebGL] cloneNode for images with revoked Blob URIs fails
https://bugs.webkit.org/show_bug.cgi?id=102366
Reviewed by Vsevolod Vlasov.
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
2012-11-15 Mark Rowe <mrowe@apple.com>
Build fix.
Disable deprecation warnings in a few places that need it.
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::drawRepaintCounter):
* platform/graphics/mac/FontMac.mm:
(WebCore::showGlyphsWithAdvances):
* platform/graphics/mac/WebLayer.mm:
(drawLayerContents):
2012-11-15 Kent Tamura <tkent@chromium.org>
Support stand-alone month names in calendar picker
https://bugs.webkit.org/show_bug.cgi?id=102196
Reviewed by Kentaro Hara.
We have showed non stand-alone month names in any locales. However
we should show stand-alone month names in some locales such as
Russian.
This patch introduce PagePopupController::formatMonth. It is
exposed to page-popups, and format year-month pairs in the same
way as input[type=month].
No new tests. Affects platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html.
* Resources/pagepopups/calendarPicker.js:
(Month.prototype.toLocaleString):
Calls pagePopupController.formatMonth except Japanese locale.
(handleArgumentsTimeout):
Remove unnecessary default monthLabels.
* page/PagePopupController.cpp:
(WebCore::PagePopupController::formatMonth): Added.
* page/PagePopupController.h:
(PagePopupController): Declare formatMonth.
* page/PagePopupController.idl: Add formatMonth.
2012-11-15 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Fix new JS compiler warnings.
https://bugs.webkit.org/show_bug.cgi?id=102341
Reviewed by Yury Semikhatsky.
New version of compiler finds new inconsistencies.
* inspector/front-end/DOMAgent.js: Replaced 2 simiar cases with loop.
* inspector/front-end/DOMBreakpointsSidebarPane.js:
Declared instance property on WebInspector.
* inspector/front-end/Script.js: Normalized parameter notation.
2012-11-15 Kenneth Rohde Christiansen <kenneth@webkit.org>
Unreviewed build fix.
* dom/ViewportArguments.cpp:
(WebCore::convertToUserSpace): Add static
2012-11-14 Kenneth Rohde Christiansen <kenneth@webkit.org>
Refactor ViewportArguments to only use CSS units
https://bugs.webkit.org/show_bug.cgi?id=102287
Reviewed by Noam Rosenthal.
Refactor the ViewportArgument code to use a member method for
resolving the viewport. This new method only uses arguments in
CSS units.
This is preparation for adding the CSS Device Adaptation support.
Tested by existing tests fast/viewport.
* dom/ViewportArguments.cpp:
(WebCore::clampLengthValue):
(WebCore::clampScaleValue): New utility functions.
(WebCore::ViewportArguments::resolve):
(WebCore::convertToUserSpace): Added until everyone provides arguments
only in CSS units and not device ones.
(WebCore::computeViewportAttributes):
(WebCore::computeMinimumScaleFactorForContentContained):
(WebCore):
(WebCore::restrictMinimumScaleFactorToViewportSize):
* dom/ViewportArguments.h:
(ViewportArguments):
2012-11-14 Shinya Kawanaka <shinyak@chromium.org>
Changing pseudoClass (:disabled) should cause distribution.
https://bugs.webkit.org/show_bug.cgi?id=101901
Reviewed by Hajime Morita.
We have to invalidate distribution when pseudo-class (:disabled) is changed.
According to the HTML5 spec, :disabled will match button, input, select, textarea, optgroup,
option, command, li, and fieldset. However, command is not implemented yet, we skip li and command. li might
have 'disabled' state, but we need a command element to make it 'disabled' state.
Tests: fast/dom/shadow/pseudoclass-update-disabled-button.html
fast/dom/shadow/pseudoclass-update-disabled-fieldset.html
fast/dom/shadow/pseudoclass-update-disabled-input.html
fast/dom/shadow/pseudoclass-update-disabled-optgroup.html
fast/dom/shadow/pseudoclass-update-disabled-option.html
fast/dom/shadow/pseudoclass-update-disabled-select.html
fast/dom/shadow/pseudoclass-update-disabled-textarea.html
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::disabledAttributeChanged):
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::parseAttribute):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::parseAttribute):
2012-11-14 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134691, r134703, r134715, r134716,
and r134733.
http://trac.webkit.org/changeset/134691
http://trac.webkit.org/changeset/134703
http://trac.webkit.org/changeset/134715
http://trac.webkit.org/changeset/134716
http://trac.webkit.org/changeset/134733
https://bugs.webkit.org/show_bug.cgi?id=102342
"Broke the Apple Windows Debug and GTK builds." (Requested by
dydx on #webkit).
* WebCore.exp.in:
* bindings/js/SerializedScriptValue.h:
* testing/Internals.cpp:
* testing/Internals.h:
(WebCore):
* testing/Internals.idl:
2012-11-14 Pavel Feldman <pfeldman@chromium.org>
Not reviewed: fixing inspector tests under Qt.
* inspector/front-end/TestController.js:
* inspector/front-end/utilities.js:
(.):
2012-11-14 Kentaro Hara <haraken@chromium.org>
Unreviewed. Rebaselined run-bindings-tests.
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::toV8Fast):
2012-11-14 Simon Fraser <simon.fraser@apple.com>
Don't use temporary clip rects when hit testing
https://bugs.webkit.org/show_bug.cgi?id=102329
Reviewed by Beth Dakin.
We now cache clip rects separately for painting, hit testing etc. Hit testing
clip rects are always shrunk to exclude scrollbars (so that hit testing on
the scrollbars works), so we no longer every need to use temporary clip rects
during hit testing.
Added an assertion that the scrollbar relevancy when we computed the clip rects
is the same as that when using them.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::updateClipRects):
* rendering/RenderLayer.h:
(WebCore::ClipRectsCache::ClipRectsCache):
(ClipRectsCache):
2012-11-14 Dirk Schulze <krit@webkit.org>
Support animation of basic shape 'polygon'
https://bugs.webkit.org/show_bug.cgi?id=102080
Reviewed by Daniel Bates.
The basic shapes 'circle', 'rectangle' and 'ellipse' are animatable with the committed
patch http://trac.webkit.org/changeset/134352.
This is a follow-up patch to make 'polygon' animatable as well, as long as the number
of vertices between start and end polygon is the same.
Added polygon animation test to existing test:
fast/exclusions/shape-inside/shape-inside-animation.html
css3/masking/clip-path-animation.html
* page/animation/CSSPropertyAnimation.cpp: Forgot to add copyright with last commits.
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShape::canBlend): Polygons are allowed now.
(WebCore::BasicShapePolygon::blend): Interpolate polygon shapes.
2012-11-14 Kentaro Hara <haraken@chromium.org>
Unreviewed. Fix code generator warnings.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateFunctionCallback):
(GenerateImplementation):
2012-11-14 Shinya Kawanaka <shinyak@chromium.org>
Changing pseudoClass (:checked) should cause distribution.
https://bugs.webkit.org/show_bug.cgi?id=101902
Reviewed by Dimitri Glazkov.
When the 'checked' state is changed, we have to invalidate distribution.
According to the HTML5 spec, :checked should match a checked input[type="checkbox"],
a checked input[type="radio"], a selected option, and commands. However, we don't have a command element yet.
Tests: fast/dom/shadow/pseudoclass-update-checked-input.html
fast/dom/shadow/pseudoclass-update-checked-option.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setChecked):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::setSelectedState):
2012-11-14 Kentaro Hara <haraken@chromium.org>
[V8] Kill $implClassName from CodeGeneratorV8.pm
https://bugs.webkit.org/show_bug.cgi?id=102312
Reviewed by Adam Barth.
$implClassName and $interfaceName are the same.
Sometimes we are passing both $implClassName and $interfaceName to
subroutines. We can kill $implClassName.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateOpaqueRootForGC):
(GenerateHeader):
(GenerateDomainSafeFunctionGetter):
(GenerateDomainSafeFunctionSetter):
(GenerateConstructorGetter):
(GenerateNormalAttrGetter):
(GenerateReplaceableAttrSetter):
(GenerateNormalAttrSetter):
(GenerateEventListenerCallback):
(GenerateOverloadedFunctionCallback):
(GenerateFunctionCallback):
(GenerateParametersCheck):
(GenerateOverloadedConstructorCallback):
(GenerateSingleConstructorCallback):
(GenerateConstructorCallback):
(GenerateEventConstructorCallback):
(GenerateTypedArrayConstructorCallback):
(GenerateNamedConstructorCallback):
(GenerateImplementation):
(GenerateFunctionCallString):
2012-11-14 Adam Barth <abarth@webkit.org>
[V8] We can shave one instruction off toV8Fast
https://bugs.webkit.org/show_bug.cgi?id=102297
Reviewed by Kentaro Hara.
There's no reason to store info.Holder in a local variable. Calling
Holder() is essentially free because it's inlined to an offset read.
I doubt this patch moves the performance needle in any measurable way,
but it makes the code slightly prettier.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::toV8Fast):
2012-11-14 Kentaro Hara <haraken@chromium.org>
[V8] Get rid of a redundant branch in JSValueToNative()
https://bugs.webkit.org/show_bug.cgi?id=102311
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(JSValueToNative):
(NativeToJSValue):
2012-11-14 Shinya Kawanaka <shinyak@chromium.org>
Changing pseudoClass (:link) should cause distribution
https://bugs.webkit.org/show_bug.cgi?id=101698
Reviewed by Hajime Morita.
CSSSelector :link matches anchor element with href attribute. When href attribute of an anchor element is changed,
we have to invalidate distribution.
According to the HTML spec, :link matches a link element having href attribute, currently we have not implemented it yet.
Tests: fast/dom/shadow/pseudoclass-update-link-anchor.html
fast/dom/shadow/pseudoclass-update-link-area.html
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parseAttribute):
2012-11-14 Kentaro Hara <haraken@chromium.org>
Remove unused functions from CodeGenerator.pm
https://bugs.webkit.org/show_bug.cgi?id=102316
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/scripts/CodeGenerator.pm:
(GenerateCompileTimeCheckForEnumsIfNeeded):
2012-11-14 Tiancheng Jiang <tijiang@rim.com>
[BlackBerry] Update BB10 form theme.
https://bugs.webkit.org/show_bug.cgi?id=100760
Reviewed by Rob Buis.
RIM PR 225755
Internally Reviewed by Eli Fidler.
Update checkbox, radio and menulist button style. Adjust border width
and line height.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::RenderThemeBlackBerry::adjustMenuListButtonStyle):
* platform/blackberry/RenderThemeBlackBerry.h:
(RenderThemeBlackBerry):
2012-11-14 Erik Arvidsson <arv@chromium.org>
Update DOMException name: InvalidModificationError
https://bugs.webkit.org/show_bug.cgi?id=102281
Reviewed by Kentaro Hara.
Patch 13 of 25 to update DOMException name to match the spec and Firefox.
DOMExcecption INVALID_MODIFICATION_ERR is not used in our code.
* dom/DOMCoreException.cpp:
2012-11-14 Adam Barth <abarth@webkit.org>
document variable in Document::axObjectCache is actually the topDocument
https://bugs.webkit.org/show_bug.cgi?id=101966
Reviewed by Chris Fleizach.
Name change requested by Darin Adler.
* dom/Document.cpp:
(WebCore::Document::axObjectCache):
2012-11-14 Joseph Pecoraro <pecoraro@apple.com>
[CF]: XMLHttpRequest "timeout" events firing as "error" events
https://bugs.webkit.org/show_bug.cgi?id=102271
Reviewed by David Kilzer.
Initialize the tiemout flag if the error results from a timeout
in the USE(CFNETWORK) cases.
No new tests. This is covered by http/tests/xmlhttprequest/timeout
tests on ports that USE(CFNETWORK).
* platform/network/cf/ResourceErrorCF.cpp:
(WebCore::ResourceError::ResourceError):
* platform/network/mac/ResourceErrorMac.mm:
(WebCore::ResourceError::ResourceError):
2012-11-14 Nico Weber <thakis@chromium.org>
[chromium/mac] Fix drawing of buttons, checkboxes, radio boxes, and steppers when the page is scaled
https://bugs.webkit.org/show_bug.cgi?id=102282
Reviewed by James Robinson.
Chromium uses skia, and skia state is synced with CG context state at
LocalCurrentGraphicsContext construction time. So delay that
construction after context transforms have happened.
(This regressed in http://trac.webkit.org/changeset/125830)
Covered by the new pixel test fast/forms/zoomed-controls.html. I
couldn't find an existing test for this.
* platform/mac/ThemeMac.mm:
(WebCore::paintCheckbox):
(WebCore::paintRadio):
(WebCore::paintButton):
2012-11-14 Mark Lam <mark.lam@apple.com>
Change JSEventListener::m_jsFunction to be a weak ref.
https://bugs.webkit.org/show_bug.cgi?id=101989.
Reviewed by Geoffrey Garen.
No new tests.
* ForwardingHeaders/heap/SlotVisitor.h: Added.
* bindings/js/JSDOMBinding.h: Added #include <heap/SlotVisitor.h>
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::JSEventListener):
(WebCore::JSEventListener::visitJSFunction):
(WebCore::JSEventListener::operator==):
- Removed the m_wrapper checks in operator==() because they are not
needed. There is no longer any threat of m_jsFunction pointing to
recycled memory. The use of weak refs will ensure that m_jsFunction
is either still holding on to its old memory exclusively, or is 0'ed
out when the GC collects it.
* bindings/js/JSEventListener.h:
(JSEventListener):
(WebCore::JSEventListener::jsFunction):
2012-11-14 Dan Carney <dcarney@google.com>
[V8] Rename dispatchWrap
https://bugs.webkit.org/show_bug.cgi?id=102240
Reviewed by Adam Barth.
Mostly a rename:
dispatchWrap->wrap
wrapSlow->createWrapper
dispatchWrapCustom->wrap
No new tests. No change in functionality.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNormalAttrGetter):
(GenerateImplementation):
(GenerateToV8Converters):
* bindings/scripts/IDLAttributes.txt:
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::wrap):
(WebCore::V8Float64Array::createWrapper):
* bindings/scripts/test/V8/V8Float64Array.h:
(V8Float64Array):
(WebCore):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::V8TestActiveDOMObject::createWrapper):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(V8TestActiveDOMObject):
(WebCore::wrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::createWrapper):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(V8TestCustomNamedGetter):
(WebCore::wrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::createWrapper):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(V8TestEventConstructor):
(WebCore::wrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::V8TestEventTarget::createWrapper):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(V8TestEventTarget):
(WebCore::wrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::createWrapper):
* bindings/scripts/test/V8/V8TestException.h:
(V8TestException):
(WebCore::wrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::V8TestInterface::createWrapper):
* bindings/scripts/test/V8/V8TestInterface.h:
(V8TestInterface):
(WebCore::wrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::createWrapper):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(V8TestMediaQueryListListener):
(WebCore::wrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructor::createWrapper):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(V8TestNamedConstructor):
(WebCore::wrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::createWrapper):
* bindings/scripts/test/V8/V8TestNode.h:
(V8TestNode):
(WebCore::wrap):
(WebCore::toV8Object):
(WebCore::toV8):
(WebCore::toV8Fast):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::V8TestObj::createWrapper):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
(WebCore::wrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::createWrapper):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(V8TestOverloadedConstructors):
(WebCore::wrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::createWrapper):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(V8TestSerializedScriptValueInterface):
(WebCore::wrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/v8/custom/V8BlobCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8CSSRuleCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8CSSValueCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8ElementCustom.cpp:
(WebCore):
(WebCore::wrap):
* bindings/v8/custom/V8EntryCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8EntrySyncCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8EventCustom.cpp:
(WebCore):
(WebCore::wrap):
* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8HTMLElementCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8ImageDataCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8NodeCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8PerformanceEntryCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8SVGDocumentCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8SVGElementCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8SVGPathSegCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8StyleSheetCustom.cpp:
(WebCore::wrap):
* dom/make_names.pl:
(printWrapperFunctions):
(printWrapperFactoryCppFile):
2012-11-14 Ryuan Choi <ryuan.choi@gmail.com>
[EFL] Refactor theme to choose whether to support foreground color of selection
https://bugs.webkit.org/show_bug.cgi?id=102037
Reviewed by Gyuyoung Kim.
RenderThemeEfl can change foreground color of selection using theme file.
But it can not disable supports of foreground color to keep the text color
which is selected.
This patch refactors color classes of theme file from active/inactive classes
to foreground/background classes so that RenderThemeEfl checks whether
theme file supports foreground color class.
* platform/efl/RenderThemeEfl.cpp:
(WebCore::fillColorsFromEdjeClass):
(WebCore::RenderThemeEfl::setColorFromThemeClass):
(WebCore::RenderThemeEfl::loadTheme):
(WebCore::RenderThemeEfl::RenderThemeEfl):
(WebCore::RenderThemeEfl::supportsSelectionForegroundColors):
(WebCore):
* platform/efl/RenderThemeEfl.h:
(RenderThemeEfl):
2012-11-14 Tony Chang <tony@chromium.org>
Convert m_selectorVector back to a stack allocated m_reusableSelectorVector
https://bugs.webkit.org/show_bug.cgi?id=102295
Reviewed by Andreas Kling.
Revert r125252 because we're not going to go forward with implementing CSS hierarchies at this time.
No new tests because there should be no change in behavior.
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::CSSParser):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseColor):
(WebCore::CSSParser::parseDeclaration):
(WebCore):
(WebCore::filterProperties):
(WebCore::CSSParser::createStylePropertySet):
(WebCore::CSSParser::addProperty):
(WebCore::CSSParser::rollbackLastProperties):
(WebCore::CSSParser::clearProperties):
(WebCore::CSSParser::parse4Values):
(WebCore::CSSParser::parseFlowThread):
(WebCore::CSSParser::addTextDecorationProperty):
(WebCore::CSSParser::createFloatingSelectorVector):
(WebCore::CSSParser::sinkFloatingSelectorVector):
(WebCore::CSSParser::createStyleRule):
(WebCore::CSSParser::createFontFaceRule):
(WebCore::CSSParser::createPageRule):
(WebCore::CSSParser::setReusableRegionSelectorVector):
(WebCore::CSSParser::startDeclarationsForMarginBox):
(WebCore::CSSParser::endDeclarationsForMarginBox):
(WebCore::CSSParser::deleteFontFaceOnlyValues):
* css/CSSParser.h:
(WebCore::CSSParser::hasProperties):
(WebCore::CSSParser::reusableSelectorVector):
(CSSParser):
(WebCore::CSSParser::reusableRegionSelectorVector):
* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::adoptSelectorVector):
* css/CSSParserValues.h:
(CSSParserSelector):
* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::adoptSelectorVector):
* css/CSSSelectorList.h:
(CSSSelectorList):
* css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
* css/StyleRule.cpp:
(WebCore::StyleRuleRegion::StyleRuleRegion):
* css/StyleRule.h:
(WebCore::StyleRule::parserAdoptSelectorVector):
(WebCore::StyleRulePage::parserAdoptSelectorVector):
(WebCore::StyleRuleRegion::create):
(StyleRuleRegion):
2012-11-14 Alec Flett <alecflett@chromium.org>
Add tests for explicit serialization values
https://bugs.webkit.org/show_bug.cgi?id=96818
Reviewed by Adam Barth.
Expose direct access to the serialization/deserialization mechanisms
of SerializedScriptValue to DumpRenderTree.
* testing/Internals.cpp:
(WebCore::Internals::serializeObject):
(WebCore):
(WebCore::Internals::deserializeBuffer):
* testing/Internals.h:
(WebCore):
* testing/Internals.idl:
2012-11-14 Michael Pruett <michael@68k.org>
IndexedDB: Add clear() method to JSC ScriptValue
https://bugs.webkit.org/show_bug.cgi?id=102288
Reviewed by Kentaro Hara.
IndexedDB uses the ScriptValue::clear() method, which existed
previously only in the V8 implementation of ScriptValue. This
change is necessary to implement IndexedDB for JSC.
Tests: storage/indexeddb/*
* bindings/js/ScriptValue.h:
(WebCore::ScriptValue::clear):
(ScriptValue):
2012-11-14 Joshua Bell <jsbell@chromium.org>
IndexedDB: Indexing tests are flaky-crashing
https://bugs.webkit.org/show_bug.cgi?id=102283
Reviewed by Tony Chang.
Don't commit the transaction if there are outstanding pre-emptive events
from indexing operations.
Speculative fix for the flakiness.
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
2012-11-14 Tony Chang <tony@chromium.org>
Crash in flexbox when removing absolutely positioned children
https://bugs.webkit.org/show_bug.cgi?id=100465
Reviewed by Ojan Vafai.
We use m_numberOfChildrenOnFirstLine when computing baseline alignment.
This value gets set during flexbox layout. When we remove an absolutely
positioned child, we don't relayout and this value would get stale.
Change m_numberOfChildrenOnFirstLine to m_numberOfInFlowChildrenOnFirstLine
so the value doesn't get stale when we remove absolutely positioned children.
Also change the loop in firstLineBoxBaseline to bail if we run off the end of
the iterator.
Test: css3/flexbox/crash-removing-out-of-flow-child.html
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::RenderFlexibleBox):
(WebCore::RenderFlexibleBox::firstLineBoxBaseline):
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
* rendering/RenderFlexibleBox.h:
2012-11-14 Joshua Bell <jsbell@chromium.org>
IndexedDB: Remove magic numbers in record comparator, handle missing case
https://bugs.webkit.org/show_bug.cgi?id=102255
Reviewed by Tony Chang.
For some ranges of metadata entries, a simple type byte comparison is sufficient
for the backing store comparator. In two places those ranges used magic numbers,
one of which was incorrect - which could lead to failed reads/writes.
Test: webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'
* Modules/indexeddb/IDBLevelDBCoding.cpp:
(IDBLevelDBCoding):
(WebCore::IDBLevelDBCoding::compare):
* Modules/indexeddb/IDBLevelDBCoding.h:
2012-11-14 Dirk Schulze <krit@webkit.org>
Cleanup BasicShape blending check
https://bugs.webkit.org/show_bug.cgi?id=102289
Reviewed by Daniel Bates.
CSSPropertyAnimation had the same code for varifying that two BasicShape objects can be blended
twice. Refactor the code and add a canBlend method in BasicShape that combines both checks. This
is a preparation for follow-up patches.
Pure refactoring without behavior change, no new tests.
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc): Call new canBlend method for blending verification.
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShape::canBlend): Check if two BasicShape objects can be blended.
(WebCore):
* rendering/style/BasicShapes.h:
2012-11-14 Dirk Schulze <krit@webkit.org>
[CSS Exclusions] Basic shapes on 'shape-inside' should be animatable
https://bugs.webkit.org/show_bug.cgi?id=102123
Reviewed by Antti Koivisto.
The '-webkit-shape-inside' propery takes a BasicShape as input like
'-webkit-clip-path'. Follow up on http://trac.webkit.org/changeset/134352 and
make '-webkit-shape-inside' animatable as well.
Test: fast/exclusions/shape-inside/shape-inside-animation.html
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc): Blend fuction for exclusion shapes. The property takes another
input then '-webkit-clip-path'.
(WebCore):
(PropertyWrapperBasicShape): Add wrapper for BasicShape object. Can be reused by
'-webkit-shape-ourside' as well.
(WebCore::PropertyWrapperBasicShape::PropertyWrapperBasicShape):
(WebCore::CSSPropertyAnimation::ensurePropertyMap):
2012-11-14 Helder Correia <helder.correia@nokia.com>
[TexMap][Cairo] Accelerated compositing debug visuals
https://bugs.webkit.org/show_bug.cgi?id=101883
Reviewed by Kenneth Rohde Christiansen.
No new tests, just introducing a debug feature.
Add a Cairo implementation to complement the patch from bug 90116
(http://trac.webkit.org/changeset/122275).
For this feature to be enabled, the environment variable
WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS must be set to 1. Once enabled,
both repaint counters and tile borders will be painted.
A Cairo-specific drawRepaintCounter() implementation was added to
TextureMapperGL. A cairo_surface_t is used as scratch buffer to paint
the 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 has a repaint counter which gets incremented in
LayerBackingStore::updateTile().
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawRepaintCounter):
2012-11-14 Michael Pruett <michael@68k.org>
IndexedDB: Add JSNoStaticTables to IndexedDB interfaces
https://bugs.webkit.org/show_bug.cgi?id=102268
Reviewed by Geoffrey Garen.
Add JSNoStaticTables attribute to IndexedDB interface
definitions. This attribute must be specified in interfaces
which can be accessed from workers.
Tests: storage/indexeddb/*
* Modules/indexeddb/IDBAny.idl:
* Modules/indexeddb/IDBCursor.idl:
* Modules/indexeddb/IDBCursorWithValue.idl:
* Modules/indexeddb/IDBDatabase.idl:
* Modules/indexeddb/IDBDatabaseException.idl:
* Modules/indexeddb/IDBFactory.idl:
* Modules/indexeddb/IDBIndex.idl:
* Modules/indexeddb/IDBKey.idl:
* Modules/indexeddb/IDBKeyRange.idl:
* Modules/indexeddb/IDBObjectStore.idl:
* Modules/indexeddb/IDBOpenDBRequest.idl:
* Modules/indexeddb/IDBRequest.idl:
* Modules/indexeddb/IDBTransaction.idl:
* Modules/indexeddb/IDBUpgradeNeededEvent.idl:
* Modules/indexeddb/IDBVersionChangeEvent.idl:
* Modules/indexeddb/IDBVersionChangeRequest.idl:
* dom/DOMStringList.idl:
2012-11-14 Michael Pruett <michael@68k.org>
IndexedDB: Replace int64 with int64_t
https://bugs.webkit.org/show_bug.cgi?id=102270
Reviewed by Tony Chang.
Cleaning up coding inconsistencies, no change in behavior.
Tests: storage/indexeddb/*
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::deleteObjectStore):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::putInternal):
2012-11-14 Viatcheslav Ostapenko <v.ostapenko@samsung.com>
[EFL][WK2] White flicker when scrolling big pages with dark background on slower hardware.
https://bugs.webkit.org/show_bug.cgi?id=102000
Reviewed by Noam Rosenthal.
Add helper functions to clear viewport before painting. Those functions
used by EFL Webkit2 port to set view background to match page background
in order to reduce visibility of flicker during scrolling/scaling/repainting
where page tiles are not ready.
* platform/graphics/texmap/TextureMapper.h:
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore):
* platform/graphics/texmap/TextureMapperGL.h:
* platform/graphics/texmap/TextureMapperImageBuffer.cpp:
(WebCore::TextureMapperImageBuffer::drawSolidColor):
(WebCore):
* platform/graphics/texmap/TextureMapperImageBuffer.h:
2012-11-14 Mark Lam <mark.lam@apple.com>
Fixed regressions due to adding JSEventListener::m_wrapper null checks.
https://bugs.webkit.org/show_bug.cgi?id=102183.
Reviewed by Geoffrey Garen.
Fixed JSEventListener::operator==() to work within the contract that
when m_wrapper is 0, m_jsFunction is also expected to be 0. Also fixed
some typos in comments.
No new tests.
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::visitJSFunction):
(WebCore::JSEventListener::operator==):
* bindings/js/JSEventListener.h:
(WebCore::JSEventListener::jsFunction):
2012-11-14 Nate Chapin <japhet@chromium.org>
Fix chromium asserts from r134649.
Rubber-stamped by Adam Barth.
MainResourceLoader was calling releaseResources() twice when cancelled
within MainResourceLoader::load(), so check reachedTerminalState() before
calling releaseResources() there.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::load):
2012-11-14 Andreas Kling <kling@webkit.org>
Only resolve presentation attribute style once per shared ElementAttributeData.
<http://webkit.org/b/100990>
Reviewed by Antti Koivisto.
Track the "presentation attribute style dirty" state on ElementAttributeData instead of in a Node flag.
This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
since the state is no longer per-Element.
I've left the presentation attribute cache in there for now, since it still covers the case where
two elements have the same presentation attributes but different non-presentation attributes.
It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
(WebCore::StyledElement::rebuildPresentationAttributeStyle):
* dom/StyledElement.h:
(WebCore::StyledElement::presentationAttributeStyle):
(WebCore::ElementAttributeData::ElementAttributeData):
* dom/ElementAttributeData.h:
(WebCore::ElementAttributeData::ElementAttributeData):
(ElementAttributeData):
* dom/Node.h:
Move presentation attribute style dirty flag from Node to ElementAttributeData.
* dom/ElementAttributeData.cpp:
(SameSizeAsElementAttributeData):
Add a compile-time object size assertion for ElementAttributeData.
* dom/StyledElement.cpp:
(WebCore::StyledElement::attributeChanged):
Don't mark the presentation attribute style dirty if the element is using an immutable (implies
shared) ElementAttributeData and another element has already generated the StylePropertySet.
The element itself is still marked for style recalc like before, this just avoids the process
of converting the attributes to CSS properties.
2012-11-14 Scott Violet <sky@chromium.org>
[Chromium] Refactor theme font lookup into a factory
https://bugs.webkit.org/show_bug.cgi?id=101949
Reviewed by Tony Chang.
This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
No new tests. Refactoring only.
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* rendering/RenderThemeChromiumFontProvider.cpp: Added.
(WebCore):
(WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
* rendering/RenderThemeChromiumFontProvider.h: Added.
(WTF):
(WebCore):
(RenderThemeChromiumFontProvider): This is the font related methods.
* rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
(WebCore):
(WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
(WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
* rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
(WebCore):
(WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
(WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
(WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
(WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
(WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
(WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
(WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
* rendering/RenderThemeChromiumSkia.h:
(RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
* rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
(WebCore):
* rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
(RenderThemeChromiumWin):
2012-11-14 Erik Arvidsson <arv@chromium.org>
Update DOMException name: InUseAttributeError
https://bugs.webkit.org/show_bug.cgi?id=102141
Reviewed by Ojan Vafai.
Patch 10 of 25 to update DOMException name to match the spec and Firefox.
The name for this is not in the spec but the case was selected to match
Firefox. http://mxr.mozilla.org/mozilla-central/source/dom/base/domerr.msg#18
INUSE_ATTRIBUTE_ERR is historical and not used in any spec or any of our tests.
* dom/DOMCoreException.cpp:
* dom/ExceptionCode.h:
2012-11-14 Lynn Neir <lynn.neir@skype.net>
[WinCairo] Incorrect line-height for styled menulist (select tag)
in windows theme.
https://bugs.webkit.org/show_bug.cgi?id=79435
Reviewed by Brent Fulgham
Applied same fix as in RenderThemeSafari::adjustMenuListButtonStyle
to Windows theme to fix issue.
Tests: fast/forms/menulist-restrict-line-height.html
fast/forms/control-restrict-line-height.html
fast/forms/basic-selects.html
* rendering/RenderThemeWin.cpp:
(WebCore::RenderThemeWin::adjustMenuListButtonStyle): Set line
height to the correct initial height.
2012-11-14 Erik Arvidsson <arv@chromium.org>
Update DOMException name: WrongDocumentError
https://bugs.webkit.org/show_bug.cgi?id=102096
Reviewed by Ojan Vafai.
Patch 4 of 25 to update DOMException name to match the spec and Firefox.
Updated existing tests.
* dom/DOMCoreException.cpp:
2012-11-14 Nate Chapin <japhet@chromium.org>
Move empty loading to DocumentLoader, simplify FrameLoader::init()
https://bugs.webkit.org/show_bug.cgi?id=101512
Reviewed by Adam Barth.
No new tests, though several outputs changed because we no longer send resource
load callbacks for empty loads.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
loads directly here.
* loader/DocumentLoader.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
were previously being reset in init(). Given that the FrameLoader is in
an inconsistent state before init() is called anyway, there doesn't seem
to be a disadvantage to just initializing them to their post-init() values.
(WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
doing a bunch of direct calls to functions FrameLoader shouldn't know about.
* loader/FrameLoaderStateMachine.cpp:
* loader/FrameLoaderStateMachine.h:
* loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
(WebCore::MainResourceLoader::loadNow): This only returned true when an empty
load got deferred, which won't happen now. Return void and always treat
as returning false.
* loader/MainResourceLoader.h:
2012-11-14 Erik Arvidsson <arv@chromium.org>
Update DOMException name: InvalidStateError
https://bugs.webkit.org/show_bug.cgi?id=102241
Reviewed by Ojan Vafai.
Patch 11 of 25 to update DOMException name to match the spec and Firefox.
Updated existing tests.
* dom/DOMCoreException.cpp:
2012-11-14 Joshua Bell <jsbell@chromium.org>
Rename NATIVE_TYPE_ERR to TypeError
https://bugs.webkit.org/show_bug.cgi?id=102114
Reviewed by Kentaro Hara.
Defines names (mostly) matching WebIDL exception types for use by dom (etc) code.
V8 binding code had colliding enum members, which required prefixing.
No new tests - just internal renames.
* Modules/indexeddb/IDBCursor.cpp: s/NATIVE_TYPE_ERR/TypeError/g
(WebCore::IDBCursor::advance):
(WebCore::IDBCursor::stringToDirection):
(WebCore::IDBCursor::directionToString):
* Modules/indexeddb/IDBDatabase.cpp: Ditto.
(WebCore::IDBDatabase::setVersion):
* Modules/indexeddb/IDBFactory.cpp: Ditto.
(WebCore::IDBFactory::open):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):
* Modules/indexeddb/IDBObjectStore.cpp: Ditto.
(WebCore::IDBObjectStore::createIndex):
* Modules/indexeddb/IDBTransaction.cpp: Ditto.
(WebCore::IDBTransaction::stringToMode):
(WebCore::IDBTransaction::modeToString):
* bindings/js/JSDOMBinding.cpp: Ditto.
(WebCore::setDOMException):
* bindings/v8/DateExtension.cpp: Prefix ErrorType enum/members w/ V8/v8.
(WebCore::DateExtension::OnSleepDetected):
* bindings/v8/NPV8Object.cpp: Ditto.
(_NPN_SetException):
* bindings/v8/V8Binding.cpp: Ditto.
(WebCore::throwError):
(WebCore::handleMaxRecursionDepthExceeded):
* bindings/v8/V8Binding.h: Ditto.
(WebCore):
* bindings/v8/V8NPObject.cpp: Ditto.
(WebCore::npObjectInvokeImpl):
(WebCore::npObjectGetProperty):
(WebCore::npObjectSetProperty):
(WebCore::npObjectPropertyEnumerator):
* bindings/v8/V8ThrowException.cpp: Rename ALL the errors!
(WebCore::V8ThrowException::setDOMException):
(WebCore::V8ThrowException::throwError):
(WebCore::V8ThrowException::throwTypeError):
(WebCore::V8ThrowException::throwNotEnoughArgumentsError):
* bindings/v8/V8ThrowException.h:
(V8ThrowException):
* bindings/v8/WorkerContextExecutionProxy.cpp: Prefixing (continued)
(WebCore::WorkerContextExecutionProxy::evaluate):
* bindings/v8/custom/V8ArrayBufferCustom.cpp: Ditto.
(WebCore::V8ArrayBuffer::constructorCallback):
* bindings/v8/custom/V8ArrayBufferViewCustom.h: Ditto.
(WebCore::constructWebGLArrayWithArrayBufferArgument):
(WebCore::constructWebGLArray):
(WebCore::setWebGLArrayHelper):
* bindings/v8/custom/V8AudioContextCustom.cpp: Ditto.
(WebCore::V8AudioContext::constructorCallback):
* bindings/v8/custom/V8BlobCustom.cpp: Ditto.
(WebCore::V8Blob::constructorCallback):
* bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
(WebCore::V8Clipboard::clearDataCallback):
(WebCore::V8Clipboard::setDragImageCallback):
* bindings/v8/custom/V8DOMFormDataCustom.cpp: Ditto.
(WebCore::V8DOMFormData::appendCallback):
* bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: Ditto.
(WebCore::V8SQLResultSetRowList::itemCallback):
* dom/ExceptionCode.h: Add WebIDL exception types.
2012-11-14 Tiancheng Jiang <tijiang@rim.com>
[BlackBerry] Style BB10 time input field font.
https://bugs.webkit.org/show_bug.cgi?id=102260.
Reviewed by Rob Buis.
RIM PR 243355
Adjust time input field font using BB10 system default font.
* css/themeBlackBerry.css:
(input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
2012-11-14 Li Yin <li.yin@intel.com>
createDelay should raise exception when the maxDelayTime parameter is incorrect.
https://bugs.webkit.org/show_bug.cgi?id=102173
Reviewed by Chris Rogers.
Spec: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
The specified value must be greater than zero and less than three minutes or a
NOT_SUPPORTED_ERR exception will be thrown.
Tests: webaudio/delaynode-maxdelaylimit.html
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createDelay):
* Modules/webaudio/AudioContext.h:
(AudioContext):
* Modules/webaudio/AudioContext.idl: Add raising exception for createDelay.
* Modules/webaudio/DelayNode.cpp:
(WebCore):
(WebCore::DelayNode::DelayNode):
* Modules/webaudio/DelayNode.h:
(WebCore::DelayNode::create):
(DelayNode):
2012-11-14 Simon Fraser <simon.fraser@apple.com>
Don't pass a paintingRoot when painting from RenderLayerBacking
https://bugs.webkit.org/show_bug.cgi?id=102256
Reviewed by David Hyatt.
The 'paintingRoot' parameter to the RenderLayer paint functions
is used when painting just a subtree (e.g. when painting dragged
selections). There is no need to pass it when a RenderLayerBacking
paints its contents or overlay scrollbars.
Passing it requires an expensive isDescendant() check, so passing
null is more efficient.
* rendering/RenderLayer.h:
(WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer):
(WebCore::RenderLayerBacking::paintContents):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
2012-11-14 Alec Flett <alecflett@chromium.org>
Add DOMRequestState to maintain world/ScriptExecutionContext state
https://bugs.webkit.org/show_bug.cgi?id=102102
Reviewed by Adam Barth.
Introduce DOMRequestState, and convert IndexedDB over.
No new tests, this is an abstraction layer for existing code.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::onSuccess):
(WebCore::IDBRequest::dispatchEvent):
* Modules/indexeddb/IDBRequest.h:
(IDBRequest):
* WebCore.gypi:
* bindings/v8/DOMRequestState.h: Added.
(WebCore):
(DOMRequestState):
(WebCore::DOMRequestState::DOMRequestState):
(Scope):
(WebCore::DOMRequestState::Scope::Scope):
(WebCore::DOMRequestState::scope):
2012-11-14 Justin Novosad <junov@google.com>
Boxes with rounded corners and thin borders are too slow to draw
https://bugs.webkit.org/show_bug.cgi?id=101974
Reviewed by Simon Fraser.
With the current implementation RenderBox::
determineBackgroundBleedAvoidance() uses the slow path
BackgroundBleedUseTransparencyLayer for some very common use cases,
notably for drawing rectangles with rounded corners that have thin
borders. This is because the BackgroundBleedShrinkBackground
strategy requires a border at least two pixels wide on all sides. This
patch introduce drawing strategy BackgroundBleedBackgroundOverBorder.
This approach consists in drawing the border first, with an inset inner
edge (for anti-aliased compositing to work well). This approach only
works with opaque solid edges and opaque single-layer backgrounds.
By using this approach rather than BackgroundBleedUseTransparencyLayer,
we save two clipPath, one save and one saveLayer on the
GraphicsContext. This patch gets good coverage from existing layout
tests. One additional test was added to exercise mitring, thick edges
and anti-aliasing edge cases under the new painting algorithm.
Test: fast/borders/border-radius-wide-border-05.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::determineBackgroundBleedAvoidance):
Added selection criteria for BackgroundOverBorder
(WebCore::RenderBox::paintBoxDecorations):
Added a preliminary paintBorder pass for BackgroundOverBorder
(WebCore::RenderBox::paintBackground):
Insetting the background to to innerBorder when bleedAvoidance is
BackgroundOverBorder. This why BackgroundOverBorder only works for
Opaque solid edges.
(WebCore):
(WebCore::RenderBox::backgroundIsSingleOpaqueLayer):
Utility method use by determineBackgroundBleedAvoidance to test the
background's eligibility for BackgroundOverBorder bleed avoidance
strategy. The reason the background must be a single layer is to avoid
color bleeding from layer compositing along anti-aliased edges
* rendering/RenderBox.h:
(RenderBox):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
(WebCore::RenderBoxModelObject::borderInnerRectAdjustedForBleedAvoidance):
Added support for BackgroundOverBorder by applying a one pixel inset.
(WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance):
Set the background rect to the inner border for BackgroundOverBorder
(WebCore):
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
Added support for BackgroundOverBorder by using
backgroundRoundedRectAdjustedForBleedAvoidance
(WebCore::RenderBoxModelObject::paintBorderSides):
Added support for BackgroundOverBorder by applying per-side inset
adjustments.
(WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
(WebCore::RenderBoxModelObject::paintBorder):
Added support for BackgroundOverBorder by using an adjusted inner
border, but not if sides are painted individually.
* rendering/RenderBoxModelObject.h:
(RenderBoxModelObject):
2012-11-14 Hideki Yoshida <yoshida-hxa@necst.nec.co.jp>
[WinCairo] Fix cairo_t* memory leak in GraphicsContext::platformInit
https://bugs.webkit.org/show_bug.cgi?id=76219
Reviewed by Brent Fulgham.
This patch is to fix a memory leak problem which occurs
in every rendering process on Wincairo port.
By applying this patch, the memory allocated in cairo
library will be released by calling cairo_destroy.
* platform/graphics/win/GraphicsContextCairoWin.cpp:
(WebCore::GraphicsContext::platformInit):
2012-11-14 Sami Kyostila <skyostil@chromium.org>
Optimize painting of composited scrolling layers
https://bugs.webkit.org/show_bug.cgi?id=96087
Reviewed by Simon Fraser.
Don't completely repaint accelerated scrolling layers when the scroll offset
changes.
Test: compositing/overflow/scrolling-without-painting.html
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::setOffsetFromRenderer):
* platform/graphics/GraphicsLayer.h:
(GraphicsLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2012-11-14 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: keep track of mutation observers and disconnect them upon upload
https://bugs.webkit.org/show_bug.cgi?id=102239
Reviewed by Vsevolod Vlasov.
Otherwise we hit memory leaks.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype.wasShown):
(WebInspector.DefaultTextEditor.prototype.willHide):
(WebInspector.TextEditorMainPanel.prototype._wasShown):
(WebInspector.TextEditorMainPanel.prototype._willHide):
(WebInspector.TextEditorMainPanel.prototype._attachMutationObserver):
(WebInspector.TextEditorMainPanel.prototype._detachMutationObserver):
* inspector/front-end/utilities.js:
2012-11-14 Sergio Villar Senin <svillar@igalia.com>
[Qt] Use a node image if there is no drag image set for Drag&Drop
https://bugs.webkit.org/show_bug.cgi?id=102124
Reviewed by Simon Hausmann.
Use the nodeImage provided by the frame if there is no dragImage in
the clipboard for the current drag&drop operation.
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::createDragImage):
2012-11-14 Max Vujovic <mvujovic@adobe.com>
Call to enclosingFilterLayer() in RenderObject::containerForRepaint() is expensive
https://bugs.webkit.org/show_bug.cgi?id=101846
Reviewed by Simon Fraser.
If software-rendered CSS Filters have not been used in the document, avoid doing the second
tree walk in RenderObject::containerForRepaint, which determines the RenderObject's
enclosing filter layer.
No new tests. We now avoid a filters related code path for a performance improvement when
we're not using filters.
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
* page/FrameView.h:
(FrameView):
(WebCore::FrameView::setHasSoftwareFilters):
(WebCore::FrameView::hasSoftwareFilters):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containerForRepaint):
2012-11-14 Erik Arvidsson <arv@chromium.org>
Update DOMException name: NotFoundError
https://bugs.webkit.org/show_bug.cgi?id=102137
Reviewed by Ojan Vafai.
Patch 8 of 25 to update DOMException name to match the spec and Firefox.
Updated existing tests.
* dom/DOMCoreException.cpp:
2012-11-14 Otto Derek Cheung <otcheung@rim.com>
[BlackBerry] Updating BB Cookie database to use WAL
https://bugs.webkit.org/show_bug.cgi?id=102237
Reviewed by Rob Buis.
The cookie database is accessed by one process only and should be updated to
use the WAL journal mode for better I/O performance.
PR 236553
cookieCollection.db-wal is created after the conversion to WAL.
Tested cookie persistence by logging on to random sites and restarting the browser and
check if it automatically logs in.
Also tested using Opera's cookie persistence test.
* platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
(WebCore::CookieDatabaseBackingStore::invokeOpen):
2012-11-14 Erik Arvidsson <arv@chromium.org>
Update DOMException name: IndexSizeError
https://bugs.webkit.org/show_bug.cgi?id=102087
Reviewed by Ojan Vafai.
This is the first in a series of updates to DOMException name to match
the spec and Firefox.
Patch 1 of 25
Updated existing tests.
* dom/DOMCoreException.cpp:
(WebCore):
2012-11-14 Gabor Rapcsanyi <rgabor@webkit.org>
Fix [-Wmissing-braces] warnings in graphics/cpu/arm/GraphicsContext3DNEON.h
https://bugs.webkit.org/show_bug.cgi?id=102205
Reviewed by Csaba Osztrogonác.
Fixing some warnings in GraphicsContext3DNEON.h which have been caused by missing braces.
* platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
(WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
(WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
(WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
2012-11-14 Erik Arvidsson <arv@chromium.org>
Update DOMException name: NoDataAllowedError
https://bugs.webkit.org/show_bug.cgi?id=102132
Reviewed by Darin Adler.
Patch 6 of 25 to update DOMException name to match the spec and Firefox.
NO_DATA_ALLOWED_ERR is historical and not used in any spec or in our code.
* dom/DOMCoreException.cpp:
(WebCore):
* dom/ExceptionCode.h:
2012-11-14 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: "Reveal in Element Panel" doesn't work if Elements panel hasn't been opened
https://bugs.webkit.org/show_bug.cgi?id=102219
Reviewed by Alexander Pavlov.
Force elements module load upon context menu invocation.
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired.focusElement):
(WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
2012-11-14 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134523.
http://trac.webkit.org/changeset/134523
https://bugs.webkit.org/show_bug.cgi?id=102218
brake chrome windows build, as it references a non existing
header js/DOMRequestState.h (Requested by jochen__ on
#webkit).
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::setValueReady):
* Modules/indexeddb/IDBCursor.h:
(IDBCursor):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::onSuccess):
(WebCore::IDBRequest::stop):
(WebCore::IDBRequest::dispatchEvent):
* Modules/indexeddb/IDBRequest.h:
(IDBRequest):
* WebCore.gypi:
* bindings/v8/DOMRequestState.h: Removed.
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::deserializeIDBValue):
(WebCore::idbKeyToScriptValue):
* bindings/v8/IDBBindingUtilities.h:
(WebCore):
2012-11-14 Anton Obzhirov <a.obzhirov@samsung.com>
Add platform implementation of remote web inspector server for GTK port.
https://bugs.webkit.org/show_bug.cgi?id=88094
Reviewed by Gustavo Noronha Silva.
Extra SocketStreamHandle constructor is added to accept existing GSocketConnection.
Needed to pass remote inspector server socket connection. The change is tested with
inspector server API tests.
* platform/network/soup/SocketStreamHandle.h:
(WebCore::SocketStreamHandle::create):
(SocketStreamHandle):
* platform/network/soup/SocketStreamHandleSoup.cpp:
(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore):
(WebCore::SocketStreamHandle::connected):
(WebCore::SocketStreamHandle::platformSend):
(WebCore::SocketStreamHandle::platformClose):
2012-11-14 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: context menu on ObjectPropertyTreeElement's values is masked by the section.
https://bugs.webkit.org/show_bug.cgi?id=102212
Reviewed by Vsevolod Vlasov.
* inspector/front-end/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertiesSection.prototype.enableContextMenu):
2012-11-09 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: NMI add instrumentation for WebAudo related stuff.
They use about 16Mb for shared data on pages with webaudio.
As example Angry Birds app.
https://bugs.webkit.org/show_bug.cgi?id=101729
Reviewed by Yury Semikhatsky.
Plain vanilla instrumentation for audio and webaudio classes.
AudioContext is a kind of ActiveDOMObject. I found that these objects
are accessible through ScriptExecutuionContext and ScriptExecutionContext
is an ancestor of Document. Document class was instrumented earler.
I instrumented ActiveDOMObject, ScriptExecutionContext and other ancestors
and now AudioContext and other ActiveDOMObjects are reacheable from Document.
Test: inspector-protocol/nmi-webaudio.html
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::reportMemoryUsage):
(WebCore):
* Modules/webaudio/AudioContext.h:
(AudioContext):
* Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::reportMemoryUsage):
(WebCore):
* Modules/webaudio/AudioNode.h:
(AudioNode):
* dom/ActiveDOMObject.cpp:
(WebCore::ActiveDOMObject::reportMemoryUsage):
(WebCore):
* dom/ActiveDOMObject.h:
(ActiveDOMObject):
* dom/Document.cpp:
(WebCore::Document::reportMemoryUsage):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::reportMemoryUsage):
(WebCore):
* dom/ScriptExecutionContext.h:
(ScriptExecutionContext):
* dom/SecurityContext.cpp:
(WebCore::SecurityContext::reportMemoryUsage):
(WebCore):
* dom/SecurityContext.h:
(SecurityContext):
* dom/WebCoreMemoryInstrumentation.cpp:
(WebCore):
* dom/WebCoreMemoryInstrumentation.h:
(WebCoreMemoryTypes):
* platform/audio/AudioArray.h:
(AudioArray):
(WebCore::AudioArray::reportMemoryUsage):
* platform/audio/FFTFrame.cpp:
(WebCore::FFTFrame::reportMemoryUsage):
(WebCore):
* platform/audio/FFTFrame.h:
(FFTFrame):
* platform/audio/HRTFDatabase.cpp:
(WebCore::HRTFDatabase::reportMemoryUsage):
(WebCore):
* platform/audio/HRTFDatabase.h:
(HRTFDatabase):
* platform/audio/HRTFDatabaseLoader.cpp:
(WebCore::HRTFDatabaseLoader::reportMemoryUsage):
(WebCore):
* platform/audio/HRTFDatabaseLoader.h:
(HRTFDatabaseLoader):
* platform/audio/HRTFElevation.cpp:
(WebCore::HRTFElevation::reportMemoryUsage):
(WebCore):
* platform/audio/HRTFElevation.h:
(HRTFElevation):
* platform/audio/HRTFKernel.cpp:
(WebCore::HRTFKernel::reportMemoryUsage):
(WebCore):
* platform/audio/HRTFKernel.h:
(HRTFKernel):
2012-11-14 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Settings screen: close button overlays view title on mac.
https://bugs.webkit.org/show_bug.cgi?id=102198
Reviewed by Pavel Feldman.
Added margin-left for mac. Adjusted title height and vertical positioning.
* inspector/front-end/helpScreen.css:
(.help-window-caption): Adjusted title height.
(.help-window-title): Adjusted title vertical positioning.
(body.platform-mac .help-window-main .help-window-title): Fixed margin.
2012-11-13 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: use last selection as complementary signal when applying DOM changes to the text model.
https://bugs.webkit.org/show_bug.cgi?id=101905
Reviewed by Vsevolod Vlasov.
Currently we use heuristics for detecting damaged model range upon DOM mutation.
This change adds signals from the last selection and keyboard events in order to
further improve the heuristics quality.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor):
(WebInspector.DefaultTextEditor.EditInfo):
(WebInspector.DefaultTextEditor.prototype._handleTextInput):
(WebInspector.DefaultTextEditor.prototype._handleKeyDown):
(WebInspector.DefaultTextEditor.prototype.lastSelection):
(WebInspector.DefaultTextEditor.prototype.wasShown):
(WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
(WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
(WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnDiff):
(WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
(WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
* inspector/front-end/TextEditorModel.js:
(WebInspector.TextRange.prototype.compareTo):
(WebInspector.TextRange.prototype.shift):
(WebInspector.TextEditorModel.endsWithBracketRegex.):
2012-11-14 Dan Carney <dcarney@google.com>
[V8] use toV8Fast in all relevant Node getters
https://bugs.webkit.org/show_bug.cgi?id=100851
Reviewed by Kentaro Hara.
The toV8Fast function for Node objects is now called in all getters
instead of toV8.
No new tests. Test coverage extensive.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNormalAttrGetter):
(IsDOMNodeType):
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::toV8Fast):
2012-11-14 Kenneth Rohde Christiansen <kenneth@webkit.org>
Clean up use of adjustWindowRect
https://bugs.webkit.org/show_bug.cgi?id=102072
Reviewed by Gyuyoung Kim.
Tested by fast/dom/Window/open-window-min-size.html
* loader/FrameLoader.cpp:
(WebCore::createWindow):
Validate the window size here so that it is not just done for
.open, but also for .showModalDialog. This is compatible with
other browsers such as IE and Firefox (though IE > 6, enforces
a minimum width of 250 instead of 100 as Firefox and us.)
* page/DOMWindow.cpp:
(WebCore):
(WebCore::DOMWindow::adjustWindowRect):
Make it a static method which only takes page. It was never
called from anywhere without a valid page, so the page check
has been turned into an assert, and two of the arguments have
been removed as they can be accessed via the page.
(WebCore::DOMWindow::moveBy):
(WebCore::DOMWindow::moveTo):
(WebCore::DOMWindow::resizeBy):
(WebCore::DOMWindow::resizeTo):
Update use of adjustWindowRect.
(WebCore::DOMWindow::open):
Avoid modifying the WindowFeatures as the WebCore::createWindow
validates and adjusts the arguments.
* page/DOMWindow.h:
(DOMWindow):
2012-11-14 Takashi Sakamoto <tasak@google.com>
Crash when replacing parts of text inputs with content: url(...)
https://bugs.webkit.org/show_bug.cgi?id=101133
Reviewed by Kent Tamura.
Disable directly setting content of elements in an input element's
shadow dom tree, because the setting breaks input element's behavior.
Tests: fast/forms/number/number-content-url-crash.html
fast/forms/search/search-content-url-crash.html
* css/html.css:
(input::-webkit-textfield-decoration-container):
Use important to disable overriding an input element's content
property.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::attach):
Added ASSERTION. No content should be applied to
input::-webkit-textfield-decoration-container.
2012-11-14 Kentaro Hara <haraken@chromium.org>
Unreviewed. Rebaselined run-bindings-tests results.
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::constructor1Callback):
(WebCore::V8TestOverloadedConstructors::constructor2Callback):
(WebCore::V8TestOverloadedConstructors::constructor3Callback):
(WebCore::V8TestOverloadedConstructors::constructor4Callback):
(WebCore::V8TestOverloadedConstructors::wrapSlow):
2012-11-14 Anton Muhin <antonm@chromium.org>
Provide return types for custom WebGLRenderingContext methods
https://bugs.webkit.org/show_bug.cgi?id=100777
Reviewed by Kenneth Russell.
No new tests as doesn't change generated code.
* html/canvas/WebGLRenderingContext.idl:
2012-11-14 Kent Tamura <tkent@chromium.org>
Support for localization tests of calendar picker
https://bugs.webkit.org/show_bug.cgi?id=102181
Reviewed by Kentaro Hara.
Introduce DateTimeChooserParameters::locale to inform locale to
DateTimeChooser implementations. However we pass defaultLanguage
unless tests calls internals.settings.
setLangAttributeAwareFormControlUIEnabled(true) explicitly.
Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setupDateTimeChooserParameters):
Set DateTimeChooserParameters::locale up.
* platform/DateTimeChooser.h:
(DateTimeChooserParameters): Add 'locale' member.
2012-11-14 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: highlight is not updating as one edits CSS properties
https://bugs.webkit.org/show_bug.cgi?id=102191
Reviewed by Alexander Pavlov.
We should update highlight upon layout / style recalculation.
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::didRecalculateStyleImpl):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::InspectorPageAgent):
(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::domContentEventFired):
(WebCore::InspectorPageAgent::didPaint):
(WebCore::InspectorPageAgent::didLayout):
(WebCore::InspectorPageAgent::didScroll):
(WebCore):
(WebCore::InspectorPageAgent::didRecalculateStyle):
* inspector/InspectorPageAgent.h:
2012-11-14 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134566.
http://trac.webkit.org/changeset/134566
https://bugs.webkit.org/show_bug.cgi?id=102197
"it broke Chromium Android Release build" (Requested by
haraken on #webkit).
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setupDateTimeChooserParameters):
* platform/DateTimeChooser.h:
(DateTimeChooserParameters):
2012-11-08 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: No content available for requests made from flash
https://bugs.webkit.org/show_bug.cgi?id=101560
Reviewed by Pavel Feldman.
Network request data is now saved to inspector cache in following cases:
- Error status code;
- No cached resource available;
- Cached resource has ShouldNotBufferData option set.
Drive-by: refactored didReceiveResponse logic to be clearer.
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::didReceiveResponse):
(WebCore::InspectorResourceAgent::didReceiveData):
* loader/cache/CachedResource.h:
(WebCore::CachedResource::shouldBufferData):
2012-11-14 Shinya Kawanaka <shinyak@chromium.org>
Changing pseudoClass (:target) should cause distribution
https://bugs.webkit.org/show_bug.cgi?id=101699
Reviewed by Hajime Morita.
When cssTarget element is changed, we might have to invalidate distribution. We check its necessity
by consulting with SelectRuleFeatureSet.
We also implement invalidateParentDistributionIfNecessary for all collected features in this patch.
Test: fast/dom/shadow/pseudoclass-update-target.html
* dom/Document.cpp:
(WebCore::Document::setCSSTarget):
* dom/ElementShadow.cpp:
(WebCore::invalidateParentDistributionIfNecessary):
(WebCore):
* dom/ElementShadow.h:
(WebCore):
* html/shadow/SelectRuleFeatureSet.h:
(WebCore::SelectRuleFeatureSet::hasSelectorFor):
(SelectRuleFeatureSet):
2012-11-14 Kentaro Hara <haraken@chromium.org>
[V8] DOM wrapper objects should be collected in minor GC cycles
https://bugs.webkit.org/show_bug.cgi?id=98725
Reviewed by Adam Barth.
Previously minor GC cycles cannot collect DOM Nodes. All DOM Nodes
have to survive two minor GC cycles, be promoted to the old space
and wait for a heavy major GC cycle.
This patch enables V8 to collect DOM Nodes in minor GC cycles.
For real world applications, I confirmed that minor GC cycles
reclaims a substantial amount of memory (24 MB for Facebook,
235 MB for Google Calendar) with acceptable overhead (~10 ms
per minor GC cycle). No performance regression in Dromaeo
DOM tests.
A design document: https://docs.google.com/a/google.com/document/d/16DeHrzkm3cO9XCPT1aK3Y5qgUxXB3RFmueqQWYmN2rI/edit
Performance results: https://docs.google.com/a/google.com/document/d/1h0-EsHu7T0sSMuZm5eE0r1e8sCAzY3weLvsDUpOSngE/edit
A slide: https://docs.google.com/a/google.com/presentation/d/1uifwVYGNYTZDoGLyCb7sXa7g49mWNMW2gaWvMN5NLk8/edit#slide=id.p
* bindings/v8/IntrusiveDOMWrapperMap.h:
(WebCore::IntrusiveDOMWrapperMap::set):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::initializeV8IfNeeded):
* bindings/v8/V8GCController.cpp:
(WebCore):
(WebCore::gcTree):
(WebCore::V8GCController::newWrapperBorn):
(WebCore::V8GCController::gcPrologue):
(WebCore::V8GCController::minorGCPrologue):
(WebCore::V8GCController::majorGCPrologue):
(WebCore::V8GCController::gcEpilogue):
(WebCore::V8GCController::minorGCEpilogue):
(WebCore::V8GCController::majorGCEpilogue):
* bindings/v8/V8GCController.h:
(WebCore):
(V8GCController):
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::WorkerContextExecutionProxy::initIsolate):
* dom/Element.cpp:
(WebCore::Element::focus):
* dom/Node.h:
(WebCore::Node::inEden):
(WebCore::Node::setEden):
(Node):
2012-11-14 Kentaro Hara <haraken@chromium.org>
[V8] Replace setDOMWrapper() + setJSWrapperForDOMObject() with createDOMWrapper()
https://bugs.webkit.org/show_bug.cgi?id=101917
Reviewed by Adam Barth.
setJSWrapperForDOMObject() is always coupled with setDOMWrapper().
We can replace setDOMWrapper() + setJSWrapperForDOMObject() with
createDOMWrapper(). (c.f. CREATE_DOM_WRAPPER() in JSC)
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateConstructorCallback):
(GenerateEventConstructorCallback):
(GenerateNamedConstructorCallback):
(GenerateToV8Converters):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::installDOMWindow):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::instantiateV8Object):
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
(WebCore::V8DOMWrapper::createDOMWrapper):
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
* bindings/v8/custom/V8ArrayBufferCustom.cpp:
(WebCore::V8ArrayBuffer::constructorCallback):
* bindings/v8/custom/V8ArrayBufferViewCustom.h:
(WebCore::wrapArrayBufferView):
(WebCore::constructWebGLArray):
* bindings/v8/custom/V8DOMFormDataCustom.cpp:
(WebCore::V8DOMFormData::constructorCallback):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::V8DataView::constructorCallback):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::v8HTMLImageElementConstructorCallback):
* bindings/v8/custom/V8IntentConstructor.cpp:
(WebCore::V8Intent::constructorCallback):
* bindings/v8/custom/V8MessageChannelConstructor.cpp:
(WebCore::V8MessageChannel::constructorCallback):
* bindings/v8/custom/V8MutationObserverCustom.cpp:
(WebCore::V8MutationObserver::constructorCallback):
* bindings/v8/custom/V8WebKitPointConstructor.cpp:
(WebCore::V8WebKitPoint::constructorCallback):
* bindings/v8/custom/V8WebSocketCustom.cpp:
(WebCore::V8WebSocket::constructorCallback):
* bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
(WebCore::V8XMLHttpRequest::constructorCallback):
2012-11-14 Kent Tamura <tkent@chromium.org>
Support for localization tests of calendar picker
https://bugs.webkit.org/show_bug.cgi?id=102181
Reviewed by Kentaro Hara.
Introduce DateTimeChooserParameters::locale to inform locale to
DateTimeChooser implementations. However we pass defaultLanguage
unless tests calls internals.settings.
setLangAttributeAwareFormControlUIEnabled(true) explicitly.
Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setupDateTimeChooserParameters):
Set DateTimeChooserParameters::locale up.
* platform/DateTimeChooser.h:
(DateTimeChooserParameters): Add 'locale' member.
2012-11-14 Alexei Filippov <alph@chromium.org>
Web Inspector: Show total memory in the NMI snapshot header
https://bugs.webkit.org/show_bug.cgi?id=101922
Reviewed by Pavel Feldman.
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
(WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
2012-11-14 Jan Keromnes <janx@linux.com>
Web Inspector: CodeMirrorTextEditor fails to scroll breakpoint into view after the first time
https://bugs.webkit.org/show_bug.cgi?id=102142
Reviewed by Pavel Feldman.
Calling revealLine in highlightLine like in DefaultTextEditor does the trick.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
2012-11-13 Kent Tamura <tkent@chromium.org>
Use menulist-button instead of menulist for date/time input types
https://bugs.webkit.org/show_bug.cgi?id=101886
Reviewed by Hajime Morita.
Both of Chromium-Android and iOS use -webkit-appearance:menulist-button,
not menulist. We had better apply common one by default.
No new tests. Covered by fast/forms/*/*-appearance-*.html.
* css/html.css:
(input[type="date"]): Switch menulist-button from menulist.
(input[type="datetime"]): Ditto.
(input[type="datetime-local"]): Ditto.
(input[type="month"]): Ditto.
(input[type="time"]): Ditto.
(input[type="week"]): Ditto.
(input::-webkit-date-and-time-value):
Add top, right, bottom margins. The right margin is important when
dir=rtl is specified.
whitespace:pre is needed to align baseline in a case of empty values.
* css/themeChromiumAndroid.css:
Remove redundant style declaration.
* css/themeWin.css:
Remove padding adjustment for date/time input types. It is for
textfields.
2012-11-13 Vincent Scheib <scheib@chromium.org>
Remove RuntimeEnabledFeatures::isPointerLockEnabled.
https://bugs.webkit.org/show_bug.cgi?id=102107
Reviewed by Adam Barth.
The runtime flag is always true now that the feature is enabled by default in Chromium.
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures):
* dom/Document.idl:
* dom/Element.idl:
* dom/MouseEvent.idl:
2012-11-13 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: JsDoc-annotate KeyboardShortcuts
https://bugs.webkit.org/show_bug.cgi?id=101301
Reviewed by Pavel Feldman.
JsDoc-annotate KeyboardShortcuts to improve readability.
* inspector/front-end/AdvancedSearchController.js: Fix parameter type.
* inspector/front-end/KeyboardShortcut.js: Add annotations.
* inspector/front-end/Panel.js: Make event parameter typed.
* inspector/front-end/inspector.js: Ditto.
2012-11-13 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Extract common interface for StatusBarButton and StatusBarCombo
https://bugs.webkit.org/show_bug.cgi?id=101907
Reviewed by Pavel Feldman.
Status bar control element should have common interface for
easier management.
In this patch getter/setter for StatusBarButton "disabled" are replaced
with regular functions "enabled"/"setEnabled"; added "setEnabled"
to StatusBarCombo; added new base class StatusBarItem with
method "setEnabled" and member "element".
* inspector/front-end/CPUProfileView.js: Adopted refactoring.
* inspector/front-end/DockController.js: Ditto.
* inspector/front-end/ScriptsPanel.js: Ditto.
* inspector/front-end/TimelinePanel.js: Ditto.
* inspector/front-end/inspector.js: Ditto.
* inspector/front-end/StatusBarButton.js:
(WebInspector.StatusBarItem): Added.
(WebInspector.StatusBarButton): Replaced getter/setter with
regular functions.
(WebInspector.StatusBarComboBox.prototype.setEnabled): Added.
2012-11-13 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Console: update tab/shift-tab shortcut description.
https://bugs.webkit.org/show_bug.cgi?id=102175
Reviewed by Pavel Feldman.
For "Tab / Shift-Tab" it said "Next/previous suggestion".
Actually, shift-tab to do nothing, and tab auto-completes common prefix.
* English.lproj/localizedStrings.js: Replaced string.
* inspector/front-end/ConsoleView.js: Updated shortcut registration.
2012-11-13 Dana Jansens <danakj@chromium.org>
[chromium] Pass showDebugBorders directly to WebLayerTreeSettings, don't use the GraphicsLayer border width setting.
https://bugs.webkit.org/show_bug.cgi?id=102130
Reviewed by James Robinson.
The current method of setting debug borders on GraphicsLayers requires
every GraphicsLayerClient to set the value on the layer(s) it
represents. This skips the NonCompositedContentHost as well as any
other clients other than RenderLayerBacking - including layers from the
inspector.
Instead, pass the debug border setting directly to the
WebLayerTreeSettings where the compositor can use the flag to enable
borders on all layers globally.
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
(WebCore::GraphicsLayerChromium::updateMasksToBounds):
(WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
(WebCore::GraphicsLayerChromium::setupContentsLayer):
* platform/graphics/chromium/GraphicsLayerChromium.h:
(GraphicsLayerChromium):
2012-11-13 Kunihiko Sakamoto <ksakamoto@chromium.org>
Enable calendar picker for input types datetime/datetime-local
https://bugs.webkit.org/show_bug.cgi?id=101889
Reviewed by Kent Tamura.
This adds calendar picker to <input type=datetime> and <input type=datetime-local>.
When a user choose a date from calendar picker, year/month/day fields of the input
element are updated and hour/minute/second fields are unchanged.
Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-local.html
platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime.html
* Resources/pagepopups/calendarPicker.js: Day.parse accepts datetime string (just drops time part).
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue):
If the given value is not valid for the element, try to parse it as a date string.
* html/DateTimeInputType.cpp:
(WebCore::DateTimeInputType::formatDateTimeFieldsState): DateTimeFieldsState::month() returns 1-12, not 0-11.
* html/DateTimeLocalInputType.cpp:
(WebCore::DateTimeLocalInputType::formatDateTimeFieldsState): Ditto.
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditElement::setOnlyYearMonthDay): Added.
(WebCore):
* html/shadow/DateTimeEditElement.h:
(DateTimeEditElement):
* rendering/RenderThemeChromiumCommon.cpp:
(WebCore::RenderThemeChromiumCommon::supportsCalendarPicker): Return true for datetime and datetimelocal too.
2012-11-13 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134524.
http://trac.webkit.org/changeset/134524
https://bugs.webkit.org/show_bug.cgi?id=102177
"Chromiium build broken" (Requested by haraken on #webkit).
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* rendering/RenderThemeChromiumFontProvider.cpp: Removed.
* rendering/RenderThemeChromiumFontProvider.h: Removed.
* rendering/RenderThemeChromiumFontProviderLinux.cpp: Removed.
* rendering/RenderThemeChromiumFontProviderWin.cpp: Removed.
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::RenderThemeChromiumSkia::defaultGUIFont):
(WebCore::RenderThemeChromiumSkia::systemFont):
(WebCore::RenderThemeChromiumSkia::setDefaultFontSize):
* rendering/RenderThemeChromiumSkia.h:
(RenderThemeChromiumSkia):
* rendering/RenderThemeChromiumWin.cpp:
(WebCore):
(WebCore::getNonClientMetrics):
(WebCore::systemFontSize):
(WebCore::pointsToPixels):
(WebCore::RenderThemeChromiumWin::systemFont):
(WebCore::RenderThemeChromiumWin::setDefaultFontSize):
* rendering/RenderThemeChromiumWin.h:
(RenderThemeChromiumWin):
2012-11-13 KyungTae Kim <ktf.kim@samsung.com>
Fix compile warning [-Wsign-compare]
https://bugs.webkit.org/show_bug.cgi?id=101458
Reviewed by Alexey Proskuryakov.
Currently, lossy check has been done by comparing file size(posix signed integral value) with conversioned(standard c++ unsigned integral value).
However, it leads -Wsign-compare compile warning.
Therefore, this patch assigns the file size to the biggest possible unsigned variable, then does the lossy check.
* platform/posix/SharedBufferPOSIX.cpp:
(WebCore::SharedBuffer::createWithContentsOfFile):
2012-11-13 Keishi Hattori <keishi@webkit.org>
Enable datalist UI for input types week and month
https://bugs.webkit.org/show_bug.cgi?id=102041
Reviewed by Kent Tamura.
Enabling datalist UI for input types week and month.
No new tests. Tests will be added later in Bug 102039 and Bug 102040.
* rendering/RenderThemeChromiumCommon.cpp:
(WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add month and week to the list.
2012-11-13 Eberhard Graether <egraether@google.com>
checkbox to toggle FPS counter in the inspector's settings
https://bugs.webkit.org/show_bug.cgi?id=99660
Reviewed by Pavel Feldman.
Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
No new tests.
* English.lproj/localizedStrings.js:
* inspector/Inspector.json:
* inspector/InspectorClient.h:
(WebCore::InspectorClient::canShowFPSCounter):
(WebCore::InspectorClient::setShowFPSCounter):
(InspectorClient):
* inspector/InspectorPageAgent.cpp:
(PageAgentState):
(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::canShowFPSCounter):
(WebCore):
(WebCore::InspectorPageAgent::setShowFPSCounter):
* inspector/InspectorPageAgent.h:
* inspector/front-end/Settings.js:
* inspector/front-end/SettingsScreen.js:
(WebInspector.GenericSettingsTab):
(WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
* inspector/front-end/inspector.js:
(WebInspector.doLoadedDone):
2012-11-13 Shinya Kawanaka <shinyak@chromium.org>
Collect necessary features for SelectRuleFeatureSet
https://bugs.webkit.org/show_bug.cgi?id=102160
Reviewed by Dimitri Glazkov.
When pseudo class is changed, we might have to invalidate distribution. To determine whether we should invalidate
distribution, we would like to collect RuleFeature from select attributes.
According to ShadowDOM spec, we have to collect the following pseudo classes: checked, enabled, disabled,
indeterminate, link, target, and visited. We collect them in this patch.
Test: fast/dom/shadow/shadow-select-attribute-featureset.html
* html/shadow/SelectRuleFeatureSet.cpp:
(WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Uses int as bitset so that we can use bit operator.
(WebCore::SelectRuleFeatureSet::add):
(WebCore::SelectRuleFeatureSet::clear):
(WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector): Collects necessary features from CSSSelector.
* html/shadow/SelectRuleFeatureSet.h:
(WebCore::SelectRuleFeatureSet::hasSelectorForChecked):
(WebCore::SelectRuleFeatureSet::hasSelectorForEnabled):
(WebCore::SelectRuleFeatureSet::hasSelectorForDisabled):
(WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
(WebCore::SelectRuleFeatureSet::hasSelectorForLink):
(WebCore::SelectRuleFeatureSet::hasSelectorForTarget):
(WebCore::SelectRuleFeatureSet::hasSelectorForVisited):
(SelectRuleFeatureSet):
(WebCore::SelectRuleFeatureSet::setSelectRuleFeature):
(WebCore::SelectRuleFeatureSet::hasSelectorFor):
* testing/Internals.cpp:
(WebCore::Internals::hasSelectorForPseudoClassInShadow):
(WebCore):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2012-11-13 Andreas Kling <kling@webkit.org>
Move inline style logic from ElementAttributeData to StyledElement.
<http://webkit.org/b/102120>
Reviewed by Antti Koivisto.
Move all the logic dealing with element inline style from ElementAttributeData to StyledElement.
No difference in behavior, just making ElementAttributeData dumber.
* css/StylePropertySet.cpp:
* css/StylePropertySet.h:
(WebCore::StylePropertySet::hasCSSOMWrapper):
(WebCore::StylePropertySet::cssStyleDeclaration):
Added as complements to ensureCSSStyleDeclaration() for the case where we don't want
to instantiate a CSSOM wrapper unnecessarily.
* dom/StyledElement.h:
(WebCore::StyledElement::inlineStyle):
* dom/ElementAttributeData.cpp:
(WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
(WebCore::MutableElementAttributeData::MutableElementAttributeData):
(WebCore::ElementAttributeData::reportMemoryUsage):
* dom/ElementAttributeData.h:
(WebCore::ElementAttributeData::inlineStyle):
(ElementAttributeData):
Renamed m_inlineStyleDecl to m_inlineStyle. Finally.
* dom/StyledElement.cpp:
(WebCore::StyledElement::~StyledElement):
Detach the CSSOM wrapper from the inline style if there is one.
(WebCore::StyledElement::ensureMutableInlineStyle):
(WebCore::StyledElement::style):
Renamed ensureInlineStyle() to ensureMutableInlineStyle() since that's what it
actually does. Update call sites accordingly.
(WebCore::StyledElement::inlineStyleCSSOMWrapper):
Added helper to get the CSSOM wrapper for the element's inline style if there is one.
(WebCore::StyledElement::styleAttributeChanged):
Do the work to parse/update/replace the inline style attribute here instead of
in an ElementAttributeData method.
(WebCore::StyledElement::setInlineStyleProperty):
(WebCore::StyledElement::removeInlineStyleProperty):
(WebCore::StyledElement::removeAllInlineStyleProperties):
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
(WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::handleStyleSpans):
* html/canvas/CanvasStyle.cpp:
(WebCore::currentColor):
s/ensureInlineStyle/ensureMutableInlineStyle/
2012-11-13 Li Yin <li.yin@intel.com>
fast/forms/file/input-file-write-files.html should cover correct setting value
https://bugs.webkit.org/show_bug.cgi?id=100085
Reviewed by Kentaro Hara.
Fix the GObject and Objective C bindings comparibility issue. Preserving existing
behavior for those may be important in idl.
No new tests, because fast/forms/file/input-file-value.html has covered it.
* html/HTMLInputElement.idl:
2012-11-13 KyungTae Kim <ktf.kim@samsung.com>
[EFL] Fix build warning in NetworkStateNotifierEfl.cpp
https://bugs.webkit.org/show_bug.cgi?id=102061
Reviewed by Gyuyoung Kim.
The second argument for NLMSG_OK needs to be unsigned to avoid the -Wsign-compare warning.
* platform/network/efl/NetworkStateNotifierEfl.cpp:
(WebCore::readSocketCallback):
2012-11-13 Sami Kyostila <skyostil@chromium.org>
Don't mark scrolling contents as dirty if RenderLayerBacking is going away
https://bugs.webkit.org/show_bug.cgi?id=101947
Reviewed by Simon Fraser.
When a scrolling contents graphics layer is created or destroyed, the
associated graphics layer is marked as needing display because some of
the painted content may have migrated between the primary graphics layer
and the scrolling layer.
This causes a problem when the RenderLayerBacking is being destroyed,
because setNeedsDisplay() needs to check from the compositor whether to
track repaints or not. If the RenderLayerBacking is being destroyed, the
value returned by compositor() is garbage and this causes a crash.
This patch fixes the problem by making RenderLayer::compositor() return a null
pointer when the renderer no longer has a view.
Covered by existing layout tests in compositing/overflow/.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::compositor):
2012-11-13 Erik Arvidsson <arv@chromium.org>
Update DOMException name: InvalidCharacterError
https://bugs.webkit.org/show_bug.cgi?id=102128
Reviewed by Darin Adler.
Patch 5 of 25 to update DOMException name to match the spec and Firefox.
Updated existing tests.
* dom/DOMCoreException.cpp:
2012-11-13 Joshua Bell <jsbell@chromium.org>
IndexedDB: Run multiple tasks per transaction tick
https://bugs.webkit.org/show_bug.cgi?id=97738
Reviewed by Tony Chang.
Process multiple tasks from the pending queue(s) when the timer fires. The
task may initiate new tasks that change which queue is active (e.g. indexing
operations) so the loop must re-check each tick which queue to use.
In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%);
in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%).
No new tests - just perf improvements, covered by (nearly) all existing IDB tests.
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code.
(WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available.
2012-11-13 Elliott Sprehn <esprehn@chromium.org>
Disable frame loading instead of throwing exceptions on subtree modifications in ChildFrameDisconnector
https://bugs.webkit.org/show_bug.cgi?id=102012
Reviewed by Ojan Vafai.
Previously if you modified the subtree that was being removed from a
removeChild from inside an unload handler on an <iframe> inside the
subtree you'd get an exception which is wrong. Instead we just need to
disable all frame loading there.
This works because either the subtree will be removed and the frame never
loading doesn't matter, or some section of the subtree that contains the
frame will be moved to another part of the document which will cause the
frame to load when it's inserted there.
I also added a check for <object> elements. It doesn't seem this is actually
reachable in the existing code, but I'm not entirely sure since the frame
loading and object/plugin handling is very confusing.
A better fix could be to repeatedly walk the subtree until all frames
were disconnected or some iteration limit was hit and then force all leftover
subframes to disconnect without firing unload handlers but this is such an
edge case I don't think the complexity is necessary.
Test: fast/frames/modifications-in-subtree-unload.html
* dom/ContainerNodeAlgorithms.h:
(WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
(WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
(ChildFrameDisconnector):
(WebCore::ChildFrameDisconnector::disconnect):
* dom/Node.cpp:
(WebCore::checkAcceptChild): Removed exception.
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions): Check canLoadFrame().
* html/HTMLFrameOwnerElement.h:
(SubframeLoadingDisabler):
(WebCore::SubframeLoadingDisabler::SubframeLoadingDisabler):
(WebCore::SubframeLoadingDisabler::~SubframeLoadingDisabler):
(WebCore::SubframeLoadingDisabler::canLoadFrame):
Returns true if frames can be loaded in the subtree.
(WebCore::SubframeLoadingDisabler::disabledSubtreeRoots):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::updateWidget):
Check canLoadFrame(). I think this case is impossible, but it's better
to be safe than sorry later.
2012-11-13 Joshua Bell <jsbell@chromium.org>
[V8] Add missing ENABLE(SVG) test in header
https://bugs.webkit.org/show_bug.cgi?id=102143
Reviewed by Kentaro Hara.
Need to wrap the #include of a header that's only conditionally generated.
Fixes build error if compiling e.g. w/ GYP_DEFINES="enable_svg=0"
* bindings/v8/custom/V8ElementCustom.cpp:
2012-11-13 Jon Lee <jonlee@apple.com>
Automatically run small plugins
https://bugs.webkit.org/show_bug.cgi?id=102148
<rdar://problem/12695560>
Reviewed by Darin Adler.
* rendering/RenderEmbeddedObject.h: Promote layout() to protected.
* rendering/RenderSnapshottedPlugIn.cpp: Add constants for threshold size for plugins that will auto-start.
(WebCore::RenderSnapshottedPlugIn::layout): After layout, obtain the width and height of the element.
If either dimension is 0, or the overall size of the plugin is smaller that the threshold size, move the
display state to Playing. Assuming we will always layout before first paint, changing the state here
should be safe.
* rendering/RenderSnapshottedPlugIn.h:
2012-11-13 Kenneth Russell <kbr@google.com>
Notify embedder of lost contexts and allow overriding of WebGL support
https://bugs.webkit.org/show_bug.cgi?id=101826
Reviewed by Adam Barth.
Add hooks notifying the embedder when OpenGL contexts are lost and
allowing overriding of WebGL support on a per-frame basis.
No tests yet; don't know how to test this solely within WebKit.
Currently developing tests in the Chromium port exercising the
notifications end-to-end. Once those are in place, I'm prepared to
investigate adding tests for all ports.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::create):
Check whether embedder vetoes creation of new WebGL contexts.
(WebCore::WebGLRenderingContext::loseContextImpl):
Notify embedder that context was lost.
(WebCore::WebGLRenderingContext::maybeRestoreContext):
Check whether embedder vetoes restoration of existing WebGL contexts.
* loader/FrameLoaderClient.h:
(FrameLoaderClient):
(WebCore::FrameLoaderClient::allowWebGL):
(WebCore::FrameLoaderClient::didLoseWebGLContext):
Hooks notifying embedder of lost contexts and asking permission to run WebGL.
2012-11-13 Scott Violet <sky@chromium.org>
[Chromium] Refactor theme font lookup into a factory
https://bugs.webkit.org/show_bug.cgi?id=101949
Reviewed by Tony Chang.
This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
No new tests. Refactoring only.
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* rendering/RenderThemeChromiumFontProvider.cpp: Added.
(WebCore):
(WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
* rendering/RenderThemeChromiumFontProvider.h: Added.
(WTF):
(WebCore):
(RenderThemeChromiumFontProvider): This is the font related methods.
* rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
(WebCore):
(WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
(WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
* rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
(WebCore):
(WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
(WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
(WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
(WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
(WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
(WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
(WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
* rendering/RenderThemeChromiumSkia.h:
(RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
* rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
(WebCore):
* rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
(RenderThemeChromiumWin):
2012-11-13 Alec Flett <alecflett@chromium.org>
Add DOMRequestState to maintain world/ScriptExecutionContext state
https://bugs.webkit.org/show_bug.cgi?id=102102
Reviewed by Adam Barth.
Introduce DOMRequestState, and convert IndexedDB over.
No new tests, this is an abstraction layer for existing code.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::onSuccess):
(WebCore::IDBRequest::dispatchEvent):
* Modules/indexeddb/IDBRequest.h:
(IDBRequest):
* WebCore.gypi:
* bindings/v8/DOMRequestState.h: Added.
(WebCore):
(DOMRequestState):
(WebCore::DOMRequestState::DOMRequestState):
(Scope):
(WebCore::DOMRequestState::Scope::Scope):
(WebCore::DOMRequestState::scope):
2012-11-13 Robert Sesek <rsesek@chromium.org>
Sever Chromium's dependence on WebKitSystemInterface media control drawing functions in RenderThemeMac
https://bugs.webkit.org/show_bug.cgi?id=101634
Reviewed by Adam Barth.
This splits out the common methods between RenderThemeMac and RenderThemeChromiumMac
into RenderThemeMacShared.
No new tests, just refactoring.
* WebCore.gyp/WebCore.gyp: Remove RenderThemeMac.mm from platform/ sources list, since it's part of rendering/
* WebCore.gypi: Add RenderThemeMacShared.{h,mm}
* WebCore.xcodeproj/project.pbxproj: Add RenderThemeMacShared.{h,mm}
* rendering/RenderThemeChromiumMac.h:
* rendering/RenderThemeChromiumMac.mm:
(WebCore::RenderThemeChromiumMac::popupInternalPaddingLeft):
(WebCore::RenderThemeChromiumMac::popupInternalPaddingRight):
(WebCore::RenderThemeChromiumMac::extraDefaultStyleSheet):
* rendering/RenderThemeMac.h:
(RenderThemeMac):
* rendering/RenderThemeMac.mm:
(WebCore):
(WebCore::RenderTheme::themeForPage):
(WebCore::RenderThemeMac::create):
(WebCore::RenderThemeMac::RenderThemeMac):
(WebCore::RenderThemeMac::~RenderThemeMac):
(WebCore::RenderThemeMac::documentViewFor):
(WebCore::mediaControllerTheme):
(WebCore::RenderThemeMac::paintMediaSliderTrack):
(WebCore::RenderThemeMac::paintMediaRewindButton):
(WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
(WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
(WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
(WebCore::RenderThemeMac::extraMediaControlsStyleSheet):
(WebCore::RenderThemeMac::extraFullScreenStyleSheet):
* rendering/RenderThemeMacShared.h: Copied from Source/WebCore/rendering/RenderThemeMac.h.
(WebCore):
(RenderThemeMacShared):
(WebCore::RenderThemeMacShared::supportsControlTints):
(WebCore::RenderThemeMacShared::scrollbarControlSizeForPart):
(WebCore::RenderThemeMacShared::supportsSelectionForegroundColors):
(WebCore::RenderThemeMacShared::supportsClosedCaptioning):
(WebCore::RenderThemeMacShared::updateActiveState):
* rendering/RenderThemeMacShared.mm: Copied from Source/WebCore/rendering/RenderThemeMac.mm.
(-[WebCoreRenderThemeNotificationObserver initWithTheme:WebCore::]):
(-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
(-[WebCoreTextFieldCell _coreUIDrawOptionsWithFrame:inView:includeFocus:]):
(WebCore):
(WebCore::RenderThemeMacShared::RenderThemeMacShared):
(WebCore::RenderThemeMacShared::~RenderThemeMacShared):
(WebCore::RenderThemeMacShared::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeMacShared::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeMacShared::platformActiveListBoxSelectionBackgroundColor):
(WebCore::RenderThemeMacShared::platformActiveListBoxSelectionForegroundColor):
(WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionForegroundColor):
(WebCore::RenderThemeMacShared::platformFocusRingColor):
(WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionBackgroundColor):
(WebCore::toFontWeight):
(WebCore::RenderThemeMacShared::systemFont):
(WebCore::convertNSColorToColor):
(WebCore::menuBackgroundColor):
(WebCore::RenderThemeMacShared::platformColorsDidChange):
(WebCore::RenderThemeMacShared::systemColor):
(WebCore::RenderThemeMacShared::usesTestModeFocusRingColor):
(WebCore::RenderThemeMacShared::isControlStyled):
(WebCore::RenderThemeMacShared::adjustRepaintRect):
(WebCore::RenderThemeMacShared::inflateRect):
(WebCore::RenderThemeMacShared::convertToPaintingRect):
(WebCore::RenderThemeMacShared::updateCheckedState):
(WebCore::RenderThemeMacShared::updateEnabledState):
(WebCore::RenderThemeMacShared::updateFocusedState):
(WebCore::RenderThemeMacShared::updatePressedState):
(WebCore::RenderThemeMacShared::controlSupportsTints):
(WebCore::RenderThemeMacShared::controlSizeForFont):
(WebCore::RenderThemeMacShared::setControlSize):
(WebCore::RenderThemeMacShared::sizeForFont):
(WebCore::RenderThemeMacShared::sizeForSystemFont):
(WebCore::RenderThemeMacShared::setSizeFromFont):
(WebCore::RenderThemeMacShared::setFontFromControlSize):
(WebCore::RenderThemeMacShared::controlSizeForSystemFont):
(WebCore::RenderThemeMacShared::paintTextField):
(WebCore::RenderThemeMacShared::adjustTextFieldStyle):
(WebCore::RenderThemeMacShared::paintCapsLockIndicator):
(WebCore::RenderThemeMacShared::paintTextArea):
(WebCore::RenderThemeMacShared::adjustTextAreaStyle):
(WebCore::RenderThemeMacShared::popupButtonMargins):
(WebCore::RenderThemeMacShared::popupButtonSizes):
(WebCore::RenderThemeMacShared::popupButtonPadding):
(WebCore::RenderThemeMacShared::paintMenuList):
(WebCore::RenderThemeMacShared::meterSizeForBounds):
(WebCore::RenderThemeMacShared::paintMeter):
(WebCore::RenderThemeMacShared::supportsMeter):
(WebCore::RenderThemeMacShared::levelIndicatorStyleFor):
(WebCore::RenderThemeMacShared::levelIndicatorFor):
(WebCore::RenderThemeMacShared::progressBarSizes):
(WebCore::RenderThemeMacShared::progressBarMargins):
(WebCore::RenderThemeMacShared::minimumProgressBarHeight):
(WebCore::RenderThemeMacShared::animationRepeatIntervalForProgressBar):
(WebCore::RenderThemeMacShared::animationDurationForProgressBar):
(WebCore::RenderThemeMacShared::adjustProgressBarStyle):
(WebCore::RenderThemeMacShared::paintProgressBar):
(WebCore::TopGradientInterpolate):
(WebCore::BottomGradientInterpolate):
(WebCore::MainGradientInterpolate):
(WebCore::TrackGradientInterpolate):
(WebCore::RenderThemeMacShared::paintMenuListButtonGradients):
(WebCore::RenderThemeMacShared::paintMenuListButton):
(WebCore::menuListButtonSizes):
(WebCore::RenderThemeMacShared::adjustMenuListStyle):
(WebCore::RenderThemeMacShared::popupInternalPaddingLeft):
(WebCore::RenderThemeMacShared::popupInternalPaddingRight):
(WebCore::RenderThemeMacShared::popupInternalPaddingTop):
(WebCore::RenderThemeMacShared::popupInternalPaddingBottom):
(WebCore::RenderThemeMacShared::adjustMenuListButtonStyle):
(WebCore::RenderThemeMacShared::setPopupButtonCellState):
(WebCore::RenderThemeMacShared::menuListSizes):
(WebCore::RenderThemeMacShared::minimumMenuListSize):
(WebCore::RenderThemeMacShared::adjustSliderTrackStyle):
(WebCore::RenderThemeMacShared::paintSliderTrack):
(WebCore::RenderThemeMacShared::adjustSliderThumbStyle):
(WebCore::RenderThemeMacShared::paintSliderThumb):
(WebCore::RenderThemeMacShared::paintSearchField):
(WebCore::RenderThemeMacShared::setSearchCellState):
(WebCore::RenderThemeMacShared::searchFieldSizes):
(WebCore::RenderThemeMacShared::setSearchFieldSize):
(WebCore::RenderThemeMacShared::adjustSearchFieldStyle):
(WebCore::RenderThemeMacShared::paintSearchFieldCancelButton):
(WebCore::RenderThemeMacShared::cancelButtonSizes):
(WebCore::RenderThemeMacShared::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeMacShared::resultsButtonSizes):
(WebCore::RenderThemeMacShared::adjustSearchFieldDecorationStyle):
(WebCore::RenderThemeMacShared::paintSearchFieldDecoration):
(WebCore::RenderThemeMacShared::adjustSearchFieldResultsDecorationStyle):
(WebCore::RenderThemeMacShared::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeMacShared::adjustSearchFieldResultsButtonStyle):
(WebCore::RenderThemeMacShared::paintSearchFieldResultsButton):
(WebCore::RenderThemeMacShared::sliderTickSize):
(WebCore::RenderThemeMacShared::sliderTickOffsetFromTrackCenter):
(WebCore::RenderThemeMacShared::adjustSliderThumbSize):
(WebCore::RenderThemeMacShared::shouldShowPlaceholderWhenFocused):
(WebCore::RenderThemeMacShared::popupButton):
(WebCore::RenderThemeMacShared::search):
(WebCore::RenderThemeMacShared::searchMenuTemplate):
(WebCore::RenderThemeMacShared::sliderThumbHorizontal):
(WebCore::RenderThemeMacShared::sliderThumbVertical):
(WebCore::RenderThemeMacShared::textField):
(WebCore::RenderThemeMacShared::fileListNameForWidth):
(WebCore::RenderThemeMacShared::paintPlugInSnapshotOverlay):
2012-11-13 Tab Atkins <tabatkins@google.com>
CSS @charset parsing is too loose, doesn't match other browsers
https://bugs.webkit.org/show_bug.cgi?id=101527
Reviewed by Alexey Proskuryakov.
Per <https://www.w3.org/Bugs/Public/show_bug.cgi?id=19882#attach_1244>,
IE and FF have changed to be strict about @charset parsing,
as the CSS 2.1 spec requires.
Since @charset use is very uncommon anyway,
we should match the new behavior and the spec for platform consistency.
Test: fast/encoding/css-charset-evil/css-charset-evil.html
* loader/TextResourceDecoder.cpp:
(WebCore::bytesEqual):
(WebCore::TextResourceDecoder::checkForCSSCharset):
2012-11-13 Kenichi Ishibashi <bashi@chromium.org>
[WebSocket] send() and close() should not throw an exception for an unpaired surrogate but use the replacement character
https://bugs.webkit.org/show_bug.cgi?id=101569
Reviewed by Alexey Proskuryakov.
Replace unpaired surrogates with replacing character (U+FFFD) when
encoding text messages and close reasons. This change is aimed at
following the changes on the WebSocket API specification.
Test: http/tests/websocket/tests/hybi/close-reason-too-long.html
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::close):
Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
text message. Remove invalid utf-8 check.
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::send):
Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
close reason. Remove invalid utf-8 check.
2012-11-13 Christophe Dumez <christophe.dumez@intel.com>
Make HTMLLegendElement.form behave according to specification
https://bugs.webkit.org/show_bug.cgi?id=101044
Reviewed by Kent Tamura.
According to the HTML5 specification (http://dev.w3.org/html5/spec/single-page.html#dom-legend-form),
The form IDL attribute's behavior depends on whether the legend element is in a fieldset element or
not. If the legend has a fieldset element as its parent, then the form IDL attribute must return the
same value as the form IDL attribute on that fieldset element. Otherwise, it must return null.
This patch makes WebKit behaves according to specification (and Firefox). Previously, legend.form was
not returning null if the element was not inside a fieldset. Also, legend.form did not necessarily
return the same value as the parent fieldset's form attribute.
Test: fast/forms/legend/legend-form.html
* html/HTMLLegendElement.cpp:
(WebCore):
(WebCore::HTMLLegendElement::virtualForm):
* html/HTMLLegendElement.h:
(HTMLLegendElement):
2012-11-13 Mark Lam <mark.lam@apple.com>
Make an assertion in JSEventListener::jsFunction() more useful.
https://bugs.webkit.org/show_bug.cgi?id=101985.
Reviewed by Geoffrey Garen.
The assertion was weakened in r134495. This strengthens it again.
No new tests.
* bindings/js/JSEventListener.h:
(WebCore::JSEventListener::jsFunction):
2012-11-13 Dean Jackson <dino@apple.com>
Support list of tracks in caption media controls
https://bugs.webkit.org/show_bug.cgi?id=101669
Reviewed by Eric Carlson.
Attempt four of commit. The first two times caused build failures on Chromium. The third time
crashed the Windows test bot. It's also been rebased since r134488.
Add some new elements to the media control shadow DOM that display the list of available
tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
where it is given a very basic design. At the moment only the list of available tracks
are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
No new tests - this doesn't expose any testable surface.
* css/mediaControls.css: Added default rules that hide the new elements.
* css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
(WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
(WebCore::MediaControlClosedCaptionsContainerElement::create):
(WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
(WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
(WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
* html/shadow/MediaControlElements.h:
(MediaControlElement):
(MediaControlToggleClosedCaptionsButtonElement):
(MediaControlClosedCaptionsContainerElement):
(MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::MediaControlsApple):
(WebCore::MediaControlsApple::create): New track container and list elements created.
(WebCore::MediaControlsApple::setMediaController): Hook up the new elements to the controller..
(WebCore::MediaControlsApple::hide):
(WebCore::MediaControlsApple::makeTransparent):
(WebCore::MediaControlsApple::reset):
(WebCore::MediaControlsApple::reportedError):
(WebCore::MediaControlsApple::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
(WebCore):
* html/shadow/MediaControlsApple.h:
(MediaControlsApple):
* html/shadow/MediaControlsChromium.cpp:
(WebCore::MediaControlsChromium::initializeControls): Pass in the controls as a parameter.
* html/shadow/MediaControls.h:
(MediaControls):
* platform/Language.cpp:
(WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
* platform/Language.h:
(WebCore):
* rendering/RenderMediaControls.cpp:
(WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
* rendering/RenderMediaControlsChromium.cpp:
(WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
2012-11-13 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, rolling out r134377.
http://trac.webkit.org/changeset/134377
https://bugs.webkit.org/show_bug.cgi?id=101133
Caused a mysterious Android Clang build failure, needs
investigation before landing again.
* css/html.css:
(input::-webkit-textfield-decoration-container):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::attach):
2012-11-13 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134482.
http://trac.webkit.org/changeset/134482
https://bugs.webkit.org/show_bug.cgi?id=102140
The patch causes fast/regions/moved-content-node-crash.html to
crash in Debug mode due to ASSERTION. (Requested by abucur on
#webkit).
* rendering/InlineFlowBox.cpp:
(SameSizeAsInlineFlowBox):
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::InlineFlowBox):
(InlineFlowBox):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange):
(WebCore::RenderBlock::linkToEndLineIfNeeded):
(WebCore::RenderBlock::determineStartPosition):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::RootInlineBox):
* rendering/RootInlineBox.h:
(WebCore):
(WebCore::RootInlineBox::paginationStrut):
(WebCore::RootInlineBox::setPaginationStrut):
(WebCore::RootInlineBox::isFirstAfterPageBreak):
(WebCore::RootInlineBox::setIsFirstAfterPageBreak):
(WebCore::RootInlineBox::paginatedLineWidth):
(WebCore::RootInlineBox::setPaginatedLineWidth):
(RootInlineBox):
2012-11-13 Xianzhu Wang <wangxianzhu@chromium.org>
Missing NodeRenderStyle.h include in WebCore/html/TextFieldInputType.cpp
https://bugs.webkit.org/show_bug.cgi?id=102108
Reviewed by Adam Barth.
No new tests. Fix clang build break.
* html/TextFieldInputType.cpp: Added #include "NodeRenderStyle.h"
2012-11-13 Chris Fleizach <cfleizach@apple.com>
AX: MathML types need to be semantically identified in AX tree
https://bugs.webkit.org/show_bug.cgi?id=101263
Reviewed by Beth Dakin.
Semantically identify various MathML elements within the AX tree. This will allow
screen readers to identify math types so that equations can be output more accurately.
Test: platform/mac/accessibility/mathml-elements.html
* accessibility/AccessibilityObject.h:
(AccessibilityObject):
(WebCore::AccessibilityObject::isMathElement):
(WebCore::AccessibilityObject::isMathFraction):
(WebCore::AccessibilityObject::isMathFenced):
(WebCore::AccessibilityObject::isMathSubscriptSuperscript):
(WebCore::AccessibilityObject::isMathRow):
(WebCore::AccessibilityObject::isMathUnderOver):
(WebCore::AccessibilityObject::isMathRoot):
(WebCore::AccessibilityObject::isMathSquareRoot):
(WebCore::AccessibilityObject::isMathText):
(WebCore::AccessibilityObject::isMathNumber):
(WebCore::AccessibilityObject::isMathOperator):
(WebCore::AccessibilityObject::isMathFenceOperator):
(WebCore::AccessibilityObject::isMathSeparatorOperator):
(WebCore::AccessibilityObject::isMathIdentifier):
(WebCore::AccessibilityObject::isMathTable):
(WebCore::AccessibilityObject::isMathTableRow):
(WebCore::AccessibilityObject::isMathTableCell):
(WebCore::AccessibilityObject::mathRadicandObject):
(WebCore::AccessibilityObject::mathRootIndexObject):
(WebCore::AccessibilityObject::mathUnderObject):
(WebCore::AccessibilityObject::mathOverObject):
(WebCore::AccessibilityObject::mathNumeratorObject):
(WebCore::AccessibilityObject::mathDenominatorObject):
(WebCore::AccessibilityObject::mathBaseObject):
(WebCore::AccessibilityObject::mathSubscriptObject):
(WebCore::AccessibilityObject::mathSuperscriptObject):
(WebCore::AccessibilityObject::mathFencedOpenString):
(WebCore::AccessibilityObject::mathFencedCloseString):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::startOfContinuations):
Handle a case where a MathML render element is created with the node of their parent (which could lead to an assert).
(WebCore::AccessibilityRenderObject::textUnderElement):
Handle the cases for RenderMathMLOperators which use the node of their parent, which confuses the normal textUnderElement() routine.
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
Handle ignored cases for math elements
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
(WebCore::AccessibilityRenderObject::isMathElement):
(WebCore::AccessibilityRenderObject::isMathFraction):
(WebCore::AccessibilityRenderObject::isMathFenced):
(WebCore::AccessibilityRenderObject::isMathSubscriptSuperscript):
(WebCore::AccessibilityRenderObject::isMathRow):
(WebCore::AccessibilityRenderObject::isMathUnderOver):
(WebCore::AccessibilityRenderObject::isMathSquareRoot):
(WebCore::AccessibilityRenderObject::isMathRoot):
(WebCore::AccessibilityRenderObject::isMathOperator):
(WebCore::AccessibilityRenderObject::isMathFenceOperator):
(WebCore::AccessibilityRenderObject::isMathSeparatorOperator):
(WebCore::AccessibilityRenderObject::isMathText):
(WebCore::AccessibilityRenderObject::isMathNumber):
(WebCore::AccessibilityRenderObject::isMathIdentifier):
(WebCore::AccessibilityRenderObject::isMathTable):
(WebCore::AccessibilityRenderObject::isMathTableRow):
(WebCore::AccessibilityRenderObject::isMathTableCell):
(WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):
Make sure anonymouse blocks are ignored within math tree; make sure non-element type objects are ignored (like <mstyle>).
(WebCore::AccessibilityRenderObject::mathRadicandObject):
(WebCore::AccessibilityRenderObject::mathRootIndexObject):
(WebCore::AccessibilityRenderObject::mathNumeratorObject):
(WebCore::AccessibilityRenderObject::mathDenominatorObject):
(WebCore::AccessibilityRenderObject::mathUnderObject):
(WebCore::AccessibilityRenderObject::mathOverObject):
(WebCore::AccessibilityRenderObject::mathBaseObject):
(WebCore::AccessibilityRenderObject::mathSubscriptObject):
(WebCore::AccessibilityRenderObject::mathSuperscriptObject):
(WebCore::AccessibilityRenderObject::mathFencedOpenString):
(WebCore::AccessibilityRenderObject::mathFencedCloseString):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::RenderMathMLBlock):
* rendering/mathml/RenderMathMLBlock.h:
(WebCore::RenderMathMLBlock::isRenderMathMLFenced):
(WebCore::RenderMathMLBlock::isRenderMathMLFraction):
(WebCore::RenderMathMLBlock::isRenderMathMLRoot):
(WebCore::RenderMathMLBlock::isRenderMathMLSquareRoot):
(WebCore::RenderMathMLBlock::isRenderMathMLSubSup):
(WebCore::RenderMathMLBlock::isRenderMathMLUnderOver):
(WebCore::RenderMathMLBlock::setIgnoreInAccessibilityTree):
(WebCore::RenderMathMLBlock::ignoreInAccessibilityTree):
Add ability to identify anonymous render blocks as items that AX should ignore.
(RenderMathMLBlock):
* rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::createMathMLOperator):
Identify which kind of math operator is being created on the fly (Fence or Separator)
(WebCore::RenderMathMLFenced::makeFences):
(WebCore::RenderMathMLFenced::addChild):
* rendering/mathml/RenderMathMLFenced.h:
(WebCore::RenderMathMLFenced::isRenderMathMLFenced):
(RenderMathMLFenced):
* rendering/mathml/RenderMathMLFraction.h:
(WebCore::RenderMathMLFraction::isRenderMathMLFraction):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::RenderMathMLOperator):
(WebCore::RenderMathMLOperator::updateFromElement):
(WebCore::RenderMathMLOperator::createGlyph):
Mark anonymous render blocks as AX ignored.
* rendering/mathml/RenderMathMLOperator.h:
(WebCore::RenderMathMLOperator::setOperatorType):
(WebCore::RenderMathMLOperator::operatorType):
(RenderMathMLOperator):
* rendering/mathml/RenderMathMLRoot.h:
(WebCore::RenderMathMLRoot::isRenderMathMLRoot):
* rendering/mathml/RenderMathMLSquareRoot.h:
(WebCore::RenderMathMLSquareRoot::isRenderMathMLSquareRoot):
* rendering/mathml/RenderMathMLSubSup.h:
(WebCore::RenderMathMLSubSup::isRenderMathMLSubSup):
* rendering/mathml/RenderMathMLUnderOver.h:
(WebCore::RenderMathMLUnderOver::isRenderMathMLUnderOver):
2012-11-13 Mark Lam <mark.lam@apple.com>
JSEventListener should not access m_jsFunction when its wrapper is gone.
https://bugs.webkit.org/show_bug.cgi?id=101985.
Reviewed by Geoffrey Garen.
Added a few null checks for m_wrapper before we do anything with m_jsFunction.
No new tests.
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::initializeJSFunction):
- Removed a now invalid assertion. m_wrapper is expected to have a
valid non-zero value when jsFunction is valid. However, in the case
of JSLazyEventListener (which extends JSEventListener), m_wrapper is
initially 0 when m_jsFunction has not been realized yet. When
JSLazyEventListener::initializeJSFunction() realizes m_jsFunction,
it will set m_wrapper to an appropriate wrapper object.
For this reason, JSEventListener::jsFunction() cannot do the null
check on m_wrapper until after the call to initializeJSFunction.
This, in turns, means that in the case of the non-lazy
JSEventListener, initializeJSFunction() will also be called, and
if the GC has collected the m_wrapper but the JSEventListener has
not been removed yet, it is possible to see a null m_wrapper while
m_jsFunction contains a non-zero stale value.
Hence, this assertion of (m_wrapper || !m_jsFunction) in
JSEventListener::initializeJSFunction() is not always true and
should be removed.
(WebCore::JSEventListener::visitJSFunction):
(WebCore::JSEventListener::operator==):
* bindings/js/JSEventListener.h:
(WebCore::JSEventListener::jsFunction):
2012-11-13 Adam Barth <abarth@webkit.org>
[V8] instantiateV8Object should encapulate the tricky creationContext logic
https://bugs.webkit.org/show_bug.cgi?id=102117
Reviewed by Eric Seidel.
The logic around creationContext is tricky. Rather than putting the
logic in the code generator, we can centralize the logic in
instantiateV8Object.
This patch shouldn't have any behavior change.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateToV8Converters):
* bindings/v8/V8DOMWrapper.cpp:
(V8WrapperInstantiationScope):
(WebCore::V8WrapperInstantiationScope::V8WrapperInstantiationScope):
(WebCore::V8WrapperInstantiationScope::~V8WrapperInstantiationScope):
(WebCore::V8WrapperInstantiationScope::context):
(WebCore):
(WebCore::V8DOMWrapper::instantiateV8Object):
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
2012-11-13 Silvia Pfeiffer <silviapf@chromium.org>
Clean up the inheritance tree under the MediaControls Class.
https://bugs.webkit.org/show_bug.cgi?id=88871
Reviewed by Eric Carlson.
This patch removes code duplication between the Chromium and Safari
media controls shadow DOMs.
This is achieved by pulling common functions that are identical (or
almost identical) between the different platforms into the base class.
The derived classes are renamed based on their platform:
- MediaControlRootElement to MediaControlsApple.
- MediaControlRootElementChromium to MediaControlsChromium.
- MediaControlRootElementChromiumAndroid to MediaControlsChromiumAndroid.
MediaControls is now no longer an abstract base class, but its "create"
function is only implemented in the port-specific header file, so it's
on purpose incomplete in the MediaControls.cpp file.
No new tests because this is refactoring work only.
* CMakeLists.txt:
Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
* GNUmakefile.list.am:
Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
* Target.pri:
Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
* WebCore.gypi:
Rename MediaControlRootElement[Chromium[Android]].[cpp,h] to MediaControls[Apple,Chromium[Android]].[cpp,h] .
* WebCore.order:
Rename MediaControlRootElement symbols to MediaControlsApple symbols.
* WebCore.vcproj/WebCore.vcproj:
Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
* WebCore.xcodeproj/project.pbxproj:
Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTimelineElement::defaultEventHandler):
Remove dependency on MediaControlRootElement.h (base class MediaControls.h is still there).
Rename updateTimeDisplay() to updateCurrentTimeDisplay().
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::MediaControls):
Added initialization for media elements that all platform controls share.
(WebCore):
Removed include files that are already included in header file.
(WebCore::MediaControls::setMediaController):
Added controller assignment for media elements that all platform controls share.
(WebCore::MediaControls::reset):
Added resets for media elements that all platform controls share.
(WebCore::MediaControls::reportedError):
Added error handling for media elements that all platform controls share.
(WebCore::MediaControls::loadedMetadata):
Added default action for loadedMetadata event.
(WebCore::MediaControls::show):
(WebCore::MediaControls::hide):
(WebCore::MediaControls::makeOpaque):
(WebCore::MediaControls::makeTransparent):
(WebCore::MediaControls::shouldHideControls):
(WebCore::MediaControls::bufferingProgressed):
(WebCore::MediaControls::playbackStarted):
(WebCore::MediaControls::playbackProgressed):
(WebCore::MediaControls::playbackStopped):
(WebCore::MediaControls::updateCurrentTimeDisplay):
(WebCore::MediaControls::showVolumeSlider):
(WebCore::MediaControls::changedMute):
(WebCore::MediaControls::changedVolume):
(WebCore::MediaControls::changedClosedCaptionsVisibility):
(WebCore::MediaControls::enteredFullscreen):
(WebCore::MediaControls::exitedFullscreen):
(WebCore::MediaControls::defaultEventHandler):
(WebCore::MediaControls::hideFullscreenControlsTimerFired):
(WebCore::MediaControls::startHideFullscreenControlsTimer):
(WebCore::MediaControls::stopHideFullscreenControlsTimer):
(WebCore::MediaControls::shadowPseudoId):
(WebCore::MediaControls::containsRelatedTarget):
(WebCore::MediaControls::createTextTrackDisplay):
(WebCore::MediaControls::showTextTrackDisplay):
(WebCore::MediaControls::hideTextTrackDisplay):
(WebCore::MediaControls::updateTextTrackDisplay):
Added default actions for all these media controls member functions.
* html/shadow/MediaControls.h:
(WebCore):
Added include files and forward class declarations that all media controls share.
(MediaControls):
Make all pure virtual functions that have default implementations just virtual.
(WebCore::MediaControls::updateStatusDisplay):
Add an empty virtual updateStatusDisplay function which is used by media elements.
* html/shadow/MediaControlsApple.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.cpp.
Reduced Apple-specific media control functions by relying on default implementations in the base class.
* html/shadow/MediaControlsApple.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.h.
Reduced Apple-specific media control elements by relying on some elements in the base class.
* html/shadow/MediaControlsChromium.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp.
Reduced Chromium-specific media control functions by relying on default implementations in the base class.
* html/shadow/MediaControlsChromium.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.h.
Reduced Chromium-specific media control functions by relying on default implementations in the base class.
* html/shadow/MediaControlsChromiumAndroid.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.cpp.
Renamed class name and base class name.
* html/shadow/MediaControlsChromiumAndroid.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.h.
Renamed class name and base class name.
* rendering/RenderTheme.h:
(WebCore::RenderTheme::timeWithoutMouseMovementBeforeHidingControls):
Moved timeWithoutMouseMovementBeforeHidingControls variable from all classes to a theme-specific function.
2012-11-13 Benjamin Poulain <benjamin@webkit.org>
CSSParser::setStyleSheet() should be inline
https://bugs.webkit.org/show_bug.cgi?id=101829
Reviewed by Andreas Kling.
* css/CSSParser.cpp:
* css/CSSParser.h:
(WebCore::CSSParser::setStyleSheet):
CSSParser::setStyleSheet() just assign a pointer, it does not even
change a ref-count. The function should probably be in the header.
2012-11-13 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Add Region info for RootLineBoxes and pack the pagination data
https://bugs.webkit.org/show_bug.cgi?id=101332
Reviewed by David Hyatt.
Currently the pagination information for lines is spread between the RootInlineBox and InlineFlowBox classes, consuming memory even though
the boxes were not the result of an pagination layout. To overcome this, a new struct (LineFragmentationData) is created that wraps all the data,
including a new member, the containing Region for the line.
The containing Region is used to detect if a line changed the Region where it resides. This will be helpful especially when implementing region
styling for layout properties (e.g. the font-size property https://bugs.webkit.org/show_bug.cgi?id=95559 ).
A line can change the region when it is shifted inside the containing block or if the entire block moves. This means it's better to delegate
the task of updating the containing Region to the block.
Tests: No new tests because there is no functional change.
* rendering/InlineFlowBox.cpp:
(SameSizeAsInlineFlowBox):
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::InlineFlowBox):
(InlineFlowBox):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange):
(WebCore::RenderBlock::linkToEndLineIfNeeded):
(WebCore::RenderBlock::determineStartPosition):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::RootInlineBox):
(WebCore::RootInlineBox::setContainingRegion):
(WebCore):
* rendering/RootInlineBox.h:
(WebCore):
(WebCore::RootInlineBox::paginationStrut):
(WebCore::RootInlineBox::setPaginationStrut):
(WebCore::RootInlineBox::isFirstAfterPageBreak):
(WebCore::RootInlineBox::setIsFirstAfterPageBreak):
(WebCore::RootInlineBox::paginatedLineWidth):
(WebCore::RootInlineBox::setPaginatedLineWidth):
(RootInlineBox):
(WebCore::RootInlineBox::containingRegion):
(WebCore::RootInlineBox::ensureLineFragmentationData):
(LineFragmentationData):
(WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):
2012-11-13 Milian Wolff <milian.wolff@kdab.com>
[Qt] QNX build fails due to signature change in gl2.h header (glShaderSource)
https://bugs.webkit.org/show_bug.cgi?id=98038
Reviewed by Simon Hausmann.
Cast the function to the expected type, just like it is done on non-Qt/OpenGL2 ES platforms.
* platform/graphics/OpenGLShims.cpp:
(WebCore):
2012-11-13 Chris Fleizach <cfleizach@apple.com>
WebKit exposes ARIA rowheader role as AXUnknown when not contained in table/grid
https://bugs.webkit.org/show_bug.cgi?id=101616
Reviewed by Beth Dakin.
If the rowheader role is exposed because the element is not within a table, the mac platform
should map that to a generic group.
Test: platform/mac/accessibility/rowheader-outside-table-role.html
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(createAccessibilityRoleMap):
2012-11-13 Stephen White <senorblanco@chromium.org>
[Chromium] Fix SkImageFilter DAG path to pass all css3/filters tests
https://bugs.webkit.org/show_bug.cgi?id=101952
Reviewed by James Robinson.
With these changes, all of the css3/filters tests pass when the
if-test in GraphicsLayerChromium::setFilters() is forced true (for
now, it remains true only if there's a reference filter in the chain).
Covered by the css3/filters tests (when the switch is thrown in
GraphicsLayerChromium::setFilters()).
* WebCore.gypi:
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
Drop to software rendering if there's a custom filter in the chain.
This is the same as the WebFilterOperations path is doing.
* platform/graphics/filters/skia/DropShadowImageFilter.cpp: Added.
* platform/graphics/filters/skia/DropShadowImageFilter.h: Added.
New implementation of drop-shadow filter; equivalent to
the path in cc/render_surface_filters.cc.
* platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:
Fix the sepia and grayscale filters (value was inverted).
2012-11-13 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134442.
http://trac.webkit.org/changeset/134442
https://bugs.webkit.org/show_bug.cgi?id=102111
Does not compile on apple-mac (Requested by abarth on
#webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::cachedImage):
* css/CSSFontFaceSrcValue.cpp:
(WebCore::CSSFontFaceSrcValue::cachedFont):
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::cachedImageSet):
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::cachedImage):
* css/CSSImageValue.h:
(WebCore):
(CSSImageValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingImage):
* css/StyleRuleImport.cpp:
(WebCore::StyleRuleImport::requestStyleSheet):
* css/WebKitCSSSVGDocumentValue.cpp:
(WebCore::WebKitCSSSVGDocumentValue::load):
* css/WebKitCSSShaderValue.cpp:
(WebCore::WebKitCSSShaderValue::cachedShader):
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestScript):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::emitRule):
* html/parser/CSSPreloadScanner.h:
(CSSPreloadScanner):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::PreloadTask::preload):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestImage):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::determineRevalidationPolicy):
(WebCore):
(WebCore::CachedResourceLoader::preload):
* loader/cache/CachedResourceLoader.h:
(WebCore):
(CachedResourceLoader):
* loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::CachedResourceRequest):
* loader/cache/CachedResourceRequest.h:
(CachedResourceRequest):
(WebCore::CachedResourceRequest::defer):
(WebCore::CachedResourceRequest::setDefer):
* loader/cache/CachedResourceRequestInitiators.cpp: Removed.
* loader/cache/CachedResourceRequestInitiators.h: Removed.
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::startLoading):
* platform/ThreadGlobalData.cpp:
(WebCore::ThreadGlobalData::ThreadGlobalData):
* platform/ThreadGlobalData.h:
(ThreadGlobalData):
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::requestImageResource):
* svg/SVGFontFaceUriElement.cpp:
(WebCore::SVGFontFaceUriElement::loadFont):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::svgAttributeChanged):
2012-11-13 Chris Fleizach <cfleizach@apple.com>
AX: file upload input text value is not exposed through accessibility
https://bugs.webkit.org/show_bug.cgi?id=100583
Reviewed by Beth Dakin.
This is a hard problem to solve on the Mac because there are three pieces of information
1) The type of button 2) The text on the button 3) The text for the value.
I think the best compromise is to label this as a file upload button type in the role description,
and then expose the file path text as the AXTitle.
This will give the more relevant information and should be clear what is happening.
Test: platform/mac/accessibility/file-upload-button-subrole.html
* English.lproj/Localizable.strings:
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper roleDescription]):
(-[WebAccessibilityObjectWrapper accessibilityTitle]):
* platform/LocalizedStrings.cpp:
(WebCore::AXFileUploadButtonText):
* platform/LocalizedStrings.h:
2012-11-13 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133944.
http://trac.webkit.org/changeset/133944
https://bugs.webkit.org/show_bug.cgi?id=102118
Only JS bindings support NATIVE_TYPE_ERR (Requested by arv on
#webkit).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateFunctionCallback):
(GenerateParametersCheck):
(GenerateSingleConstructorCallback):
(GenerateNamedConstructorCallback):
(TypeCanFailConversion):
* dom/Element.cpp:
(WebCore::Element::setAttributeNode):
(WebCore::Element::removeAttributeNode):
* dom/Element.idl:
2012-11-13 Adam Barth <abarth@webkit.org>
Unreviewed.
Update run-bindings-tests results.
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::V8Float64Array::dispatchWrapCustom):
(WebCore::V8Float64Array::wrapSlow):
* bindings/scripts/test/V8/V8Float64Array.h:
(WebCore::V8Float64Array::toNative):
(V8Float64Array):
(WebCore):
(WebCore::dispatchWrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::V8TestActiveDOMObject::wrapSlow):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore::V8TestActiveDOMObject::toNative):
(V8TestActiveDOMObject):
(WebCore):
(WebCore::dispatchWrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::wrapSlow):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore::V8TestCustomNamedGetter::toNative):
(V8TestCustomNamedGetter):
(WebCore):
(WebCore::dispatchWrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::wrapSlow):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore::V8TestEventConstructor::toNative):
(V8TestEventConstructor):
(WebCore):
(WebCore::dispatchWrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::V8TestEventTarget::wrapSlow):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore::V8TestEventTarget::toNative):
(V8TestEventTarget):
(WebCore):
(WebCore::dispatchWrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::wrapSlow):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore::V8TestException::toNative):
(V8TestException):
(WebCore):
(WebCore::dispatchWrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::V8TestInterface::wrapSlow):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::V8TestInterface::toNative):
(V8TestInterface):
(WebCore):
(WebCore::dispatchWrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::wrapSlow):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::V8TestMediaQueryListListener::toNative):
(V8TestMediaQueryListListener):
(WebCore):
(WebCore::dispatchWrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructor::wrapSlow):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::V8TestNamedConstructor::toNative):
(V8TestNamedConstructor):
(WebCore):
(WebCore::dispatchWrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::wrapSlow):
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::V8TestNode::toNative):
(V8TestNode):
(WebCore):
(WebCore::dispatchWrap):
(WebCore::toV8Object):
(WebCore::toV8):
(WebCore::toV8Fast):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::V8TestObj::wrapSlow):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore::V8TestObj::toNative):
(V8TestObj):
(WebCore):
(WebCore::dispatchWrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::wrapSlow):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
(WebCore::V8TestOverloadedConstructors::toNative):
(V8TestOverloadedConstructors):
(WebCore):
(WebCore::dispatchWrap):
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::V8TestSerializedScriptValueInterface::toNative):
(V8TestSerializedScriptValueInterface):
(WebCore):
(WebCore::dispatchWrap):
(WebCore::toV8Object):
(WebCore::toV8):
2012-11-13 Adam Barth <abarth@webkit.org>
Unreviewed.
Speculative build fix for Qt.
* dom/make_names.pl:
(printWrapperFactoryCppFile):
2012-11-13 Sami Kyostila <skyostil@chromium.org>
Allow painting outside overflow clip in accelerated scrolling layers
https://bugs.webkit.org/show_bug.cgi?id=100524
Reviewed by Simon Fraser.
In preparation for avoiding repaints when scrolling child layers, make it
possible to paint outside the overflow clip.
Test: compositing/overflow/updating-scrolling-content.html
* rendering/LayoutState.h:
(LayoutState):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paint):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::repaintBlockSelectionGaps):
2012-11-13 Patrick Gansterer <paroga@webkit.org>
Port SimpleFontDataWin.cpp to WinCE
https://bugs.webkit.org/show_bug.cgi?id=97889
Reviewed by Brent Fulgham.
Add #if !OS(WINCE) around some parts of the code, so it can be used by the WinCE port too in a next step.
Also cleaned up the include headers.
* platform/graphics/win/SimpleFontDataWin.cpp:
(WebCore::SimpleFontData::initGDIFont):
(WebCore::SimpleFontData::platformDestroy):
(WebCore::SimpleFontData::boundsForGDIGlyph):
(WebCore):
(WebCore::SimpleFontData::widthForGDIGlyph):
2012-11-13 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: [Chromium] move spectrum.css into the standalone css files group.
Not reviewed: moved css file in gypi.
* WebCore.gypi:
2012-11-13 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, rolling out r134434.
http://trac.webkit.org/changeset/134434
https://bugs.webkit.org/show_bug.cgi?id=102072
The test that was added asserts in loader.
* loader/FrameLoader.cpp:
(WebCore::createWindow):
* page/DOMWindow.cpp:
(WebCore):
(WebCore::DOMWindow::adjustWindowRect):
(WebCore::DOMWindow::moveBy):
(WebCore::DOMWindow::moveTo):
(WebCore::DOMWindow::resizeBy):
(WebCore::DOMWindow::resizeTo):
(WebCore::DOMWindow::open):
(WebCore::DOMWindow::showModalDialog):
* page/DOMWindow.h:
(DOMWindow):
2012-11-13 Dan Carney <dcarney@google.com>
[V8] More efficient wrapper dispatch
https://bugs.webkit.org/show_bug.cgi?id=102082
Reviewed by Adam Barth.
Dispatching a call to V8Whatever::wrap involved a chain
of calls, each of which checked its wrapper cache.
This refactor gives calls only 2 choices of functions to call:
toV8 and toV8Object instead of wrap. wrap has been renamed to
dispatchWrap and no longer contains cache checks.
Additionally, classes which require a custom toV8 function
have had all wrapping and caching calls removed, as they could
not have been accessed.
No new tests. Sufficiently covered.
* Modules/indexeddb/IDBAny.idl:
* Modules/indexeddb/IDBKey.idl:
* WebCore.gypi:
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNormalAttrGetter):
(GenerateImplementation):
(GenerateToV8Converters):
* bindings/scripts/IDLAttributes.txt:
* bindings/v8/SerializedScriptValue.cpp:
* bindings/v8/custom/V8BlobCustom.cpp:
(WebCore::V8Blob::dispatchWrapCustom):
* bindings/v8/custom/V8CSSRuleCustom.cpp:
(WebCore::V8CSSRule::dispatchWrapCustom):
* bindings/v8/custom/V8CSSValueCustom.cpp:
(WebCore::V8CSSValue::dispatchWrapCustom):
* bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
(WebCore::V8CanvasRenderingContext::dispatchWrapCustom):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore):
(WebCore::V8DataView::dispatchWrapCustom):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::dispatchWrapCustom):
* bindings/v8/custom/V8ElementCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8PerformanceEntryCustom.cpp.
(WebCore):
(WebCore::V8Element::dispatchWrapCustom):
* bindings/v8/custom/V8EntryCustom.cpp:
(WebCore::V8Entry::dispatchWrapCustom):
* bindings/v8/custom/V8EntrySyncCustom.cpp:
(WebCore::V8EntrySync::dispatchWrapCustom):
* bindings/v8/custom/V8EventCustom.cpp:
(WebCore):
(WebCore::V8Event::dispatchWrapCustom):
* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
(WebCore::V8HTMLCollection::dispatchWrapCustom):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::dispatchWrapCustom):
* bindings/v8/custom/V8HTMLElementCustom.cpp:
(WebCore::V8HTMLElement::dispatchWrapCustom):
* bindings/v8/custom/V8ImageDataCustom.cpp:
(WebCore::V8ImageData::dispatchWrapCustom):
* bindings/v8/custom/V8NodeCustom.cpp:
(WebCore::V8Node::dispatchWrapCustom):
* bindings/v8/custom/V8PerformanceEntryCustom.cpp:
(WebCore::V8PerformanceEntry::dispatchWrapCustom):
* bindings/v8/custom/V8SVGDocumentCustom.cpp:
(WebCore::V8SVGDocument::dispatchWrapCustom):
* bindings/v8/custom/V8SVGElementCustom.cpp:
(WebCore::V8SVGElement::dispatchWrapCustom):
* bindings/v8/custom/V8SVGPathSegCustom.cpp:
(WebCore::V8SVGPathSeg::dispatchWrapCustom):
* bindings/v8/custom/V8StyleSheetCustom.cpp:
(WebCore::V8StyleSheet::dispatchWrapCustom):
* dom/Element.idl:
* dom/make_names.pl:
(printWrapperFunctions):
(printWrapperFactoryCppFile):
(printWrapperFactoryHeaderFile):
* html/MicroDataItemValue.idl:
* inspector/ScriptProfile.idl:
* inspector/ScriptProfileNode.idl:
* page/DOMWindow.idl:
* workers/WorkerContext.idl:
2012-11-13 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, rolling out r134367.
http://trac.webkit.org/changeset/134367
https://bugs.webkit.org/show_bug.cgi?id=100738
Speculative rollout, could have cause Dromaeo setAttribute
perf regression.
* dom/Element.cpp:
(WebCore::Element::attributeChanged):
(WebCore::checkNeedsStyleInvalidationForClassChange):
(WebCore::Element::classAttributeChanged):
2012-11-13 Marja Hölttä <marja@chromium.org>
Add initiator to CachedResourceRequest.
https://bugs.webkit.org/show_bug.cgi?id=101935
Reviewed by Adam Barth.
Motivation: Chromium needs to know which elements request a
resource (such as an image or a script) (bug 92761). In addition,
for exposing resource timing information (bug 84883) we need to
store the initiator, and this is the first step towards it.
No new tests: No visible change in behavior.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSCrossfadeValue.cpp:
(WebCore::cachedImageForCSSValue):
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::cachedImage):
* css/CSSFontFaceSrcValue.cpp:
(WebCore::CSSFontFaceSrcValue::cachedFont):
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::cachedImageSet):
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::cachedImage):
* css/CSSImageValue.h:
(WebCore):
(CSSImageValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingImage):
* css/StyleRuleImport.cpp:
(WebCore::StyleRuleImport::requestStyleSheet):
* css/WebKitCSSSVGDocumentValue.cpp:
(WebCore::WebKitCSSSVGDocumentValue::load):
* css/WebKitCSSShaderValue.cpp:
(WebCore::WebKitCSSShaderValue::cachedShader):
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestScript):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::emitRule):
* html/parser/CSSPreloadScanner.h:
(CSSPreloadScanner):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::PreloadTask::preload):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestImage):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::determineRevalidationPolicy):
(WebCore):
(WebCore::CachedResourceLoader::preload):
* loader/cache/CachedResourceLoader.h:
(WebCore):
(CachedResourceLoader):
* loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::CachedResourceRequest):
(WebCore):
(WebCore::CachedResourceRequest::~CachedResourceRequest):
(WebCore::CachedResourceRequest::setInitiator):
(WebCore::CachedResourceRequest::initiatorName):
(WebCore::CachedResourceRequest::initiatorDocument):
(WebCore::CachedResourceRequest::initiatorElement):
* loader/cache/CachedResourceRequest.h:
(WebCore):
(WebCore::CachedResourceRequest::setOptions):
(WebCore::CachedResourceRequest::defer):
(WebCore::CachedResourceRequest::setDefer):
(CachedResourceRequest):
* loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
(WebCore):
(WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
* loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
(WebCore):
(CachedResourceRequestInitiators):
(WebCore::cachedResourceRequestInitiators):
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::startLoading):
* platform/ThreadGlobalData.cpp:
(WebCore::ThreadGlobalData::ThreadGlobalData):
* platform/ThreadGlobalData.h:
(WebCore):
(WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
(ThreadGlobalData):
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::requestImageResource):
* svg/SVGFontFaceUriElement.cpp:
(WebCore::SVGFontFaceUriElement::loadFont):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::svgAttributeChanged):
2012-11-13 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134345.
http://trac.webkit.org/changeset/134345
https://bugs.webkit.org/show_bug.cgi?id=102106
Incomplete support for NATIVE_TYPE_ERR in objc and other
bindings (Requested by jsbell on #webkit).
* Modules/mediastream/MediaConstraintsImpl.cpp:
(WebCore::MediaConstraintsImpl::create):
* Modules/mediastream/MediaStreamTrackList.cpp:
(WebCore::MediaStreamTrackList::add):
(WebCore::MediaStreamTrackList::remove):
* Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::setBinaryType):
* Modules/mediastream/RTCIceCandidate.cpp:
(WebCore::RTCIceCandidate::create):
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::parseConfiguration):
(WebCore::RTCPeerConnection::createOffer):
(WebCore::RTCPeerConnection::createAnswer):
(WebCore::RTCPeerConnection::setLocalDescription):
(WebCore::RTCPeerConnection::setRemoteDescription):
(WebCore::RTCPeerConnection::addIceCandidate):
(WebCore::RTCPeerConnection::addStream):
(WebCore::RTCPeerConnection::removeStream):
* Modules/mediastream/RTCSessionDescription.cpp:
(WebCore::RTCSessionDescription::create):
(WebCore::RTCSessionDescription::setType):
* bindings/js/CallbackFunction.cpp:
(WebCore::checkFunctionOnlyCallback):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::create):
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::JSHTMLOptionsCollection::add):
* bindings/js/JSHTMLSelectElementCustom.cpp:
(WebCore::selectIndexSetter):
* bindings/js/JSMutationObserverCustom.cpp:
(WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
* bindings/js/JSSQLResultSetRowListCustom.cpp:
(WebCore::JSSQLResultSetRowList::item):
* bindings/js/JSSQLTransactionCustom.cpp:
(WebCore::JSSQLTransaction::executeSql):
* bindings/js/JSSQLTransactionSyncCustom.cpp:
(WebCore::JSSQLTransactionSync::executeSql):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
* bindings/scripts/CodeGeneratorObjC.pm:
(GenerateImplementation):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateFunctionCallString):
* bindings/v8/V8Callback.h:
(WebCore::createFunctionOnlyCallback):
* bindings/v8/V8Collection.cpp:
(WebCore::toOptionsCollectionSetter):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::evaluateCallback):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::addCallback):
* bindings/v8/custom/V8MutationObserverCustom.cpp:
(WebCore::V8MutationObserver::constructorCallback):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::V8SQLTransaction::executeSqlCallback):
* bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
(WebCore::V8SQLTransactionSync::executeSqlCallback):
* dom/DOMCoreException.idl:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::insertAdjacentElement):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::webkitAddKey):
* html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::add):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
(WebCore::CanvasRenderingContext2D::createPattern):
(WebCore::CanvasRenderingContext2D::putImageData):
(WebCore::CanvasRenderingContext2D::webkitPutImageDataHD):
* page/Crypto.cpp:
(WebCore::Crypto::getRandomValues):
* page/DOMSelection.cpp:
(WebCore::DOMSelection::extend):
* svg/properties/SVGTransformListPropertyTearOff.h:
(WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
2012-11-13 Erik Arvidsson <arv@chromium.org>
Update DOMException name: HierarchyRequestError
https://bugs.webkit.org/show_bug.cgi?id=102092
Reviewed by Ojan Vafai.
Patch 3 of 25 to update DOMException name to match the spec and Firefox.
Updated existing tests.
* dom/DOMCoreException.cpp:
2012-11-13 Kenneth Rohde Christiansen <kenneth@webkit.org>
Clean up use of adjustWindowRect
https://bugs.webkit.org/show_bug.cgi?id=102072
Reviewed by Alexis Menard.
Tested by fast/dom/Window/open-window-min-size.html
* loader/FrameLoader.cpp:
(WebCore::createWindow):
Validate the window size here so that it is not just done for
.open, but also for .showModalDialog. This is compatible with
other browsers such as IE and Firefox (though IE > 6, enforces
a minimum width of 250 instead of 100 as Firefox and us.)
* page/DOMWindow.cpp:
(WebCore):
(WebCore::DOMWindow::adjustWindowRect):
Make it a static method which only takes page. It was never
called from anywhere without a valid page, so the page check
has been turned into an assert, and two of the arguments have
been removed as they can be accessed via the page.
(WebCore::DOMWindow::moveBy):
(WebCore::DOMWindow::moveTo):
(WebCore::DOMWindow::resizeBy):
(WebCore::DOMWindow::resizeTo):
Update use of adjustWindowRect.
(WebCore::DOMWindow::open):
Avoid modifying the WindowFeatures as the WebCore::createWindow
validates and adjusts the arguments.
* page/DOMWindow.h:
(DOMWindow):
2012-11-13 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Exclusions] Update wrap-margin/padding to shape-margin/padding
https://bugs.webkit.org/show_bug.cgi?id=97736
Reviewed by Andreas Kling.
Rename properties to match updated spec.
Tests: fast/exclusions/shape-margin-parsing.html
fast/exclusions/shape-padding-parsing.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::isSimpleLengthPropertyID):
(WebCore::CSSParser::parseValue):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in:
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::asText):
* css/StylePropertyShorthand.cpp:
(WebCore::webkitWrapShorthand):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff):
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
(StyleRareNonInheritedData):
2012-11-13 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, rolling out r134418.
http://trac.webkit.org/changeset/134418
https://bugs.webkit.org/show_bug.cgi?id=101903
The newly added test is crashing on cr-win.
* dom/ElementShadow.cpp:
* dom/ElementShadow.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::setIndeterminate):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::didElementStateChange):
* html/shadow/SelectRuleFeatureSet.cpp:
(WebCore::SelectRuleFeatureSet::add):
(WebCore::SelectRuleFeatureSet::clear):
(WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
* html/shadow/SelectRuleFeatureSet.h:
(SelectRuleFeatureSet):
2012-11-13 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, rolling out r134391.
http://trac.webkit.org/changeset/134391
https://bugs.webkit.org/show_bug.cgi?id=99660
Speculative rollout, trying to fix browser_tests failure.
* English.lproj/localizedStrings.js:
* inspector/Inspector.json:
* inspector/InspectorClient.h:
* inspector/InspectorPageAgent.cpp:
(PageAgentState):
(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::disable):
* inspector/InspectorPageAgent.h:
* inspector/front-end/Settings.js:
* inspector/front-end/SettingsScreen.js:
(WebInspector.GenericSettingsTab):
* inspector/front-end/inspector.js:
(WebInspector.doLoadedDone):
2012-11-13 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134205.
http://trac.webkit.org/changeset/134205
https://bugs.webkit.org/show_bug.cgi?id=102093
Broke webkit-flow-inlines-dynamic.html on several ports
(Requested by mihnea on #webkit).
* css/StyleResolver.cpp:
(WebCore::StyleResolver::isValidRegionStyleProperty):
* rendering/InlineBox.cpp:
* rendering/InlineBox.h:
(WebCore):
(InlineBox):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::addToLine):
(WebCore::InlineFlowBox::addTextBoxVisualOverflow):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::setRegionObjectsRegionStyle):
(WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
(WebCore::RenderRegion::computeStyleInRegion):
(WebCore::RenderRegion::computeChildrenStyleInRegion):
(WebCore::RenderRegion::setObjectStyleInRegion):
(WebCore::RenderRegion::clearObjectStyleInRegion):
* rendering/RenderRegion.h:
(RenderRegion):
(ObjectRegionStyleInfo):
2012-11-13 Andreas Kling <kling@webkit.org>
Remove the non-const overload of ElementAttributeData::inlineStyle().
Rubber-stamped by Anders Koivisto.
No call sites actually needed a mutable StylePropertySet* from inlineStyle() anyway.
* dom/ElementAttributeData.h:
2012-11-13 Keishi Hattori <keishi@webkit.org>
[Chromium] Enable input type month/week
https://bugs.webkit.org/show_bug.cgi?id=102042
Reviewed by Kent Tamura.
Enable input type month/week for Chromium.
No new tests. Tests will be added later in Bug 102045 and Bug 102046.
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
2012-11-13 Shinya Kawanaka <shinyak@chromium.org>
[Refactoring] Remove shadowPseudoId() and use setPseudo() in <meter> ElementShadow.
https://bugs.webkit.org/show_bug.cgi?id=101906
Reviewed by Dimitri Glazkov.
We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
setPseudo()/pseudo() instead.
No new tests, covered by existing tests.
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::didElementStateChange): Since shadowPseudoId() was returning pseudo id without setting
it anywhere, we have to set it into pseudo attribute here.
(WebCore::HTMLMeterElement::createShadowSubtree): ditto.
* html/shadow/MeterShadowElement.cpp:
(WebCore::MeterInnerElement::MeterInnerElement):
(WebCore::MeterValueElement::valuePseudoId):
* html/shadow/MeterShadowElement.h:
(MeterInnerElement):
(WebCore::MeterBarElement::MeterBarElement):
(MeterBarElement):
(WebCore::MeterValueElement::MeterValueElement):
(WebCore::MeterValueElement::updatePseudo):
(MeterValueElement):
2012-11-13 Shinya Kawanaka <shinyak@chromium.org>
Changing pseudoClass (:indeterminate) should cause distribution
https://bugs.webkit.org/show_bug.cgi?id=101903
Reviewed by Dimitri Glazkov.
<progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
* dom/ElementShadow.cpp:
(WebCore::invalidateParentDistributionIfNecessary): Since we will add a lot of pseudoClass check later, we would like to
have this kind of helper method. We will add various pseudoClass check (see Bug 101697), we reuse CSSSelector::PseudoType
here.
(WebCore):
* dom/ElementShadow.h:
(WebCore):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType): Invalidate parent distribution anyway, since it changes various internal states.
(WebCore::HTMLInputElement::setIndeterminate): Invalidate parent distribution if necessary.
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::didElementStateChange):
* html/shadow/SelectRuleFeatureSet.cpp:
(WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Adds m_usesIndeterminate feature.
(WebCore::SelectRuleFeatureSet::add):
(WebCore::SelectRuleFeatureSet::clear):
(WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
* html/shadow/SelectRuleFeatureSet.h:
(WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
(SelectRuleFeatureSet):
2012-11-13 Andreas Kling <kling@webkit.org>
Exploit ElementAttributeData sharing in Node.cloneNode.
<http://webkit.org/b/101374>
Reviewed by Anders Carlsson.
Instead of blindly creating a new ElementAttributeData for Node.cloneNode, let's be clever!
If the source data is immutable, simply ref it from the new node at virtually no cost.
If the source data is mutable, convert it to immutable data so it can be shared between both nodes.
Since the typical use-case for Node.cloneNode is to create-once/clone-many, this saves both time
and memory in the long run.
~8% speed-up on PerformanceTests/DOM/CloneNodes on my MBP.
* dom/Element.cpp:
(WebCore::Element::cloneAttributesFromElement):
Move attribute data cloning logic from ElementAttributeData to Element.
* dom/ElementAttributeData.cpp:
(WebCore::ImmutableElementAttributeData::~ImmutableElementAttributeData):
(WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
(WebCore::ElementAttributeData::ElementAttributeData):
(WebCore::MutableElementAttributeData::MutableElementAttributeData):
(WebCore::ElementAttributeData::makeMutableCopy):
(WebCore::ElementAttributeData::makeImmutableCopy):
* dom/ElementAttributeData.h:
(ElementAttributeData):
(ImmutableElementAttributeData):
(MutableElementAttributeData):
Add facilities for converting a mutable ElementAttributeData to an immutable one.
Share some code in the common base class constructor.
2012-11-13 Kentaro Hara <haraken@chromium.org>
Unreviewed. Build fix of V8 bindings.
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::maybeDOMWrapper):
2012-11-13 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] UI: make the Grid save scrolling position, show wait spinner icon
https://bugs.webkit.org/show_bug.cgi?id=102071
Reviewed by Pavel Feldman.
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView):
(WebInspector.CanvasProfileView.prototype.dispose):
(WebInspector.CanvasProfileView.prototype.elementsToRestoreScrollPositionsFor):
(WebInspector.CanvasProfileView.prototype._enableWaitIcon):
(WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
(WebInspector.CanvasProfileView.prototype._replayTraceLog):
(WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
(WebInspector.CanvasProfileView.prototype._createCallNode):
* inspector/front-end/canvasProfiler.css:
(#canvas-replay-image.wait):
2012-11-13 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Settings screen: some panel shortcuts are missing
https://bugs.webkit.org/show_bug.cgi?id=101026
Reviewed by Pavel Feldman.
Panels, that have not been loaded by the time shortcuts view was
initialized, had no chance to register shortcuts.
Solution: move shortcut registration (for shortcuts screen) to panel
descriptors.
More changes: add JsDoc annotations to ShortcutScreen and change "key"
parameter type for raw string to key descriptor object.
* WebCore.gypi: Added TimelinePanelDescriptor.js file.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* inspector/compile-front-end.py: Ditto.
* inspector/front-end/WebKit.qrc: Ditto.
* inspector/front-end/inspector.html: Ditto.
* inspector/front-end/AdvancedSearchController.js: Add JsDoc annotation.
* inspector/front-end/GoToLineDialog.js: Ditto.
* inspector/front-end/CallStackSidebarPane.js: Removed shortcut-screen
shortcuts registration.
* inspector/front-end/ElementsPanel.js: Ditto.
* inspector/front-end/ScriptsPanel.js: Ditto.
* inspector/front-end/StylesSidebarPane.js: Ditto.
* inspector/front-end/TimelinePanel.js: Ditto.
* inspector/front-end/ConsoleView.js: Changes order of lines to increase
readability.
* inspector/front-end/ElementsPanelDescriptor.js: Add shortcut-screen
shortcuts registration and key descriptor constants.
* inspector/front-end/ScriptsPanelDescriptor.js: Ditto.
* inspector/front-end/TimelinePanelDescriptor.js: Ditto.
* inspector/front-end/Panel.js: Removed unused "uregisterShortcut"; made
"registerShortcuts" method accept array of key descriptors.
(WebInspector.PanelDescriptor.prototype.registerShortcuts): Added.
* inspector/front-end/ShortcutsScreen.js: Added JsDoc; changed parameter
type from string to key descriptor.
* inspector/front-end/inspector.js: Register shortcuts using
panel descriptors.
(WebInspector._panelDescriptors): Removed duplicate line.
2012-11-13 Gabor Rapcsanyi <rgabor@webkit.org>
Optimize RGB565 and RGBA5551 packing/unpacking functions with NEON intrinsics
https://bugs.webkit.org/show_bug.cgi?id=102060
Reviewed by Zoltan Herczeg.
Adding more NEONized packing functions to GraphicsContext3DNEON.h.
These functions are three times faster with this intrinsics optimizations.
* platform/graphics/GraphicsContext3D.cpp:
(WebCore):
* platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
(WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
(ARM):
(WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort5551NEON):
(WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
(WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort565NEON):
2012-11-13 Csaba Osztrogonác <ossy@webkit.org>
[Qt] Enable Mutation observer
https://bugs.webkit.org/show_bug.cgi?id=102066
Reviewed by Pavel Feldman.
* DerivedSources.pri: Add missing IDL files.
2012-11-13 Kentaro Hara <haraken@chromium.org>
[V8] Make isValidDOMObject() static
https://bugs.webkit.org/show_bug.cgi?id=101914
Reviewed by Adam Barth.
isValidDOMObject() is used by DOMWrapper.cpp only.
No tests. No change in behavior.
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::isValidDOMObject):
(WebCore):
(WebCore::V8DOMWrapper::maybeDOMWrapper):
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
2012-11-13 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Incorrect computed height for content with region-break-before
https://bugs.webkit.org/show_bug.cgi?id=101862
Reviewed by Julien Chaffraix.
When processing the region breaks for auto-height regions, we skipped the case
when the region-break-before occurred in the first region in the chain which was
an auto-height region. Because of that, the region computed height was not 0
as it was supposed to be, but rather LayoutUnit::max() / 2.
Test: fast/regions/autoheight-breakbefore-wrongheight.html
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::addForcedRegionBreak):
Make sure we process also the case when the region-break occurs at offset 0 in the flow thread
and the first region in chain is an auto-height region.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::updateLogicalHeight):
Add an assert to make sure that the computed height for auto-height regions is always less than LayoutUnit::max() / 2.
2012-11-13 Yury Semikhatsky <yurys@chromium.org>
Memory instrumentation: remove reportMemoryUsage method from ImageObserver
https://bugs.webkit.org/show_bug.cgi?id=102058
Reviewed by Pavel Feldman.
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::reportMemoryUsage): drive-by fix, no need to report
each element of the vector as generic vector instrumentation will take care of it.
* platform/graphics/Image.cpp: the client is reported as weak pointer to make sure
we don't count its by the pointer to the base class which may differ from the actual
object address.
(WebCore::Image::reportMemoryUsage):
* platform/graphics/ImageObserver.h: removed reportMemoryUsage method from the interface.
(ImageObserver):
2012-11-13 Eberhard Graether <egraether@google.com>
checkbox to toggle FPS counter in the inspector's settings
https://bugs.webkit.org/show_bug.cgi?id=99660
Reviewed by Pavel Feldman.
Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
No new tests.
* English.lproj/localizedStrings.js:
* inspector/Inspector.json:
* inspector/InspectorClient.h:
(WebCore::InspectorClient::canShowFPSCounter):
(WebCore::InspectorClient::setShowFPSCounter):
(InspectorClient):
* inspector/InspectorPageAgent.cpp:
(PageAgentState):
(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::canShowFPSCounter):
(WebCore):
(WebCore::InspectorPageAgent::setShowFPSCounter):
* inspector/InspectorPageAgent.h:
* inspector/front-end/Settings.js:
* inspector/front-end/SettingsScreen.js:
(WebInspector.GenericSettingsTab):
(WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
* inspector/front-end/inspector.js:
(WebInspector.doLoadedDone):
2012-11-12 Kent Tamura <tkent@chromium.org>
Unable to set valid time value to input[type=time] with user interaction in some cases
https://bugs.webkit.org/show_bug.cgi?id=102048
Reviewed by Kentaro Hara.
The implementations of shouldMillisecondFieldReadOnly,
shouldMinuteFieldReadOnly, and shouldSecondFieldReadOnly were
incorrect. We need to check if a part of the minimum value matches to
the corresponding part of the current value.
Also, we had better check hour field editability.
Test: fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField):
Fix a problem that hh:mm:00.sss didn't create a seconds field.
* html/shadow/DateTimeEditElement.cpp:
(DateTimeEditBuilder): Add shouldHourFieldReadOnly declaration.
(WebCore::DateTimeEditBuilder::visitField):
Add shouldHourFieldReadOnly check to Hour11/Hour12/Hour23/Hour24/Period fields.
(WebCore::DateTimeEditBuilder::shouldHourFieldReadOnly):
Added. An hour field should be read-only if the step value is a multiple
of a day and the hour part of the minimum value matches to the hour part
of the value.
(WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
A millisecond field should be read-only if the step value is a multiple
of one second and the millisecond part of the minimum value matches to
the millisecond part of the value.
(WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly):
A minute field should be read-only if the step value is a multiple of
one hour and the minute part of the minimum value matches to the minute
part of the value.
(WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly):
A second field should be read-only if the step value is a multiple of
one minute and the second part of the minimum value matches to the second
part of the value.
* platform/Decimal.cpp:
(WebCore::Decimal::remainder):
Fix a bug in case that the fractional part of quotient is >= 0.5. Also
make this matches to C99, C++11, ECMAScript behavior.
2012-11-13 Yury Semikhatsky <yurys@chromium.org>
Memory instrumentation: MemoryBlock name should not include full path to the block
https://bugs.webkit.org/show_bug.cgi?id=102055
Reviewed by Pavel Feldman.
* inspector/InspectorMemoryAgent.cpp: pass only last path component as MemoryBlock name
intead of fully qualified name.
2012-11-13 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: get rid of enter/exitTextChangeMode in the editor
https://bugs.webkit.org/show_bug.cgi?id=101845
Reviewed by Vsevolod Vlasov.
They seem to do nothing.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype._textChanged):
(WebInspector.DefaultTextEditor.prototype.editRange):
(WebInspector.TextEditorMainPanel):
(WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
(WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
(WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
(WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
* inspector/front-end/TextEditorModel.js:
(WebInspector.TextEditorModel.endsWithBracketRegex.):
2012-11-13 Tommy Widenflycht <tommyw@google.com>
Remove the custom WebSocket::send for both V8 and JSC
https://bugs.webkit.org/show_bug.cgi?id=101936
Reviewed by Kentaro Hara.
This patch removes the custom WebSocket::send since it isn't needed anymore.
Patch covered by existing tests.
* Modules/websockets/WebSocket.idl:
* UseV8.cmake:
* WebCore.gypi:
* bindings/js/JSWebSocketCustom.cpp:
* bindings/v8/custom/V8WebSocketCustom.cpp: Removed.
2012-11-13 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: move indentation logic into TextEditorModel
https://bugs.webkit.org/show_bug.cgi?id=101842
Reviewed by Vsevolod Vlasov.
I'd like to move as much headless logic into the TextEditorModel as possible.
Drive by: removed some dead code, converted getter into function and moved undo
mark state into the model as well.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype.editRange):
(WebInspector.DefaultTextEditor.prototype._syncDecorationsForLine):
(WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
(WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
(WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
(WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
(WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
(WebInspector.TextEditorMainChunk):
(WebInspector.TextEditorMainChunk.prototype.isDecorated):
(WebInspector.TextEditorMainChunk.prototype.set expanded):
* inspector/front-end/TextEditorModel.js:
(WebInspector.TextEditorModel.endsWithBracketRegex.):
2012-11-13 Hayato Ito <hayato@chromium.org>
Unreviewed attempt to fix the chromium mac-build after r134348.
* platform/graphics/mac/FontMac.mm:
(WebCore::Font::drawGlyphs):
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2012-11-13 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: migrate text editor to mutation observers
https://bugs.webkit.org/show_bug.cgi?id=101841
Reviewed by Vsevolod Vlasov.
Otherwise, we miss notifications on the removed lines.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype.wasShown):
(WebInspector.DefaultTextEditor.prototype.willHide):
(WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
(WebInspector.TextEditorMainPanel):
(WebInspector.TextEditorMainPanel.prototype._wasShown):
(WebInspector.TextEditorMainPanel.prototype._willHide):
(WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
(WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
(WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
(WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
(WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
(WebInspector.TextEditorMainPanel.prototype._paintLine):
(WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
(WebInspector.TextEditorMainPanel.prototype._handleMutations.else.get if):
(WebInspector.TextEditorMainPanel.prototype._handleMutations):
(WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
(WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
* inspector/front-end/externs.js:
(WebKitMutation):
(WebKitMutationObserver.prototype.observe):
(WebKitMutationObserver.prototype.disconnect):
* inspector/front-end/textEditor.css:
(.debug-fadeout):
(@-webkit-keyframes debug-fadeout):
(to):
2012-11-13 Gabor Rapcsanyi <rgabor@webkit.org>
Optimize RGBA4444ToRGBA8 packing/unpacking functions with NEON intrinsics in GraphicsContext3D
https://bugs.webkit.org/show_bug.cgi?id=101473
Reviewed by Zoltan Herczeg.
With NEON intrinsics the packing/unpacking functions can be optimized well.
This particular function is about 3 times faster with ARM NEON. On top level tests
the speed up was 1.18x.
* CMakeLists.txt:
* GNUmakefile.am:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* WebCore.pri:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/GraphicsContext3D.cpp:
(WebCore):
* platform/graphics/cpu/arm/GraphicsContext3DNEON.h: Added.
(WebCore):
(ARM):
(WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
(WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort4444NEON):
2012-11-13 Takashi Sakamoto <tasak@google.com>
Crash when replacing parts of text inputs with content: url(...)
https://bugs.webkit.org/show_bug.cgi?id=101133
Reviewed by Kent Tamura.
Disable directly setting content of elements in an input element's
shadow dom tree, because the setting breaks input element's behavior.
Tests: fast/forms/number/number-content-url-crash.html
fast/forms/search/search-content-url-crash.html
* css/html.css:
(input::-webkit-textfield-decoration-container):
Use important to disable overriding an input element's content
property.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::attach):
Added ASSERTION. No content should be applied to
input::-webkit-textfield-decoration-container.
2012-11-12 Huang Dongsung <luxtella@company100.net>
[Qt] REGRESSION(134142): overscaled tiles in pixel test results and MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=101918
Reviewed by Noam Rosenthal.
Remove TiledBackingStore::rect(), because it is not used anymore.
* platform/graphics/TiledBackingStore.h:
(TiledBackingStore):
2012-11-12 Adam Barth <abarth@webkit.org>
[V8] We should be able to recover the V8DOMWindowShell more quickly
https://bugs.webkit.org/show_bug.cgi?id=102020
Reviewed by Kentaro Hara.
For isolated worlds, we used to store the V8DOMWindowShell as an
internal field of the inner DOM window. This patch moves the pointer to
an internal field of the v8::Context, which saves us the work of
looking up the inner DOM window.
Unfortunately, we cannot store the V8DOMWindowShell in V8PerContextData
because the V8DOMWindowShell outlives the V8PerContextData. (We destroy
the V8PerContextData when we detach the V8DOMWindowShell from the
frame.)
* bindings/scripts/CodeGeneratorV8.pm:
(GetInternalFields):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initializeIfNeeded):
* bindings/v8/V8DOMWindowShell.h:
(WebCore::V8DOMWindowShell::getEntered):
* bindings/v8/V8PerContextData.h:
2012-11-12 Kentaro Hara <haraken@chromium.org>
[V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
https://bugs.webkit.org/show_bug.cgi?id=101054
Reviewed by Adam Barth.
I'm investigating a Chromium crash bug:
http://code.google.com/p/chromium/issues/detail?id=155942
I've not yet identified the root cause (because I can't reproduce
the crash), but it looks like we are storing NULL pointers to
V8 internal fields. Just in case, we can add an ASSERT() to
guarantee that NULL pointers are never stored. (Also I'm hoping
that this ASSERT() will give me more debug information.)
No tests. No change in behavior.
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::setDOMWrapper):
2012-11-12 Shinya Kawanaka <shinyak@chromium.org>
Changing id, className, or attribute should invalidate distribution
https://bugs.webkit.org/show_bug.cgi?id=100738
Reviewed by Dimitri Glazkov.
When id, className, or attribute is changed, we might have to invalidate distribution.
However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow,
and invalidate distribution only if necessary.
When className is changed, we can share a lot of code between invalidating distribution and invalidating style.
So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
Also we've measured how this patch makes changing attribute slow. By converting checkNeedsStyleInvalidationForClassChange
to template, actually this improves the performance of changing attribute code. I've measured each code 3 times.
DOM/ModifyAttribute.html
Before this patch:
median stdev min max [ms]
1st 115.62 0.67 114.75 117.00
2nd 115.08 1.13 113.25 117.58
3rd 114.75 1.16 113.42 117.83
After this patch:
median stdev min max [ms]
1st 102.55 0.95 101.25 104.50
2nd 103.10 0.86 102.20 100.95
3rd 103.30 1.05 102.10 106.65
Tests: fast/dom/shadow/distribution-attribute-modified.html
fast/dom/shadow/distribution-className-modified.html
fast/dom/shadow/distribution-id-modified.html
fast/dom/shadow/reprojection-attribute-modified.html
fast/dom/shadow/reprojection-className-modified.html
fast/dom/shadow/reprojection-id-modified.html
* dom/Element.cpp:
(WebCore::Element::attributeChanged):
(WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
(HasSelectorForClassStyleFunctor):
(WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
(WebCore):
(WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
(HasSelectorForClassDistributionFunctor):
(WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectorForClass returns true.
(WebCore::checkFunctorForClassChange):
(WebCore::checkNeedsStyleInvalidationForClassChange): Extacted the implementation to checkFunctorForClassChange.
(WebCore::checkNeedsDistributionInvalidationForClassChange):
(WebCore::Element::classAttributeChanged):
2012-11-12 Joe Mason <jmason@rim.com>
[BlackBerry] NetworkJob should not check if data is received with HEAD
https://bugs.webkit.org/show_bug.cgi?id=102034
Reviewed by George Staikos.
Internal PR: 241391
Make HEAD requests call didFinish instead of didFail on a 404 response, even though they
have no data.
Tests: ManualTests/blackberry/head-xhr-nonexistant-file.html
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::NetworkJob):
(WebCore::NetworkJob::initialize):
(WebCore::NetworkJob::shouldNotifyClientFailed):
* platform/network/blackberry/NetworkJob.h:
(NetworkJob):
2012-11-12 Adam Barth <abarth@webkit.org>
[V8] V8DOMWrapper::instantiateV8Object shouldn't use deprecatedDocument
https://bugs.webkit.org/show_bug.cgi?id=102015
Reviewed by Kentaro Hara.
Previously, Nodes had a special path through
V8DOMWrapper::instantiateV8Object using deprecatedDocument so that we
could find the V8PerContextData quickly. Now that we can get the
V8PerContextData from the v8::Context quickly, we can move Nodes to the
general case. The net consequence is that creation of all DOM objects
should be as fast as Nodes are.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateToV8Converters):
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore::V8Float64Array::wrapSlow):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::V8TestActiveDOMObject::wrapSlow):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::V8TestCustomNamedGetter::wrapSlow):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::wrapSlow):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::V8TestEventTarget::wrapSlow):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore::V8TestException::wrapSlow):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::V8TestInterface::wrapSlow):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::V8TestMediaQueryListListener::wrapSlow):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructor::wrapSlow):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::wrapSlow):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::V8TestObj::wrapSlow):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
(WebCore::V8TestOverloadedConstructors::wrapSlow):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
* bindings/v8/V8Binding.cpp:
* bindings/v8/V8Binding.h:
(WebCore):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::instantiateV8Object):
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
2012-11-12 KyungTae Kim <ktf.kim@samsung.com>
Some CSS properties are not handled on StyleResolver::applyProperty
https://bugs.webkit.org/show_bug.cgi?id=102027
Reviewed by Gyuyoung Kim.
The CSSPropertyMaxZoom, CSSPropertyMinZoom, CSSPropertyOrientation and CSSPropertyUserZoom
need to be handled on StyleResolver::applyProperty.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
2012-11-12 Simon Fraser <simon.fraser@apple.com>
Avoid calling calculateLayerBounds() and convertToLayerCoords() more than once per layer paint
https://bugs.webkit.org/show_bug.cgi?id=102031
Reviewed by Beth Dakin.
RenderLayer::paintLayerContents() and callees could end up calling convertToLayerCoords()
and calculateLayerBounds() multiple times for painting a single layer.
Keep track of whether we've computed the root-relative bounds and do it on demand.
Compute the offset relative to rootLayer once, and pass it around as an optional parameter
to functions that need it.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::calculateRects):
(WebCore::RenderLayer::intersectsDamageRect):
(WebCore::RenderLayer::boundingBox):
(WebCore::RenderLayer::calculateLayerBounds):
* rendering/RenderLayer.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::calculateCompositedBounds):
2012-11-12 Simon Fraser <simon.fraser@apple.com>
Change calculateLayerBounds() from a static function to a member function
https://bugs.webkit.org/show_bug.cgi?id=102022
Reviewed by Beth Dakin.
calculateLayerBounds() has grown into a substantial function after
starting live as a little utility function, so make it a member function
of RenderLayer, and adjust callers accordingly.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::calculateLayerBounds):
* rendering/RenderLayer.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::calculateCompositedBounds):
2012-11-12 Alexei Filippov <alph@chromium.org>
Web Inspector: Add an option to switch display of "Other" memory on/off in NMI
https://bugs.webkit.org/show_bug.cgi?id=101601
Reviewed by Yury Semikhatsky.
* English.lproj/localizedStrings.js:
* inspector/front-end/NativeMemorySnapshotView.js:
* inspector/front-end/Settings.js:
* inspector/front-end/SettingsScreen.js:
(WebInspector.GenericSettingsTab):
2012-11-10 Dirk Schulze <krit@webkit.org>
BasicShapes 'circle', 'rectangle', 'ellipse' should be animatable with themselves
https://bugs.webkit.org/show_bug.cgi?id=101854
Reviewed by Andreas Kling.
The basic shapes BasicShapeCircle, BasicShapeEllipse and BasicShapeRectangle should
blend with themselves. This patch introduces simple interpolation of BasicShapes for
the -webkit-clip-path property.
Test: css3/masking/clip-path-animation.html
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc): Added a new function that blends between two BasicShape objects.
It skips blending on <clipPath> references, polygons and if the shapes are not of
the same type.
(WebCore):
(PropertyWrapperClipPath): Added new wrapper for ClipPathShapes.
(WebCore::PropertyWrapperClipPath::PropertyWrapperClipPath): Ditto.
(WebCore::CSSPropertyAnimation::ensurePropertyMap): Add -webkit-clip-path to animatable
properties.
* rendering/style/BasicShapes.cpp:
The blending is done by each shape itself. This is similar to FilterOperations or
TransformOperations.
(WebCore::BasicShapeRectangle::blend):
(WebCore):
(WebCore::BasicShapeCircle::blend):
(WebCore::BasicShapeEllipse::blend):
(WebCore::BasicShapePolygon::blend):
* rendering/style/BasicShapes.h:
Added new blending functions to header.
(BasicShape):
(BasicShapeRectangle):
(BasicShapeCircle):
(BasicShapeEllipse):
(BasicShapePolygon):
2012-11-12 Adam Barth <abarth@webkit.org>
[V8] We should be able to get V8PerContextData from a v8::Context more quickly
https://bugs.webkit.org/show_bug.cgi?id=102008
Reviewed by Ojan Vafai.
This patch uses the new v8::Context::GetAlignedPointerFromEmbedderData
API to get the V8PerContextData associated with a v8::Context much more
quickly. We no longer need to use a hidden property on the inner global
object. This patch will enable future optimizations.
* bindings/v8/V8HiddenPropertyName.h:
(WebCore):
* bindings/v8/V8PerContextData.cpp:
(WebCore::V8PerContextData::dispose):
(WebCore::V8PerContextData::init):
* bindings/v8/V8PerContextData.h:
(WebCore::V8PerContextData::from):
2012-11-12 Elliott Sprehn <esprehn@chromium.org>
Make Frames and HTMLFrameOwnerElement less friendly
https://bugs.webkit.org/show_bug.cgi?id=102003
Reviewed by Ojan Vafai.
Frame used to assign HTMLFrameOwnerElement's m_contentFrame directly
this patch makes it go through a method to allow future hooks when frames
are associated with owners.
No new tests, this is just a refactor.
* html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::setContentFrame):
* html/HTMLFrameOwnerElement.h:
(HTMLFrameOwnerElement):
(WebCore::HTMLFrameOwnerElement::clearContentFrame):
* page/Frame.cpp:
(WebCore::Frame::Frame): Use new methods.
2012-11-12 Beth Dakin <bdakin@apple.com>
Zoomed-in scrolling is very slow when deviceScaleFactor > 1
https://bugs.webkit.org/show_bug.cgi?id=101787
Reviewed by Simon Fraser.
This patch adds a new member to the GraphicsContextState that tracks
whether or not fonts should be subpixel-quantized. We want to default
to sibpixel-quantizing, but we'll turn it off if we're scrolling
content that cannot be scrolled on the scrolling thread.
State has a new bool shouldSubpixelQuantizeFonts. It defaults to true
since normally we do want to quantize.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts):
(WebCore::GraphicsContext::shouldSubpixelQuantizeFonts):
* platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContextState::GraphicsContextState):
(GraphicsContextState):
(GraphicsContext):
wkSetCGFontRenderingMode now takes a BOOL parameter which indicates
whether or not it should try to subpixel-quantize the fonts.
* platform/graphics/mac/FontMac.mm:
(WebCore::Font::drawGlyphs):
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
Disable subpixel-quantization for overflow areas, subframes, and
content that is scrolling on the main thread.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents):
2012-11-12 Timothy Hatcher <timothy@apple.com>
Expose InspectorFrontendClientLocal::setAttachedWindow as public.
This allows external actions to update the docked state in the frontend.
https://bugs.webkit.org/show_bug.cgi?id=102023
Reviewed by Anders Carlsson.
* inspector/InspectorFrontendClientLocal.h:
Moved InspectorFrontendClientLocal::setAttachedWindow to public section.
2012-11-12 Erik Arvidsson <arv@chromium.org>
Replace DOMException TYPE_MISMATCH_ERR with TypeError
https://bugs.webkit.org/show_bug.cgi?id=101604
Reviewed by Adam Barth.
DOMException.TYPE_MISMATCH_ERR is deprecated in favor of using TypeError.
We have historically used TYPE_MISMATCH_ERR as a blanket DOMException code when
the spec mandates TypeError being thrown.
Updated existing tests.
* Modules/mediastream/MediaConstraintsImpl.cpp:
* Modules/mediastream/MediaStreamTrackList.cpp:
* Modules/mediastream/PeerConnection00.cpp:
* Modules/mediastream/RTCDataChannel.cpp:
* Modules/mediastream/RTCIceCandidate.cpp:
* Modules/mediastream/RTCPeerConnection.cpp:
* Modules/mediastream/RTCSessionDescription.cpp:
* Modules/mediastream/SessionDescription.cpp:
* bindings/js/CallbackFunction.cpp:
* bindings/js/JSCustomXPathNSResolver.cpp:
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
* bindings/js/JSHTMLSelectElementCustom.cpp:
* bindings/js/JSMutationObserverCustom.cpp:
* bindings/js/JSSQLResultSetRowListCustom.cpp:
* bindings/js/JSSQLTransactionCustom.cpp:
* bindings/js/JSSQLTransactionSyncCustom.cpp:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorObjC.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/V8Callback.h:
* bindings/v8/V8Collection.cpp:
* bindings/v8/custom/V8DocumentCustom.cpp:
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
* bindings/v8/custom/V8MutationObserverCustom.cpp:
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
* bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
* dom/DOMCoreException.idl:
* html/HTMLElement.cpp:
* html/HTMLMediaElement.cpp:
* html/HTMLOptionsCollection.cpp:
* html/canvas/CanvasRenderingContext2D.cpp:
* page/Crypto.cpp:
* page/DOMSelection.cpp:
* svg/properties/SVGTransformListPropertyTearOff.h:
2012-11-12 Joshua Bell <jsbell@chromium.org>
IndexedDB: Use sequence<> instead of DOMString[] in IDL
https://bugs.webkit.org/show_bug.cgi?id=100539
Reviewed by Adam Barth.
In the binding layer, DOMString[] is implemented as an alias for DOMStringList.
WebIDL usage is tending towards sequence<DOMString> anyway for inputs, so switch
to that. Note webkit.org/b/100537 which requires sequence<String> instead.
Covered by storage/indexeddb/transaction-basics.html and objectstore-basics.html
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::transaction): DOMStringList -> Vector<String>
* Modules/indexeddb/IDBDatabase.h:
(WebCore::IDBDatabase::transaction):
(IDBDatabase):
* Modules/indexeddb/IDBDatabase.idl: DOMString[] -> sequence<String>
* Modules/indexeddb/IDBObjectStore.cpp: Move trivial impls to header.
* Modules/indexeddb/IDBObjectStore.h:
(WebCore::IDBObjectStore::createIndex):
* Modules/indexeddb/IDBObjectStore.idl: DOMString[] -> sequence<String>
2012-11-12 Anders Carlsson <andersca@apple.com>
Remove Leopard only gradient code
https://bugs.webkit.org/show_bug.cgi?id=102033
Reviewed by Dan Bernstein.
USE_CG_SHADING was only ever true on Leopard, so we can remove it now.
* platform/graphics/Gradient.h:
* platform/graphics/cg/GradientCG.cpp:
(WebCore::Gradient::platformDestroy):
(WebCore::Gradient::platformGradient):
(WebCore::Gradient::paint):
2012-11-12 Tiancheng Jiang <tijiang@rim.com>
[BlackBerry] Update BB10 form theme.
https://bugs.webkit.org/show_bug.cgi?id=100760
Reviewed by Rob Buis.
RIM PR 237003
Internally Reviewed by Eli Fidler.
Since we nolonger use small font for form controls, adjust paddingDivisor
ratio to decrease the padding value.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore):
2012-11-12 Simon Fraser <simon.fraser@apple.com>
Fix filter dirty rect regression from r134311
https://bugs.webkit.org/show_bug.cgi?id=102002
Reviewed by Beth Dakin.
When rendering with filters, the code can inflate the root-relative
paintDirtyRect in RenderLayer::paintLayerContents(), and my cleanup
broke this behavior.
Fix by making a local copy of LayerPaintingInfo, updating its paintDirtyRect,
and using it for the rest of the function.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents):
2012-11-12 Kentaro Hara <haraken@chromium.org>
[V8] V8Event::valueAccessorGetter() in custom binding is not used
https://bugs.webkit.org/show_bug.cgi?id=101893
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/v8/custom/V8EventCustom.cpp:
2012-11-12 Roger Fong <roger_fong@apple.com>
Web Inspector: Fix docking behaviour on Windows.
https://bugs.webkit.org/show_bug.cgi?id=101978
Reviewed by Brian Weinstein.
There are a number of problems with docking behaviour on Windows.
For starters, it does not ever constrain the inspector's size properly while docked.
It also does not properly set the whether or not the inspector can be docked/undocked.
This patch fixes both issues.
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::frontendLoaded):
Switch order of calling bringToFront and setDockingUnavailable.
2012-11-12 Adam Barth <abarth@webkit.org>
[V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
https://bugs.webkit.org/show_bug.cgi?id=101519
Reviewed by Ojan Vafai.
There should be no change in behavior. The new API is slightly faster
than the old API (and apparently works correctly internally in V8).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* bindings/scripts/test/V8/V8Float64Array.h:
(WebCore::V8Float64Array::toNative):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore::V8TestActiveDOMObject::toNative):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore::V8TestCustomNamedGetter::toNative):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore::V8TestEventConstructor::toNative):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore::V8TestEventTarget::toNative):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore::V8TestException::toNative):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::V8TestInterface::toNative):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::V8TestMediaQueryListListener::toNative):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::V8TestNamedConstructor::toNative):
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::V8TestNode::toNative):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore::V8TestObj::toNative):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::V8TestSerializedScriptValueInterface::toNative):
* bindings/v8/NPV8Object.cpp:
(WebCore::v8ObjectToNPObject):
(WebCore::npCreateV8ScriptObject):
* bindings/v8/V8Collection.h:
(WebCore::toNativeCollection):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::setIsolatedWorldField):
(WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::isWrapperOfType):
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::setDOMWrapper):
(WebCore::V8DOMWrapper::clearDOMWrapper):
* bindings/v8/WrapperTypeInfo.h:
(WebCore::toNative):
(WebCore::toWrapperTypeInfo):
2012-11-12 Andreas Kling <kling@webkit.org>
Rename AttributeStyle => PresentationAttributeStyle across WebCore.
<http://webkit.org/b/101975>
Rubber-stamped by Antti Koivisto.
The completely separate concepts of "attribute style" and "style attribute" were a bit too
easy to confuse in variable and method names. Reconfigure our terminology to call it
"presentation attribute style" instead of "attribute style".
* css/StyleResolver.cpp:
(WebCore::StyleResolver::sweepMatchedPropertiesCache):
(WebCore::StyleResolver::matchAllRules):
(WebCore::StyleResolver::canShareStyleWithElement):
* dom/Attr.cpp:
(WebCore::Attr::style):
* dom/ElementAttributeData.cpp:
(WebCore::MutableElementAttributeData::MutableElementAttributeData):
(WebCore::ElementAttributeData::reportMemoryUsage):
* dom/ElementAttributeData.h:
(WebCore::ElementAttributeData::presentationAttributeStyle):
(WebCore::ElementAttributeData::setPresentationAttributeStyle):
(ElementAttributeData):
* dom/Node.h:
(WebCore::Node::attributeStyleDirty):
(WebCore::Node::setPresentationAttributeStyleDirty):
(WebCore::Node::clearPresentationAttributeStyleDirty):
* dom/StyledElement.cpp:
(WebCore::StyledElement::attributeChanged):
(WebCore::StyledElement::rebuildPresentationAttributeStyle):
(WebCore::StyledElement::addPropertyToPresentationAttributeStyle):
* dom/StyledElement.h:
(WebCore::StyledElement::additionalPresentationAttributeStyle):
(StyledElement):
(WebCore::StyledElement::collectStyleForPresentationAttribute):
(WebCore::StyledElement::presentationAttributeStyle):
* html/HTMLBRElement.cpp:
(WebCore::HTMLBRElement::collectStyleForPresentationAttribute):
* html/HTMLBRElement.h:
(HTMLBRElement):
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::collectStyleForPresentationAttribute):
* html/HTMLBodyElement.h:
(HTMLBodyElement):
* html/HTMLDivElement.cpp:
(WebCore::HTMLDivElement::collectStyleForPresentationAttribute):
* html/HTMLDivElement.h:
(HTMLDivElement):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::applyBorderAttributeToStyle):
(WebCore::HTMLElement::mapLanguageAttributeToLocale):
(WebCore::HTMLElement::collectStyleForPresentationAttribute):
(WebCore::HTMLElement::applyAlignmentAttributeToStyle):
(WebCore::HTMLElement::addHTMLLengthToStyle):
* html/HTMLElement.h:
(HTMLElement):
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::collectStyleForPresentationAttribute):
* html/HTMLEmbedElement.h:
(HTMLEmbedElement):
* html/HTMLFontElement.cpp:
(WebCore::HTMLFontElement::collectStyleForPresentationAttribute):
* html/HTMLFontElement.h:
(HTMLFontElement):
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::collectStyleForPresentationAttribute):
* html/HTMLFrameSetElement.h:
(HTMLFrameSetElement):
* html/HTMLHRElement.cpp:
(WebCore::HTMLHRElement::collectStyleForPresentationAttribute):
* html/HTMLHRElement.h:
(HTMLHRElement):
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::collectStyleForPresentationAttribute):
* html/HTMLIFrameElement.h:
(HTMLIFrameElement):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::collectStyleForPresentationAttribute):
* html/HTMLImageElement.h:
(HTMLImageElement):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::collectStyleForPresentationAttribute):
* html/HTMLInputElement.h:
(HTMLInputElement):
* html/HTMLLIElement.cpp:
(WebCore::HTMLLIElement::collectStyleForPresentationAttribute):
* html/HTMLLIElement.h:
(HTMLLIElement):
* html/HTMLMarqueeElement.cpp:
(WebCore::HTMLMarqueeElement::collectStyleForPresentationAttribute):
* html/HTMLMarqueeElement.h:
(HTMLMarqueeElement):
* html/HTMLOListElement.cpp:
(WebCore::HTMLOListElement::collectStyleForPresentationAttribute):
* html/HTMLOListElement.h:
(HTMLOListElement):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::collectStyleForPresentationAttribute):
* html/HTMLObjectElement.h:
(HTMLObjectElement):
* html/HTMLParagraphElement.cpp:
(WebCore::HTMLParagraphElement::collectStyleForPresentationAttribute):
* html/HTMLParagraphElement.h:
(HTMLParagraphElement):
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::collectStyleForPresentationAttribute):
* html/HTMLPlugInElement.h:
(HTMLPlugInElement):
* html/HTMLPreElement.cpp:
(WebCore::HTMLPreElement::collectStyleForPresentationAttribute):
* html/HTMLPreElement.h:
(HTMLPreElement):
* html/HTMLTableCaptionElement.cpp:
(WebCore::HTMLTableCaptionElement::collectStyleForPresentationAttribute):
* html/HTMLTableCaptionElement.h:
(HTMLTableCaptionElement):
* html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::collectStyleForPresentationAttribute):
(WebCore::HTMLTableCellElement::additionalPresentationAttributeStyle):
* html/HTMLTableCellElement.h:
(HTMLTableCellElement):
* html/HTMLTableColElement.cpp:
(WebCore::HTMLTableColElement::collectStyleForPresentationAttribute):
(WebCore::HTMLTableColElement::additionalPresentationAttributeStyle):
* html/HTMLTableColElement.h:
(HTMLTableColElement):
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::collectStyleForPresentationAttribute):
(WebCore::HTMLTableElement::additionalPresentationAttributeStyle):
* html/HTMLTableElement.h:
(HTMLTableElement):
* html/HTMLTablePartElement.cpp:
(WebCore::HTMLTablePartElement::collectStyleForPresentationAttribute):
* html/HTMLTablePartElement.h:
(HTMLTablePartElement):
* html/HTMLTableSectionElement.cpp:
(WebCore::HTMLTableSectionElement::additionalPresentationAttributeStyle):
* html/HTMLTableSectionElement.h:
(HTMLTableSectionElement):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::collectStyleForPresentationAttribute):
* html/HTMLTextAreaElement.h:
(HTMLTextAreaElement):
* html/HTMLUListElement.cpp:
(WebCore::HTMLUListElement::collectStyleForPresentationAttribute):
* html/HTMLUListElement.h:
(HTMLUListElement):
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::collectStyleForPresentationAttribute):
* html/HTMLVideoElement.h:
(HTMLVideoElement):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::collectStyleForPresentationAttribute):
* mathml/MathMLElement.h:
(MathMLElement):
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::collectStyleForPresentationAttribute):
* svg/SVGImageElement.h:
(SVGImageElement):
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::collectStyleForPresentationAttribute):
* svg/SVGStyledElement.h:
(SVGStyledElement):
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::collectStyleForPresentationAttribute):
* svg/SVGTextContentElement.h:
(SVGTextContentElement):
2012-11-12 Adam Barth <abarth@webkit.org>
[V8] Many things crash when switching to V8's new aligned pointer API
https://bugs.webkit.org/show_bug.cgi?id=101994
Reviewed by Eric Seidel.
When using the aligned pointer API, we need to make sure to initialize
every internal field that we later read because the new API has better
error checks than the old API. This patch explicitly initializes the
enteredIsolatedWorldIndex internal field to zero for main worlds,
fixing the LayoutTest crashes from our previous attempt to move the
aligned pointer API.
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initializeIfNeeded):
2012-11-12 Simon Fraser <simon.fraser@apple.com>
Reduce the crazy number of parameters to RenderLayer painting member functions
https://bugs.webkit.org/show_bug.cgi?id=101895
Reviewed by Beth Dakin.
The various RenderLayer::paintLayer* functions took a lot of arguments, most
of which were passed down directly to descendants.
Gather these arguments into a LayerPaintingInfo struct.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paint): Create a LayerPaintingInfo struct to pass
to descendant paint calls.
(WebCore::RenderLayer::paintOverlayScrollbars): Ditto.
(WebCore::RenderLayer::paintLayer): When painting transformed layers, we
make a new LayerPaintingInfo because the root layer is shifted.
(WebCore::RenderLayer::paintLayerContentsAndReflection):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintList):
(WebCore::RenderLayer::paintPaginatedChildLayer):
(WebCore::RenderLayer::paintChildLayerIntoColumns): Create a new LayerPaintingInfo
struct for column painting.
* rendering/RenderLayer.h:
(WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
(LayerPaintingInfo):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer): Build a LayerPaintingInfo
to enter layer painting.
* rendering/RenderReplica.cpp:
(WebCore::RenderReplica::paint): Ditto.
2012-11-12 Brady Eidson <beidson@apple.com>
NetworkProcess: Use an accurate shouldContentSniff value when creating ResourceHandles
https://bugs.webkit.org/show_bug.cgi?id=101872
Reviewed by Alexey Proskuryakov.
Expose shouldSniffContent to pass it along to the NetworkProcess.
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::shouldSniffContent):
2012-11-12 Christophe Dumez <christophe.dumez@intel.com>
Fix memory leak in createSurfaceForBackingStore()
https://bugs.webkit.org/show_bug.cgi?id=101941
Reviewed by Kenneth Rohde Christiansen.
Fix memory leak in createSurfaceForBackingStore(),
the RefPtr<cairo_surface_t> should be released
when returned since we pass ownership to the
caller.
No new tests, no behavior change for layout tests.
* platform/graphics/efl/CairoUtilitiesEfl.cpp:
(WebCore::createSurfaceForBackingStore):
2012-11-12 Joe Mason <jmason@rim.com>
[BlackBerry] Update to new proxyInfo API
https://bugs.webkit.org/show_bug.cgi?id=101945
Reviewed by George Staikos.
Internal PR: 234680
Reviewed internally by: Leo Yang
The proxyAddress, proxyUsername and proxyPassword methods in BlackBerry::Platform::Settings
have been replaced with a single, more efficient proxyInfo method.
No new tests because this is an API update with no behaviour change.
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::sendRequestWithCredentials):
(WebCore::NetworkJob::storeCredentials):
2012-11-12 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r126157.
http://trac.webkit.org/changeset/126157
https://bugs.webkit.org/show_bug.cgi?id=101954
This patch caused (untestable) regression of the volume
property on Mac, Win, and Blackberry ports. (Requested by
jernoble on #webkit).
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::loadWithNextMediaEngine):
(WebCore::MediaPlayer::setVolume):
(WebCore::MediaPlayer::setMuted):
(WebCore::MediaPlayer::setPreservesPitch):
(WebCore::MediaPlayer::setSize):
(WebCore::MediaPlayer::setVisible):
(WebCore::MediaPlayer::setPreload):
2012-11-12 Arpita Bahuguna <arpitabahuguna@gmail.com>
Specified width CSS tables should not include border and padding as part of that width.
https://bugs.webkit.org/show_bug.cgi?id=77028
Reviewed by Julien Chaffraix.
CSS table width should not include border and padding even though HTML
tables size as though their width includes border/padding.
This is applicable for all CSS tables with specified widths.
The change would also make our rendering of CSS tables with specified
width similar to that of Opera, IE and FF.
Test: fast/table/css-table-width-with-border-padding.html
* rendering/RenderTable.cpp:
(WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
Added check for all (positive) specified widths for CSS tables to
consider border and padding outside of the specified width.
2012-11-12 Allan Sandfeld Jensen <allan.jensen@digia.com>
Move resolving blob references to FormData.
https://bugs.webkit.org/show_bug.cgi?id=101754
Reviewed by Simon Hausmann.
Resolving Blob-references to a set of just File and Data is done similar by several platforms.
This patch adds a generic implementation in FormData and uses that from CFNetwork, Qt and
BlackBerry network implementation.
* platform/network/FormData.cpp:
(WebCore::appendBlobResolved):
(WebCore::FormData::resolveBlobReferences):
* platform/network/FormData.h:
* platform/network/blackberry/ResourceRequestBlackBerry.cpp:
(WebCore::ResourceRequest::initializePlatformRequest):
* platform/network/cf/FormDataStreamCFNet.cpp:
(WebCore::setHTTPBody):
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::FormDataIODevice::prepareFormElements):
2012-11-12 Zeno Albisser <zeno@webkit.org>
GraphicsSurfaceGLX does not handle transparency correctly.
https://bugs.webkit.org/show_bug.cgi?id=101943
GraphicsSurfacGLX must consistently use RGBA texture format.
glXCreateWindow must be called after creating the XWindow
that serves as a temporary offscreen texture storage, in order
to allow for transparency.
When creating the offscreen XWindow we must make sure,
that we use a framebuffer configuration that supports
an alpha mask.
Reviewed by Noam Rosenthal.
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore):
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createSurface):
(GraphicsSurfacePrivate):
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
2012-11-12 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134225.
http://trac.webkit.org/changeset/134225
https://bugs.webkit.org/show_bug.cgi?id=101948
Appears to have broken the EFL and GTK builds (Requested by
abarth on #webkit).
* bindings/js/JSHTMLElementCustom.cpp:
(WebCore):
(WebCore::JSHTMLElement::itemValue):
(WebCore::JSHTMLElement::setItemValue):
* bindings/v8/custom/V8HTMLElementCustom.cpp:
(WebCore):
(WebCore::V8HTMLElement::itemValueAccessorGetter):
(WebCore::V8HTMLElement::itemValueAccessorSetter):
* html/HTMLElement.idl:
2012-11-12 Allan Sandfeld Jensen <allan.jensen@digia.com>
hitTestResultAtPoint does two hit-tests if called on non main frame
https://bugs.webkit.org/show_bug.cgi?id=101915
Reviewed by Antonio Gomes.
Always redirect hitTestResultAtPoint to the main-frame. This used to being
done on every result that hit anything, which caused running the expensive
hit-tests multiple times in almost all cases.
* page/EventHandler.cpp:
(WebCore::EventHandler::hitTestResultAtPoint):
2012-11-12 Kentaro Hara <haraken@chromium.org>
[V8][JSC] ScriptProfileNode::callUID needs not to be [Custom]
https://bugs.webkit.org/show_bug.cgi?id=101892
Reviewed by Adam Barth.
We can remove [Custom] from callUID in ScriptProfileNode.idl.
No tests. No change in behavior.
* GNUmakefile.list.am:
* Target.pri:
* UseJSC.cmake:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSScriptProfileNodeCustom.cpp: Removed.
* bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
* inspector/ScriptProfileNode.idl:
2012-11-12 Kentaro Hara <haraken@chromium.org>
[V8] Performance::memory getter needs not to be [Custom]
https://bugs.webkit.org/show_bug.cgi?id=101890
Reviewed by Adam Barth.
No tests. No change in behavior.
* UseV8.cmake:
* WebCore.gypi:
* bindings/v8/custom/V8PerformanceCustom.cpp: Removed.
* page/Performance.idl:
2012-11-12 Kentaro Hara <haraken@chromium.org>
[V8][JSC] HTMLOptionsCollection::length needs not to be [Custom]
https://bugs.webkit.org/show_bug.cgi?id=101888
Reviewed by Adam Barth.
We can remove [Custom] from getter. It is possible to remove [Custom]
from setter, but it changes the current behavior.
(I think the current implementation of the setter is wrong.
I'll fix it in another patch.)
No tests. No change in behavior.
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
* html/HTMLOptionsCollection.idl:
2012-11-12 Yael Aharon <yael.aharon@intel.com>
[EFL][WK2][AC] Black screen when applications use software backend.
https://bugs.webkit.org/show_bug.cgi?id=101659
Reviewed by Kenneth Rohde Christiansen.
Add a utility method to create a cairo_surface_t from a given Evas_Object_Image.
No new tests. Will be covered when running existing tests without enabling openGL.
* platform/graphics/efl/CairoUtilitiesEfl.cpp:
(WebCore::createSurfaceForImage):
(WebCore):
* platform/graphics/efl/CairoUtilitiesEfl.h:
(WebCore):
2012-11-12 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix make distcheck.
* GNUmakefile.am: Remove editing from IDL_PATH since it doesn't
contain idl files anymore.
* GNUmakefile.list.am: Add missing header files.
2012-11-12 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Make sure that MediaConstraints only has optional and mandatory at the top level
https://bugs.webkit.org/show_bug.cgi?id=101733
Reviewed by Jochen Eisinger.
This patch adds better verification to MediaConstraintsImpl.
Existing tests expanded to cover this change.
* Modules/mediastream/MediaConstraintsImpl.cpp:
(WebCore::MediaConstraintsImpl::initialize):
2012-11-12 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134223.
http://trac.webkit.org/changeset/134223
https://bugs.webkit.org/show_bug.cgi?id=101939
Breaks inspector tests (Requested by pfeldman on #webkit).
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
(WebInspector.TextEditorMainPanel):
(WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
(WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
(WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
(WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
(WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
(WebInspector.TextEditorMainPanel.prototype._paintLine):
(WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
(WebInspector.TextEditorMainPanel.prototype._handleDOMUpdates):
(WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
* inspector/front-end/externs.js:
* inspector/front-end/textEditor.css:
2012-11-12 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Support ResourceRequest's setTimeoutInterval
https://bugs.webkit.org/show_bug.cgi?id=101731
Reviewed by Simon Hausmann.
Establish a timeout and return the correct error when it is triggered.
Tested by existing http/tests/xmlhttprequest/timeout tests.
* platform/network/ResourceRequestBase.cpp:
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::release):
(WebCore::QNetworkReplyHandler::finish):
(WebCore::QNetworkReplyHandler::timeout):
(WebCore::QNetworkReplyHandler::timerEvent):
(WebCore::QNetworkReplyHandler::start):
* platform/network/qt/QNetworkReplyHandler.h:
(QNetworkReplyHandler):
2012-11-12 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134224.
http://trac.webkit.org/changeset/134224
https://bugs.webkit.org/show_bug.cgi?id=101937
asserting on bawts (Requested by kling on #webkit).
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff):
(WebCore::RenderStyle::setColor):
(WebCore::RenderStyle::setVisitedLinkColor):
* rendering/style/RenderStyle.h:
* rendering/style/StyleBackgroundData.cpp:
(WebCore::StyleBackgroundData::StyleBackgroundData):
* rendering/style/StyleBackgroundData.h:
(WebCore::StyleBackgroundData::color):
(StyleBackgroundData):
* rendering/style/StyleInheritedData.cpp:
(WebCore::StyleInheritedData::StyleInheritedData):
* rendering/style/StyleInheritedData.h:
(StyleInheritedData):
* rendering/style/StyleMultiColData.cpp:
(WebCore::StyleMultiColData::StyleMultiColData):
* rendering/style/StyleMultiColData.h:
(StyleMultiColData):
* rendering/style/StyleRareInheritedData.cpp:
(SameSizeAsStyleRareInheritedData):
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h:
(WebCore):
(StyleRareInheritedData):
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
(StyleRareNonInheritedData):
2012-11-12 Tiancheng Jiang <tijiang@rim.com>
[BlackBerry] Update BB10 form theme.
https://bugs.webkit.org/show_bug.cgi?id=100760
Reviewed by Rob Buis.
RIM PR 236993
Internally Reviewed by Jeff Rogers.
Use slide and paint method on slider range and media controls.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore):
(WebCore::drawThreeSliceHorizontal):
(WebCore::drawThreeSliceVertical):
(WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
(WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
(WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
(WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
* platform/blackberry/RenderThemeBlackBerry.h:
(RenderThemeBlackBerry):
2012-11-12 Kent Tamura <tkent@chromium.org>
Refactoring: set read-only values on layout in DateTimeEditElement
https://bugs.webkit.org/show_bug.cgi?id=101916
Reviewed by Kentaro Hara.
We have always updated read-only values when we set an empty value or
DateTimeFieldsState. It has wasted CPU time because such read-only
values are never updated after layout() essentially. So, we set
read-only values in DateTimeEditBuilder used by layout(), and remove
dateForReadOnlyField arguments of setEmptyValue and
setValueAsDateTimeFieldsState.
No new tests. This should not make behavior changes.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
We removed dateForReadOnlyField argument because read-only values are
already set in DateTimeFieldElement::layout().
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitField):
Set a value to a read-only minute/second/millisecond field while
building UI elements.
Also, changed variable types for millisecond and second fields to
RefPtr<DateTimeNumericFieldElement> because we'd like to call
setValueAsDate, which is private in DateTimeMillisecondFieldElement and
DateTimeSecondFieldElement
(WebCore::DateTimeEditElement::setValueAsDateTimeFieldsState):
We removed dateForReadOnlyField argument because read-only values are
already set in DateTimeFieldElement::layout().
(WebCore::DateTimeEditElement::setEmptyValue): Ditto.
* html/shadow/DateTimeEditElement.h:
(DateTimeEditElement):
Removed dateForReadOnlyField argument for setValueAsDateTimeFieldsState.
* html/shadow/DateTimeFieldElement.cpp:
(WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
We removed dateForReadOnlyField argument because read-only values are
already set in DateTimeFieldElement::layout().
* html/shadow/DateTimeFieldElement.h:
(DateTimeFieldElement): Ditto.
* html/shadow/DateTimeFieldElements.cpp: Ditto.
* html/shadow/DateTimeFieldElements.h: Ditto.
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore::DateTimeNumericFieldElement::setEmptyValue):
It should do nothing if it is read-only because a read-only value was
already set just after construction.
* html/shadow/DateTimeNumericFieldElement.h:
(DateTimeNumericFieldElement):
Removed dateForReadOnlyField argument of setEmptyValue.
* html/shadow/DateTimeSymbolicFieldElement.cpp:
(WebCore::DateTimeSymbolicFieldElement::setEmptyValue): Ditto.
* html/shadow/DateTimeSymbolicFieldElement.h:
(DateTimeSymbolicFieldElement): Ditto.
2012-11-12 Tiancheng Jiang <tijiang@rim.com>
[BlackBerry] Update BB10 form theme.
https://bugs.webkit.org/show_bug.cgi?id=100760
Reviewed by Rob Buis.
RIM PR 236993
Internally Reviewed by Jeff Rogers.
Enable GL slider.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::drawThreeSlice):
(WebCore):
(WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
(WebCore::RenderThemeBlackBerry::paintSliderThumb):
2012-11-12 Kentaro Hara <haraken@chromium.org>
[V8][JSC] HTMLElement::itemValue() needs not to be custom
https://bugs.webkit.org/show_bug.cgi?id=101882
Reviewed by Adam Barth.
We can remove a [Custom] IDL attribute.
No tests. No change in behavior.
* bindings/js/JSHTMLElementCustom.cpp:
* bindings/v8/custom/V8HTMLElementCustom.cpp:
* html/HTMLElement.idl:
2012-11-12 Andreas Kling <kling@webkit.org>
RenderStyle: Pack Color members tighter in substructures.
<http://webkit.org/b/101860>
Reviewed by Antti Koivisto.
For RenderStyle substructures (StyleInheritedData, et al.), unfold all WebCore::Color
members into RGBA32/bool variables OR just an RGBA32 if the color can never be invalid.
Memory saved per instance:
- StyleMultiColData: 4 bytes
- StyleBackgroundData: 8 bytes
- StyleInheritedData: 8 bytes
- StyleRareInheritedData: 24 bytes
- StyleRareNonInheritedData: 24 bytes
323kB progression on Membuster3.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff):
(WebCore::RenderStyle::setColor):
(WebCore::RenderStyle::setVisitedLinkColor):
(WebCore::RenderStyle::setVisitedLinkColumnRuleColor):
(WebCore::RenderStyle::setBackgroundColor):
* rendering/style/RenderStyle.h:
* rendering/style/StyleBackgroundData.cpp:
(WebCore::StyleBackgroundData::StyleBackgroundData):
* rendering/style/StyleBackgroundData.h:
(WebCore::StyleBackgroundData::color):
(StyleBackgroundData):
* rendering/style/StyleInheritedData.cpp:
(WebCore::StyleInheritedData::StyleInheritedData):
* rendering/style/StyleInheritedData.h:
(StyleInheritedData):
* rendering/style/StyleMultiColData.cpp:
(WebCore::StyleMultiColData::StyleMultiColData):
(WebCore::StyleMultiColData::setVisitedLinkColumnRuleColor):
* rendering/style/StyleMultiColData.h:
(StyleMultiColData):
(WebCore::StyleMultiColData::visitedLinkColumnRuleColor):
* rendering/style/StyleRareInheritedData.cpp:
(SameSizeAsStyleRareInheritedData):
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
(WebCore::StyleRareInheritedData::setTextStrokeColor):
(WebCore::StyleRareInheritedData::setTextFillColor):
(WebCore::StyleRareInheritedData::setTextEmphasisColor):
(WebCore::StyleRareInheritedData::setVisitedLinkTextStrokeColor):
(WebCore::StyleRareInheritedData::setVisitedLinkTextFillColor):
(WebCore::StyleRareInheritedData::setVisitedLinkTextEmphasisColor):
* rendering/style/StyleRareInheritedData.h:
(StyleRareInheritedData):
(WebCore::StyleRareInheritedData::textStrokeColor):
(WebCore::StyleRareInheritedData::textFillColor):
(WebCore::StyleRareInheritedData::textEmphasisColor):
(WebCore::StyleRareInheritedData::visitedLinkTextStrokeColor):
(WebCore::StyleRareInheritedData::visitedLinkTextFillColor):
(WebCore::StyleRareInheritedData::visitedLinkTextEmphasisColor):
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
(WebCore::StyleRareNonInheritedData::setVisitedLinkBorderLeftColor):
(WebCore::StyleRareNonInheritedData::setVisitedLinkBorderRightColor):
(WebCore::StyleRareNonInheritedData::setVisitedLinkBorderTopColor):
(WebCore::StyleRareNonInheritedData::setVisitedLinkBorderBottomColor):
(WebCore::StyleRareNonInheritedData::setVisitedLinkOutlineColor):
(WebCore::StyleRareNonInheritedData::setVisitedLinkBackgroundColor):
* rendering/style/StyleRareNonInheritedData.h:
(WebCore::StyleRareNonInheritedData::visitedLinkBackgroundColor):
(WebCore::StyleRareNonInheritedData::visitedLinkOutlineColor):
(WebCore::StyleRareNonInheritedData::visitedLinkBorderLeftColor):
(WebCore::StyleRareNonInheritedData::visitedLinkBorderRightColor):
(WebCore::StyleRareNonInheritedData::visitedLinkBorderTopColor):
(WebCore::StyleRareNonInheritedData::visitedLinkBorderBottomColor):
(StyleRareNonInheritedData):
2012-11-12 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: migrate text editor to mutation observers
https://bugs.webkit.org/show_bug.cgi?id=101841
Reviewed by Vsevolod Vlasov.
Otherwise, we miss notifications on the removed lines.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel):
(WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
(WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
(WebInspector.TextEditorMainPanel.prototype._handleMutations):
(WebInspector.TextEditorMainPanel.prototype._handleMutation):
* inspector/front-end/externs.js:
(WebKitMutation):
(WebKitMutationObserver.prototype.observe):
(WebKitMutationObserver.prototype.disconnect):
2012-11-12 Allan Sandfeld Jensen <sandfeld@kde.org>
[Qt] Flash-plugin starts with wrong width
https://bugs.webkit.org/show_bug.cgi?id=101836
Reviewed by Simon Hausmann.
Defer the setWindow call, so that the one time it is called it will have its final size.
* plugins/PluginPackage.cpp:
(WebCore::PluginPackage::determineQuirks):
2012-11-12 Tommy Widenflycht <tommyw@google.com>
Remove the V8 custom code for WebSockets constructor
https://bugs.webkit.org/show_bug.cgi?id=100801
Reviewed by Kentaro Hara.
This patch does the following:
1) Modifies the V8 code generator to support overloaded constructors,
the JS generator is fixed to work as before. Proper support for JS will come later.
2) Modifies WebSocket.h/.cpp for the new constructors.
Tested by running WebSockets layout tests.
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::create):
(WebCore):
* Modules/websockets/WebSocket.h:
(WebSocket):
* Modules/websockets/WebSocket.idl:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorDefinition):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateOverloadedConstructorCallback):
(GenerateSingleConstructorCallback):
(GenerateConstructorCallback):
(GenerateImplementation):
* bindings/scripts/IDLParser.pm:
(copyAttributes):
(parseExtendedAttributeList):
(parseExtendedAttributes):
(applyExtendedAttributeList):
* bindings/scripts/IDLStructure.pm:
* bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.cpp: Added.
(WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate::WebDOMTestOverloadedConstructorsPrivate):
(WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate):
(WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructors):
(WebDOMTestOverloadedConstructors::operator=):
(WebDOMTestOverloadedConstructors::impl):
(WebDOMTestOverloadedConstructors::~WebDOMTestOverloadedConstructors):
(toWebCore):
(toWebKit):
* bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.h: Added.
(WebCore):
(WebDOMTestOverloadedConstructors):
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp: Added.
(WebKit):
(WebKit::kit):
(WebKit::core):
(WebKit::wrapTestOverloadedConstructors):
(webkit_dom_test_overloaded_constructors_finalize):
(webkit_dom_test_overloaded_constructors_set_property):
(webkit_dom_test_overloaded_constructors_get_property):
(webkit_dom_test_overloaded_constructors_constructed):
(webkit_dom_test_overloaded_constructors_class_init):
(webkit_dom_test_overloaded_constructors_init):
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h: Added.
(_WebKitDOMTestOverloadedConstructors):
(_WebKitDOMTestOverloadedConstructorsClass):
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h: Added.
(WebKit):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Added.
(WebCore):
(WebCore::JSTestOverloadedConstructorsConstructor::JSTestOverloadedConstructorsConstructor):
(WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
(WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertySlot):
(WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertyDescriptor):
(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):
(WebCore::JSTestOverloadedConstructorsConstructor::getConstructData):
(WebCore::JSTestOverloadedConstructorsPrototype::self):
(WebCore::JSTestOverloadedConstructors::JSTestOverloadedConstructors):
(WebCore::JSTestOverloadedConstructors::finishCreation):
(WebCore::JSTestOverloadedConstructors::createPrototype):
(WebCore::JSTestOverloadedConstructors::destroy):
(WebCore::JSTestOverloadedConstructors::~JSTestOverloadedConstructors):
(WebCore::JSTestOverloadedConstructors::getOwnPropertySlot):
(WebCore::JSTestOverloadedConstructors::getOwnPropertyDescriptor):
(WebCore::jsTestOverloadedConstructorsConstructor):
(WebCore::JSTestOverloadedConstructors::getConstructor):
(WebCore::isObservable):
(WebCore::JSTestOverloadedConstructorsOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestOverloadedConstructorsOwner::finalize):
(WebCore::toJS):
(WebCore::toTestOverloadedConstructors):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.h: Added.
(WebCore):
(JSTestOverloadedConstructors):
(WebCore::JSTestOverloadedConstructors::create):
(WebCore::JSTestOverloadedConstructors::createStructure):
(WebCore::JSTestOverloadedConstructors::impl):
(WebCore::JSTestOverloadedConstructors::releaseImpl):
(WebCore::JSTestOverloadedConstructors::releaseImplIfNotNull):
(JSTestOverloadedConstructorsOwner):
(WebCore::wrapperOwner):
(WebCore::wrapperContext):
(JSTestOverloadedConstructorsPrototype):
(WebCore::JSTestOverloadedConstructorsPrototype::create):
(WebCore::JSTestOverloadedConstructorsPrototype::createStructure):
(WebCore::JSTestOverloadedConstructorsPrototype::JSTestOverloadedConstructorsPrototype):
(JSTestOverloadedConstructorsConstructor):
(WebCore::JSTestOverloadedConstructorsConstructor::create):
(WebCore::JSTestOverloadedConstructorsConstructor::createStructure):
* bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.h: Added.
* bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm: Added.
(-[DOMTestOverloadedConstructors dealloc]):
(-[DOMTestOverloadedConstructors finalize]):
(core):
(kit):
* bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h: Added.
(WebCore):
* bindings/scripts/test/TestOverloadedConstructors.idl: Copied from Source/WebCore/bindings/scripts/test/TestSerializedScriptValueInterface.idl.
* bindings/scripts/test/TestSerializedScriptValueInterface.idl:
* bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp: Added.
(WebCore):
(TestOverloadedConstructorsV8Internal):
(WebCore::TestOverloadedConstructorsV8Internal::V8_USE):
(WebCore::V8TestOverloadedConstructors::constructor1Callback):
(WebCore::V8TestOverloadedConstructors::constructor2Callback):
(WebCore::V8TestOverloadedConstructors::constructor3Callback):
(WebCore::V8TestOverloadedConstructors::constructor4Callback):
(WebCore::V8TestOverloadedConstructors::constructorCallback):
(WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
(WebCore::V8TestOverloadedConstructors::GetRawTemplate):
(WebCore::V8TestOverloadedConstructors::GetTemplate):
(WebCore::V8TestOverloadedConstructors::HasInstance):
(WebCore::V8TestOverloadedConstructors::wrapSlow):
(WebCore::V8TestOverloadedConstructors::derefObject):
* bindings/scripts/test/V8/V8TestOverloadedConstructors.h: Added.
(WebCore):
(V8TestOverloadedConstructors):
(WebCore::V8TestOverloadedConstructors::toNative):
(WebCore::V8TestOverloadedConstructors::installPerContextProperties):
(WebCore::V8TestOverloadedConstructors::installPerContextPrototypeProperties):
(WebCore::V8TestOverloadedConstructors::wrap):
(WebCore::toV8):
* bindings/v8/custom/V8WebSocketCustom.cpp:
2012-11-12 Shinya Kawanaka <shinyak@chromium.org>
[Refactoring] Create SelectRuleFeatureSet for collecting RuleFeatureSet for select attribute
https://bugs.webkit.org/show_bug.cgi?id=101891
Reviewed by Hajime Morita.
We would like to have another class for RuleFeatureSet to collect 'select' attribute features,
since it will have more features than the original RuleFeatureSet has.
Also, some methods of ElementShadow are removed and we provide a method to get SelectRuleFeatureSet itself.
No new tests, no change in behavior.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/ElementShadow.h:
(ElementShadow):
(WebCore::ElementShadow::selectRuleFeatureSet):
(WebCore):
* html/shadow/SelectRuleFeatureSet.cpp: Added.
(WebCore):
(WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet):
(WebCore::SelectRuleFeatureSet::add):
(WebCore::SelectRuleFeatureSet::clear):
(WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
* html/shadow/SelectRuleFeatureSet.h: Added.
(WebCore):
(SelectRuleFeatureSet):
(WebCore::SelectRuleFeatureSet::hasSelectorForId):
(WebCore::SelectRuleFeatureSet::hasSelectorForClass):
(WebCore::SelectRuleFeatureSet::hasSelectorForAttribute):
* testing/Internals.cpp:
(WebCore::Internals::hasSelectorForIdInShadow):
(WebCore::Internals::hasSelectorForClassInShadow):
(WebCore::Internals::hasSelectorForAttributeInShadow):
2012-11-13 Keishi Hattori <keishi@webkit.org>
Build fix for Chromium Android (caused by r134216)
Unreviewed.
No new tests.
* platform/text/PlatformLocale.cpp:
(WebCore::Locale::formatDateTime):
2012-11-12 Keishi Hattori <keishi@webkit.org>
Add support for week/month to Locale::formatDateTime()
https://bugs.webkit.org/show_bug.cgi?id=101878
Reviewed by Kent Tamura.
Adding support for week/month to Locale::formatDateTime() in preparation for datalist support for <input type=week/month>.
Added Chromium tests LocaleMacTest.formatWeek and LocaleMacTest.formatMonth.
* platform/text/PlatformLocale.cpp:
(WebCore::DateTimeStringBuilder::visitField):
(WebCore::Locale::formatDateTime): Support week and month types.
2012-11-12 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Can not load MHTML documents
https://bugs.webkit.org/show_bug.cgi?id=101765
Reviewed by Simon Hausmann.
Recognize common MHTML extensions so that we can recognize MHTML tests on the file-system.
Tested by existing mhtml/ tests.
* platform/qt/MIMETypeRegistryQt.cpp:
(WebCore):
2012-11-12 Andreas Kling <akling@apple.com>
Tighten vector in ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray().
<http://webkit.org/b/101850>
Reviewed by Antti Koivisto.
Reserve the exact amount of space needed for m_responseContentDispositionEncodingFallbackArray.
222kB progression on Membuster3.
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray):
2012-11-12 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Schedule the RTCDataChannel events to be triggered at idle state
https://bugs.webkit.org/show_bug.cgi?id=101751
Reviewed by Adam Barth.
This patch queues the events until the JS interpreter is in an idle state.
Existing tests cover this patch.
* Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::RTCDataChannel):
(WebCore::RTCDataChannel::readyStateChanged):
(WebCore::RTCDataChannel::dataArrived):
(WebCore::RTCDataChannel::error):
(WebCore::RTCDataChannel::scheduleDispatchEvent):
(WebCore):
(WebCore::RTCDataChannel::scheduledEventTimerFired):
* Modules/mediastream/RTCDataChannel.h:
(RTCDataChannel):
* platform/chromium/support/WebRTCDataChannel.cpp:
(WebKit::WebRTCDataChannel::setBufferedAmount):
(WebKit::WebRTCDataChannel::readyStateChanged):
(WebKit::WebRTCDataChannel::dataArrived):
(WebKit::WebRTCDataChannel::error):
2012-11-12 Kunihiko Sakamoto <ksakamoto@chromium.org>
Remove HTMLInputElement dependency from PickerIndicatorElement
https://bugs.webkit.org/show_bug.cgi?id=101913
Reviewed by Kent Tamura.
Introduced PickerIndicatorOwner interface that replaces the role of hostInput() in
PickerIndicatorElement. It makes easier to add interactions between picker indicator
and its owner without having to add functions to HTMLInputElement.
No new tests. This is just a refactor.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::isPickerIndicatorOwnerDisabledOrReadOnly): Added.
(WebCore):
(WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue): Added.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::setupDateTimeChooserParameters): Added.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
(WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
(WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(WebCore):
(BaseMultipleFieldsDateAndTimeInputType): Implements PickerIndicatorOwner.
* html/shadow/PickerIndicatorElement.cpp: Replaced all the use of hostInput() by using PickerIndicatorOwner.
(WebCore::PickerIndicatorElement::PickerIndicatorElement):
(WebCore::PickerIndicatorElement::create):
(WebCore::PickerIndicatorElement::defaultEventHandler):
(WebCore::PickerIndicatorElement::willRespondToMouseClickEvents):
(WebCore::PickerIndicatorElement::didChooseValue):
(WebCore::PickerIndicatorElement::openPopup):
* html/shadow/PickerIndicatorElement.h:
(PickerIndicatorElement): Added a PickerIndicatorOwner member.
(PickerIndicatorOwner): An interface class for communicating picker indicator and its owner.
(WebCore::PickerIndicatorElement::PickerIndicatorOwner::~PickerIndicatorOwner):
(WebCore::PickerIndicatorElement::removePickerIndicatorOwner):
2012-11-12 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions]Add support for text-shadow in region styling
https://bugs.webkit.org/show_bug.cgi?id=94472
Reviewed by David Hyatt.
Original patch by Andrei Onea.
Add support for text-shadow in region styling (@-webkit-region rule).
In addition to the previously supported region styling properties (background-color and color),
text-shadow requires the computation of an element style in region at layout time.
This patch adds a new method on RenderRegion - ensureRegionStyleForObject - that
can be used to retrieve the object style in region (if already cached) or to compute it
on the spot. When computing the object style in region, we need to compute the style in region
also for the object ancestor, up to the content nodes.
This patch also refactors the way styles in region are computed and stored, because
we can compute the style in region not only at paint time, but also at layout time.
Test: fast/regions/region-style-text-shadow.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::isValidRegionStyleProperty):
Allow text-shadow to be used in region styling.
* rendering/InlineBox.cpp:
(WebCore::InlineBox::styleInRegion):
Retrieve the region style for an InlineBox's renderer, given its RenderRegion.
Compute the style in region if not computed yet.
(WebCore::InlineBox::regionDuringLayout):
Retrieve the region in which an InlineBox is being flowed.
* rendering/InlineBox.h:
* rendering/InlineFlowBox.cpp: Take region styling into account.
(WebCore::InlineFlowBox::addToLine):
(WebCore::InlineFlowBox::addTextBoxVisualOverflow):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::setRegionObjectsRegionStyle):
(WebCore::canCacheObjectStyleInRegion):
Test if we can cache the computed style in region.
(WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
(WebCore::RenderRegion::computeStyleInRegion):
(WebCore::RenderRegion::setChildrenStyleInRegion):
(WebCore::setObjectHasBoxDecorationsFlag):
(WebCore::RenderRegion::setObjectStyleInRegion):
(WebCore::RenderRegion::clearObjectStyleInRegion):
(WebCore::RenderRegion::ensureRegionStyleForObject):
* rendering/RenderRegion.h:
2012-11-12 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134154.
http://trac.webkit.org/changeset/134154
https://bugs.webkit.org/show_bug.cgi?id=101919
Causes plenty of crashes on GTK and Apple Win builders
(Requested by zdobersek on #webkit).
* css/mediaControls.css:
* css/mediaControlsQuickTime.css:
(audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
(audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
* html/shadow/MediaControlElements.h:
(MediaControlElement):
(MediaControlToggleClosedCaptionsButtonElement):
* html/shadow/MediaControlRootElement.cpp:
(WebCore::MediaControlRootElement::MediaControlRootElement):
(WebCore::MediaControlRootElement::create):
(WebCore::MediaControlRootElement::setMediaController):
(WebCore::MediaControlRootElement::hide):
(WebCore::MediaControlRootElement::makeTransparent):
(WebCore::MediaControlRootElement::reset):
(WebCore::MediaControlRootElement::reportedError):
* html/shadow/MediaControlRootElement.h:
(WebCore):
(MediaControlRootElement):
* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlRootElementChromium::initializeControls):
* html/shadow/MediaControls.h:
(MediaControls):
* platform/Language.cpp:
(WebCore):
* platform/Language.h:
(WebCore):
* rendering/RenderMediaControls.cpp:
(WebCore::RenderMediaControls::paintMediaControlsPart):
* rendering/RenderMediaControlsChromium.cpp:
(WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
2012-11-12 Mike West <mkwst@chromium.org>
'for (x in y)' requires 'var' declaration in ConsoleMessage.js
https://bugs.webkit.org/show_bug.cgi?id=101908
Reviewed by Pavel Feldman.
r134166 should have included a 'var' declaration in its 'for (x in y)'
loop. This patch adds the missing 'var' in order to prevent leakage into
the global context.
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype.append):
(WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
2012-11-12 Zeno Albisser <zeno@webkit.org>
[Qt] MiniBrowser should not strongly depend on QtTestSupport.
https://bugs.webkit.org/show_bug.cgi?id=101775
Introducing HAVE(QTTESTSUPPORT) to allow building
MiniBrowser without QtTestSupport.
This is necessary when using a production build.
Reviewed by Tor Arne Vestbø.
* Target.pri:
* platform/qt/QtTestSupport.h:
2012-11-12 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: wasShown is called twice when show() is called from within wasShown
https://bugs.webkit.org/show_bug.cgi?id=101858
Reviewed by Vsevolod Vlasov.
When we attach views lazily from within wasShown, the views were getting wasShown notification twice.
We now mute one of them.
* inspector/front-end/View.js:
(WebInspector.View):
(WebInspector.View.prototype._inNotification):
(WebInspector.View.prototype._parentIsShowing):
(WebInspector.View.prototype._callOnVisibleChildren):
(WebInspector.View.prototype._processWasShown):
(WebInspector.View.prototype._processWillHide):
(WebInspector.View.prototype._processOnResize):
(WebInspector.View.prototype._notify):
(WebInspector.View.prototype.show):
2012-11-12 Ryosuke Niwa <rniwa@webkit.org>
Build fix after r134191. Turns out that FrameView::performPostLayoutTasks calls FrameSelection::updateAppearance
in the middle of a layout. So we can't have assertions in recomputeCaretRect and updateAppearance.
Furthermore, we can't update layout in updateAppearance. So do that in its call sites.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::recomputeCaretRect):
(WebCore::FrameSelection::updateAppearance):
(WebCore::FrameSelection::setCaretVisibility):
2012-11-12 Shinya Kawanaka <shinyak@chromium.org>
Don't update style when attaching in HTMLMeterElement
https://bugs.webkit.org/show_bug.cgi?id=101714
Reviewed by Hajime Morita.
HTMLMeterElement was updating style when it's being attached. However, updating style when attaching
can cause style-update prevention. The similar thing has already happened in Bug 100507.
Since we have already set the default value in creating ShadowDOM subtree, we don't need to update style actually.
Test: fast/dom/HTMLMeterElement/meter-bar-set-value.html
* html/HTMLMeterElement.cpp:
* html/HTMLMeterElement.h:
(HTMLMeterElement): Removed attach(). We don't need it.
2012-11-09 Ryosuke Niwa <rniwa@webkit.org>
Multiple Layout Tests (e.g. fast/repaint/japanese-rl-selection-clear.html) is failing after r133840.
https://bugs.webkit.org/show_bug.cgi?id=101547
Reviewed by Simon Fraser.
I overlooked the fact when the selection is null, we still have to invalidate the caret rect that
previously existed. Revert the optimization added in r133840 to skip caret invalidation when new
selection is null, and add a special method to be called by FrameLoader prior to destruction instead.
This will let us avoid doing an extra layout upon destruction and not regress repaint tests.
Covered by existing tests.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelection): Added DoNotUpdateAppearance option.
(WebCore::FrameSelection::prepareForDestruction): Added.
(WebCore::FrameSelection::updateAppearance): Reverted the flawed optimization added in r133840.
Also, don't update style before updating selection unless text caret is disabled since we always
update the layout (including style) when text caret is enabled.
* editing/FrameSelection.h:
(FrameSelection):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::clear): Call prepareForDestruction instead of clear to avoid a layout.
2012-11-11 Dongwoo Joshua Im <dw.im@samsung.com>
[CSS3] Parsing the property, text-align-last.
https://bugs.webkit.org/show_bug.cgi?id=99439
Reviewed by Julien Chaffraix.
This patch implements the parsing side of the "text-align-last" property specified
in CSS3 working draft, with "-webkit-" prefix, under ENABLE_CSS3_TEXT flag.
Specification link : http://www.w3.org/TR/css3-text/#text-align-last
Tests: fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited.html
fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Get the value of the text-align-last property.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Parse the value, and check whether it is a proper value which text-align-last can have.
* css/CSSPrimitiveValueMappings.h:
(WebCore):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ETextAlignLast):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in: Add '-webkit-text-align-last' property.
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
* css/StylePropertySet.cpp:
(WebCore):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h:
(StyleRareInheritedData): Add m_textAlignLast.
2012-11-11 Shinya Kawanaka <shinyak@chromium.org>
[Refactoring] Remove shadowPseudoId() and use setPseudo() in HTMLKeygenElement
https://bugs.webkit.org/show_bug.cgi?id=101881
Reviewed by Kent Tamura.
We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
setPseudo()/pseudo() instead.
No new tests, simple refacotring.
* html/HTMLKeygenElement.cpp:
(WebCore::KeygenSelectElement::KeygenSelectElement):
(KeygenSelectElement):
2012-11-11 Adam Barth <abarth@webkit.org>
Many DOMWindowProperties would benefit from being ScriptWrappable
https://bugs.webkit.org/show_bug.cgi?id=101887
Reviewed by Kentaro Hara.
These object are only ever created at the behest of script, which means
making them ScriptWrappable is a win.
* page/BarInfo.h:
* page/Console.h:
* page/Crypto.h:
* page/History.h:
* page/Location.h:
* page/Navigator.h:
* page/Performance.h:
2012-11-11 Kentaro Hara <haraken@chromium.org>
[V8] HTMLDocument::all() needs not to be custom
https://bugs.webkit.org/show_bug.cgi?id=101875
Reviewed by Adam Barth.
We can easily remove the custom getter from V8 because the
custom setter sets .all by ForceSet(). On the other hand,
it is non-trivial to remove the custom getter from JSC
because the custom setter sets .all by putDirect()
and the custom getter wants to get it by getDirect().
No tests. No change in behavior.
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
* html/HTMLDocument.idl:
2012-11-11 Kentaro Hara <haraken@chromium.org>
[V8] V8Console::memoryAttrGetter() needs not to be custom
https://bugs.webkit.org/show_bug.cgi?id=101873
Reviewed by Adam Barth.
No tests. No change in behavior.
* bindings/v8/custom/V8ConsoleCustom.cpp:
(WebCore):
* page/Console.idl:
2012-11-11 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] ElementShadow should have RuleFeatureSet for select attribute selectors.
https://bugs.webkit.org/show_bug.cgi?id=101180
Reviewed by Dimitri Glazkov.
This is a preparation patch for Bug 100451.
We preserve RuleFeatureSet collected from select attributes in ShadowDOM.
When an element attribute is changed, we might have to invalidate content distribution,
however it's high cost operation. So we would like to check RuleFeatureSet used in
select attributes to determine we really need to invalidate distribution.
Like StyleResolver, ElementShadow has several rule features. When nested ShadowDOM is used,
first we collect features in nested ShadowDOM, and merge it to the parent ShadowDOM.
For the performance reason, we have a flag to check whether we need to collect features again.
Test: fast/dom/shadow/shadow-select-attribute-featureset.html
* WebCore.exp.in:
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::ElementShadow):
(WebCore::ElementShadow::setShouldCollectSelectFeatureSet): Enable a flag to collect feature set of descendant
nodes (and their ShadowDOM).
(WebCore):
(WebCore::ElementShadow::ensureSelectFeatureSetCollected):
(WebCore::ElementShadow::collectSelectFeatureSetFrom): Collect RuleFeatureSet from all descendant Nodes and their
ShadowDOM. We need to collect id, class, and attribute names.
* dom/ElementShadow.h:
(WebCore::ElementShadow::shouldCollectSelectFeatureSet):
(ElementShadow):
(WebCore::ElementShadow::hasSelectorForId):
(WebCore):
(WebCore::ElementShadow::hasSelectorForClass):
(WebCore::ElementShadow::hasSelectorForAttribute):
* html/shadow/HTMLContentElement.cpp:
(WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, enable a flag to recollect features.
(WebCore::HTMLContentElement::insertedInto): We have to recollect features when HTMLContentElement is moved.
(WebCore::HTMLContentElement::removedFrom): ditto.
* html/shadow/HTMLContentElement.h:
(WebCore::toHTMLContentElement):
(WebCore):
* testing/Internals.cpp:
(WebCore::Internals::hasSelectorForIdInShadow):
(WebCore):
(WebCore::Internals::hasSelectorForClassInShadow):
(WebCore::Internals::hasSelectorForAttributeInShadow):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2012-11-11 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134144.
http://trac.webkit.org/changeset/134144
https://bugs.webkit.org/show_bug.cgi?id=101876
seems to break win 7 chromium browser test (Requested by
hayato on #webkit).
* WebCore.exp.in:
* page/EventHandler.cpp:
(WebCore):
(WebCore::EventHandler::handleMouseMoveEvent):
* page/EventHandler.h:
(EventHandler):
* testing/Internals.cpp:
* testing/Internals.h:
* testing/Internals.idl:
2012-11-11 Kent Tamura <tkent@chromium.org>
Internals: MockPagePopup should not update DOM structure during detach()
https://bugs.webkit.org/show_bug.cgi?id=101710
Reviewed by Hajime Morita.
PickerIndicatorElement::detach calls
MockPagePopupDriver::closePagePopup, MockPagePopup::~MockPagePopup,
which remove the mock iframe from the tree. But updating the tree during
detach() is dangerous.
MockPagePopupDriver::closePagePopup calls MockpagePopup::closeLater, it
requests to call 'close' asynchronously, and 'close' removes the mock
iframe. We need to change MockPagePopup so that it is ref-couted and has
a timer.
No new tests. This is a change for the test harness.
* testing/MockPagePopupDriver.cpp:
(MockPagePopup): Make this ref-counted, add closeLater, add close, and
add m_closeTimer.
(WebCore::MockPagePopup::MockPagePopup): Initialize the timer.
(WebCore::MockPagePopup::create): PassOwnPtr -> PassRefPtr
(WebCore::MockPagePopup::closeLater):
- Add one reference to avoid destruction by m_mockPagePopup.clear() in
closePagePopup.
- Notify didClosePopup here because the client expects didClosePopup is
called synchronously.
- Invoke the timer to call 'close'
(WebCore::MockPagePopup::close):
Just remove one reference. This means calling the desructor.
(WebCore::MockPagePopup::~MockPagePopup):
Move didClosePopup call to caloseLater.
(WebCore::MockPagePopupDriver::closePagePopup):
Request to close PagePopup.
Clear PagePopupClient in m_pagePopupController because this object is
necessary until MockPagePopup is closed, but it should not have a
reference to the PagePopupClient.
* testing/MockPagePopupDriver.h:
(MockPagePopupDriver): Make MockPagePopup ref-counted.
2012-11-11 Adam Barth <abarth@webkit.org>
axObjectCache code is more complicated than necessary
https://bugs.webkit.org/show_bug.cgi?id=101820
Reviewed by Darin Adler.
This code should use OwnPtr rather than manually calling new/delete.
Also, instead of using a "double check" pattern, we can just access the
private fields on the top document directly.
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::clearAXObjectCache):
(WebCore::Document::axObjectCacheExists):
(WebCore):
(WebCore::Document::axObjectCache):
* dom/Document.h:
(Document):
2012-11-10 Simon Fraser <simon.fraser@apple.com>
Save one call to containerForRepaint() when updating layer positions
https://bugs.webkit.org/show_bug.cgi?id=101856
Reviewed by Dan Bernstein.
RenderLayer::updateLayerPositions() has already computed the repaint container,
but calls computeRepaintRects() which computes it again. Computing the repaint
container involves a walk back up the layer tree, so calling it during a tree
traversal is costly.
Fix by passing the repaint container down into computeRepaintRects().
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::computeRepaintRects):
(WebCore::RenderLayer::computeRepaintRectsIncludingDescendants):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
(WebCore::RenderLayer::setHasVisibleContent):
* rendering/RenderLayer.h:
(RenderLayer):
2012-11-11 Kenichi Ishibashi <bashi@chromium.org>
WTFString::utf8() should have a mode of conversion to use replacement character
https://bugs.webkit.org/show_bug.cgi?id=101678
Reviewed by Alexey Proskuryakov.
Follow the change on String::utf8()
No new tests. No changes in behavior.
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::close): Pass String::StrictConversion instead of true to String::utf8().
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::send): Ditto.
* html/MediaFragmentURIParser.cpp:
(WebCore::MediaFragmentURIParser::parseFragments): Ditto.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::notifyChallengeResult): Ditto.
* platform/network/blackberry/rss/RSSFilterStream.cpp:
(WebCore::RSSFilterStream::convertContentToHtml): Ditto.
* platform/network/blackberry/rss/RSSGenerator.cpp:
(WebCore::RSSGenerator::generateHtml): Ditto.
2012-11-10 Simon Fraser <simon.fraser@apple.com>
Coalesce main thread scroll position updates
https://bugs.webkit.org/show_bug.cgi?id=101855
Reviewed by Anders Carlsson.
When using threaded scrolling, the dispatched updateMainFrameScrollPosition() calls
from ScrollingTree would pile up on the main thread, and we'd handle several per
runloop cycle when scrolling fast. This causes extra work especially on pages
with position:fixed elements which must update RenderLayers on scrolling.
Fix by using a zero-delay timer in ScrollingCoordinator to coalesce these
scrolling updates to one per runloop.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::ScrollingCoordinator): Initialized data members
for the scheduled scroll position update.
(WebCore::ScrollingCoordinator::scheduleUpdateMainFrameScrollPosition): If
the timer is active and the parameters match, just update the target scroll
position and return. If the params don't match, dispatch the scheduled update,
and then the new one. Otherwise, prime the timer.
(WebCore::ScrollingCoordinator::updateMainFrameScrollPositionTimerFired): Call
the existing updateMainFrameScrollPosition() with the saved values.
* page/scrolling/ScrollingCoordinator.h:
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::updateMainFrameScrollPosition): Call scheduleUpdateMainFrameScrollPosition()
rather than updateMainFrameScrollPosition().
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::syncChildPositions): Fixed a bug that caused fixed
position elements to jiggle with the patch; we should be calling syncPosition() (which just
sets the position data, without touching CA layers).
2012-11-10 Simon Fraser <simon.fraser@apple.com>
Remove ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition()
https://bugs.webkit.org/show_bug.cgi?id=101514
Reviewed by Tim Horton.
ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition() is very similar to
ScrollingCoordinator::updateMainFrameScrollPosition(). In order to eliminate updateMainFrameScrollPositionAndScrollLayerPosition(),
we just need to plumb through a flag that says that updateMainFrameScrollPosition() should
set the layer position (rather than just doing a 'sync').
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
* page/scrolling/ScrollingCoordinator.h:
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::updateMainFrameScrollPosition):
* page/scrolling/ScrollingTree.h:
* page/scrolling/mac/ScrollingCoordinatorMac.h:
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
2012-11-10 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134069.
http://trac.webkit.org/changeset/134069
https://bugs.webkit.org/show_bug.cgi?id=101852
"It is a wrong way to fix the problem. See discussions in bug
96614" (Requested by 1JTAAPQFJ on #webkit).
* bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::getWithUndefinedOrNullCheck):
2012-11-10 Mike West <mkwst@chromium.org>
Web Inspector: Multiple '%c' formatting options should all have effect.
https://bugs.webkit.org/show_bug.cgi?id=101495
Reviewed by Pavel Feldman.
This patch supports multiple '%c' formatting blocks in console messages.
'console.log("%cblue! %cgreen!", "color: blue;", "color: green;")' will
do exactly what you expect: "blue!" will be blue, and "green!" will be
green.
The implementation moves the styles off the message's parent 'span', and
onto new 'span' elements that wrap the various textual bits of the
message.
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype.):
(WebInspector.ConsoleMessageImpl.prototype.append):
(WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
2012-11-10 Mike West <mkwst@chromium.org>
Including <CoreText/CoreText.h> breaks the chromium/mac build.
https://bugs.webkit.org/show_bug.cgi?id=101851
Reviewed by Dan Bernstein.
r134146 introduced inclusion of 'CoreText/CoreText.h' in
SimpleFontDataCoreText.cpp, which broke the chromium/mac build. Grepping
around, it looks like this needs to be modified to include
'ApplicationServices/ApplicationServices.h'.
* platform/graphics/mac/SimpleFontDataCoreText.cpp:
Drop 'CoreText.h' in favor of 'ApplicationServices.h'.
* platform/graphics/mac/ComplexTextControllerCoreText.mm:
Drop the platform-specific '#if' logic; just include 'ApplicationServices.h'.
2012-11-10 Andreas Kling <kling@webkit.org>
Don't detach from shared ElementAttributeData when overwriting attribute with identical value.
<http://webkit.org/b/101849>
Reviewed by Anders Carlsson.
Defer the mutableAttributeData() call in Element::setAttributeInternal() until the last
possible moment, to avoid unnecessarily detaching and cloning from attribute data.
120 kB progression on Membuster3.
* dom/Element.cpp:
(WebCore::Element::setAttributeInternal):
(WebCore::Element::addAttributeInternal):
2012-11-10 Simon Fraser <simon.fraser@apple.com>
Some minor optimizations in RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=101847
Reviewed by Anders Carlsson.
Some minor performance improvements in RenderLayer code.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPosition): isRenderInline() is a virtual call,
so prefix it with an isInline() check which tests a bit on RenderObject.
(WebCore::RenderLayer::localBoundingBox): Ditto.
(WebCore::RenderLayer::calculateLayerBounds): Pull layer->renderer()
into a local variable.
2012-11-10 Anders Carlsson <andersca@apple.com>
Document::m_fullScreenElementStack should be a Vector
https://bugs.webkit.org/show_bug.cgi?id=101844
Reviewed by Andreas Kling.
m_fullScreenElementStack is currently a Deque where elements are being prepended
and removed from the beginning in LIFO order, so it can be replaced with a Vector.
* dom/Document.cpp:
(WebCore::Document::requestFullScreenForElement):
(WebCore::Document::webkitCancelFullScreen):
(WebCore::Document::popFullscreenElementStack):
(WebCore::Document::pushFullscreenElementStack):
* dom/Document.h:
(WebCore::Document::webkitFullscreenElement):
(Document):
2012-11-10 Adam Barth <abarth@webkit.org>
[V8] Clean up header includes and ifdefs in V8GCController
https://bugs.webkit.org/show_bug.cgi?id=101691
Reviewed by Kentaro Hara.
This file doesn't need to include all these headers anymore.
* bindings/v8/V8GCController.cpp:
(WebCore::workingSetEstimateMBMutex):
(WebCore::V8GCController::majorGCEpilogue):
(WebCore::V8GCController::checkMemoryUsage):
2012-11-10 Joseph Pecoraro <pecoraro@apple.com>
[Mac] Guard WebCore PageVisibility Symbol Export
https://bugs.webkit.org/show_bug.cgi?id=101817
Reviewed by Andreas Kling.
Guard the export with the same ENABLE guards around its definition
and implementation.
* WebCore.exp.in:
2012-11-10 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
[css] text-decoration:none no longer valid
https://bugs.webkit.org/show_bug.cgi?id=101529
Reviewed by Ojan Vafai.
This patch fixes an issue where the 'none' value was parsed as explicitly
'initial' value. However true in a sense that the initial value for the
'text-decoration' property is 'none', the value itself could not be parsed as
'initial'.
The getComputedStyle layout tests for 'text-decoration' and
'-webkit-text-decoration-line' CSS properties are updated with the correct
results.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseTextDecoration): When parsed, 'none' value
gets its own identifier value instead of explicit initial.
2012-11-09 Dean Jackson <dino@apple.com>
Support list of tracks in caption media controls
https://bugs.webkit.org/show_bug.cgi?id=101669
Reviewed by Eric Carlson.
Attempt three of commit. The first two times caused build failures on Chromium.
Add some new elements to the media control shadow DOM that display the list of available
tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
where it is given a very basic design. At the moment only the list of available tracks
are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
No new tests - this doesn't expose any testable surface.
* css/mediaControls.css: Added default rules that hide the new elements.
* css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
(WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
(WebCore::MediaControlClosedCaptionsContainerElement::create):
(WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
(WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
(WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
* html/shadow/MediaControlElements.h:
(MediaControlElement):
(MediaControlToggleClosedCaptionsButtonElement):
(MediaControlClosedCaptionsContainerElement):
(MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
* html/shadow/MediaControlRootElement.cpp:
(WebCore::MediaControlRootElement::MediaControlRootElement):
(WebCore::MediaControlRootElement::create): New track container and list elements created.
(WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
(WebCore::MediaControlRootElement::hide):
(WebCore::MediaControlRootElement::makeTransparent):
(WebCore::MediaControlRootElement::reset):
(WebCore::MediaControlRootElement::reportedError):
(WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
(WebCore):
* html/shadow/MediaControlRootElement.h:
(WebCore):
(MediaControlRootElement):
* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
* html/shadow/MediaControls.h:
(MediaControls):
* platform/Language.cpp:
(WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
* platform/Language.h:
(WebCore):
* rendering/RenderMediaControls.cpp:
(WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
* rendering/RenderMediaControlsChromium.cpp:
(WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
2012-11-09 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134152.
http://trac.webkit.org/changeset/134152
https://bugs.webkit.org/show_bug.cgi?id=101831
broke chromium again (Requested by dino_ on #webkit).
* css/mediaControls.css:
* css/mediaControlsQuickTime.css:
(audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
(audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
* html/shadow/MediaControlElements.h:
(MediaControlElement):
(MediaControlToggleClosedCaptionsButtonElement):
* html/shadow/MediaControlRootElement.cpp:
(WebCore::MediaControlRootElement::MediaControlRootElement):
(WebCore::MediaControlRootElement::create):
(WebCore::MediaControlRootElement::setMediaController):
(WebCore::MediaControlRootElement::hide):
(WebCore::MediaControlRootElement::makeTransparent):
(WebCore::MediaControlRootElement::reset):
(WebCore::MediaControlRootElement::reportedError):
* html/shadow/MediaControlRootElement.h:
(WebCore):
(MediaControlRootElement):
* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlRootElementChromium::initializeControls):
* html/shadow/MediaControls.h:
(MediaControls):
* platform/Language.cpp:
(WebCore):
* platform/Language.h:
(WebCore):
* rendering/RenderMediaControls.cpp:
(WebCore::RenderMediaControls::paintMediaControlsPart):
* rendering/RenderMediaControlsChromium.cpp:
(WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
2012-11-09 Dean Jackson <dino@apple.com>
Support list of tracks in caption media controls
https://bugs.webkit.org/show_bug.cgi?id=101669
Reviewed by Eric Carlson.
Attempt two of commit. The first time caused a build failure on Chromium.
Add some new elements to the media control shadow DOM that display the list of available
tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
where it is given a very basic design. At the moment only the list of available tracks
are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
No new tests - this doesn't expose any testable surface.
* css/mediaControls.css: Added default rules that hide the new elements.
* css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
(WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
(WebCore::MediaControlClosedCaptionsContainerElement::create):
(WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
(WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
(WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
* html/shadow/MediaControlElements.h:
(MediaControlElement):
(MediaControlToggleClosedCaptionsButtonElement):
(MediaControlClosedCaptionsContainerElement):
(MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
* html/shadow/MediaControlRootElement.cpp:
(WebCore::MediaControlRootElement::MediaControlRootElement):
(WebCore::MediaControlRootElement::create): New track container and list elements created.
(WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
(WebCore::MediaControlRootElement::hide):
(WebCore::MediaControlRootElement::makeTransparent):
(WebCore::MediaControlRootElement::reset):
(WebCore::MediaControlRootElement::reportedError):
(WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
(WebCore):
* html/shadow/MediaControlRootElement.h:
(WebCore):
(MediaControlRootElement):
* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
* html/shadow/MediaControls.h:
(MediaControls):
* platform/Language.cpp:
(WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
* platform/Language.h:
(WebCore):
* rendering/RenderMediaControls.cpp:
(WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
* rendering/RenderMediaControlsChromium.cpp:
(WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
2012-11-09 Ojan Vafai <ojan@chromium.org>
Should only fire a single set of mouse events and update hover state once when scrolling is done
https://bugs.webkit.org/show_bug.cgi?id=99940
Reviewed by Levi Weintraub.
-Use a DeferrableOneShotTimer instead of a Timer. By resetting when the
timer is fired, we ensure the actual goal of not firing fake mouse events
until the scroll is completed. This is the core part of this change.
-Change our mouse event throttling to keep a running average of how long
mouse events take and adjust throttling appropriately.
Test: fast/scrolling/fake-mouse-event-throttling.html
-Maintain a minimum throttle of 100ms.
* page/EventHandler.cpp:
(WebCore):
(WebCore::RunningAverageDurationTracker::RunningAverageDurationTracker):
(WebCore::RunningAverageDurationTracker::~RunningAverageDurationTracker):
Keep track of a running average instead of max. This lets us adjust throttling
dynamically without punishing a page for having a single mouse event handler
that takes disproportionately long.
(RunningAverageDurationTracker):
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::clear):
(WebCore::EventHandler::mouseMoved):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
(WebCore::EventHandler::fakeMouseMoveEventTimerFired):
* page/EventHandler.h:
(EventHandler):
* platform/Timer.h:
(WebCore::DeferrableOneShotTimer::setDelay):
(WebCore::DeferrableOneShotTimer::delay):
Add a way of adjusting the timer delay.
2012-11-09 Rick Byers <rbyers@chromium.org>
Move chromium to USE(LAZY_NATIVE_CURSOR)
https://bugs.webkit.org/show_bug.cgi?id=101501
Reviewed by Adam Barth.
This simplifies cursor handling in chromium and unifies it with other
ports for easier code sharing and testing by moving to the
USE_LAZY_CURSOR model and eliminating PlatformCursor entirely.
PlatformCursor adds no value in chromium since the sandboxing model
requires the cursor information be marshalled to the browser process
before being turned into a real OS cursor.
Test: fast/events/mouse-cursor.html
* WebCore.gypi:
* platform/Cursor.h:
(WebCore):
* platform/chromium/CursorChromium.cpp:
(WebCore::Cursor::Cursor):
(WebCore::Cursor::operator=):
(WebCore::Cursor::~Cursor):
(WebCore::Cursor::ensurePlatformCursor):
* platform/chromium/PlatformCursor.h: Removed.
2012-11-09 Noam Rosenthal <noam.rosenthal@nokia.com>
Allow ports to decide whether an image should be directly composited
https://bugs.webkit.org/show_bug.cgi?id=101827
Reviewed by Simon Fraser.
Tested by compositing/tiling/huge-layer-img.html.
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::shouldDirectlyCompositeImage):
Allow the GraphicsLayer implementation to decide if the image can be composited.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::isDirectlyCompositedImage):
Take onto account the new shouldDirectlyCompositeImage check.
2012-11-09 Dan Bernstein <mitz@apple.com>
SimpleFontData::getCFStringAttributes sets some attributes to their default values, but shouldn’t
https://bugs.webkit.org/show_bug.cgi?id=101799
Reviewed by Alexey Proskuryakov.
In some configurations, setting kCTLigatureAttributeName to its default value of 1 yields
different behavior from not setting it at all. We can get the correct behavior and greatly
simplify the code by not setting attributes to their default values.
* platform/graphics/mac/SimpleFontDataCoreText.cpp:
Removed redundant #import directives and changed the remaining ones to #include.
(WebCore::SimpleFontData::getCFStringAttributes): Changed to use a mutable dictionary and
only add attributes that have non-default values.
2012-11-09 Rick Byers <rbyers@chromium.org>
No tests for changing mouse cursors
https://bugs.webkit.org/show_bug.cgi?id=100550
Reviewed by Adam Barth.
Add infrastructure to keep track of the last set mouse cursor,
and then to query it from DumpRenderTree.
Test: fast/events/mouse-cursor.html
* WebCore.exp.in: Add Cursor copy ctor export
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
* page/EventHandler.h:
(WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
* testing/Internals.cpp:
(WebCore::cursorTypeToString): Helper to convert cursor type to enum
(WebCore):
(WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
* testing/Internals.h: Declare getCurrentCursorInfo
* testing/Internals.idl: Declare getCurrentCursorInfo
2012-11-09 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: Amend CoordinatedBackingStore::paintToTextureMapper to fit its own semantic.
https://bugs.webkit.org/show_bug.cgi?id=101701
Reviewed by Noam Rosenthal.
Add TiledBackingStore::rect() because CoordinatedTile needs to know
m_rect of TiledBackingStore.
* platform/graphics/TiledBackingStore.h:
(WebCore::TiledBackingStore::rect):
2012-11-09 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134139.
http://trac.webkit.org/changeset/134139
https://bugs.webkit.org/show_bug.cgi?id=101823
breaks chromium (android) build (Requested by thorton on
#webkit).
* css/mediaControls.css:
* css/mediaControlsQuickTime.css:
(audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
(audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
* html/shadow/MediaControlElements.h:
(MediaControlElement):
(MediaControlToggleClosedCaptionsButtonElement):
* html/shadow/MediaControlRootElement.cpp:
(WebCore::MediaControlRootElement::MediaControlRootElement):
(WebCore::MediaControlRootElement::create):
(WebCore::MediaControlRootElement::setMediaController):
(WebCore::MediaControlRootElement::hide):
(WebCore::MediaControlRootElement::makeTransparent):
(WebCore::MediaControlRootElement::reset):
(WebCore::MediaControlRootElement::reportedError):
* html/shadow/MediaControlRootElement.h:
(WebCore):
(MediaControlRootElement):
* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlRootElementChromium::initializeControls):
* html/shadow/MediaControls.h:
(MediaControls):
* platform/Language.cpp:
(WebCore):
* platform/Language.h:
(WebCore):
2012-11-09 Huang Dongsung <luxtella@company100.net>
[TexMap] Initialize m_compositedNativeImagePtr in GraphicsLayerTextureMapper.
https://bugs.webkit.org/show_bug.cgi?id=101675
Reviewed by Noam Rosenthal.
Fix a potential bug in GraphicsLayerTextureMapper. If the member's uninitialized
value equals image->nativeImageForCurrentFrame() by change, we can encounter
undefined behavior.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::setContentsToImage):
2012-11-09 Dean Jackson <dino@apple.com>
Support list of tracks in caption media controls
https://bugs.webkit.org/show_bug.cgi?id=101669
Reviewed by Eric Carlson.
Add some new elements to the media control shadow DOM that display the list of available
tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
where it is given a very basic design. At the moment only the list of available tracks
are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
No new tests - this doesn't expose any testable surface.
* css/mediaControls.css: Added default rules that hide the new elements.
* css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
(WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
(WebCore::MediaControlClosedCaptionsContainerElement::create):
(WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
(WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
(WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
* html/shadow/MediaControlElements.h:
(MediaControlElement):
(MediaControlToggleClosedCaptionsButtonElement):
(MediaControlClosedCaptionsContainerElement):
(MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
* html/shadow/MediaControlRootElement.cpp:
(WebCore::MediaControlRootElement::MediaControlRootElement):
(WebCore::MediaControlRootElement::create): New track container and list elements created.
(WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
(WebCore::MediaControlRootElement::hide):
(WebCore::MediaControlRootElement::makeTransparent):
(WebCore::MediaControlRootElement::reset):
(WebCore::MediaControlRootElement::reportedError):
(WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
(WebCore):
* html/shadow/MediaControlRootElement.h:
(WebCore):
(MediaControlRootElement):
* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
* html/shadow/MediaControls.h:
(MediaControls):
* platform/Language.cpp:
(WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
* platform/Language.h:
(WebCore):
2012-11-09 Noel Gordon <noel.gordon@gmail.com>
[chromium] Should pass fast/images/paletted-png-with-color-profile.html
https://bugs.webkit.org/show_bug.cgi?id=101551
Reviewed by Adam Barth.
Support decoding color PALETTE images that have an ICC color profile.
Covered by fast/images/png-suite/test.html and many other fast/image tests.
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::headerAvailable): Move the color profile code after the
transparency (tRNS) reader. Allow color PNG images: RGB, RGBA, PALLETE to be color
corrected. Use the transparency count from the tRNS reader to detect the expansion
of RGB and PALLETE image pixels to RGBA.
2012-11-09 Tien-Ren Chen <trchen@chromium.org>
Correct hit-test point scaling for document.elementFromPoint
https://bugs.webkit.org/show_bug.cgi?id=101798
Reviewed by Adam Barth.
The hit-test point come from user JavaScript is in the document coordinate.
Convert to the frame coordinate with correct scale factor for hit test.
Test: fast/dom/elementFromPoint-scaled-scrolled.html
* dom/Document.cpp:
(WebCore::nodeFromPoint):
2012-11-09 Alec Flett <alecflett@chromium.org>
IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
https://bugs.webkit.org/show_bug.cgi?id=101415
Reviewed by Tony Chang.
Combine abstract interface IDBBackingStore with its only
implementation, IDBLevelDBBackingStore, to reduce code
complexity. The legacy structure existed to support a SQLLite
IDBBackingStore, but it is no longer worth the complexity to
support this abstraction.
Changes include:
1) Merging IDBLevelDBBackingStore into IDBBackingStore.
2) Merge together IDBBackingStore's inner classes: Cursor,
Transaction, and ObjectStoreRecordIdentfier with their respective
subclasses in IDBLevelDBBackingStore.
3) Simplifying the inner Transaction class to not be refcounted or
virtualized, to allow it to be a simple concrete member of its
owner, IDBTransactionBackendImpl.
No new tests as this is purely a refactor.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::recordInternalError):
(WebCore::setUpMetadata):
(WebCore::IDBBackingStore::IDBBackingStore):
(WebCore):
(WebCore::IDBBackingStore::~IDBBackingStore):
(WebCore::IDBBackingStore::open):
(WebCore::IDBBackingStore::getDatabaseNames):
(WebCore::IDBBackingStore::getIDBDatabaseMetaData):
(WebCore::IDBBackingStore::createIDBDatabaseMetaData):
(WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
(WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
(WebCore::deleteRange):
(WebCore::IDBBackingStore::deleteDatabase):
(WebCore::IDBBackingStore::getObjectStores):
(WebCore::setMaxObjectStoreId):
(WebCore::IDBBackingStore::createObjectStore):
(WebCore::IDBBackingStore::deleteObjectStore):
(WebCore::IDBBackingStore::getRecord):
(WebCore::IDBBackingStore::putRecord):
(WebCore::IDBBackingStore::clearObjectStore):
(WebCore::IDBBackingStore::deleteRecord):
(WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBBackingStore::getIndexes):
(WebCore::setMaxIndexId):
(WebCore::IDBBackingStore::createIndex):
(WebCore::IDBBackingStore::deleteIndex):
(WebCore::IDBBackingStore::putIndexDataForRecord):
(WebCore::IDBBackingStore::deleteIndexDataForRecord):
(WebCore::IDBBackingStore::findKeyInIndex):
(WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
(WebCore::IDBBackingStore::keyExistsInIndex):
(WebCore::IDBBackingStore::Cursor::Cursor):
(WebCore::IDBBackingStore::Cursor::firstSeek):
(WebCore::IDBBackingStore::Cursor::advance):
(WebCore::IDBBackingStore::Cursor::continueFunction):
(WebCore::IDBBackingStore::Cursor::haveEnteredRange):
(WebCore::IDBBackingStore::Cursor::isPastBounds):
(WebCore::ObjectStoreKeyCursorImpl::create):
(ObjectStoreKeyCursorImpl):
(WebCore::ObjectStoreKeyCursorImpl::value):
(WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
(WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
(WebCore::ObjectStoreCursorImpl::create):
(ObjectStoreCursorImpl):
(WebCore::ObjectStoreCursorImpl::value):
(WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
(WebCore::ObjectStoreCursorImpl::loadCurrentRow):
(WebCore::IndexKeyCursorImpl::create):
(IndexKeyCursorImpl):
(WebCore::IndexKeyCursorImpl::value):
(WebCore::IndexKeyCursorImpl::primaryKey):
(WebCore::IndexKeyCursorImpl::recordIdentifier):
(WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
(WebCore::IndexKeyCursorImpl::loadCurrentRow):
(WebCore::IndexCursorImpl::create):
(IndexCursorImpl):
(WebCore::IndexCursorImpl::value):
(WebCore::IndexCursorImpl::primaryKey):
(WebCore::IndexCursorImpl::recordIdentifier):
(WebCore::IndexCursorImpl::IndexCursorImpl):
(WebCore::IndexCursorImpl::loadCurrentRow):
(WebCore::objectStoreCursorOptions):
(WebCore::indexCursorOptions):
(WebCore::IDBBackingStore::openObjectStoreCursor):
(WebCore::IDBBackingStore::openObjectStoreKeyCursor):
(WebCore::IDBBackingStore::openIndexKeyCursor):
(WebCore::IDBBackingStore::openIndexCursor):
(WebCore::IDBBackingStore::Transaction::Transaction):
(WebCore::IDBBackingStore::Transaction::begin):
(WebCore::IDBBackingStore::Transaction::commit):
(WebCore::IDBBackingStore::Transaction::rollback):
* Modules/indexeddb/IDBBackingStore.h:
(WebCore):
(IDBBackingStore):
(RecordIdentifier):
(WebCore::IDBBackingStore::RecordIdentifier::create):
(WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
(WebCore::IDBBackingStore::RecordIdentifier::isValid):
(WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
(WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
(WebCore::IDBBackingStore::RecordIdentifier::version):
(WebCore::IDBBackingStore::RecordIdentifier::setVersion):
(WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
(Transaction):
(WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
(CursorOptions):
(Cursor):
(WebCore::IDBBackingStore::Cursor::Cursor):
(WebCore::IDBBackingStore::Cursor::key):
(WebCore::IDBBackingStore::Cursor::primaryKey):
(WebCore::IDBBackingStore::Cursor::~Cursor):
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::openBackingStore):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::countInternal):
* Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::deleteInternal):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
(WebCore::IDBTransactionBackendImpl::abort):
(WebCore::IDBTransactionBackendImpl::commit):
(WebCore::IDBTransactionBackendImpl::taskTimerFired):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
* WebCore.xcodeproj/project.pbxproj:
2012-11-09 Tien-Ren Chen <trchen@chromium.org>
Correct scroll adjustment for touchEvent.clientX/clientY
https://bugs.webkit.org/show_bug.cgi?id=101800
Reviewed by Adam Barth.
FrameView::scrollX/scrollY returns scroll offset in (scaled) frame coordinate.
Convert to document coordinate before passing to JavaScript.
Test: fast/events/touch/touch-scaled-scrolled.html
* dom/Touch.cpp:
(WebCore::contentsX):
(WebCore::contentsY):
2012-11-09 Alexandru Chiculita <achicu@adobe.com>
[Texmap][CSS Shaders] Enable CSS Shaders in TextureMapperGL
https://bugs.webkit.org/show_bug.cgi?id=98990
Reviewed by Noam Rosenthal.
Added code that draws the Custom Filter in the TextureMapperGL. Also added
required code to make a depth buffer for a BitmapTextureGL.
Note that the code is not optimized yet, so it will always recompile the shader.
Test: css3/filters/custom/composited/custom-filter-blend-modes.html
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::BitmapTextureGL::BitmapTextureGL):
(WebCore::getPassesRequiredForFilter):
(WebCore):
(WebCore::TextureMapperGL::drawUsingCustomFilter):
(WebCore::BitmapTextureGL::applyFilters):
(WebCore::BitmapTextureGL::initializeDepthBuffer):
(WebCore::BitmapTextureGL::~BitmapTextureGL):
* platform/graphics/texmap/TextureMapperGL.h:
(BitmapTextureGL):
2012-11-09 Sadrul Habib Chowdhury <sadrul@chromium.org>
CustomEvent: Allow taking in a serialized value during initialization.
https://bugs.webkit.org/show_bug.cgi?id=101348
Reviewed by Adam Barth.
If a CustomEvent is initialized using a serialized value, then for each access
to |detail|, the value is deserialized first. This way, each world gets a different
deserialization.
* UseV8.cmake:
* WebCore.gypi:
* bindings/v8/V8HiddenPropertyName.h:
(WebCore):
* bindings/v8/custom/V8CustomEventCustom.cpp: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
(WebCore):
(WebCore::V8CustomEvent::detailAccessorGetter):
* dom/CustomEvent.cpp:
(WebCore::CustomEvent::initCustomEvent):
(WebCore):
* dom/CustomEvent.h:
(CustomEvent):
(WebCore::CustomEvent::serializedScriptValue):
* dom/CustomEvent.idl:
2012-11-09 Brady Eidson <beidson@apple.com>
Implement WebResourceBuffer::isEmpty()
https://bugs.webkit.org/show_bug.cgi?id=101805
Reviewed by Alexey Proskuryakov.
This is required to make the existing subresource loading in NetworkProcess work correctly,
as there's an isEmpty() check in the WebProcess that decides whether or not to actually deliver
the data to the ResourceLoader.
No new tests (No change in behavior in any configuration we test.)
* loader/ResourceBuffer.h: Make isEmpty() virtual.
2012-11-09 Michael Saboff <msaboff@apple.com>
HTML Attributes names and values should be created as 8 bit string where possible
https://bugs.webkit.org/show_bug.cgi?id=101781
Reviewed by Filip Pizlo.
Given that almost all attribute names and values are lower case ASCII, we should try to
create 8 bit strings to process them. Creating an AtomicString already tries to make
an 8 bit string, so that didn't need to change.
No new tests, functionality covered by existing tests.
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::processTagToken):
* html/parser/HTMLMetaCharsetParser.cpp:
(WebCore::HTMLMetaCharsetParser::processMeta):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::PreloadTask::processAttributes):
2012-11-09 Dana Jansens <danakj@chromium.org>
[chromium] Define WEBKIT_IMPLEMENTATION everywhere inside WebCore
https://bugs.webkit.org/show_bug.cgi?id=101795
Reviewed by James Robinson.
* WebCore.gyp/WebCore.gyp:
2012-11-09 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134101.
http://trac.webkit.org/changeset/134101
https://bugs.webkit.org/show_bug.cgi?id=101790
IDBDatabaseBackendTest.BackingStoreRetention failing
(Requested by jsbell|gardener on #webkit).
* GNUmakefile.list.am:
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBLevelDBBackingStore::IDBLevelDBBackingStore):
(WebCore::IDBLevelDBBackingStore::~IDBLevelDBBackingStore):
(WebCore::IDBLevelDBBackingStore::open):
(WebCore::IDBLevelDBBackingStore::getDatabaseNames):
(WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
(WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
(WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
(WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
(WebCore::IDBLevelDBBackingStore::deleteDatabase):
(WebCore::IDBLevelDBBackingStore::getObjectStores):
(WebCore::IDBLevelDBBackingStore::createObjectStore):
(WebCore::IDBLevelDBBackingStore::deleteObjectStore):
(WebCore::IDBLevelDBBackingStore::getRecord):
(WebCore):
(WebCore::IDBLevelDBBackingStore::putRecord):
(WebCore::IDBLevelDBBackingStore::clearObjectStore):
(WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
(WebCore::IDBLevelDBBackingStore::deleteRecord):
(WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
(WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBLevelDBBackingStore::getIndexes):
(WebCore::IDBLevelDBBackingStore::createIndex):
(WebCore::IDBLevelDBBackingStore::deleteIndex):
(WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
(WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
(WebCore::IDBLevelDBBackingStore::findKeyInIndex):
(WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
(WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
(WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
(WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor):
(WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
(WebCore::IDBLevelDBBackingStore::openIndexCursor):
(WebCore::IDBLevelDBBackingStore::createTransaction):
(WebCore::IDBLevelDBBackingStore::Transaction::create):
(WebCore::IDBLevelDBBackingStore::Transaction::Transaction):
(WebCore::IDBLevelDBBackingStore::Transaction::begin):
(WebCore::IDBLevelDBBackingStore::Transaction::commit):
(WebCore::IDBLevelDBBackingStore::Transaction::rollback):
(WebCore::IDBLevelDBBackingStore::backingStoreExists):
* Modules/indexeddb/IDBBackingStore.h:
(WebCore):
(WebCore::IDBBackingStore::~IDBBackingStore):
(IDBBackingStore):
(RecordIdentifier):
(WebCore::IDBBackingStore::Cursor::~Cursor):
(WebCore::IDBBackingStore::Transaction::~Transaction):
(Transaction):
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::openBackingStore):
* Modules/indexeddb/IDBLevelDBBackingStore.h: Copied from Source/WebCore/Modules/indexeddb/IDBBackingStore.h.
(WebCore):
(IDBLevelDBBackingStore):
(Transaction):
(WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransactionFrom):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::deleteInternal):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
(WebCore::IDBTransactionBackendImpl::abort):
(WebCore::IDBTransactionBackendImpl::commit):
(WebCore::IDBTransactionBackendImpl::taskTimerFired):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
* WebCore.xcodeproj/project.pbxproj:
2012-11-09 Erik Arvidsson <arv@chromium.org>
REGRESSION (r125239): classList contains() doesn't work after element was moved from strict mode document to quirks mode document
https://bugs.webkit.org/show_bug.cgi?id=101627
Reviewed by Alexey Proskuryakov.
We used to only create m_classNamesForQuirksMode in the constructor or when the class attribute
was changed. If an element is moved from a standards document to a quirks mode document the
m_classNamesForQuirksMode would not be up to date which lead to wrong results.
Now we alway check if m_classNamesForQuirksMode is up to date (in quirks mode only).
Test: fast/dom/Element/class-list-move-between-document-with-different-quirks-mode.html
* html/ClassList.cpp:
(WebCore::ClassList::classNames): Create the m_classNamesForQuirksMode lazily as needed so that
it is up to date.
* html/ClassList.h:
2012-11-09 Alec Flett <alecflett@chromium.org>
IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
https://bugs.webkit.org/show_bug.cgi?id=101415
Reviewed by Tony Chang.
Combine abstract interface IDBBackingStore with its only
implementation, IDBLevelDBBackingStore, to reduce code
complexity. The legacy structure existed to support a SQLLite
IDBBackingStore, but it is no longer worth the complexity to
support this abstraction.
Changes include:
1) Merging IDBLevelDBBackingStore into IDBBackingStore.
2) Merge together IDBBackingStore's inner classes: Cursor,
Transaction, and ObjectStoreRecordIdentfier with their respective
subclasses in IDBLevelDBBackingStore.
3) Simplifying the inner Transaction class to not be refcounted or
virtualized, to allow it to be a simple concrete member of its
owner, IDBTransactionBackendImpl.
No new tests as this is purely a refactor.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::recordInternalError):
(WebCore::setUpMetadata):
(WebCore::IDBBackingStore::IDBBackingStore):
(WebCore):
(WebCore::IDBBackingStore::~IDBBackingStore):
(WebCore::IDBBackingStore::open):
(WebCore::IDBBackingStore::getDatabaseNames):
(WebCore::IDBBackingStore::getIDBDatabaseMetaData):
(WebCore::IDBBackingStore::createIDBDatabaseMetaData):
(WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
(WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
(WebCore::deleteRange):
(WebCore::IDBBackingStore::deleteDatabase):
(WebCore::IDBBackingStore::getObjectStores):
(WebCore::setMaxObjectStoreId):
(WebCore::IDBBackingStore::createObjectStore):
(WebCore::IDBBackingStore::deleteObjectStore):
(WebCore::IDBBackingStore::getRecord):
(WebCore::IDBBackingStore::putRecord):
(WebCore::IDBBackingStore::clearObjectStore):
(WebCore::IDBBackingStore::deleteRecord):
(WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBBackingStore::getIndexes):
(WebCore::setMaxIndexId):
(WebCore::IDBBackingStore::createIndex):
(WebCore::IDBBackingStore::deleteIndex):
(WebCore::IDBBackingStore::putIndexDataForRecord):
(WebCore::IDBBackingStore::deleteIndexDataForRecord):
(WebCore::IDBBackingStore::findKeyInIndex):
(WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
(WebCore::IDBBackingStore::keyExistsInIndex):
(WebCore::IDBBackingStore::Cursor::Cursor):
(WebCore::IDBBackingStore::Cursor::firstSeek):
(WebCore::IDBBackingStore::Cursor::advance):
(WebCore::IDBBackingStore::Cursor::continueFunction):
(WebCore::IDBBackingStore::Cursor::haveEnteredRange):
(WebCore::IDBBackingStore::Cursor::isPastBounds):
(WebCore::ObjectStoreKeyCursorImpl::create):
(ObjectStoreKeyCursorImpl):
(WebCore::ObjectStoreKeyCursorImpl::value):
(WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
(WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
(WebCore::ObjectStoreCursorImpl::create):
(ObjectStoreCursorImpl):
(WebCore::ObjectStoreCursorImpl::value):
(WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
(WebCore::ObjectStoreCursorImpl::loadCurrentRow):
(WebCore::IndexKeyCursorImpl::create):
(IndexKeyCursorImpl):
(WebCore::IndexKeyCursorImpl::value):
(WebCore::IndexKeyCursorImpl::primaryKey):
(WebCore::IndexKeyCursorImpl::recordIdentifier):
(WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
(WebCore::IndexKeyCursorImpl::loadCurrentRow):
(WebCore::IndexCursorImpl::create):
(IndexCursorImpl):
(WebCore::IndexCursorImpl::value):
(WebCore::IndexCursorImpl::primaryKey):
(WebCore::IndexCursorImpl::recordIdentifier):
(WebCore::IndexCursorImpl::IndexCursorImpl):
(WebCore::IndexCursorImpl::loadCurrentRow):
(WebCore::objectStoreCursorOptions):
(WebCore::indexCursorOptions):
(WebCore::IDBBackingStore::openObjectStoreCursor):
(WebCore::IDBBackingStore::openObjectStoreKeyCursor):
(WebCore::IDBBackingStore::openIndexKeyCursor):
(WebCore::IDBBackingStore::openIndexCursor):
(WebCore::IDBBackingStore::Transaction::Transaction):
(WebCore::IDBBackingStore::Transaction::begin):
(WebCore::IDBBackingStore::Transaction::commit):
(WebCore::IDBBackingStore::Transaction::rollback):
* Modules/indexeddb/IDBBackingStore.h:
(WebCore):
(IDBBackingStore):
(RecordIdentifier):
(WebCore::IDBBackingStore::RecordIdentifier::create):
(WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
(WebCore::IDBBackingStore::RecordIdentifier::isValid):
(WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
(WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
(WebCore::IDBBackingStore::RecordIdentifier::version):
(WebCore::IDBBackingStore::RecordIdentifier::setVersion):
(WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
(Transaction):
(WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
(CursorOptions):
(Cursor):
(WebCore::IDBBackingStore::Cursor::Cursor):
(WebCore::IDBBackingStore::Cursor::key):
(WebCore::IDBBackingStore::Cursor::primaryKey):
(WebCore::IDBBackingStore::Cursor::~Cursor):
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::openBackingStore):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::countInternal):
* Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::deleteInternal):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
(WebCore::IDBTransactionBackendImpl::abort):
(WebCore::IDBTransactionBackendImpl::commit):
(WebCore::IDBTransactionBackendImpl::taskTimerFired):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
* WebCore.xcodeproj/project.pbxproj:
2012-10-28 Timothy Hatcher <timothy@apple.com>
Make -webkit-canvas in CSS use the full backing store instead
of always 1x when rendering.
https://bugs.webkit.org/show_bug.cgi?id=100611
Reviewed by Dean Jackson.
Test: fast/canvas/canvas-as-image-hidpi.html
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::makePresentationCopy): Pass Unscaled to copyImage.
(WebCore::HTMLCanvasElement::copiedImage): Ditto.
* platform/graphics/ImageBuffer.h:
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::copyImage): Added Scale parameter and use copyNativeImage for Unscaled.
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::copyImage): Added unnamed ScaleBehavior parameter.
* platform/graphics/qt/ImageBufferQt.cpp:
(WebCore::ImageBuffer::copyImage): Ditto.
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::ImageBuffer::copyImage): Ditto.
* platform/graphics/wince/ImageBufferWinCE.cpp:
(WebCore::ImageBuffer::copyImage): Ditto.
* platform/graphics/wx/ImageBufferWx.cpp:
(WebCore::ImageBuffer::copyImage): Ditto.
2012-10-28 Timothy Hatcher <timothy@apple.com>
Reset the canvas backing store pixel ratio when the buffer resizes.
The backing store was not being recreated using the current page pixel ratio
when a resize occurred.
https://bugs.webkit.org/show_bug.cgi?id=100608
Reviewed by Darin Adler.
Test: fast/canvas/canvas-resize-reset-pixelRatio.html
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::HTMLCanvasElement): Use targetDeviceScaleFactor.
(WebCore::HTMLCanvasElement::reset): Do a clear only if the pixel ratios also
match. Store the new pixel ratio in m_deviceScaleFactor.
(WebCore::HTMLCanvasElement::targetDeviceScaleFactor): Added.
* html/HTMLCanvasElement.h:
(WebCore::HTMLCanvasElement::setSize): Return early only if the sizes and
pixel ratios match.
2012-11-08 Ryosuke Niwa <rniwa@webkit.org>
RemoveFormat command doesn't remove background color
https://bugs.webkit.org/show_bug.cgi?id=101682
Reviewed by Tony Chang.
Fixed the bug by removing all non-transparent background-color properties.
Test: editing/execCommand/remove-format-background-color.html
* editing/RemoveFormatCommand.cpp:
(WebCore::RemoveFormatCommand::doApply):
2012-11-09 Alec Flett <alecflett@chromium.org>
IndexedDB: switch frontend to use int64_t-based references
https://bugs.webkit.org/show_bug.cgi?id=100426
Reviewed by Tony Chang.
Remove String-based objectStore/index references, obsoleted by
https://bugs.webkit.org/show_bug.cgi?id=100425.
No new tests as this is the second half of a refactor.
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::deleteObjectStore):
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::setVersion):
(WebCore::IDBDatabaseBackendImpl::transaction):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(IDBDatabaseBackendInterface):
* Modules/indexeddb/IDBMetadata.h:
(WebCore::IDBObjectStoreMetadata::findIndex):
(IDBObjectStoreMetadata):
(WebCore::IDBObjectStoreMetadata::containsIndex):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::put):
(WebCore):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::deleteIndex):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::put):
(WebCore):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(IDBObjectStoreBackendImpl):
* Modules/indexeddb/IDBObjectStoreBackendInterface.h:
* inspector/Inspector-1.0.json:
* inspector/Inspector.json:
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore):
(WebCore::InspectorIndexedDBAgent::requestData):
* inspector/InspectorIndexedDBAgent.h:
(InspectorIndexedDBAgent):
2012-11-09 Mario Sanchez Prada <mario@webkit.org>
[GTK] Isolate the GTK/Gail/Pango specific code in accessibility/gtk
https://bugs.webkit.org/show_bug.cgi?id=101727
Reviewed by Chris Fleizach.
Added conditional compilation checks for GTK+ specific
accessibility code, to pave the way for sharing this
implementation with other ports (e.g WebKitEFL).
* accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
(webkitAccessibleTextGetTextAfterOffset): Added conditional
compilation checks, only implementing it in GTK so far.
(webkitAccessibleTextGetTextAtOffset): Ditto.
(webkitAccessibleTextGetTextBeforeOffset): Ditto.
* accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
(atkParentOfRootObject): Added conditional compilation checks,
only implementing in GTK the part of getting the accessible object
for the root object.
(webkitAccessibleGetParent): Updated comments.
(webkitAccessibleGetNChildren): Ditto.
(webkitAccessibleRefChild): Ditto.
(webkitAccessibleGetIndexInParent): Ditto.
(webkitAccessibleGetAttributes): Only set the 'toolkit' attribute
for GTK. Other ports might be interested in this too.
(setAtkStateSetFromCoreObject): Updated comments.
2012-11-09 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Don't trigger any object deletion during RTCPeerConnection::stop
https://bugs.webkit.org/show_bug.cgi?id=101586
Reviewed by Adam Barth.
Stop calling stop on the RTCPeerConnectionHandler, and don't delete it, when
ActiveDOMObject::stop is called on RTCPeerConnection. Due to the async nature of the new
API some WebCore objects might be cleaned away which is not allowed at this stage.
This behaviour is not possible to test unfortunately in webkit.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::stop):
2012-11-09 Joshua Bell <jsbell@chromium.org>
[Chromium] Unreviewed gardening. Fix chromium-win builds following r134082
* WebCore.gypi:
2012-11-09 Dan Carney <dcarney@google.com>
[V8] Remove ScriptController::windowShell()
https://bugs.webkit.org/show_bug.cgi?id=100235
Reviewed by Adam Barth.
Refactored windowShell(DOMWrapperWorld*) and
existingWindowShell(DOMWrapperWorld*) to be like JSC.
No new tests. No change in functionality.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateToV8Converters):
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore::isolatedWorldMap):
(WebCore::DOMWrapperWorld::getAllWorlds):
(WebCore):
* bindings/v8/DOMWrapperWorld.h:
(DOMWrapperWorld):
* bindings/v8/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::addListener):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::~ScriptController):
(WebCore::ScriptController::clearForOutOfMemory):
(WebCore):
(WebCore::ScriptController::clearForClose):
(WebCore::ScriptController::updateSecurityOrigin):
(WebCore::ScriptController::initializeMainWorld): Returns true if the main world was initialized.
(WebCore::existingWindowShellWorkaroundWorld):
(WebCore::ScriptController::existingWindowShell):
(WebCore::ScriptController::windowShell):
(WebCore::ScriptController::evaluateInIsolatedWorld):
(WebCore::ScriptController::currentWorldContext):
(WebCore::ScriptController::mainWorldContext):
(WebCore::ScriptController::haveInterpreter):
(WebCore::ScriptController::enableEval):
(WebCore::ScriptController::disableEval):
(WebCore::ScriptController::clearWindowShell):
(WebCore::ScriptController::setContextDebugId):
(WebCore::ScriptController::updateDocument):
(WebCore::ScriptController::namedItemAdded):
(WebCore::ScriptController::namedItemRemoved):
* bindings/v8/ScriptController.h:
(ScriptController):
(WebCore::ScriptController::getAllWorlds):
* bindings/v8/V8Binding.cpp:
(WebCore::perContextDataForCurrentWorld):
(WebCore::handleOutOfMemory):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initializeIfNeeded):
(WebCore::V8DOMWindowShell::updateDocument):
(WebCore::V8DOMWindowShell::namedItemAdded):
(WebCore::V8DOMWindowShell::namedItemRemoved):
* bindings/v8/V8DOMWindowShell.h:
(WebCore::V8DOMWindowShell::isContextInitialized):
(WebCore::V8DOMWindowShell::isGlobalInitialized):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8SVGDocumentCustom.cpp:
(WebCore::toV8):
2012-11-09 Adam Barth <abarth@webkit.org>
[V8] Remove a level of indirection in DOMDataStore
https://bugs.webkit.org/show_bug.cgi?id=101690
Reviewed by Kentaro Hara.
There is no longer any reason for the DOMDataStore to hold the wrapper
map via a pointer. It can just hold the wrapper map directly, saving a
level of indirection. I doubt this has any measurable performance gain.
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::DOMDataStore):
(WebCore::DOMDataStore::~DOMDataStore):
(WebCore::DOMDataStore::reportMemoryUsage):
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::get):
(WebCore::DOMDataStore::set):
(DOMDataStore):
2012-11-09 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Region styling properties are not filtered correctly
https://bugs.webkit.org/show_bug.cgi?id=101768
Reviewed by Andreas Kling.
Region styling allows only a handful of css properties. There is a mechanism in place,
in StyleResolver::isValidRegionStyleProperty that filters the supported region style properties.
In order to be effective, this mechanism relies on RuleData::m_isInRegionRule being set correctly.
This patch makes sure that the flag RuleData::m_isInRegionRule is set properly in RuleData constructor.
Test: fast/regions/region-style-not-supported-properties.html
* css/RuleSet.cpp:
(WebCore::RuleData::RuleData):
2012-11-09 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Deleting all files relating to the deprecated PeerConnection00
https://bugs.webkit.org/show_bug.cgi?id=101730
Reviewed by Adam Barth.
Since RTCPeerConenction has superseeded PeerConnection00 this patch removes all
files relating to the old API.
No testing needed, the remaining tests makes sure that nothing else breaks.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/DOMWindowMediaStream.idl:
* Modules/mediastream/IceCallback.h: Removed.
* Modules/mediastream/IceCallback.idl: Removed.
* Modules/mediastream/IceCandidate.cpp: Removed.
* Modules/mediastream/IceCandidate.h: Removed.
* Modules/mediastream/IceCandidate.idl: Removed.
* Modules/mediastream/PeerConnection00.cpp: Removed.
* Modules/mediastream/PeerConnection00.h: Removed.
* Modules/mediastream/PeerConnection00.idl: Removed.
* Modules/mediastream/SessionDescription.cpp: Removed.
* Modules/mediastream/SessionDescription.h: Removed.
* Modules/mediastream/SessionDescription.idl: Removed.
* WebCore.gypi:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures):
* dom/EventTargetFactory.in:
* platform/chromium/support/WebICECandidateDescriptor.cpp: Removed.
* platform/chromium/support/WebICEOptions.cpp: Removed.
* platform/chromium/support/WebMediaHints.cpp: Removed.
* platform/mediastream/IceCandidateDescriptor.cpp: Removed.
* platform/mediastream/IceCandidateDescriptor.h: Removed.
* platform/mediastream/IceOptions.cpp: Removed.
* platform/mediastream/IceOptions.h: Removed.
* platform/mediastream/MediaHints.cpp: Removed.
* platform/mediastream/MediaHints.h: Removed.
* platform/mediastream/MediaStreamCenter.h:
(WebCore):
(MediaStreamCenter):
* platform/mediastream/PeerConnection00Handler.cpp: Removed.
* platform/mediastream/PeerConnection00Handler.h: Removed.
* platform/mediastream/PeerConnection00HandlerClient.h: Removed.
* platform/mediastream/SessionDescriptionDescriptor.cpp: Removed.
* platform/mediastream/SessionDescriptionDescriptor.h: Removed.
* platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp:
* platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h:
(WebCore):
(MediaStreamCenterBlackBerry):
* platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
* platform/mediastream/chromium/MediaStreamCenterChromium.h:
(WebCore):
(MediaStreamCenterChromium):
* platform/mediastream/chromium/PeerConnection00Handler.cpp: Removed.
* platform/mediastream/chromium/PeerConnection00HandlerInternal.cpp: Removed.
* platform/mediastream/chromium/PeerConnection00HandlerInternal.h: Removed.
* platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
* platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
(WebCore):
(MediaStreamCenterGStreamer):
2012-11-09 Jer Noble <jer.noble@apple.com>
Plugin diagnostic logging should send plugin file basename instead of MIME type.
https://bugs.webkit.org/show_bug.cgi?id=101679
Reviewed by Eric Carlson.
Log the basename of the plugin file rather than the mime type so as to more
accurately log which plugin was used to handle the request.
* loader/SubframeLoader.cpp:
(WebCore::logPluginRequest): Log the plugin 'file' field, if present.
* plugins/PluginData.cpp:
(WebCore::PluginData::pluginInfoForMimeType): Factored out from pluginNameForMimeType.
(WebCore::PluginData::pluginNameForMimeType): Use pluginInfoForMimeType to retrieve name field.
(WebCore::PluginData::pluginFileForMimeType): Use pluginInfoForMimeType to retrieve file field.
* plugins/PluginData.h:
2012-11-09 Alexey Proskuryakov <ap@apple.com>
CookieJar uses Document class, which is a layering violation
https://bugs.webkit.org/show_bug.cgi?id=101621
Reviewed by Brady Eidson.
Split CookieJar in two parts, one that takes a Document, and another that is a pure
platform one, using NetworkingContext to access the correct platform storage.
* GNUmakefile.list.am:
* PlatformBlackBerry.cmake:
* Target.pri:
* WebCore.gypi:
* WebCore.gyp/WebCore.gyp:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Updated.
* loader/CookieJar.cpp: Added.
(WebCore::networkingContext):
(WebCore::cookies):
(WebCore::setCookies):
(WebCore::cookiesEnabled):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::getRawCookies):
(WebCore::deleteCookie):
(WebCore::getHostnamesWithCookies):
(WebCore::deleteCookiesForHostname):
(WebCore::deleteAllCookies):
* loader/CookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
This is an adaptor for pure platform implementations. Clients continue to use the
old interface unchanged.
* platform/blackberry/CookieJarBlackBerry.cpp: Removed.
* loader/blackberry/CookieJarBlackBerry.cpp: Copied from Source/WebCore/platform/blackberry/CookieJarBlackBerry.cpp.
* platform/network/chromium/CookieJarChromium.cpp: Removed.
* loader/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/platform/network/chromium/CookieJarChromium.cpp.
These platforms do not have a pure platform implementation yet, so they just keep
to use original implementations. Since the code is not in platform/ any more, the
violation is resolved for Chromium and Blackberry, too.
* platform/CookieJar.h: Removed.
* platform/network/PlatformCookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
The platform interface is now more uniform - all functions take a NetworkingContext
instead of hardcoding which cookie storage to use in some cases.
Renamed functions that are only useful for document.cookie implementation to look
less generic.
* platform/mac/CookieJar.mm: Removed.
* platform/network/mac/CookieJarMac.mm: Copied from Source/WebCore/platform/mac/CookieJar.mm.
(WebCore::cookiesForDOM): This now takes a context instead of Document, and also
takes a firstParty URL (unused on Mac, but used on some other platforms).
(WebCore::cookieRequestHeaderFieldValue): Get cookie storage from context (and
use shared one if context is null).
(WebCore::setCookiesFromDOM): Ditto.
(WebCore::cookiesEnabled): Ditto.
(WebCore::getRawCookies): Ditto.
(WebCore::deleteCookie): Ditto.
(WebCore::getHostnamesWithCookies): Ditto. This used to only support default storage,
but its cleaner to have a uniform interface.
(WebCore::deleteCookiesForHostname): Ditto.
(WebCore::deleteAllCookies): Ditto.
* platform/network/cf/CookieJarCFNet.cpp:
Same changes as on Mac.
* platform/network/curl/CookieJarCurl.cpp:
Updated for new interface. Implementation is largely a dummy one.
* platform/qt/CookieJarQt.h: Removed.
* platform/network/qt/CookieJarQt.h: Copied from Source/WebCore/platform/qt/CookieJarQt.h.
Moved to a common location, most cookie files were in network/ already.
* platform/qt/CookieJarQt.cpp: Removed.
* platform/network/qt/CookieJarQt.cpp: Copied from Source/WebCore/platform/qt/CookieJarQt.cpp.
(WebCore::setCookiesFromDOM): Use context's or shared cooke jar as appropriate.
(WebCore::cookiesForDOM): Ditto.
(WebCore::cookieRequestHeaderFieldValue): Ditto.
(WebCore::cookiesEnabled): Ditto.
(WebCore::getRawCookies): Ditto.
(WebCore::deleteCookie): Ditto.
(WebCore::getHostnamesWithCookies): Back-end implementation can only handle shared
jar here, assert that argument does not request another one.
(WebCore::deleteCookiesForHostname): Ditto.
(WebCore::deleteAllCookies): Ditto.
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::cookieJarForContext):
(WebCore::setCookiesFromDOM):
(WebCore::cookiesForContext):
(WebCore::cookiesForDOM):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::cookiesEnabled):
(WebCore::getRawCookies):
(WebCore::deleteCookie):
(WebCore::getHostnamesWithCookies):
(WebCore::deleteCookiesForHostname):
(WebCore::deleteAllCookies):
Updated for new function signatures, and use the same cross-platform logic for
choosing a cookie jar.
* platform/network/soup/CookieJarSoup.h: Don't include unnecessary CooieJar.h.
* platform/network/win/CookieJarWin.cpp:
(WebCore::setCookiesFromDOM):
(WebCore::cookiesForDOM):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::cookiesEnabled):
(WebCore::getRawCookies):
(WebCore::deleteCookie):
(WebCore::getHostnamesWithCookies):
(WebCore::deleteCookiesForHostname):
(WebCore::deleteAllCookies):
Updated for new function signatures.
2012-11-09 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
[css] Text decoration's "blink" not valid when CSS3_TEXT is enabled
https://bugs.webkit.org/show_bug.cgi?id=101750
Reviewed by Ojan Vafai.
This patch fixes an issue regarding "blink" value, which is valid for CSS 2.1
"text-decoration" property, but recently have its parser function modified by
the addition of CSS3 "-webkit-text-decoration-line" property.
The 'fast/css/getComputedStyle/getComputedStyle-text-decoration.html'
layout test is updated with all possible value combinations.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseTextDecoration): Added 'blink' value to list
if accepted.
2012-11-09 Xan Lopez <xlopez@igalia.com>
[GTK] Do not use 'ls' to list IDL files in EXTRA_DIST
https://bugs.webkit.org/show_bug.cgi?id=101581
Reviewed by Martin Robinson.
Use normal GNU Make wildcards instead of 'ls' to list files in
EXTRA_DIST, it's safer and more straightforward.
* GNUmakefile.am: ditto.
2012-11-09 Charles Wei <charles.wei@torchmobile.com.cn>
Need to clear exception in JSDictionary that might have been caused by previous operation.
https://bugs.webkit.org/show_bug.cgi?id=96614
Reviewed by George Staikos.
IndexedDB IDBDatabase::createObjectStore supports both String type of KeyPath and
String Array type of KeyPath. It will first try to get the keyPath as a String Array,
if fails, it will try to get KeyPath as a String, from the Dictionary. The first get
will leave the internal ExecState of Dictionary in exception state. We need to clear
the exception state before the 2nd query, otherwise the second query will also fail.
No new tests. The existing test case LayoutTests/storage/indexeddb/tutorial.html should
now work with this patch.
* bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::getWithUndefinedOrNullCheck):
2012-11-09 Keishi Hattori <keishi@webkit.org>
Month/week picker should submit month/week string
https://bugs.webkit.org/show_bug.cgi?id=101744
Reviewed by Kent Tamura.
Month/week picker should submit month/week string and not yyyy-mm-dd.
No new tests. Test will be added in Bug 101555 and Bug 101556.
* Resources/pagepopups/calendarPicker.js:
(DaysTable.prototype._handleDayClick):
2012-11-07 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: wrong output for empty object {}
https://bugs.webkit.org/show_bug.cgi?id=101356
Reviewed by Vsevolod Vlasov.
Changed preview formatting to iterate over enumerable properties only + visit the prototypes.
* inspector/InjectedScriptSource.js:
(.):
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
2012-11-09 Keishi Hattori <keishi@webkit.org>
Fix annotations in page popup files
https://bugs.webkit.org/show_bug.cgi?id=101736
Reviewed by Kent Tamura.
Add @constructor where needed. Replacing /* with /** for annotations.
No new tests. No behavior change.
* Resources/pagepopups/calendarPicker.js:
* Resources/pagepopups/pickerCommon.js:
* Resources/pagepopups/suggestionPicker.js:
2012-11-09 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: Remove a backing store of GraphicsLayer when the layer is far from the viewport.
https://bugs.webkit.org/show_bug.cgi?id=101656
Reviewed by Kenneth Rohde Christiansen.
TiledBackingStore computes cover and keep rects to create, keep or remove tiles
smartly, but currently TiledBackingStore expects a contents rect is big enough
to cover the visibleRect. However, when CoordinatedGraphicsLayer uses TBS, it
is usually wrong expectation.
We must compute cover and keep rects using the visibleRect, instead of
the rect intersecting the visibleRect with m_rect, because TBS can be
used as a backing store of GraphicsLayer and the visible rect usually
does not intersect with m_rect.
In the below case, the intersecting rect is an empty.
+---------------+
| |
| m_rect |
| +-------|-----------------------+
| | HERE | cover or keep |
+---------------+ rect |
| +---------+ |
| | visible | |
| | rect | |
| +---------+ |
| |
| |
+-------------------------------+
We must create or keep the tiles in the HERE region. Currently in the
case, we do not create or keep tiles on the HERE region. Moreover, in
the case, we early return, which means we don't remove any tiles. It
causes to waste heap and video memory.
This patch changes TiledBackingStore to manage tiles smartly for
Coordinated Graphics.
Changing cache policy is not testable in layout tests.
* platform/graphics/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::visibleRect):
(WebCore::TiledBackingStore::visibleAreaIsCovered):
(WebCore::TiledBackingStore::createTiles):
(WebCore::TiledBackingStore::adjustForContentsRect):
(WebCore::TiledBackingStore::removeAllNonVisibleTiles):
* platform/graphics/TiledBackingStore.h:
(TiledBackingStore):
2012-11-09 Keishi Hattori <keishi@webkit.org>
Fix undefined variable in Week constructor for calendar picker
https://bugs.webkit.org/show_bug.cgi?id=101734
Reviewed by Kent Tamura.
Closer compiler found an undefined variable in the Week constructor.
No new tests. This code isn't used.
* Resources/pagepopups/calendarPicker.js:
(Week): Used wrong variable name.
2012-11-09 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: render canvas log as a grid.
https://bugs.webkit.org/show_bug.cgi?id=101732
Reviewed by Vsevolod Vlasov.
* English.lproj/localizedStrings.js:
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView):
(WebInspector.CanvasProfileView.prototype._onSelectTraceLog):
(WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
(WebInspector.CanvasProfileView.prototype._replayTraceLog):
(WebInspector.CanvasProfileHeader.prototype.traceLogId):
(WebInspector.CanvasLogGrid):
(WebInspector.CanvasLogGrid.prototype._didReceiveTraceLog):
(WebInspector.CanvasLogGrid.prototype._createCallNode):
* inspector/front-end/DataGrid.js:
(WebInspector.DataGridNode.prototype.createCell):
* inspector/front-end/canvasProfiler.css:
(#canvas-replay-image-container):
2012-11-09 Allan Sandfeld Jensen <allan.jensen@digia.com>
Regression(r107593) Crash in ContextMenuController::addInspectElementItem()
https://bugs.webkit.org/show_bug.cgi?id=101595
Reviewed by Simon Hausmann.
If the contextMenu is a null pointer treat it as empty, appendItem will later
create it if necessary.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::addInspectElementItem):
2012-11-09 Christophe Dumez <christophe.dumez@intel.com>
[EFL][WK2] Add support for custom cursors
https://bugs.webkit.org/show_bug.cgi?id=101723
Reviewed by Kenneth Rohde Christiansen.
Add getEvasObject() virtual method to Image class and
provide implementation for BitmapImage.
No new tests, no behavior change.
* platform/efl/CursorEfl.cpp:
(WebCore::cursorString):
* platform/graphics/BitmapImage.h:
(BitmapImage):
* platform/graphics/Image.h:
(Image):
(WebCore::Image::getEvasObject):
* platform/graphics/efl/ImageEfl.cpp:
(WebCore::BitmapImage::getEvasObject):
(WebCore):
2012-11-09 Adam Barth <abarth@webkit.org>
IndexedDB should use mostly ScriptWrappable DOM objects
https://bugs.webkit.org/show_bug.cgi?id=101694
Reviewed by Kentaro Hara.
These object always have JavaScript wrappers, so we should store the
wrappers inline to use less memory and be faster.
* Modules/indexeddb/IDBAny.h:
* Modules/indexeddb/IDBCursor.h:
* Modules/indexeddb/IDBDatabase.h:
* Modules/indexeddb/IDBFactory.h:
* Modules/indexeddb/IDBIndex.h:
* Modules/indexeddb/IDBKey.h:
* Modules/indexeddb/IDBKeyRange.h:
* Modules/indexeddb/IDBObjectStore.h:
* Modules/indexeddb/IDBRequest.h:
* Modules/indexeddb/IDBTransaction.h:
2012-11-09 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Add meaningful error message when request content was evicted from inspector cache.
https://bugs.webkit.org/show_bug.cgi?id=101578
Reviewed by Yury Semikhatsky.
Added specific error message when request content was evicted from inspector cache.
Replaced purge with evict in fields/methods names.
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::getResponseBody):
* inspector/NetworkResourcesData.cpp:
(WebCore::NetworkResourcesData::ResourceData::ResourceData):
(WebCore::NetworkResourcesData::ResourceData::evictContent):
(WebCore::NetworkResourcesData::setResourceContent):
(WebCore::NetworkResourcesData::maybeAddResourceData):
(WebCore::NetworkResourcesData::maybeDecodeDataToContent):
(WebCore::NetworkResourcesData::ensureNoDataForRequestId):
(WebCore::NetworkResourcesData::ensureFreeSpace):
* inspector/NetworkResourcesData.h:
(WebCore::NetworkResourcesData::ResourceData::isContentEvicted):
(ResourceData):
2012-11-09 Kent Tamura <tkent@chromium.org>
Don't use RenderTextControlSingleLine for date/time input types without the multiple-fields UI
https://bugs.webkit.org/show_bug.cgi?id=101722
Reviewed by Hajime Morita.
Because the date/time input types are not textfields, we should not use
RenderTextControlSingleLine, and don't need to create shadow trees for
RenderTextControlSingleLine.
No new tests. Covered by fast/forms/*/*-appearance-*.html.
* css/html.css:
(input[type="date"]):
It has menulist appeanrace by default, and should be a flexible box to
center the inner text. 10em width is almost same as the default width of
text fields.
(input[type="datetime"]): Ditto.
(input[type="datetime-local"]): Ditto.
(input[type="month"]): Ditto.
(input[type="time"]): Ditto.
(input[type="week"]): Ditto.
(input::-webkit-date-and-time-value):
Added. A style for the inner text block.
* html/BaseChooserOnlyDateAndTimeInputType.cpp:
(WebCore::BaseChooserOnlyDateAndTimeInputType::createRenderer):
Don't create RenderTextControlSingleLine.
(WebCore::BaseChooserOnlyDateAndTimeInputType::updateInnerTextValue):
Skip TextFieldInputType::updateInnerTextValue.
(WebCore::BaseChooserOnlyDateAndTimeInputType::forwardEvent):
Skip TextFieldInputType::forwardEvent.
(WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):
Just add one element to the shadow root.
(WebCore::BaseChooserOnlyDateAndTimeInputType::updateAppearance):
Sets a localized value to the inner text block.
(WebCore::BaseChooserOnlyDateAndTimeInputType::setValue):
Calls updateAppearance if the value is updated.
* html/BaseChooserOnlyDateAndTimeInputType.h:
(BaseChooserOnlyDateAndTimeInputType): Declare updateAppearance,
createRenderer, updateInnerTextValue, forwardEvent, createShadowSubtree,
and setValue.
* html/BaseDateAndTimeInputType.h:
(WebCore): Add a FIXME comment.
(BaseDateAndTimeInputType):
Make visibleValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
* html/TextFieldInputType.h:
(TextFieldInputType):
Make setValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
2012-11-09 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Clarify meaning of different urls in protocol.
https://bugs.webkit.org/show_bug.cgi?id=101582
Reviewed by Yury Semikhatsky.
* inspector/Inspector.json:
2012-11-09 Keishi Hattori <keishi@webkit.org>
Month picker should select the current month when navigating while keeping selection position.
https://bugs.webkit.org/show_bug.cgi?id=101724
Reviewed by Kent Tamura.
Month picker needs to behave differently because selection won't be in the same position when changing current month.
No new tests. Test will be added in Bug 101556.
* Resources/pagepopups/calendarPicker.js:
(DaysTable.prototype.navigateToMonth): Date/Week picker should keep selection position for first selected date node.
(DaysTable.prototype._startMoveInAnimation): Moving shared code to separate function.
(MonthPickerDaysTable.prototype.navigateToMonth): Month picker should just select the month.
2012-11-09 Alexei Filippov <alph@chromium.org>
Web Inspector: Fix heap snapshots counted several times by NMI
https://bugs.webkit.org/show_bug.cgi?id=101085
The fix moves snapshots size counting to V8PerIsolateData class. As long
as it has one instance per isolate its reportMemoryUsage should be
called once per isolate.
Reviewed by Yury Semikhatsky.
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::reportMemoryUsage):
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::reportMemoryUsage):
2012-11-08 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: split SplitView into SplitView and SidebarView
https://bugs.webkit.org/show_bug.cgi?id=101612
Reviewed by Vsevolod Vlasov.
Currently, SplitView is rather a sidebar view. I'm extracting the reusable split component from it.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/AuditsPanel.js:
(WebInspector.AuditsPanel):
* inspector/front-end/CSSNamedFlowCollectionsView.js:
(WebInspector.CSSNamedFlowCollectionsView):
(WebInspector.CSSNamedFlowCollectionsView.prototype.wasShown):
* inspector/front-end/ElementsPanel.js:
* inspector/front-end/FileSystemView.js:
(WebInspector.FileSystemView):
* inspector/front-end/MemoryStatistics.js:
(WebInspector.CounterUI):
(WebInspector.MemoryStatistics.prototype.setTopPosition):
(WebInspector.MemoryStatistics.prototype.setSidebarWidth):
(WebInspector.MemoryStatistics.prototype.visible):
(WebInspector.MemoryStatistics.prototype.show):
(WebInspector.MemoryStatistics.prototype.hide):
* inspector/front-end/NavigatorOverlayController.js:
(WebInspector.NavigatorOverlayController.prototype.set _pinNavigator):
(WebInspector.NavigatorOverlayController.prototype.set showNavigatorOverlay):
(WebInspector.NavigatorOverlayController.prototype.hideNavigatorOverlay):
(WebInspector.NavigatorOverlayController.prototype._innerHideNavigatorOverlay):
* inspector/front-end/NetworkPanel.js:
* inspector/front-end/Panel.js:
(WebInspector.Panel.prototype.createSidebarView):
(WebInspector.Panel.prototype.createSidebarViewWithTree):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel):
* inspector/front-end/ResourcesPanel.js:
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
* inspector/front-end/SidebarView.js: Added.
(WebInspector.SidebarView):
(WebInspector.SidebarView.prototype._hasLeftSidebar):
(WebInspector.SidebarView.prototype.get mainElement):
(WebInspector.SidebarView.prototype.get sidebarElement):
(WebInspector.SidebarView.prototype._innerSetSidebarPosition):
(WebInspector.SidebarView.prototype.setMinimalSidebarWidth):
(WebInspector.SidebarView.prototype.setMinimalMainWidthPercent):
(WebInspector.SidebarView.prototype.setSidebarWidth):
(WebInspector.SidebarView.prototype.sidebarWidth):
(WebInspector.SidebarView.prototype.onResize):
(WebInspector.SidebarView.prototype.applyConstraints):
(WebInspector.SidebarView.prototype.hideMainElement):
(WebInspector.SidebarView.prototype.showMainElement):
(WebInspector.SidebarView.prototype.hideSidebarElement):
(WebInspector.SidebarView.prototype.showSidebarElement):
(WebInspector.SidebarView.prototype.elementsToRestoreScrollPositionsFor):
* inspector/front-end/SplitView.js:
(WebInspector.SplitView):
(WebInspector.SplitView.prototype.firstElement):
(WebInspector.SplitView.prototype.secondElement):
(WebInspector.SplitView.prototype.setChangeFirstOnResize):
(WebInspector.SplitView.prototype.resizerElement):
(WebInspector.SplitView.prototype.showOnlyFirst):
(WebInspector.SplitView.prototype.showOnlySecond):
(WebInspector.SplitView.prototype._showOnly):
(WebInspector.SplitView.prototype._removeAllLayoutProperties):
(WebInspector.SplitView.prototype.showBoth):
(WebInspector.SplitView.prototype.setResizable):
(WebInspector.SplitView.prototype.setSplitOffset):
(WebInspector.SplitView.prototype.splitOffset):
(WebInspector.SplitView.prototype._innerSetSplitOffset):
(WebInspector.SplitView.prototype._startResizerDragging):
* inspector/front-end/TimelinePanel.js:
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
* inspector/front-end/splitView.css:
2012-11-09 Andrey Lushnikov <lushnikov@google.com>
Web Inspector: Ctrl+A in the network panel should select resource content, not the entire panel
https://bugs.webkit.org/show_bug.cgi?id=101591
Reviewed by Vsevolod Vlasov.
Intercept Ctrl+A event in DefaultTextEditor to select resource content
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype._registerShortcuts): Added Ctrl+A
(WebInspector.DefaultTextEditor.prototype._handleKeyDown): Intercept Ctrl+A even for readonly fields
(WebInspector.TextEditorMainPanel.prototype.handleSelectAll):
* inspector/front-end/KeyboardShortcut.js: Added SelectAll constant for Ctrl+A combination
2012-11-09 Dan Carney <dcarney@google.com>
[V8] Main world should have one DOMDataStore
https://bugs.webkit.org/show_bug.cgi?id=101470
Reviewed by Kentaro Hara.
The main world DOMWrapperWorld held onto a DOMDataStore that should
never be used, as there is a static one optimized for speed in
DOMDataStore.
No new tests. No change in functionality.
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
* bindings/v8/DOMWrapperWorld.h:
(WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
(WebCore::DOMWrapperWorld::DOMWrapperWorld):
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::getCachedWrapper):
2012-11-09 Alexei Filippov <alph@chromium.org>
Web Inspector: Navigating around NMI snapshot grid with keys breaks the grid
https://bugs.webkit.org/show_bug.cgi?id=101611
Reviewed by Yury Semikhatsky.
Keys navigation cause populate message sent to the node. The node should
not react on populate messages but the first one.
* inspector/front-end/NativeMemorySnapshotView.js:
2012-11-08 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Timeline: "Send Request" events are shown out of order.
https://bugs.webkit.org/show_bug.cgi?id=101544
Reviewed by Yury Semikhatsky.
Solution: replace obsolete out-of-order record pushing with frontend
record reparenting.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::willSendResourceRequest): Replaced
direct record pushing with standard appendRecord invokation.
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.prototype._findParentRecord):
Made "Send Request" records top-level if gluing is on.
2012-11-08 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134010.
http://trac.webkit.org/changeset/134010
https://bugs.webkit.org/show_bug.cgi?id=101716
Broke the chromium windows build. (Requested by noel_ on
#webkit).
* Modules/indexeddb/IDBAny.cpp:
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::createObjectStore):
(WebCore::IDBDatabase::deleteObjectStore):
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBDatabase.h:
(IDBDatabase):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
(WebCore):
(WebCore::IDBDatabaseBackendImpl::setVersion):
(WebCore::IDBDatabaseBackendImpl::transaction):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(WebCore):
(IDBDatabaseBackendInterface):
* Modules/indexeddb/IDBMetadata.h:
(WebCore::IDBObjectStoreMetadata::containsIndex):
(WebCore::IDBDatabaseMetadata::findObjectStore):
(IDBDatabaseMetadata):
(WebCore::IDBDatabaseMetadata::containsObjectStore):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::put):
(WebCore):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::deleteIndex):
* Modules/indexeddb/IDBObjectStore.h:
(WebCore::IDBObjectStore::openCursor):
(IDBObjectStore):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::put):
(WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
(WebCore):
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
(WebCore::IDBObjectStoreBackendImpl::index):
(WebCore::IDBObjectStoreBackendImpl::getIndexId):
(WebCore::IDBObjectStoreBackendImpl::getIndexIds):
(WebCore::IDBObjectStoreBackendImpl::deleteIndex):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(IDBObjectStoreBackendImpl):
* Modules/indexeddb/IDBObjectStoreBackendInterface.h:
(WebCore):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::objectStore):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::objectStore):
(WebCore):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionBackendInterface.h:
2012-11-08 Grzegorz Czajkowski <g.czajkowski@samsung.com>
[EFL] Add a method to the TextCheckerEnchant class to check whether any dictionary is loaded
https://bugs.webkit.org/show_bug.cgi?id=101570
Reviewed by Gustavo Noronha Silva.
Expose a new method to check whether a vector of loaded languages is empty.
WK2-EFL needs it to set the default language (if the client didn't set any) when
spelling setting is being enabled. This change makes it more convenient to check
whether the dictionaries vector is empty.
No new tests, no behavior change.
* platform/text/enchant/TextCheckerEnchant.cpp:
(TextCheckerEnchant::checkSpellingOfString):
(TextCheckerEnchant::getGuessesForWord):
(TextCheckerEnchant::loadedSpellCheckingLanguages):
A newly exposed method is used internally too.
* platform/text/enchant/TextCheckerEnchant.h:
(WebCore::TextCheckerEnchant::hasDictionary):
Add an inline hasDictionary() method.
2012-11-08 Shinya Kawanaka <shinyak@chromium.org>
[Refactoring] Remove shadowPseudoId() and use pseudo() instead in TextTrackCue
https://bugs.webkit.org/show_bug.cgi?id=101702
Reviewed by Hajime Morita.
We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from TextTrackCue and use
setPseudo()/pseudo() instead.
No new tests, simple refactoring.
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCueBox::TextTrackCueBox):
* html/track/TextTrackCue.h:
(TextTrackCueBox):
2012-11-08 Arpita Bahuguna <arpitabahuguna@gmail.com>
table not aligned in center column and seems shrunk because of float:right (table-layout: fixed and width: 100%)
https://bugs.webkit.org/show_bug.cgi?id=18153
Reviewed by Beth Dakin.
Preferred logical width is computed incorrectly for fixed layout tables
with 100% percent width, in standards mode.
According to our fixed table layout algorithm (CSS2 specification - 17.5.2.1)
the ultimate width of the table is the greater of the value of the
'width' property for the table elements and the sum of the column
widths.
For our specific scenario we have a fixed layout table with 100% width
consisting of columns with fixed widths, the sum of which is less than
the specified width of the table (i.e. 100% of the containing block).
Even then the applied width is the cummulative of the width of the
columns.
This happens because of the quirks mode check added in
FixedTableLayout::computePreferredLogicalWidths(), which prohibits the
setting of maxWidth to our fixed layout table with percent width, and
which perhaps is not required anymore.
Test: fast/table/fixed-table-layout/table-with-percent-width.html
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::computePreferredLogicalWidths):
Removed the quirks mode check.
2012-11-08 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r134004.
http://trac.webkit.org/changeset/134004
https://bugs.webkit.org/show_bug.cgi?id=101713
multiple crashes (Requested by hayato on #webkit).
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
(WebCore::RenderThemeMac::paintMediaFullscreenButton):
(WebCore::RenderThemeMac::paintMediaMuteButton):
(WebCore::RenderThemeMac::paintMediaPlayButton):
(WebCore::RenderThemeMac::paintMediaSeekBackButton):
(WebCore::RenderThemeMac::paintMediaSeekForwardButton):
(WebCore::RenderThemeMac::paintMediaSliderTrack):
(WebCore::RenderThemeMac::paintMediaSliderThumb):
(WebCore::RenderThemeMac::paintMediaRewindButton):
(WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
(WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
(WebCore::RenderThemeMac::paintMediaControlsBackground):
(WebCore::RenderThemeMac::paintMediaCurrentTime):
(WebCore::RenderThemeMac::paintMediaTimeRemaining):
(WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
(WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
(WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
(WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
(WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
2012-11-08 Jan Keromnes <janx@linux.com>
Web Inspector: stop using cursorCoords in CodeMirrorTextEditor
https://bugs.webkit.org/show_bug.cgi?id=101607
Reviewed by Vsevolod Vlasov.
API changes completing migration to v3.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor):
(WebInspector.CodeMirrorTextEditor.prototype.revealLine):
(WebInspector.CodeMirrorTextEditor.prototype.selection):
2012-11-08 Alexei Filippov <alph@chromium.org>
Web Inspector: make "Other" bar color darker in NMI snapshot.
https://bugs.webkit.org/show_bug.cgi?id=101602
Reviewed by Vsevolod Vlasov.
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.MemoryBlockViewProperties._initialize):
2012-11-08 Alec Flett <alecflett@chromium.org>
IndexedDB: switch frontend to use int64_t-based references
https://bugs.webkit.org/show_bug.cgi?id=100426
Reviewed by Tony Chang.
Remove String-based objectStore/index references, obsoleted by
https://bugs.webkit.org/show_bug.cgi?id=100425.
No new tests as this is the second half of a refactor.
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::deleteObjectStore):
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::setVersion):
(WebCore::IDBDatabaseBackendImpl::transaction):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(IDBDatabaseBackendInterface):
* Modules/indexeddb/IDBMetadata.h:
(WebCore::IDBObjectStoreMetadata::findIndex):
(IDBObjectStoreMetadata):
(WebCore::IDBObjectStoreMetadata::containsIndex):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::put):
(WebCore):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::deleteIndex):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::put):
(WebCore):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(IDBObjectStoreBackendImpl):
* Modules/indexeddb/IDBObjectStoreBackendInterface.h:
* inspector/Inspector-1.0.json:
* inspector/Inspector.json:
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore):
(WebCore::InspectorIndexedDBAgent::requestData):
* inspector/InspectorIndexedDBAgent.h:
(InspectorIndexedDBAgent):
2012-11-08 Shinya Kawanaka <shinyak@chromium.org>
[Refactoring] Expose collectFeaturesFromSelector from RuleSet.cpp
https://bugs.webkit.org/show_bug.cgi?id=101692
Reviewed by Dimitri Glazkov.
We expose collectFeaturesFromSelector in RuleSet.cpp to use it for collecting ShadowDOM select attribute features.
No new tests, simple refactoring.
* css/RuleFeature.cpp:
(WebCore::RuleFeatureSet::collectFeaturesFromSelector): Moved from RuleSet.cpp.
(WebCore):
* css/RuleFeature.h:
(WebCore):
(RuleFeatureSet):
* css/RuleSet.cpp:
(WebCore::collectFeaturesFromRuleData):
2012-11-08 Robert Sesek <rsesek@chromium.org>
Guard calls to WebKitSystemInterface media control drawing functions in RenderThemeMac with PLATFORM(MAC)
https://bugs.webkit.org/show_bug.cgi?id=101634
Reviewed by Adam Barth.
No new tests, just disabling unused code in Chromium port.
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
(WebCore::RenderThemeMac::paintMediaFullscreenButton):
(WebCore::RenderThemeMac::paintMediaMuteButton):
(WebCore::RenderThemeMac::paintMediaPlayButton):
(WebCore::RenderThemeMac::paintMediaSeekBackButton):
(WebCore::RenderThemeMac::paintMediaSeekForwardButton):
(WebCore::RenderThemeMac::paintMediaSliderTrack):
(WebCore::RenderThemeMac::paintMediaSliderThumb):
(WebCore::RenderThemeMac::paintMediaRewindButton):
(WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
(WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
(WebCore::RenderThemeMac::paintMediaControlsBackground):
(WebCore::RenderThemeMac::paintMediaCurrentTime):
(WebCore::RenderThemeMac::paintMediaTimeRemaining):
(WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
(WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
(WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
(WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
(WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
2012-11-08 Keishi Hattori <keishi@webkit.org>
Enable calendar picker for input types week/month
https://bugs.webkit.org/show_bug.cgi?id=101553
Reviewed by Kent Tamura.
Enabling calendar picker for <input type=week/month>
No new tests. Tests will be added later in Bug 101556 and Bug 101555.
* rendering/RenderThemeChromiumCommon.cpp:
(WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):
2012-11-08 Robin Cao <robin.cao@torchmobile.com.cn>
[BlackBerry] Change the default return value of MediaPlayerPrivate::hasSingleSecurityOrigin
https://bugs.webkit.org/show_bug.cgi?id=101681
Reviewed by George Staikos.
Since the platform player in BlackBerry disallows resources that come from different origins,
so it's safe to directly returns true here.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::hasSingleSecurityOrigin):
2012-11-08 Mark Lam <mark.lam@apple.com>
Renamed ...InlineMethods.h files to ...Inlines.h.
https://bugs.webkit.org/show_bug.cgi?id=101145.
Reviewed by Geoffrey Garen.
This is only a refactoring effort to rename the files. There are no
functionality changes.
No new tests.
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/HTMLEntityParser.cpp:
* html/parser/HTMLTokenizer.cpp:
* html/track/WebVTTTokenizer.cpp:
* xml/parser/CharacterReferenceParserInlineMethods.h: Removed.
* xml/parser/CharacterReferenceParserInlines.h: Copied from Source/WebCore/xml/parser/CharacterReferenceParserInlineMethods.h.
* xml/parser/MarkupTokenizerInlineMethods.h: Removed.
* xml/parser/MarkupTokenizerInlines.h: Copied from Source/WebCore/xml/parser/MarkupTokenizerInlineMethods.h.
* xml/parser/XMLCharacterReferenceParser.cpp:
* xml/parser/XMLTokenizer.cpp:
2012-11-08 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133984.
http://trac.webkit.org/changeset/133984
https://bugs.webkit.org/show_bug.cgi?id=101684
windows build error. (Requested by hayato on #webkit).
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::createObjectStore):
(WebCore::IDBDatabase::deleteObjectStore):
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBDatabase.h:
(IDBDatabase):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
(WebCore):
(WebCore::IDBDatabaseBackendImpl::setVersion):
(WebCore::IDBDatabaseBackendImpl::transaction):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(IDBDatabaseBackendInterface):
* Modules/indexeddb/IDBMetadata.h:
(WebCore::IDBObjectStoreMetadata::containsIndex):
(WebCore::IDBDatabaseMetadata::findObjectStore):
(IDBDatabaseMetadata):
(WebCore::IDBDatabaseMetadata::containsObjectStore):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::put):
(WebCore):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::deleteIndex):
* Modules/indexeddb/IDBObjectStore.h:
(WebCore::IDBObjectStore::openCursor):
(IDBObjectStore):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::put):
(WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
(WebCore):
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
(WebCore::IDBObjectStoreBackendImpl::index):
(WebCore::IDBObjectStoreBackendImpl::getIndexId):
(WebCore::IDBObjectStoreBackendImpl::getIndexIds):
(WebCore::IDBObjectStoreBackendImpl::deleteIndex):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(IDBObjectStoreBackendImpl):
* Modules/indexeddb/IDBObjectStoreBackendInterface.h:
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::objectStore):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::objectStore):
(WebCore):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionBackendInterface.h:
2012-11-08 Shinya Kawanaka <shinyak@chromium.org>
HTMLContentElement should preserve parsed CSSSelectorList
https://bugs.webkit.org/show_bug.cgi?id=101543
Reviewed by Dimitri Glazkov.
We would like to preserve CSSSelectorList for select attribute of HTMLContentElement.
Before, we parsed and validated select attribute every time distribution happens. If we preserve the parsed
CSSSelectorList, we can reduce distribution time.
This is also a prepration patch for Bug 101180. It also needs the parsed CSSSelectorList. We don't want to
parse and validate it again.
No new tests, covered by exising tests.
* html/shadow/ContentSelectorQuery.cpp:
(WebCore::ContentSelectorQuery::ContentSelectorQuery): We don't parse select attribute here anymore.
if it's already parsed.
(WebCore::ContentSelectorQuery::matches):
* html/shadow/ContentSelectorQuery.h:
(ContentSelectorQuery):
* html/shadow/HTMLContentElement.cpp:
(WebCore::HTMLContentElement::HTMLContentElement):
(WebCore::HTMLContentElement::isSelectValid):
(WebCore::HTMLContentElement::ensureSelectParsed): If we don't have parsed the current select attribute,
we parse and validate it.
(WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, we have to have a flag enabled
to parse select attrite again.
(WebCore::validateSubSelector): Moved from ContentSelectorQuery.
(WebCore):
(WebCore::validateSelector): Moved from ContentSelectorQuery.
(WebCore::HTMLContentElement::validateSelect):
* html/shadow/HTMLContentElement.h:
(HTMLContentElement):
(WebCore::HTMLContentElement::setSelect):
(WebCore):
(WebCore::HTMLContentElement::selectorList):
* html/shadow/HTMLShadowElement.cpp:
(WebCore::HTMLShadowElement::emptySelectorList):
(WebCore):
* html/shadow/HTMLShadowElement.h:
(HTMLShadowElement):
(WebCore::HTMLShadowElement::selectorList):
* html/shadow/InsertionPoint.h:
(InsertionPoint):
2012-11-08 Alec Flett <alecflett@chromium.org>
IndexedDB: switch frontend to use int64_t-based references
https://bugs.webkit.org/show_bug.cgi?id=100426
Reviewed by Tony Chang.
Remove String-based objectStore/index references, obsoleted by
https://bugs.webkit.org/show_bug.cgi?id=100425.
No new tests as this is the second half of a refactor.
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::deleteObjectStore):
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::setVersion):
(WebCore::IDBDatabaseBackendImpl::transaction):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(IDBDatabaseBackendInterface):
* Modules/indexeddb/IDBMetadata.h:
(WebCore::IDBObjectStoreMetadata::findIndex):
(IDBObjectStoreMetadata):
(WebCore::IDBObjectStoreMetadata::containsIndex):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::put):
(WebCore):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::deleteIndex):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::put):
(WebCore):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(IDBObjectStoreBackendImpl):
* Modules/indexeddb/IDBObjectStoreBackendInterface.h:
* inspector/Inspector-1.0.json:
* inspector/Inspector.json:
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore):
(WebCore::InspectorIndexedDBAgent::requestData):
* inspector/InspectorIndexedDBAgent.h:
(InspectorIndexedDBAgent):
2012-11-08 Kenichi Ishibashi <bashi@chromium.org>
[Chromium] Arabic digits should appear left-to-right
https://bugs.webkit.org/show_bug.cgi?id=101440
Reviewed by Tony Chang.
Call hb_buffer_set_direction() to set direction when drawing glyphs or
direction should be overridden. Leave direction setting to HarfBuzz when
WebKit is calculating widths because the direction is LTR by default while
calculating widths. Set script before shaping so that HarfBuzz can estimate
appropriate direction.
Test: fast/text/international/arabic-digits.html
* platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
Add m_script. This holds the script of the run.
(WebCore::HarfBuzzShaper::shape):
Tell shapeHarfBuzzRuns() to set direction when drawing glyphs or
direction should be overridden.
(WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
Set script of HarfBuzzRuns.
(WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
Add an argument that indicates it should set direction.
* platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
(WebCore::HarfBuzzShaper::HarfBuzzRun::create):
(WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
(WebCore::HarfBuzzShaper::HarfBuzzRun::script):
(HarfBuzzRun):
(HarfBuzzShaper):
2012-11-08 Huang Dongsung <luxtella@company100.net>
[TexMap] Remove contentsLayer() in GraphicsLayerTextureMapper.
https://bugs.webkit.org/show_bug.cgi?id=101658
Reviewed by Noam Rosenthal.
GraphicsLayerTextureMapper::contentsLayer() is duplicated to
GraphicsLayer::platformLayer(), so we remove it.
No new tests, this is just a refactor.
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(WebCore::GraphicsLayerTextureMapper::platformLayer):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::flushCompositingStateSelf):
2012-11-08 Benjamin Poulain <benjamin@webkit.org>
Improve the use of AtomicString with literals
https://bugs.webkit.org/show_bug.cgi?id=101298
Reviewed by Darin Adler.
Fix a bunch of cases of AtomicString with literals:
-Do not create temporary AtomicString to perform a comparison, that is very wasteful.
-Use the ConstructFromLiteral constructor whenever it makes sense.
-Make "x-frame-options" static instead of creating it for each response.
-Use ASCIILiteral() instead of AtomicString() in EventHandler, the function takes a String,
not an AtomicString.
* Modules/battery/BatteryController.cpp:
(WebCore::BatteryController::supplementName):
* Modules/battery/NavigatorBattery.cpp:
(WebCore::NavigatorBattery::from):
* Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
(WebCore::DraggedIsolatedFileSystem::supplementName):
* Modules/gamepad/NavigatorGamepad.cpp:
(WebCore::NavigatorGamepad::from):
* Modules/geolocation/GeolocationController.cpp:
(WebCore::GeolocationController::supplementName):
* Modules/geolocation/NavigatorGeolocation.cpp:
(WebCore::NavigatorGeolocation::from):
* Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
(WebCore::DOMWindowIndexedDatabase::from):
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::directionNext):
(WebCore::IDBCursor::directionNextUnique):
(WebCore::IDBCursor::directionPrev):
(WebCore::IDBCursor::directionPrevUnique):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::readyState):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::modeReadOnly):
(WebCore::IDBTransaction::modeReadWrite):
(WebCore::IDBTransaction::modeVersionChange):
(WebCore::IDBTransaction::modeReadOnlyLegacy):
(WebCore::IDBTransaction::modeReadWriteLegacy):
* Modules/indexeddb/PageGroupIndexedDatabase.cpp:
(WebCore::PageGroupIndexedDatabase::from):
* Modules/intents/DOMWindowIntents.cpp:
(WebCore::DOMWindowIntents::from):
* Modules/mediastream/UserMediaController.cpp:
(WebCore::UserMediaController::supplementName):
* Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
(WebCore::NavigatorContentUtils::supplementName):
* Modules/networkinfo/NavigatorNetworkInfoConnection.cpp:
(WebCore::NavigatorNetworkInfoConnection::from):
* Modules/networkinfo/NetworkInfoController.cpp:
(WebCore::NetworkInfoController::supplementName):
* Modules/notifications/DOMWindowNotifications.cpp:
(WebCore::DOMWindowNotifications::from):
* Modules/notifications/NotificationController.cpp:
(WebCore::NotificationController::supplementName):
* Modules/quota/DOMWindowQuota.cpp:
(WebCore::DOMWindowQuota::from):
* Modules/speech/SpeechRecognitionController.cpp:
(WebCore::SpeechRecognitionController::supplementName):
* Modules/vibration/Vibration.cpp:
(WebCore::Vibration::supplementName):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::invalidStatus):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::ariaLiveRegionStatus):
(WebCore::AccessibilityRenderObject::ariaLiveRegionRelevant):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::namedSecurityCheck):
* bindings/v8/custom/V8NodeListCustom.cpp:
(WebCore::V8NodeList::namedPropertyGetter):
* dom/ContextFeatures.cpp:
(WebCore::ContextFeatures::supplementName):
* dom/DeviceMotionController.cpp:
(WebCore::DeviceMotionController::supplementName):
* dom/DeviceOrientationController.cpp:
(WebCore::DeviceOrientationController::supplementName):
* dom/Element.cpp:
(WebCore::Element::webkitRegionOverset):
* dom/MutationRecord.cpp:
* html/FileInputType.cpp:
(WebCore::UploadButtonElement::shadowPseudoId):
* html/FormController.cpp:
(WebCore::SavedFormState::getReferencedFilePaths):
(WebCore::FormKeyGenerator::formKey):
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::formControlType):
* html/HTMLDetailsElement.cpp:
(WebCore::summaryQuerySelector):
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::formControlType):
* html/HTMLKeygenElement.cpp:
(WebCore::KeygenSelectElement::shadowPseudoId):
(WebCore::HTMLKeygenElement::formControlType):
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::formControlType):
* html/HTMLOutputElement.cpp:
(WebCore::HTMLOutputElement::formControlType):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::formControlType):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::formControlType):
* html/HTMLTextFormControlElement.cpp:
(WebCore::directionString):
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditElement::DateTimeEditElement):
* html/shadow/DateTimeFieldElements.cpp:
(WebCore::DateTimeAMPMFieldElement::create):
(WebCore::DateTimeDayFieldElement::create):
(WebCore::DateTimeHourFieldElement::create):
(WebCore::DateTimeMillisecondFieldElement::create):
(WebCore::DateTimeMinuteFieldElement::create):
(WebCore::DateTimeMonthFieldElement::create):
(WebCore::DateTimeSecondFieldElement::create):
(WebCore::DateTimeSymbolicMonthFieldElement::create):
(WebCore::DateTimeWeekFieldElement::create):
(WebCore::DateTimeYearFieldElement::create):
* html/shadow/DetailsMarkerControl.cpp:
(WebCore::DetailsMarkerControl::shadowPseudoId):
* html/shadow/ImageInnerElement.cpp:
(WebCore::ImageInnerElement::shadowPseudoId):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlPanelElement::shadowPseudoId):
(WebCore::MediaControlTimelineContainerElement::shadowPseudoId):
(WebCore::MediaControlVolumeSliderContainerElement::shadowPseudoId):
(WebCore::MediaControlStatusDisplayElement::shadowPseudoId):
(WebCore::MediaControlPanelMuteButtonElement::shadowPseudoId):
(WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId):
(WebCore::MediaControlPlayButtonElement::shadowPseudoId):
(WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId):
(WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId):
(WebCore::MediaControlSeekBackButtonElement::shadowPseudoId):
(WebCore::MediaControlRewindButtonElement::shadowPseudoId):
(WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
(WebCore::MediaControlTimelineElement::shadowPseudoId):
(WebCore::MediaControlVolumeSliderElement::shadowPseudoId):
(WebCore::MediaControlFullscreenVolumeSliderElement::shadowPseudoId):
(WebCore::MediaControlFullscreenButtonElement::shadowPseudoId):
(WebCore::MediaControlFullscreenVolumeMinButtonElement::shadowPseudoId):
(WebCore::MediaControlFullscreenVolumeMaxButtonElement::shadowPseudoId):
(WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId):
(WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId):
(WebCore::MediaControlTextTrackContainerElement::shadowPseudoId):
* html/shadow/MediaControlRootElement.cpp:
(WebCore::MediaControlRootElement::shadowPseudoId):
* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlPanelEnclosureElement::shadowPseudoId):
(WebCore::MediaControlRootElementChromium::shadowPseudoId):
* html/shadow/MediaControlRootElementChromiumAndroid.cpp:
(WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId):
* html/shadow/MeterShadowElement.cpp:
(WebCore::MeterInnerElement::shadowPseudoId):
(WebCore::MeterBarElement::shadowPseudoId):
(WebCore::MeterValueElement::shadowPseudoId):
* html/shadow/ProgressShadowElement.cpp:
(WebCore::ProgressInnerElement::shadowPseudoId):
(WebCore::ProgressBarElement::shadowPseudoId):
(WebCore::ProgressValueElement::shadowPseudoId):
* html/shadow/SliderThumbElement.cpp:
(WebCore::sliderThumbShadowPseudoId):
(WebCore::mediaSliderThumbShadowPseudoId):
(WebCore::SliderContainerElement::shadowPseudoId):
* html/shadow/SpinButtonElement.cpp:
(WebCore::SpinButtonElement::shadowPseudoId):
* html/shadow/TextControlInnerElements.cpp:
(WebCore::SearchFieldResultsButtonElement::shadowPseudoId):
(WebCore::SearchFieldCancelButtonElement::shadowPseudoId):
(WebCore::InputFieldSpeechButtonElement::shadowPseudoId):
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId):
* loader/CrossOriginAccessControl.cpp:
(WebCore::passesAccessControlCheck):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::didReceiveResponse):
* loader/PrerendererClient.cpp:
(WebCore::PrerendererClient::supplementName):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::updateResponseAfterRevalidation):
* page/DOMWindowPagePopup.cpp:
(WebCore::DOMWindowPagePopup::supplementName):
* page/EventHandler.cpp:
(WebCore::EventHandler::handlePasteGlobalSelection):
(WebCore::focusDirectionForKey):
* page/SpeechInput.cpp:
(WebCore::SpeechInput::supplementName):
* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::updateKeyframeAnimations):
* platform/graphics/FontCache.cpp:
(WebCore::alternateFamilyName):
* platform/graphics/MediaPlayer.cpp:
(WebCore::applicationOctetStream):
(WebCore::textPlain):
(WebCore::codecs):
* platform/graphics/chromium/FontCacheAndroid.cpp:
(WebCore::FontCache::getLastResortFallbackFont):
* platform/graphics/filters/SourceAlpha.cpp:
(WebCore::SourceAlpha::effectName):
* platform/graphics/filters/SourceGraphic.cpp:
(WebCore::SourceGraphic::effectName):
* platform/graphics/mac/FontCacheMac.mm:
(WebCore::FontCache::getSimilarFontPlatformData):
(WebCore::FontCache::getLastResortFallbackFont):
* platform/graphics/skia/FontCacheSkia.cpp:
(WebCore::FontCache::getLastResortFallbackFont):
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::getLastResortFallbackFont):
* platform/graphics/wx/FontCacheWx.cpp:
(WebCore::FontCache::getSimilarFontPlatformData):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::setHTTPHeaderField):
(WebCore::ResourceResponseBase::parseCacheControlDirectives):
(WebCore::ResourceResponseBase::hasCacheValidatorFields):
(WebCore::ResourceResponseBase::date):
(WebCore::ResourceResponseBase::age):
(WebCore::ResourceResponseBase::expires):
(WebCore::ResourceResponseBase::lastModified):
(WebCore::ResourceResponseBase::isAttachment):
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::getAvgCharWidth):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::getAvgCharWidth):
(WebCore::RenderTextControlSingleLine::preferredContentWidth):
* svg/SVGAnimateColorElement.cpp:
(WebCore::attributeValueIsCurrentColor):
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::rotateMode):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::setCalcMode):
(WebCore::SVGAnimationElement::setAttributeType):
(WebCore::SVGAnimationElement::isAdditive):
(WebCore::SVGAnimationElement::isAccumulated):
(WebCore::inheritsFromProperty):
* svg/SVGFEConvolveMatrixElement.cpp:
(WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthXIdentifier):
(WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthYIdentifier):
(WebCore::SVGFEConvolveMatrixElement::orderXIdentifier):
(WebCore::SVGFEConvolveMatrixElement::orderYIdentifier):
* svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthXIdentifier):
(WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthYIdentifier):
* svg/SVGFEDropShadowElement.cpp:
(WebCore::SVGFEDropShadowElement::stdDeviationXIdentifier):
(WebCore::SVGFEDropShadowElement::stdDeviationYIdentifier):
* svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::stdDeviationXIdentifier):
(WebCore::SVGFEGaussianBlurElement::stdDeviationYIdentifier):
* svg/SVGFEMorphologyElement.cpp:
(WebCore::SVGFEMorphologyElement::radiusXIdentifier):
(WebCore::SVGFEMorphologyElement::radiusYIdentifier):
* svg/SVGFESpecularLightingElement.cpp:
(WebCore::SVGFESpecularLightingElement::kernelUnitLengthXIdentifier):
(WebCore::SVGFESpecularLightingElement::kernelUnitLengthYIdentifier):
* svg/SVGFETurbulenceElement.cpp:
(WebCore::SVGFETurbulenceElement::baseFrequencyXIdentifier):
(WebCore::SVGFETurbulenceElement::baseFrequencyYIdentifier):
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::filterResXIdentifier):
(WebCore::SVGFilterElement::filterResYIdentifier):
* svg/SVGLangSpace.cpp:
(WebCore::SVGLangSpace::xmlspace):
(WebCore::SVGLangSpace::addSupportedAttributes):
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::orientTypeIdentifier):
(WebCore::SVGMarkerElement::orientAngleIdentifier):
(WebCore::SVGMarkerElement::synchronizeOrientType):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::contentScriptType):
(WebCore::SVGSVGElement::contentStyleType):
* svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::type):
(WebCore::SVGStyleElement::media):
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::collectStyleForAttribute):
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::viewBoxIdentifier):
(WebCore::SVGViewSpec::preserveAspectRatioIdentifier):
(WebCore::SVGViewSpec::transformIdentifier):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::parseClockValue):
(WebCore::SVGSMILElement::restart):
(WebCore::SVGSMILElement::fill):
(WebCore::SVGSMILElement::repeatCount):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::from):
* xml/parser/XMLTreeBuilder.cpp:
(WebCore::XMLTreeBuilder::processDOCTYPE):
(WebCore::XMLTreeBuilder::processXMLEntity):
2012-11-08 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=101644
Fixed header on Facebook news feed becomes detached from top of
viewport after rubber band scrolling
-and corresponding-
<rdar://problem/12651944>
Reviewed by Simon Fraser.
There is code to handle this for non-threaded scrolling on FrameView.
This patch moves most of that code into a convenience function on
ScrollingCoordinator.
Have FrameView::scrollOffsetForFixedPosition() call
WebCore::scrollOffsetForFixedPosition() with all the right
parameters.
* page/FrameView.cpp:
(WebCore::FrameView::scrollOffsetForFixedPosition):
Here's where all the math happens.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::fixedPositionScrollOffset):
(WebCore::scrollOffsetForFixedPosition):
The viewportRect in these three places needs to have the
adjusted-for-fixed offset.
(WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
2012-11-08 Alpha Lam <hclam@chromium.org>
[chromium] Deferred image decoding fails with image orientation
https://bugs.webkit.org/show_bug.cgi?id=101648
Reviewed by Stephen White.
When an image is deferred save the orientation state. Once this state
is cached it can be used to reply future queries since this state is
static.
No new tests but platform/chromium/virtual/deferred/fast/images/image-orientation.html is passing now.
* platform/graphics/chromium/DeferredImageDecoder.cpp:
(WebCore::DeferredImageDecoder::DeferredImageDecoder):
(WebCore::DeferredImageDecoder::frameBufferAtIndex):
(WebCore::DeferredImageDecoder::orientation):
* platform/graphics/chromium/DeferredImageDecoder.h:
(DeferredImageDecoder):
2012-11-08 Andreas Kling <kling@webkit.org>
DocumentLoader: Shrink-to-fit the ResourceResponse vector after loading completes.
<http://webkit.org/b/101657>
Reviewed by Anders Carlsson.
Shrink DocumentLoader::m_responses to exact size when we stop adding responses to it,
as we know it won't grow after that.
520kB progression on Membuster3.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopRecordingResponses):
2012-11-08 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Polygon with horizontal bottom edges returns incorrect segments
https://bugs.webkit.org/show_bug.cgi?id=100874
Reviewed by Dirk Schulze.
Revised the way that computeXIntersections() handles intersections with horizotal polygon edges.
Deciding if a vertex intersection corresponds to a polygon "edge crossing", i.e. a change from inside
to outside or outside to inside, now depends on which side of the horizontal line the function's
y parameter corresponds to. If the y corresponds to the top of the line, then isaMinY the parameter
is true, and an intersection with a horizontal edge is only considered to be an edge crossing if
if the inside of the polygon is just below the horizontal edge. When isMinY is false then the inside
of the polygon must be just above the horizontal edge.
Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-003.html
fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-004.html
* rendering/ExclusionPolygon.cpp:
(WebCore::getVertexIntersectionVertices): Corrected two cases where the next/previous vertex was determined incorrectly.
(WebCore::ExclusionPolygon::computeXIntersections): Added a bool isMinY parameter which specifies if the y parameter corresponds to the top or bottom a horizontal line.
(WebCore::ExclusionPolygon::getExcludedIntervals): Added the new computeXIntersections() parameter.
(WebCore::ExclusionPolygon::getIncludedIntervals): Ditto.
* rendering/ExclusionPolygon.h:
(WebCore::ExclusionPolygonEdge::previousEdge): Corrected the previousEdge() function.
2012-11-08 Otto Derek Cheung <otcheung@rim.com>
[BlackBerry] Disable cookies on file://
https://bugs.webkit.org/show_bug.cgi?id=101646
Reviewed by Rob Buis.
Disabling cookies on file and local in the browser app.
PR 239779
Tested by trying to set and retrieve cookies on WI while browsing
files on the file scheme.
* platform/blackberry/CookieManager.cpp:
(WebCore):
(WebCore::shouldIgnoreScheme):
(WebCore::CookieManager::getRawCookies):
(WebCore::CookieManager::checkAndTreatCookie):
2012-11-08 Joshua Bell <jsbell@chromium.org>
Expose snapshots in platform/leveldb wrapper API
https://bugs.webkit.org/show_bug.cgi?id=100786
Reviewed by Tony Chang.
Expose leveldb "snapshots" in the LevelDB API. A snapshot lets you observe the database
as it was when the snapshot was taken. This can be used to implement parallel transactions,
e.g. where a read transaction won't see updates made by a later write transaction.
Tests: webkit_unit_tests --gtest_filter='LevelDBDatabaseTest.Transaction*'
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::LevelDBSnapshot::LevelDBSnapshot): New (but for now internal-only) wrapper type.
(WebCore):
(WebCore::LevelDBSnapshot::~LevelDBSnapshot): Release the leveldb::Snapshot.
(WebCore::LevelDBDatabase::get): Optional snapshot argument, for use by transactions.
(WebCore::LevelDBDatabase::createIterator): Ditto.
* platform/leveldb/LevelDBDatabase.h:
(leveldb):
(WebCore):
(LevelDBSnapshot):
(LevelDBDatabase):
* platform/leveldb/LevelDBTransaction.cpp:
(WebCore::LevelDBTransaction::LevelDBTransaction): Initialize a snapshot.
(WebCore::LevelDBTransaction::get):
(WebCore::LevelDBTransaction::TransactionIterator::TransactionIterator):
* platform/leveldb/LevelDBTransaction.h:
(LevelDBTransaction):
2012-11-08 Brady Eidson <beidson@apple.com>
Have NetworkProcess do the actual loading of subresources.
https://bugs.webkit.org/show_bug.cgi?id=101640
Reviewed by Alexey Proskuryakov.
No new tests (No change in behavior in any configuration we test.)
* WebCore.exp.in:
* loader/ResourceBuffer.h: Virtualize a few methods for ports to override.
2012-11-08 Huang Dongsung <luxtella@company100.net>
Coordinated Graphics: Remove an invisible TiledBackingStore of CoordinatedGraphicsLayer.
https://bugs.webkit.org/show_bug.cgi?id=101424
Reviewed by Noam Rosenthal.
This patch adds ASSERT to TextureMapperLayer while fixing this bug in
WebKit2.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelf):
2012-11-08 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133945.
http://trac.webkit.org/changeset/133945
https://bugs.webkit.org/show_bug.cgi?id=101645
Numerous layout and unit test failures (Requested by
jsbell|gardener on #webkit).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* bindings/scripts/test/V8/V8Float64Array.h:
(WebCore::V8Float64Array::toNative):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore::V8TestActiveDOMObject::toNative):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore::V8TestCustomNamedGetter::toNative):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore::V8TestEventConstructor::toNative):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore::V8TestEventTarget::toNative):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore::V8TestException::toNative):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::V8TestInterface::toNative):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::V8TestMediaQueryListListener::toNative):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::V8TestNamedConstructor::toNative):
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::V8TestNode::toNative):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore::V8TestObj::toNative):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::V8TestSerializedScriptValueInterface::toNative):
* bindings/v8/NPV8Object.cpp:
(WebCore::v8ObjectToNPObject):
(WebCore::npCreateV8ScriptObject):
* bindings/v8/V8Collection.h:
(WebCore::toNativeCollection):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::setIsolatedWorldField):
(WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::isWrapperOfType):
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::setDOMWrapper):
(WebCore::V8DOMWrapper::clearDOMWrapper):
* bindings/v8/WrapperTypeInfo.h:
(WebCore::toNative):
(WebCore::toWrapperTypeInfo):
2012-11-01 Filip Pizlo <fpizlo@apple.com>
JSC should infer when indexed storage contains only integers or doubles
https://bugs.webkit.org/show_bug.cgi?id=98606
Reviewed by Oliver Hunt.
Just refactoring WebCore to pass 0 for the ArrayAllocationProfile*.
* bindings/js/JSCanvasRenderingContext2DCustom.cpp:
(WebCore::JSCanvasRenderingContext2D::webkitLineDash):
* bindings/js/JSClipboardCustom.cpp:
(WebCore::JSClipboard::types):
* bindings/js/JSDOMBinding.cpp:
(WebCore::jsArray):
* bindings/js/JSDOMBinding.h:
(WebCore::jsArray):
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::getJSListenerFunctions):
* bindings/js/JSJavaScriptCallFrameCustom.cpp:
(WebCore::JSJavaScriptCallFrame::scopeChain):
* bindings/js/JSMessageEventCustom.cpp:
(WebCore::JSMessageEvent::ports):
* bindings/js/JSMutationCallbackCustom.cpp:
(WebCore::JSMutationCallback::handleEvent):
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::toJS):
(WebCore::JSWebGLRenderingContext::getAttachedShaders):
(WebCore::JSWebGLRenderingContext::getSupportedExtensions):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::deserialize):
2012-11-08 Tiancheng Jiang <tijiang@rim.com>
[BlackBerry] Update BB10 date input form.
https://bugs.webkit.org/show_bug.cgi?id=101075
Reviewed by Rob Buis.
RIM PR 234531
Internally Reviewed by Mike Fenton.
Change date input appearance to button and hide caret when click on them.
* css/themeBlackBerry.css:
(input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
2012-11-08 Adam Barth <abarth@webkit.org>
[V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
https://bugs.webkit.org/show_bug.cgi?id=101519
Reviewed by Ojan Vafai.
There should be no change in behavior. The new API is slightly faster
than the old API (and apparently works correctly internally in V8).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* bindings/scripts/test/V8/V8Float64Array.h:
(WebCore::V8Float64Array::toNative):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore::V8TestActiveDOMObject::toNative):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore::V8TestCustomNamedGetter::toNative):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore::V8TestEventConstructor::toNative):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore::V8TestEventTarget::toNative):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore::V8TestException::toNative):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::V8TestInterface::toNative):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::V8TestMediaQueryListListener::toNative):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::V8TestNamedConstructor::toNative):
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::V8TestNode::toNative):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore::V8TestObj::toNative):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::V8TestSerializedScriptValueInterface::toNative):
* bindings/v8/NPV8Object.cpp:
(WebCore::v8ObjectToNPObject):
(WebCore::npCreateV8ScriptObject):
* bindings/v8/V8Collection.h:
(WebCore::toNativeCollection):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::setIsolatedWorldField):
(WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::isWrapperOfType):
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::setDOMWrapper):
(WebCore::V8DOMWrapper::clearDOMWrapper):
* bindings/v8/WrapperTypeInfo.h:
(WebCore::toNative):
(WebCore::toWrapperTypeInfo):
2012-11-08 Erik Arvidsson <arv@chromium.org>
setAttributeNode and friends should not have optional argument
https://bugs.webkit.org/show_bug.cgi?id=101631
Reviewed by Ojan Vafai.
http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-887236154
Fix getAttributeNode, getAttributeNodeNS and removeAttributeNode to make the Attr
argument mandatory.
These used to throw DOMExceptions when an invalid type was passed instead of
TypeError which is also a spec violation.
Updated existing tests.
* bindings/scripts/CodeGeneratorV8.pm:
* dom/Element.cpp:
* dom/Element.idl:
2012-11-08 Joshua Bell <jsbell@chromium.org>
IndexedDB: Remove unused error handling clauses when writing to transaction
https://bugs.webkit.org/show_bug.cgi?id=100700
Reviewed by Tony Chang.
Transactions are written into in-memory data structures. This can only fail if allocation
fails, so "success" results are always returned. Change the return types to void, and delete
all of the unreachable error handling code.
No new tests - just refactoring/dead code removal.
* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
(WebCore::putBool): Only write to transactions.
(WebCore):
(WebCore::putInt): Ditto.
(WebCore::putVarInt): Ditto.
(WebCore::putString): Ditto.
(WebCore::putIDBKeyPath): Ditto.
(WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
(WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
(WebCore::deleteRange): Writes only to transaction, so can't fail.
(WebCore::setMaxObjectStoreId):
(WebCore::IDBLevelDBBackingStore::createObjectStore):
(WebCore::getNewVersionNumber):
(WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
(WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::setMaxIndexId):
(WebCore::IDBLevelDBBackingStore::createIndex):
(WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
* platform/leveldb/LevelDBTransaction.cpp:
(WebCore::LevelDBTransaction::set): Return type is void.
(WebCore::LevelDBTransaction::put): Ditto.
(WebCore::LevelDBTransaction::remove): Ditto.
* platform/leveldb/LevelDBTransaction.h:
(LevelDBTransaction):
2012-11-08 Ryosuke Niwa <rniwa@webkit.org>
On Chromium, click-after-nested-block.html, focus_editable_html.html, and autoscroll.html
hit assertion added in r133840
https://bugs.webkit.org/show_bug.cgi?id=101576
Reviewed by Abhishek Arya.
Update layout before invalidating caret rect as needed.
Existing tests cover this.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setCaretVisibility): Merged clearCaretRectIfNeeded.
* editing/FrameSelection.h:
2012-11-08 Elliott Sprehn <esprehn@chromium.org>
Skip frame owner disconnect when there's no frames
https://bugs.webkit.org/show_bug.cgi?id=101619
Reviewed by Ojan Vafai.
Even when there's no subframes in the document we traverse down every
subtree on Node removal looking for frames to disconnect. This patch
checks document()->frame()->tree()->firstChild() to skip this traversal
if there's no subframes.
No new tests, this just short circuits code for speed.
* dom/ContainerNodeAlgorithms.h:
(WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
2012-11-08 Erik Arvidsson <arv@chromium.org>
Wrong error type is thrown for type errors in callbacks
https://bugs.webkit.org/show_bug.cgi?id=101502
Reviewed by Adam Barth.
We should be throwing a TypeError and not a DOMException with code TYPE_MISMATCH_ERR.
http://www.w3.org/TR/WebIDL/#es-callback-function
Updated existing tests.
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/V8/V8TestObj.cpp:
2012-11-08 Andreas Kling <kling@webkit.org>
4.68MB below RenderStyle::filter() on Membuster3.
<http://webkit.org/b/101624>
<rdar://problem/12663822>
Reviewed by Darin Adler.
Rename the non-const RenderStyle::filter() to mutableFilter() since using it causes us to detach
from the rare non-inherited data (copy-on-write.)
Most call sites were calling filter() on a RenderStyle* which was causing the bloat.
4.68MB progression on Membuster3.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingSVGDocuments):
(WebCore::StyleResolver::loadPendingShaders):
* rendering/style/RenderStyle.h:
2012-11-08 Alexey Proskuryakov <ap@apple.com>
Create loader/blackberry directory, because svn-apply cannot apply a patch that
creates a directory and moves a file into it.
* loader/blackberry: Added.
2012-11-08 Geoffrey Garen <ggaren@apple.com>
Mac build fix: Mark WidthCache.h 'private' so WebKit can use it.
Not reviewed.
* WebCore.xcodeproj/project.pbxproj:
2012-11-05 Geoffrey Garen <ggaren@apple.com>
Optimized kerning and ligatures using caching
https://bugs.webkit.org/show_bug.cgi?id=101269
Reviewed by Dan Bernstein.
Consider three kinds of text layout, and the value of caching for each:
(1) 1 layout of 100% unique words: small negative value.
(2) 1 layout of English prose: medium positive value.
(3) Many layouts of anything: extra-extra-large positive value.
Since we can't distinguish betwen these workflows a priori, we use statistical
sampling. To minimize cost in (1) and maximize benefit in (2) and (3), we treat
each cache access as a statistical sample, and use the cache in proportion to
the observed probability of duplicate text measurement.
Benchmark results:
plt3: 1% faster
chapter-reflow-once-random: No change [*]
chapter-reflow-once: 23% faster
chapter-reflow-twice: 52% faster
chapter-reflow-thrice: 68% faster
chapter-reflow: 263% faster
line-layout: 270% faster
[*] This is a stress test designed to make everything go wrong for
caching. It does not represent real world content.
* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/WidthCache.h: Added.
(WidthCache): Added a class that caches common word widths. This cache
could cache more things or more cases in future -- but for now it seems
to cover the common cases.
(SmallStringKey): Early profiling showed that allocating an AtomicString
or String measurably added to the cost of the cache, so I added a custom
string key that can be stored directly inside the table by value --
empirically answering an age-old question with which Apple WebKit engineers
seem to be obsessed.
(WebCore::WidthCache::SmallStringKey::capacity):
(WebCore::WidthCache::SmallStringKey::SmallStringKey):
(WebCore::WidthCache::SmallStringKey::characters):
(WebCore::WidthCache::SmallStringKey::length):
(WebCore::WidthCache::SmallStringKey::hash):
(WebCore::WidthCache::SmallStringKey::isHashTableDeletedValue):
(WebCore::WidthCache::SmallStringKey::isHashTableEmptyValue):
(WebCore::WidthCache::SmallStringKeyHash::hash):
(WebCore::WidthCache::SmallStringKeyHash::equal):
(SmallStringKeyHash):
(SmallStringKeyHashTraits):
(WebCore::WidthCache::SmallStringKeyHashTraits::isEmptyValue): Ditto.
(WebCore::WidthCache::WidthCache):
(WebCore::WidthCache::add): Separate out the "don't use the cache" case
so the compiler can inline it separate, hopefully further reducing cases
of (1).
(WebCore::WidthCache::addSlowCase): There's a little subtlety to the
sampling policy here. Lots of different approaches are possible, and I
just picked a simple one that seemed to work based on benchmarking. I'll
point out some interesting sublteties I'm aware of here:
(*) Since we start at the min sampling rate, a font used for 20 words
or fewer never allocates a cache. Anecdotally, some fonts seem to
be used this way.
(*) When the sampling rate is x / y, sampling all x words in a row
seems smart because some words may occur more commonly in relation to
each other (such as 'each' and 'other'), and repeat workloads will
lay out the same words in order. Intuitively, these are both reasons
this policy may ramp up more effectively under load.
(*) I opted for linear back-off instead of, say, exponential back-off
because we're not trying to back off to infinity -- just to our min
sampling rate. Since we don't expect the cache to hit for every word,
my guess is that exponential back-off would be too aggressive.
(*) Our "eviction" policy has an IQ of 1. I expect this is sufficient
because it would be surprising to see a million unique words all used
in the same document. (I would not like to play a Letterpress game
against such a document.)
(WebCore::WidthCache::clear): Needed because a font can change, in which
case we need to ditch its cache.
(WebCore::operator==): Needed for hashing.
2012-11-08 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: show statistics over selected frame range in Timeline's Frame mode
https://bugs.webkit.org/show_bug.cgi?id=101593
Reviewed by Pavel Feldman.
- change status bar records counter wording to "N of M frames|records shown" depending on mode;
- append average frame length and & stddev in frame mode;
- expand the above to a popover that includes frame count, range duration and min/avg/max/stddev on frame length;
- show frame bars & dividers iff selection range includes < 30 frames (drive-by)
* English.lproj/localizedStrings.js:
* inspector/front-end/TimelineFrameController.js:
(WebInspector.FrameStatistics):
* inspector/front-end/TimelineModel.js:
(WebInspector.TimelineModel.aggregateTimeByCategory):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype.get statusBarItems):
(WebInspector.TimelinePanel.prototype._createStatusBarItems.getAnchor):
(WebInspector.TimelinePanel.prototype._createStatusBarItems):
(WebInspector.TimelinePanel.prototype._updateRecordsCounter):
(WebInspector.TimelinePanel.prototype._updateFrameStatistics):
(WebInspector.TimelinePanel.prototype._showFrameStatistics):
(WebInspector.TimelinePanel.prototype._updateFrameBars):
(WebInspector.TimelinePanel.prototype._overviewModeChanged.set if):
(WebInspector.TimelinePanel.prototype._overviewModeChanged):
(WebInspector.TimelinePanel.prototype._refresh):
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.prototype.):
(WebInspector.TimelinePresentationModel.prototype.compareEndTime):
(WebInspector.TimelinePresentationModel.prototype.filteredFrames):
(WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics):
* inspector/front-end/timelinePanel.css:
(.timeline-records-stats, .storage-application-cache-status, .storage-application-cache-connectivity):
(.timeline-records-stats):
(.timeline-frames-stats):
2012-11-08 Jakob Petsovits <jpetsovits@rim.com>
[BlackBerry] Rework the API to use document coordinates
https://bugs.webkit.org/show_bug.cgi?id=101608
RIM PR 173292
Reviewed by Adam Treat.
Provide a better API for WebPage to relay.
See Source/WebKit/blackberry/ChangeLog for details.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::getWindowScreenRect):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
(Platform):
(BlackBerry):
(MediaPlayerPrivate):
2012-11-08 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133892.
http://trac.webkit.org/changeset/133892
https://bugs.webkit.org/show_bug.cgi?id=101617
Compile failures on mac, android, linux (Requested by
jsbell|gardener on #webkit).
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
* bindings/v8/DOMWrapperWorld.h:
(WebCore::DOMWrapperWorld::domDataStore):
(WebCore::DOMWrapperWorld::DOMWrapperWorld):
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::getCachedWrapper):
2012-11-08 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] UI iterations: image on the top, auto replay
https://bugs.webkit.org/show_bug.cgi?id=101584
Reviewed by Pavel Feldman.
* inspector/front-end/CanvasProfileView.js:
(WebInspector.CanvasProfileView):
(WebInspector.CanvasProfileView.prototype._showTraceLog):
(WebInspector.CanvasProfileView.prototype._onTraceLogItemClick):
(WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
(WebInspector.CanvasProfileView.prototype._replayTraceLog):
* inspector/front-end/canvasProfiler.css:
(.canvas-trace-log):
(#canvas-replay-image-container):
(#canvas-replay-image):
2012-11-08 Wei Fanzhe <whyer1@gmail.com>
While absolute positioning is put before the first flexitem, flexitems will move to a new line.
https://bugs.webkit.org/show_bug.cgi?id=101294
Reviewed by Ojan Vafai.
This issue has to do with RenderFlexibleBox::computeNextFlexLine. When determing line breaks, the algorithm sees if 1) the total width exceeds lineBreakLength and 2) whether orderedChildren is non-empty. But then, if the total width exceeds lineBreakLength and there's only absolutely positioned elemments in orderedChildren then the conditions are met and the algorithm mistakenly breaks the line. The solution is to see if orderedChildren collects at least a flex item. If it does, break the line.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeNextFlexLine):
2012-11-08 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, rolling out r133429.
http://trac.webkit.org/changeset/133429
https://bugs.webkit.org/show_bug.cgi?id=101173
Speculative roll out, investigating perf regression.
* dom/ContextFeatures.cpp:
* dom/ContextFeatures.h:
* dom/Position.cpp:
(WebCore::Position::Position):
(WebCore::Position::findParent):
* dom/TreeScope.cpp:
(WebCore::TreeScope::getSelection):
* html/HTMLTagNames.in:
* html/shadow/HTMLContentElement.cpp:
(WebCore::HTMLContentElement::contentTagName):
* page/DOMWindow.idl:
2012-11-07 Emil A Eklund <eae@chromium.org>
Fix enclosingLayoutRect calls in InlineFlowBox.h
https://bugs.webkit.org/show_bug.cgi?id=101497
Reviewed by Levi Weintraub.
InlineFlowBox.h used to include LayoutTypesInlineMethods.h which
overrid enclosingLayoutRect to call closingIntRect. When we
removed the LayoutTypes abstraction we switched these to
enclosingIntRect to preserve the behavior.
This patch changes these back to enclosingLayoutRect which is
the desired behavior.
Covered by existing tests.
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::layoutOverflowRect):
(WebCore::InlineFlowBox::visualOverflowRect):
2012-11-08 Philip Rogers <pdr@google.com>
Remove unnecessary save/restore in SVGTextRunRenderingContext
https://bugs.webkit.org/show_bug.cgi?id=101546
Reviewed by Andreas Kling.
This patch removes an unnecessary context save/restore SVGTextRunRenderingContext by
refactoring the code to save off the stroke thickness.
No new tests as this is heavily covered by existing tests.
* rendering/svg/SVGTextRunRenderingContext.cpp:
(WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):
2012-11-08 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Clean up includes in GObject DOM bindings code
https://bugs.webkit.org/show_bug.cgi?id=101077
Reviewed by Kentaro Hara.
Remove some headers included multiple times for the same file and
fix consistency in the includes style.
* bindings/gobject/DOMObjectCache.cpp:
* bindings/gobject/GObjectEventListener.cpp:
* bindings/gobject/GObjectEventListener.h:
* bindings/gobject/WebKitDOMBinding.cpp:
* bindings/gobject/WebKitDOMBinding.h:
* bindings/gobject/WebKitDOMEventTarget.cpp:
* bindings/gobject/WebKitDOMEventTarget.h:
* bindings/gobject/WebKitDOMEventTargetPrivate.h:
(WebKit):
* bindings/gobject/WebKitDOMObject.cpp:
* bindings/gobject/WebKitDOMObject.h:
* bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
* bindings/gobject/WebKitHTMLElementWrapperFactory.h:
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateHeader):
(GenerateFunction):
(Generate):
(WriteData):
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
* bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
* bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
* bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestException.h:
* bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
* bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
* bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestNode.h:
* bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
2012-11-08 Dan Carney <dcarney@google.com>
[V8] Main world should have one DOMDataStore
https://bugs.webkit.org/show_bug.cgi?id=101470
Reviewed by Kentaro Hara.
The main world DOMWrapperWorld held onto a DOMDataStore that should
never be used, as there is a static one optimized for speed in
DOMDataStore.
No new tests. No change in functionality.
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
* bindings/v8/DOMWrapperWorld.h:
(WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
(WebCore::DOMWrapperWorld::DOMWrapperWorld):
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::getCachedWrapper):
2012-11-08 Laszlo Gombos <l.gombos@samsung.com>
[EFL] Remove non-variable options from the build system
https://bugs.webkit.org/show_bug.cgi?id=101506
Reviewed by Kenneth Rohde Christiansen.
Remove WTF_USE_ICU_UNICODE, WTF_USE_CAIRO and WTF_USE_FREETYPE cmake variables
as these are always set to const 1 and not really configurable.
Remove duplicate platform/graphics/cairo include path from
PlatformEfl.cmake.
No new tests as there is no new functionality.
* PlatformEfl.cmake:
2012-11-08 KyungTae Kim <ktf.kim@samsung.com>
Unused parameters on GraphicsLayerUpdater.cpp
https://bugs.webkit.org/show_bug.cgi?id=101577
Reviewed by Kentaro Hara.
The parameter 'displayID' is not used when !USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
Use UNUSED_PARAM macro for removing -Wunused-parameter warnings
* platform/graphics/GraphicsLayerUpdater.cpp:
(WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
(WebCore::GraphicsLayerUpdater::screenDidChange):
2012-11-08 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Add option to disable rulers (Elements panel)
https://bugs.webkit.org/show_bug.cgi?id=101554
Reviewed by Pavel Feldman.
A new setting, showMetricsRulers, has been introduced (off by default, so users need to opt in to see the rulers).
The setting value is passed into InspectorDOMAgent, down to the InspectorOverlayPage, which affects the drawGrid() and
drawRulers() calls. As a side effect, the issue when the rulers were painted for elements having no renderers has been fixed.
No new tests, a UI change.
* English.lproj/localizedStrings.js: Add "Show rulers" string.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject): Copy over the showRulers value.
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForHighlight): Copy over the showRulers value.
* inspector/InspectorOverlay.h:
(HighlightConfig): Add |bool showRulers|.
(WebCore::Highlight::Highlight): Initialize fields.
(Highlight): Add |bool showRulers|.
(WebCore::Highlight::setDataFromConfig):
* inspector/InspectorOverlayPage.html:
* inspector/front-end/DOMAgent.js: Make use of WebInspector.settings.showMetricsRulers when building the highlight DTO.
* inspector/front-end/Settings.js: Add showMetricsRulers.
* inspector/front-end/SettingsScreen.js:
(WebInspector.GenericSettingsTab): Add "Show rulers" checkbox in the Elements panel section.
2012-11-08 Alexander Shalamov <alexander.shalamov@intel.com>
Warn in the inspector console when using dpi and dpcm units outside of media="print"
https://bugs.webkit.org/show_bug.cgi?id=100865
Reviewed by Kenneth Rohde Christiansen.
Added function that prints warning to inspector console whenever dpi or dpcm CSS units
are used for screen media.
Test: fast/media/mq-resolution-dpi-dpcm-warning.html
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::setMediaQueries):
* css/MediaList.cpp:
(WebCore):
(WebCore::addResolutionWarningMessageToConsole):
(WebCore::reportMediaQueryWarningIfNeeded):
* css/MediaList.h:
(WebCore):
* css/MediaQueryMatcher.cpp:
(WebCore::MediaQueryMatcher::matchMedia):
* css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::parserAppendRule):
2012-11-08 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Console: "time" and "timeEnd" should have same number of required arguments
https://bugs.webkit.org/show_bug.cgi?id=101451
Reviewed by Yury Semikhatsky.
Solution: make console.time "title" parameter mandatory.
* page/Console.idl: Changed parameter specification.
2012-11-08 Vsevolod Vlasov <vsevik@chromium.org>
Unreviewed fixed inspector frontend compilation
* inspector/front-end/DataGrid.js:
2012-11-08 Zeno Albisser <zeno@webkit.org>
GraphicsSurfaceGLX needs to query the drawable for YInversion.
https://bugs.webkit.org/show_bug.cgi?id=101472
After r133049 the WebGL content is now displayed upside down
for the Qt port. We cannot just apply a generic rule, that
the content needs to be flipped upside down.
Instead we have to query GLX to tell us, if the drawable's
framebuffer is y-inverted.
Reviewed by Kenneth Rohde Christiansen.
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::textureIsYInverted):
(GraphicsSurfacePrivate):
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
2012-11-08 Mike West <mkwst@chromium.org>
Warn when parsing an invalid X-Frame-Options header.
https://bugs.webkit.org/show_bug.cgi?id=101447
Reviewed by Adam Barth.
An 'X-Frame-Options' header that contains an invalid option (that is,
neither 'DENY' nor 'SAMEORIGIN') is ignored. This patch adds a console
warning to notify developers that they've made a mistake.
Test: http/tests/security/XFrameOptions/x-frame-options-invalid.html
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
Move the request identifier generation out of the failure block in
order to pass it into 'shouldInterruptLoadForXFrameOptions'. This
ensures that the console message is properly tied to a request.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
* loader/FrameLoader.h:
(FrameLoader):
'shouldInterruptLoadForXFrameOptions' now accepts a request
identifier as a parameter, and generates a console message if the
load is blocked.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::didReceiveResponse):
Pass the request identifier into 'shouldInterruptLoadForXFrameOptions'.
2012-11-08 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Timeline: Improve time/timeEnd appearance.
https://bugs.webkit.org/show_bug.cgi?id=100936
Reviewed by Yury Semikhatsky.
Changes:
- time/timeEnd records should be top level records only in "glue" mode
- time/timeEnd records should display "message" in record list / popover
- glued records add aggregated statistics to root record
- glued records do not reduce their origin self time
Test: inspector/timeline/timeline-time.html
* English.lproj/localizedStrings.js: Added "Message" string.
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.Record): Added "origin" field.
2012-11-08 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: move front-end methods called from native part to InspectorFrontendAPI
https://bugs.webkit.org/show_bug.cgi?id=101463
Reviewed by Vsevolod Vlasov.
Moved Web Inspector methods called from native code to InspectorFrontendAPI.
* inspector/InspectorClient.cpp:
(WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
* inspector/InspectorFrontendHost.cpp:
(WebCore::FrontendMenuProvider::create):
(WebCore::FrontendMenuProvider::disconnect):
(WebCore::FrontendMenuProvider::FrontendMenuProvider):
(WebCore::FrontendMenuProvider::contextMenuItemSelected):
(WebCore::FrontendMenuProvider::contextMenuCleared):
(FrontendMenuProvider):
(WebCore::InspectorFrontendHost::showContextMenu):
* inspector/front-end/InspectorFrontendAPI.js:
(InspectorFrontendAPI.loadCompleted):
(InspectorFrontendAPI.contextMenuItemSelected):
(InspectorFrontendAPI.contextMenuCleared):
(InspectorFrontendAPI.dispatchMessageAsync):
(InspectorFrontendAPI.dispatchMessage):
* inspector/front-end/inspector.js:
2012-11-08 Kunihiko Sakamoto <ksakamoto@chromium.org>
User can change a disabled select (drop down box)
https://bugs.webkit.org/show_bug.cgi?id=100932
Reviewed by Kent Tamura.
<select> should not handle events if it's disabled.
Test: fast/forms/select/select-disabled.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::defaultEventHandler):
2012-11-08 Alec Flett <alecflett@chromium.org>
IndexedDB: Rename methods and remove dead code from IDBBackingStore
https://bugs.webkit.org/show_bug.cgi?id=101488
Reviewed by Ojan Vafai.
In preparation for merging IDBBackingStore and IDBLevelDBBackingStore:
1) rename ObjectStoreRecordIdentifier to RecordIdentifier
2) remove IDBBackingStore::forEachRecord and friends
3) remove IDBBackingStore::Cursor::close, since it was an empty method.
No new tests as this is purely code cleanup.
* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBLevelDBBackingStore::getRecord):
(WebCore):
(WebCore::IDBLevelDBBackingStore::putRecord):
(WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
(WebCore::IDBLevelDBBackingStore::deleteRecord):
(WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
(WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
* Modules/indexeddb/IDBBackingStore.h:
(WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
(IDBBackingStore):
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::close):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::countInternal):
(WebCore::IDBIndexBackendImpl::getInternal):
(WebCore::IDBIndexBackendImpl::getKeyInternal):
* Modules/indexeddb/IDBLevelDBBackingStore.h:
(IDBLevelDBBackingStore):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::getInternal):
(WebCore):
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::deleteInternal):
(WebCore::IDBObjectStoreBackendImpl::countInternal):
2012-11-07 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: console error after inspecting IndexedDB
https://bugs.webkit.org/show_bug.cgi?id=101481
Reviewed by Pavel Feldman.
Added objectId nullity check to RemoteOBject::release.
Drive-by added release for entry key and primaryKey.
* inspector/front-end/IndexedDBViews.js:
(WebInspector.IDBDataView.prototype.clear):
* inspector/front-end/RemoteObject.js:
(WebInspector.RemoteObject.prototype.release):
2012-11-07 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Migrate inspector IndexedDB support to frontend API.
https://bugs.webkit.org/show_bug.cgi?id=101457
Reviewed by Pavel Feldman.
Migrated IndexedDB support to web facing IndexedDB API.
* inspector/Inspector.json:
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore):
(WebCore::assertIDBFactory):
(WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
(WebCore::InspectorIndexedDBAgent::requestDatabase):
(WebCore::InspectorIndexedDBAgent::requestData):
* inspector/front-end/IndexedDBModel.js:
(WebInspector.IndexedDBModel.prototype.innerCallback):
(WebInspector.IndexedDBModel.prototype._requestData):
* inspector/front-end/IndexedDBViews.js:
(WebInspector.IDBDataView.prototype._updateData.callback):
(WebInspector.IDBDataView.prototype._updateData):
(WebInspector.IDBDataGridNode):
(WebInspector.IDBDataGridNode.prototype.createCell):
2012-08-20 Taiju Tsuiki <tzik@chromium.org>
Web Inspector: Drop dimmed crumb handling
https://bugs.webkit.org/show_bug.cgi?id=94457
Reviewed by Vsevolod Vlasov.
No new tests. Existing inspector test should work.
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.updateBreadcrumb):
(WebInspector.ElementsPanel.prototype.updateBreadcrumbSizes):
* inspector/front-end/breadcrumbList.css:
2012-11-07 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Infinite loop in DataGrid::autoSizeColumn
https://bugs.webkit.org/show_bug.cgi?id=101363
Reviewed by Pavel Feldman.
Test: inspector/datagrid-autosize.html
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid.prototype._autoSizeWidths):
(WebInspector.DataGrid.prototype.autoSizeColumns):
2012-11-07 Keishi Hattori <keishi@webkit.org>
Implement week picking to calendar picker
https://bugs.webkit.org/show_bug.cgi?id=101449
Reviewed by Kent Tamura.
This adds week picker mode to CalendarPicker.
No new tests. Tests will be added later when this feature is enabled in DRT.
* Resources/pagepopups/calendarPicker.css:
(.month-mode .day):
(.week-mode .available.day-selected.monday): Rounded corners around week selection.
(.week-mode .available.day-selected.sunday): Ditto.
(.week-mode .unavailable.day-selected):
(.week-mode .unavailable.day-selected.monday):
(.week-mode .unavailable.day-selected.sunday):
(.week-mode .week-column.unavailable.day-selected):
(.week-column): Hide week column unless in week mode.
(.week-mode .week-column):
* Resources/pagepopups/calendarPicker.js:
(parseDateString): Support week string.
(Week):
(Week.parse): Parses "yyyy-Www" string.
(Week.createFromDate): Creates Week containing datetime.
(Week.createFromToday): Creates Week containing today.
(Week.weekOneStartDateForYear): Returns the start date for the first week of year.
(Week.numberOfWeeksInYear): Returns the number of weeks in year.
(Week._numberOfWeeksSinceDate): Returns number of weeks since a date.
(Week.prototype.equals): Returns true if the Weeks are the same.
(Week.prototype.previous): Returns the previous Week.
(Week.prototype.next): Returns the next Week.
(Week.prototype.startDate): Returns start datetime of Week.
(Week.prototype.endDate): Returns end datetime of Week.
(Week.prototype.valueOf): Returns the milliseconds since epoch.
(Week.prototype.toString): Returns ISO week string.
(CalendarPicker): Add week picker mode.
(CalendarPicker.prototype.showMonth): Use NavigationBehaviour instead of bools.
(YearMonthController.prototype.attachTo): Fix bug.
(YearMonthController.prototype.moveRelatively): Use new showMonth.
(DaysTable.prototype.attachTo): Add week number column.
(DaysTable.prototype._renderMonth): Render week numbers.
(DaysTable.prototype.navigateToMonth): Render week numbers.
(DaysTable.prototype.selectRange):
(DaysTable.prototype._selectRangeAtPosition): Week number nodes have an positionX of -1.
(DaysTable.prototype._maybeSetPreviousMonth):
(DaysTable.prototype._maybeSetNextMonth):
(MonthPickerDaysTable.prototype.selectRange):
(MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange):
(MonthPickerDaysTable.prototype._handleKey):
(WeekPickerDaysTable): Added.
(WeekPickerDaysTable.prototype._markRangeAsSelected): Marks week as selected.
(WeekPickerDaysTable.prototype.selectRange): Selects week.
(WeekPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects week and navigate to show entire selection.
(WeekPickerDaysTable.prototype._rangeForNode): Returns Week for node.
(WeekPickerDaysTable.prototype._handleKey):
2012-11-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133841.
http://trac.webkit.org/changeset/133841
https://bugs.webkit.org/show_bug.cgi?id=101542
Reverted patches were innocent (Requested by shinyak on
#webkit).
* WebCore.exp.in:
* dom/Element.cpp:
(WebCore::Element::shadowPseudoId):
* dom/Element.h:
(Element):
* dom/ElementRareData.cpp:
(WebCore::ElementRareData::reportMemoryUsage):
* dom/ElementRareData.h:
(ElementRareData):
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
* html/ColorInputType.cpp:
(WebCore::ColorInputType::createShadowSubtree):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::updatePlaceholderText):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::createShadowSubtree):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::updatePlaceholderText):
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::buildBubbleTree):
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitLiteral):
(WebCore::DateTimeEditElement::DateTimeEditElement):
* html/shadow/DateTimeFieldElement.cpp:
(WebCore::DateTimeFieldElement::initialize):
* html/shadow/DateTimeFieldElement.h:
(DateTimeFieldElement):
* html/shadow/PickerIndicatorElement.cpp:
(WebCore::PickerIndicatorElement::PickerIndicatorElement):
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCueBox::TextTrackCueBox):
(WebCore::TextTrackCue::updateDisplayTree):
* testing/Internals.cpp:
(WebCore::Internals::setShadowPseudoId):
2012-11-07 Simon Fraser <simon.fraser@apple.com>
Fix EFL build, which has accelerated compositing disabled, by making
repaintViewRectangle() const.
* rendering/RenderView.cpp:
(WebCore::RenderView::repaintViewRectangle):
* rendering/RenderView.h:
(RenderView):
2012-11-07 Simon Fraser <simon.fraser@apple.com>
constify ALL the repaint containers
https://bugs.webkit.org/show_bug.cgi?id=101541
Reviewed by Beth Dakin.
Make all the RenderLayerModelObject* repaintContainer arguments const, since
these member functions should have no need to mutate this object.
* WebCore.exp.in:
* rendering/RenderBR.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::selectionGapRectsForRepaint):
(WebCore::RenderBlock::rectWithOutlineForRepaint):
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::outlineBoundsForRepaint):
(WebCore::RenderBox::mapLocalToContainer):
(WebCore::RenderBox::clippedOverflowRectForRepaint):
(WebCore::RenderBox::computeRectForRepaint):
* rendering/RenderBox.h:
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::repaintRectangleInRegions): Need to use a const_iterator.
* rendering/RenderFlowThread.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::clippedOverflowRectForRepaint):
(WebCore::RenderInline::rectWithOutlineForRepaint):
(WebCore::RenderInline::computeRectForRepaint):
(WebCore::RenderInline::mapLocalToContainer):
* rendering/RenderInline.h:
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::selectionRectForRepaint):
* rendering/RenderListMarker.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintUsingContainer):
(WebCore::RenderObject::repaintAfterLayoutIfNeeded):
(WebCore::RenderObject::rectWithOutlineForRepaint):
(WebCore::RenderObject::clippedOverflowRectForRepaint):
(WebCore::RenderObject::computeRectForRepaint):
(WebCore::RenderObject::computeFloatRectForRepaint):
(WebCore::RenderObject::mapLocalToContainer):
(WebCore::RenderObject::localToContainerQuad):
(WebCore::RenderObject::localToContainerPoint):
* rendering/RenderObject.h:
(WebCore::RenderObject::selectionRectForRepaint):
(WebCore::RenderObject::outlineBoundsForRepaint):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::selectionRectForRepaint):
(WebCore::RenderReplaced::clippedOverflowRectForRepaint):
* rendering/RenderReplaced.h:
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::clippedOverflowRectForRepaint):
(WebCore::RenderTableCell::computeRectForRepaint):
* rendering/RenderTableCell.h:
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::clippedOverflowRectForRepaint):
* rendering/RenderTableCol.h:
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::clippedOverflowRectForRepaint):
* rendering/RenderTableRow.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::clippedOverflowRectForRepaint):
(WebCore::RenderText::selectionRectForRepaint):
* rendering/RenderText.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::mapLocalToContainer):
(WebCore::RenderView::computeRectForRepaint):
* rendering/RenderView.h:
* rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::clippedOverflowRectForRepaint):
(WebCore::RenderSVGForeignObject::computeFloatRectForRepaint):
(WebCore::RenderSVGForeignObject::mapLocalToContainer):
* rendering/svg/RenderSVGForeignObject.h:
* rendering/svg/RenderSVGGradientStop.h:
* rendering/svg/RenderSVGHiddenContainer.h:
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::clippedOverflowRectForRepaint):
(WebCore::RenderSVGInline::computeFloatRectForRepaint):
(WebCore::RenderSVGInline::mapLocalToContainer):
* rendering/svg/RenderSVGInline.h:
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
(WebCore::RenderSVGModelObject::computeFloatRectForRepaint):
(WebCore::RenderSVGModelObject::mapLocalToContainer):
(WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
* rendering/svg/RenderSVGModelObject.h:
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
(WebCore::RenderSVGRoot::computeFloatRectForRepaint):
(WebCore::RenderSVGRoot::mapLocalToContainer):
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::clippedOverflowRectForRepaint):
(WebCore::RenderSVGText::computeRectForRepaint):
(WebCore::RenderSVGText::computeFloatRectForRepaint):
(WebCore::RenderSVGText::mapLocalToContainer):
* rendering/svg/RenderSVGText.h:
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
(WebCore::SVGRenderSupport::computeFloatRectForRepaint):
(WebCore::SVGRenderSupport::mapLocalToContainer):
* rendering/svg/SVGRenderSupport.h:
(SVGRenderSupport):
2012-11-07 Kent Tamura <tkent@chromium.org>
[Chromium-win] Refactor date/time format conversion code in LocaleWin
https://bugs.webkit.org/show_bug.cgi?id=101329
Reviewed by Kentaro Hara.
convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
similar jobs with different code. We can merge them into one function.
As for the date format conversion, we have tokenized a format string and
stored token objects into a vector. We skip token object generation and
generate a LDML-compliant pattern string during parsing.
No new tests. This should make no behavior changes and
WebKit/chromium/tests/LocaleWinTest.cpp has test cases.
* platform/text/win/LocaleWin.cpp:
(WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
convertWindowsTimeFormatToLDML.
(WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
(WebCore::convertWindowsDateTimeFormat):
Renamed from parseDateFormat, and supports time format symbols.
(WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
(WebCore::LocaleWin::monthFormat): Ditto.
(WebCore::LocaleWin::timeFormat): Ditto.
(WebCore::LocaleWin::shortTimeFormat): Ditto.
* platform/text/win/LocaleWin.h:
(LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.
2012-11-07 Shinya Kawanaka <shinyak@chromium.org>
Unreviewed, rolling out r133428 and r133749
https://bugs.webkit.org/show_bug.cgi?id=101533
These patches might cause memory regression.
* WebCore.exp.in:
* dom/Element.cpp:
(WebCore::Element::shadowPseudoId):
(WebCore):
(WebCore::Element::setShadowPseudoId):
* dom/Element.h:
(Element):
* dom/ElementRareData.cpp:
(WebCore::ElementRareData::reportMemoryUsage):
* dom/ElementRareData.h:
(ElementRareData):
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
* html/ColorInputType.cpp:
(WebCore::ColorInputType::createShadowSubtree):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::updatePlaceholderText):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::createShadowSubtree):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::updatePlaceholderText):
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::buildBubbleTree):
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitLiteral):
(WebCore::DateTimeEditElement::DateTimeEditElement):
* html/shadow/DateTimeFieldElement.cpp:
(WebCore::DateTimeFieldElement::initialize):
* html/shadow/DateTimeFieldElement.h:
(DateTimeFieldElement):
* html/shadow/PickerIndicatorElement.cpp:
(WebCore::PickerIndicatorElement::PickerIndicatorElement):
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCueBox::TextTrackCueBox):
(WebCore::TextTrackCue::updateDisplayTree):
* testing/Internals.cpp:
(WebCore::Internals::setShadowPseudoId):
2012-11-07 Ryosuke Niwa <rniwa@webkit.org>
Crash in WebCore::RenderLayer::normalFlowList
https://bugs.webkit.org/show_bug.cgi?id=101528
Reviewed by Simon Fraser.
Make sure the layout is up to date before re-computing the caret rect.
Avoid doing the layout when the selection is cleared since we can always stop
the blink timer in that case.
Unfortunately, we haven't found any reproduction of this crash yet.
* editing/FrameSelection.cpp:
(WebCore::isNonOrphanedCaret):
(WebCore::FrameSelection::localCaretRect):
(WebCore::FrameSelection::updateAppearance):
2012-11-07 Adam Barth <abarth@webkit.org>
[V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
https://bugs.webkit.org/show_bug.cgi?id=101110
Reviewed by Kentaro Hara.
Hopefully the memory issues with this patch have been resolved by
fixing bug 101525. This patch re-lands this patch again, hopefully for
the last time.
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::weakCallback):
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::wrapperIsStoredInObject):
(WebCore::DOMDataStore::getWrapperFromObject):
(WebCore::DOMDataStore::setWrapperInObject):
2012-11-07 KyungTae Kim <ktf.kim@samsung.com>
Seam occurred between pieces of ShadowBlur on floating point zoom
https://bugs.webkit.org/show_bug.cgi?id=101435
Reviewed by Simon Fraser.
When paint Shadow that doesn't have blurred edge on floating point zoom,
pixel seam (pixel cracks) occurred between pieces of the ShadowBlur because of unaligned clip rect.
So, enlarge the clipping area 1 pixel so that the fill does not bleed (due to antialiasing)
even if the unaligned clip rect occurred.
* platform/graphics/ShadowBlur.cpp:
(WebCore::ShadowBlur::calculateLayerBoundingRect):
2012-11-07 Tim Horton <timothy_horton@apple.com>
Repaint issues with -webkit-svg-shadow used on a container
https://bugs.webkit.org/show_bug.cgi?id=65643
<rdar://problem/7600532>
Reviewed by Simon Fraser.
SVG renderer repaint rects are currently expanded only by the shadow of
the renderer itself; however, the area they need to repaint can be larger
than that, if their parents also have shadows. We need to take into account
parent's shadows (respecting transforms, as well).
clippedOverflowRectForRepaint already recurses upwards through the render tree,
and ends up with a rect in layout coordinates, so we manually apply the shadow
at each step (repaintRectInLocalCoordinatesExcludingSVGShadow was added to allow
us to get the raw repaint rect without the shadow baked-in).
repaintRectInLocalCoordinates now includes shadows from all parents.
Also, RenderSVGRoot was clipping repaint rects to the viewport before applying
shadows, so offscreen elements with on-screen shadows (applied by the root) would not paint the shadows.
We can just swap the order of these things to correct this.
Tests: svg/css/parent-shadow-offscreen.svg, svg/css/root-shadow-offscreen.svg, svg/repaint/repaint-webkit-svg-shadow.svg
* rendering/RenderObject.cpp:
(WebCore::RenderObject::addChild): Mark the child being added as having an SVG shadow if it is being added as a child of an element that does.
(WebCore::RenderObject::styleDidChange): Mark the child being added as having an SVG shadow if its new style has a shadow.
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::layout): Cache the repaint rect before intersecting it with the shadow.
* rendering/svg/RenderSVGImage.h:
(WebCore::RenderSVGImage::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::RenderSVGModelObject): Renderers do not have a shadow by default.
* rendering/svg/RenderSVGModelObject.h:
(WebCore::RenderSVGModelObject::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
(WebCore::RenderSVGModelObject::hasSVGShadow): Return whether or not the renderer has a shadow.
(WebCore::RenderSVGModelObject::setHasSVGShadow): Set whether or not the renderer has a shadow.
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::RenderSVGRoot):
(WebCore::RenderSVGRoot::computeFloatRectForRepaint): Apply the shadow before clipping to the viewport, so we draw shadows for elements outside the viewport.
(WebCore::RenderSVGRoot::updateCachedBoundaries): Cache the repaint rect before intersecting it with the shadow.
* rendering/svg/RenderSVGRoot.h:
(WebCore::RenderSVGRoot::hasSVGShadow): Return whether or not the renderer has a shadow.
(WebCore::RenderSVGRoot::setHasSVGShadow): Set whether or not the renderer has a shadow.
(WebCore::RenderSVGRoot::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
* rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::updateRepaintBoundingBox): Cache the repaint rect before intersecting it with the shadow.
* rendering/svg/RenderSVGShape.h:
(WebCore::RenderSVGShape::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::repaintRectForRendererInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
(WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): Apply shadows as we walk through our parents, instead of only applying the renderer's own shadow.
(WebCore::SVGRenderSupport::rendererHasSVGShadow): Return whether or not the renderer has a shadow.
(WebCore::SVGRenderSupport::setRendererHasSVGShadow): Set whether or not the renderer has a shadow.
(WebCore::SVGRenderSupport::intersectRepaintRectWithShadows): Walk through the element's parents, adding shadows to the repaint rect as we go, eventually
transforming the repaint rect back into local coordinates.
(WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Don't add shadows by default, just other resources, so that we can cache repaint rects with and without shadows.
* rendering/svg/SVGRenderSupport.h:
2012-11-07 Anders Carlsson <andersca@apple.com>
Add RemoteGraphicsLayer class
https://bugs.webkit.org/show_bug.cgi?id=101535
Reviewed by Simon Fraser.
* WebCore.exp.in:
Export GraphicsLayer symbols required by WebKit2.
* WebCore.xcodeproj/project.pbxproj:
Make GraphicsLayerFactory.h a private header.
2012-11-07 Adam Barth <abarth@webkit.org>
[V8] Don't leak <img> elements in content scripts
https://bugs.webkit.org/show_bug.cgi?id=101525
Reviewed by Ojan Vafai.
I found the leak that was causing a problem for bug 101110. We weren't
filling in the derefObjectFunction for HTMLImageElements (and
potentially some other types of elements). That manifests today as a
memory leak in content scripts (which use the derefObjectFunction for
nodes) and caused a memory leak after bug 101110 because we started
using the derefObjectFunction in the main world as well.
This patch adds ASSERTs so that we won't make this mistake in the future.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNamedConstructorCallback):
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::weakCallback):
* bindings/v8/DOMWrapperMap.h:
(WebCore::DOMWrapperMap::defaultWeakCallback):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore):
2012-11-07 Alec Flett <alecflett@chromium.org>
IndexedDB: Prepare for IDBBackingStore merge by renaming IDBLevelDBBackingStore.cpp
https://bugs.webkit.org/show_bug.cgi?id=101486
Reviewed by Ojan Vafai.
Rename IDBLevelDBBackingStore.cpp to IDBBackingStore.cpp in
preparation for merging these classes. This will make the merge
diffs sane. See https://bugs.webkit.org/show_bug.cgi?id=101415
for the final goal.
No new tests, this is is just a rename and minor style fix.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/indexeddb/IDBBackingStore.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp.
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
2012-11-07 Adam Barth <abarth@webkit.org>
[V8] Prepare DOMDataStore to be able to store ScriptWrappable wrappers inline
https://bugs.webkit.org/show_bug.cgi?id=101523
Unreviewed. Technically this patch hasn't been reviewed, but it is part
of a patch that was reviewed by Kentaro Hara.
Sadly, my patch for bug 101110 triggered the regression again. This
patch is a smaller incremental step towards the patch in bug 101110. It
doesn't make that much sense on its own, but it will help me isolate
the source of the regression.
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::get):
(DOMDataStore):
(WebCore::DOMDataStore::set):
(WebCore::DOMDataStore::wrapperIsStoredInObject):
(WebCore::DOMDataStore::getWrapperFromObject):
(WebCore::DOMDataStore::setWrapperInObject):
2012-11-05 Ryosuke Niwa <rniwa@webkit.org>
SimplifyMarkupCommand takes a disproportionally long time to run when there are many nodes to remove
https://bugs.webkit.org/show_bug.cgi?id=101144
Reviewed by Enrica Casucci.
The bug was caused by attach() happening between each node removal. Since the command was trying
to remove millions of node in some cases, attach()ing render objects for each node being reinserted
imposed a huge runtime cost.
Fixed the bug by using lazy attach when removing nodes and avoiding calls to isContentEditable.
Also remove all ancestors at once when they are direct child/parent of each other so that we don't
remove an ancestor and then insert its child back only to remove it again in the next iteration.
No new tests since it doesn't change the asymptotic performance, and adding a new performance test for
this specific case is not the worth the increase in the bot cycle time. I'll note that the email
attached in the original radar bug (<rdar://problem/12179712>) took 100 seconds to open now only takes
7 seconds to open on my MacPro.
* editing/AppendNodeCommand.cpp:
(WebCore::AppendNodeCommand::doApply): Takes a flag indicating whether we should assume nodes are editable
without calling isContentEditable or not.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): Update the style as later code requires render
object.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::insertNodeBefore): Passes a flag to the command.
(WebCore::CompositeEditCommand::removeNode): Ditto.
(WebCore::CompositeEditCommand::removeNodePreservingChildren): Ditto.
* editing/CompositeEditCommand.h:
(CompositeEditCommand):
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::removeNode): Takes a flag indicating whether we should assume nodes are
editable without calling isContentEditable or not.
* editing/DeleteSelectionCommand.h:
(DeleteSelectionCommand):
* editing/EditCommand.h:
* editing/InsertIntoTextNodeCommand.cpp:
(WebCore::InsertIntoTextNodeCommand::doApply): Update the layout when password echo is enabled since
we need to have render objects for echoing.
* editing/InsertNodeBeforeCommand.cpp:
(WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): Ditto.
(WebCore::InsertNodeBeforeCommand::doApply): Ditto; also always use lazy attach.
(WebCore::InsertNodeBeforeCommand::doUnapply):
* editing/InsertNodeBeforeCommand.h:
(WebCore::InsertNodeBeforeCommand::create):
(InsertNodeBeforeCommand):
* editing/RemoveNodeCommand.cpp:
(WebCore::RemoveNodeCommand::RemoveNodeCommand): Ditto about the flag.
(WebCore::RemoveNodeCommand::doApply):
* editing/RemoveNodeCommand.h:
(WebCore::RemoveNodeCommand::create):
(RemoveNodeCommand):
* editing/RemoveNodePreservingChildrenCommand.cpp:
(WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): Ditto.
(WebCore::RemoveNodePreservingChildrenCommand::doApply):
* editing/RemoveNodePreservingChildrenCommand.h:
(WebCore::RemoveNodePreservingChildrenCommand::create):
(RemoveNodePreservingChildrenCommand):
* editing/SimplifyMarkupCommand.cpp:
(WebCore::SimplifyMarkupCommand::doApply):
(WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove): Added to optimize removals of multiple
ancestors.
* editing/SimplifyMarkupCommand.h:
(SimplifyMarkupCommand):
2012-11-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133810.
http://trac.webkit.org/changeset/133810
https://bugs.webkit.org/show_bug.cgi?id=101520
This patch made ws_single_peak_r regress by 15% (Requested by
abarth on #webkit).
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::weakCallback):
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::get):
(WebCore::DOMDataStore::set):
(DOMDataStore):
2012-11-07 Elliott Sprehn <esprehn@chromium.org>
Clean up confused use of Document::renderer and renderView
https://bugs.webkit.org/show_bug.cgi?id=101484
Reviewed by Ojan Vafai.
Document::renderer and Document::renderView are the same thing, but it seems
people don't always realize it and check if document()->renderer() is a RenderView.
This patch cleans up usage of document()->renderer() and document()->renderView() and
simplifies the code that was written without realizing they were the same thing.
No new tests, this is just a refactor.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::visiblePositionForPoint): Lots of simplification.
* dom/Element.cpp:
(WebCore::Element::screenRect):
(WebCore::Element::unregisterNamedFlowContentNode): Remove unneeded conditional.
* editing/FrameSelection.cpp: Remove verbose casts.
(WebCore::clearRenderViewSelection):
(WebCore::FrameSelection::recomputeCaretRect):
(WebCore::CaretBase::invalidateCaretRect):
(WebCore::FrameSelection::focusedOrActiveStateChanged):
* page/Frame.cpp:
(WebCore::Frame::contentRenderer): Vastly simplified.
* page/PrintContext.cpp: Remove verbose casts.
(WebCore::PrintContext::computePageRects):
(WebCore::PrintContext::computePageRectsWithPageSizeInternal):
* page/wince/FrameWinCE.cpp:
(WebCore::computePageRectsForFrame): Remove unreachable code.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::maximalOutlineSize): Remove verbose cast.
2012-11-07 Adam Barth <abarth@webkit.org>
[V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
https://bugs.webkit.org/show_bug.cgi?id=101110
Reviewed by Kentaro Hara.
This patch generalizes our support for storing wrappers in DOM objects
to be usable for more than just nodes. After this patch, any object
with a ScriptWrappable base class will have its wrapper stored inline
in the object in the main world.
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::weakCallback):
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::get):
(WebCore::DOMDataStore::set):
2012-11-07 Tiancheng Jiang <tijiang@rim.com>
[BlackBerry] Update BB10 form theme.
https://bugs.webkit.org/show_bug.cgi?id=100760
Reviewed by Rob Buis.
RIM PR 236997
Internally Reviewed by Jakob Petsovits.
Set font family to fix DRT test fast/forms/input-type-text-min-width.html
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::RenderThemeBlackBerry::defaultGUIFont):
(WebCore):
(WebCore::RenderThemeBlackBerry::systemFont):
2012-11-07 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=101303
Fixed position elements that are out of view still end up forcing
non-threaded scrolling
-and corresponding-
<rdar://problem/12642222>
Reviewed by Simon Fraser.
Re-name hasNonLayerFixedObjects() to
hasVisibleSlowRepaintFixedObjects() and make it virtual.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects):
(WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
* page/scrolling/ScrollingCoordinator.h:
(ScrollingCoordinator):
Override hasVisibleSlowRepaintFixedObjects() to always return false.
We don't want to bother with the extra computation in the
ScrollingCoordinator implementation, though other ports might still
want it.
* page/scrolling/mac/ScrollingCoordinatorMac.h:
(WebCore::ScrollingCoordinatorMac::hasVisibleSlowRepaintFixedObjects):
(ScrollingCoordinatorMac):
Make this function const so that we can call it from
requiresCompositingForPosition().
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::calculateCompositedBounds):
Actually be thorough here and check if the fixed object has any
descendants that are visible in the view. If it does, then we do
want to composite the fixed object.
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
* rendering/RenderLayerCompositor.h:
2012-11-07 Roger Fong <roger_fong@apple.com>
Unreviewed. Style fix following r133262.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::clearMediaPlayer):
* html/HTMLMediaElement.h:
(HTMLMediaElement):
2012-11-07 Adam Barth <abarth@webkit.org>
[V8] DOMWrapperMap doesn't need to use virtual functions
https://bugs.webkit.org/show_bug.cgi?id=101494
Reviewed by Kentaro Hara.
DOMWrapperMap has only one subclass. There's no reason to use virtual functions.
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::DOMDataStore):
* bindings/v8/DOMWrapperMap.h:
(WebCore::DOMWrapperMap::DOMWrapperMap):
(WebCore::DOMWrapperMap::get):
(WebCore::DOMWrapperMap::set):
(WebCore::DOMWrapperMap::clear):
(WebCore::DOMWrapperMap::reportMemoryUsage):
(WebCore::DOMWrapperMap::remove):
(WebCore::DOMWrapperMap::defaultWeakCallback):
* bindings/v8/V8NPObject.cpp:
(WebCore::staticNPObjectMap):
2012-11-07 Alexandru Chiculita <achicu@adobe.com>
[CSS Shaders] Remove the dependency on CustomFilterValidatedProgram from CustomFilterRenderer
https://bugs.webkit.org/show_bug.cgi?id=101071
Reviewed by Dean Jackson.
I've removed the need to get a CustomFilterValidatedProgram from FilterEffectRenderer. It was only
used to delay the compilation of the shader until it was really needed. Instead, the FilterEffectRenderer
will directly get the compiled shader in the constructor. The callers that still want to avoid
compiling the shader until it is really needed can use the setCompiledProgram to inject the shader
at a later time, before painting.
No new tests, the change is covered by the css3/filters/custom/ tests.
* platform/graphics/filters/CustomFilterConstants.h:
* platform/graphics/filters/CustomFilterProgramInfo.h:
* platform/graphics/filters/CustomFilterRenderer.cpp:
(WebCore::CustomFilterRenderer::create):
(WebCore::CustomFilterRenderer::CustomFilterRenderer):
(WebCore::CustomFilterRenderer::premultipliedAlpha):
(WebCore::CustomFilterRenderer::setCompiledProgram):
(WebCore):
(WebCore::CustomFilterRenderer::prepareForDrawing):
(WebCore::CustomFilterRenderer::bindProgramAndBuffers):
* platform/graphics/filters/CustomFilterRenderer.h:
(WebCore):
(CustomFilterRenderer):
(WebCore::CustomFilterRenderer::compiledProgram):
* platform/graphics/filters/FECustomFilter.cpp:
(WebCore::FECustomFilter::FECustomFilter):
(WebCore::FECustomFilter::prepareForDrawing):
* platform/graphics/filters/FECustomFilter.h:
(FECustomFilter):
2012-11-07 Adam Barth <abarth@webkit.org>
[V8] IntrusiveDOMWrapperMap is no longer needed and can be deleted
https://bugs.webkit.org/show_bug.cgi?id=101493
Reviewed by Kentaro Hara.
This patch is another incremental step towards landing the patch in bug
101110. In this patch, we delete IntrusiveDOMWrapperMap, which is no
longer needed.
* WebCore.gypi:
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::DOMDataStore):
(WebCore::DOMDataStore::~DOMDataStore):
(WebCore::DOMDataStore::reportMemoryUsage):
(WebCore::DOMDataStore::weakCallback):
(WebCore):
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::get):
(WebCore::DOMDataStore::set):
(DOMDataStore):
* bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
* bindings/v8/V8GCController.cpp:
2012-11-07 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
[AC] glXChooseFBConfig() and glXGetVisualFromFBConfig() return values are leaking in GraphicsSurface
https://bugs.webkit.org/show_bug.cgi?id=101475
Reviewed by Kenneth Rohde Christiansen.
Free the memory returned by glXChooseFBConfig and glXGetVisualFromFBConfig
using XFree to avoid memory leaks.
No tests. No change in behavior.
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createSurface):
2012-11-07 Fady Samuel <fsamuel@chromium.org>
Autoresize should work even if turned on while the page is loading.
https://bugs.webkit.org/show_bug.cgi?id=101380
Reviewed by David Levin.
Autoresize does not work in cases where it is turned on while loading.
This patch addresses this by allowing autoSize to complete if it's turned on
while loading and doing a final pass after loading.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkCompleted):
Adjust to call renamed function.
* page/FrameView.cpp:
(WebCore::FrameView::handleLoadCompleted):
Rename function to encompass its expanded responsibilities (which include doing the final auto size after the load is completed).
(WebCore::FrameView::autoSizeIfEnabled):
Allow the size to shrink if autosize is adjusted while the page is loading.
* page/FrameView.h:
(FrameView):
Renamed 'checkFlushDeferredRepaintsAfterLoadComplete' to 'handleLoadComplete'
2012-11-07 Philip Rogers <pdr@google.com>
Skip SVG repaint tracking when parent container transforms
https://bugs.webkit.org/show_bug.cgi?id=101177
Reviewed by Eric Seidel.
This patch skips child repaint rect checks when a parent container is transformed, leading
to a 75% increase on the RoboHornet SVG benchmark:
http://www.robohornet.org/#et=svg (average of 2 runs)
Before patch: 161.6ms
After patch: 38.5ms
SVG transforms are relative to the local container which makes calculating an absolute
repaint rect expensive because it requires multiplying the local repaint rect by each
parent container's local transform. See SVGRenderSupport::computeFloatRectForRepaint
as an example of this calculation.
This patch takes advantage of SVG's container rules: when a parent container's transform
changes, all children must be repainted (there is no absolute positioning in SVG).
SVGRenderSupport::checkForSVGRepaintDuringLayout has been added which checks for whether
the parent transform changed before doing child repaint checks. A similar optimization is
used in HTML (see RenderObject::checkForRepaintDuringLayout) where no repaint checking
is done when the view is fully repainted.
This code is tested in existing tests.
* rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout):
* rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::layout):
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::layout):
* rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::layout):
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::layout):
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::checkForSVGRepaintDuringLayout):
(WebCore):
* rendering/svg/SVGRenderSupport.h:
(SVGRenderSupport):
2012-11-07 Chris Fleizach <cfleizach@apple.com>
AX: Textfields don't get focus when navigated to from 'show all tabs' button
https://bugs.webkit.org/show_bug.cgi?id=101369
Reviewed by Darin Adler.
When focus leaves a webpage, the webpage does not normally clear its focused node. When focus
returns (through tab, or mouse click), then focus will be cleared and restored.
However, when focus is returned through accessibility means, focus is not cleared first, which
means subsequent focus actions do nothing.
This fix will check if the focused node is the same as the node being focused, and if so, clear the focus first.
Making a layout test for this is not possible because it requires setting focus to something in the chrome, and then
moving focus back to the webpage.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::setFocused):
2012-11-07 Adam Barth <abarth@webkit.org>
[V8] We should hide the DOMWrapperMaps inside DOMDataStore
https://bugs.webkit.org/show_bug.cgi?id=101430
Reviewed by Kentaro Hara.
This is yet another incremental step towards landing the patch in bug
101110. In this patch, we hide the existence of DOMWrapperMaps inside
DOMDataStore. In the process, we can remove V8DOMMap.cpp.
* UseV8.cmake:
* WebCore.gypi:
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::set):
* bindings/v8/DOMWrapperWorld.h:
* bindings/v8/ScriptProfiler.cpp:
* bindings/v8/SerializedScriptValue.cpp:
(WebCore::neuterBinding):
* bindings/v8/V8DOMMap.cpp: Removed.
* bindings/v8/V8DOMMap.h: Removed.
* bindings/v8/V8DOMWindowShell.cpp:
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::getCachedWrapper):
(WebCore::V8DOMWrapper::setWrapperClass):
(WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
* bindings/v8/V8NPObject.cpp:
* bindings/v8/WorkerContextExecutionProxy.cpp:
* bindings/v8/WorkerScriptController.cpp:
2012-11-07 Varun Jain <varunjain@chromium.org>
Add new gesture type, LongTap, which is basically the completion of a GestureLongPress
https://bugs.webkit.org/show_bug.cgi?id=101385
Reviewed by Adam Barth.
Test: Only creating the new enum. No functionality change, hence no tests required.
* platform/PlatformEvent.h:
2012-11-05 Emil A Eklund <eae@chromium.org>
Remove LayoutTypes abstraction
https://bugs.webkit.org/show_bug.cgi?id=93050
Reviewed by Levi Weintraub.
Remove LayoutTypes abstraction and rename FractionalLayout* to
Layout* now that all platforms use the FractionalLayout version
(albeit with different fractions).
No new tests, no change in functionality.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* accessibility/AccessibilityNodeObject.cpp:
* accessibility/AccessibilityNodeObject.h:
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.h:
* css/LengthFunctions.cpp:
* css/LengthFunctions.h:
* dom/Document.h:
* dom/DocumentMarkerController.h:
* dom/ElementRareData.h:
* dom/MouseRelatedEvent.h:
* dom/Node.h:
* dom/Touch.h:
* editing/FrameSelection.cpp:
* editing/FrameSelection.h:
* editing/RenderedPosition.h:
* html/HTMLAreaElement.h:
* inspector/InspectorOverlay.h:
* inspector/InspectorTimelineAgent.h:
* inspector/TimelineRecordFactory.cpp:
* inspector/TimelineRecordFactory.h:
* loader/cache/CachedImage.h:
* page/FocusController.h:
* page/FrameView.h:
* page/Page.h:
* page/SpatialNavigation.cpp:
* page/SpatialNavigation.h:
* platform/FractionalLayoutUnit.h: Removed.
* platform/LayoutUnit.h: Copied from Source/WebCore/platform/FractionalLayoutUnit.h.
* platform/Length.h:
* platform/PopupMenuClient.h:
* platform/animation/AnimationUtilities.h:
* platform/graphics/FloatPoint.cpp:
* platform/graphics/FloatPoint.h:
* platform/graphics/FloatRect.cpp:
* platform/graphics/FloatRect.h:
* platform/graphics/FloatSize.cpp:
* platform/graphics/FloatSize.h:
* platform/graphics/FractionalLayoutBoxExtent.cpp: Removed.
* platform/graphics/FractionalLayoutBoxExtent.h: Removed.
* platform/graphics/FractionalLayoutPoint.h: Removed.
* platform/graphics/FractionalLayoutRect.cpp: Removed.
* platform/graphics/FractionalLayoutRect.h: Removed.
* platform/graphics/FractionalLayoutSize.h: Removed.
* platform/graphics/GraphicsLayer.cpp:
* platform/graphics/GraphicsLayerAnimation.cpp:
* platform/graphics/IntRect.cpp:
* platform/graphics/IntRect.h:
* platform/graphics/LayoutBoxExtent.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.cpp.
* platform/graphics/LayoutBoxExtent.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.h.
* platform/graphics/LayoutPoint.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutPoint.h.
* platform/graphics/LayoutRect.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.cpp.
* platform/graphics/LayoutRect.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.h.
* platform/graphics/LayoutSize.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutSize.h.
* platform/graphics/MediaPlayer.h:
* platform/graphics/filters/CustomFilterOperation.h:
* platform/graphics/filters/CustomFilterParameterList.h:
* platform/graphics/filters/FilterOperation.h:
* platform/graphics/filters/FilterOperations.h:
* platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
* platform/graphics/filters/ValidatedCustomFilterOperation.h:
* platform/graphics/qt/FractionalLayoutPointQt.cpp: Removed.
* platform/graphics/qt/FractionalLayoutRectQt.cpp: Removed.
* platform/graphics/qt/FractionalLayoutSizeQt.cpp: Removed.
* platform/graphics/qt/LayoutPointQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutPointQt.cpp.
* platform/graphics/qt/LayoutRectQt.cpp: Added.
* platform/graphics/qt/LayoutSizeQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutSizeQt.cpp.
* platform/graphics/transforms/TransformOperations.h:
* platform/graphics/transforms/TransformState.h:
* platform/graphics/transforms/TransformationMatrix.cpp:
* platform/graphics/transforms/TransformationMatrix.h:
* rendering/AutoTableLayout.h:
* rendering/ColumnInfo.h:
* rendering/ExclusionShapeInsideInfo.h:
* rendering/FilterEffectRenderer.h:
* rendering/FixedTableLayout.h:
* rendering/GapRects.h:
* rendering/HitTestResult.h:
* rendering/HitTestingTransformState.cpp:
* rendering/HitTestingTransformState.h:
* rendering/InlineFlowBox.cpp:
* rendering/LayoutRepainter.cpp:
* rendering/LayoutRepainter.h:
* rendering/LayoutState.h:
* rendering/LayoutTypes.h:
* rendering/LayoutTypesInlineMethods.h:
* rendering/PaintInfo.h:
* rendering/RenderBlock.cpp:
* rendering/RenderBlock.h:
* rendering/RenderBlockLineLayout.cpp:
* rendering/RenderBox.cpp:
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.cpp:
* rendering/RenderBoxModelObject.h:
* rendering/RenderDeprecatedFlexibleBox.cpp:
* rendering/RenderFieldset.cpp:
* rendering/RenderFlexibleBox.cpp:
* rendering/RenderFlowThread.cpp:
* rendering/RenderGeometryMap.h:
* rendering/RenderImageResource.h:
* rendering/RenderInline.cpp:
* rendering/RenderLayer.cpp:
* rendering/RenderLayerFilterInfo.h:
* rendering/RenderLineBoxList.cpp:
* rendering/RenderListMarker.cpp:
* rendering/RenderMarquee.cpp:
* rendering/RenderMenuList.h:
* rendering/RenderMultiColumnBlock.cpp:
* rendering/RenderMultiColumnSet.cpp:
* rendering/RenderNamedFlowThread.cpp:
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
* rendering/RenderOverflow.h:
* rendering/RenderRegion.cpp:
* rendering/RenderReplaced.cpp:
* rendering/RenderTable.cpp:
* rendering/RenderTable.h:
* rendering/RenderText.cpp:
* rendering/RenderThemeChromiumCommon.cpp:
* rendering/RenderThemeChromiumCommon.h:
* rendering/RenderTreeAsText.cpp:
* rendering/RenderTreeAsText.h:
* rendering/RenderView.h:
* rendering/style/NinePieceImage.h:
* rendering/style/RenderStyle.h:
* rendering/style/ShadowData.cpp:
* rendering/style/ShadowData.h:
* rendering/style/StyleCachedImageSet.h:
* rendering/style/StyleImage.h:
* rendering/svg/SVGRenderSupport.h:
2012-11-07 Alexandru Chiculita <achicu@adobe.com>
CoordinatedGraphicsArgumentCoders should use ValidatedCustomFitlerOperation instead
https://bugs.webkit.org/show_bug.cgi?id=100905
Reviewed by Noam Rosenthal.
Added getters for the validated shaders, so that platform code could extract them.
No new tests, just added two getters.
* platform/graphics/filters/CustomFilterValidatedProgram.h:
(WebCore::CustomFilterValidatedProgram::validatedVertexShader):
(WebCore::CustomFilterValidatedProgram::validatedFragmentShader):
(CustomFilterValidatedProgram):
2012-11-07 Joshua Bell <jsbell@chromium.org>
IndexedDB: Assertion failure with open() within upgradeneeded
https://bugs.webkit.org/show_bug.cgi?id=96947
Reviewed by Dimitri Glazkov.
Postpone creation of the "pending second half open" until the version change
transaction has started.
Test: storage/indexeddb/unblocked-version-changes.html
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseCallbacks.h:
2012-11-07 Alexandru Chiculita <achicu@adobe.com>
[CSS Shaders] Add CustomFilterMeshBoxType to ValidatedCustomFilterOperation
https://bugs.webkit.org/show_bug.cgi?id=100890
Reviewed by Dean Jackson.
Added the CustomFilterMeshBoxType parameter to the ValidatedCustomFilterOperation.
No new tests, this parameter is not used in the implementation yet.
* platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
(WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
* platform/graphics/filters/ValidatedCustomFilterOperation.h:
(WebCore::ValidatedCustomFilterOperation::create):
(WebCore::ValidatedCustomFilterOperation::meshBoxType):
(WebCore::ValidatedCustomFilterOperation::operator==):
(ValidatedCustomFilterOperation):
* rendering/FilterEffectRenderer.cpp:
(WebCore::createCustomFilterEffect):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::computeFilterOperations):
2012-11-07 Sergio Villar Senin <svillar@igalia.com>
[Qt] Implement deleteCookie() for persistent storage
https://bugs.webkit.org/show_bug.cgi?id=101272
Reviewed by Jocelyn Turcotte.
Individual cookies were never persistently cleared as the
deleteCookie() virtual method was not implemented for persistent
storage. That's why cookies were only deleted for the current
session.
* platform/qt/CookieJarQt.cpp:
(WebCore::SharedCookieJarQt::deleteCookie):
(WebCore): added deleteCookie() implementation for persistent
storage.
* platform/qt/CookieJarQt.h:
(SharedCookieJarQt):
2012-11-07 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] Style should update when 'pseudo' attribute is dynamically updated
https://bugs.webkit.org/show_bug.cgi?id=100918
Reviewed by Dimitri Glazkov.
When 'pseudo' attribute is changed and its element is in ShadowTree, we enable the styleShouldRecalc flag.
It would be fast if we have a set of pseudo attribute style value in RuleFeatureSet,
but it might consume a lot of memory.
Test: fast/dom/shadow/pseudo-attribute-dynamic.html
* dom/Element.cpp:
(WebCore::Element::attributeChanged):
2012-11-07 Ulan Degenbaev <ulan@chromium.org>
[V8] WebKit sends unnecessary low memory notification when running memory benchmarks
https://bugs.webkit.org/show_bug.cgi?id=101474
Reviewed by Kentaro Hara.
Do not send low memory notification to V8 when most of memory usage
comes from V8 heap and not DOM objects. In this case V8 can schedule GC
itself more optimally.
* bindings/v8/V8GCController.cpp:
(WebCore::V8GCController::checkMemoryUsage):
2012-11-07 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Open link in this window action
https://bugs.webkit.org/show_bug.cgi?id=101226
Reviewed by Simon Hausmann.
Adds the action to the WebCore context-menu controller.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::checkOrEnableIfNeeded):
* platform/ContextMenuItem.h:
* platform/LocalizedStrings.h:
* platform/qt/LocalizedStringsQt.cpp:
(WebCore::contextMenuItemTagOpenLinkInThisWindow):
2012-11-07 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] closure compiler fixes
https://bugs.webkit.org/show_bug.cgi?id=101459
Reviewed by Pavel Feldman.
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
2012-11-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133712.
http://trac.webkit.org/changeset/133712
https://bugs.webkit.org/show_bug.cgi?id=101461
Broke fast/forms/time* tests on chromium-win. (Requested by
mkwst on #webkit).
* platform/text/win/LocaleWin.cpp:
(WebCore::DateFormatToken::DateFormatToken):
(DateFormatToken):
(WebCore):
(WebCore::isEraSymbol):
(WebCore::isYearSymbol):
(WebCore::isMonthSymbol):
(WebCore::isDaySymbol):
(WebCore::commitLiteralToken):
(WebCore::parseDateFormat):
(WebCore::LocaleWin::ensureShortDateTokens):
(WebCore::convertWindowsDateFormatToLDML):
(WebCore::mapCharacterToDateTimeFieldType):
(WebCore::convertWindowsTimeFormatToLDML):
(WebCore::LocaleWin::dateFormat):
(WebCore::LocaleWin::monthFormat):
(WebCore::LocaleWin::timeFormat):
(WebCore::LocaleWin::shortTimeFormat):
* platform/text/win/LocaleWin.h:
(LocaleWin):
2012-11-07 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: [Regression] Editing formatted source should not be allowed.
https://bugs.webkit.org/show_bug.cgi?id=101355
Reviewed by Pavel Feldman.
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
* inspector/front-end/UISourceCodeFrame.js:
(WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
2012-11-07 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] Use setPseudo() instead of setShadowPseudoId().
https://bugs.webkit.org/show_bug.cgi?id=101306
Reviewed by Kent Tamura.
We would like to remove setShadowPseudoId() and use setPseudo() instead, since ShadowDOM spec now has
'pseudo' attribute.
We change all setShadowPseudoId() invocation to setPseudo() invocation. Also, when AtomicString is not
constructed with AtomicStringFromLiteral, we use it.
No new tests, refactoring.
* WebCore.exp.in:
* dom/Element.cpp:
* dom/Element.h:
(Element):
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
* html/ColorInputType.cpp:
(WebCore::ColorInputType::createShadowSubtree):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::updatePlaceholderText):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::createShadowSubtree):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::updatePlaceholderText):
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::buildBubbleTree):
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitLiteral):
(WebCore::DateTimeEditElement::DateTimeEditElement):
* html/shadow/DateTimeFieldElement.cpp:
(WebCore::DateTimeFieldElement::initialize):
* html/shadow/DateTimeFieldElement.h:
(DateTimeFieldElement):
* html/shadow/PickerIndicatorElement.cpp:
(WebCore::PickerIndicatorElement::PickerIndicatorElement):
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCueBox::TextTrackCueBox):
(WebCore::TextTrackCue::updateDisplayTree):
* testing/Internals.cpp:
(WebCore::Internals::setShadowPseudoId):
2012-11-07 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] Save CanvasGradient objects state for a replay
https://bugs.webkit.org/show_bug.cgi?id=101432
Reviewed by Pavel Feldman.
Save CanvasGradient resource state for a subsequent replay. The gradient's state is modified by the gradient.addColorStop() call.
Test: inspector/profiler/canvas2d/canvas2d-gradient-capturing.html
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
2012-11-07 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: [Regression] Snippets evaluations should not appear in Sources tab of navigator.
https://bugs.webkit.org/show_bug.cgi?id=101354
Reviewed by Pavel Feldman.
* inspector/front-end/DebuggerScriptMapping.js:
* inspector/front-end/NetworkUISourceCodeProvider.js:
(WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
* inspector/front-end/Script.js:
(WebInspector.Script.prototype.isSnippet):
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.ScriptSnippetModel.prototype._snippetIdForSourceURL):
2012-11-07 Dan Carney <dcarney@google.com>
[V8] Cleanup V8DOMWrapper::getCachedWrapper
https://bugs.webkit.org/show_bug.cgi?id=100853
Reviewed by Adam Barth.
Slight cleanup. Removed redundant branch.
No new tests. No change in functionality.
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::getCachedWrapper):
2012-11-07 Simon Hausmann <simon.hausmann@digia.com>
[Qt] Unreviewed trivial build fix adapting to QtMultimedia API changes
The QtMultimedia namespace is now called QMultimedia and
QtMultimedia::MetaData is now QMediaMetaData.
* platform/graphics/qt/MediaPlayerPrivateQt.cpp:
(WebCore::MediaPlayerPrivateQt::supportsType):
(WebCore::MediaPlayerPrivateQt::totalBytes):
2012-11-07 Christophe Dumez <christophe.dumez@intel.com>
Add replaceWithLiteral() method to WTF::String
https://bugs.webkit.org/show_bug.cgi?id=101257
Reviewed by Benjamin Poulain.
Substitute String::replace() calls by String::replaceWithLiteral() where
adequate, for efficiency.
No new tests, no behavior change.
* dom/Node.cpp:
(WebCore::Node::showNode):
* editing/EditingStyle.cpp:
(WebCore::StyleChange::extractTextStyles):
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::setSearch):
* loader/FormSubmission.cpp:
(WebCore::appendMailtoPostFormDataToURL):
* platform/network/soup/ProxyResolverSoup.cpp:
(soupProxyResolverWkSetProperty):
* plugins/PluginView.cpp:
(WebCore::makeURL):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::showBox):
* xml/XSLTProcessor.cpp:
(WebCore::transformTextStringToXHTMLDocumentString):
2012-11-07 Kenneth Rohde Christiansen <kenneth@webkit.org>
Remove support for "desktop-width" in the viewport meta tag
https://bugs.webkit.org/show_bug.cgi?id=101217
Reviewed by Gyuyoung Kim.
This has been removed from the CSS Device Adaptation spec, and
should be safe to remove as it is not documented anywhere (neither
in blog posts).
The viewport meta should only support the legacy features.
* dom/ViewportArguments.cpp:
(WebCore::computeViewportAttributes):
(WebCore::findSizeValue):
(WebCore::findScaleValue):
(WebCore::findUserScalableValue):
* dom/ViewportArguments.h:
2012-11-07 Dominik Röttsches <dominik.rottsches@intel.com>
[EFL] Fix execution of exif-orientation-image-document.html on EFL Wk2 bot
https://bugs.webkit.org/show_bug.cgi?id=101343
Reviewed by Kenneth Rohde Christiansen.
Add Cairo to the list of backends that support shouldRespectImageOrientation.
No new tests, fixes exif-orientation-image-document.html.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::shouldRespectImageOrientation):
2012-11-06 Yury Semikhatsky <yurys@chromium.org>
Console not displaying all properties of an Object once native Constructor overwritten
https://bugs.webkit.org/show_bug.cgi?id=101320
Reviewed by Pavel Feldman.
Use Object instance from {}.constructor when formatting inspector messages in the
injected script. Otherwise inspected page may overwrite Object value and break inspector.
Test: inspector/console/console-Object-overwritten.html
* inspector/InjectedScriptSource.js:
2012-11-06 Keishi Hattori <keishi@webkit.org>
Implement month picking to calendar picker
https://bugs.webkit.org/show_bug.cgi?id=101333
Reviewed by Kent Tamura.
This adds month picker mode to CalendarPicker.
No new tests. Tests will be added later when this feature is enabled in DRT.
* Resources/pagepopups/calendarPicker.css:
(.month-mode .day): Remove rounded corners when in month mode.
* Resources/pagepopups/calendarPicker.js:
(Month.createFromToday): Creates month containing today.
(CalendarPicker): Set this.selectionConstructor to Day or Month depending on the mode. Create DayTables or MonthPickerDaysTable depending on the mode.
(CalendarPicker.prototype.handleToday):
(CalendarPicker.prototype._layoutButtons):
(DaysTable.prototype._renderMonth): Set element.dataset.monthValue for all date nodes.
(DaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
(DaysTable.prototype.selectRange): Selects a day.
(DaysTable.prototype.selectRangeAndShowEntireRange): Same as selectRange.
(DaysTable.prototype._selectRangeContainingNode):
(DaysTable.prototype._rangeForNode): Returns Day for node.
(DaysTable.prototype.startDate): Start datetime of visible date range. This value is inclusive.
(DaysTable.prototype.endDate): End datetime of visible date range. This value is exclusive.
(DaysTable.prototype._handleKey):
(MonthPickerDaysTable):
(MonthPickerDaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
(MonthPickerDaysTable.prototype.selectRange): Selects month. If month is not visible, navigates to that month.
(MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects month. Navigates to the month.
(MonthPickerDaysTable.prototype._rangeForNode): Returns Month for node.
(MonthPickerDaysTable.prototype._handleKey): Arrow keys simply move the selection forwards or backwards.
2012-11-06 Dan Beam <dbeam@chromium.org>
Enable REQUEST_AUTOCOMPLETE for chromium port
https://bugs.webkit.org/show_bug.cgi?id=101376
Reviewed by Adam Barth.
Added a runtime enabled feature to control whether HTMLFormElement#requestAutocomplete is visible from JavaScript.
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures):
Added a binding from RuntimeEnabledFeatures that triggers [V8EnabledAtRuntime=requestAutocomplete].
(WebCore::RuntimeEnabledFeatures::requestAutocompleteEnabled):
Added a getter to WebCore to ask whether the runtime flag requestAutocomplete is on.
(WebCore::RuntimeEnabledFeatures::setRequestAutocompleteEnabled):
Added a setter to WebCore to affect the runtime flag requestAutocomplete.
* html/HTMLFormElement.idl:
Wrapped commonly grouped features in an #if defined(ENABLED_REQUEST_AUTOCOMPLETE) block and added [V8EnableAtRuntime]
so these features can be changed with a command line switch in the chromium port.
2012-11-06 Adam Barth <abarth@webkit.org>
[V8] Unify setJSWrapperForDOMObject and setJSWrapperForDOMNode
https://bugs.webkit.org/show_bug.cgi?id=101422
Reviewed by Kentaro Hara.
This patch is another incremental step towards the patch in Bug 10110.
In this step, we unify setJSWrapperForDOMObject and
setJSWrapperForDOMNode.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNormalAttrGetter):
(GenerateConstructorCallback):
(GenerateNamedConstructorCallback):
(GenerateToV8Converters):
* bindings/scripts/test/V8/V8Float64Array.h:
(WebCore::V8Float64Array::wrap):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore::V8TestActiveDOMObject::wrap):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore::V8TestCustomNamedGetter::wrap):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore::V8TestEventConstructor::wrap):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore::V8TestEventTarget::wrap):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore::V8TestException::wrap):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::V8TestInterface::wrap):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::V8TestMediaQueryListListener::wrap):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::V8TestNamedConstructor::wrap):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::constructorCallback):
(WebCore::V8TestNode::wrapSlow):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore::V8TestObj::wrap):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::V8TestSerializedScriptValueInterface::wrap):
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::get):
(DOMDataStore):
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
(WebCore::V8DOMWrapper::setJSWrapperPrivate):
(WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::v8HTMLImageElementConstructorCallback):
2012-11-06 Ken Buchanan <kenrb@chromium.org>
Crash due to column span under button element
https://bugs.webkit.org/show_bug.cgi?id=101402
Reviewed by Abhishek Arya.
When there is a column-spanning child of a RenderButton
splitBlocks() must split the RenderButton as well as its
only permitted direct child, the anonymous block referenced
by m_inner. A crash was occurring because splitBlocks()
calls addChildIgnoringAnonymousColumnBlocks() to add the
cloned m_inner to the cloned RenderButton, which meant the
m_inner for the cloned RenderButton was not being set even
though a child was being added. This violates state
assumptions in the RenderButton code.
This patch prevents any descendants of RenderButton from
spanning columns. Also, it adds a precautionary check in
RenderButton::removeChild() to mitigate problems if similar
state problems are found in future.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::containingColumnsBlock):
* rendering/RenderButton.cpp:
(WebCore::RenderButton::removeChild):
2012-11-06 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] Pseudo custom-elements should start with 'x-'.
https://bugs.webkit.org/show_bug.cgi?id=100919
Reviewed by Dimitri Glazkov.
Pseuco custom-elements should start with 'x-'. 'Pseudo' starting with '-webkit-' should work
only in UserAgent ShadowDOM. If it's used in Author ShadowDOM, it should not work.
Test: fast/dom/shadow/pseudo-attribute-rendering.html
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkSelector): Added ShadowRoot type check.
2012-11-06 Chris Evans <cevans@google.com>
Re-order variables in BidiRun and LayoutState
https://bugs.webkit.org/show_bug.cgi?id=100173
Reviewed by Eric Seidel.
The variable re-ordering and use of bitfields for bools has two benefits:
1) Size reduction. sizeof(BidiRun) goes down from 48 to 40 bytes on 64-bit. This is achieved by removing a bool member variable from BidiRun and packing it together with other bools in the BidiCharacterRun base class.
2) Security improvement. We have a lot of use-after-free in the RenderObject hierarchy, and the RenderArena class protects us from a lot of trouble by ensuring that objects of arbitrary type cannot be overlayed on top of freed RenderObjects. This change additionally makes sure that non-virtual RenderArena allocated objects do not have member variables which fully overlap the freed vtable pointer. This leaves re-used vtable pointers always pointing to either a valid vtable or an invalid address due to the freelist high-bit poisoning.
This change is exclusively about size savings; it is performance neutral as you would expect, including on Parser/html5-full-render.html
* platform/text/BidiResolver.h:
(WebCore::BidiCharacterRun::BidiCharacterRun): impact from re-ordering members.
(BidiCharacterRun): provide an efficiently packed bit of storage for BidiRun subclass to use, and re-order members to place bools adjacent.
* rendering/BidiRun.h:
(WebCore::BidiRun::BidiRun): use base class' efficiently packed bit storage for m_hasHyphen.
(BidiRun): m_hasHyphen is now stored in the base class.
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/LayoutState.h:
(WebCore::LayoutState::LayoutState): impact from re-ordering members.
(LayoutState): re-order members to place bools adjacently.
2012-11-06 Kent Tamura <tkent@chromium.org>
[Chromium-win] Refactor date/time format conversion code in LocaleWin
https://bugs.webkit.org/show_bug.cgi?id=101329
Reviewed by Kentaro Hara.
convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
similar jobs with different code. We can merge them into one function.
As for the date format conversion, we have tokenized a format string and
stored token objects into a vector. We skip token object generation and
generate a LDML-compliant pattern string during parsing.
No new tests. This should make no behavior changes and
WebKit/chromium/tests/LocaleWinTest.cpp has test cases.
* platform/text/win/LocaleWin.cpp:
(WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
convertWindowsTimeFormatToLDML.
(WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
(WebCore::convertWindowsDateTimeFormat):
Renamed from parseDateFormat, and supports time format symbols.
(WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
(WebCore::LocaleWin::monthFormat): Ditto.
(WebCore::LocaleWin::timeFormat): Ditto.
(WebCore::LocaleWin::shortTimeFormat): Ditto.
* platform/text/win/LocaleWin.h:
(LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.
2012-11-06 Elliott Sprehn <esprehn@chromium.org>
Make Document::renderer faster by using the cached ptr for RenderView
https://bugs.webkit.org/show_bug.cgi?id=101409
Reviewed by Eric Seidel.
In Bug 101277 I made Document::renderView() just return m_renderView instead
of casting the result of renderer(). While this made renderView() cheaper it
makes more sense to just make renderer() faster for Document pointers and
go back to the out of line method in RenderView.h because lots of places in
the code do document()->renderer().
No new tests, this is just a refactor.
* dom/Document.h:
(WebCore::Document::renderer):
* rendering/RenderView.h:
(WebCore::Document::renderView):
2012-11-06 Adam Barth <abarth@webkit.org>
[V8] neuterBinding should remember the type of its argument
https://bugs.webkit.org/show_bug.cgi?id=101413
Reviewed by Kentaro Hara.
This is a small part of the patch in
https://bugs.webkit.org/show_bug.cgi?id=101110 that we can land
separately to try to tease out what is causing the memory regression.
* bindings/v8/SerializedScriptValue.cpp:
(WebCore):
(WebCore::neuterBinding):
2012-11-06 Alexey Proskuryakov <ap@apple.com>
Clean up which storage cookie jar functions use
https://bugs.webkit.org/show_bug.cgi?id=101395
Reviewed by Brady Eidson.
* WebCore.exp.in:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
Updated for two new WKSI functions.
* platform/CookieJar.h: Added explanatory comments.
* platform/mac/CookieJar.mm:
(WebCore::cookies): Removed fallback on NSHTTPCookieStorage, the WKSI function
already implements it.
(WebCore::cookieRequestHeaderFieldValue): Ditto.
(WebCore::setCookies): Ditto.
(WebCore::cookiesEnabled): Ditto.
(WebCore::getRawCookies): Ditto.
(WebCore::deleteCookie): Ditto.
(WebCore::getHostnamesWithCookies): This function used to look at NSHTTPCookieStorage
exclusively. While it makes sense to bypass private storage session, default storage
session (currently only used for testing on Mac) is never OK to bypass. Changed to
use a WKSI function that supports both.
(WebCore::deleteCookiesForHostname): Ditto.
(WebCore::deleteAllCookies): Ditto.
* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::getHostnamesWithCookies):
(WebCore::deleteCookiesForHostname):
(WebCore::deleteAllCookies):
Updated to match Foundation, so now these functions bypass private session.
* platform/network/cf/CookieStorageCFNet.cpp:
(WebCore::currentCFHTTPCookieStorage): Updated a comment.
(WebCore::defaultCFHTTPCookieStorage): Added a function that returns cookie storage
for non-private session (or null if that would be an NSHTTPCookieStorage).
(WebCore::startObservingCookieChanges): We do not want to observe private cookies
here, and we certainly don't want a mismatch between start/stop due to private
browsing mode changes.
(WebCore::stopObservingCookieChanges): Ditto.
* platform/network/cf/CookieStorageCFNet.h: Added defaultCFHTTPCookieStorage().
2012-11-06 Huang Dongsung <luxtella@company100.net>
Build fix. r133601 broke the Windows build.
https://bugs.webkit.org/show_bug.cgi?id=101404
Reviewed by Noam Rosenthal.
Only static const integral data members can be initialized within a class in the
Windows, so we initialize static const double date members out of the class.
* platform/graphics/texmap/TextureMapper.cpp:
(BitmapTexturePool):
(WebCore):
2012-11-06 Simon Fraser <simon.fraser@apple.com>
-webkit-background-clip:text produces artifacts when applied to the body and the browser is resized
https://bugs.webkit.org/show_bug.cgi?id=89287
Reviewed by Beth Dakin.
If the body had -webkit-background-clip: text, we'd fail to paint
anything behind it, so would see garbage pixels.
Fix by having RenderView::paintBoxDecorations() check for a background-clip of "text"
on the renderer that paints the root background.
Added some new pixel tests for combinations of html and body transform
and backgrounds; earlier versions of the patch broke some of these tests.
Tests: fast/backgrounds/background-clip-text-on-body.html
fast/backgrounds/transformed-body-background.html
fast/backgrounds/transformed-body-html-background.html
fast/backgrounds/transformed-html-body-background.html
* rendering/RenderView.cpp:
(WebCore::rendererObscuresBackground): Broke up the single condition
into early 'false' returns when possible. We need to also check whether
the renderer that actually paints the background (which might be the body)
will fill it; background-clip: text does not.
(WebCore::RenderView::paintBoxDecorations): Rather than checking firstChild(),
actually check the root renderer, so that we can reliably get to the renderer
that mains the root background.
2012-11-06 Stephen White <senorblanco@chromium.org>
Implement save and restore for a bunch of InternalSettings state
https://bugs.webkit.org/show_bug.cgi?id=101394
Reviewed by Dirk Pranke.
In http://trac.webkit.org/changeset/133399, I resolved a bunch of
flaky tests by saving and restoring the InternalSettings state
EnableCompositingForFixedPosition. On a hunch, I git grepped for all
internal settings state which is being set by layout tests but not
saved and restored. It turns out there about 15 calls.
This patch takes care of five of them, mostly compositing-related.
The others I was either not sure about, or were already at least
being reset to known values by the testing harness.
Hopefully this will alleviate some further test flakiness.
* testing/InternalSettings.cpp:
* testing/InternalSettings.h:
2012-11-06 KyungTae Kim <ktf.kim@samsung.com>
Fix build warning in RenderLayer.cpp caused by r133628
https://bugs.webkit.org/show_bug.cgi?id=101401
Reviewed by Simon Fraser.
The static function WebCore::frameViewFromLayer is only used when USE(ACCELERATED_COMPOSITING),
so define it only that case for removing -Wunused-function warning
* rendering/RenderLayer.cpp:
(WebCore):
2012-11-06 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Store ExclusionPolygonEdge vertices in clockwise order
https://bugs.webkit.org/show_bug.cgi?id=100763
Reviewed by Darin Adler.
The ExclusionPolygon's internal logic, notably getVertexIntersectionVertices(),
assumes that ExclusionPolygonEdge vertices are stored in clockwise order.
If this is not true, then we construct the polygon's edges in reverse.
To determine if the vertices are in clockwise order, we compare the slope
of the line between the top,left vertex and its previous vertex, with the
the slope of the line of vertices before and after the top,left vertex.
If the slope of the latter is greater, then top,left vertex is located
to its left, and the vertices are clockwise.
Test: fast/exclusions/shape-inside/shape-inside-counterclockwise-polygon.html
* rendering/ExclusionPolygon.cpp:
(WebCore::determinant): Used to decide if the min vertex is on the left side of the line that passes through its adjacent vertices.
(WebCore::ExclusionPolygon::ExclusionPolygon): If the polygon's vertices are specified in counterclockwise order, construct the edges in reverse.
(WebCore::appendIntervalX): Made this an inline since it was only defined as a function for the sake of clarity.
2012-11-06 Tiancheng Jiang <tijiang@rim.com>
[BlackBerry] Update BB10 form theme.
https://bugs.webkit.org/show_bug.cgi?id=100760
Reviewed by Rob Buis.
RIM PR 238123
Internal Reviewed by Chris Hutten-Czapski
BB10 selection theme use slice image function to draw selection button,
any border-radius setting other than 0 will make the button corner
clipped. Always set button border-radius: 0 for BB10 theme.
* css/themeBlackBerry.css:
(select[size][multiple]):
(select[size="1"]):
2012-11-06 Elliott Sprehn <esprehn@chromium.org>
Remove branch from inside RenderObject::view now that renderer() is more expensive
https://bugs.webkit.org/show_bug.cgi?id=101277
Reviewed by Eric Seidel.
It was observed in Bug 100057 that calling renderer() repeatedly now that it has a branch
can be a performance regression. Now that we no longer keep a separate pointer for rare data
in Document, we can use that space for a pointer to the RenderView making RenderObject::view()
faster and removing the branch.
This is a 1% improvement on Parser/html5-full-render.html
This also cleans up the code because it turns out we don't need to have RenderObject::view() in
RenderView.h because we can just call Document::renderView() and not do toRenderView. This makes
it easier to find this method as it exists in the right header file now.
No new tests, this is just a refactor.
* WebCore.exp.in: Remove export of Document::renderView since it's inline now.
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::setRenderer):
(WebCore):
* dom/Document.h:
(WebCore::Document::renderView):
(Document):
* rendering/RenderObject.h:
(WebCore::RenderObject::view):
* rendering/RenderView.h:
(WebCore):
2012-11-06 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133526.
http://trac.webkit.org/changeset/133526
https://bugs.webkit.org/show_bug.cgi?id=101388
May have caused 15% memory regression in Chromium (Requested
by jsbell|gardener on #webkit).
* UseV8.cmake:
* WebCore.gypi:
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNormalAttrGetter):
(GenerateConstructorCallback):
(GenerateNamedConstructorCallback):
(GenerateToV8Converters):
(GetDomMapFunction):
(GetDomMapName):
* bindings/scripts/test/V8/V8Float64Array.h:
(WebCore::V8Float64Array::wrap):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore::V8TestActiveDOMObject::wrap):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore::V8TestCustomNamedGetter::wrap):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore::V8TestEventConstructor::wrap):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore::V8TestEventTarget::wrap):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore::V8TestException::wrap):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::V8TestInterface::wrap):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::V8TestMediaQueryListListener::wrap):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::V8TestNamedConstructor::wrap):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::constructorCallback):
(WebCore::V8TestNode::wrapSlow):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore::V8TestObj::wrap):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::V8TestSerializedScriptValueInterface::wrap):
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::DOMDataStore):
(WebCore::DOMDataStore::~DOMDataStore):
(WebCore::DOMDataStore::current):
(WebCore::DOMDataStore::reportMemoryUsage):
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::domNodeMap):
(WebCore::DOMDataStore::domObjectMap):
(DOMDataStore):
* bindings/v8/DOMWrapperMap.h:
(WebCore):
(DOMWrapperMap):
(WebCore::DOMWrapperMap::~DOMWrapperMap):
(WebCore::DOMWrapperHashMap::remove):
* bindings/v8/DOMWrapperWorld.h:
* bindings/v8/IntrusiveDOMWrapperMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
(WebCore):
(IntrusiveDOMWrapperMap):
(WebCore::IntrusiveDOMWrapperMap::weakCallback):
* bindings/v8/ScriptProfiler.cpp:
* bindings/v8/SerializedScriptValue.cpp:
(WebCore::neuterBinding):
* bindings/v8/V8DOMMap.cpp: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
(WebCore):
(WebCore::getDOMNodeMap):
(WebCore::getDOMObjectMap):
* bindings/v8/V8DOMMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
(WebCore):
* bindings/v8/V8DOMWindowShell.cpp:
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
(WebCore):
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
(WebCore::V8DOMWrapper::getCachedWrapper):
(WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
* bindings/v8/V8GCController.cpp:
* bindings/v8/V8NPObject.cpp:
* bindings/v8/WorkerContextExecutionProxy.cpp:
* bindings/v8/WorkerScriptController.cpp:
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::v8HTMLImageElementConstructorCallback):
2012-11-06 Alexey Proskuryakov <ap@apple.com>
Some cookie code cleanup
https://bugs.webkit.org/show_bug.cgi?id=101375
Reviewed by Dan Bernstein.
* platform/CookieJar.h: Fixed style. Grouped functions by which storage they operate
on in Mac port, but didn't add explanatory comments yet, because this is different
in some ports.
* platform/mac/CookieJar.mm:
(WebCore): Removed special code for isHTTPOnly, it's present in Foundation in all
supported OS X versions.
(WebCore::filterCookies): Use -isHTTPOnly directly.
(WebCore::cookies): Get rid of a variable for URL, implicit conversion works just as well.
(WebCore::cookieRequestHeaderFieldValue): Ditto.
(WebCore::setCookies): Assert that no more than one cookie was created from one
Set-Cookie header, document.cookie can only be used to set one cookie at a time.
(WebCore::getRawCookies): Removed useless local variables.
* platform/network/CookieStorage.h: Removed an unneeded include, clarified a comment.
* platform/network/HTTPHeaderMap.h: Added a FIXME.
2012-11-06 John Griggs <jgriggs@rim.com>
Implement MediaPlayerPrivate::didLoadingProgress for BlackBerry platform
https://bugs.webkit.org/show_bug.cgi?id=100378
Reviewed by Eric Carlson.
Implement this method for BlackBerry platform.
New test: LayoutTests/media/progress-events-generated-correctly.html
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::didLoadingProgress):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
(MediaPlayerPrivate):
2012-11-06 Adam Barth <abarth@webkit.org>
DOMImplementation should use ScriptWrappable
https://bugs.webkit.org/show_bug.cgi?id=101279
Reviewed by Eric Seidel.
This patch makes DOMImplementation ScriptWrappable. Both the V8 and JSC
bindings automatically detect the presence of this base class and use
it to optimize getting and setting JavaScript wrappers.
This patch is a 23% progression on Bindings/document-implementation for
the V8 bindings and a 69% progression for the JSC bindings.
* dom/DOMImplementation.h:
2012-11-06 Benjamin Poulain <benjamin@webkit.org>
Speed up TransformationMatrix::multiply() on modern ARM
https://bugs.webkit.org/show_bug.cgi?id=101084
Reviewed by Gavin Barraclough.
The main improvements are:
-Store the full source matrix in the registers d16 to d31. This way we avoid going
back and forth to memory to use the operands.
Since the full matrix is in register, we can also directly modify the memory of m_matrix,
we no longer need the temporary matrix memcopied at the end.
-Use of LoadMultiple and StoreMultiple to load-store the matrix parameters.
-Use Multiply-Accumulate instead of VMUL followed by VADD. This half the number of instruction.
-On regular ARMv7, using a loop to reuse the same code for each row also improve the performance.
Depending on the hardware, the new code takes 20% to 42% less time than the basic implementation.
* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::multiply):
* platform/graphics/transforms/TransformationMatrix.h:
(TransformationMatrix):
2012-11-06 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133529 and r133562.
http://trac.webkit.org/changeset/133529
http://trac.webkit.org/changeset/133562
https://bugs.webkit.org/show_bug.cgi?id=101371
Caused 15% memory regression on Chromium page cyclers
(Requested by jsbell|gardener on #webkit).
* platform/text/LineBreakIteratorPoolICU.h:
(WebCore::LineBreakIteratorPool::take):
(WebCore::LineBreakIteratorPool::put):
(LineBreakIteratorPool):
* platform/text/TextBreakIterator.cpp:
(WebCore::acquireLineBreakIterator):
* platform/text/TextBreakIterator.h:
(WebCore):
(WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
(WebCore::LazyLineBreakIterator::get):
(WebCore::LazyLineBreakIterator::reset):
(LazyLineBreakIterator):
* platform/text/TextBreakIteratorICU.cpp:
(WebCore::acquireLineBreakIterator):
(WebCore::releaseLineBreakIterator):
* platform/text/gtk/TextBreakIteratorGtk.cpp:
(WebCore::setUpIterator):
(WebCore::acquireLineBreakIterator):
* platform/text/wince/TextBreakIteratorWinCE.cpp:
(WebCore::acquireLineBreakIterator):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextLineBreak):
* rendering/RenderText.cpp:
(WebCore::RenderText::computePreferredLogicalWidths):
* rendering/RenderText.h:
(WebCore):
* rendering/break_lines.cpp:
(WebCore):
(WebCore::isBreakableSpace):
(WebCore::needsLineBreakIterator):
(WebCore::nextBreakablePosition):
(WebCore::nextBreakablePositionIgnoringNBSP):
* rendering/break_lines.h:
(WebCore):
(WebCore::isBreakable):
2012-11-06 Peter Beverloo <peter@chromium.org>
[Chromium] Enable the JavaScript i18n API for Android
https://bugs.webkit.org/show_bug.cgi?id=101357
Reviewed by Adam Barth.
Remove the conditional dependency on the v8-i18n API. The library is now
always available in a Chromium for Android checkout.
* WebCore.gyp/WebCore.gyp:
2012-11-06 Adam Barth <abarth@webkit.org>
ScriptWrappable should work for more than just Node
https://bugs.webkit.org/show_bug.cgi?id=101319
Reviewed by Eric Seidel.
This patch generalizes the inline cached wrapper code path to work with
all subclasses of ScriptWrappable, not just Node.
* bindings/js/JSDOMBinding.h:
(WebCore::setInlineCachedWrapper):
(WebCore::getInlineCachedWrapper):
(WebCore):
(WebCore::clearInlineCachedWrapper):
(WebCore::cacheWrapper):
* bindings/js/JSNodeCustom.h:
2012-11-06 Tiancheng Jiang <tijiang@rim.com>
[BlackBerry] Update BB10 form theme.
https://bugs.webkit.org/show_bug.cgi?id=100760
Reviewed by Rob Buis.
Revert webkit/ce306dcc698199a6f7ce679daf0a30c25d3a3d43 slider theme
change which break media control and vertical slider.
RIM PR 236993
Internal Reviewed by Jeff Rogers.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
(WebCore::RenderThemeBlackBerry::paintSliderThumb):
2012-11-06 Michael Saboff <msaboff@apple.com>
canonicalizedTitle() shouldn't convert 8 bit title strings to 16 bit
https://bugs.webkit.org/show_bug.cgi?id=101105
Reviewed by Darin Adler.
Turned canonicalizedTitle() into a templated function based on character type.
Changed call in updateTitle() to check the bitness of the title string to call
the right template flavor of canonicalizedTitle().
Made supporting changes by adding displayBufferModifiedByEncoding(LChar*, ...)
and made TextEncoding::displayBuffer() a templated function as well.
No new tests needed, as functionality is unchanged.
* dom/Document.cpp:
(WebCore::canonicalizedTitle):
(WebCore::Document::updateTitle):
(WebCore::Document::displayBufferModifiedByEncodingInternal):
* dom/Document.h:
(WebCore::Document::displayBufferModifiedByEncoding):
* platform/text/TextEncoding.h:
(TextEncoding):
(WebCore::TextEncoding::displayBuffer):
2012-11-05 Simon Fraser <simon.fraser@apple.com>
Fix RenderGeometryMap assertion when layers are scrolled during layout
https://bugs.webkit.org/show_bug.cgi?id=101292
Reviewed by Beth Dakin.
When we set RenderLayer scroll positions as part of layout, we don't want
to update compositing layers right away. Updating compositing layers
requires that the entire layer tree has been updated from renderers,
so that the geometry of all RenderLayers can be trusted. When this state
was violated, RenderGeometryMap asserts.
Fix by bailing from updateCompositingLayersAfterScroll() if FrameView
tells us that we're doing layout. A full update of the compositing layers
will happen later anyway.
Test: compositing/geometry/geometry-map-scroll-during-layout-assertion.html
* rendering/RenderLayer.cpp:
(WebCore::frameViewFromLayer):
(WebCore::RenderLayer::updateCompositingLayersAfterScroll):
2012-11-06 Michael Saboff <msaboff@apple.com>
quoteCSSString() always creates a 16 bit string
https://bugs.webkit.org/show_bug.cgi?id=101004
Reviewed by Darin Adler.
Added a new templated helper based on character type from the logic of quoteCSSString() to process
the argument string based on its native bitness.
Functionality covered by existing tests.
* css/CSSParser.cpp:
(WebCore::quoteCSSStringInternal):
(WebCore::quoteCSSString):
2012-11-06 Andras Becsi <andras.becsi@digia.com>
[Qt][WK2] Fit-to-width broken on pages with viewport meta tag
https://bugs.webkit.org/show_bug.cgi?id=99715
Reviewed by Jocelyn Turcotte.
Add a bool that indicates if the content had an explicit
initial-scale in the viewport meta tag.
* dom/ViewportArguments.cpp:
(WebCore::computeViewportAttributes):
* dom/ViewportArguments.h:
(ViewportAttributes):
2012-11-06 Mike West <mkwst@chromium.org>
CSP 1.1: Tweak the script interface to match the spec.
https://bugs.webkit.org/show_bug.cgi?id=101321
Reviewed by Adam Barth.
This patch brings WebKit in line with the changes made to the spec in
https://dvcs.w3.org/hg/content-security-policy/rev/5a29424a37d4.
Specifically, the following:
- Renamed 'document.SecurityPolicy' to 'document.securityPolicy'
- Converted the following to read-only boolean attributes:
- 'allowsEval'
- 'allowsInlineScript'
- 'allowsInlineStyle'
- 'isActive'
These changes only have effect for ports with CSP_NEXT enabled.
Tests: http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinescript.html
http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinestyle.html
* dom/Document.idl:
* page/DOMSecurityPolicy.idl:
Tweaking the IDL files to match the new definition of the
functionlity in the spec.
2012-11-06 Andrey Lushnikov <lushnikov@google.com>
Added console.clear() method
Web Inspector: add console.clear()
https://bugs.webkit.org/show_bug.cgi?id=101021
Reviewed by Vsevolod Vlasov.
Adds native implementation of console.clear
Test: inspector/console/console-clear-function.html
* English.lproj/localizedStrings.js: Adds 'Console was cleared' string
* inspector/ConsoleMessage.cpp:
(WebCore::messageTypeValue): Adds ClearMessageType
* inspector/Inspector.json:
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::addMessageToConsole):
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype._formatMessage): Display strategy for "clear" message
* inspector/front-end/ConsoleModel.js:
* inspector/front-end/inspector.css:
(.console-info): Adds style for the 'console was cleared' message
* page/Console.cpp: backend binging for console.clear()
(WebCore::Console::clear):
(WebCore):
* page/Console.h:
(Console):
* page/Console.idl: Adds 'clear' message to protocol
* page/ConsoleTypes.h:
2012-11-06 Aaron Colwell <acolwell@chromium.org>
Heap-buffer-overflow in WebCore::TextTrackCueList::add
https://bugs.webkit.org/show_bug.cgi?id=101018
Reviewed by Eric Carlson.
Added an extra check to avoid using a negative array index when a cue
is added to the beginning of the list.
Test case added to LayoutTests/media/track/track-add-remove-cue.html.
* html/track/TextTrackCueList.cpp:
(WebCore::TextTrackCueList::add):
2012-11-06 Aaron Colwell <acolwell@chromium.org>
Regression(r132681): Heap-use-after-free in WebCore::RenderTextTrackCue::layout
https://bugs.webkit.org/show_bug.cgi?id=100981
Reviewed by Eric Carlson.
Fixing a TextTrackCue use after free bug. textTrackRemoveCues() needs to be called when
an HTMLTrackElement is removed from an HTMLMediaElement so that references to
TextTrackCues are removed from m_cueTree.
Test: media/track/track-remove-by-setting-innerHTML.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::willRemoveTrack):
2012-10-23 Stephen White <senorblanco@chromium.org>
[skia] Implement reference (url) filters on composited layers.
https://bugs.webkit.org/show_bug.cgi?id=100142
Reviewed by James Robinson.
Covered by css3/filters/effect-reference-hw.html
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
Add new files.
* WebCore.xcodeproj/project.pbxproj:
Mark FilterEffect.h as "private".
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::setFilters):
Use the new SkImageFilter builder and setLayer() infrastructure, but
only if there's a reference filter in the chain.
* platform/graphics/filters/FEBlend.h:
* platform/graphics/filters/FEColorMatrix.h:
* platform/graphics/filters/FEGaussianBlur.h:
* platform/graphics/filters/FELighting.h:
* platform/graphics/filters/FEMorphology.h:
* platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::createImageFilter):
Add createImageFilter() factory function for building SkImageFilters.
* platform/graphics/filters/FilterOperation.h:
(WebCore::FilterOperation::ReferenceFilterOperation::filterEffect):
(WebCore::FilterOperation::ReferenceFilterOperation::setFilterEffect):
Add a FilterEffect member to ReferenceFilterOperation, and accessors
for it.
* platform/graphics/filters/skia/FEBlendSkia.cpp:
(WebCore::FEBlend::createImageFilter):
Implement SkImageFilter building for FEBlend filter.
* platform/graphics/filters/skia/FEColorMatrixSkia.cpp:
(WebCore::createColorFilter):
(WebCore::FEColorMatrix::platformApplySkia):
Refactor creation of SkColorFilter from an FEColorMatrix filter.
(WebCore::FEColorMatrix::createImageFilter):
Implement SkImageFilter building for FEColorMatrix filter.
* platform/graphics/filters/skia/FEGaussianBlurSkia.cpp:
(WebCore::FEGaussianBlur::createImageFilter):
Implement SkImageFilter building for FEGaussianBlur filter.
* platform/graphics/filters/skia/FELightingSkia.cpp:
(WebCore::FELighting::createImageFilter):
Implement SkImageFilter building for FELighting filters.
* platform/graphics/filters/skia/FEMorphologySkia.cpp:
(WebCore::FEMorphology::createImageFilter):
Implement SkImageFilter building for FEMorphology filter.
* platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp: Added.
(WebCore::SkiaImageFilterBuilder::SkiaImageFilterBuilder):
(WebCore::SkiaImageFilterBuilder::build):
* platform/graphics/filters/skia/SkiaImageFilterBuilder.h:
Implement new helper class for building an SkImageFilter DAG from
a FilterEffect DAG. Can also build from FilterOperations list.
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::build):
When building FilterEffects from a reference filter, also store the
generated DAG on the ReferenceFilterOperation itself.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateOrRemoveFilterEffect):
Even when in composited mode, if there's a reference filter in the
chain, build the FilterEffect DAG from it.
2012-11-06 Max Feil <mfeil@rim.com>
[BlackBerry] Automatically go fullscreen on video play
https://bugs.webkit.org/show_bug.cgi?id=101100
Reviewed by Eric Carlson.
There is a requirement to have HTML5 video automatically enter
fullscreen when a video starts playing (PR131774). This change
implements this feature, with restrictions. The main restriction
is adherence to WebKit's philosophy of only entering fullscreen
due to a user gesture. This is important in order to avoid
pop-up advertisements and other unwanted fullscreen content.
One consequence of this is that video elements with the autoplay
attribute will not automatically enter fullscreen.
Other caveats:
- This feature applies only to "small screen" devices where
automatically going fullscreen makes more sense.
- Fullscreen will only be entered automatically when the
video is played from the beginning (current time is zero).
It is assumed that if the user is resuming play from a paused
state and is not in fullscreen mode, then they exited fullscreen
mode intentionally.
Test: platform/blackberry/media/video-automatic-fullscreen.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerEnterFullscreen):
(WebCore):
(WebCore::HTMLMediaElement::mediaPlayerIsFullscreen):
(WebCore::HTMLMediaElement::mediaPlayerIsFullscreenPermitted):
* html/HTMLMediaElement.h:
(HTMLMediaElement):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerEnterFullscreen):
(WebCore::MediaPlayerClient::mediaPlayerIsFullscreen):
(WebCore::MediaPlayerClient::mediaPlayerIsFullscreenPermitted):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::play):
(WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
(WebCore::MediaPlayerPrivate::conditionallyGoFullscreenAfterPlay):
(WebCore):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
(MediaPlayerPrivate):
2012-11-06 Grzegorz Czajkowski <g.czajkowski@samsung.com>
[WK2][EFL][GTK] early return of checkSpellingOfString treats correct words as misspelled
https://bugs.webkit.org/show_bug.cgi?id=101215
Reviewed by Gustavo Noronha Silva.
Save the misspelled location and length of the string to the default values (-1, 0)
at the beginning of the checkSpellingOfString method.
It assumes that the words are spelled correctly and early return of method doesn't
cause assertions in findFirstMisspelling (WebCore/editing/TextCheckingHelper.cpp).
* platform/text/enchant/TextCheckerEnchant.cpp:
(TextCheckerEnchant::checkSpellingOfString):
2012-11-06 Huang Dongsung <luxtella@company100.net>
[TexMap] Remove unused textures in the texture pool.
https://bugs.webkit.org/show_bug.cgi?id=100706
Reviewed by Noam Rosenthal.
Currently, we do not remove textures in the texture pool of
TextureMapper. The texture pool is destroyed when TextureMapper is
destroyed. It means the texture pool consumes texture memory until its
destruction. This patch removes textures if the textures have been not
used in 3 seconds as LayerTreeCoordinator manages UpdateAtlases.
Changing cache policy is not testable in layout tests.
* platform/graphics/texmap/TextureMapper.cpp:
(WebCore::BitmapTexturePoolEntry::BitmapTexturePoolEntry):
(WebCore::BitmapTexturePoolEntry::markUsed):
(WebCore::BitmapTexturePoolEntry::compareTimeLastUsed):
(BitmapTexturePoolEntry):
(WebCore):
(BitmapTexturePool):
(WebCore::BitmapTexturePool::BitmapTexturePool):
(WebCore::BitmapTexturePool::scheduleReleaseUnusedTextures):
(WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
(WebCore::BitmapTexturePool::acquireTexture):
(WebCore::TextureMapper::acquireTextureFromPool):
(WebCore::TextureMapper::TextureMapper):
(WebCore::TextureMapper::~TextureMapper):
* platform/graphics/texmap/TextureMapper.h:
(WebCore):
(TextureMapper):
2012-11-02 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: NMI instrument CachedMetadata. It uses ~300k on plus.google.com
https://bugs.webkit.org/show_bug.cgi?id=101067
Reviewed by Yury Semikhatsky.
Plain vanilla instrumentation for CachedMetadata class.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* loader/CachedMetadata.cpp: Added.
(WebCore):
(WebCore::CachedMetadata::reportMemoryUsage):
* loader/CachedMetadata.h:
(CachedMetadata):
2012-11-06 Alexei Filippov <alph@chromium.org>
Web Inspector: report physical memory really committed for JS heap in NMI
https://bugs.webkit.org/show_bug.cgi?id=101335
Some OSes (e.g. Linux) perform lazy commits of requested memory.
Because of that the committed memory may not retain any physical
memory until the very first access to the committed chunk.
That led to JS heap reported more physical memory than was currently
in use.
Reviewed by Vsevolod Vlasov.
* bindings/v8/ScriptGCEvent.cpp:
(WebCore::ScriptGCEvent::getHeapSize):
2012-11-06 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Breakpoint is not removed when it was set in non-formatted mode and then removed while in formatted mode.
https://bugs.webkit.org/show_bug.cgi?id=100595
Reviewed by Yury Semikhatsky.
Breakpoints in storage are now updated/removed by file name saved from primary location when they were created,
not by the name returned by UISourceCode (as this one could change when UISourceCode is formatted).
SourceFileId is now used across BreakpointManager to specify file name.
And breakpointStorageId is now used to specify (fileName, lineNumber) pair.
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.sourceFileId):
(WebInspector.BreakpointManager.prototype._restoreBreakpoints):
(WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved): Removed redundant check.
(WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
(WebInspector.BreakpointManager.Breakpoint):
(WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
(WebInspector.BreakpointManager.Storage.prototype._restoreBreakpoints):
(set WebInspector.BreakpointManager.Storage.Item):
2012-11-06 Keishi Hattori <keishi@webkit.org>
The "Rect" class in WebCore/Resources/pagepopups/pickerCommon.js should be renamed
https://bugs.webkit.org/show_bug.cgi?id=101304
Reviewed by Kent Tamura.
The name Rect conflicts with CSS Rect.
No new tests. Just renaming.
* Resources/pagepopups/pickerCommon.js:
(Rectangle): Renamed from Rect.
(Rectangle.prototype.toString):
(Rectangle.intersection):
(adjustWindowRect):
(hideWindow):
2012-11-06 Kentaro Hara <haraken@chromium.org>
Replace setDOMWrapper(wrapper, 0) with resetDOMWrapper(wrapper)
https://bugs.webkit.org/show_bug.cgi?id=101190
Reviewed by Adam Barth.
To guarantee that we never stores NULL pointers to V8 internal
fields, we want to insert ASSERT()s to setDOMWrapper().
This patch replaces setDOMWrapper() that intentionally
passes NULL pointers with clearDOMWrapper().
No tests. No change in behavior.
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
(WebCore::V8DOMWrapper::clearDOMWrapper):
* bindings/v8/V8NPObject.cpp:
(WebCore::forgetV8ObjectForNPObject):
2012-11-06 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Displayed name/path of urls in network tab of dev tools is inconsistent
https://bugs.webkit.org/show_bug.cgi?id=101064
Reviewed by Yury Semikhatsky.
Extracted some generic methods from ParsedURL displayName getters (about:blank and data url handlers).
Implemented consistent name() and path() method on NetworkRequest based on ParsedURL.
NetworkPanel now uses name() and path() methods on NetworkRequest to show requests and search for them.
Test: http/tests/inspector/network/request-name-path.html
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._matchRequest):
(WebInspector.NetworkLogView.prototype._highlightMatchedRequests):
(WebInspector.NetworkLogView.prototype.performFilter):
(WebInspector.NetworkDataGridNode.prototype._refreshNameCell):
(WebInspector.NetworkDataGridNode.NameComparator):
* inspector/front-end/NetworkRequest.js:
(WebInspector.NetworkRequest.prototype.set url):
(WebInspector.NetworkRequest.prototype.name):
(WebInspector.NetworkRequest.prototype.path):
(WebInspector.NetworkRequest.prototype._parseNameAndPathFromURL):
* inspector/front-end/ParsedURL.js:
(WebInspector.ParsedURL):
(WebInspector.ParsedURL.prototype.get displayName):
(WebInspector.ParsedURL.prototype.dataURLDisplayName):
(WebInspector.ParsedURL.prototype.isAboutBlank):
(WebInspector.ParsedURL.prototype.isDataURL):
2012-11-05 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: make Spectrum and Popover WebInspector.Views in order to enable reuse
https://bugs.webkit.org/show_bug.cgi?id=101200
Reviewed by Yury Semikhatsky.
- Split Spectrum and SpectrumPopoverHelper (first is a component, second is controller)
- Made Popover a root view in order to enable lazy style loading for potential subviews (such as Spectrum)
- Extracted spectrum's css into a separate file
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/DOMExtension.js:
(Element.prototype.positionAt):
(Size):
(Element.prototype.measurePreferredSize):
* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapSnapshotView.prototype.willHide):
(WebInspector.HeapSnapshotView.prototype._helpClicked):
* inspector/front-end/Popover.js:
(WebInspector.Popover):
(WebInspector.Popover.prototype.show):
(WebInspector.Popover.prototype.showView):
(WebInspector.Popover.prototype._innerShow):
(WebInspector.Popover.prototype.hide):
(WebInspector.Popover.prototype.dispose):
(WebInspector.Popover.prototype._positionElement):
* inspector/front-end/Spectrum.js:
(WebInspector.Spectrum.alphaDrag):
(WebInspector.Spectrum):
(WebInspector.Spectrum.prototype.wasShown):
(WebInspector.SpectrumPopupHelper):
(WebInspector.SpectrumPopupHelper.prototype.spectrum):
(WebInspector.SpectrumPopupHelper.prototype.toggle):
(WebInspector.SpectrumPopupHelper.prototype.show):
(WebInspector.SpectrumPopupHelper.prototype.reposition):
(WebInspector.SpectrumPopupHelper.prototype.hide):
(WebInspector.ColorSwatch):
(WebInspector.ColorSwatch.prototype.setColorString):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane):
(WebInspector.StylesSidebarPane.prototype.update):
(WebInspector.StylesSidebarPane.prototype.willHide):
(WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
* inspector/front-end/View.js:
(WebInspector.View.prototype.measurePreferredSize):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/elementsPanel.css:
(.image-preview-container img):
* inspector/front-end/inspector.css:
(.swatch):
(.swatch-inner):
(.swatch-inner:hover):
* inspector/front-end/spectrum.css: Added.
(.spectrum-container):
(.spectrum-top):
(.spectrum-color):
(.spectrum-display-value):
(.spectrum-hue):
(.spectrum-fill):
(.spectrum-range-container):
(.spectrum-range-container *):
(.spectrum-range-container label):
(.spectrum-range-container input):
(.spectrum-dragger, .spectrum-slider):
(.spectrum-sat):
(.spectrum-val):
(.spectrum-dragger):
(.spectrum-slider):
(.spectrum-container .swatch):
2012-11-06 Takashi Sakamoto <tasak@google.com>
removeAttribute('style') not working in certain circumstances
https://bugs.webkit.org/show_bug.cgi?id=99295
Reviewed by Ryosuke Niwa.
After web developers did style.XXXX=YYYY for some element, the inline
style should be always removable by using "removeAttribute('style')".
Currently it depends on whether web developers invokes
getAttribute('style'), setAttribute('style), and so on. E.g. once they
invoke getAttribute('style'), removeAttribute('style') works. This is
very confusing behavior.
Looking at Firefox browser, removeAttribute('style') always removes
all inline styles.
Test: fast/css/remove-attribute-style.html
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::clear):
Added a new method to remove all style properties.
(WebCore):
* css/StylePropertySet.h:
(StylePropertySet):
* dom/Element.cpp:
(WebCore::Element::removeAttribute):
If 'style' is given but the element has no style attribute, the old
code did nothing. However, if the element is styled element and has any
inline styles, the inline styles should be removed. So invoke
StyledElement::removeAllInlineStyleProperties and if any inline styles
are removed, invoke style recalc, too.
* dom/StyledElement.cpp:
(WebCore::StyledElement::removeAllInlineStyleProperties):
Added a new method to remove all inline style propeties. If any inline
style is removed, invoke inlineStyleChanged() to force style recalc.
(WebCore):
* dom/StyledElement.h:
(StyledElement):
2012-11-06 Alexei Filippov <alph@chromium.org>
Web Inspector: dim size bar for expanded item in native memory snapshot grid
https://bugs.webkit.org/show_bug.cgi?id=101062
Reviewed by Yury Semikhatsky.
* inspector/front-end/nativeMemoryProfiler.css:
(.native-snapshot-view .data-grid .expanded div.size-bar):
2012-11-06 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] Using isUnknownPseudoElement() for shadow pseudo id seems confusing
https://bugs.webkit.org/show_bug.cgi?id=100826
Reviewed by Hajime Morita.
We used isUnknownPseudoElement() for these 3 meanings: 1) the element is a custom pseudo-element (starting with 'x-'),
2) the element is a webkit custom pseudo-element (starting with '-webkit-'), and 3) the element has an unknown type.
We would like to distinguish them when parsing CSSSelector types. Also, we disable using (3) type for using
shadowPseudoId.
In this patch, we allow using WebKitCustomPseudoElement in AuthorShadowRoot, and CustomPseudoElement in
UAShadowRoot. However, we will disable them later.
Test: fast/dom/shadow/shadow-pseudo-id.html
* css/CSSGrammar.y.in: Now we can discard UNKNOWN type. It should not match anything.
* css/CSSParser.cpp:
(WebCore::CSSParser::updateSpecifiersWithElementName):
(WebCore::CSSParser::updateSpecifiers):
* css/CSSParserValues.h:
(WebCore::CSSParserSelector::isCustomPseudoElement):
(CSSParserSelector):
* css/CSSSelector.cpp:
(WebCore::CSSSelector::pseudoId):
(WebCore::CSSSelector::parsePseudoType):
(WebCore::CSSSelector::isCustomPseudoType): Returns true if the type is PseudoUserAgentCustomElement or PseudoWebKitCustomElement.
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
(CSSSelector):
(WebCore::CSSSelector::isCustomPseudoElement):
(WebCore):
* css/CSSSelectorList.cpp:
(WebCore::SelectorHasInvalidSelectorFunctor::operator()): We will reject all selectors which were judged as
UNKNOWN before. i.e. It contians all three types for now.
(WebCore::CSSSelectorList::hasInvalidSelector): Renamed.
* css/CSSSelectorList.h:
(CSSSelectorList):
* css/RuleSet.cpp:
(WebCore::RuleSet::addRule):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkSelector):
* dom/Element.cpp:
(WebCore::Element::setShadowPseudoId):
* dom/SelectorQuery.cpp:
(WebCore::SelectorQueryCache::add):
2012-11-06 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] ShadowRoot should know the existence of elements having ElementShadow.
https://bugs.webkit.org/show_bug.cgi?id=100922
Reviewed by Hajime Morita.
We count the elements having ElementShadow in ShadowRoot. This is a prepation patch for to solve Bug 100451.
We have a count-up and count-down login in ShadowRoot::insertedInto and ShadowRoot::removedFrom.
For performance reason, we have a flag that an element should be unregistered in ShadowRoot.
Test: fast/dom/shadow/has-elementshadow.html
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
(WebCore::ShadowRoot::insertedInto): Count up the number of elements having ElementShadow. ElementShadow
is created only when the oldest ShadowRoot is created, we only count up only when this ShadowRoot is oldest.
(WebCore):
(WebCore::ShadowRoot::removedFrom): Count down if we used this ShadowRoot for count up.
* dom/ShadowRoot.h:
(ShadowRoot):
(WebCore::ShadowRoot::registerElementShadow):
(WebCore::ShadowRoot::unregisterElementShadow):
(WebCore::ShadowRoot::hasElementShadow):
(WebCore::ShadowRoot::countElementShadow):
* testing/Internals.cpp:
(WebCore::Internals::countElementShadow):
(WebCore):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2012-11-06 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: show "debugging session terminated" message when remote debuggign connection is closed unexpectedly.
https://bugs.webkit.org/show_bug.cgi?id=101030
Reviewed by Vsevolod Vlasov.
* inspector/front-end/inspector.js:
(WebInspector.loaded.WebInspector.socket.onclose):
(WebInspector.loaded):
(WebInspector.detached):
2012-11-06 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Overrides] Add Chrome for Android and Firefox for Android user agent strings
https://bugs.webkit.org/show_bug.cgi?id=100666
Reviewed by Pavel Feldman.
* inspector/front-end/SettingsScreen.js:
(WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.get const):
2012-11-02 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: JavaScript web workers debugging crashes
https://bugs.webkit.org/show_bug.cgi?id=101065
Reviewed by Alexander Pavlov.
Clear m_pageInspector when page inspector instance is deleted.
Disable worker inspection when front-end disconnects.
Test: inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html
* inspector/InspectorWorkerAgent.cpp:
(WebCore::InspectorWorkerAgent::WorkerFrontendChannel::~WorkerFrontendChannel): notify
WorkerMessagingProxy so that it can clear pointer to the channel.
2012-11-06 Nikita Vasilyev <me@elv1s.ru>
Web Inspector: Console: wrap long URLs
https://bugs.webkit.org/show_bug.cgi?id=100970
Reviewed by Yury Semikhatsky.
* inspector/front-end/inspector.css:
(.console-message-url):
2012-11-05 Keishi Hattori <keishi@webkit.org>
Introduce Day class to calendar picker
https://bugs.webkit.org/show_bug.cgi?id=101194
Reviewed by Kent Tamura.
Introducing Day class so day, week, and month can all be abstracted. To
solve some of the complexity around which months to show, I made
CalendarPicker in charge of it. This also made YearMonthController and
DaysTable independent of each other.
No new tests. Covered by existing calendar-picker-*.html tests.
* Resources/pagepopups/calendarPicker.js:
(createUTCDate): Allow negative month or date.
(parseDateString): Will return Day or Month depending on string format.
(Day): Represents a day.
(Day.parse): Parse yyyy-mm-dd.
(Day.createFromDate): Creates a Day that contains a datetime.
(Day.createFromToday): Creates Day for today. A method with the same name will be added to Week and Month in the future.
(Day.prototype.equals): Returns true if they are the same.
(Day.prototype.previous): Returns the previous day.
(Day.prototype.next): Returns the next day.
(Day.prototype.startDate): Returns the datetime that is the start of this day.
(Day.prototype.endDate): Returns the datetime that is the start of this day.
(Day.prototype.valueOf): Returns the milliseconds since epoch.
(Day.prototype.toString): Returns an ISO date string.
(Month): Fix bug in calculating month from value.
(Month.prototype.endDate): Use Day.Maximum.
(CalendarPicker): Added _currentMonth. yearMonthController and daysTable can be private members now.
(CalendarPicker.prototype._layout):
(CalendarPicker.prototype.handleToday): Use Day.createFromToday.
(CalendarPicker.prototype.shouldShowMonth): Returns true if the month should be shown.
(CalendarPicker.prototype.showMonth): Shows the given month. If the month is out of the range of months that should be shown, we clamp the month and show that.
(CalendarPicker.prototype.currentMonth): Returns the current month that is shown.
(YearMonthController): Removed _currentMonth.
(YearMonthController.prototype.attachTo):
(YearMonthController.prototype.setMonth):
(YearMonthController.prototype._handleYearMonthChange): Use CalendarPicker.showMonth
(YearMonthController.prototype.moveRelatively):
(DaysTable):
(CalendarPicker.prototype._stepMismatch): Made private.
(CalendarPicker.prototype._outOfRange): Made private.
(CalendarPicker.prototype.isValidDate): Take Day or Month instead of milliseconds since epoch.
(DaysTable.prototype._renderMonth):
(DaysTable.prototype.navigateToMonth): Shows a given month. Can use animation and leave the selection position as is.
(DaysTable.prototype.selectRange): Select a range.
(DaysTable.prototype._maybeSetPreviousMonth):
(DaysTable.prototype._maybeSetNextMonth):
(DaysTable.prototype._handleKey):
(CalendarPicker.prototype._handleBodyKeyDown):
2012-11-05 Kenichi Ishibashi <bashi@chromium.org>
Unreviewed, Adding #if PLATFORM(CHROMIUM) for the fix of
https://bugs.webkit.org/show_bug.cgi?id=101009
This fix requires the most recent version of harfbuzz-ng.
EFL port uses version 0.9.2, which doesn't have the fix.
* platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
2012-11-05 Glenn Adams <glenn@skynav.com>
Ensure acquireLineBreakIterator signature consistency on non-ICU ports.
https://bugs.webkit.org/show_bug.cgi?id=101281
Reviewed by Ryosuke Niwa.
Fix (newly) inconsistent signature for acquireLineBreakIterator for non-ICU ports
caused by http://trac.webkit.org/changeset/133529.
See new tests added from https://bugs.webkit.org/show_bug.cgi?id=89235.
* platform/text/TextBreakIterator.cpp:
(WebCore::acquireLineBreakIterator):
* platform/text/gtk/TextBreakIteratorGtk.cpp:
(WebCore::setUpIterator):
(WebCore::acquireLineBreakIterator):
* platform/text/wince/TextBreakIteratorWinCE.cpp:
(WebCore::acquireLineBreakIterator):
2012-11-05 Hayato Ito <hayato@chromium.org>
Use switch/case statements instead of if/elseif in CSSSelector.cpp
https://bugs.webkit.org/show_bug.cgi?id=100470
Reviewed by Ryosuke Niwa.
Minor clean up. We can get compiler warnings if we use switch/case statements here.
No changes to functionality, so no new tests.
* css/CSSSelector.cpp:
(WebCore::CSSSelector::selectorText):
2012-11-05 Kenichi Ishibashi <bashi@chromium.org>
[Chromium] Unicode combining diacritical aren't always combined on Linux
https://bugs.webkit.org/show_bug.cgi?id=101009
Reviewed by Kent Tamura.
Add a space character to harfbuzzBuffer as pre-context. This will prevent
harfbuzz from inserting dotted-circle.
Test: fast/text/international/combining-marks-position.html
* platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
2012-11-05 Shinya Kawanaka <shinyak@chromium.org>
LayoutTest fast/dom/shadow/shadowroot-type.html is failing on Windows
https://bugs.webkit.org/show_bug.cgi?id=101201
Reviewed by Hajime Morita.
When we use a bit field for enum, Windows compiler seems returning some wrong value.
We would like to avoid using a bit field for enum value.
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::create):
* dom/ShadowRoot.h:
(WebCore::ShadowRoot::type):
(WebCore::ShadowRoot::setType):
(ShadowRoot):
2012-11-05 Benjamin Poulain <benjamin@webkit.org>
TransformOperationInfo's constructor is really slow
https://bugs.webkit.org/show_bug.cgi?id=101143
Reviewed by Sam Weinig.
TransformOperationInfo() was slow for a few reasons:
-The function used a lot of branches. The basic assumption is that the input
is incorrect, thus every character is an opportunity to fail.
-Every branch had to be tested in order. If the name was matching the last if()
all the previous names had to be tested.
-Since equalIgnoringCase() was used in every branch, it was forcing the case folding
every time.
-When the string is 16bits, the case folding was using ICU, which was incredibly inefficient.
This can be fixed by either
1) Compute the lowercase name, then match it to a HashMap.
2) Write a tree to quickly reduce the number of branch needed.
The first solution is not viable because 16bits strings case folding
remains an important bottleneck.
Instead, the code now splits the names on simple characteristics to
match any name in a limited number of branches.
The assumption is the input is correct, so & is used instead of && to
avoid branches in favor of conditional instructions.
* css/CSSParser.cpp:
(WebCore::TransformOperationInfo::TransformOperationInfo):
2012-11-05 Simon Fraser <simon.fraser@apple.com>
RenderGeometryMap asserts when loading http://en.softonic.com/mac
https://bugs.webkit.org/show_bug.cgi?id=101284
<rdar://problem/11540560>
Reviewed by Tim Horton.
When FrameView::layout() calls document->updateStyleIfNeeded(), we
can be in a state where FrameView::needsLayout() is false. However,
this is a bad time to update compositing layers, because we're about
to do layout, which will require us to update them again soon anyway,
and some RenderLayers may not have been sized or positioned yet.
Fix by adding a m_doingPreLayoutStyleUpdate member to FrameView,
and toggling it around this call to updateStyleIfNeeded().
Read this state in updateCompositingLayersAfterStyleChange(), which is
now called unconditionally by recalcStyle(), but returns early
if this flag is set, or layout is pending.
* dom/Document.cpp:
(WebCore::Document::recalcStyle):
* page/FrameView.cpp:
(WebCore::FrameView::reset):
(WebCore::FrameView::updateCompositingLayersAfterStyleChange):
(WebCore::FrameView::layout):
* page/FrameView.h:
(FrameView):
2012-11-05 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=101275
Clean up ScrollingConstraints.h
Reviewed by Simon Fraser.
This class cleans up ScrollingConstraints.h by removing the constructors since the
compiler will generate those constructors for us anyway. The patch also makes the
two override functions private.
* page/scrolling/ScrollingConstraints.h:
(ViewportConstraints):
(FixedPositionViewportConstraints):
(StickyPositionViewportConstraints):
2012-11-05 Simon Fraser <simon.fraser@apple.com>
Make Document::updateStyleIfNeeded() non-virtual
https://bugs.webkit.org/show_bug.cgi?id=101273
Reviewed by Eric Seidel.
Document::updateStyleIfNeeded() has been virtual like forever, but
no-one ever overrides it, so make it non-virtual.
* dom/Document.h:
(Document):
2012-11-05 Philip Rogers <pdr@google.com>
Unblock SVG external references
https://bugs.webkit.org/show_bug.cgi?id=100635
Reviewed by Adam Barth.
This patch reverts r132849 and r132869 because the potential XSS issue
turned out to not be an issue after all.
Covered by existing tests, many of which are re-whitelisted with this patch.
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::canRequest):
2012-11-05 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=101001
Pages with position:fixed elements should still be able to scroll on
the scrolling thread
-and corresponding-
<rdar://problem/10857315>
Reviewed by Simon Fraser.
This patch adds two new classes. ScrollingStateFixedNode is a class
to represent fixed nodes in the state tree, and
ScrollingTreeFixedNode represents fixed node in the scrolling tree
over on the scrolling thread.
* WebCore.xcodeproj/project.pbxproj:
When we are (non-programatically) scrolling fixed objects on the
scrolling thread, we do not want to do any work here.
* page/FrameView.cpp:
(WebCore::FrameView::updateFixedElementsAfterScrolling):
Whenever we sync the position of the main frame's layer, we have to
do the same for scrolling tree children.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
New ScrollingNodeType -- FixedNode, yay! And two new functions
specific to dealing with FixedNodes.
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::updateViewportConstrainedNode):
(WebCore::ScrollingCoordinator::syncChildPositions):
This is the new class that represents fixed nodes in the state tree.
All of the changed properties are stored within
FixedPositionViewportConstraints.
* page/scrolling/ScrollingStateFixedNode.cpp: Added.
(WebCore):
(WebCore::ScrollingStateFixedNode::create):
(WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
(WebCore::ScrollingStateFixedNode::~ScrollingStateFixedNode):
(WebCore::ScrollingStateFixedNode::updateConstraints):
(WebCore::ScrollingStateFixedNode::dumpProperties):
* page/scrolling/ScrollingStateFixedNode.h: Added.
(WebCore):
(ScrollingStateFixedNode):
(WebCore::ScrollingStateFixedNode::viewportConstraints):
(WebCore::toScrollingStateFixedNode):
Make sure to create the right type of clone for each node.
* page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::cloneAndReset):
Now that m_children may be anything other than null, I found this
bug. We encounter it when the parameter to removeChild is this and we
want to remove all of our children. In that case, this is obviously
not found in its own child array.
(WebCore::ScrollingStateNode::removeChild):
ScrollingStateNode now caches the GraphicsLayer in addition to the
PlatformLayer. This will allow us to sync the GraphicsLayer position
at the appropriate times.
* page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::isScrollingStateFixedNode):
(WebCore::ScrollingStateNode::graphicsLayer):
(ScrollingStateNode):
Handle fixed nodes.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::updateTreeFromStateNode):
New function parentScrollPositionDidChange() is called on children
when the parent has scrolled.
* page/scrolling/ScrollingTreeNode.h:
(ScrollingTreeNode):
* page/scrolling/ScrollingTreeScrollingNode.h:
(ScrollingTreeScrollingNode):
Return true for supportsFixedPositionLayers().
* page/scrolling/mac/ScrollingCoordinatorMac.h:
(ScrollingCoordinatorMac):
Handle fixed nodes.
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::attachToStateTree):
Now that m_children can be non-null I caught this pre-existing bug
where we would come times remove a node without updating the HashMap.
This patch fixes that by consolidating the removal into one function.
(WebCore::ScrollingCoordinatorMac::removeNode):
(WebCore::ScrollingCoordinatorMac::detachFromStateTree):
(WebCore::ScrollingCoordinatorMac::clearStateTree):
Update the GraphicsLayers to reflect the new position that the
Scrolling thread has moved the underlying CALayer to already.
(WebCore::ScrollingCoordinatorMac::syncChildPositions):
Pass new constraints over to the appropriate state node.
(WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
Cache the GraphicsLayer in addition to the PlatformLayer.
* page/scrolling/mac/ScrollingStateNodeMac.mm:
(WebCore::ScrollingStateNode::setScrollLayer):
Here is the new class that represents fixed nodes over on the
scrolling thread.
* page/scrolling/mac/ScrollingTreeFixedNode.h: Added.
(WebCore):
(ScrollingTreeFixedNode):
* page/scrolling/mac/ScrollingTreeFixedNode.mm: Added.
(WebCore):
(WebCore::ScrollingTreeFixedNode::create):
(WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
(WebCore::ScrollingTreeFixedNode::~ScrollingTreeFixedNode):
(WebCore::ScrollingTreeFixedNode::update):
This is where the magic happens. re-position the fixed object when
its parent has scrolled so that it appears to have not moved at all.
(WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange):
Whenever we change the position of a scrolling layer, tell our
children.
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
Handle fixed nodes.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::attachToScrollingCoordinator):
detachFromScrollingCoordinator() needs to be public so that it can be
called from RenderLayerCompositor for fixed nodes.
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
RenderLayerCompositor takes control of attaching and detaching fixed
nodes to/from the ScrollingCoordinator.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::didFlushChangesForLayer):
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::layerWillBeRemoved):
(WebCore::RenderLayerCompositor::didMoveOnscreen):
(WebCore::RenderLayerCompositor::willMoveOffscreen):
(WebCore::RenderLayerCompositor::clearBackingForLayerIncludingDescendants):
(WebCore::isRootmostFixedOrStickyLayer):
(WebCore):
(WebCore::RenderLayerCompositor::updateViewportConstraintStatus):
(WebCore::RenderLayerCompositor::addViewportConstrainedLayer):
(WebCore::RenderLayerCompositor::removeViewportConstrainedLayer):
(WebCore::RenderLayerCompositor::computeViewportConstraints):
(WebCore::nearestScrollingCoordinatorAncestor):
(WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
(WebCore::RenderLayerCompositor::unregisterViewportConstrainedLayer):
(WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
(WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
* rendering/RenderLayerCompositor.h:
(WebCore):
(RenderLayerCompositor):
2012-11-05 Geoffrey Garen <ggaren@apple.com>
Cleaned up the Font class in preparation for optimizing kerning and ligatures
https://bugs.webkit.org/show_bug.cgi?id=101258
Reviewed by Dan Bernstein.
* platform/graphics/Font.h:
(WebCore::Font::typesettingFeatures):
(WebCore::Font::computeTypesettingFeatures): Compute and cache our
typesetting features instead of recomputing each time a client asks
for them. This makes the class interface easier to use because
"typesettingFeatures()" can appear in more than one expression without
undue performance cost. This may also be a small speedup to code that
calls typesettingFeatures() often for other reasons.
* platform/graphics/Font.cpp:
(WebCore::Font::Font):
(WebCore::Font::operator=):
(WebCore::Font::update): Ditto.
(WebCore::Font::width): Unforked the width() function so all width-related
interfaces can benefit from optimization without duplicate code.
2012-11-05 Peng Huang <penghuang@google.com>
Webkit does not handle some media keys correctly On Linux gtk platform.
https://bugs.webkit.org/show_bug.cgi?id=101221
Reviewed by Alexey Proskuryakov.
Add media keyboard support on Linux gtk platform.
* platform/chromium/KeyCodeConversionGtk.cpp:
(WebCore::windowsKeyCodeForKeyEvent):
2012-11-05 Glenn Adams <glenn@skynav.com>
Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
https://bugs.webkit.org/show_bug.cgi?id=89235
Reviewed by Eric Seidel.
See also wiki documentation at:
[1] http://trac.webkit.org/wiki/LineBreaking
[2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
Web exposed changes include:
(1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
(2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
(3) See [2] above for details regarding interpretation.
Tests: css3/line-break/line-break-auto-centered.html
css3/line-break/line-break-auto-half-kana.html
css3/line-break/line-break-auto-hyphens.html
css3/line-break/line-break-auto-inseparables.html
css3/line-break/line-break-auto-iteration-marks.html
css3/line-break/line-break-auto-postfixes.html
css3/line-break/line-break-auto-prefixes.html
css3/line-break/line-break-auto-sound-marks.html
css3/line-break/line-break-loose-centered.html
css3/line-break/line-break-loose-half-kana.html
css3/line-break/line-break-loose-hyphens.html
css3/line-break/line-break-loose-inseparables.html
css3/line-break/line-break-loose-iteration-marks.html
css3/line-break/line-break-loose-postfixes.html
css3/line-break/line-break-loose-prefixes.html
css3/line-break/line-break-loose-sound-marks.html
css3/line-break/line-break-normal-centered.html
css3/line-break/line-break-normal-half-kana.html
css3/line-break/line-break-normal-hyphens.html
css3/line-break/line-break-normal-inseparables.html
css3/line-break/line-break-normal-iteration-marks.html
css3/line-break/line-break-normal-postfixes.html
css3/line-break/line-break-normal-prefixes.html
css3/line-break/line-break-normal-sound-marks.html
css3/line-break/line-break-strict-centered.html
css3/line-break/line-break-strict-half-kana.html
css3/line-break/line-break-strict-hyphens.html
css3/line-break/line-break-strict-inseparables.html
css3/line-break/line-break-strict-iteration-marks.html
css3/line-break/line-break-strict-postfixes.html
css3/line-break/line-break-strict-prefixes.html
css3/line-break/line-break-strict-sound-marks.html
* platform/text/LineBreakIteratorPoolICU.h:
(WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
Add static function to construct ICU locale argument (also used as pool key) with additional
break keyword.
(WebCore::LineBreakIteratorPool::take):
(WebCore::LineBreakIteratorPool::put):
(LineBreakIteratorPool):
Remove direct dependency from ICU library (and types), moving that dependency into
new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
Update to take line break mode into account.
Create (and cache) different break iterators depending on line break mode (in addition to locale),
which entails expanding pool entry key format to optionally append "@break=" +
"loose"|"normal"|"strict" keyword to locale string.
* platform/text/TextBreakIterator.h:
(WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
(WebCore::LazyLineBreakIterator::isLooseCJKMode):
(WebCore::LazyLineBreakIterator::get):
(WebCore::LazyLineBreakIterator::reset):
(LazyLineBreakIterator):
Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
Add state member to indicate line break mode.
* platform/text/TextBreakIteratorICU.cpp:
(WebCore::acquireLineBreakIterator):
Use new line break mode when making iterator from pool.
Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
(WebCore::releaseLineBreakIterator):
Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
(WebCore::isCJKLocale):
New functions for determining if CJK rules apply.
(WebCore::openLineBreakIterator):
New function for abstracting opening of ICU style line break iterator. This is now
used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
This function also takes into account the line break mode.
(WebCore::closeLineBreakIterator):
(WebCore::mapLineIteratorModeToRules):
New function for abstracting closing of ICU style line break iterator. This is now
used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextLineBreak):
Pass line break iterator mode flag when reseting LazyLineBreakIterator.
Add looseMode local variable to prevent need for computing under isBreakable().
* rendering/RenderText.cpp:
(WebCore::mapLineBreakToIteratorMode):
Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
and RenderBlock::LineBreaker::nextLineBreak.
(WebCore::RenderText::computePreferredLogicalWidths):
Ensure (lazy line) breakIterator is initialized for line break mode.
Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
* rendering/RenderText.h:
(WebCore):
Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
and RenderBlock::LineBreaker::nextLineBreak.
* rendering/break_lines.cpp:
(WebCore):
Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
to include loose mode parameter.
(WebCore::isBreakableSpace):
Add externally specified loose mode parameter to prevent need to invoke line break iterator
accessor method on each invocation. Use new loose mode flavors off NBP functions.
(WebCore::needsLineBreakIterator):
Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
to prevent regression to non loose mode path.
(WebCore::nextBreakablePosition):
(WebCore::nextBreakablePositionIgnoringNBSP):
Use new template parameter enums described above.
(WebCore::nextBreakablePositionIgnoringNBSPLoose):
(WebCore::nextBreakablePositionLoose):
Introduce two additional 'loose' mode flavors of NBP template expansions.
* rendering/break_lines.h:
(WebCore):
(WebCore::isBreakable):
Add externally specified loose mode parameter to prevent need to invoke line break iterator
accessor method on each invocation.
2012-11-05 Adam Barth <abarth@webkit.org>
webkitRegionLayoutUpdate is incorrectly named
https://bugs.webkit.org/show_bug.cgi?id=100335
Reviewed by Ojan Vafai.
DOM event names are supposed to be lower case.
* dom/EventNames.h:
(WebCore):
* dom/WebKitNamedFlow.cpp:
(WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent):
2012-11-05 Adam Barth <abarth@webkit.org>
[V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
https://bugs.webkit.org/show_bug.cgi?id=101110
Reviewed by Kentaro Hara.
This patch generalizes our support for storing wrappers in DOM objects
to be usable for more than just nodes. After this patch, any object
with a ScriptWrappable base class will have its wrapper stored inline
in the object in the main world.
To achieve this goal, this patch hides the details of how we map from
objects to wrappers inside DOMDataStore and then removes the
IntrusiveDOMWrapperMap class entirely. This approach lets us remove the
DOMWrapperMap base class and make all of these functions non-virtual.
* UseV8.cmake:
* WebCore.gypi:
- Remove deleted files.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNormalAttrGetter):
(GenerateConstructorCallback):
(GenerateNamedConstructorCallback):
(GenerateToV8Converters):
- Rather than grabbing at the DOMWrapperMap directly, we now ask
the DOMDataStore to do this work for us.
* bindings/scripts/test/V8/V8Float64Array.h:
(WebCore::V8Float64Array::wrap):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore::V8TestActiveDOMObject::wrap):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore::V8TestCustomNamedGetter::wrap):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore::V8TestEventConstructor::wrap):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore::V8TestEventTarget::wrap):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore::V8TestException::wrap):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::V8TestInterface::wrap):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::V8TestMediaQueryListListener::wrap):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::V8TestNamedConstructor::wrap):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::constructorCallback):
(WebCore::V8TestNode::wrapSlow):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore::V8TestObj::wrap):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::V8TestSerializedScriptValueInterface::wrap):
* bindings/v8/DOMDataStore.cpp:
- Updated run-bindings-test results.
(WebCore::DOMDataStore::DOMDataStore):
(WebCore::DOMDataStore::~DOMDataStore):
- Simplify constructor and destructor now that there is only one
hash map.
(WebCore::DOMDataStore::current):
- Now that V8DOMMap.cpp doesn't handle the null isolate case, we
need to handle it here.
(WebCore::DOMDataStore::reportMemoryUsage):
- Simplfied now that there is only one wrapper map.
(WebCore::DOMDataStore::weakCallback):
- Moved from IntrusiveDOMWrapperMap.h
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::get):
(WebCore::DOMDataStore::set):
- These functions now handle the intrusive case with a branch
rather than with a virtual function call. In many cases, the
branch can be optimized away by the compiler when the overloaded
inline functions are inlined.
(WebCore::DOMDataStore::wrapperIsStoredInObject):
- Overloaded functions to determine whether to store the wrapper
inside the object or in the hashmap.
(WebCore::DOMDataStore::getWrapperFromObject):
(WebCore::DOMDataStore::storeWrapperInObject):
- Overloaded functions to get/set the wrapper from inside the
object itself.
* bindings/v8/DOMWrapperMap.h:
(WebCore::DOMWrapperHashMap::get):
(WebCore::DOMWrapperHashMap::set):
(WebCore::DOMWrapperHashMap::clear):
(WebCore::DOMWrapperHashMap::reportMemoryUsage):
(WebCore::DOMWrapperHashMap::remove):
- These functions are no longer virtual.
* bindings/v8/DOMWrapperWorld.h:
* bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
* bindings/v8/ScriptProfiler.cpp:
* bindings/v8/SerializedScriptValue.cpp:
(WebCore::neuterBinding):
- We need to keep the type information slightly longer so that we
look in the right wrapper map.
* bindings/v8/V8DOMMap.cpp: Removed.
* bindings/v8/V8DOMMap.h: Removed.
* bindings/v8/V8DOMWindowShell.cpp:
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::getCachedWrapper):
- Defer this work to the store.
(WebCore::V8DOMWrapper::setWrapperClass):
- An overloaded function to set the right wrapper class.
(WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
- This function is now general enough to handle ever kind of object.
* bindings/v8/V8GCController.cpp:
* bindings/v8/V8NPObject.cpp:
* bindings/v8/WorkerContextExecutionProxy.cpp:
* bindings/v8/WorkerScriptController.cpp:
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::v8HTMLImageElementConstructorCallback):
- Call the more general function (instead of the now-deleted specialized function).
2012-11-05 Alexey Proskuryakov <ap@apple.com>
Get rid of setCookieStoragePrivateBrowsingEnabled.
https://bugs.webkit.org/show_bug.cgi?id=101247
Reviewed by Brady Eidson.
We were only doing anything here on Mac, and only because we couldn't know if
sessions were in use. But sessions are always in use, and those obsolete changing
cookie storage explicitly.
* platform/network/win/CookieStorageWin.cpp: Removed.
* PlatformWinCE.cmake:
* WebCore.gypi:
No more CookieStorageWin.cpp with an empty implementation.
* WebCore.exp.in:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
We no longer need this WKSI function.
* page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled):
Removed the only call to setCookieStoragePrivateBrowsingEnabled().
* platform/network/CookieStorage.h:
* platform/network/cf/CookieStorageCFNet.cpp:
* platform/network/curl/CookieJarCurl.cpp:
* platform/network/soup/CookieStorageSoup.cpp:
* platform/qt/TemporaryLinkStubsQt.cpp:
Removed empty setCookieStoragePrivateBrowsingEnabled implementations.
* platform/network/mac/CookieStorageMac.mm: This function used to have a FIXME
that we should observe private storage while in private browsing mode. I don't think
that it was correct - Safari doesn't display content of private storage, and thus
doesn't need to know about changes.
The removal of this function has an effect on WebKit1 clients that enable private
browsing. We used to globally change cookie storage, even for loads not initiated
by WebKit. Now we match API description: "If private browsing is enabled, WebKit
will not store information about sites the user visits."
2012-11-05 Florin Malita <fmalita@chromium.org>
Crash when mixing layers, foreignObjects and SVG hidden containers
https://bugs.webkit.org/show_bug.cgi?id=87297
Reviewed by Dirk Schulze.
Foreign objects may introduce content which requires layers, but layer creation is
suppressed within RenderSVGHiddenContainer subtrees and this yields an inconsistent render
tree state. This patch prevents foreignObject renderer instantiation under
RenderSVGHiddenContainers.
Test: svg/foreignObject/foreign-object-defs-crash.svg
* svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::rendererIsNeeded):
(WebCore):
* svg/SVGForeignObjectElement.h:
(SVGForeignObjectElement):
2012-11-05 Simon Fraser <simon.fraser@apple.com>
Remove the unused m_fixedPositionedElements from RenderView
https://bugs.webkit.org/show_bug.cgi?id=101251
Reviewed by Anders Carlsson.
m_fixedPositionedElements was completely unused. Remove it
and the related typedef.
* rendering/RenderView.h:
(RenderView):
2012-11-05 Simon Fraser <simon.fraser@apple.com>
Fix layer borders to cleaning appear and disappear on switching
https://bugs.webkit.org/show_bug.cgi?id=101136
Reviewed by Sam Weinig.
GraphicsLayers decided whether to show layer borders based
on a callback through the GraphicsLayerClient. This made it
hard to manage state, resulting in a failure to cleanly
hide layers when toggled off via the preference.
Changed the layer border and repaint counter visibility to be bits
stored on GraphicsLayer just like other properties, with getters
and setters. RenderLayerBacking now updates these debug
indicators when we update other compositing layer properties.
In GraphicsLayerCA, avoid calling updateDebugIndicators() explicitly
in several places by setting the change flag DebugIndicatorsChanged
for properties whose values affect the appearance of the debug border.
Removed the GraphicsLayerClient methods showDebugBorders() and
showRepaintCounter() which are no longer required.
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer):
(WebCore::GraphicsLayer::updateDebugIndicators):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setShowDebugBorder):
(WebCore::GraphicsLayer::isShowingDebugBorder):
(WebCore::GraphicsLayer::setShowRepaintCounter):
(WebCore::GraphicsLayer::isShowingRepaintCounter):
(WebCore::GraphicsLayer::repaintCount):
(WebCore::GraphicsLayer::incrementRepaintCount):
* platform/graphics/GraphicsLayerClient.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::setMasksToBounds):
(WebCore::GraphicsLayerCA::setDrawsContent):
(WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateMasksToBounds):
(WebCore::GraphicsLayerCA::updateLayerDrawsContent):
(WebCore::GraphicsLayerCA::updateDebugBorder):
(WebCore::GraphicsLayerCA::setShowDebugBorder):
(WebCore::GraphicsLayerCA::setShowRepaintCounter):
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
(WebCore::GraphicsLayerCA::setupContentsLayer):
(WebCore::GraphicsLayerCA::cloneLayer):
* platform/graphics/ca/GraphicsLayerCA.h:
(GraphicsLayerCA):
(WebCore::GraphicsLayerCA::platformCALayerShowDebugBorders):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateDebugIndicators):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBacking):
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
2012-11-05 Genevieve Mak <gmak@rim.com>
[BLACKBERRY] Update touch code to reflect touch refactor
https://bugs.webkit.org/show_bug.cgi?id=101227
Reviewed by Rob Buis.
PR #2706785
Reviewed Internally by: Mike Lattanzio
* platform/blackberry/PlatformTouchEventBlackBerry.cpp:
(WebCore::touchEventType):
(WebCore::PlatformTouchEvent::PlatformTouchEvent):
2012-11-05 Alok Priyadarshi <alokp@chromium.org>
[chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
https://bugs.webkit.org/show_bug.cgi?id=99083
Reviewed by Stephen White.
Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
No new tests needed. This patch does not change anything functionally.
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::setContentsOpaque):
(WebCore::GraphicsLayerChromium::paint):
* platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
(WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
* platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
(OpaqueRectTrackingContentLayerDelegate):
2012-11-05 Stephen White <senorblanco@chromium.org>
[chromium] Build fix after http://trac.webkit.org/changeset/133488.
Removed a deleted file. Unreviewed.
* WebCore.gypi:
2012-11-05 Kentaro Hara <haraken@chromium.org>
[V8] toV8(impl) should return null if impl is 0
https://bugs.webkit.org/show_bug.cgi?id=101206
Reviewed by Adam Barth.
toV8(impl) should return null if impl is 0. However,
V8HTMLCollection::toV8() does not have the null check.
All other toV8()s return null.
No tests. I think there will be no call path that hits the change.
* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
(WebCore::toV8):
2012-11-05 David Barton <dbarton@mathscribe.com>
Implement SimpleFontData::platformBoundsForGlyph on skia
https://bugs.webkit.org/show_bug.cgi?id=101115
Reviewed by Eric Seidel.
The implementation is similar to SimpleFontData::platformWidthForGlyph on skia.
Tested by: fast/block/lineboxcontain/*glyphs*, mathml/presentation/*
* platform/graphics/skia/SimpleFontDataSkia.cpp:
(WebCore::SimpleFontData::platformBoundsForGlyph): Implemented.
2012-11-05 Andreas Kling <kling@webkit.org>
Decouple Attr logic from ElementAttributeData.
<http://webkit.org/b/101126>
Reviewed by Antti Koivisto.
Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
can be shared by any number of Elements at a given time.
Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
"Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.
* dom/Element.h:
* dom/ElementAttributeData.h:
* dom/Element.cpp:
(WebCore::attrNodeListMap):
(WebCore::attrNodeListForElement):
(WebCore::ensureAttrNodeListForElement):
(WebCore::removeAttrNodeListForElement):
(WebCore::findAttrNodeInList):
(WebCore::Element::~Element):
(WebCore::Element::detachAttribute):
(WebCore::Element::setAttributeNode):
(WebCore::Element::removeAttributeInternal):
(WebCore::Element::getAttributeNode):
(WebCore::Element::getAttributeNodeNS):
(WebCore::Element::normalizeAttributes):
(WebCore::Element::attrIfExists):
(WebCore::Element::ensureAttr):
(WebCore::Element::detachAttrNodeFromElementWithValue):
(WebCore::Element::detachAllAttrNodesFromElement):
(WebCore::Element::cloneAttributesFromElement):
Move everything Attr-related into Element.cpp while simplifying some loops and remove
conditions that are no longer needed as they used to depend on having an attributeData().
* dom/Node.h:
(WebCore::Node::hasSyntheticAttrChildNodes):
(WebCore::Node::setHasSyntheticAttrChildNodes):
Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().
* dom/Attr.cpp:
(WebCore::Attr::detachFromElementWithValue):
Remove awkward indirection and let the call site deal with removing the Attr node from
the Element's list of Attr nodes.
* dom/ElementAttributeData.cpp:
(WebCore::ElementAttributeData::clearAttributes):
Remove now-unused Element* argument.
2012-11-05 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Polygon edges should span colinear vertices
https://bugs.webkit.org/show_bug.cgi?id=99343
Reviewed by Dirk Schulze.
ExclusionPolygonEdges now span coincident and collinear vertices. Currently
pairs of vertices are only considered coincident if their coordinates are exactly
equal. Similarly, a vertex is only considered collinear with an edge if the area
of the triangle defined by the three vertices is exactly zero. In the future it
may be useful to relax the comparison with zero.
Tests: fast/exclusions/shape-inside/shape-inside-coincident-vertices.html
fast/exclusions/shape-inside/shape-inside-collinear-vertices.html
* rendering/ExclusionPolygon.cpp:
(WebCore::determinant): Used to measure collinearity.
(WebCore):
(WebCore::areCollinearPoints): True if three FloatPoint arguments are collinear per the test outlined above.
(WebCore::areCoincidentPoints): True if the two FloatPoint arguments are equal.
(WebCore::nextVertexIndex): The next vertex index in clockwise or counterclockwise order.
(WebCore::ExclusionPolygon::findNextEdgeVertexIndex): Return the index of the next non-coincident, non-collinear vertex.
(WebCore::ExclusionPolygon::ExclusionPolygon): Skip coincident and collinear vertices when building the list of edges.
* rendering/ExclusionPolygon.h: Added private findNextEdgeVertexIndex() declaration.
2012-11-05 Christophe Dumez <christophe.dumez@intel.com>
[EFL] Use POSIX implementation of SharedBuffer::createWithContentsOfFile()
https://bugs.webkit.org/show_bug.cgi?id=101228
Reviewed by Kenneth Rohde Christiansen.
Get rid of EFL-specific implementation of SharedBuffer::createWithContentsOfFile()
and reuse the POSIX one since it is pretty much the same.
No new tests, no behavior change.
* PlatformEfl.cmake:
* platform/efl/SharedBufferEfl.cpp: Removed.
2012-11-05 Kentaro Hara <haraken@chromium.org>
Add a comment about a return value of IDBKey::toV8()
https://bugs.webkit.org/show_bug.cgi?id=101212
Reviewed by Adam Barth.
Although all other toV8(impl) return null when impl is 0,
IDBKey::toV8(impl) is expected to return undefined when impl is 0.
This patch adds a comment about it.
No tests.
* bindings/js/JSIDBKeyCustom.cpp:
(WebCore::toJS):
* bindings/v8/custom/V8IDBKeyCustom.cpp:
(WebCore::toV8):
2012-11-05 Dominik Röttsches <dominik.rottsches@intel.com>
[Cairo] Make Cairo honor image orientation
https://bugs.webkit.org/show_bug.cgi?id=101207
Reviewed by Kenneth Rohde Christiansen.
Implement transformed image drawing in BitmapImageCairo, similar
as it was done for Skia in bug 100179, r132384.
The image drawing code needs to transform the graphics context
depending on exif orientation in order for this to work.
No new tests, covered by fast/images/exif-* which are passing now.
* platform/graphics/BitmapImage.h: Enable draw function which respects image orientation for Cairo.
* platform/graphics/cairo/BitmapImageCairo.cpp:
(WebCore::BitmapImage::draw): Apply ImageOrientation's transformFromDefault() transformation to context.
(WebCore):
2012-11-05 Kentaro Hara <haraken@chromium.org>
[V8] Dispose() and Clear() should be always coupled for safety
https://bugs.webkit.org/show_bug.cgi?id=101191
Reviewed by Adam Barth.
Clear() is not mandatory. However, to avoid misusing already
disposed wrappers, Clear() should be always called just
after Dispose().
No tests. No change in behavior.
* bindings/v8/DOMWrapperMap.h:
(WebCore::DOMWrapperHashMap::defaultWeakCallback):
* bindings/v8/IntrusiveDOMWrapperMap.h:
(WebCore::IntrusiveDOMWrapperMap::weakCallback):
* bindings/v8/NPV8Object.cpp:
(WebCore::freeV8NPObject):
* bindings/v8/ScheduledAction.cpp:
(WebCore::ScheduledAction::~ScheduledAction):
* bindings/v8/V8NPObject.cpp:
(WebCore::V8NPTemplateMap::dispose):
(WebCore::weakNPObjectCallback):
(WebCore::forgetV8ObjectForNPObject):
* bindings/v8/V8PerContextData.cpp:
(WebCore::V8PerContextData::dispose):
* bindings/v8/V8ValueCache.cpp:
(WebCore::cachedStringCallback):
(WebCore::IntegerCache::~IntegerCache):
* bindings/v8/custom/V8InjectedScriptManager.cpp:
(WebCore::WeakReferenceCallback):
2012-11-05 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Layout of the first shape-inside line can be incorrect
https://bugs.webkit.org/show_bug.cgi?id=100996
Reviewed by Dirk Schulze.
Made the conversion from floating point top/bottom logical shape bounds coordinates
LayoutUnits explicit and corrected the case where the top value was truncated. A
float logicalTop value is converted to LayoutUnit with fromFloatCeil() to ensure
that the LayoutUnit value is within the shape.
Test: fast/exclusions/shape-inside/shape-inside-shape-logical-top.html
* rendering/ExclusionShapeInsideInfo.h:
(WebCore::ExclusionShapeInsideInfo::shapeLogicalTop): Redefined this method in terms of shapeLogicalBoundsY,Max().
(WebCore::ExclusionShapeInsideInfo::shapeLogicalBottom): Ditto.
(WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Ditto.
(ExclusionShapeInsideInfo):
(WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsY): Explicit conversion from floating point shape coordinates to LayoutUnits.
(WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsMaxY): Ditto.
2012-11-05 Antti Koivisto <antti@apple.com>
Protect against resource deletion during iteration in MemoryCache::pruneDeadResourcesToSize
https://bugs.webkit.org/show_bug.cgi?id=101211
Reviewed by Andreas Kling.
Some crashes have been seen under MemoryCache::pruneDeadResourcesToSize. A possible cause is that
destroyDecodedData() call ends up evicting the resource pointed by 'previous' pointer during iteration
and deleting the object. This looks in principle possible via stylesheets and SVG images.
Speculative fix, no repro, no obvious way to construct a test.
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::pruneDeadResourcesToSize):
Use CachedResourceHandle to protect the 'previous' pointer during iteration. Check if the
resource has been kicked out from the cache during destroyDecodedData() and stop iterating
if has (as it may die when CachedResourceHandle releases it).
The 'current' pointer is not protected as the resource it points to is allowed to die.
2012-11-05 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: Fix jscompiler cast syntax
https://bugs.webkit.org/show_bug.cgi?id=101066
Reviewed by Pavel Feldman.
Casts should be in the form of "/** @type {TypeName} */ (expr)" instead of "/** @type {TypeName} */ expr".
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
* inspector/InjectedScriptSource.js:
(.):
* inspector/front-end/ApplicationCacheModel.js:
(WebInspector.ApplicationCacheModel.prototype._frameNavigated):
(WebInspector.ApplicationCacheModel.prototype._frameDetached):
* inspector/front-end/AuditLauncherView.js:
(WebInspector.AuditLauncherView.prototype._onRequestStarted):
(WebInspector.AuditLauncherView.prototype._onRequestFinished):
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
(WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
(WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
(WebInspector.BreakpointManager.prototype._breakpointResolved):
(WebInspector.BreakpointManager.Breakpoint.prototype._locationUpdated):
(WebInspector.BreakpointManager.Storage):
* inspector/front-end/BreakpointsSidebarPane.js:
(WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointAdded):
* inspector/front-end/CSSNamedFlowCollectionsView.js:
(WebInspector.CSSNamedFlowCollectionsView.prototype._documentUpdated):
(WebInspector.CSSNamedFlowCollectionsView.prototype._namedFlowCreated):
(WebInspector.CSSNamedFlowCollectionsView.prototype._regionLayoutUpdated):
(WebInspector.CSSNamedFlowCollectionsView.prototype._selectedNodeChanged):
* inspector/front-end/CSSSelectorProfileView.js:
(WebInspector.CSSProfileHeader.prototype.createView):
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
(WebInspector.CSSStyleDeclaration.parseComputedStylePayload):
* inspector/front-end/CompilerScriptMapping.js:
(WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
(WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype._frameAdded):
(WebInspector.ConsoleView.prototype._frameRemoved):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMDocument):
* inspector/front-end/DebuggerModel.js:
(WebInspector.DebuggerModel.prototype.didSetBreakpoint):
(WebInspector.DebuggerModel.prototype.setBreakpointByURL):
(WebInspector.DebuggerModel.prototype.):
(WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
(WebInspector.DebuggerModel.CallFrame.prototype.get location):
* inspector/front-end/DebuggerScriptMapping.js:
(WebInspector.DebuggerScriptMapping.prototype._parsedScriptSource):
* inspector/front-end/DirectoryContentView.js:
(WebInspector.DirectoryContentView.prototype._sort):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype._updateBreadcrumbIfNeeded):
* inspector/front-end/ElementsPanelDescriptor.js:
(WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
* inspector/front-end/ElementsTreeOutline.js:
(.get node):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype._onAddRequestHeaders):
(WebInspector.ExtensionServer.prototype._handleOpenURL):
(WebInspector.ExtensionServer.prototype._onGetResourceContent):
(WebInspector.ExtensionServer.prototype._onSetResourceContent):
(WebInspector.ExtensionServer.prototype._notifyResourceAdded):
(WebInspector.ExtensionServer.prototype._notifyUISourceCodeContentCommitted):
(WebInspector.ExtensionServer.prototype._notifyRequestFinished):
* inspector/front-end/FileContentView.js:
(WebInspector.FileContentView.prototype._metadataReceived):
(WebInspector.FileContentView.FileContentProvider.prototype.requestContent):
* inspector/front-end/FileSystemModel.js:
(WebInspector.FileSystemModel.prototype._frameAdded):
(WebInspector.FileSystemModel.prototype._frameNavigated):
(WebInspector.FileSystemModel.prototype._frameDetached):
* inspector/front-end/FileSystemView.js:
(WebInspector.FileSystemView.EntryTreeElement.prototype.onselect):
(WebInspector.FileSystemView.EntryTreeElement.prototype.refresh):
* inspector/front-end/HandlerRegistry.js:
(WebInspector.HandlerRegistry.prototype._appendHrefItems):
* inspector/front-end/HeapSnapshotLoader.js:
(WebInspector.HeapSnapshotLoader.prototype.write):
* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapSnapshotView.prototype._changeBase):
(WebInspector.HeapProfileHeader.prototype.load):
(WebInspector.HeapProfileHeader.prototype._snapshotReceived):
* inspector/front-end/IndexedDBModel.js:
(WebInspector.IndexedDBModel.prototype._frameNavigated):
(WebInspector.IndexedDBModel.prototype._frameDetached):
* inspector/front-end/IndexedDBViews.js:
(WebInspector.IDBDataView.prototype._keyColumnHeaderFragment):
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
(WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
(WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
(WebInspector.JavaScriptSourceFrame.prototype._consoleMessageAdded):
(WebInspector.JavaScriptSourceFrame.prototype._consoleMessageRemoved):
(WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
(WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
* inspector/front-end/MemoryStatistics.js:
(WebInspector.MemoryStatistics.prototype.show):
* inspector/front-end/NavigatorView.js:
(WebInspector.NavigatorView.prototype._uiSourceCodeTitleChanged):
(WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyChanged):
(WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyCommitted):
(WebInspector.NavigatorView.prototype._uiSourceCodeFormattedChanged):
* inspector/front-end/NetworkLog.js:
(WebInspector.NetworkLog.prototype._onRequestStarted):
* inspector/front-end/NetworkManager.js:
(WebInspector.NetworkManager.prototype._cacheDisabledSettingChanged):
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._onRequestUpdated):
(WebInspector.NetworkLogView.prototype._mainFrameNavigated):
(WebInspector.NetworkPanel.prototype.reveal):
(WebInspector.NetworkPanel.prototype.appendApplicableItems):
* inspector/front-end/NetworkUISourceCodeProvider.js:
(WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
(WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
* inspector/front-end/ObjectPopoverHelper.js:
(WebInspector.ObjectPopoverHelper.prototype.):
(WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
* inspector/front-end/PresentationConsoleMessageHelper.js:
(WebInspector.PresentationConsoleMessageHelper.prototype._consoleMessageAdded):
(WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
* inspector/front-end/ProfilesPanel.js:
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
(WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
(WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
(WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
* inspector/front-end/ResourceTreeModel.js:
(WebInspector.ResourceTreeModel.prototype._onRequestFinished):
(WebInspector.ResourceTreeModel.prototype._consoleMessageAdded):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype._databaseAdded):
(WebInspector.ResourcesPanel.prototype._domStorageAdded):
(WebInspector.IndexedDBTreeElement.prototype._indexedDBAdded):
(WebInspector.IndexedDBTreeElement.prototype._indexedDBRemoved):
(WebInspector.IndexedDBTreeElement.prototype._indexedDBLoaded):
(WebInspector.FileSystemListTreeElement.prototype._fileSystemAdded):
(WebInspector.FileSystemListTreeElement.prototype._fileSystemRemoved):
(WebInspector.FileSystemListTreeElement.prototype._fileSystemTreeElementByName):
(WebInspector.SearchResultsTreeElementsTraverser.prototype._traverseNext):
(WebInspector.SearchResultsTreeElementsTraverser.prototype._traversePrevious):
* inspector/front-end/RevisionHistoryView.js:
(WebInspector.RevisionHistoryView.prototype._uiSourceCodeRemoved):
* inspector/front-end/SASSSourceMapping.js:
(rawLocationToUILocation):
* inspector/front-end/ScopeChainSidebarPane.js:
(WebInspector.ScopeChainSidebarPane.prototype.update):
* inspector/front-end/Script.js:
(WebInspector.Script.Location.prototype.uiLocation):
* inspector/front-end/ScriptFormatter.js:
(WebInspector.ScriptFormatter.prototype.get _worker):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
(WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
(WebInspector.ScriptsPanel.prototype._editorClosed):
(WebInspector.ScriptsPanel.prototype._editorSelected):
(WebInspector.ScriptsPanel.prototype._scriptSelected):
(WebInspector.ScriptsPanel.prototype.canSearchAndReplace):
(WebInspector.ScriptsPanel.prototype.replaceSelectionWith):
(WebInspector.ScriptsPanel.prototype.replaceAllWith):
(WebInspector.ScriptsPanel.prototype._toggleBreakpoint):
(WebInspector.ScriptsPanel.prototype.set _fileRenamed):
(WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
* inspector/front-end/ScriptsPanelDescriptor.js:
(WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
* inspector/front-end/StylesSourceMapping.js:
(WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
(WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
* inspector/front-end/TabbedEditorContainer.js:
(WebInspector.TabbedEditorContainer.prototype._scrollChanged):
(WebInspector.TabbedEditorContainer.prototype._selectionChanged):
(WebInspector.TabbedEditorContainer.prototype._tabClosed):
(WebInspector.TabbedEditorContainer.prototype._tabSelected):
(WebInspector.TabbedEditorContainer.prototype._uiSourceCodeTitleChanged):
(WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyChanged):
(WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyCommitted):
(WebInspector.TabbedEditorContainer.prototype._uiSourceCodeFormattedChanged):
* inspector/front-end/TimelineModel.js:
(WebInspector.TimelineModelLoader.prototype.write):
* inspector/front-end/UISourceCodeFrame.js:
(WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
* inspector/front-end/Workspace.js:
(WebInspector.WorkspaceController.prototype._frameAdded):
(WebInspector.Project.prototype._fileAdded):
(WebInspector.Project.prototype._fileRemoved):
2012-11-05 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: render message bubbles in CodeMirror experiment.
https://bugs.webkit.org/show_bug.cgi?id=101164
Reviewed by Vsevolod Vlasov.
It sounds like addLineWidget just makes it happen.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor):
(WebInspector.CodeMirrorTextEditor.prototype.addDecoration):
(WebInspector.CodeMirrorTextEditor.prototype.get if):
(WebInspector.CodeMirrorTextEditor.prototype.removeDecoration):
(WebInspector.CodeMirrorTextEditor.prototype._change):
* inspector/front-end/DefaultTextEditor.js:
(.preventDefaultOnMouseUp):
* inspector/front-end/PresentationConsoleMessageHelper.js:
(WebInspector.PresentationConsoleMessageHelper):
* inspector/front-end/cm/cmdevtools.css:
(.CodeMirror .webkit-html-message-bubble):
(.CodeMirror .webkit-html-message-bubble img):
(.CodeMirror .webkit-html-warning-message):
(.CodeMirror .webkit-html-error-message):
2012-11-05 Thiago Marcos P. Santos <thiago.santos@intel.com>
Validate CSS Device Adaptation properties and resolve shorthands
https://bugs.webkit.org/show_bug.cgi?id=95962
Reviewed by Alexis Menard.
Add the missing keywords and properties for the viewport at-rule.
Note that we have to mark that we are inside a viewport scope because
some properties are not validated as they would be inside a style
rule. As an example, the semantics of CSSPropertyWidth are completely
different: on a viewport rule, it stands for a shorthand for the
minimum and maximum width.
Test: css3/device-adapt/viewport-properties-validation.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore):
(WebCore::CSSParser::parseViewportProperty):
(WebCore::CSSParser::parseViewportShorthand):
* css/CSSParser.h:
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
2012-11-05 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133286, r133385, and r133394.
http://trac.webkit.org/changeset/133286
http://trac.webkit.org/changeset/133385
http://trac.webkit.org/changeset/133394
https://bugs.webkit.org/show_bug.cgi?id=101198
Broke image placement on some web sites. (Requested by kling
on #webkit).
* css/StyleResolver.cpp:
(WebCore::StyleResolver::sweepMatchedPropertiesCache):
(WebCore::StyleResolver::matchAllRules):
(WebCore::StyleResolver::canShareStyleWithElement):
* dom/Attr.cpp:
(WebCore::Attr::detachFromElementWithValue):
* dom/Element.cpp:
(WebCore::Element::~Element):
(WebCore::Element::detachAttribute):
(WebCore::Element::getAttribute):
(WebCore::Element::setAttributeNode):
(WebCore::Element::removeAttributeInternal):
(WebCore::Element::getAttributeNode):
(WebCore::Element::getAttributeNodeNS):
(WebCore::Element::normalizeAttributes):
(WebCore::Element::attrIfExists):
(WebCore::Element::ensureAttr):
(WebCore::Element::cloneAttributesFromElement):
* dom/Element.h:
(Element):
(WebCore::Element::updateInvalidAttributes):
* dom/ElementAttributeData.cpp:
(WebCore::MutableElementAttributeData::MutableElementAttributeData):
(WebCore):
(WebCore::attrListMap):
(WebCore::attrListForElement):
(WebCore::ensureAttrListForElement):
(WebCore::removeAttrListForElement):
(WebCore::findAttrInList):
(WebCore::ElementAttributeData::attrIfExists):
(WebCore::ElementAttributeData::ensureAttr):
(WebCore::ElementAttributeData::setAttr):
(WebCore::ElementAttributeData::removeAttr):
(WebCore::ElementAttributeData::detachAttrObjectsFromElement):
(WebCore::ElementAttributeData::reportMemoryUsage):
(WebCore::ElementAttributeData::cloneDataFrom):
(WebCore::ElementAttributeData::clearAttributes):
(WebCore::ElementAttributeData::getAttributeNode):
* dom/ElementAttributeData.h:
(WebCore):
(WebCore::ElementAttributeData::attributeStyle):
(WebCore::ElementAttributeData::setAttributeStyle):
(ElementAttributeData):
(WebCore::ElementAttributeData::ElementAttributeData):
* dom/Node.h:
(WebCore):
(WebCore::Node::hasAttrList):
(WebCore::Node::attributeStyleDirty):
(WebCore::Node::setAttributeStyleDirty):
(WebCore::Node::clearAttributeStyleDirty):
(Node):
(WebCore::Node::setHasAttrList):
(WebCore::Node::clearHasAttrList):
(WebCore::Node::isStyleAttributeValid):
(WebCore::Node::setIsStyleAttributeValid):
(WebCore::Node::clearIsStyleAttributeValid):
* dom/StyledElement.cpp:
(WebCore::StyledElement::updateStyleAttribute):
(WebCore::StyledElement::attributeChanged):
(WebCore::StyledElement::styleAttributeChanged):
(WebCore::StyledElement::inlineStyleChanged):
(WebCore::StyledElement::updateAttributeStyle):
* dom/StyledElement.h:
(StyledElement):
(WebCore::StyledElement::invalidateStyleAttribute):
(WebCore::StyledElement::attributeStyle):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
2012-11-05 Simon Hausmann <simon.hausmann@digia.com>
Unreviewed trivial Qt build fix.
Surround imports from QtGui by QT_{BEGIN,END}_NAMESPACE to fix namespaced
builds.
* platform/graphics/qt/GraphicsContextQt.cpp:
* platform/graphics/qt/ImageQt.cpp:
2012-11-05 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] ShadowRoot type is not set correctly.
https://bugs.webkit.org/show_bug.cgi?id=101188
Reviewed by Hajime Morita.
ShadowRoot type is not set correctly in Release build. We have had to remove #ifndef block.
Test: fast/dom/shadow/shadowroot-type.html
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::create):
* testing/Internals.cpp:
(WebCore::Internals::shadowRootType):
(WebCore):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2012-11-05 Kent Tamura <tkent@chromium.org>
BaseChooserOnlyDateAndTimeInputType should implement DateTimeChooserClient
https://bugs.webkit.org/show_bug.cgi?id=101038
Reviewed by Hajime Morita.
Add DateTimeChooserClient behavior to BaseChooserOnlyDateAndTimeInputType.
It means that date/time input elements without
ENABLE_INPUT_MULTIPLE_FIELDS_UI can open date/time choosers by
DOMActivate event.
This patch doesn't change behavior yet because Chromimum-Android port
intercepts user events and doesn't deliver them to date/time input
elements. <http://crbug.com/159381>
* html/BaseChooserOnlyDateAndTimeInputType.cpp:
Add DateTimeChooserClient behavior. The code is similar to
PickerIndicatorElement.
(WebCore::BaseChooserOnlyDateAndTimeInputType::~BaseChooserOnlyDateAndTimeInputType):
Closes DateTimeChooser.
(WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
Open DateTimeChooser if
- The element is not disabled,
- The element is not read-only,
- The element has a renderer,
- This event is created by a user gesture, and
- The element has no DateTimeChooser.
(WebCore::BaseChooserOnlyDateAndTimeInputType::detach):
Closes DateTimeChooser.
(WebCore::BaseChooserOnlyDateAndTimeInputType::didChooseValue):
Set a string value coming from a chooser to the input element.
(WebCore::BaseChooserOnlyDateAndTimeInputType::didEndChooser):
Clear m_dateTimeChooser when the chooser was closed.
(WebCore::BaseChooserOnlyDateAndTimeInputType::closeDateTimeChooser):
Requests to close the chooser.
* html/BaseChooserOnlyDateAndTimeInputType.h:
(BaseChooserOnlyDateAndTimeInputType):
- Implement DateTimeChooserClient
- Add closeDateTimeChooser helper function.
- Add detach override.
- Add m_dateTimeChooser.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setupDateTimeChooserParameters):
Added. The code is moved from PickerIndicatorElement.cpp in order to
share it with BaseChooserOnlyDateAndTimeInputType.
* html/HTMLInputElement.h:
(HTMLInputElement): Declare setupDateTimeChooserParameters.
* html/shadow/PickerIndicatorElement.cpp:
(WebCore::PickerIndicatorElement::openPopup):
Move some code to HTMLInputElement::setupDateTimeChooserParameters.
2012-11-04 Julien Chaffraix <jchaffraix@webkit.org>
Fix the collapsing border code to handle mixed directionality at the row level
https://bugs.webkit.org/show_bug.cgi?id=101060
Reviewed by Ojan Vafai.
After bug 87900, we support mixed directionality at the row-group level. For coherency
- as the underlying code didn't support it - we were artificially ignoring 'direction'
below the row-group. This change relaxes the restriction and patches the collapsing
borders code to query the right style and border.
Tests: fast/table/border-collapsing/table-ltr-rows-mixed-direction.html
fast/table/border-collapsing/table-rtl-row-mixed-direction.html
* rendering/RenderTable.cpp:
(WebCore::RenderTable::tableStartBorderAdjoiningCell):
(WebCore::RenderTable::tableEndBorderAdjoiningCell):
Changed to query the row's direction.
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::hasStartBorderAdjoiningTable):
(WebCore::RenderTableCell::hasEndBorderAdjoiningTable):
Added 2 helper functions. They determine if a specific cell's border
adjoins the table. This code is required as the last cell's end border
can be resolved against the start border.
(WebCore::RenderTableCell::computeCollapsedStartBorder):
(WebCore::RenderTableCell::computeCollapsedEndBorder):
Updated these functions now that being the start / end column doesn't mean
that we have to resolve against the row / row-group / table's border.
* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::styleForCellFlow):
Updated to return the row's style.
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::borderAdjoiningStartCell):
(WebCore::RenderTableRow::borderAdjoiningEndCell):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::borderAdjoiningStartCell):
(WebCore::RenderTableSection::borderAdjoiningEndCell):
Updated these functions to work with mixed directionality.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::setLogicalPositionForCell):
Changed this function to use the section's direction. This is wrong and should be changed
once we properly fix the collapsing border code.
(WebCore::RenderTableSection::logicalRectForWritingModeAndDirection):
Added a FIXME.
* rendering/style/CollapsedBorderValue.h:
(WebCore::CollapsedBorderValue::width):
This is a bug in our implementation: we used to return a non-zero width for inexistant borders (per CSS 2.1,
'border-style: off | hidden' should have a 0 width). This is covered by our existing tests (among others by
fast/table/border-collapsing/last-cell-left-border-hidden-table-ltr-section-rtl.html).
2012-11-04 Andrey Adaikin <aandrey@chromium.org>
Web Inspector: [Canvas] do not blow up the capturing log
https://bugs.webkit.org/show_bug.cgi?id=100752
Reviewed by Pavel Feldman.
Clear obsolete calls in the canvas 2D capturing log in runtime.
Now we store in the log only minimum number of calls that are necessary to replay a
canvas 2D context. To achieve that we find in runtime those calls in the log that no
longer contribute to the final context state and remove them.
These are the rules according which we find and remove such calls:
- all PATH methods between a clip() call and beginPath() call can be removed
- all MATRIX methods before a restore() or setTransform() call but after any PATH or corresponding save() method
- all consecutive save() + restore() calls
Tests: inspector/profiler/canvas2d/canvas2d-api-changes.html
inspector/profiler/canvas2d/canvas2d-profiler-capturing-basics.html
* inspector/InjectedScriptCanvasModuleSource.js:
(.):
2012-11-04 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] ShadowRoot should have a method to return ShadowRootType.
https://bugs.webkit.org/show_bug.cgi?id=101178
Reviewed by Hajime Morita.
When we style PseudoCustomElement, we have to know ShadowRootType.
We would like to expose a method to get ShadowRootType also in Release mode.
This is a preparation patch for Bug 101170.
* dom/ShadowRoot.h:
(ShadowRoot):
2012-11-04 Keishi Hattori <keishi@webkit.org>
Introduce Month class to calendar picker
https://bugs.webkit.org/show_bug.cgi?id=101024
Reviewed by Kent Tamura.
Month class needs to be introduced to implement a month picker. This
patch just introduces the Month class into the calendar picker without
changing the current behavior.
No new tests. Covered by existing calendar-picker-*.html tests.
* Resources/pagepopups/calendarPicker.js:
(Month.prototype.toLocaleString): Returns a localized month string.
(Month): Takes a Month object, number representing the month, or year and month numbers.
(Month.parse): Returns a new Month from an ISO month string.
(Month.createFromDate): Returns a new Month containing the given datetime.
(Month.prototype.equals): Returns true if the given month is the same.
(Month.prototype.previous): Returns the previous month.
(Month.prototype.next): Returns the next month.
(Month.prototype.startDate): Returns a datetime that is the start of this month. The value is inclusive.
(Month.prototype.endDate): Returns a datetime that is the end of this month. The value is exclusive.
(Month.prototype.valueOf): Returns a number representing the month.
(Month.prototype.toString): Returns an ISO month string.
(YearMonthController): Use Month object.
(YearMonthController.prototype.attachTo): Year 275760 ends in September so use the year before to measure the label width.
(YearMonthController.prototype.setMonth): Take a month object.
(YearMonthController.prototype._redraw): Use ISO month string for element.dataset.value.
(YearMonthController.prototype._handleYearMonthChange):
(YearMonthController.prototype.moveRelatively):
(DaysTable): Use Month object.
(DaysTable.prototype._renderMonth): Take a month object. Testing for isNaN is moved up to fix a bug when showing September, 275760.
(DaysTable.prototype._navigateToMonth): Take a month object.
(DaysTable.prototype._navigateToMonthWithAnimation): Take a month object.
(DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Take a month object.
(DaysTable.prototype.selectDate):
(DaysTable.prototype._maybeSetPreviousMonth): Use Month object to calculate the previous month.
(DaysTable.prototype._maybeSetNextMonth): Use Month object to calculate the next month.
2012-11-04 Halton Huo <halton.huo@intel.com>
[EFL] Use _LIBRARIES instead of _LIBRARY
https://bugs.webkit.org/show_bug.cgi?id=101042
Reviewed by Gyuyoung Kim.
In CMake Find files, _LIBRARY is intended for internal use, should
use _LIBRARIES instead.
* PlatformEfl.cmake: s/_LIBRARY}/_LIBRARIES}
2012-11-04 MORITA Hajime <morrita@google.com>
Shadow DOM should be able to be disabled per context.
https://bugs.webkit.org/show_bug.cgi?id=101173
Reviewed by Dimitri Glazkov.
This change pulls back relevant bits from r131549. Note that if
the the port enables runtime Shadow DOM flag, this can cause slow
down on some Chromium page cycler test cases (which r131549
attempted to fix).
This change is temporal and the flags should be switched back from
ContextFeatures to RuntimeEnabledFeatures once it gains sufficent
stability.
* dom/ContextFeatures.cpp:
(WebCore::ContextFeatures::shadowDOMEnabled):
(WebCore):
* dom/ContextFeatures.h:
* dom/Position.cpp:
(WebCore::Position::Position):
(WebCore::Position::findParent):
* dom/TreeScope.cpp:
(WebCore::TreeScope::getSelection):
* html/HTMLTagNames.in:
* html/shadow/HTMLContentElement.cpp:
(WebCore::HTMLContentElement::contentTagName):
* page/DOMWindow.idl:
2012-11-04 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] Implement custom pseudo-elements styling
https://bugs.webkit.org/show_bug.cgi?id=100812
Reviewed by Hajime Morita.
Instead of using ElementRareData::m_shadowPseudoId, we use 'pseudo' attribute.
Later we would like to remove Element::shadowPseudoId and Element::setShadowPseudoId
and use pseudo()/setPseudo() instead (Bug 101171).
Test: fast/dom/shadow/styling-pseudo-attribute.html
* dom/Element.cpp:
(WebCore::Element::shadowPseudoId):
(WebCore::Element::setShadowPseudoId):
* dom/ElementRareData.cpp:
(WebCore::ElementRareData::reportMemoryUsage):
* dom/ElementRareData.h:
(ElementRareData):
2012-11-04 Kent Tamura <tkent@chromium.org>
BaseChooserOnlyDateAndTimeInputType should have BaseClickableWithKeyInputType behavior
https://bugs.webkit.org/show_bug.cgi?id=101039
Reviewed by Hajime Morita.
Add BaseClickableWithKeyInputType behavior to
BaseChooserOnlyDateAndTimeInputType. It means date/time input types
without ENABLE_INPUT_MULTIPLE_FIELDS_UI receive DOMActivate events by
pressing space or enter key. They're going to open a date/time chooser
by DOMActive event.
Because BaseChooserOnlyDateAndTimeInputType inherits from
BaseDateAndTimeInputType, it can't inherit
BaseClickableWithKeyInputType. So, this patch adds static helper
functions to BaseClickableWithKeyInputType, and
BaseChooserOnlyDateAndTimeInputType uses them.
This patch doesn't change behavior yet because Chromimum-Android port
intercepts user events and doesn't deliver them to date/time input
elements.
* html/BaseChooserOnlyDateAndTimeInputType.cpp:
(WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
Add an empty implementation with a FIXME comment.
(WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeydownEvent):
Add BaseClickableWithKeyInputType behavior by a helper function.
(WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeypressEvent): Ditto.
(WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeyupEvent): Ditto.
(WebCore::BaseChooserOnlyDateAndTimeInputType::accessKeyAction): Ditto.
* html/BaseChooserOnlyDateAndTimeInputType.h:
(BaseChooserOnlyDateAndTimeInputType): Add function declarations.
* html/BaseClickableWithKeyInputType.cpp:
Add static helper functions, and existing member functions use them.
* html/BaseClickableWithKeyInputType.h:
(BaseClickableWithKeyInputType): Add declarations of the helper functions.
* html/InputType.h:
(InputType): Make dispatchSimulatedClickIfActive public because it is
called from a helper function.
2012-11-04 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133416.
http://trac.webkit.org/changeset/133416
https://bugs.webkit.org/show_bug.cgi?id=101169
Broke world selection by right click (Requested by rniwa on
#webkit).
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
(WebCore::EventHandler::sendContextMenuEvent):
2012-11-04 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Missing ASCIILiteral in a place of accessibility
https://bugs.webkit.org/show_bug.cgi?id=101160
Reviewed by Darin Adler.
ASCIILiteral usage is being missed in a spot of accessibliity.
* accessibility/AccessibilityMediaControls.cpp:
(WebCore::AccessibilityMediaTimeDisplay::accessibilityDescription):
2012-11-03 Balazs Kelemen <kbalazs@webkit.org>
[Qt][WK2] setPlatformStrategies always asserts after r132744
https://bugs.webkit.org/show_bug.cgi?id=100838
Reviewed by Simon Hausmann.
Reland with build fixes.
The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
from the injected bundle, which calls initializeWebCoreQt and it sets the platform
strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
code. In order to keep the behavior, this patch adds exported helpers to WebCore
that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
add it to the WebKit1 API for the time being, but my goal was to move in the direction
of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
in non production mode.
Basically covered by all tests.
* Target.pri:
* WebCore.pri: We need to link against fontconfig (only in non-production mode) since
initializeTestFonts uses it.
* platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
is also under that.
(WebKit):
(WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
without calling initializeWebCoreQt.
(WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
the job even if we would stop clearing all caches between tests. Also moved the call to
QFontDatabase::removeAllApplicationFonts from callers to here.
* platform/qt/QtTestSupport.h:
(WebKit):
(QtTestSupport):
2012-11-04 Florin Malita <fmalita@chromium.org>
Color-profile property triggers assert
https://bugs.webkit.org/show_bug.cgi?id=101080
Reviewed by Dirk Schulze.
CSSPropertyColorProfile is not handled in StyleResolver::applySVGProperty(), triggering the
unimplemented property assert. Adding a stub entry to avoid that.
Test: svg/css/color-profile-crash.html
* css/SVGCSSStyleSelector.cpp:
(WebCore::StyleResolver::applySVGProperty):
2012-11-04 Kaustubh Atrawalkar <kaustubh@motorola.com>
Unable to copy text on disabled input fields on long press gesture
https://bugs.webkit.org/show_bug.cgi?id=99698
Reviewed by Ryosuke Niwa.
Text from disabled input/text should be allowed to select. Replaced isContentEditable()
with canStartSelection()
Test: fast/events/touch/gesture/disabled-input-text-selection.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureLongPress):
2012-11-03 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133403, r133404, and r133409.
http://trac.webkit.org/changeset/133403
http://trac.webkit.org/changeset/133404
http://trac.webkit.org/changeset/133409
https://bugs.webkit.org/show_bug.cgi?id=101158
"Broke tests" (Requested by kbalazs on #webkit).
* Target.pri:
* WebCore.pri:
* platform/qt/QtTestSupport.h: Removed.
2012-11-03 Alexey Proskuryakov <ap@apple.com>
Get rid of USE(CFURLSTORAGESESSIONS)
https://bugs.webkit.org/show_bug.cgi?id=101131
Reviewed by Sam Weinig.
This is always enabled on CFNetwork based platforms.
* WebCore.exp.in:
* page/Settings.cpp:
(WebCore::Settings::setPrivateBrowsingEnabled):
* platform/mac/CookieJar.mm:
(WebCore::cookies):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::setCookies):
(WebCore::cookiesEnabled):
(WebCore::getRawCookies):
(WebCore::deleteCookie):
* platform/network/ResourceHandle.h:
(ResourceHandle):
* platform/network/cf/CookieStorageCFNet.cpp:
(WebCore):
(WebCore::currentCFHTTPCookieStorage):
* platform/network/cf/CookieStorageCFNet.h:
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::willSendRequest):
(WebCore::makeFinalRequest):
(WebCore::ResourceHandle::willSendRequest):
(WebCore):
* platform/network/cf/ResourceRequest.h:
(ResourceRequest):
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore):
* platform/network/mac/CookieStorageMac.mm:
(WebCore::setCookieStoragePrivateBrowsingEnabled):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::shouldRelaxThirdPartyCookiePolicy):
(WebCore::ResourceHandle::createNSURLConnection):
(WebCore::ResourceHandle::willSendRequest):
(WebCore):
* platform/network/mac/ResourceRequestMac.mm:
(WebCore):
(WebCore::ResourceRequest::setStorageSession):
2012-11-03 Balazs Kelemen <kbalazs@webkit.org>
[Qt][WK2] setPlatformStrategies always asserts after r132744
https://bugs.webkit.org/show_bug.cgi?id=100838
Reviewed by Simon Hausmann.
Reland with build fix.
The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
from the injected bundle, which calls initializeWebCoreQt and it sets the platform
strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
code. In order to keep the behavior, this patch adds exported helpers to WebCore
that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
add it to the WebKit1 API for the time being, but my goal was to move in the direction
of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
in non production mode.
Basically covered by all tests.
* Target.pri:
* WebCore.pri: We need to link against fontconfig (only in non-production mode) since
initializeTestFonts uses it.
* platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
is also under that.
(WebKit):
(WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
without calling initializeWebCoreQt.
(WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
the job even if we would stop clearing all caches between tests. Also moved the call to
QFontDatabase::removeAllApplicationFonts from callers to here.
* platform/qt/QtTestSupport.h:
(WebKit):
(QtTestSupport):
2012-11-03 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133397.
http://trac.webkit.org/changeset/133397
https://bugs.webkit.org/show_bug.cgi?id=101155
"Broke Qt. No way to force the damn bots to do a clean build.
I'm giving up." (Requested by kbalazs on #webkit).
* Target.pri:
* WebCore.pri:
* platform/qt/QtTestSupport.h: Removed.
2012-11-03 Stephen White <senorblanco@chromium.org>
Speculative fix to eliminate flakiness in
css3/filters/blur-filter-page-scroll-self.html
https://bugs.webkit.org/show_bug.cgi?id=91620.
Suspicion is that a prior test is setting
window.internals.settings.setEnableCompositingForFixedPosition(true),
causing this test to be intermittely run on the GPU, giving different
pixel results depending on test order.
Reviewed by Jochen Eisinger.
Covered by css3/filters/blur-filter-page-scroll-self.html
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
* testing/InternalSettings.h:
(Backup):
2012-11-03 Mark Rowe <mrowe@apple.com>
REGRESSION (r132858): Crash below -[DOMElement setClassName:] when called with a nil string
Reviewed by Anders Carlsson.
The changes in r132858 introduced an overload of AtomicString::add for CFStrings. However, the overload
that was introduced is not null safe.
* platform/text/cf/AtomicStringCF.cpp:
(WTF::AtomicString::add): Handle a null string by returning a null StringImpl.
2012-11-03 Balazs Kelemen <kbalazs@webkit.org>
[Qt][WK2] setPlatformStrategies always asserts after r132744
https://bugs.webkit.org/show_bug.cgi?id=100838
Reviewed by Simon Hausmann.
The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
from the injected bundle, which calls initializeWebCoreQt and it sets the platform
strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
code. In order to keep the behavior, this patch adds exported helpers to WebCore
that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
add it to the WebKit1 API for the time being, but my goal was to move in the direction
of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
in non production mode.
Basically covered by all tests.
* Target.pri:
* WebCore.pri: We need to link against fontconfig (only in non-production mode) since
initializeTestFonts uses it.
* platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
is also under that.
(WebKit):
(WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
without calling initializeWebCoreQt.
(WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
the job even if we would stop clearing all caches between tests. Also moved the call to
QFontDatabase::removeAllApplicationFonts from callers to here.
* platform/qt/QtTestSupport.h:
(WebKit):
(QtTestSupport):
2012-11-03 Dan Beam <dbeam@chromium.org>
Implement HTMLFormElement#requestAutocomplete and associated events
https://bugs.webkit.org/show_bug.cgi?id=100557
Reviewed by Adam Barth.
Implements an initial version of the proposal for interactive autocomplete outlined in this email:
http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
The goal of this patch is to allow web authors to call formElement.requestAutocomplete(); after subscribing for
autocomplete/autocompleteerror events on formElement. If the form's [autocomplete] attribute is "off" an
error will be dispatched. Otherwise, a request will be issued to the FrameLoaderClient. At the moment, the
implementation in Chrome (https://codereview.chromium.org/11270018/) will simply dispatch an error until the
UI on Chrome's side is built. Both autocomplete and autocompleteerror events will be dispatched asynchronously
after a small delay to behave consistently in all situations and implementations.
Currently this is behind the feature flag REQUEST_AUTOCOMPLETE, which is disabled.
Test: fast/forms/form-request-autocomplete.html
* dom/EventNames.h:
(WebCore):
Added autocomplete and autocompleteerror events. The autocomplete event is dispatched after a user adds more
information to a form using the future UI. This is not currently dispatched in any implementation (including Chrome)
but will be in the future. The autocompleteerror event is dispatched when the form has [autocomplete="off"] on the
node being asked for an interactive autocomplete. The user agent may also dispatch this event if it doesn't implement
this API but has turned on the feature flag, can't currently show an autocomplete UI (e.g. running headlessly or in
an HTML notification, security concerns, or any other reason it desires).
* html/HTMLAttributeNames.in:
Added onautocomplete and onautocompleteerror attributes so they can be parsed when creating form elements and used
as event listeners. For example:
<form onautocomplete="/* when autocomplete succeeds */" autocompleteerror="/* when autocomplete fails */">
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::HTMLFormElement):
(WebCore):
Added m_requestAutocompleteTimer (a timer that's used to dispatch events asynchronously) to the initializer list that
triggers requestAutocompleteTimerFired when it times out.
(WebCore::HTMLFormElement::requestAutocomplete):
Called when HTMLFormElement#requestAutocomplete is called from JS (also see HTMLFormElement.idl) and decides whether
to dispatch an error and exit early (in the case where autocomplete="off") or pass the request on to the
FrameLoaderClient.
(WebCore::HTMLFormElement::finishRequestAutocomplete):
Called when the request for an interactive autocomplete is finished with either a success or error result. This
causes an event to queue and fired after a 0 second delay. Events are owned by HTMLFormElement and reference the
target element (this) until fired.
(WebCore::HTMLFormElement::requestAutocompleteTimerFired):
Called when the event timer runs out to pump the queue of current events. Events are released on dispatch.
(WebCore::HTMLFormElement::parseAttribute):
Encountering onautocomplete or onautocompleteerror attributes while parsing HTMLFormElements now adds event listeners
for autocomplete an autocompleteerror events (respectively) to dispatch the value of the attribute as a script.
* html/HTMLFormElement.h:
(HTMLFormElement):
Added various methods and data members as required by the implementation.
* html/HTMLFormElement.idl:
Added the method requestAutocomplete and associated DOM event handler attributes (onautocomplete/onautocompleteerror)
to HTMLFormElement's public DOM API (unprefixed, as per Ian Hickson's advice). All are require the Conditional
REQUEST_AUTOCOMPLETE to be enabled to be activated.
* loader/EmptyClients.cpp:
(WebCore):
(WebCore::EmptyFrameLoaderClient::didRequestAutocomplete):
Added noop implementation for FrameLoader::didRequestAutocomplete.
* loader/EmptyClients.h:
(EmptyFrameLoaderClient):
Added FrameLoader::didRequestAutocomplete to EmptyFrameLoaderClient interface.
* loader/FrameLoaderClient.h:
(FrameLoaderClient):
Added noop implementation to FrameLoaderClient interface (which is implemented chromium's FrameLoaderLoaderImpl.cpp).
2012-11-03 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: %d, %i, and %f log formatters have same result
https://bugs.webkit.org/show_bug.cgi?id=101148
Reviewed by Alexander Pavlov.
Added separate formatters for %f, %i, %d and %s.
Test: inspector/console/console-message-format.html
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype.stringFormatter):
(WebInspector.ConsoleMessageImpl.prototype.floatFormatter):
(WebInspector.ConsoleMessageImpl.prototype.integerFormatter):
2012-11-03 Andreas Kling <kling@webkit.org>
Decouple Attr logic from ElementAttributeData.
<http://webkit.org/b/101126>
Reviewed by Antti Koivisto.
Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
can be shared by any number of Elements at a given time.
Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
"Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.
* dom/Element.h:
* dom/ElementAttributeData.h:
* dom/Element.cpp:
(WebCore::attrNodeListMap):
(WebCore::attrNodeListForElement):
(WebCore::ensureAttrNodeListForElement):
(WebCore::removeAttrNodeListForElement):
(WebCore::findAttrNodeInList):
(WebCore::Element::~Element):
(WebCore::Element::detachAttribute):
(WebCore::Element::setAttributeNode):
(WebCore::Element::removeAttributeInternal):
(WebCore::Element::getAttributeNode):
(WebCore::Element::getAttributeNodeNS):
(WebCore::Element::normalizeAttributes):
(WebCore::Element::attrIfExists):
(WebCore::Element::ensureAttr):
(WebCore::Element::detachAttrNodeFromElementWithValue):
(WebCore::Element::detachAllAttrNodesFromElement):
(WebCore::Element::cloneAttributesFromElement):
Move everything Attr-related into Element.cpp while simplifying some loops and remove
conditions that are no longer needed as they used to depend on having an attributeData().
* dom/Node.h:
(WebCore::Node::hasSyntheticAttrChildNodes):
(WebCore::Node::setHasSyntheticAttrChildNodes):
Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().
* dom/Attr.cpp:
(WebCore::Attr::detachFromElementWithValue):
Remove awkward indirection and let the call site deal with removing the Attr node from
the Element's list of Attr nodes.
* dom/ElementAttributeData.cpp:
(WebCore::ElementAttributeData::clearAttributes):
Remove now-unused Element* argument.
2012-11-03 Pavel Feldman <pfeldman@chromium.org>
REGRESSION (r132014-r132047): Webkit Inspector Window docking broken
https://bugs.webkit.org/show_bug.cgi?id=101125
Reviewed by Vsevolod Vlasov.
Added "bottom" as default docked state.
* inspector/front-end/DockController.js:
(WebInspector.DockController):
2012-11-02 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] ShadowRoot should be able to know the existence of <content>
https://bugs.webkit.org/show_bug.cgi?id=100921
Reviewed by Dimitri Glazkov.
When <content> is inserted into or removed from a shadow subtree, ShadowRoot counts the number of <content>.
It provides O(1) method to check the existence of <content>.
This is necessary when we implement a fast checking path for distribution invalidation when an element attribute
is changed. Larger context is explained in Bug 100451.
Test: fast/dom/shadow/has-content-elements.html
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
(WebCore::ShadowRoot::hasInsertionPoint): Since we track both <content> and <shadow>, we don't need to traverse
all the descendants of ShadowRoot anymore.
* dom/ShadowRoot.h:
(WebCore::ShadowRoot::registerContentElement):
(WebCore::ShadowRoot::unregisterContentElement):
(WebCore::ShadowRoot::hasContentElement):
(ShadowRoot):
* html/shadow/HTMLContentElement.cpp:
(WebCore::HTMLContentElement::HTMLContentElement):
(WebCore::HTMLContentElement::insertedInto): When <content> is inserted into ShadowDOM subtree,
we notify it to the ShadowRoot. Note that only active <content> element is counted.
(WebCore):
(WebCore::HTMLContentElement::removedFrom):
* html/shadow/HTMLContentElement.h:
(HTMLContentElement):
* testing/Internals.cpp:
(WebCore::Internals::hasContentElement):
(WebCore):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2012-11-02 KyungTae Kim <ktf.kim@samsung.com>
sCurrentPaintTimeStamp is not initialized when FrameView::paintContents returns in the middle
https://bugs.webkit.org/show_bug.cgi?id=99990
Reviewed by Darin Adler.
Move initialization code for sCurrentPaintTimeStamp to the below of early returns,
because it was not reset after early return.
* page/FrameView.cpp:
(WebCore::FrameView::paintContents):
2012-11-02 KyungTae Kim <ktf.kim@samsung.com>
Fix build warning in PluginView.cpp on release build
https://bugs.webkit.org/show_bug.cgi?id=101049
Reviewed by Kentaro Hara.
The protocol, host, port parameters are not used when LOG_DISABLED
Use UNUSED_PARAM macro for removing -Wunused-parameter warning
* plugins/PluginView.cpp:
(WebCore::PluginView::getAuthenticationInfo):
2012-10-25 Martin Robinson <mrobinson@igalia.com>
[GTK] Move soup authentication from GtkAuthenticationDialog to WebCore
https://bugs.webkit.org/show_bug.cgi?id=99914
Reviewed by Carlos Garcia Campos.
Move the actual soup authentication code from the GtkAuthenticationDialog to ResourceHandleSoup.
This allows a more generic implementation of authentication, for example, one where a WebKit2
client can completely handle authentication.
No new tests. This does not change behavior.
* platform/gtk/GtkAuthenticationDialog.cpp: Remove references to the SoupPasswordManager, which
is going away in the next release of Gnome. Instead we always assume that the authentication backend has
support for remembering passwords and pass that information along with the answer to the authentication
request.
The rest of the changes to this class can be summarized as:
1. Getting the information from the AuthenticationChallenge instead of directly from the libsoup
objects.
2. Using the AuthenticationClient to accomplish the authentication instead of talking to libsoup
directly.
* platform/gtk/GtkAuthenticationDialog.h:
(GtkAuthenticationDialog): Remove members which are no longer used.
* platform/network/ResourceHandle.h:
(ResourceHandle): ResourceHandleSoup now implements the entire AuthenticationClient interface.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge): Don't handle authentication
for synchronous handles.
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Now set the current challenge on
the internal data structure.
(WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added.
(WebCore::ResourceHandle::receivedCredential): Added.
(WebCore::ResourceHandle::receivedCancellation): Added.
(WebCore::authenicateCallback): Pass the handle as the authentication client.
2012-11-02 Benjamin Poulain <bpoulain@apple.com>
Improve CSSParser::setupParser() since the prefix/suffix are literals
https://bugs.webkit.org/show_bug.cgi?id=101107
Reviewed by Andreas Kling.
* css/CSSParser.cpp:
(WebCore::CSSParser::setupParser):
* css/CSSParser.h:
(CSSParser):
(WebCore::CSSParser::setupParser):
CSSParser::setupParser() is only used with literals prefix and suffix. We do not have
to compute the length at runtime, we can direclty encode it in the binary.
2012-11-02 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133375.
http://trac.webkit.org/changeset/133375
https://bugs.webkit.org/show_bug.cgi?id=101138
Caused 3 tests to fail on Mac (Requested by aboxhall-laptop on
#webkit).
* platform/text/LineBreakIteratorPoolICU.h:
(WebCore::LineBreakIteratorPool::take):
(WebCore::LineBreakIteratorPool::put):
(LineBreakIteratorPool):
* platform/text/TextBreakIterator.h:
(WebCore):
(WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
(WebCore::LazyLineBreakIterator::get):
(WebCore::LazyLineBreakIterator::reset):
(LazyLineBreakIterator):
* platform/text/TextBreakIteratorICU.cpp:
(WebCore::acquireLineBreakIterator):
(WebCore::releaseLineBreakIterator):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextLineBreak):
* rendering/RenderText.cpp:
(WebCore::RenderText::computePreferredLogicalWidths):
* rendering/RenderText.h:
(WebCore):
* rendering/break_lines.cpp:
(WebCore):
(WebCore::isBreakableSpace):
(WebCore::needsLineBreakIterator):
(WebCore::nextBreakablePosition):
(WebCore::nextBreakablePositionIgnoringNBSP):
* rendering/break_lines.h:
(WebCore):
(WebCore::isBreakable):
2012-11-02 Andreas Kling <kling@webkit.org>
Cut overgrown ElementAttributeData bitfield.
<http://webkit.org/b/101129>
Reviewed by Anders Carlsson.
Make sure the ElementAttributeData bitfield fits into 32 bits. Added a compile-time assertion
to guard against future bloatage.
* dom/ElementAttributeData.cpp:
(SameSizeAsElementAttributeData):
* dom/ElementAttributeData.h:
(ElementAttributeData):
2012-11-02 Michael Saboff <msaboff@apple.com>
Crash calling is8Bit() in visitedLinkHash()
https://bugs.webkit.org/show_bug.cgi?id=101119
Reviewed by Filip Pizlo.
Added an isEmpty() check to AttributeURL and KURL.
* platform/LinkHash.cpp:
(WebCore::visitedLinkHash):
2012-11-02 Glenn Adams <glenn@skynav.com>
Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
https://bugs.webkit.org/show_bug.cgi?id=89235
Reviewed by Eric Seidel.
See also wiki documentation at:
[1] http://trac.webkit.org/wiki/LineBreaking
[2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
Web exposed changes include:
(1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
(2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
(3) See [2] above for details regarding interpretation.
Tests: css3/line-break/line-break-auto-centered.html
css3/line-break/line-break-auto-half-kana.html
css3/line-break/line-break-auto-hyphens.html
css3/line-break/line-break-auto-inseparables.html
css3/line-break/line-break-auto-iteration-marks.html
css3/line-break/line-break-auto-postfixes.html
css3/line-break/line-break-auto-prefixes.html
css3/line-break/line-break-auto-sound-marks.html
css3/line-break/line-break-loose-centered.html
css3/line-break/line-break-loose-half-kana.html
css3/line-break/line-break-loose-hyphens.html
css3/line-break/line-break-loose-inseparables.html
css3/line-break/line-break-loose-iteration-marks.html
css3/line-break/line-break-loose-postfixes.html
css3/line-break/line-break-loose-prefixes.html
css3/line-break/line-break-loose-sound-marks.html
css3/line-break/line-break-normal-centered.html
css3/line-break/line-break-normal-half-kana.html
css3/line-break/line-break-normal-hyphens.html
css3/line-break/line-break-normal-inseparables.html
css3/line-break/line-break-normal-iteration-marks.html
css3/line-break/line-break-normal-postfixes.html
css3/line-break/line-break-normal-prefixes.html
css3/line-break/line-break-normal-sound-marks.html
css3/line-break/line-break-strict-centered.html
css3/line-break/line-break-strict-half-kana.html
css3/line-break/line-break-strict-hyphens.html
css3/line-break/line-break-strict-inseparables.html
css3/line-break/line-break-strict-iteration-marks.html
css3/line-break/line-break-strict-postfixes.html
css3/line-break/line-break-strict-prefixes.html
css3/line-break/line-break-strict-sound-marks.html
* platform/text/LineBreakIteratorPoolICU.h:
(WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
Add static function to construct ICU locale argument (also used as pool key) with additional
break keyword.
(WebCore::LineBreakIteratorPool::take):
(WebCore::LineBreakIteratorPool::put):
(LineBreakIteratorPool):
Remove direct dependency from ICU library (and types), moving that dependency into
new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
Update to take line break mode into account.
Create (and cache) different break iterators depending on line break mode (in addition to locale),
which entails expanding pool entry key format to optionally append "@break=" +
"loose"|"normal"|"strict" keyword to locale string.
* platform/text/TextBreakIterator.h:
(WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
(WebCore::LazyLineBreakIterator::isLooseCJKMode):
(WebCore::LazyLineBreakIterator::get):
(WebCore::LazyLineBreakIterator::reset):
(LazyLineBreakIterator):
Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
Add state member to indicate line break mode.
* platform/text/TextBreakIteratorICU.cpp:
(WebCore::acquireLineBreakIterator):
Use new line break mode when making iterator from pool.
Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
(WebCore::releaseLineBreakIterator):
Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
(WebCore::isCJKLocale):
New functions for determining if CJK rules apply.
(WebCore::openLineBreakIterator):
New function for abstracting opening of ICU style line break iterator. This is now
used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
This function also takes into account the line break mode.
(WebCore::closeLineBreakIterator):
(WebCore::mapLineIteratorModeToRules):
New function for abstracting closing of ICU style line break iterator. This is now
used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextLineBreak):
Pass line break iterator mode flag when reseting LazyLineBreakIterator.
Add looseMode local variable to prevent need for computing under isBreakable().
* rendering/RenderText.cpp:
(WebCore::mapLineBreakToIteratorMode):
Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
and RenderBlock::LineBreaker::nextLineBreak.
(WebCore::RenderText::computePreferredLogicalWidths):
Ensure (lazy line) breakIterator is initialized for line break mode.
Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
* rendering/RenderText.h:
(WebCore):
Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
and RenderBlock::LineBreaker::nextLineBreak.
* rendering/break_lines.cpp:
(WebCore):
Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
to include loose mode parameter.
(WebCore::isBreakableSpace):
Add externally specified loose mode parameter to prevent need to invoke line break iterator
accessor method on each invocation. Use new loose mode flavors off NBP functions.
(WebCore::needsLineBreakIterator):
Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
to prevent regression to non loose mode path.
(WebCore::nextBreakablePosition):
(WebCore::nextBreakablePositionIgnoringNBSP):
Use new template parameter enums described above.
(WebCore::nextBreakablePositionIgnoringNBSPLoose):
(WebCore::nextBreakablePositionLoose):
Introduce two additional 'loose' mode flavors of NBP template expansions.
* rendering/break_lines.h:
(WebCore):
(WebCore::isBreakable):
Add externally specified loose mode parameter to prevent need to invoke line break iterator
accessor method on each invocation.
2012-11-02 Elliott Sprehn <esprehn@chromium.org>
Replace NodeRareData hash map with a union on m_renderer
https://bugs.webkit.org/show_bug.cgi?id=100057
Reviewed by Eric Seidel.
Use a union on Node::m_renderer between NodeRareData* and RenderObject*. This removes
the overhead of accessing rare data and the memory from the map.
This is an 8% improvement on Bindings/get-elements-by-tag-name.html which tested
document.getElementsByTagName and was previously optimized in Bug 90059 for a 5%
improvement. As this is better than even the special casing for document that was
done in that bug, general node list access should see an even greater win.
This reduces the memory usage on nytimes.com by 250k per Bug 101052 by
removing the rare data map overhead.
This is also a 15% improvement on Parser/textarea-parsing.html
By removing the performance overhead of rareData() this patch addresses the performance
issues raised in Bugs 73853, 87034 and 89635.
I ran Parser/html5-full-render.html and there was no performance regression after
tuning Text::recalcTextStyle and the refactor that was done in r132684.
No new tests, this is just a refactor.
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
(WebCore::Node::Node):
* dom/Element.cpp:
(WebCore::Element::elementRareData):
* dom/Node.cpp:
(WebCore::Node::rareData):
(WebCore::Node::ensureRareData):
(WebCore::Node::clearRareData):
(WebCore::Node::renderBox):
(WebCore::Node::renderBoxModelObject):
(WebCore::Node::reportMemoryUsage):
* dom/Node.h:
(NodeRareDataBase):
Base class for NodeRareData that knows about the renderer so we can
inline the accesses in Node.h
(WebCore::NodeRareDataBase::renderer):
(WebCore::NodeRareDataBase::setRenderer):
(WebCore::NodeRareDataBase::~NodeRareDataBase):
(WebCore::NodeRareDataBase::NodeRareDataBase):
(WebCore):
(WebCore::Node::renderer):
(WebCore::Node::setRenderer):
(Node):
* dom/NodeRareData.h:
* dom/NodeRenderStyle.h:
(WebCore::Node::renderStyle):
* dom/Text.cpp:
(WebCore::Text::recalcTextStyle):
This method appears very hot in html5-full-render.html and accessing the
renderer 4 times caused a 2% performance regression with this patch. I
reduced it to 1 access and there's no longer any performance regression.
* dom/WebCoreMemoryInstrumentation.cpp:
Removed tracking of the rare data map memory usage as there is no longer
a map to track.
* dom/WebCoreMemoryInstrumentation.h:
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2012-11-02 Alexey Proskuryakov <ap@apple.com>
[Mac] ResourceHandle changes for network process
https://bugs.webkit.org/show_bug.cgi?id=101111
Reviewed by Jessie Berlin.
With NSOperationQueue, we'll be getting NetworkProcess delegate method calls
on secondary threads, and so we won't block other requests while consulting with WebProcess.
* platform/network/NetworkingContext.h:
(WebCore::NetworkingContext::scheduledRunLoopPairs):
(WebCore::NetworkingContext::scheduledOperationQueue):
Add an ability to schedule on an NSOperationQueue. Now that scheduling on run loop
is not a must, give scheduledRunLoopPairs() a default implementation.
* platform/network/mac/ResourceHandleMac.mm: Removed isInitializingConnection
static. It was only used to catch a long obsolete bug with debug logging, and
cannot work with multiple threads.
(WebCore::ResourceHandle::start): Scedule on a operation queue if applicable.
(-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Removed a
check that used isInitializingConnection.
2012-11-02 Chris Rogers <crogers@google.com>
Automating gain AudioParam with linearRampToValueAtTime introduces buzzing distortion
https://bugs.webkit.org/show_bug.cgi?id=100885
Reviewed by Kenneth Russell.
AudioParamTimeline needs to use double-precision for time-values to avoid drift and precision issues.
Covered by existing tests.
* Modules/webaudio/AudioParam.cpp:
(WebCore::AudioParam::calculateTimelineValues):
* Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::valueForContextTime):
(WebCore::AudioParamTimeline::valuesForTimeRange):
(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
* Modules/webaudio/AudioParamTimeline.h:
(AudioParamTimeline):
2012-11-02 Stephen Chenney <schenney@chromium.org>
Reduce redundant code in SimpleFontData[platform]
https://bugs.webkit.org/show_bug.cgi?id=97245
Reviewed by Eric Seidel.
Move duplicated code out of platform specific files and into the common file.
This represents all of the methods in SimpleFontData that do not have genuine
platform specific code.
No new tests because there is no change at all in the functionality.
* platform/graphics/SimpleFontData.cpp:
(WebCore):
(WebCore::SimpleFontData::smallCapsFontData): Implementation from platform files.
(WebCore::SimpleFontData::emphasisMarkFontData): Implementation from platform files.
* platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
(WebCore): Removed common code.
* platform/graphics/freetype/SimpleFontDataFreeType.cpp:
(WebCore): Removed common code.
* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore): Removed common code.
* platform/graphics/pango/SimpleFontDataPango.cpp:
(WebCore): Removed common code.
* platform/graphics/qt/SimpleFontDataQt.cpp:
(WebCore): Removed common code.
* platform/graphics/skia/SimpleFontDataSkia.cpp:
(WebCore): Removed common code.
* platform/graphics/win/SimpleFontDataWin.cpp:
(WebCore): Removed common code.
* platform/graphics/wince/SimpleFontDataWinCE.cpp:
(WebCore): Removed common code.
* platform/graphics/wx/SimpleFontDataWx.cpp:
(WebCore): Removed common code.
2012-11-02 Adam Barth <abarth@webkit.org>
memory-instrumentation-cached-images.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=101103
Unreviewed.
Restore code deleted in http://trac.webkit.org/changeset/133331.
* bindings/v8/IntrusiveDOMWrapperMap.h:
2012-11-02 Simon Fraser <simon.fraser@apple.com>
Enable SUBPIXEL_LAYOUT on Mac
https://bugs.webkit.org/show_bug.cgi?id=101076
Reviewed by Dave Hyatt.
Define ENABLE_SUBPIXEL_LAYOUT and include it in FEATURE_DEFINES.
* Configurations/FeatureDefines.xcconfig:
2012-11-02 Lianghui Chen <liachen@rim.com>
[BlackBerry] ResourceHandle::cancel() in ResourceHandleBlackBerry should setClient to null.
https://bugs.webkit.org/show_bug.cgi?id=101082
Internal PR: 235410.
Patch suggested by George Staikos, prepared by Lyon Chen.
Reviewed by Yong Li.
ResourceHandle::cancel() should call setClient(0) to close the window
during which it has been cancelled but its client is still there and can
be called.
No new tests as it's a code improvement without obvious bug.
* platform/network/blackberry/ResourceHandleBlackBerry.cpp:
(WebCore::ResourceHandle::cancel):
2012-11-02 Anders Carlsson <andersca@apple.com>
Add a PluginInactive plug-in unavailability reason
https://bugs.webkit.org/show_bug.cgi?id=101089
Reviewed by Sam Weinig.
This is to be used by Mac WebKit and WebKit2 shortly.
* English.lproj/Localizable.strings:
* platform/LocalizedStrings.cpp:
(WebCore::inactivePluginText):
(WebCore):
* platform/LocalizedStrings.h:
(WebCore):
* platform/blackberry/LocalizedStringsBlackBerry.cpp:
(WebCore::inactivePluginText):
(WebCore):
* platform/efl/LocalizedStringsEfl.cpp:
(WebCore::inactivePluginText):
(WebCore):
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::inactivePluginText):
(WebCore):
* platform/qt/LocalizedStringsQt.cpp:
(WebCore::inactivePluginText):
(WebCore):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::unavailablePluginReplacementText):
* rendering/RenderEmbeddedObject.h:
2012-11-02 Rob Buis <rbuis@rim.com>
[CMAKE] Remove QNX specific section
https://bugs.webkit.org/show_bug.cgi?id=101063
Reviewed by Daniel Bates.
We do not need the QNX section anymore, so also remove the FEATURE_DEFINES_CSS variable as it
equals FEATURE_DEFINES_WITH_SPACE_SEPARATOR.
* CMakeLists.txt:
2012-11-02 Michael Saboff <msaboff@apple.com>
visitedHashLink() converts 8 bit URLs and attributes to 16 bits.
https://bugs.webkit.org/show_bug.cgi?id=101014
Reviewed by Geoffrey Garen.
Converted most of the static methods to templated based on character type. Changed visitedHashLink to
check bitness of both the base URL and attribute. If both are 8 bit, then we process using the LChar
version of the templated methods. Otherwise we use the 16 bit flavor.
Changes covered by existing tests.
* platform/LinkHash.cpp:
(WebCore::findSlashDotDotSlash):
(WebCore::findSlashSlash):
(WebCore::findSlashDotSlash):
(WebCore::containsColonSlashSlash):
(WebCore::squeezeOutNullCharacters):
(WebCore::cleanSlashDotDotSlashes):
(WebCore::mergeDoubleSlashes):
(WebCore::cleanSlashDotSlashes):
(WebCore::cleanPath):
(WebCore::matchLetter):
(WebCore::needsTrailingSlash):
(WebCore::visitedURLInline):
(WebCore::visitedURL):
(WebCore::visitedLinkHash):
2012-11-02 Ian Vollick <vollick@chromium.org>
Support invalidation tracking for composited layers
https://bugs.webkit.org/show_bug.cgi?id=97801
Reviewed by Simon Fraser.
GraphicsLayers now store invalidated rects and can include them in
the layer tree dump.
Test: compositing/repaint/invalidations-on-composited-layers.html
* WebCore.exp.in:
Exports FrameView::resetTrackedRepaints()
* page/FrameView.cpp:
(WebCore::FrameView::setTracksRepaints):
Notifies each compositor that we are starting/stopping repaints.
(WebCore::FrameView::resetTrackedRepaints):
Moved implementation to the cpp file.
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::~GraphicsLayer):
Clears the repaint rects associated with this layer.
(WebCore::GraphicsLayer::resetTrackedRepaints):
Clears the repaint rects associated with this layer.
Note that the repaint rects are stored in a statically allocated
HashMap to avoid using space on the graphics layers.
(WebCore::GraphicsLayer::addRepaintRect):
Adds a repaint rect to list associated with this layer in the
hash map mentioned above.
(WebCore::GraphicsLayer::dumpProperties):
This has been modified to include the repaint rects in the dump
if they've been requested.
* platform/graphics/GraphicsLayerClient.h:
(WebCore::GraphicsLayerClient::isTrackingRepaints):
This is how graphics layers check if repaint tracking is happening.
Returns false by default.
* platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
(WebCore::GraphicsLayerBlackBerry::setContentsNeedsDisplay):
(WebCore::GraphicsLayerBlackBerry::setNeedsDisplay):
(WebCore::GraphicsLayerBlackBerry::setNeedsDisplayInRect):
These now call GraphicsLayer::addRepaintRect as necessary.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setNeedsDisplayInRect):
Now calls GraphicsLayer::addRepaintRect as necessary.
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
(WebCore::GraphicsLayerChromium::setNeedsDisplay):
(WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
These now call GraphicsLayer::addRepaintRect as necessary.
* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::GraphicsLayerClutter::setNeedsDisplay):
(WebCore::GraphicsLayerClutter::setNeedsDisplayInRect):
These now call GraphicsLayer::addRepaintRect as necessary.
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
(WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay):
(WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
These now call GraphicsLayer::addRepaintRect as necessary.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::isTrackingRepaints):
Required since this is a GraphicsLayerClient.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::layerTreeAsText):
Now accepts a flag to include the repaint rects in the layer tree
dump.
(WebCore::resetTrackedRepaintRectsRecursive):
Clears the repaint rects on all graphics layers.
(WebCore::RenderLayerCompositor::resetTrackedRepaintRects):
Clears the repaint rects on all graphics layers.
(WebCore::RenderLayerCompositor::isTrackingRepaints):
Required since this is a GraphicsLayerClient.
* testing/Internals.cpp:
(WebCore::Internals::layerTreeAsText):
* testing/Internals.h:
* testing/Internals.idl:
The internals changes plumb the new flag for including the repaint
rects in the layer tree dump.
2012-11-02 Adam Barth <abarth@webkit.org>
[V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
https://bugs.webkit.org/show_bug.cgi?id=100973
Reviewed by Stephen White.
This is the first step towards using intrusive DOM wrapper maps more
widely in WebCore (see
http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
for more context).
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::DOMDataStore):
* bindings/v8/IntrusiveDOMWrapperMap.h:
(WebCore):
(WebCore::IntrusiveDOMWrapperMap::weakCallback):
2012-11-02 Adam Barth <abarth@webkit.org>
ASSERT in RenderLayer::hitTestContents can fire
https://bugs.webkit.org/show_bug.cgi?id=99656
Reviewed by Eric Seidel.
The issue is that updateHitTestResult and addNodeToRectBasedTestResult
are using two different nodes. Since they aren't consistent, we violate
assertions about only setting the inner node if we're doing a
rect-based hit test. This patch makes the two consistent.
Test: fast/dom/nodesFromRect/nodesFromRect-continuation-crash.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::nodeForHitTest):
(WebCore):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::updateHitTestResult):
* rendering/RenderBlock.h:
(RenderBlock):
2012-11-02 Mike West <mkwst@chromium.org>
Prefer 'Content-Security-Policy' to 'X-WebKit-CSP'.
https://bugs.webkit.org/show_bug.cgi?id=101043
Reviewed by Adam Barth.
The canonical 'Content-Security-Policy' header landed in 133095, but we
missed a few tests while updating to the new hotness. We also should
start using the canonical header for the inspector.
This patch should have no visible change; tests should continue to pass
with the new header, just as they did with the old header.
* inspector/front-end/inspector.html:
2012-11-02 Adam Barth <abarth@webkit.org>
ENABLE(UNDO_MANAGER) is disabled everywhere and is not under active development
https://bugs.webkit.org/show_bug.cgi?id=100711
Reviewed by Eric Seidel.
No one is actively working on ENABLE(UNDO_MANAGER). There are some
tricky lifetime issues in the UndoManager API that are complicating
ongoing work to improve the interaction between WebCore and the garbage
collector. Rather than leave this code in a broken state, we should
remove it for the time being. We can always restore it from the svn
history when there is an active owner for this code.
* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.features.am:
* GNUmakefile.list.am:
* Target.pri:
* UseJSC.cmake:
* UseV8.cmake:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/DOMTransaction.cpp: Removed.
* bindings/js/DOMTransaction.h: Removed.
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSUndoManagerCustom.cpp: Removed.
* bindings/v8/DOMTransaction.cpp: Removed.
* bindings/v8/DOMTransaction.h: Removed.
* bindings/v8/V8HiddenPropertyName.h:
(WebCore):
* bindings/v8/custom/V8DOMTransactionCustom.cpp: Removed.
* bindings/v8/custom/V8UndoManagerCustom.cpp: Removed.
* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::setCssText):
(WebCore::PropertySetCSSStyleDeclaration::setProperty):
(WebCore::PropertySetCSSStyleDeclaration::removeProperty):
(WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
* dom/CharacterData.cpp:
(WebCore::CharacterData::setDataAndUpdate):
* dom/ContainerNode.cpp:
(WebCore::willRemoveChild):
(WebCore::willRemoveChildren):
(WebCore::updateTreeAfterInsertion):
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
(WebCore):
(Document):
* dom/Document.idl:
* dom/Element.cpp:
(WebCore::Element::willModifyAttribute):
* editing/CompositeEditCommand.h:
* editing/DOMTransaction.idl: Removed.
* editing/DOMTransactionStep.cpp: Removed.
* editing/DOMTransactionStep.h: Removed.
* editing/Editor.cpp:
(WebCore::Editor::appliedEditing):
(WebCore::Editor::unappliedEditing):
(WebCore::Editor::reappliedEditing):
(WebCore::Editor::canUndo):
(WebCore::Editor::undo):
(WebCore::Editor::canRedo):
(WebCore::Editor::redo):
* editing/UndoManager.cpp: Removed.
* editing/UndoManager.h: Removed.
* editing/UndoManager.idl: Removed.
* editing/UndoStep.h:
(UndoStep):
2012-11-02 Mike West <mkwst@chromium.org>
Measure the usage of the various CSP headers.
https://bugs.webkit.org/show_bug.cgi?id=100974
Reviewed by Adam Barth.
Currently, we're collecting metrics regarding usage of the
'X-WebKit-CSP' and 'X-WebKit-CSP-Report-Only' HTTP headers. We've
recently added support for the canonical 'Content-Security-Policy'
and 'Content-Security-Policy-Report-Only' headers. This patch adds
those headers explicitly into the metrics, giving insight into uptake
of the unprefixed header, and into usage of pure reporting vs.
enforcement.
No visible functionality should change; all Content Security Policy
tests should continue to pass.
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::didReceiveHeader):
Convert the CSP header type into a FeatureObserver::Feature, and
observe it.
* page/FeatureObserver.h:
Add three new values to the enum to cover the new header types.
2012-11-02 Ojan Vafai <ojan@chromium.org>
Fix silly mistake from http://trac.webkit.org/changeset/133315.
Forgot to remove the "!".
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithElement):
2012-11-02 Tom Sepez <tsepez@chromium.org>
Support X-XSS-Protection: report=URL header syntax in XSSAuditor.
https://bugs.webkit.org/show_bug.cgi?id=100892
Reviewed by Adam Barth.
This patch adds a security feature which allows a violation report to be sent back
to a site when the XSSAuditor detects a reflected XSS against it. It uses the same
reporting mechanism as for CSP violation reports.
Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-5.html
http/tests/security/xssAuditor/malformed-xss-protection-header-6.html
http/tests/security/xssAuditor/malformed-xss-protection-header-7.html
http/tests/security/xssAuditor/malformed-xss-protection-header-8.html
http/tests/security/xssAuditor/malformed-xss-protection-header-9.html
http/tests/security/xssAuditor/report-script-tag.html
http/tests/security/xssAuditor/xss-protection-parsing-03.html
http/tests/security/xssAuditor/xss-protection-parsing-04.html
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::XSSAuditor):
(WebCore::XSSAuditor::init):
(WebCore::XSSAuditor::filterToken):
Invoke Ping loader's violation reporting, if requested, when a reflected
XSS is detected.
* html/parser/XSSAuditor.h:
XSSAuditor class need to store the report URL as well as the undigested versions
of the request URL and request body for reporting.
* loader/MixedContentChecker.cpp:
(WebCore):
* loader/MixedContentChecker.h:
(MixedContentChecker):
Make isMixedContent() method public.
* loader/PingLoader.cpp:
(WebCore::PingLoader::sendViolationReport):
* loader/PingLoader.h:
(PingLoader):
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::reportViolation):
Renamed reportContentSecurityPolicyViolation() method to sendViolationReport(),
since this is now used to send more than just CSP violations.
* platform/network/HTTPParsers.cpp:
(WebCore):
(WebCore::skipEquals):
(WebCore::skipValue):
(WebCore::parseXSSProtectionHeader):
* platform/network/HTTPParsers.h:
Parse and return report= directive in X-XSS-Protection header.
2012-11-02 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133313.
http://trac.webkit.org/changeset/133313
https://bugs.webkit.org/show_bug.cgi?id=101078
"A lot of tests hit the ASSERTs introduced by this patch"
(Requested by haraken on #webkit).
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::setDOMWrapper):
2012-11-02 Ojan Vafai <ojan@chromium.org>
Unreviewed, rolling out r132913.
http://trac.webkit.org/changeset/132913
https://bugs.webkit.org/show_bug.cgi?id=91850
Caused performance regressions.
See https://bugs.webkit.org/show_bug.cgi?id=100872 for details.
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::visitExternalStrings):
* bindings/v8/V8StringResource.cpp:
(StringTraits):
(WebCore::v8StringToWebCoreString):
* bindings/v8/V8ValueCache.cpp:
(WebCore::makeExternalString):
(WebCore::WebCoreStringResource::visitStrings):
* bindings/v8/V8ValueCache.h:
(WebCore::WebCoreStringResource::WebCoreStringResource):
(WebCore::WebCoreStringResource::~WebCoreStringResource):
(WebCore::WebCoreStringResource::data):
(WebCoreStringResource):
(WebCore::WebCoreStringResource::length):
(WebCore::WebCoreStringResource::atomicString):
(WebCore::WebCoreStringResource::toStringResource):
2012-11-02 Martin Robinson <mrobinson@igalia.com>
[GTK] Remove dependency on SoupPasswordManager
https://bugs.webkit.org/show_bug.cgi?id=100775
Reviewed by Carlos Garcia Campos.
Remember passwords using libsecret instead of SoupPasswordManager. We accomplish this using
a new class, CredentialBackingStore. CredentialBackingStore will soon be the thing that backs
CredentialStoreGtk. The name is based on the name of a similar class from the BlackBerry port.
No new tests. This does not change behavior.
* GNUmakefile.am: Add libsecret flags to the build and the new directory to the include list.
* GNUmakefile.list.am: Add new files to the source list.
* platform/gtk/GRefPtrGtk.cpp: Add support for SecretValue to GRefPtrGtk.
* platform/gtk/GtkAuthenticationDialog.cpp: Replace interaction with SoupPasswordManger with
interaction with the CredentialBackingStore. Remove all conditional SoupPasswordManager guards.
* platform/gtk/GtkAuthenticationDialog.h: Ditto.
* platform/network/gtk/CredentialBackingStore.cpp: Added.
* platform/network/gtk/CredentialBackingStore.h: Added.
2012-11-02 Jinwoo Song <jinwoo7.song@samsung.com>
Fix build warning [-Wswitch]
https://bugs.webkit.org/show_bug.cgi?id=101029
Reviewed by Alexey Proskuryakov.
Fix build warning message: enumeration value ‘Viewport’ not handled in switch [-Wswitch]
in Source/WebCore/css/StyleSheetContents.cpp.
Add case statement for 'Viewport' with the CSS_DEVICE_ADAPTATION macro.
* css/StyleSheetContents.cpp:
(WebCore::childRulesHaveFailedOrCanceledSubresources):
2012-11-02 Ojan Vafai <ojan@chromium.org>
Move m_element checks out of canShareStyle into locateSharedStyle
https://bugs.webkit.org/show_bug.cgi?id=101070
Reviewed by Darin Adler.
Can shareStyleWithElement is called for each sibling as we look for a
shareElement. locateSharedStyle is called once for the element we're
trying to find a style for. Checks that only depend on the latter
element should, thus be in locateSharedStyle.
No new tests. There should be no change in behavior, except possibly
a performance improvement in some cases.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithElement):
(WebCore::StyleResolver::locateSharedStyle):
2012-11-02 Kentaro Hara <haraken@chromium.org>
[V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
https://bugs.webkit.org/show_bug.cgi?id=101054
Reviewed by Adam Barth.
I'm investigating a Chromium crash bug:
http://code.google.com/p/chromium/issues/detail?id=155942
I've not yet identified the root cause (because I can't reproduce
the crash), but it looks like we are storing NULL pointers to
V8 internal fields. Just in case, we can add an ASSERT() to
guarantee that NULL pointers are never stored. (Also I'm hoping
that this ASSERT() will give me more debug information.)
No tests. No change in behavior.
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::setDOMWrapper):
2012-11-02 Kevin Ellis <kevers@chromium.org>
Imrpove scoring in touch adjustment to address bias towards smaller targets.
https://bugs.webkit.org/show_bug.cgi?id=101046
Reviewed by Antonio Gomes.
Update the touch overlap score for touch adjustmetn to normalize
with respect to the maximum possible overlap rather than the size
of the target element. This change enables good overlap scores for
small and large targets alike. Prior to the patch it was not possible
to get a good overlap score for a sufficiently larget target.
Covered by existing tests, which have been updated to reflect the
intended behavior.
* page/TouchAdjustment.cpp:
(WebCore::TouchAdjustment::hybridDistanceFunction):
2012-11-02 Mike West <mkwst@chromium.org>
Web Inspector: Repeated errors are rendered incorrectly: link is not floating to the right.
https://bugs.webkit.org/show_bug.cgi?id=101032
Reviewed by Yury Semikhatsky.
https://bugs.webkit.org/show_bug.cgi?id=100525 incorrectly added
'-webkit-flex: 1' only to the list generated for errors in the console.
It should have been added to normal warning text as well. This patch
fixes the problem.
* inspector/front-end/inspector.css:
(.repeated-message .outline-disclosure, .repeated-message > .console-message-text):
2012-11-02 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Timeline: show popup for CPU bars.
https://bugs.webkit.org/show_bug.cgi?id=100951
Reviewed by Pavel Feldman.
Each CPU bar can represent a combination of several shorter messages.
We should show information about combined messages - start time,
total duration, CPU time, message count.
* English.lproj/localizedStrings.js: Added "Message Count" string.
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._refreshMainThreadBars):
Supply elements with underlying info.
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.prototype.generateMainThreadBarPopupContent):
Added.
2012-11-02 Alexei Filippov <alph@chromium.org>
Web Inspector: Network panel grid UI is misaligned after r132888
https://bugs.webkit.org/show_bug.cgi?id=101050
Rollback the change to basic data grid css and move it to the native memory
snapshot datagrid css.
Reviewed by Alexander Pavlov.
* inspector/front-end/dataGrid.css:
(.data-grid td):
* inspector/front-end/nativeMemoryProfiler.css:
(.native-snapshot-view .data-grid td):
2012-11-02 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133303.
http://trac.webkit.org/changeset/133303
https://bugs.webkit.org/show_bug.cgi?id=101068
"Broke qt wk2 build (seems like bots fails to rerun qmake if
needed)" (Requested by kbalazs on #webkit).
* Target.pri:
* WebCore.pri:
* platform/PlatformStrategies.cpp:
(WebCore):
* platform/qt/QtTestSupport.h: Removed.
2012-11-02 Balazs Kelemen <kbalazs@webkit.org>
[Qt][WK2] setPlatformStrategies always asserts after r132744
https://bugs.webkit.org/show_bug.cgi?id=100838
Reviewed by Simon Hausmann.
The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
from the injected bundle, which calls initializeWebCoreQt and it sets the platform
strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
code. In order to keep the behavior, this patch adds exported helpers to WebCore
that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
add it to the WebKit1 API for the time being, but my goal was to move in the direction
of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
in non production mode.
Basically covered by all tests.
* Target.pri:
* WebCore.pri: We need to link against fontconfig (only in non-production mode) since
initializeTestFonts uses it.
* platform/PlatformStrategies.cpp:
(WebCore): Zero initialize the global static variable as it is expected by the functions
below. It is a side fix. It seems like it has not been shown on debug WebKit2 bots because
common runtime environments tend to zero initialize statics by default - but I don't think
we should rely on that.
* platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
is also under that.
(WebKit):
(WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
without calling initializeWebCoreQt.
(WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
the job even if we would stop clearing all caches between tests. Also moved the call to
QFontDatabase::removeAllApplicationFonts from callers to here.
* platform/qt/QtTestSupport.h:
(WebKit):
(QtTestSupport):
2012-11-02 Kent Tamura <tkent@chromium.org>
Optimize DateTimeFormat::quoteAndAppendLiteral output
https://bugs.webkit.org/show_bug.cgi?id=101040
Reviewed by Kentaro Hara.
In LDML date format pattern, only ASCII alphabet and quote have special
roles. So we don't need to quote the input string if it doesn't contain
them.
No new tests. Updated WebKit/chromium/tests/LocaleWinTest.cpp
* platform/text/DateTimeFormat.cpp:
(WebCore::isASCIIAlphabetOrQuote): A helper to check special characters.
(WebCore::DateTimeFormat::quoteAndAppendLiteral):
Append the input string as is if it has no special character.
2012-11-02 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: NMI instrument NodeRareData::Map. It uses ~250k on nytimes.com
https://bugs.webkit.org/show_bug.cgi?id=101052
Reviewed by Yury Semikhatsky.
I noticed that in many cases cache structures are plain static HashMap, HashSet etc.
MemoryAgent can visit it but instrumentation for these containers report no objectType.
It means that addRootObject method needs to accept objectType property as an argument.
Otherwise I would have had to create a proxy class with proper objectType.
* dom/WebCoreMemoryInstrumentation.cpp:
(WebCore::WebCoreMemoryInstrumentation::reportMemoryUsage):
(WebCore):
* dom/WebCoreMemoryInstrumentation.h:
(WebCoreMemoryInstrumentation):
(WebCore):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2012-11-02 Michael Brüning <michael.bruning@digia.com>
[Qt][WK2] ASSERT hit for every mouse click
https://bugs.webkit.org/show_bug.cgi?id=100607
Reviewed by Jocelyn Turcotte.
Changed the logic of absolutePathForRenderer to use the first highlight box as the mid box
by uniting the two in case the mid box is empty. This allows the first box to be merged with
the last box should they intersect, and thereby prevents an ASSERT in addHighlightRect that is
triggered by two intersecting boxes being passed to addHighlightRect as separate ones.
Also, this patch removes some superfluous checks for LayoutRect::isEmpty, which is being checked
in LayoutRect::intersects already.
No new tests, but added manual test: ManualTests/tap-gesture-on-em-link-tap-highlight-assert.html
* page/GestureTapHighlighter.cpp:
2012-11-02 Arpita Bahuguna <arpitabahuguna@gmail.com>
Regression r130057: Improper preferred width calculation when an inline replaced object, wrapped in an inline flow, follows some text.
https://bugs.webkit.org/show_bug.cgi?id=99442
Reviewed by Levi Weintraub.
Extra width is displayed after an inline replaced object that follows some
text (not ending in a whitespace) within an inline-block. This is due to
the end width (endMin) of the text object being carried forward (via inlineMin)
and added onto the next line containing the inline replaced object.
This was caused as a regression to, or rather became apparent post the fix
http://trac.webkit.org/changeset/130057 which fixed the block's preferred
width when a renderInline with width contained an inline replaced object.
Test: fast/block/block-with-inline-replaced-child-following-text.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
Introduced another flag (shouldBreakLineAfterText) which is set when
our current Text line (object) does not end in a whitespace, thereby
implying that there could be more text following, for which the end width
needs to be carried forward onto the next line.
In case the following object instead turns out to be an Inline Replaced
object, we should terminate our previous line and reset this extra width.
This is now being handled by checking for the shouldBreakLineAfterText
flag while processing Inline Replaced objects.
Once set, shouldBreakLineAfterText shall be reset only if we get another
Text object that ends in a whitespace, signifying the termination of
that text line. For all other cases, we persist with this flag through
the block's inline contents.
2012-11-02 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Console: remove obsolete ctrl-shift-m shortcut
https://bugs.webkit.org/show_bug.cgi?id=101036
Reviewed by Pavel Feldman.
Ctrl-shift-m on console dumps MemoryAgent.getDOMNodeCount
This functionality seems to be obsolete.
* inspector/front-end/ConsoleView.js: Removed shortcut and function.
2012-11-02 Stephen Chenney <schenney@chromium.org>
SVG classes cause layering violations in platform Font code
https://bugs.webkit.org/show_bug.cgi?id=98513
Reviewed by Eric Seidel.
Add a contained class to save and restore GlpyhPage state in FontFallbackList.
This allows us to remove the layering violation, and several methods, that
previously existed to support SVGTextRunRenderingContext.
No new tests because no change at all in functionality.
* platform/graphics/FontFallbackList.h:
(FontFallbackList):
(GlyphPagesStateSaver): New state save and restore class
(WebCore::FontFallbackList::GlyphPagesStateSaver::GlyphPagesStateSaver): Save GlyphPage state
(WebCore::FontFallbackList::GlyphPagesStateSaver::~GlyphPagesStateSaver): Restore GlyphPage state
* rendering/svg/SVGTextRunRenderingContext.cpp:
(WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Shift to usage of the new class.
2012-11-02 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Fix compilation errors
https://bugs.webkit.org/show_bug.cgi?id=101027
Reviewed by Yury Semikhatsky.
* inspector/InjectedScriptSource.js:
(.):
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeSnapshotNode.prototype._createSizeCell):
2012-11-02 Andreas Kling <kling@webkit.org>
Only resolve attribute-derived style once per shared ElementAttributeData.
<http://webkit.org/b/100990>
Reviewed by Antti Koivisto.
Track the serialization of the "style" attribute, and the dirtiness of the presentation attribute style
on ElementAttributeData instead of in Node flags.
This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
since the state is no longer per-Element.
I've left the presentation attribute cache in there for now, since it covers two additional cases:
- Elements with the same attributes in different order.
- Elements with the same presentation attributes, but with differing non-presentation attributes.
It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
* dom/Node.h:
* dom/ElementAttributeData.h:
(WebCore::ElementAttributeData::presentationAttributeStyle):
(WebCore::ElementAttributeData::setPresentationAttributeStyle):
(WebCore::ElementAttributeData::styleAttributeIsDirty):
(WebCore::ElementAttributeData::setStyleAttributeIsDirty):
(WebCore::ElementAttributeData::presentationAttributeStyleIsDirty):
(WebCore::ElementAttributeData::setPresentationAttributeStyleIsDirty):
(ElementAttributeData):
(WebCore::ElementAttributeData::ElementAttributeData):
* dom/Element.cpp:
(WebCore::Element::getAttribute):
* dom/Element.h:
(WebCore::Element::styleAttributeIsDirty):
(WebCore::Element::updateInvalidAttributes):
* dom/StyledElement.cpp:
(WebCore::StyledElement::updateStyleAttribute):
(WebCore::StyledElement::attributeChanged):
(WebCore::StyledElement::styleAttributeChanged):
(WebCore::StyledElement::inlineStyleChanged):
* dom/StyledElement.h:
(WebCore::StyledElement::invalidateStyleAttribute):
Move the "attribute style dirty" and "style attribute valid" node flags to ElementAttributeData
and change them to both use dirty semantics.
* dom/ElementAttributeData.cpp:
(WebCore::ElementAttributeData::cloneDataFrom):
Share the presentation attribute style between cloned elements initially.
* dom/StyledElement.h:
(WebCore::StyledElement::presentationAttributeStyle):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::sweepMatchedPropertiesCache):
(WebCore::StyleResolver::matchAllRules):
(WebCore::StyleResolver::canShareStyleWithElement):
* dom/ElementAttributeData.cpp:
(WebCore::MutableElementAttributeData::MutableElementAttributeData):
(WebCore::ElementAttributeData::reportMemoryUsage):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
Renamed StyledElement::attributeStyle() to presentationAttributeStyle(). The old name was too
easily confused with "style attribute".
* dom/StyledElement.cpp:
(WebCore::StyledElement::rebuildPresentationAttributeStyle):
Renamed from updateAttributeStyle().
2012-11-01 Kent Tamura <tkent@chromium.org>
Introduce ENABLE_DATE_AND_TIME_INPUT_TYPES, and clarify usage of other related flags
https://bugs.webkit.org/show_bug.cgi?id=101007
Reviewed by Kentaro Hara.
ChromeClient::openDateTimeChooser and Locale::formatDateTime are
necessary if one of date/time input types is enabled and even if
ENABLE_INPUT_MULTIPLE_FIELDS_UI is disabled. So they should be wrapped
with ENABLE(DATE_AND_TIME_INPUT_TYPES).
The following clases are used only for ChromeClient::openDateTimeChooser.
They should be wrapped with the same flag.
- class DateTimeChooser
- class DateTiemChooserClient
The following classes/functions are used for
Locale::formatDateTime. They should be wrapped with the same flag.
- Locale::dateFormat
- Locale::monthFormat
- Locale::timeFormat
- Locale::shortTimeFormat
- Locale::monthLabels
- Locale::shortMonthLabels
- Locale::standAloneMonthLabels
- Locale::shortStandAloneMonthLabels
- class DateTimeFormat
Also, we change the meaning of ENABLE_CALENDAR_PICKER. It meant
1) <input> supports calendar picker UI, and
2) WebCore/Resources/pagepopups/ is used for the calendar UI implementation.
Now ENABLE_CALENDAR_PICKER means only 2.
No new tests because of no behavior changes.
* html/BaseDateAndTimeInputType.h: This is necessary only if date/time
input types are enabled because this is a common super class of
date/time InputType classes.
* html/BaseDateAndTimeInputType.cpp: Ditto.
* html/BaseChooserOnlyDateAndTimeInputType.cpp: Ditto.
* html/BaseChooserOnlyDateAndTimeInputType.h: Ditto.
* page/ChromeClient.h: Change the flag for openDateTimeChooser, and add a comment.
* loader/EmptyClients.cpp: Follow the openDateTimeChooser flag change.
* loader/EmptyClients.h: Ditto.
* platform/DateTimeChooser.h:
This is needed only if ChromeClient::openDateTimeChooser is available.
* platform/DateTimeChooserClient.h: Ditto.
* platform/LocalizedStrings.h:
weekFormatInLDML is necessary if ENABLE(INPUT_TYPE_WEEK) regardless of
ENABLE(INPUT_MULTIPLE_FIELDS_UI).
* platform/text/PlatformLocale.h:
Change the condition for Locale::formatDateTime and the code used by
Locale::formatDateTime.
* platform/text/PlatformLocale.cpp:
(WebCore::Locale::formatDateTime):
This is necessary even if !ENABLE(INPUT_MULTIPLE_FIELDS_UI), to produce
localized representations of date/time values.
* platform/text/LocaleICU.cpp:
Change the condition for the code used by Locale::formatDateTime.
* platform/text/LocaleICU.h: Ditto.
* platform/text/LocaleNone.cpp: Ditto.
* platform/text/mac/LocaleMac.h: Ditto.
* platform/text/mac/LocaleMac.mm: Ditto.
* platform/text/win/LocaleWin.cpp: Ditto.
* platform/text/win/LocaleWin.h: Ditto.
* platform/text/DateTimeFormat.cpp: Ditto.
* platform/text/DateTimeFormat.h: Ditto.
* html/BaseMultipleFieldsDateAndTimeInputType.h:
Remove some #if-#endif for a picker indicator element because
ENABLE_CALENDAR_PICKER meaning is changed.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
* html/shadow/PickerIndicatorElement.cpp: CALENDAR_PICKER ->
INPUT_MULTIPLE_FIELDS_UI because ENABLE_CALENDAR_PICKER meaning is changed.
* html/shadow/PickerIndicatorElement.h: Ditto.
* rendering/RenderDetailsMarker.cpp: Ditto.
* rendering/RenderDetailsMarker.h: Ditto.
* rendering/RenderTheme.h: Ditto.
* rendering/RenderThemeChromiumCommon.cpp: Ditto.
* rendering/RenderThemeChromiumCommon.h: Ditto.
* rendering/RenderThemeChromiumMac.h: Ditto.
* rendering/RenderThemeChromiumSkia.h: Ditto.
2012-11-02 Zeno Albisser <zeno@webkit.org>
[Qt] Revert QCocoaNativeInterface workaround from r131720.
https://bugs.webkit.org/show_bug.cgi?id=100842
Reviewed by Simon Hausmann.
After updating Qt5 on the buildbots, the workaround
introduced in r131720 is not needed anymore.
* platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
2012-11-02 Kent Tamura <tkent@chromium.org>
Add a common base class for date/time input types without inline editing behavior
https://bugs.webkit.org/show_bug.cgi?id=101031
Reviewed by Hajime Morita.
Add BaseChooserOnlyDateAndTimeInputType class, which will support
DateTimeChooserClient, and date/time input types inherit it if
!ENABLE(INPUT_MULTIPLE_FIELDS_UI).
No new tests. This doesn't change any behavior.
* CMakeLists.txt: Add BaseChooserOnlyDateAndTimeInputType.{cpp,h}.
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* html/BaseChooserOnlyDateAndTimeInputType.cpp: Added.
* html/BaseChooserOnlyDateAndTimeInputType.h: Added.
* html/DateInputType.h: Inherit BaseChooserOnlyDateAndTimeInputType if
!ENABLE(INPUT_MULTIPLE_FIELDS_UI).
* html/DateTimeInputType.h: Ditto.
* html/DateTimeLocalInputType.h: Ditto.
* html/MonthInputType.h: Ditto.
* html/TimeInputType.h: Ditto.
* html/WeekInputType.h: Ditto.
2012-11-02 Peter Wang <peter.wang@torchmobile.com.cn>
Web Inspector: [JSC] implement WorkerScriptDebugServer
https://bugs.webkit.org/show_bug.cgi?id=99801
Reviewed by Yury Semikhatsky.
To implement Worker Inspector for JSC.
The virtual function "runEventLoopWhilePaused" is defined, since there are different ways to block
the JS running in worker-context and normal page-context.
The function "isContentScript" now is virtual because the original invoked functions are useless
and cause problem in worker-context.
In function "WebCore::WorkerScriptController::attachDebugger", we invoke "initScriptIfNeeded" to
ensure the JSGloblalObject exist in the case of attaching Debugger before executing the worker
JS code (Pause on start).
No new test case.
* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
(WebCore):
* bindings/js/PageScriptDebugServer.h:
(PageScriptDebugServer):
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::isContentScript):
(WebCore::ScriptDebugServer::pauseIfNeeded):
* bindings/js/ScriptDebugServer.h:
(JSC):
(ScriptDebugServer):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::attachDebugger):
(WebCore):
(WebCore::WorkerScriptController::detachDebugger):
* bindings/js/WorkerScriptController.h:
(WorkerScriptController):
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
(WebCore):
(WebCore::WorkerScriptDebugServer::addListener):
(WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
(WebCore::WorkerScriptDebugServer::removeListener):
(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
* bindings/js/WorkerScriptDebugServer.h:
(WorkerScriptDebugServer):
(WebCore::WorkerScriptDebugServer::getListenersForGlobalObject):
(WebCore::WorkerScriptDebugServer::isContentScript):
2012-11-02 KyungTae Kim <ktf.kim@samsung.com>
Compilation warning in Node.cpp when USERSELECT_ALL is disabled
https://bugs.webkit.org/show_bug.cgi?id=101025
Reviewed by Ryosuke Niwa.
The parameter 'treatment' is not used when USERSELECT_ALL is disabled.
* dom/Node.cpp:
(WebCore::Node::rendererIsEditable):
2012-11-01 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Middle click closes an editor and pastes selection into current editor on Linux
https://bugs.webkit.org/show_bug.cgi?id=100743
Reviewed by Alexander Pavlov.
Editor now consumes all middle mouse button mouse ups except for the ones in the main panel.
TabbedPane now consumes all middle mouse button mouse ups as well.
Navigator view does not pass focus anymore if element was selected with middle mouse button.
* inspector/front-end/DefaultTextEditor.js:
(.preventDefaultOnMouseUp):
(.consumeMouseUp):
* inspector/front-end/NavigatorView.js:
(WebInspector.NavigatorSourceTreeElement.prototype.ondblclick):
* inspector/front-end/TabbedPane.js:
(WebInspector.TabbedPane):
(WebInspector.TabbedPane.prototype.onMouseUp):
(WebInspector.TabbedPane.prototype.onMouseClick):
2012-11-01 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: NMI instrument ShadowRoot. It gives us ~400k on plus.google.com
https://bugs.webkit.org/show_bug.cgi?id=100866
Reviewed by Yury Semikhatsky.
Plain vanilla memory instrumentation code for HTMLInputElement which has a ElementShadow.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* dom/DocumentOrderedMap.cpp:
(WebCore::DocumentOrderedMap::reportMemoryUsage):
(WebCore):
* dom/DocumentOrderedMap.h:
(DocumentOrderedMap):
* dom/Element.cpp:
(WebCore::Element::reportMemoryUsage):
(WebCore):
* dom/Element.h:
* dom/ElementRareData.cpp: Added.
(WebCore):
(WebCore::ElementRareData::reportMemoryUsage):
* dom/ElementRareData.h:
(ElementRareData):
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::reportMemoryUsage):
(WebCore):
* dom/ElementShadow.h:
(ElementShadow):
* dom/Node.cpp:
(WebCore::Node::reportMemoryUsage):
* dom/NodeRareData.cpp: Added.
(WebCore):
(WebCore::NodeListsNodeData::reportMemoryUsage):
(WebCore::NodeRareData::reportMemoryUsage):
* dom/NodeRareData.h:
(NodeListsNodeData):
(NodeRareData):
* dom/ShadowRoot.cpp:
(WebCore):
(WebCore::ShadowRoot::reportMemoryUsage):
* dom/ShadowRoot.h:
(ShadowRoot):
* dom/TreeScope.cpp:
(WebCore::TreeScope::reportMemoryUsage):
(WebCore):
* dom/TreeScope.h:
(TreeScope):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::reportMemoryUsage):
(WebCore):
* html/HTMLFormControlElement.h:
(HTMLFormControlElement):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::reportMemoryUsage):
(WebCore):
* html/HTMLInputElement.h:
(HTMLInputElement):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::reportMemoryUsage):
(WebCore):
* html/HTMLTextFormControlElement.h:
(HTMLTextFormControlElement):
2012-11-02 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Cookie info in Network Resources Cookies tab shows "Invalid Date"
https://bugs.webkit.org/show_bug.cgi?id=97471
Reviewed by Pavel Feldman.
This patch is partly based on patch by Otto Derek Cheung <otcheung@rim.com>.
Refactored CookieParser so that all cookies in front-end were WebInspector.Cookie object.
Cookie table can now show Max-Age as well as Expires attribute of a cookie.
Fixed expiresDate calculation.
Removed getters from CookieParser for better compilation.
* English.lproj/localizedStrings.js:
* inspector/front-end/AuditRules.js:
(WebInspector.AuditRules.CookieRuleBase.prototype.mapResourceCookies):
(WebInspector.AuditRules.CookieSizeRule.prototype._average):
(WebInspector.AuditRules.CookieSizeRule.prototype._max):
(WebInspector.AuditRules.StaticCookielessRule.prototype._collectorCallback):
* inspector/front-end/CookieItemsView.js:
(WebInspector.CookieItemsView.prototype._filterCookiesForDomain):
* inspector/front-end/CookieParser.js:
(WebInspector.CookieParser.prototype.cookies):
(WebInspector.CookieParser.prototype._flushCookie):
(WebInspector.CookieParser.prototype._addCookie):
(WebInspector.Cookie.prototype.httpOnly):
(WebInspector.Cookie.prototype.secure):
(WebInspector.Cookie.prototype.session):
(WebInspector.Cookie.prototype.path):
(WebInspector.Cookie.prototype.domain):
(WebInspector.Cookie.prototype.expires):
(WebInspector.Cookie.prototype.maxAge):
(WebInspector.Cookie.prototype.size):
(WebInspector.Cookie.prototype.setSize):
(WebInspector.Cookie.prototype.expiresDate):
(WebInspector.Cookie.prototype.attributes):
(WebInspector.Cookies.getCookiesAsync):
(WebInspector.Cookies.buildCookiesFromString):
(WebInspector.Cookies.buildCookieProtocolObject):
(WebInspector.Cookies.cookieMatchesResourceURL):
(WebInspector.Cookies.cookieDomainMatchesResourceDomain):
* inspector/front-end/CookiesTable.js:
(WebInspector.CookiesTable):
(WebInspector.CookiesTable.prototype._totalSize):
(WebInspector.CookiesTable.prototype._sortCookies.expiresCompare):
(WebInspector.CookiesTable.prototype._sortCookies):
(WebInspector.CookiesTable.prototype._createGridNode):
* inspector/front-end/HAREntry.js:
(WebInspector.HAREntry.prototype._buildCookie):
2012-11-01 Yury Semikhatsky <yurys@chromium.org>
Memory instrumentation: do not call checkCountedObject with wrong pointers
https://bugs.webkit.org/show_bug.cgi?id=100958
Reviewed by Alexander Pavlov.
Removed redundant call to checkCountedObject.
* inspector/MemoryInstrumentationImpl.cpp:
(WebCore::MemoryInstrumentationClientImpl::countObjectSize):
2012-11-02 Peter Wang <peter.wang@torchmobile.com.cn>
Web Inspector: a small defect in "WorkersSidebarPanel.js"
https://bugs.webkit.org/show_bug.cgi?id=101022
Reviewed by Yury Semikhatsky.
In "autoattachToWorkersClicked", the "event.target.checked" doesn't alwyas valid, since the
"event.target" might be a label.
The problem just causes an error report, doesn't effect function, so no new test case.
* inspector/front-end/WorkersSidebarPane.js:
(WebInspector.WorkersSidebarPane.prototype._autoattachToWorkersClicked):
2012-11-01 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] Element should have getter and setter of attribute 'pseudo'
https://bugs.webkit.org/show_bug.cgi?id=100831
Reviewed by Hajime Morita.
We expose 'pseudo' attribute in Element. When nothing is assigned to 'pseudo', it should return null.
Test: fast/dom/shadow/pseudo-attribute.html
* dom/Element.cpp:
(WebCore::Element::pseudo):
(WebCore):
(WebCore::Element::setPseudo):
* dom/Element.h:
(Element):
* dom/Element.idl:
* html/HTMLAttributeNames.in:
2012-11-01 Roger Fong <roger_fong@apple.com>
Build fix. http://trac.webkit.org/changeset/133252 broke the Windows build.
https://bugs.webkit.org/show_bug.cgi?id=101008
Reviewed by fischman@chromium.org.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::clearMediaPlayer):
* html/HTMLMediaElement.h:
(HTMLMediaElement):
2012-11-01 Stephen White <senorblanco@chromium.org>
Unreviewed, rolling out r133244.
http://trac.webkit.org/changeset/133244
https://bugs.webkit.org/show_bug.cgi?id=100973
Broke Chromium Mac (clang) builds.
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::DOMDataStore):
* bindings/v8/IntrusiveDOMWrapperMap.h:
(WebCore::DOMNodeWrapperMap::weakCallback):
2012-11-01 Ami Fischman <fischman@chromium.org>
HTMLMediaPlayer should free m_player when src is set/changed
https://bugs.webkit.org/show_bug.cgi?id=99647
Reviewed by Eric Carlson.
New ManualTest added; manual since leaking media players doesn't have layoutTestController-visible effects.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute): clearMediaPlayer() when src is set/changed
(WebCore::HTMLMediaElement::userCancelledLoad): use new clearMediaPlayer() helper
(WebCore::HTMLMediaElement::clearMediaPlayer): clear m_player and associated timers/flags
(WebCore):
(WebCore::HTMLMediaElement::createMediaPlayer): whitespace-only change
* html/HTMLMediaElement.h: new method: createMediaPlayer().
(HTMLMediaElement):
2012-11-01 Tom Sepez <tsepez@chromium.org>
XSS blocker false positive when page contains <iframe src="">
https://bugs.webkit.org/show_bug.cgi?id=93416
Reviewed by Adam Barth.
Treat src="" and src="about:blank" as safe resources even if they appear
in the query parameters.
Tests: http/tests/security/xssAuditor/iframe-injection-allowed-2.html
http/tests/security/xssAuditor/iframe-injection-allowed-3.html
http/tests/security/xssAuditor/iframe-injection-allowed.html
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::isLikelySafeResource):
2012-11-01 Tien-Ren Chen <trchen@chromium.org>
Fix assertion failure in RenderGeometryMap::absoluteRect when frame scale != 1.0
https://bugs.webkit.org/show_bug.cgi?id=100912
Reviewed by Simon Fraser.
Frame scale will add transformation to RenderView, so fixed position doesn't
get propagated up to the viewport by RenderGeometryMap. This is handled
correctly in RenderView::mapLocalToContainer, causing the assertion to fail.
This patch corrects RenderGeometryMap::mapToAbsolute to handle the RenderView
transformation case.
A layout test is added to catch this issue. The test will crash debug build
without this patch.
Test: compositing/geometry/fixed-position-composited-page-scale-scroll.html
* rendering/RenderGeometryMap.cpp:
(WebCore::RenderGeometryMap::mapToAbsolute):
2012-11-01 Adam Barth <abarth@webkit.org>
[V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
https://bugs.webkit.org/show_bug.cgi?id=100973
Reviewed by Kentaro Hara.
This is the first step towards using intrusive DOM wrapper maps more
widely in WebCore (see
http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
for more context).
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::DOMDataStore):
* bindings/v8/IntrusiveDOMWrapperMap.h:
(WebCore):
(WebCore::IntrusiveDOMWrapperMap::weakCallback):
2012-11-01 Alexandru Chiculita <achicu@adobe.com>
[CSS Shaders] CustomFilterOperation should be converted to ValidatedCustomFilterOperation before using it
https://bugs.webkit.org/show_bug.cgi?id=100533
Reviewed by Dean Jackson.
Added the code that converts a CustomFilterOperation to a ValidatedCustomFilterOperation.
Both the software path and the composited one will use this operation instead. There will be
no need to check the shader in platform code anymore.
No new tests, already covered by existing custom filter tests.
* platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
(WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
* platform/graphics/filters/ValidatedCustomFilterOperation.h:
(WebCore):
(WebCore::ValidatedCustomFilterOperation::create):
(ValidatedCustomFilterOperation):
(WebCore::ValidatedCustomFilterOperation::validatedProgram):
(WebCore::ValidatedCustomFilterOperation::parameters):
(WebCore::ValidatedCustomFilterOperation::meshRows):
(WebCore::ValidatedCustomFilterOperation::meshColumns):
(WebCore::ValidatedCustomFilterOperation::meshType):
(WebCore::ValidatedCustomFilterOperation::operator==):
* rendering/FilterEffectRenderer.cpp:
(WebCore::createCustomFilterEffect):
(WebCore::FilterEffectRenderer::build):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::ensureBacking):
(WebCore::RenderLayer::clearBacking):
(WebCore::RenderLayer::styleChanged): updateOrRemoveFilterClients needs to be called before the composited
layer is updated. Otherwise the composited layer will never see a loaded filter in the first call.
(WebCore):
(WebCore::RenderLayer::isCSSCustomFilterEnabled):
(WebCore::RenderLayer::computeFilterOperations):
(WebCore::RenderLayer::updateOrRemoveFilterClients): Split updateOrRemoveFilterEffect into 2 functions.
This one is supposed to add the clients needed to load network resources.
(WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer): Figures out if a software fallback is needed
and creates a FilterEffectRenderer.
* rendering/RenderLayer.h:
(RenderLayer):
2012-11-01 Max Vujovic <mvujovic@adobe.com>
[CSS Shaders] Get rid of internal tex coord attribute
https://bugs.webkit.org/show_bug.cgi?id=94358
Reviewed by Dean Jackson.
Remove the internal css_a_texCoord attribute that WebKit added to shaders in order to
sample the element texture by texture coordinate.
Now, the WebKit-added sampling code can leverage a_texCoord if the author defined it, or
WebKit can add its own a_texCoord definition to the author's shader.
Note that vertex attributes are read-only in GLSL. Also, note that we already reject the
shader if the author did not define a_texCoord with the correct type. Essentially, if
a_texCoord exists in the author's validated shader, we are guaranteed that it's the correct
type and that its value is unmodified.
Test: css3/filters/custom/custom-filter-a-tex-coord-optional.html
* platform/graphics/filters/CustomFilterCompiledProgram.cpp:
(WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
Remove the references to m_internalTexCoordAttribLocation.
(WebCore::CustomFilterCompiledProgram::initializeParameterLocations): Ditto.
* platform/graphics/filters/CustomFilterCompiledProgram.h: Ditto.
* platform/graphics/filters/CustomFilterRenderer.cpp:
(WebCore::CustomFilterRenderer::bindProgramAndBuffers): Ditto.
(WebCore::CustomFilterRenderer::unbindVertexAttributes): Ditto.
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
Pass the set of symbols found in the author's shaders to the rewriteMixVertexShader
method.
(WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader):
If the author didn't define a_texCoord, add it to the end of the author's vertex
shader, but before the shader's new main function. As before, the new main function
will pass the texture coordinate to the fragment shader via the css_v_texCoord varying.
* platform/graphics/filters/CustomFilterValidatedProgram.h:
(WebCore):
Add a forward declaration for ANGLEShaderSymbol.
(CustomFilterValidatedProgram):
Update the method prototype for rewriteMixVertexShader.
2012-11-01 Chris Rogers <crogers@google.com>
Ensure that AudioNode deletion is synchronized with a stable state of the rendering graph
https://bugs.webkit.org/show_bug.cgi?id=100994
Reviewed by Kenneth Russell.
In some rare cases it has been observed that nodes are getting deleted in the main thread
during an audio rendering quantum where the dirty inputs and outputs have not yet been cleaned
via calls to handleDirtyAudioSummingJunctions() and handleDirtyAudioNodeOutputs().
This was possible because nodes marked for deletion with markForDeletion() could be picked
up in a subsequent call to deleteMarkedNodes() before the render quantum has finished and
handlePostRenderTasks() has had a chance to reconcile these marked nodes and clean the dirty state.
The solution is to manage the marked nodes in a separate vector which only gets copied to another
vector truly eligible for deletion which is synchronized in handlePostRenderTasks().
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::markForDeletion):
(WebCore::AudioContext::scheduleNodeDeletion):
(WebCore::AudioContext::deleteMarkedNodes):
* Modules/webaudio/AudioContext.h:
(AudioContext):
2012-11-01 Ryosuke Niwa <rniwa@webkit.org>
Build fix after r133224 as suggested by Enrica.
Confirmed the test failures go away on Chromium Mac locally.
* page/EventHandler.cpp:
(WebCore::EventHandler::updateSelectionForMouseDrag):
2012-11-01 Alexey Proskuryakov <ap@apple.com>
Rename HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) to USE(NETWORK_CFDATA_ARRAY_CALLBACK)
Rubber-stamped by Joe Pecoraro.
All CFNetwork based platforms have this now, but not all use it at the moment.
* loader/ResourceLoader.h:
* loader/SubresourceLoader.h:
* loader/cf/SubresourceLoaderCF.cpp:
* loader/mac/ResourceLoaderMac.mm:
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::clear):
(WebCore::SharedBuffer::buffer):
(WebCore::SharedBuffer::getSomeData):
* platform/SharedBuffer.h:
* platform/cf/SharedBufferCF.cpp:
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.h:
(ResourceHandleClient):
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::willCacheResponse):
(WebCore::ResourceHandle::createCFURLConnection):
* platform/network/mac/ResourceHandleMac.mm:
2012-11-01 Alexey Proskuryakov <ap@apple.com>
Fix HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) build
https://bugs.webkit.org/show_bug.cgi?id=100979
Reviewed by Joseph Pecoraro.
* loader/ResourceBuffer.cpp: (WebCore::ResourceBuffer::append):
* loader/ResourceBuffer.h:
Added a version of append() that takes CFDataRef, passing it directly to SharedBuffer.
* loader/mac/ResourceLoaderMac.mm: (WebCore::ResourceLoader::didReceiveDataArray):
InspectorInstrumentation now takes a length. Unfortunately, we don't have encodedLength
here, meaning that the results will likely be incorrect.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::willCacheResponse): Removed a version that needlessly used deprecated API.
(WebCore::ResourceHandle::createCFURLConnection): This code assumed that
HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) and USE(PROTECTION_SPACE_AUTH_CALLBACK) always
come together. Changed to check for these separately.
2012-11-01 Rob Buis <rbuis@rim.com>
[BlackBerry] Add more form validation strings
https://bugs.webkit.org/show_bug.cgi?id=100978
Reviewed by Yong Li.
PR 210072
Implement these two methods properly.
* platform/blackberry/LocalizedStringsBlackBerry.cpp:
(WebCore::validationMessageRangeUnderflowText):
(WebCore::validationMessageRangeOverflowText):
2012-11-01 Alexandru Chiculita <achicu@adobe.com>
[CSS Shaders] Move MeshBoxType out of CustomFilterOperation
https://bugs.webkit.org/show_bug.cgi?id=100782
Reviewed by Dean Jackson.
Moved CustomFilter::MeshBoxType enum to the CustomFilterConstants.h file and renamed it to CustomFilterMeshBoxType.
This way we can reuse it without including the CustomFilterOperation file.
No new tests, just refactoring code.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator CustomFilterMeshBoxType):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::createCustomFilterOperation):
* platform/graphics/filters/CustomFilterArrayParameter.h: Adding AnimationUtilities.h for WebCore::blend, looks like
CustomFilterOperation already included AnimationsUtilities.h indirectly.
* platform/graphics/filters/CustomFilterConstants.h: Added CustomFilterMeshBoxType.
* platform/graphics/filters/CustomFilterNumberParameter.h:
* platform/graphics/filters/CustomFilterOperation.cpp:
(WebCore::CustomFilterOperation::CustomFilterOperation):
* platform/graphics/filters/CustomFilterOperation.h:
(WebCore::CustomFilterOperation::create):
(WebCore::CustomFilterOperation::meshBoxType):
(CustomFilterOperation):
* platform/graphics/filters/CustomFilterRenderer.cpp:
(WebCore::CustomFilterRenderer::create):
(WebCore::CustomFilterRenderer::CustomFilterRenderer):
* platform/graphics/filters/CustomFilterRenderer.h: Also removed the need to include CustomFilterOperation.h. Some other
headers were needed to replace the files that were automatically incldued because of that file.
(WebCore):
(CustomFilterRenderer):
* platform/graphics/filters/FECustomFilter.cpp:
(WebCore::FECustomFilter::FECustomFilter):
(WebCore::FECustomFilter::create):
* platform/graphics/filters/FECustomFilter.h:
(FECustomFilter):
2012-11-01 Enrica Casucci <enrica@apple.com>
Part2 of: Extend -webkit-user-select with new value "all"
<rdar://problem/10161404>
https://bugs.webkit.org/show_bug.cgi?id=91912
Reviewed by Ryosuke Niwa.
The new value "all" for -webkit-user-select property gives content none-or-all selection option.
The patch was originally prepared by Alice Cheng but the approach has been changed.
The idea is to treat these elements like non editable, meaning that we should skip over them entirely
when moving the cursor and a deletion should delete the element and all its descentants at once.
The key change is in Node::rendererIsEditable where we now return false if the element style is
userSelect: all. The other change is in the way we create the selection on mouse click and dragging
over the element. In both cases we force the selection to extend over the entire element with
the user-select: all attribute.
This is currently enabled only for the Mac port.
Test: editing/selection/user-select-all-selection.html
* dom/Node.cpp: Added a parameter to isContentEditable to behave differently
when called from JavaScript. Internally isContentEditable returns false on
nodes with user-select: all style.
(WebCore::Node::isContentEditable):
(WebCore::Node::isContentRichlyEditable):
(WebCore::Node::rendererIsEditable):
(WebCore::Node::shouldUseInputMethod):
(WebCore::Node::willRespondToMouseClickEvents):
* dom/Node.h:
(WebCore::Node::rendererIsEditable):
(WebCore::Node::rendererIsRichlyEditable):
* dom/Position.cpp:
(WebCore::Position::nodeIsUserSelectAll): Added.
(WebCore::Position::rootUserSelectAllForNode): Added.
* dom/Position.h: Added static functions described above.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::removeInlineStyleFromElement): Added parameter to
isContentEditable() call.
(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): Added parameter to
isContentEditable() call.
* editing/DeleteFromTextNodeCommand.cpp:
(WebCore::DeleteFromTextNodeCommand::doApply): Added parameter to
isContentEditable() call.
* editing/FrameSelection.cpp:
(WebCore::adjustForwardPositionForUserSelectAll): New helper function.
(WebCore::adjustBackwardPositionForUserSelectAll): New helper function.
(WebCore::FrameSelection::modifyExtendingRight):
(WebCore::FrameSelection::modifyExtendingForward):
(WebCore::FrameSelection::modifyExtendingLeft):
(WebCore::FrameSelection::modifyExtendingBackward):
(WebCore::FrameSelection::modify):
(WebCore::CaretBase::invalidateCaretRect): Added parameter to
isContentEditable() call.
* editing/InsertNodeBeforeCommand.cpp:
(WebCore::InsertNodeBeforeCommand::doApply): Ditto.
(WebCore::InsertNodeBeforeCommand::doUnapply): Ditto.
* editing/RemoveNodeCommand.cpp:
(WebCore::RemoveNodeCommand::doApply): Ditto.
* editing/visible_units.cpp:
(WebCore::startOfParagraph): We should not consider a paragraph break and element
with user-select: all style, like we do at the border of editability.
(WebCore::endOfParagraph): Ditto.
* page/EventHandler.cpp:
(WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart): Create a selection
around the element whose style is user-select: all.
(WebCore::EventHandler::updateSelectionForMouseDrag): Ditto.
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::selectionState): Fixed a bug uncovered during this work.
If the selection starts in one of the leaf boxes and after we encounter one with SelectionNone,
we should return the selection state as SelectionBoth, assuming we went past the end selection.
This avoids doing an incorrect gap filling for the selection highlighting.
2012-11-01 Alec Flett <alecflett@chromium.org>
IndexedDB: Fix Windows build by re-adding a #include
https://bugs.webkit.org/show_bug.cgi?id=100986
Reviewed by Stephen White.
Fix #include that broke windows.
* Modules/indexeddb/IDBCallbacks.h:
2012-11-01 David Barton <dbarton@mathscribe.com>
REGRESSION (r128837): mathml/presentation/subsup.xhtml became flaky
https://bugs.webkit.org/show_bug.cgi?id=97390
Reviewed by Ojan Vafai.
In a RenderMathMLSubSup, we need to set the base's wrapper's style so that baseHeight
in layout() will be the base's true height, without any flexbox stretching.
Tested by existing tests.
* rendering/mathml/RenderMathMLSubSup.cpp:
(WebCore::RenderMathMLSubSup::fixAnonymousStyles):
(WebCore::RenderMathMLSubSup::addChild):
(WebCore::RenderMathMLSubSup::styleDidChange):
* rendering/mathml/RenderMathMLSubSup.h:
(RenderMathMLSubSup):
2012-11-01 Antti Koivisto <antti@apple.com>
REGRESSION (r132941): attribute modification 10% performance regression
https://bugs.webkit.org/show_bug.cgi?id=100873
Reviewed by Ojan Vafai.
Don't do the class change finding by mutating SpaceSplitString. It is slow. Instead use a bit vector
to mark the unchanged classes
* css/StyleResolver.cpp:
(WebCore):
* css/StyleResolver.h:
(WebCore::StyleResolver::hasSelectorForAttribute):
(WebCore):
(WebCore::StyleResolver::hasSelectorForClass):
(WebCore::StyleResolver::hasSelectorForId):
Inlined these and moved value validity testing to clients.
* dom/Element.cpp:
(WebCore::checkNeedsStyleInvalidationForIdChange):
(WebCore):
(WebCore::Element::attributeChanged):
Clean up id testing too.
(WebCore::checkNeedsStyleInvalidationForClassChange):
Use bit vector for marking seen values. Avoids allocations and reffing.
(WebCore::Element::classAttributeChanged):
Don't test if style is already invalid.
2012-11-01 Ryosuke Niwa <rniwa@webkit.org>
[Mac] Crash in Range::editingStartPosition
https://bugs.webkit.org/show_bug.cgi?id=100972
Reviewed by Enrica Casucci.
Add a missing null pointer check. toNormalizedRange() can return null here, in which case the call to
pastLastNode() will crash.
No new tests since determining the exact condition under which we go through the said code path and
toNormalRange returns null is hard.
* editing/mac/EditorMac.mm:
(WebCore::Editor::fontForSelection):
2012-11-01 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=100917
There should be a way to dump the scrolling tree from the layout tests
Reviewed by Simon Fraser.
New Internals call to dump the scrolling state tree as text. Calls through to the
ScrollingCoordinator.
* testing/Internals.cpp:
(WebCore::Internals::scrollingStateTreeAsText):
(WebCore):
* testing/Internals.h:
* testing/Internals.idl:
* WebCore.exp.in:
* page/Page.cpp:
(WebCore::Page::scrollingStateTreeAsText):
(WebCore):
* page/Page.h:
(Page):
ScrollingCoordinator tells the rootStateNode to dump the tree as text.
* page/scrolling/mac/ScrollingCoordinatorMac.h:
(ScrollingCoordinatorMac):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::scrollingStateTreeAsText):
(WebCore):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::scrollingStateTreeAsText):
(WebCore):
* page/scrolling/ScrollingCoordinator.h:
(ScrollingCoordinator):
dumpNode() dumps generic stuff for each node, and dumpProperties will dump the
properties that are specific to different types of nodes.
* page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::writeIndent):
(WebCore):
(WebCore::ScrollingStateNode::dumpNode):
(WebCore::ScrollingStateNode::scrollingStateTreeAsText):
* page/scrolling/ScrollingStateNode.h:
(WebCore):
(ScrollingStateNode):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::dumpProperties):
(WebCore):
* page/scrolling/ScrollingStateScrollingNode.h:
(ScrollingStateScrollingNode):
2012-11-01 Kenneth Russell <kbr@google.com>
Add RGB to supported destination formats of ImageBuffer::copyToPlatformTexture
https://bugs.webkit.org/show_bug.cgi?id=100971
Reviewed by Stephen White.
The ImageBuffer::copyToPlatformTexture restriction added in
r132965 was too restrictive. Allow RGB textures to prevent
performance regressions.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::texImage2D):
* platform/graphics/ImageBuffer.h:
(ImageBuffer):
2012-11-01 Michael Matovsky <mmatovsky@rim.com>
[BlackBerry] Web page view state should be preserved for pages loaded from page cache
https://bugs.webkit.org/show_bug.cgi?id=100694
Internal PR: 220488
Internally reviewed by Lianghui Chen, Joe Mason
Reviewed by Rob Buis.
The web page view specific metadata should be preserved for web pages loaded from page cache (by using back/forward).
This requires web page view state to be saved in and restored from the corresponding page cache history item.
No new tests for platform specific internal change.
* history/blackberry/HistoryItemViewState.h:
(HistoryItemViewState):
2012-11-01 Alec Flett <alecflett@chromium.org>
IndexedDB: add methods to support id-based backend APIs
https://bugs.webkit.org/show_bug.cgi?id=100425
Reviewed by Tony Chang.
First half of refactor involves adding a number of methods that
are int64_t-based rather than String-based. As a part of this, the
IDB*Metadata structs and the backend objectStore/index maps all
use int64_t as keys, rather than String.
In addition, there were a number of cleanups that came out of the
refactor:
- The list of object stores active in a transaction is now
maintained by the frontend IDBTransaction rather than the backend
IDBTransactionBackendImpl. This also had a simplifying rippling
effect through other call signatures.
- I was able to remove an apparently old FIXME from
IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.
- IDBObjectStoreBackendImpl's IndexWriter class got a little
simpler since the id is now easily available in the
IDBIndexMetadata.
- A number of methods got simpler in their int64_t versions,
specifically dropping a number of ExceptionCodes.
There is also some glue code
(getIndexId/getIndexIds/getObjectStoreId) that will go away with
the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425
No new tests, no new functionality as this is just a refactor.
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::objectStoreNames):
(WebCore::IDBDatabase::createObjectStore):
(WebCore::IDBDatabase::deleteObjectStore):
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::metadata):
(WebCore::IDBDatabaseBackendImpl::createObjectStore):
(WebCore::IDBDatabaseBackendImpl::objectStore):
(WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
(WebCore):
(WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
(WebCore::IDBDatabaseBackendImpl::transaction):
(WebCore::IDBDatabaseBackendImpl::loadObjectStores):
(WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
(WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(IDBDatabaseBackendInterface):
* Modules/indexeddb/IDBIndex.h:
(WebCore::IDBIndex::id):
(WebCore::IDBIndex::openKeyCursor):
* Modules/indexeddb/IDBIndexBackendInterface.h:
* Modules/indexeddb/IDBMetadata.h:
(WebCore::IDBIndexMetadata::IDBIndexMetadata):
(IDBIndexMetadata):
(IDBObjectStoreMetadata):
(WebCore::IDBObjectStoreMetadata::containsIndex):
(IDBDatabaseMetadata):
(WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
(WebCore::IDBDatabaseMetadata::containsObjectStore):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::indexNames):
(WebCore::IDBObjectStore::put):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::deleteIndex):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::put):
(WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
(WebCore):
(WebCore::makeIndexWriters):
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
(WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::deleteInternal):
(WebCore::IDBObjectStoreBackendImpl::createIndex):
(WebCore::IDBObjectStoreBackendImpl::index):
(WebCore::IDBObjectStoreBackendImpl::getIndexId):
(WebCore::IDBObjectStoreBackendImpl::getIndexIds):
(WebCore::IDBObjectStoreBackendImpl::deleteIndex):
(WebCore::IDBObjectStoreBackendImpl::loadIndexes):
(WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
(WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(IDBObjectStoreBackendImpl):
* Modules/indexeddb/IDBObjectStoreBackendInterface.h:
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess):
(WebCore::IDBRequest::uncaughtExceptionInEventHandler):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::create):
(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::objectStore):
* Modules/indexeddb/IDBTransaction.h:
(IDBTransaction):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::create):
(WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
(WebCore::IDBTransactionBackendImpl::objectStore):
(WebCore):
(WebCore::IDBTransactionBackendImpl::scheduleTask):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionBackendInterface.h:
2012-11-01 Adam Barth <abarth@webkit.org>
[V8] The DOMWrapperVisitor abstraction is no longer needed
https://bugs.webkit.org/show_bug.cgi?id=100965
Reviewed by Kentaro Hara.
This patch removes the DOMWrapperVisitor interface because it is no
longer needed. As a consequence, DOMWrapperMaps no longer need to
support enumeration, and we can move more DOM objects to use the faster
intrusive wrappers.
There was one remaining user of DOMWrapperVisitor in the
ScriptProfiler, which I've moved over to enumerating objects directly
from V8, similar to a function above it in the same file.
* bindings/v8/DOMWrapperMap.h:
(WebCore):
(DOMWrapperMap):
* bindings/v8/IntrusiveDOMWrapperMap.h:
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::visitNodeWrappers):
(WebCore::ScriptProfiler::visitExternalArrays):
2012-11-01 Mike West <mkwst@chromium.org>
CSP 1.0: Warn when old-style directives encountered.
https://bugs.webkit.org/show_bug.cgi?id=100883
Reviewed by Adam Barth.
In Mozilla's pre-W3C-spec implementation, a few directives are
implemented that were either renamed, reworked, or removed from CSP 1.0.
This patch adds special warning messages for three of those directives
to set developer expectations correctly.
Test: http/tests/security/contentSecurityPolicy/source-list-parsing-deprecated.html
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPDirectiveList::parseDirective):
(WebCore::CSPDirectiveList::addDirective):
(WebCore::ContentSecurityPolicy::reportUnsupportedDirective):
* page/ContentSecurityPolicy.h:
Rename 'reportUnrecognizedDirectives' to
'reportUnsupportedDirectives', and teach it to give more descriptive
error messages when encountering 'allow', 'options', and
'policy-uri'.
2012-11-01 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: Update CodeMirror to v3
https://bugs.webkit.org/show_bug.cgi?id=99319
Reviewed by Vsevolod Vlasov.
Updated to ToT v3.
* inspector/front-end/CodeMirrorTextEditor.js:
(WebInspector.CodeMirrorTextEditor):
(WebInspector.CodeMirrorTextEditor.prototype._gutterClick):
(WebInspector.CodeMirrorTextEditor.prototype.addBreakpoint):
(WebInspector.CodeMirrorTextEditor.prototype.removeBreakpoint):
(WebInspector.CodeMirrorTextEditor.prototype.setExecutionLine):
(WebInspector.CodeMirrorTextEditor.prototype.clearExecutionLine):
(WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
(WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
(WebInspector.CodeMirrorTextEditor.prototype._change):
* inspector/front-end/cm/cmdevtools.css:
(.CodeMirror):
(.CodeMirror-linenumber):
(.cm-breakpoint):
* inspector/front-end/cm/codemirror.css:
(.CodeMirror):
(.CodeMirror-scroll):
(.CodeMirror-lines):
(.CodeMirror pre):
(.CodeMirror-scrollbar-filler):
(.CodeMirror-gutters):
(.CodeMirror-linenumbers):
(.CodeMirror-linenumber):
(.CodeMirror pre.CodeMirror-cursor):
(.CodeMirror pre.CodeMirror-secondarycursor):
(.cm-keymap-fat-cursor pre.CodeMirror-cursor):
(.cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id)):
(.CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite):
(.cm-s-default .cm-keyword):
(.cm-s-default .cm-atom):
(.cm-s-default .cm-number):
(.cm-s-default .cm-def):
(.cm-s-default .cm-variable):
(.cm-s-default .cm-variable-2):
(.cm-s-default .cm-variable-3):
(.cm-s-default .cm-property):
(.cm-s-default .cm-operator):
(.cm-s-default .cm-comment):
(.cm-s-default .cm-string):
(.cm-s-default .cm-string-2):
(.cm-s-default .cm-meta):
(.cm-s-default .cm-error):
(.cm-s-default .cm-qualifier):
(.cm-s-default .cm-builtin):
(.cm-s-default .cm-bracket):
(.cm-s-default .cm-tag):
(.cm-s-default .cm-attribute):
(.cm-s-default .cm-header):
(.cm-s-default .cm-quote):
(.cm-s-default .cm-hr):
(.cm-s-default .cm-link):
(.cm-header, .cm-strong):
(.cm-em):
(.cm-emstrong):
(.cm-link):
(.cm-invalidchar):
(div.CodeMirror span.CodeMirror-matchingbracket):
(div.CodeMirror span.CodeMirror-nonmatchingbracket):
(.CodeMirror-sizer):
(.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler):
(.CodeMirror-vscrollbar):
(.CodeMirror-hscrollbar):
(.CodeMirror-gutter):
(.CodeMirror-gutter-elt):
(.CodeMirror-linebackground):
(.CodeMirror-linewidget):
(.CodeMirror-measure):
(.CodeMirror-measure pre):
(.CodeMirror-selected):
(.CodeMirror-focused .CodeMirror-selected):
(.CodeMirror span):
* inspector/front-end/cm/codemirror.js:
(window.CodeMirror.):
(window.CodeMirror):
* inspector/front-end/utilities.js:
2012-11-01 Tiancheng Jiang <tijiang@rim.com>
[BlackBerry] Update BB10 form theme.
https://bugs.webkit.org/show_bug.cgi?id=100760
Reviewed by Rob Buis.
RIM PR 235194.
Check img pointer is null, if so, do early return.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::drawControl):
(WebCore::drawThreeSlice):
(WebCore::drawNineSlice):
2012-11-01 Adam Barth <abarth@webkit.org>
[V8] The V8DOMMap visitors are no longer needed
https://bugs.webkit.org/show_bug.cgi?id=100963
Reviewed by Kentaro Hara.
This patch inlines visitAllDOMNodes into its one caller (and removes
one layer of visitor adaptor abstraction).
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::visitNodeWrappers):
* bindings/v8/V8DOMMap.cpp:
* bindings/v8/V8DOMMap.h:
(WebCore):
2012-11-01 Tiancheng Jiang <tijiang@rim.com>
[BlackBerry] Update BB10 form theme.
https://bugs.webkit.org/show_bug.cgi?id=100760
Reviewed by Rob Buis.
RIM PR 235194.
Check img pointer is null, if so, do early return.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::drawControl):
(WebCore::drawThreeSlice):
(WebCore::drawNineSlice):
2012-11-01 Adam Barth <abarth@webkit.org>
Unreviewed. Build fix.
* bindings/v8/V8GCController.cpp:
2012-11-01 Christophe Dumez <christophe.dumez@intel.com>
[EFL][WK2] Add Ewk_Auth_Request API
https://bugs.webkit.org/show_bug.cgi?id=100858
Reviewed by Kenneth Rohde Christiansen.
Provide an AuthenticationClient for EFL port in WebCore so
that we can handle authentication similarly to other ports
of WebKit.
No new tests, no behavior change for layout tests.
* PlatformEfl.cmake: Add AuthenticationChallengeSoup.cpp to CMake.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
* platform/network/ResourceHandle.h:
(ResourceHandle): Have ResourceHandle subclass AuthenticationClient like
most of the other ports.
* platform/network/soup/AuthenticationChallengeSoup.cpp: Fix initialization
of previousFailureCount member. It should be 1 if we are retrying
authentication and 0 otherwise, not the opposite.
(WebCore::AuthenticationChallenge::AuthenticationChallenge):
* platform/network/soup/ResourceHandleSoup.cpp: Provide implementation for EFL
port of AuthenticationClient methods.
(WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge):
(WebCoreSynchronousLoader):
(WebCore):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
(WebCore::ResourceHandle::receivedCredential):
(WebCore::ResourceHandle::receivedCancellation):
(WebCore::authenticateCallback):
(WebCore::ResourceHandle::defaultSession):
2012-10-24 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
WebIconDatabase: Properly clean up on destruction
https://bugs.webkit.org/show_bug.cgi?id=100237
Reviewed by Brady Eidson.
It's now possible that the IconDatabase gets destroyed since WebKit2
isn't using it as a singleton.
Check that the database was properly closed rather than asserting that
it won't get deleted.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::~IconDatabase):
2012-11-01 Alexei Filippov <alph@chromium.org>
Web Inspector: make component subitems use parent color in native memory snapshots.
https://bugs.webkit.org/show_bug.cgi?id=100876
A component subitems use the color of the component itself if the color
is not explicitly specified for the subitem.
Reviewed by Yury Semikhatsky.
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeSnapshotNode.prototype._createSizeCell):
(WebInspector.MemoryBlockViewProperties._initialize):
(WebInspector.MemoryBlockViewProperties._forMemoryBlock):
2012-11-01 Emil A Eklund <eae@chromium.org>
[subpixel] Change intrinsicSize to LayoutUnit
https://bugs.webkit.org/show_bug.cgi?id=99104
Reviewed by Levi Weintraub.
Change RenderReplaced and intrinsicSize to LayoutUnit to avoid
rounding problems when zooming/scaling. Also change imageSize to
LayoutUnit as it can return a scaled size.
Test: fast/sub-pixel/tiled-canvas-elements.html
* html/ImageDocument.cpp:
(WebCore::ImageDocumentParser::finish):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::imageSizeForRenderer):
* loader/cache/CachedImage.h:
(CachedImage):
* platform/graphics/FractionalLayoutSize.h:
(FractionalLayoutSize):
(WebCore::FractionalLayoutSize::scale):
(WebCore::FractionalLayoutSize::clampToMinimumSize):
* rendering/RenderBox.h:
(WebCore::RenderBox::intrinsicSize):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::canvasSizeChanged):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageChanged):
(WebCore::RenderImage::updateIntrinsicSizeIfNeeded):
(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::minimumReplacedHeight):
* rendering/RenderImage.h:
(RenderImage):
* rendering/RenderImageResource.h:
(WebCore::RenderImageResource::imageSize):
* rendering/RenderImageResourceStyleImage.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::RenderReplaced):
(WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
(WebCore::RenderReplaced::computeReplacedLogicalWidth):
(WebCore::RenderReplaced::computeReplacedLogicalHeight):
* rendering/RenderReplaced.h:
(RenderReplaced):
(WebCore::RenderReplaced::minimumReplacedHeight):
(WebCore::RenderReplaced::setIntrinsicSize):
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::updateIntrinsicSize):
(WebCore::RenderVideo::calculateIntrinsicSize):
(WebCore::RenderVideo::videoBox):
(WebCore::RenderVideo::minimumReplacedHeight):
* rendering/RenderVideo.h:
(RenderVideo):
* rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::imageSize):
* rendering/style/StyleCachedImage.h:
(StyleCachedImage):
* rendering/style/StyleCachedImageSet.cpp:
(WebCore::StyleCachedImageSet::imageSize):
* rendering/style/StyleCachedImageSet.h:
(StyleCachedImageSet):
* rendering/style/StyleGeneratedImage.cpp:
(WebCore::StyleGeneratedImage::imageSize):
(WebCore::StyleGeneratedImage::computeIntrinsicDimensions):
* rendering/style/StyleGeneratedImage.h:
(StyleGeneratedImage):
* rendering/style/StyleImage.h:
(StyleImage):
* rendering/style/StylePendingImage.h:
2012-11-01 Adam Barth <abarth@webkit.org>
[V8] Unify the V8GCController visitors
https://bugs.webkit.org/show_bug.cgi?id=100897
Reviewed by Eric Seidel.
After this patch, we use a single visitor for all DOM wrappers,
regardless of type. We also visit all the wrappers in one pass by
calling v8::V8::VisitHandlesWithClassIds directly rather than via
visitAllDOMNodes.
This patch also introduces a wrapper class ID for non-Node DOM objects.
Previously, only DOM nodes had a class ID.
* bindings/v8/IntrusiveDOMWrapperMap.h:
* bindings/v8/ScriptProfiler.cpp:
(WebCore::retainedDOMInfo):
(WebCore::ScriptProfiler::initialize):
* bindings/v8/V8DOMMap.cpp:
(WebCore::visitAllDOMNodes):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
* bindings/v8/V8GCController.cpp:
(WebCore::GCHandleVisitor::notifyFinished):
(GCHandleVisitor):
(WebCore::V8GCController::majorGCPrologue):
* bindings/v8/WrapperTypeInfo.h:
(WebCore):
2012-11-01 Stephen White <senorblanco@chromium.org>
Unreviewed, rolling out r133143.
http://trac.webkit.org/changeset/133143
https://bugs.webkit.org/show_bug.cgi?id=96894
Causing content_browsertests failures
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/DeviceOrientationClient.h:
(DeviceOrientationClient):
* dom/DeviceOrientationController.cpp:
(WebCore::DeviceOrientationController::DeviceOrientationController):
(WebCore):
(WebCore::DeviceOrientationController::~DeviceOrientationController):
(WebCore::DeviceOrientationController::timerFired):
(WebCore::DeviceOrientationController::addListener):
(WebCore::DeviceOrientationController::removeListener):
(WebCore::DeviceOrientationController::removeAllListeners):
(WebCore::DeviceOrientationController::suspendEventsForAllListeners):
(WebCore::DeviceOrientationController::resumeEventsForAllListeners):
(WebCore::DeviceOrientationController::didChangeDeviceOrientation):
(WebCore::DeviceOrientationController::supplementName):
* dom/DeviceOrientationController.h:
(WebCore):
(DeviceOrientationController):
(WebCore::DeviceOrientationController::isActive):
(WebCore::DeviceOrientationController::client):
(WebCore::DeviceOrientationController::from):
* dom/Document.cpp:
(WebCore::Document::suspendActiveDOMObjects):
(WebCore::Document::resumeActiveDOMObjects):
* loader/EmptyClients.h:
(WebCore::EmptyDeviceOrientationClient::startUpdating):
(WebCore::EmptyDeviceOrientationClient::stopUpdating):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
(WebCore::DOMWindow::removeAllEventListeners):
* page/DeviceClient.h: Removed.
* page/DeviceController.cpp: Removed.
* page/DeviceController.h: Removed.
2012-11-01 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][AC]Free GL resources allocated by GraphicsContext3DEfl.
https://bugs.webkit.org/show_bug.cgi?id=100923.
Reviewed by Kenneth Rohde Christiansen.
GraphicsContext3DEfl creates FBO's, textures and render buffer's, but doesn't free them.
This patch makes sure that GraphicsContext3dEfl frees all the GL resources allocated by it.
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::~GraphicsContext3D):
2012-11-01 Andreas Kling <kling@webkit.org>
Fix StylePropertySet/ElementAttributeData custom allocation in debug builds.
<http://webkit.org/b/100753>
Unreviewed debug bot crash fix after r133138.
There's additional padding after StylePropertySet and ElementAttributeData
in 64-bit debug builds since there are additional members in RefCountedBase.
Use 'sizeof(ImmutableFoo) - sizeof(void*)' as the base size of ImmutableFoo.
* css/StylePropertySet.cpp:
(WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
* dom/ElementAttributeData.cpp:
(WebCore::sizeForImmutableElementAttributeDataWithAttributeCount):
(WebCore::ElementAttributeData::createImmutable):
(WebCore::ElementAttributeData::reportMemoryUsage):
2012-11-01 Stephen Chenney <schenney@chromium.org>
FEImage::m_document is never cleared. Why not?
https://bugs.webkit.org/show_bug.cgi?id=99243
Reviewed by Dirk Schulze.
Adding a comment to explain why the failure to clear m_document is not a problem.
No new tests because no code change at all.
* svg/graphics/filters/SVGFEImage.h:
(FEImage): Add a comment on the lifetime of m_document.
2012-11-01 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Timeline: make "addRecord" unambiguous
https://bugs.webkit.org/show_bug.cgi?id=100761
Reviewed by Pavel Feldman.
TimelinePresentationModel.addRecord accepts two parameters:
record and parentRecord. parentRecord is always root record.
Make this explicit by removing parentRecord parameter.
* inspector/front-end/TimelinePanel.js: Removed parameter.
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.prototype.addRecord):
Used root recoed instead of parent record.
2012-11-01 Charles Wei <charles.wei@torchmobile.com.cn>
[BlackBerry] Browser prematurely sends wrong credentials
https://bugs.webkit.org/show_bug.cgi?id=100585
Reviewed by George Staikos.
Don't send credentials to the server before been challenged.
* platform/network/blackberry/NetworkManager.cpp:
(WebCore::NetworkManager::startJob):
2012-11-01 Stephen Chenney <schenney@chromium.org>
SVG as an image may recreate the renderer on zoom
https://bugs.webkit.org/show_bug.cgi?id=99508
Reviewed by Abhishek Arya.
The SVGImage code, when SVG is used in <img> tags, caches the renderer
at the start of the painting method and re-uses the pointer at the end
of the method. However, when the page is zoomed the renderer may be
detached mid-method, thus leaving a stray pointer. The fix is to
re-fetch the pointer after the zooms.
Test: svg/as-image/img-zoom-svg-stylesheet.html
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawSVGToImageBuffer): Re-fetch the renderer after
the zoom operations.
2012-11-01 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: introduce Inspector.detached message containing termination cause.
https://bugs.webkit.org/show_bug.cgi?id=100948
Reviewed by Yury Semikhatsky.
Now protocol clients have more information to process connection termination.
* English.lproj/localizedStrings.js:
* inspector/Inspector.json:
* inspector/front-end/InspectorFrontendHostStub.js:
(WebInspector.RemoteDebuggingTerminatedScreen):
* inspector/front-end/inspector.js:
(WebInspector.loaded.WebInspector.socket.onopen):
(WebInspector.loaded):
(WebInspector.detached):
2012-11-01 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Restoring breakpoints for formatted UISourceCode should be triggered by BreakpointManager, not ScriptsPanel.
https://bugs.webkit.org/show_bug.cgi?id=100593
Reviewed by Pavel Feldman.
BreakpointManager now listen for FormattedChanged event and restores formatted breakpoints on it.
Removed now redundant callback from UISourceCode.setFormatted().
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype._restoreBreakpoints):
(WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
(WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
(WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._addUISourceCode):
(WebInspector.ScriptsPanel.prototype._revealExecutionLine):
(WebInspector.ScriptsPanel.prototype._toggleFormatSource):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype._fireContentAvailable):
(WebInspector.UISourceCode.prototype.setFormatted.formattedChanged):
(WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
(WebInspector.UISourceCode.prototype.setFormatted):
2012-10-30 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: Output code evaluated in the console the same as console.log
https://bugs.webkit.org/show_bug.cgi?id=100695
Reviewed by Pavel Feldman.
Added an option to return object preview from evaluation commands in the protocol.
The option is used to generate preview for console eval results.
* inspector/InjectedScript.cpp:
(WebCore::InjectedScript::evaluate):
(WebCore::InjectedScript::callFunctionOn):
(WebCore::InjectedScript::evaluateOnCallFrame):
* inspector/InjectedScript.h:
(InjectedScript):
* inspector/InjectedScriptSource.js:
(.):
* inspector/Inspector.json:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
* inspector/InspectorDebuggerAgent.h:
(InspectorDebuggerAgent):
* inspector/InspectorRuntimeAgent.cpp:
(WebCore::InspectorRuntimeAgent::evaluate):
(WebCore::InspectorRuntimeAgent::callFunctionOn):
* inspector/InspectorRuntimeAgent.h:
(InspectorRuntimeAgent):
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype.useArrayPreviewInFormatter):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleCommandResult.prototype.useArrayPreviewInFormatter):
* inspector/front-end/DebuggerModel.js:
(WebInspector.DebuggerModel.prototype.evaluateOnSelectedCallFrame):
(WebInspector.DebuggerModel.CallFrame.prototype.evaluate):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype.evaluate):
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
* inspector/front-end/RemoteObject.js:
(WebInspector.RemoteObject.prototype.):
(WebInspector.RemoteObject.prototype.callFunction):
(WebInspector.RemoteObject.prototype.callFunctionJSON):
* inspector/front-end/RuntimeModel.js:
(WebInspector.RuntimeModel.prototype.evaluate):
(WebInspector.RuntimeModel.prototype.evaluated):
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionsSection.prototype.update):
2012-11-01 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Remove obsolete code from JavaScriptSourceFrame
https://bugs.webkit.org/show_bug.cgi?id=100594
Reviewed by Yury Semikhatsky.
Removed obsolete WorkingCopyCommitted listener.
Removed redundant code that removes breakpoints from _innerSetContent.
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame):
(WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
2012-11-01 Andreas Kling <kling@webkit.org>
Update average StylePropertySet size estimation.
<http://webkit.org/b/100940>
Reviewed by Antti Koivisto.
Use sizeForImmutableStylePropertySetWithPropertyCount(2) as the average StylePropertySet
size to keep it in sync with the changed object memory layout.
* css/StylePropertySet.cpp:
(WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
(WebCore::StylePropertySet::createImmutable):
(WebCore::StylePropertySet::averageSizeInBytes):
(WebCore::StylePropertySet::reportMemoryUsage):
2012-11-01 Kondapally Kalyan <kalyan.kondapally@intel.com>
[EFL][Qt][AC] Remove an unnecessary connection to X-Server.
https://bugs.webkit.org/show_bug.cgi?id=100628.
Reviewed by Kenneth Rohde Christiansen.
With Changset: https://bugs.webkit.org/show_bug.cgi?id=100523
GraphicsSurfacePrivate should always use the Display returned by offscreenwindow.
However, in GraphicsSurfacePrivate constructor we call XOpenDisplay before asking
display from offscreenwindow.
This patch removes unnecessary call to XOpenDisplay made in GraphicsSurfacePrivate.
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
2012-11-01 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions]Former auto-height regions should not ignore their defined height
https://bugs.webkit.org/show_bug.cgi?id=100749
Reviewed by Julien Chaffraix.
When a region with height auto has its height defined, we should also clear the override logical content height.
Otherwise, the region will use the wrong height when laying out content from the associated render flow thread.
Test: fast/regions/autoheight-definedheight-changenotdetected.html
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::updateRegionHasAutoLogicalHeightFlag):
2012-11-01 Yury Semikhatsky <yurys@chromium.org>
Memory instrumentation: do not report memory occupied by RenderObjects referenced from CSSImageGeneratorValue
https://bugs.webkit.org/show_bug.cgi?id=100934
Reviewed by Alexander Pavlov.
* css/CSSImageGeneratorValue.cpp:
(WTF): Skip rederences to RenderObjects from CSSImageGeneratorValue when collecting
memory usage data.
2012-11-01 Kihong Kwon <kihong.kwon@samsung.com>
Add DeviceController base-class to remove duplication of DeviceXXXControler
https://bugs.webkit.org/show_bug.cgi?id=96894
Reviewed by Hajime Morita.
Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
And soon-to-be-added DeviceMotionController and ProximityController.
Covered by existing tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/DeviceOrientationClient.h:
* dom/DeviceOrientationController.cpp:
Remove member functions to move to DeviceController.
- addListener(), removeListener(), removeAllListeners(), isActive()
(WebCore::DeviceOrientationController::DeviceOrientationController):
(WebCore::DeviceOrientationController::didChangeDeviceOrientation):
(WebCore::DeviceOrientationController::client):
(WebCore::DeviceOrientationController::hasLastData):
(WebCore::DeviceOrientationController::getLastEvent):
(WebCore::DeviceOrientationController::from):
(WebCore):
* dom/DeviceOrientationController.h:
(WebCore):
(WebCore::DeviceOrientationController::~DeviceOrientationController):
(DeviceOrientationController):
* dom/Document.cpp:
Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
(WebCore::Document::suspendActiveDOMObjects):
(WebCore::Document::resumeActiveDOMObjects):
* loader/EmptyClients.h:
(EmptyDeviceClient):
(WebCore::EmptyDeviceClient::startUpdating):
(WebCore::EmptyDeviceClient::stopUpdating):
(WebCore):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
(WebCore::DOMWindow::removeAllEventListeners):
* page/DeviceClient.h: Added.
(WebCore):
(DeviceClient):
(WebCore::DeviceClient::~DeviceClient):
* page/DeviceController.cpp: Added.
DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
- addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
All kind of device event controller which has DeviceClient can be inherited from DeviceController.
(WebCore):
(WebCore::DeviceController::DeviceController):
(WebCore::DeviceController::addDeviceEventListener):
(WebCore::DeviceController::removeDeviceEventListener):
(WebCore::DeviceController::removeAllDeviceEventListeners):
(WebCore::DeviceController::dispatchDeviceEvent):
(WebCore::DeviceController::fireDeviceEvent):
* page/DeviceController.h: Added.
(WebCore):
(DeviceController):
(WebCore::DeviceController::~DeviceController):
(WebCore::DeviceController::isActive):
(WebCore::DeviceController::client):
(WebCore::DeviceController::hasLastData):
(WebCore::DeviceController::getLastEvent):
2012-11-01 Yury Semikhatsky <yurys@chromium.org>
Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
https://bugs.webkit.org/show_bug.cgi?id=100497
Reviewed by Alexander Pavlov.
Added memory reporting method to chromium implementation of ResourceRequest.
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
rather make ResourceRequestBase::reportMemoryUsage virtual and override it
in the descendant but ResourceRequestBase doesn't have any virtual methods
and shouldn't be used directly(ResourceRequest should be used instead).
* platform/network/ResourceRequestBase.h:
(ResourceRequestBase):
* platform/network/chromium/ResourceRequest.cpp:
(WebCore::ResourceRequest::reportMemoryUsage):
(WebCore):
* platform/network/chromium/ResourceRequest.h:
(ResourceRequest):
2012-11-01 Andreas Kling <kling@webkit.org>
Pack immutable StylePropertySets harder on 64-bit.
<http://webkit.org/b/100753>
<rdar://problem/12599155>
Reviewed by Antti Koivisto.
Move away from using CSSProperty as internal storage for immutable StylePropertySets.
Instead use two arrays, one for property metadata (ID, shorthand ID, !important, ...)
and one for the CSSValue pointers. This saves 4 bytes per property on 64-bit.
Old object layout:
Ref count (4 bytes)
Metadata (4 bytes)
CSSProperty [N] (16 bytes each)
New object layout:
Ref count (4 bytes)
Metadata (4 bytes)
CSSValue* [N] (8 bytes each)
StylePropertyMetadata [N] (4 bytes each)
901kB progress on Membuster3 (22% overall reduction in StylePropertySet memory.)
The CSSProperty class sticks around for now, it's still used in mutable StylePropertySets
and by the StylePropertySet constructors.
* css/CSSProperty.cpp:
* css/CSSProperty.h:
(CSSProperty):
(WebCore::CSSProperty::CSSProperty):
(WebCore::CSSProperty::id):
(WebCore::CSSProperty::shorthandID):
(WebCore::CSSProperty::isImportant):
(WebCore::CSSProperty::metadata):
Break the bitfield from CSSProperty out into a StylePropertyMetadata class (actually a union.)
* css/StylePropertySet.cpp:
(WebCore::immutableStylePropertySetSize):
Updated size calculation for immutable StylePropertySets, 1/4 smaller!
(WebCore::ImmutableStylePropertySet::ImmutableStylePropertySet):
(WebCore::ImmutableStylePropertySet::~ImmutableStylePropertySet):
(WebCore::MutableStylePropertySet::MutableStylePropertySet):
(WebCore::StylePropertySet::mergeAndOverrideOnConflict):
(WebCore::StylePropertySet::reportMemoryUsage):
(WebCore::StylePropertySet::PropertyReference::cssName):
(WebCore::StylePropertySet::PropertyReference::cssText):
* css/StylePropertySet.h:
(WebCore::StylePropertySet::PropertyReference::id):
(WebCore::StylePropertySet::PropertyReference::shorthandID):
(WebCore::StylePropertySet::PropertyReference::isImportant):
(WebCore::StylePropertySet::PropertyReference::isInherited):
(WebCore::StylePropertySet::PropertyReference::isImplicit):
(PropertyReference):
(WebCore::StylePropertySet::PropertyReference::value):
(WebCore::StylePropertySet::PropertyReference::toCSSProperty):
(WebCore::StylePropertySet::PropertyReference::propertyMetadata):
(WebCore::StylePropertySet::PropertyReference::propertyValue):
(StylePropertySet):
(ImmutableStylePropertySet):
(WebCore::StylePropertySet::immutableValueArray):
(WebCore::StylePropertySet::immutableMetadataArray):
Refactored internal storage for StylePropertySet.
2012-11-01 Kent Tamura <tkent@chromium.org>
Remove unused Locale::parseDateTime
https://bugs.webkit.org/show_bug.cgi?id=100910
Reviewed by Kentaro Hara.
For date/time input types, InputType::convertFromVisibleValue is never
called. convertFromVisibleValue is called when an inner editable node is
updated. However input elements don't have such editable nodes if
ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled, and a user can't edit the
inner editable node otherwise because we open date/time pickers when a
user try to change the field value.
We had used convertFromVisibleValue for input[type=date] with an old UI.
No new tests because of no behavior changes.
* html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::convertFromVisibleValue):
Remove Locale::parseDateTiem and put ASSERT_NOT_REACHED.
* platform/text/PlatformLocale.h: Remove parseDateTime.
* platform/text/LocaleICU.h: Remove parseDateTime and a bogus comment.
* platform/text/LocaleICU.cpp: Remove parseDateTime.
* platform/text/LocaleNone.cpp: Remove parseDateTime.
* platform/text/mac/LocaleMac.h: Remove parseDateTime.
* platform/text/mac/LocaleMac.mm: Ditto.
* platform/text/win/LocaleWin.h:
- Remove parseDateTime, its helpers, and m_baseYear.
- Remove appendNumber, appendTwoDigitsNumber, appendFourDigitsNumber,
and formatDate. They don't exist.
* platform/text/win/LocaleWin.cpp:
Remove the above functions.
(WebCore::LocaleWin::LocaleWin): Remove m_baseYear iniitalization.
2012-10-31 Nate Chapin <japhet@chromium.org>
Remove some CachedResource::Status's in favor of looking at CachedResource::m_error
https://bugs.webkit.org/show_bug.cgi?id=100901
Reviewed by Adam Barth.
No new tests, refactor only.
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::buildObjectForFrameTree):
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::notifyFinished):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadInSameDocument):
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didFail):
(WebCore::SubresourceLoader::willCancel):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::stopLoading):
* loader/cache/CachedResource.h:
(WebCore::CachedResource::wasCanceled):
(WebCore::CachedResource::errorOccurred):
(WebCore::CachedResource::loadFailedOrCanceled):
2012-10-31 Stephen White <senorblanco@chromium.org>
Unreviewed, rolling out r133122.
http://trac.webkit.org/changeset/133122
https://bugs.webkit.org/show_bug.cgi?id=99083
Broke Chromium Win, Android, ChromeOS builds
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::setContentsOpaque):
(WebCore::GraphicsLayerChromium::paint):
* platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
(WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
* platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
(OpaqueRectTrackingContentLayerDelegate):
2012-10-31 Takashi Sakamoto <tasak@google.com>
[Refactoring] Move initial style setting for ProgressValueElement from attach method to createShadowSubtree method in HTMLProgressElement.
https://bugs.webkit.org/show_bug.cgi?id=83664
Reviewed by Hajime Morita.
The original code updates inline style during attach(). However,
the attach would be invoked from Element::recalcStyle()'s reattach().
If updating inline styles during the reattach(), style related flags,
i.e. childNeedsStyleRecalc, and needsStyleRecalc are cleared after the
reattach(). So the inline styles are not updated in next
setNeedsStyleRecalc, because ProgressValueElement has already had
InlineStyleChange (existingChanegType == InlineStyleChange) and
markAncestorsWithChildNeedsStyleRecalc is not invoked.
Test: fast/dom/HTMLProgressElement/progress-bar-set-value.html
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::attach):
Copied updateFromElement from didElementStateChange. If removing the
update, indeterminate-progress-001.html and progress-element.html
under fast/dom/HTMLProgressElement will fail. We still need attach()
and updateFromElement. To remove the attach(), need more refactoring,
i.e. investigating where attach() is invoked from and modifying all
related codes.
(WebCore::HTMLProgressElement::createShadowSubtree):
Initialize m_value by indeterminate-position. The value is default
value of progress element.
2012-10-31 Hayato Ito <hayato@chromium.org>
Make resolveReprojection() defined in ComposedShadowTreeWalker.cpp callable from outside.
https://bugs.webkit.org/show_bug.cgi?id=100832
Reviewed by Dimitri Glazkov.
InsertionPoint.h now defines resolveReprojection() so that it can be called from outside.
No new tests as no new functionality.
* dom/ComposedShadowTreeWalker.cpp:
* html/shadow/InsertionPoint.h:
(WebCore::shadowOfParentForDistribution):
(WebCore):
(WebCore::resolveReprojection):
2012-10-31 Alok Priyadarshi <alokp@chromium.org>
[chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
https://bugs.webkit.org/show_bug.cgi?id=99083
Reviewed by James Robinson.
Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
No new tests needed. This patch does not change anything functionally.
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::setContentsOpaque):
(WebCore::GraphicsLayerChromium::paint):
* platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
(WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
* platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
(OpaqueRectTrackingContentLayerDelegate):
2012-10-31 Chris Evans <cevans@google.com>
RenderArena has a memory leak and poor efficiency
https://bugs.webkit.org/show_bug.cgi?id=100893
Reviewed by Eric Seidel.
1) Avoid memory leak that persists for the Document lifetime by
increasing recycled size buckets up to 1024. It was previously 400,
and sizeof(RenderNamedFlowThread) / sizeof(RenderSVGText) both blew this
quota. An assert was added to prevent this happening again.
2) Fix the size of the recyled size bucket array on 64-bit. We only
need 8 byte granularity on 64-bit, but we had 4.
3) Try and pass power-of-two sizes to the underlying malloc() call, so
that we're space efficient. We now take Arena metadata into account.
4) Double the default RenderArena size allocation to 8192 bytes. Even
for a render of a trivial text file, 4096 bytes is not enough to prevent
extra calls into the underlying malloc() for more arena pool.
* rendering/RenderArena.cpp:
(WebCore::RenderArena::RenderArena): Adjust arena size so that we pass on the page-sized multiple to the underlying malloc() implementation.
(WebCore::RenderArena::allocate):
(WebCore::RenderArena::free): Assert that the allocation size is handled by our recycling buckets.
* rendering/RenderArena.h:
(WebCore): Maintain free buckets up to 1024 bytes to avoid memory leak.
(RenderArena): Double the default allocation size and handle 64-bit systems more efficiently.
2012-10-31 Adam Barth <abarth@webkit.org>
[V8] Garbage collection should use opaque roots rather than implicit references
https://bugs.webkit.org/show_bug.cgi?id=100707
Reviewed by Kentaro Hara.
This patch replaces visitDOMWrapper with opaqueRootForGC. The
former used to inform V8 of implicit relationships between wrapper
objects on a per-wrapper basis. That meant that we needed to know which
DOMDataStore a given wrapper was in during garbage collection.
After this patch, we now use object groups rather than implicit
references to inform V8 of these relationships. That has two benefits:
1) We no longer need to know which DOMDataStore a wrapper belongs
because we don't need to find the exact source wrapper for the
implicit connection.
2) We can now handle more complicated implicit relationships, for
example when some of the intervening objects haven't had their
JavaScript wrappers created yet.
This patch also unlocks to paths of future development:
A) Fixing the remaining failures in fast/dom/gc-9.html
B) Enumerating DOM wrappers entirely from V8 rather than from the
DOMWrapperMaps (so that we can move more object towards using
IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).
* bindings/scripts/CodeGeneratorV8.pm:
(NeedsCustomOpaqueRootForGC):
(GenerateOpaqueRootForGC):
(GenerateHeader):
(GenerateImplementation):
* bindings/v8/V8GCController.cpp:
(ImplicitConnection):
(WebCore::ImplicitConnection::ImplicitConnection):
(WebCore::ImplicitConnection::root):
(WebCore::ImplicitConnection::wrapper):
(WebCore):
(WebCore::operator<):
(WrapperGrouper):
(WebCore::WrapperGrouper::WrapperGrouper):
(WebCore::WrapperGrouper::addToGroup):
(WebCore::WrapperGrouper::keepAlive):
(WebCore::WrapperGrouper::apply):
(WebCore::ObjectVisitor::ObjectVisitor):
(WebCore::ObjectVisitor::visitDOMWrapper):
(ObjectVisitor):
(WebCore::V8GCController::opaqueRootForGC):
(WebCore::NodeVisitor::NodeVisitor):
(WebCore::NodeVisitor::visitNodeWrapper):
(NodeVisitor):
(WebCore::V8GCController::majorGCPrologue):
* bindings/v8/V8GCController.h:
(WebCore):
(V8GCController):
* bindings/v8/WrapperTypeInfo.h:
(WebCore):
(WebCore::WrapperTypeInfo::opaqueRootForGC):
(WrapperTypeInfo):
* bindings/v8/custom/V8NodeListCustom.cpp:
(WebCore::V8NodeList::opaqueRootForGC):
* bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
(WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
2012-10-31 Stephen White <senorblanco@chromium.org>
Unreviewed, rolling out r133107.
http://trac.webkit.org/changeset/133107
https://bugs.webkit.org/show_bug.cgi?id=100425
Broke compile on Chromium Win.
* Modules/indexeddb/IDBCallbacks.h:
(IDBCallbacks):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::objectStoreNames):
(WebCore::IDBDatabase::createObjectStore):
(WebCore::IDBDatabase::deleteObjectStore):
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::metadata):
(WebCore::IDBDatabaseBackendImpl::createObjectStore):
(WebCore::IDBDatabaseBackendImpl::objectStore):
(WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
(WebCore::IDBDatabaseBackendImpl::transaction):
(WebCore::IDBDatabaseBackendImpl::loadObjectStores):
(WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
(WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(IDBDatabaseBackendInterface):
* Modules/indexeddb/IDBFactory.cpp:
* Modules/indexeddb/IDBFactory.h:
* Modules/indexeddb/IDBIndex.h:
(WebCore::IDBIndex::openKeyCursor):
* Modules/indexeddb/IDBIndexBackendInterface.h:
* Modules/indexeddb/IDBKeyPath.cpp:
* Modules/indexeddb/IDBMetadata.h:
(WebCore):
(IDBDatabaseMetadata):
(WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
(IDBObjectStoreMetadata):
(WebCore::IDBIndexMetadata::IDBIndexMetadata):
(IDBIndexMetadata):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::indexNames):
(WebCore::IDBObjectStore::put):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::deleteIndex):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
(WebCore):
(WebCore::makeIndexWriters):
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
(WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::deleteInternal):
(WebCore::IDBObjectStoreBackendImpl::createIndex):
(WebCore::IDBObjectStoreBackendImpl::index):
(WebCore::IDBObjectStoreBackendImpl::deleteIndex):
(WebCore::IDBObjectStoreBackendImpl::loadIndexes):
(WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
(WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(IDBObjectStoreBackendImpl):
* Modules/indexeddb/IDBObjectStoreBackendInterface.h:
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess):
(WebCore::IDBRequest::uncaughtExceptionInEventHandler):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::create):
(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::objectStore):
* Modules/indexeddb/IDBTransaction.h:
(IDBTransaction):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::create):
(WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
(WebCore::IDBTransactionBackendImpl::objectStore):
(WebCore::IDBTransactionBackendImpl::scheduleTask):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/IDBTransactionCoordinator.h:
2012-10-31 Alec Flett <alecflett@chromium.org>
IndexedDB: add methods to support id-based backend APIs
https://bugs.webkit.org/show_bug.cgi?id=100425
Reviewed by Tony Chang.
First half of refactor involves adding a number of methods that
are int64_t-based rather than String-based. As a part of this, the
IDB*Metadata structs and the backend objectStore/index maps all
use int64_t as keys, rather than String.
In addition, there were a number of cleanups that came out of the
refactor:
- The list of object stores active in a transaction is now
maintained by the frontend IDBTransaction rather than the backend
IDBTransactionBackendImpl. This also had a simplifying rippling
effect through other call signatures.
- I was able to remove an apparently old FIXME from
IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.
- IDBObjectStoreBackendImpl's IndexWriter class got a little
simpler since the id is now easily available in the
IDBIndexMetadata.
- A number of methods got simpler in their int64_t versions,
specifically dropping a number of ExceptionCodes.
There is also some glue code
(getIndexId/getIndexIds/getObjectStoreId) that will go away with
the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425
No new tests, no new functionality as this is just a refactor.
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::objectStoreNames):
(WebCore::IDBDatabase::createObjectStore):
(WebCore::IDBDatabase::deleteObjectStore):
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::metadata):
(WebCore::IDBDatabaseBackendImpl::createObjectStore):
(WebCore::IDBDatabaseBackendImpl::objectStore):
(WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
(WebCore):
(WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
(WebCore::IDBDatabaseBackendImpl::transaction):
(WebCore::IDBDatabaseBackendImpl::loadObjectStores):
(WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
(WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(IDBDatabaseBackendInterface):
* Modules/indexeddb/IDBIndex.h:
(WebCore::IDBIndex::id):
(WebCore::IDBIndex::openKeyCursor):
* Modules/indexeddb/IDBIndexBackendInterface.h:
* Modules/indexeddb/IDBMetadata.h:
(WebCore::IDBIndexMetadata::IDBIndexMetadata):
(IDBIndexMetadata):
(IDBObjectStoreMetadata):
(WebCore::IDBObjectStoreMetadata::containsIndex):
(IDBDatabaseMetadata):
(WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
(WebCore::IDBDatabaseMetadata::containsObjectStore):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::indexNames):
(WebCore::IDBObjectStore::put):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::deleteIndex):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::put):
(WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
(WebCore):
(WebCore::makeIndexWriters):
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
(WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::deleteInternal):
(WebCore::IDBObjectStoreBackendImpl::createIndex):
(WebCore::IDBObjectStoreBackendImpl::index):
(WebCore::IDBObjectStoreBackendImpl::getIndexId):
(WebCore::IDBObjectStoreBackendImpl::getIndexIds):
(WebCore::IDBObjectStoreBackendImpl::deleteIndex):
(WebCore::IDBObjectStoreBackendImpl::loadIndexes):
(WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
(WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(IDBObjectStoreBackendImpl):
* Modules/indexeddb/IDBObjectStoreBackendInterface.h:
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess):
(WebCore::IDBRequest::uncaughtExceptionInEventHandler):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::create):
(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::objectStore):
* Modules/indexeddb/IDBTransaction.h:
(IDBTransaction):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::create):
(WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
(WebCore::IDBTransactionBackendImpl::objectStore):
(WebCore):
(WebCore::IDBTransactionBackendImpl::scheduleTask):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionBackendInterface.h:
2012-10-30 Mark Lam <mark.lam@apple.com>
A JSC printf (support for %J+s and %b).
https://bugs.webkit.org/show_bug.cgi?id=100566.
Reviewed by Michael Saboff.
Added forwarding header for VMInspector.h.
No new tests needed for this.
* ForwardingHeaders/interpreter/VMInspector.h: Added.
2012-10-31 Chris Rogers <crogers@google.com>
Implement optional arguments in AudioBufferSourceNode start() method
https://bugs.webkit.org/show_bug.cgi?id=100894
Reviewed by Kenneth Russell.
The start() method should be able to take 1, 2, or 3 arguments, optionally supporting
offset and duration. Currently, only 1 and 3 arguments are supported.
Test: webaudio/audiobuffersource-start.html
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::renderFromBuffer):
(WebCore::AudioBufferSourceNode::startGrain):
(WebCore):
* Modules/webaudio/AudioBufferSourceNode.h:
(AudioBufferSourceNode):
* Modules/webaudio/AudioBufferSourceNode.idl:
2012-10-31 Mike West <mkwst@chromium.org>
Implement the canonical "Content-Security-Policy" header.
https://bugs.webkit.org/show_bug.cgi?id=96765
Reviewed by Adam Barth.
The CSP 1.0 specification defines the "Content-Security-Policy" header
as the canonical mechanism of defining a resource's security policy. Up
through this patch, we've implemented the functionality behind a prefix
in order to ensure compatibility with the standard once it's released as
a recommendation. Both the specification and WebKit's implementation are
far enough along in that process that it makes sense to support the
unprefixed header for sites that wish to opt-in to CSP 1.0.
As discussed on public-webappsec[1], we'll keep the experimental 1.1
features behind the prefixed header ('X-WebKit-CSP') until that standard
is far enough along to justify moving them out to the canonical header.
This patch defines the 'Content-Security-Policy' header for all ports,
just as the 'X-WebKit-CSP' header is currently supported on all ports.
Ports that have not opted-in to the CSP_NEXT flag will see exactly the
same behavior with both headers. Ports that have opted-in will see much
of CSP 1.1's current definition on the prefixed header, and CSP 1.0 on
the canonical header.
The functionality in this change is covered by the changes made to
existing tests. No expectations changed, only the headers that are sent.
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
Add canonical header support to 'meta' element definitions.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didBeginDocument):
Add canonical header support to FrameLoader.
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPDirectiveList::headerType):
The ContentSecurityPolicy::HeaderType enum now has four values:
prefixed/report-only, unprefixed/report-only, prefixed/enforce, and
unprefixed/enforce. Instead of creating logic to output the proper
type based on internal flags, CSPDirectiveList now saves the value
provided at creation time, and returns it via this method.
(CSPDirectiveList):
(WebCore::CSPDirectiveList::CSPDirectiveList):
The constructor now accepts a type, which is stored on the object.
It also stores a new internal variable, 'm_experimental', which
defines whether or not experimental features ought to be available.
These features are still locked behind the CSP_NEXT flag, but that
might not be the case forever.
(WebCore::CSPDirectiveList::create):
The static constructor wrapper now passes the type into the real
constructor, which also now handles setting its internal variables.
(WebCore::CSPDirectiveList::parse):
'parse()' is given the header, so it makes sense to store it here as
well, rather than in the create wrapper.
(WebCore::CSPDirectiveList::addDirective):
1.1 directives remain locked behind CSP_NEXT, but now also require
that 'm_experimental' is set, signaling usage of the prefixed header
and an implicit opt-in to 1.1.
* page/ContentSecurityPolicy.h:
Added two new types to the HeaderTypes enum: PrefixedReportOnly, and
PrefixedEnforcePolicy. These map to 'X-WebKitCSP-Report-Only' and
'X-WebKit-CSP', respectively.
2012-10-31 Roger Fong <roger_fong@apple.com>
Change PopupMenu positioning on Windows such that behaviour on multiple monitors matches Windows standards.
https://bugs.webkit.org/show_bug.cgi?id=100317
Reviewed by Sam Weinig.
The existing code determines which screen the popup menu "belongs" to by determining which screen the owning application's hwnd belongs to,
where ownership is determined by how much of the hwnd is on which screen.
To match what most Windows applications do, the owning screen should be whichever screen the drop down button belongs to.
To determine which screen an element belongs to in Windows we need to pass in an hwnd for that element.
However, since the drop down button is something that WebKit renders there is no hwnd.
To remedy this issue, we can temporarily move the popup menu's hwnd to match the position and size of the button,
determine the correct screen, and then eventually move it back to the correct final position after the rest of
the calculations have been completed. This is all done in the same function call so no rendering of the popup menu occurs
between the temporary and final positionings.
There's not really a good way of testing popup menus except manually, they're separate hwnds created outside of the WebView.
* platform/win/PopupMenuWin.cpp:
(WebCore::monitorFromHwnd):
(WebCore):
(WebCore::PopupMenuWin::show):
(WebCore::PopupMenuWin::calculatePositionAndSize):
2012-10-31 Thiago Marcos P. Santos <thiago.santos@intel.com>
Added viewport at-rule to the CSS parser and tokenizer
https://bugs.webkit.org/show_bug.cgi?id=95961
Reviewed by Kenneth Rohde Christiansen.
Add tokens and grammar rules to parse @-webkit-viewport blocks. Also add
the newly parsed rule to the rule list.
This parser now implements the following part of the CSS Device Adaptation
specification: http://www.w3.org/TR/css-device-adapt/#syntax
Test: css3/device-adapt/viewport-at-rule-parsing.html
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::CSSParser):
(WebCore::CSSParser::detectAtToken):
(WebCore):
(WebCore::CSSParser::createViewportRule):
* css/CSSParser.h:
(CSSParser):
(WebCore::CSSParser::markViewportRuleBodyStart):
(WebCore::CSSParser::markViewportRuleBodyEnd):
(WebCore::CSSParser::inViewport):
These methods are needed by the next patch validating the properties.
Some viewport properties are common to other rules but have different
semantics, and accepts different keywords. The validation needs to be
done in a different code path.
* css/CSSPropertySourceData.h:
* css/CSSRule.cpp:
(WebCore):
(WebCore::CSSRule::cssText):
(WebCore::CSSRule::destroy):
(WebCore::CSSRule::reattach):
(WebCore::CSSRule::reportMemoryUsage):
* css/CSSRule.h:
(CSSRule):
(WebCore::CSSRule::isViewportRule):
* css/StyleRule.cpp:
(WebCore::StyleRuleBase::reportMemoryUsage):
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy):
(WebCore::StyleRuleBase::createCSSOMWrapper):
(WebCore):
(WebCore::StyleRuleViewport::StyleRuleViewport):
(WebCore::StyleRuleViewport::~StyleRuleViewport):
(WebCore::StyleRuleViewport::mutableProperties):
(WebCore::StyleRuleViewport::setProperties):
(WebCore::StyleRuleViewport::reportDescendantMemoryUsage):
* css/StyleRule.h:
(StyleRuleBase):
(WebCore::StyleRuleBase::isViewportRule):
(WebCore):
(StyleRuleViewport):
(WebCore::StyleRuleViewport::create):
(WebCore::StyleRuleViewport::properties):
(WebCore::StyleRuleViewport::copy):
* css/WebKitCSSViewportRule.cpp: Added.
(WebCore):
(WebCore::WebKitCSSViewportRule::WebKitCSSViewportRule):
(WebCore::WebKitCSSViewportRule::~WebKitCSSViewportRule):
(WebCore::WebKitCSSViewportRule::style):
(WebCore::WebKitCSSViewportRule::cssText):
(WebCore::WebKitCSSViewportRule::reattach):
(WebCore::WebKitCSSViewportRule::reportDescendantMemoryUsage):
* css/WebKitCSSViewportRule.h: Added.
(WebCore):
2012-10-31 Max Vujovic <mvujovic@adobe.com>
[CSS Shaders] Validate types of built-in uniforms
https://bugs.webkit.org/show_bug.cgi?id=98974
Reviewed by Dean Jackson.
Reject shaders which define built-in uniforms with the wrong type. For example, we reject a
shader with the GLSL code "uniform float u_textureSize;" because u_textureSize should be a
vec2, not a float.
Relevant Spec Section:
https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#shader-uniform-variables
Test: css3/filters/custom/invalid-custom-filter-uniform-types.html
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore):
(WebCore::builtInUniformNameToTypeMap):
(WebCore::validateSymbols):
2012-10-31 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133044.
http://trac.webkit.org/changeset/133044
https://bugs.webkit.org/show_bug.cgi?id=100888
Hits an ASSERT in the isolatedWorlds tests (Requested by
abarth on #webkit).
* bindings/scripts/CodeGeneratorV8.pm:
(NeedsToVisitDOMWrapper):
(GenerateVisitDOMWrapper):
(GenerateHeader):
(GenerateImplementation):
* bindings/v8/V8GCController.cpp:
(WebCore::ObjectVisitor::ObjectVisitor):
(WebCore::ObjectVisitor::visitDOMWrapper):
(ObjectVisitor):
(WebCore::rootForGC):
(ImplicitConnection):
(WebCore::ImplicitConnection::ImplicitConnection):
(WebCore::ImplicitConnection::root):
(WebCore::ImplicitConnection::wrapper):
(WebCore):
(WebCore::operator<):
(WebCore::NodeVisitor::NodeVisitor):
(WebCore::NodeVisitor::visitNodeWrapper):
(NodeVisitor):
(WebCore::NodeVisitor::applyGrouping):
(WebCore::V8GCController::majorGCPrologue):
* bindings/v8/V8GCController.h:
(V8GCController):
* bindings/v8/WrapperTypeInfo.h:
(WebCore):
(WebCore::WrapperTypeInfo::visitDOMWrapper):
(WrapperTypeInfo):
* bindings/v8/custom/V8NodeListCustom.cpp:
(WebCore::V8NodeList::visitDOMWrapper):
* bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
(WebCore::V8SpeechRecognitionResult::visitDOMWrapper):
2012-10-31 Philip Rogers <pdr@google.com>
Cache animationMode() in SVG animations.
https://bugs.webkit.org/show_bug.cgi?id=99694
Reviewed by Eric Seidel.
This patch caches animationMode() which accounted for 25% of the CPU time of a simple
animation benchmark! This is the 3rd patch for WK99694.
Background: SVGAnimationElement contains most of the shared animation logic for <animate>,
<set>, <animateColor>, <animateTransform>, and <animateMotion>. <animateMotion> is the only
animation element that can depend on other elements in the page. For example:
<path id="mypath" d="M0 0 L 100 100Z"/> <!-- note, can be animated! -->
<rect x="0" y="0" width="100" height="100" fill="green">
<animateMotion dur="6s" repeatCount="indefinite">
<mpath xlink:href="#mypath"/>
</animateMotion>
</rect>
See: http://www.w3.org/TR/SVG/single-page.html#animate-AnimateMotionElement
animationMode depends on several properties of an animation element: the set tag, whether
the animation has a path, and the "values", "to", and "by" attributes. animationMode() was
a hot function for two reasons:
1) hasAttribute(SVGNames::valuesAttr) is expensive because we are unable to use
fastHasAttribute. This is cacheable by simply calculating the animationMode when the
"values" attribute changes.
2) In the <animateMotion> case, determining if a path is empty or changed is expensive.
AnimateMotion can have a path attribute, or it can have <mpath> children that reference
a (possibly non-existent) <path> element elsewhere in the page. Before this patch we did
this path lookup on every animation loop in case something changed. After this patch we
only update AnimateMotion's path when it changes.
A previous patch, http://trac.webkit.org/changeset/132847, laid the groundwork for tracking
<path> changes in <mpath>. This patch adds <mpath> to our resource tracking infrastructure
to track when target <path>s change, instead of looking this up every time.
This refactoring is covered by existing tests.
svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg fails after this patch
because our element dependency tracking has a bug with duplicate ids; see WK99893.
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::parseAttribute):
(WebCore::SVGAnimateMotionElement::updateAnimationPath):
animationPath() has been changed to updateAnimationPath() and should only be called
when the animation path (path attribute, or mpath's referenced path) has changed.
(WebCore::SVGAnimateMotionElement::buildTransformForProgress):
(WebCore::SVGAnimateMotionElement::updateAnimationMode):
If an animationPath exists, we use PathAnimation, otherwise we fall back to the normal
updateAnimationMode() codepath.
(WebCore):
* svg/SVGAnimateMotionElement.h:
(SVGAnimateMotionElement):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::SVGAnimationElement):
(WebCore::SVGAnimationElement::isSupportedAttribute):
(WebCore::SVGAnimationElement::parseAttribute):
The from, by, and to attributes have been added so that we can track when they change
and update the animation mode. Similarly for when the values attribute changes.
(WebCore::SVGAnimationElement::updateAnimationMode):
* svg/SVGAnimationElement.h:
(WebCore::SVGAnimationElement::animationMode):
(SVGAnimationElement):
(WebCore::SVGAnimationElement::setAnimationMode):
(WebCore::SVGAnimationElement::calculateDistance):
* svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::buildPendingResource):
It would be nice to move all the duplicated buildPendingResource() logic into a central
place (SVGURIReference?) but for now it is copied. This function is nearly identical to
SVGFEImageElement::buildPendingResource.
(WebCore):
(WebCore::SVGMPathElement::clearResourceReferences):
(WebCore::SVGMPathElement::insertedInto):
(WebCore::SVGMPathElement::removedFrom):
(WebCore::SVGMPathElement::svgAttributeChanged):
(WebCore::SVGMPathElement::targetPathChanged):
(WebCore::SVGMPathElement::notifyParentOfPathChange):
* svg/SVGMPathElement.h:
(SVGMPathElement):
* svg/SVGPathElement.cpp:
When a <path>'s path changes, we need to notify any dependent <mpath> elements. This is
typically handled with RenderSVGResource::markForLayoutAndParentResourceInvalidation
but for the special-case of <mpath> we only need to track when the path's "d" attribute
changes so invalidateMPathDependencies() has been added.
(WebCore::SVGPathElement::svgAttributeChanged):
(WebCore::SVGPathElement::invalidateMPathDependencies):
(WebCore):
(WebCore::SVGPathElement::insertedInto):
(WebCore::SVGPathElement::removedFrom):
* svg/SVGPathElement.h:
(SVGPathElement):
* svg/SVGSetElement.cpp:
(WebCore::SVGSetElement::SVGSetElement):
(WebCore::SVGSetElement::updateAnimationMode):
(WebCore):
* svg/SVGSetElement.h:
(SVGSetElement):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::isSupportedAttribute):
2012-10-31 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=100879
ScrollingStateNode::cloneAndResetNode() should not be virtual
Reviewed by Simon Fraser.
cloneAndResetNode() is currently pure virtual and implemented only
in ScrollingStateScrollingNode. However, all of the work that it
does at this time is stuff that a generic ScrollingStateNode could
do. We should move this implementation to the base class so that it
does not need to be duplicated for future node types.
This patch also re-names cloneAndResetNode() to cloneAndReset()
and correspondingly re-names cloneAndResetChildNodes() to
cloneAndResetChildren().
Finally the patch also changes the copy constructors of both of these
classes to take a const reference instead of a pointer.
* page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::ScrollingStateNode):
(WebCore::ScrollingStateNode::cloneAndReset):
(WebCore):
(WebCore::ScrollingStateNode::cloneAndResetChildren):
* page/scrolling/ScrollingStateNode.h:
(ScrollingStateNode):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore):
* page/scrolling/ScrollingStateScrollingNode.h:
(ScrollingStateScrollingNode):
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::commit):
2012-10-31 Tom Sepez <tsepez@chromium.org>
Malformed X-XSS-Protection headers not reported.
https://bugs.webkit.org/show_bug.cgi?id=100538
Reviewed by Adam Barth.
Re-writes X-XSS-Protection header parser to be more particular, and to
return better information on error.
Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-1.html
http/tests/security/xssAuditor/malformed-xss-protection-header-2.html
http/tests/security/xssAuditor/malformed-xss-protection-header-4.html
http/tests/security/xssAuditor/xss-protection-parsing-02.html
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::init):
Detect error return code and log console message with details
* platform/network/HTTPParsers.cpp:
(WebCore):
(WebCore::skipWhiteSpace):
Use safe less-than comparsion in case called with pos already out of range.
(WebCore::skipToken):
Fix comparison to properly reject substrings at end of input. Prevent advancing
returned position when match fails, so that this may someday be used to match
optional tokens.
(WebCore::parseXSSProtectionHeader):
Return detailled error status. Avoid needless string copy.
* platform/network/HTTPParsers.h:
Add new error returns for x-xss-protection header parser.
2012-10-31 Simon Fraser <simon.fraser@apple.com>
REGRESSION (tile cache layers): bits of tiled layers are missing with certain 3D transforms
https://bugs.webkit.org/show_bug.cgi?id=100808
<rdar://problem/12562541>
Reviewed by Dean Jackson.
When projecting rects down into transformed layers, the projection can fail with severe
3D rotations if the computed w component in TransformationMatrix::projectPoint() is negative.
In this case we already clamp, but the fact that we clamped doesn't make it out to
GraphicsLayerCA::computeVisibleRect() which resulted in incorrect visible rects being
computed.
Fix by propagating the fact that clamping occurred out of the TransformState functions
which can clamp. In computeVisibleRect(), simply consider the entire layer bounds
to be visible if clamping occurred.
Tests: compositing/tiling/rotated-tiled-clamped.html
compositing/tiling/rotated-tiled-preserve3d-clamped.html
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::computeVisibleRect): If either the applyTransform()
or the state.mappedQuad() clamped, use our bounds as the visible rect.
* platform/graphics/transforms/TransformState.cpp:
(WebCore::TransformState::applyTransform): Pass out clamping state.
(WebCore::TransformState::flatten): Ditto.
(WebCore::TransformState::mappedPoint): Ditto.
(WebCore::TransformState::mappedQuad): Ditto.
(WebCore::TransformState::flattenWithTransform): Ditto. No need to initialize
wasClamped, since this function is internal.
* platform/graphics/transforms/TransformState.h:
(TransformState):
* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::projectQuad): If any point projection clamped,
set the flag to say we clamped.
* platform/graphics/transforms/TransformationMatrix.h:
(TransformationMatrix):
2012-10-31 Tiancheng Jiang <tijiang@rim.com>
Change bubble message style to BB10 UX spec.
https://bugs.webkit.org/show_bug.cgi?id=100862
Reviewed by Rob Buis.
RIM PR 198108
Internal Reviewed by Otto Cheung.
No new tests.
* css/themeBlackBerry.css:
(::-webkit-validation-bubble-message): Added.
(::-webkit-validation-bubble-arrow): Added.
(::-webkit-validation-bubble-heading): Added.
2012-10-31 Mike West <mkwst@chromium.org>
Prefer document->addConsoleMessage to document->domWindow->console->addMessage.
https://bugs.webkit.org/show_bug.cgi?id=100850
Reviewed by Adam Barth.
For historical reasons, a few places in WebCore talk to Console directly
via 'document()->domWindow()->console()->addMessage(...)'. This is more
safely wrapped by calling 'addConsoleMessage' on the Document itself.
No visible functionality should change; we'll simply avoid potential
null dereferences in the future.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::validateInteractively):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::printWarningToConsole):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::reportLocalLoadFailed):
* loader/MixedContentChecker.cpp:
(WebCore::MixedContentChecker::logWarning):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::abort):
(WebCore::ApplicationCacheGroup::didReceiveResponse):
(WebCore::ApplicationCacheGroup::didFinishLoading):
(WebCore::ApplicationCacheGroup::didFail):
(WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
(WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::printAccessDeniedMessage):
2012-10-31 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: frame chooser does not work on subsequent inspector open.
https://bugs.webkit.org/show_bug.cgi?id=100771
Reviewed by Yury Semikhatsky.
- Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
- Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
- Remove remains of the front-end reused signal from InspectorAgent
- Send execution contexts post clear window object instead of post commit load.
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::InspectorAgent):
(WebCore::InspectorAgent::clearFrontend):
(WebCore::InspectorAgent::didCommitLoad):
* inspector/InspectorAgent.h:
(InspectorAgent):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
(WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::restore):
* inspector/InspectorRuntimeAgent.cpp:
(WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
(WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
(WebCore::InspectorRuntimeAgent::run):
(WebCore::InspectorRuntimeAgent::setScriptDebugServer):
* inspector/InspectorRuntimeAgent.h:
(InspectorRuntimeAgent):
* inspector/InstrumentingAgents.h:
(WebCore):
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::workerRuntimeAgent):
(WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
(InstrumentingAgents):
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::PageRuntimeAgent):
(WebCore::PageRuntimeAgent::~PageRuntimeAgent):
(WebCore::PageRuntimeAgent::setFrontend):
(WebCore::PageRuntimeAgent::clearFrontend):
(WebCore::PageRuntimeAgent::enable):
(WebCore::PageRuntimeAgent::didCreateMainWorldContext):
* inspector/PageRuntimeAgent.h:
(PageRuntimeAgent):
* inspector/WorkerRuntimeAgent.cpp:
(WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
(WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
(WebCore::WorkerRuntimeAgent::run):
(WebCore):
(WebCore::WorkerRuntimeAgent::pauseWorkerContext):
* inspector/WorkerRuntimeAgent.h:
(WorkerRuntimeAgent):
2012-10-31 Kondapally Kalyan <kalyan.kondapally@intel.com>
[Qt][EFL][AC][WK2]TextureMapperLayer backing store contents are drawn upside down on screen.
https://bugs.webkit.org/show_bug.cgi?id=100845.
Reviewed by Noam Rosenthal.
WebGL displays the Canvas with (0,0) being the bottom left corner.
In GraphicsSurface::platformPaintToTextureMapper we don't set ShouldFlipTexture
flag before painting to TextureMapper.
It results in backing store contents being drawn upside down on screen.
This patch enables ShouldFlipTexture flag when TextureMapperLayer renders
it's backing store contents into a TextureMapper.
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
2012-10-31 Noam Rosenthal <noam.rosenthal@nokia.com>
[Texmap] Enable filter animations in GraphicsLayerAnimation
https://bugs.webkit.org/show_bug.cgi?id=100318
Reviewed by Kenneth Rohde Christiansen.
Use the same method of animating filters in WebCore to animate filters for TextureMapper.
Added the appropriate methods to GraphicsLayerAnimation and TextureMapperLayer.
Tested by LayoutTests/css3/filters/filter-animation-hw.html and other tests.
* platform/graphics/GraphicsLayerAnimation.cpp:
(WebCore):
(WebCore::blendFunc):
(WebCore::applyFilterAnimation):
(WebCore::GraphicsLayerAnimation::applyInternal):
* platform/graphics/GraphicsLayerAnimation.h:
(Client):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::intermediateSurfaceRect):
(WebCore::TextureMapperLayer::shouldPaintToIntermediateSurface):
(WebCore::TextureMapperLayer::paintRecursive):
(WebCore::TextureMapperLayer::syncAnimations):
* platform/graphics/texmap/TextureMapperLayer.h:
(TextureMapperLayer):
(WebCore::TextureMapperLayer::setFilters):
(WebCore::TextureMapperLayer::setAnimatedFilters):
2012-10-31 Adam Barth <abarth@webkit.org>
[V8] Garbage collection should use opaque roots rather than implicit references
https://bugs.webkit.org/show_bug.cgi?id=100707
Reviewed by Kentaro Hara.
This patch replaces visitDOMWrapper with opaqueRootForGC. The
former used to inform V8 of implicit relationships between wrapper
objects on a per-wrapper basis. That meant that we needed to know which
DOMDataStore a given wrapper was in during garbage collection.
After this patch, we now use object groups rather than implicit
references to inform V8 of these relationships. That has two benefits:
1) We no longer need to know which DOMDataStore a wrapper belongs
because we don't need to find the exact source wrapper for the
implicit connection.
2) We can now handle more complicated implicit relationships, for
example when some of the intervening objects haven't had their
JavaScript wrappers created yet.
This patch also unlocks to paths of future development:
A) Fixing the remaining failures in fast/dom/gc-9.html
B) Enumerating DOM wrappers entirely from V8 rather than from the
DOMWrapperMaps (so that we can move more object towards using
IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).
* bindings/scripts/CodeGeneratorV8.pm:
(NeedsCustomOpaqueRootForGC):
(GenerateOpaqueRootForGC):
(GenerateHeader):
(GenerateImplementation):
* bindings/v8/V8GCController.cpp:
(ImplicitConnection):
(WebCore::ImplicitConnection::ImplicitConnection):
(WebCore::ImplicitConnection::root):
(WebCore::ImplicitConnection::wrapper):
(WebCore):
(WebCore::operator<):
(WrapperGrouper):
(WebCore::WrapperGrouper::WrapperGrouper):
(WebCore::WrapperGrouper::addToGroup):
(WebCore::WrapperGrouper::keepAlive):
(WebCore::WrapperGrouper::apply):
(WebCore::ObjectVisitor::ObjectVisitor):
(WebCore::ObjectVisitor::visitDOMWrapper):
(ObjectVisitor):
(WebCore::V8GCController::opaqueRootForGC):
(WebCore::NodeVisitor::NodeVisitor):
(WebCore::NodeVisitor::visitNodeWrapper):
(NodeVisitor):
(WebCore::V8GCController::majorGCPrologue):
* bindings/v8/V8GCController.h:
(WebCore):
(V8GCController):
* bindings/v8/WrapperTypeInfo.h:
(WebCore):
(WebCore::WrapperTypeInfo::opaqueRootForGC):
(WrapperTypeInfo):
* bindings/v8/custom/V8NodeListCustom.cpp:
(WebCore::V8NodeList::opaqueRootForGC):
* bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
(WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
2012-10-31 Alexei Filippov <alph@chromium.org>
Web Inspector: Add total node to native memory snapshot tree
https://bugs.webkit.org/show_bug.cgi?id=100843
Reviewed by Yury Semikhatsky.
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeSnapshotDataGrid):
(WebInspector.NativeSnapshotNode):
(WebInspector.MemoryBlockViewProperties._initialize):
2012-10-31 Arpita Bahuguna <arpitabahuguna@gmail.com>
Table with percentage column widths doesn't scale to fill the entire width of a table containing it
https://bugs.webkit.org/show_bug.cgi?id=11645
Reviewed by Julien Chaffraix.
When the inner (or nested) table has auto width and column(s) with
percent width, we should scale our column(s) to the width of the
containing table (unless it has auto width).
Test: fast/table/scale-nested-percent-width-cols.html
* rendering/AutoTableLayout.cpp:
(WebCore::shouldScaleColumns):
If the containing table width was of percent type, we were disallowing
our inner or nested table's column from scaling to the size of the parent
table. We should prohibit the scaling of the nested table columns only
if the parent table has auto width.
2012-10-31 Ian Vollick <vollick@chromium.org>
Add support for text-based repaint testing
https://bugs.webkit.org/show_bug.cgi?id=100584
Reviewed by Simon Fraser.
Allows tracked repaint rects to be dumped as text.
The following layout tests have been converted:
fast/repaint/layer-full-repaint.html
fast/repaint/overflow-flipped-writing-mode-table.html
* WebCore.exp.in:
Exports for:
FrameView::setTracksRepaints(bool)
Frame::trackedRepaintRectsAsText() const
* page/Frame.cpp:
(WebCore::Frame::trackedRepaintRectsAsText):
Returns a string containing information on all tracked repaint rects.
* page/FrameView.cpp:
(WebCore::FrameView::setTracksRepaints):
Rather than calling m_trackedRepaintRects.clear() directly, I've
called resetTrackedRepaints(). This will allow us to do more
sophisticated resetting when we start tracking repaint rects for
composited layers.
(WebCore::FrameView::trackedRepaintRectsAsText):
Provides the string returned by Frame::trackedRepaintRectsAsText.
* testing/Internals.cpp:
(WebCore::Internals::repaintRectsAsText):
Returns Frame::trackedRepaintRectsAsText.
(WebCore):
(WebCore::Internals::startTrackingRepaints):
Calls FrameView::setTracksRepaints(true)
(WebCore::Internals::stopTrackingRepaints):
Calls FrameView::setTracksRepaints(false)
* testing/Internals.h:
* testing/Internals.idl:
Declarations for:
repaintRectsAsText
startTrackingRepaints
stopTrackingRepaints
2012-10-31 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: page crash when pausing in dedicated worker
https://bugs.webkit.org/show_bug.cgi?id=100837
Reviewed by Pavel Feldman.
Pass debugger agent to InjectedScriptHost::init in case of workers.
Test: inspector-protocol/debugger-pause-dedicated-worker.html
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
2012-10-31 Zoltan Nyul <zoltan.nyul@intel.com>
perspective-origin should ignore values with more then two lengths and use the default values
https://bugs.webkit.org/show_bug.cgi?id=100835
Reviewed by Kenneth Rohde Christiansen.
Perspective-origin should ignore values with more then two lengths
(http://www.w3.org/TR/css3-transforms/#perspective-origin) and use
the default values instead of parsing it as an unlimited-length list,
of which all but the first two values are ignored. This makes perspective-origin
behave similar to transform-origin which uses default value in this case,
as well as firefox does the same.
Test: transforms/2d/computed-style-origin.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parsePerspectiveOrigin):
2012-10-31 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133016.
http://trac.webkit.org/changeset/133016
https://bugs.webkit.org/show_bug.cgi?id=100856
broke compile-webkit on several bots (Requested by podivilov
on #webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/DeviceOrientationClient.h:
(DeviceOrientationClient):
* dom/DeviceOrientationController.cpp:
(WebCore::DeviceOrientationController::DeviceOrientationController):
(WebCore):
(WebCore::DeviceOrientationController::~DeviceOrientationController):
(WebCore::DeviceOrientationController::timerFired):
(WebCore::DeviceOrientationController::addListener):
(WebCore::DeviceOrientationController::removeListener):
(WebCore::DeviceOrientationController::removeAllListeners):
(WebCore::DeviceOrientationController::suspendEventsForAllListeners):
(WebCore::DeviceOrientationController::resumeEventsForAllListeners):
(WebCore::DeviceOrientationController::didChangeDeviceOrientation):
(WebCore::DeviceOrientationController::supplementName):
* dom/DeviceOrientationController.h:
(WebCore):
(DeviceOrientationController):
(WebCore::DeviceOrientationController::isActive):
(WebCore::DeviceOrientationController::client):
(WebCore::DeviceOrientationController::from):
* dom/Document.cpp:
(WebCore::Document::suspendActiveDOMObjects):
(WebCore::Document::resumeActiveDOMObjects):
* loader/EmptyClients.h:
(WebCore::EmptyDeviceOrientationClient::startUpdating):
(WebCore::EmptyDeviceOrientationClient::stopUpdating):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
(WebCore::DOMWindow::removeAllEventListeners):
* page/DeviceClient.h: Removed.
* page/DeviceController.cpp: Removed.
* page/DeviceController.h: Removed.
2012-10-31 Antti Koivisto <antti@apple.com>
Remove stray calls to mutableAttributeData()
https://bugs.webkit.org/show_bug.cgi?id=100849
Reviewed by Andreas Kling.
Changing the cached class attribute value does not require mutable attribute data.
* dom/Element.cpp:
(WebCore::Element::classAttributeChanged):
* dom/ElementAttributeData.h:
(WebCore::ElementAttributeData::clearClass):
Make const like setClass().
2012-10-31 Mike West <mkwst@chromium.org>
X-Frame-Options console message should be associated with a request.
https://bugs.webkit.org/show_bug.cgi?id=100735
Reviewed by Pavel Feldman.
In 99941, we added the possibility to tie console messages to requests,
which enables automatic generation of stack traces, line numbers, etc.
making the error simpler to diagnose for web developers. This patch
uses the piping laid in that patch to improve the console message
generated when a document is blocked by X-Frame-Options.
No new tests; the functionality is covered by changes to existing tests.
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
Grab the request identifier from the currently active DocumentLoader
and pass it into the console message.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::didReceiveResponse):
Grab the request identifier from the MainResourceLoader, and pass it
into the console message.
2012-10-31 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r133015.
http://trac.webkit.org/changeset/133015
https://bugs.webkit.org/show_bug.cgi?id=100847
broke Apple Win Debug compilation (Requested by podivilov on
#webkit).
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::InspectorAgent):
(WebCore::InspectorAgent::clearFrontend):
(WebCore::InspectorAgent::didCommitLoad):
* inspector/InspectorAgent.h:
(WebCore::InspectorAgent::didCommitLoadFired):
(InspectorAgent):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
(WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
(WebCore::InspectorInstrumentation::runtimeAgentEnabled):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::restore):
* inspector/InspectorRuntimeAgent.cpp:
(WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
(WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
(WebCore::InspectorRuntimeAgent::run):
(WebCore):
(WebCore::InspectorRuntimeAgent::pauseWorkerContext):
* inspector/InspectorRuntimeAgent.h:
(InspectorRuntimeAgent):
* inspector/InstrumentingAgents.h:
(WebCore):
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::inspectorRuntimeAgent):
(WebCore::InstrumentingAgents::setInspectorRuntimeAgent):
(InstrumentingAgents):
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::PageRuntimeAgent):
(WebCore::PageRuntimeAgent::~PageRuntimeAgent):
(WebCore::PageRuntimeAgent::setFrontend):
(WebCore::PageRuntimeAgent::clearFrontend):
(WebCore::PageRuntimeAgent::enable):
(WebCore::PageRuntimeAgent::didClearWindowObject):
* inspector/PageRuntimeAgent.h:
(PageRuntimeAgent):
* inspector/WorkerRuntimeAgent.cpp:
(WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
(WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
* inspector/WorkerRuntimeAgent.h:
(WorkerRuntimeAgent):
2012-10-31 Kihong Kwon <kihong.kwon@samsung.com>
Add DeviceController base-class to remove duplication of DeviceXXXControler
https://bugs.webkit.org/show_bug.cgi?id=96894
Reviewed by Hajime Morita.
Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
And soon-to-be-added DeviceMotionController and ProximityController.
Covered by existing tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/DeviceOrientationClient.h:
* dom/DeviceOrientationController.cpp:
Remove member functions to move to DeviceController.
- addListener(), removeListener(), removeAllListeners(), isActive()
(WebCore::DeviceOrientationController::DeviceOrientationController):
(WebCore::DeviceOrientationController::didChangeDeviceOrientation):
(WebCore::DeviceOrientationController::client):
(WebCore::DeviceOrientationController::hasLastData):
(WebCore::DeviceOrientationController::getLastEvent):
(WebCore::DeviceOrientationController::from):
(WebCore):
* dom/DeviceOrientationController.h:
(WebCore):
(WebCore::DeviceOrientationController::~DeviceOrientationController):
(DeviceOrientationController):
* dom/Document.cpp:
Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
(WebCore::Document::suspendActiveDOMObjects):
(WebCore::Document::resumeActiveDOMObjects):
* loader/EmptyClients.h:
(EmptyDeviceClient):
(WebCore::EmptyDeviceClient::startUpdating):
(WebCore::EmptyDeviceClient::stopUpdating):
(WebCore):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
(WebCore::DOMWindow::removeAllEventListeners):
* page/DeviceClient.h: Added.
(WebCore):
(DeviceClient):
(WebCore::DeviceClient::~DeviceClient):
* page/DeviceController.cpp: Added.
DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
- addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
All kind of device event controller which has DeviceClient can be inherited from DeviceController.
(WebCore):
(WebCore::DeviceController::DeviceController):
(WebCore::DeviceController::addDeviceEventListener):
(WebCore::DeviceController::removeDeviceEventListener):
(WebCore::DeviceController::removeAllDeviceEventListeners):
(WebCore::DeviceController::dispatchDeviceEvent):
(WebCore::DeviceController::fireDeviceEvent):
* page/DeviceController.h: Added.
(WebCore):
(DeviceController):
(WebCore::DeviceController::~DeviceController):
(WebCore::DeviceController::isActive):
(WebCore::DeviceController::client):
(WebCore::DeviceController::hasLastData):
(WebCore::DeviceController::getLastEvent):
2012-10-31 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: frame chooser does not work on subsequent inspector open.
https://bugs.webkit.org/show_bug.cgi?id=100771
Reviewed by Yury Semikhatsky.
- Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
- Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
- Remove remains of the front-end reused signal from InspectorAgent
- Send execution contexts post clear window object instead of post commit load.
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::InspectorAgent):
(WebCore::InspectorAgent::clearFrontend):
(WebCore::InspectorAgent::didCommitLoad):
* inspector/InspectorAgent.h:
(InspectorAgent):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
(WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::restore):
* inspector/InspectorRuntimeAgent.cpp:
(WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
(WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
(WebCore::InspectorRuntimeAgent::run):
(WebCore::InspectorRuntimeAgent::setScriptDebugServer):
* inspector/InspectorRuntimeAgent.h:
(InspectorRuntimeAgent):
* inspector/InstrumentingAgents.h:
(WebCore):
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::workerRuntimeAgent):
(WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
(InstrumentingAgents):
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::PageRuntimeAgent):
(WebCore::PageRuntimeAgent::~PageRuntimeAgent):
(WebCore::PageRuntimeAgent::setFrontend):
(WebCore::PageRuntimeAgent::clearFrontend):
(WebCore::PageRuntimeAgent::enable):
(WebCore::PageRuntimeAgent::didCreateMainWorldContext):
* inspector/PageRuntimeAgent.h:
(PageRuntimeAgent):
* inspector/WorkerRuntimeAgent.cpp:
(WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
(WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
(WebCore::WorkerRuntimeAgent::run):
(WebCore):
(WebCore::WorkerRuntimeAgent::pauseWorkerContext):
* inspector/WorkerRuntimeAgent.h:
(WorkerRuntimeAgent):
2012-10-31 Keishi Hattori <keishi@webkit.org>
Calendar picker can flicker when opened from the suggestion picker
https://bugs.webkit.org/show_bug.cgi?id=100816
Reviewed by Kent Tamura.
Calendar picker was opening before the hiding completed.
No new tests. Added test to date-suggestion-picker-key-operations.html.
* Resources/pagepopups/pickerCommon.js: Added didHide event.
* Resources/pagepopups/suggestionPicker.js:
(SuggestionPicker.prototype.selectEntry): Use didHide event so we don't open the calendar picker prematurely.
(SuggestionPicker._handleWindowDidHide): When the window finished hiding, open the calendar picker.
2012-10-31 Allan Sandfeld Jensen <allan.jensen@digia.com>
Reset binding test result after r132973
https://bugs.webkit.org/show_bug.cgi?id=99178
Unreviewed gardening.
* bindings/scripts/test/JS/JSFloat64Array.cpp:
(WebCore::getJSFloat64ArrayConstructorTable):
(WebCore::JSFloat64ArrayConstructor::getOwnPropertySlot):
(WebCore::JSFloat64ArrayConstructor::getOwnPropertyDescriptor):
2012-10-31 Mike West <mkwst@chromium.org>
Script run from an isolated world should bypass a page's CSP.
https://bugs.webkit.org/show_bug.cgi?id=97398
Reviewed by Adam Barth.
A page's Content Security Policy currently applies to all resources
loaded, regardless of their source. That generally makes sense, but
proves problematic when considering script run from an isolated
world (Chrome extensions, for instance). These scripts should be allowed
to inject resources into a page's DOM without eiher being restricted by
the page's active CSP, or generating violation reports that spam the
page owner.
Ideally, the isolated world could define its own Content Security Policy
which should be applied to resources it loads. For the moment, this
patch accepts a String that we can parse later on, but only uses it in
a binary way. If a non-empty policy String is provided, we bypass the
main world's CSP checks. If an empty String is provided, the main
world's CSP checks remain active.
Test: http/tests/security/isolatedWorld/bypass-main-world-csp.html
(WebCore::isolatedWorldContentSecurityPolicies):
(WebCore::DOMWrapperWorld::isolatedWorldHasContentSecurityPolicy):
(WebCore::DOMWrapperWorld::setIsolatedWorldContentSecurityPolicy):
(WebCore::DOMWrapperWorld::clearIsolatedWorldContentSecurityPolicy):
* bindings/v8/DOMWrapperWorld.h:
(DOMWrapperWorld):
Mechanisms for setting and clearing Content Security Policies from
isolated worlds; implemented in the same HashMappy way as
SecurityOrigin.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
(WebCore):
* bindings/v8/ScriptController.h:
(ScriptController):
Adding a method to ScriptController to query the state of the
current world's Content Security Policy. We'll drop this once we can
apply a policy more directly, but for the moment it's necessary for
the next bit.
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::canRequest):
Check the new ScriptController method, and only perform CSP checks
when loading resources if we're executing code from the main world,
or an isolated world with no Content Security Policy set.
2012-10-31 Tim Horton <timothy_horton@apple.com>
Unreviewed, attempt to fix the release build by not exporting symbols that aren't defined there.
* WebCore.exp.in:
2012-10-31 Yury Semikhatsky <yurys@chromium.org>
Memory instrumentation: do not report memory occupied by objects referenced using client interfaces
https://bugs.webkit.org/show_bug.cgi?id=100824
Reviewed by Alexander Pavlov.
In many classes we have pointer to a client object. These references should be
reported as weak pointers and the client's memory usage should be reported when
the client is reached from its instrumented owner where we know exact type of
the client. Otherwise we would need to add reportMemoryUsage to all client
interfaces which places additional burden on the client implementers and blurs
the instrumentation boundaries.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::reportMemoryUsage):
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::reportMemoryUsage):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::reportMemoryUsage):
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::reportMemoryUsage):
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::reportMemoryUsage):
* page/Page.cpp:
(WebCore::Page::reportMemoryUsage):
2012-10-31 Tim Horton <timothy_horton@apple.com>
Unreviewed, attempt to fix the build by exporting NoExceptionAssertionChecker symbols.
* WebCore.exp.in:
2012-10-31 Eric Seidel <eric@webkit.org>
Add non-virtual firstChild/lastChild overrides to RenderBlock and RenderTableCol for a > 30% speedup on table from bug 100304
https://bugs.webkit.org/show_bug.cgi?id=100306
Reviewed by Abhishek Arya.
Presumably this is a speedup for other rendering tests as well. We use firstChild() all over
the rendering code w/o considering that it makes a virtual function call.
Originally I just fixed the one callsite which was showing up on the sample to
use children()->firstChild() directly. However after further thought, this
broader solution seemed the better way to go. The first patch was a 15% win for
this large table, this broader solution was a 30%!? win.
The elephant in the room for this table is that we're walking the whole table
for many nextColumn calls. But that I will solve in a later bug.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::firstChild):
(WebCore::RenderBlock::lastChild):
(RenderBlock):
* rendering/RenderObject.h:
(RenderObject):
* rendering/RenderTableCol.h:
(WebCore::RenderTableCol::firstChild):
(WebCore::RenderTableCol::lastChild):
(RenderTableCol):
2012-10-31 Philippe Normand <pnormand@igalia.com>
Spatialized panning renders incorrectly with USE_CONCATENATED_IMPULSE_RESPONSES
https://bugs.webkit.org/show_bug.cgi?id=98294
Reviewed by Chris Rogers.
Regenerated the concatenated impulse responses file with
elevations in increasing order per azimuth. In the previous
version of this file the elevations for 315, 330 and 345 were
concatenated at the wrong indexes.
* platform/audio/resources/Composite.wav:
2012-10-31 Tim Horton <timothy_horton@apple.com>
Full-page PDFPlugin should support inline form editing
https://bugs.webkit.org/show_bug.cgi?id=100155
Reviewed by Dan Bernstein.
Add form controls corresponding to Text and Choice PDF annotations,
allowing for single- and multi-line text input, and <option>-like input.
Currently, forms are only implemented for full-page PDF documents.
* WebCore.exp.in: Expose a variety of additional WebCore functionality to WebKit2.
* WebCore.xcodeproj/project.pbxproj: Expose some more WebCore headers as private headers for use in WebKit2.
2012-10-30 Eric Seidel <eric@webkit.org>
RoboHornetPro spends ~25% of total test time in WebCore::Region::Shape methods
https://bugs.webkit.org/show_bug.cgi?id=98800
Reviewed by Sam Weinig.
This patch brings our total RoboHornetPro time from 8.2 seconds to 5.3 seconds!
OverlapMap previously used Regions to track Layer bounds rects.
Unfortunately unioning a list of Regions is O(N^2)
where N is the number of Shapes (in this case rects).
This is because Shapes are immutable, so to union two shapes, we copy
both Shapes' segment/span vectors into a single new Shape.
Thus if we union a set of M Regions, each with 1 Shape, we'll end up copying
the segments of the first Shape N times before we have the final Region/Shape
and the second shape N-1 times. The sum of 1 to N is (N*(N-1))/2 aka order N^2.
Fixing the N^2 algorithm covered by https://bugs.webkit.org/show_bug.cgi?id=100814.
For now we just avoid this O(N^2) by moving away from Region, since OverlapMap
doesn't need it. We just collect a vector of the layer rects and hit-test that directly.
Hit-testing the rect list is O(N), just like hit-testing the same information in a Region would be.
Even better for us is that the OverlapMap is never even used in RoboHornetPro.
We just collect these rects to end up doing nothing with them. :)
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::OverlapMap::add):
(WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers):
(WebCore::RenderLayerCompositor::OverlapMap::pushCompositingContainer):
(WebCore::RenderLayerCompositor::OverlapMap::popCompositingContainer):
(RenderLayerCompositor::OverlapMap):
2012-10-30 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=100813
ScrollingCoordinatorMac::stateNodeForID() should return a
ScrollingStateNode* instead of a ScrollingStateScrollingNode*
Reviewed by Sam Weinig.
ScrollingCoordinatorMac::stateNodeForID() should return a
ScrollingStateNode* instead of a ScrollingStateScrollingNode* so that
it can be used for other types of nodes once we add them.
* page/scrolling/mac/ScrollingCoordinatorMac.h:
(ScrollingCoordinatorMac):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
(WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
(WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
(WebCore::ScrollingCoordinatorMac::stateNodeForID):
2012-10-30 Keishi Hattori <keishi@webkit.org>
F4 inside <input type=time> should not open calendar picker
https://bugs.webkit.org/show_bug.cgi?id=100730
Reviewed by Kent Tamura.
We lacked the check to see if the picker indicator is visible.
Test: fast/forms/time-multiple-fields/time-multiple-fields-open-picker-key-bindings.html
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Check if picker indicator is visible.
2012-10-30 Kent Tamura <tkent@chromium.org>
Delaying 'change' and 'input' event dispatching during HTMLInputElement::setValue
https://bugs.webkit.org/show_bug.cgi?id=100772
Reviewed by Abhishek Arya.
'change' and 'input' events are asynchronous and not
cancelable. We can use ScopedEvent.
Test: fast/forms/range/range-type-change-onchange.html
* dom/Node.cpp:
(WebCore::Node::dispatchChangeEvent): Use dispatchScopedEvent.
(WebCore::Node::dispatchInputEvent): Ditto.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setValue):
Make a scope to delay event dispatching.
* html/RangeInputType.cpp:
(WebCore::RangeInputType::handleKeydownEvent): Ditto.
2012-10-30 Simon Fraser <simon.fraser@apple.com>
Fix issues with filters and reflections
https://bugs.webkit.org/show_bug.cgi?id=100308
Reviewed by Dirk Schulze.
Composited filters were being applied to the wrong CALayer. The code used
primaryLayer(), which may be a CATransformLayer (which filters cannot apply
to; doing so causes console spew), or a CALayer that is used for reflection
flattening, which again is the wrong layer.
Test: css3/filters/composited-reflected.html
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateContentsVisibility): Replace .get()-> with ->
(WebCore::GraphicsLayerCA::updateContentsOpaque): Ditto.
(WebCore::GraphicsLayerCA::updateFilters): Apply filters to m_layer, not primaryLayer(),
and use m_layerClones, not primaryLayerClones().
(WebCore::GraphicsLayerCA::cloneLayer): When cloning a layer for reflections, copy filters
from the source layer.
* platform/graphics/ca/PlatformCALayer.h:
(PlatformCALayer): Add a member function to copy filters from a supplied layer.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::setFilters): Remove blank line.
(PlatformCALayer::copyFiltersFrom): Copy CAFIlters from the given layer.
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayer::copyFiltersFrom): Stub; no filters on Windows.
2012-10-30 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=100809
ScrollingCoordinator::attachToStateTree() should take an enum
indicating what type of node to create
Reviewed by Simon Fraser.
New enum ScrollingNodeType will soon have other values, such as
FixedNode.
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::attachToStateTree):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
(ScrollingCoordinatorMac):
This patch generalizes this function so that it can be used to create
different types of nodes and so that it is actually ready to create
child nodes.
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::attachToStateTree):
The rootStateNode is always a ScrollingNode.
(WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
For the time being, always create a ScrollingNode.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::attachToScrollingCoordinator):
2012-10-30 Gregg Tavares <gman@google.com>
Set the initial scissor box for WebGL
https://bugs.webkit.org/show_bug.cgi?id=100804
Reviewed by Kenneth Russell.
The initial scissor box needs to be set for WebGL
No new tests as no new functionality.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::initializeNewContext):
2012-10-30 Charles Wei <charles.wei@torchmobile.com.cn>
[BlackBerry] PurgeCredential should also purge the persisted credential store
https://bugs.webkit.org/show_bug.cgi?id=100744
Reviewed by George Staikos.
When challenged by the server, we will check the credential in-memory and from the persistent storage.
So the invalid credentials should also be purged from the persistent credential storage; Otherwise,
it will be sent to the server next time been challenged, instead of prompting the user.
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::purgeCredentials):
2012-10-30 Allan Sandfeld Jensen <allan.jensen@digia.com>
DOM URL is flaky when workers are used
https://bugs.webkit.org/show_bug.cgi?id=99178
Reviewed by Geoffrey Garen.
Extend JSNoStaticTables to also avoid direct access of static tables in constructor objects.
Test: fast/workers/worker-domurl.html
* bindings/scripts/CodeGeneratorJS.pm:
(constructorHashTableAccessor):
(GenerateConstructorDefinition):
2012-10-30 Jae Hyun Park <jae.park@company100.net>
Coordinated Graphics: Remove unused methods
https://bugs.webkit.org/show_bug.cgi?id=100799
Reviewed by Noam Rosenthal.
Currently, there are several unused methods regarding Coordinated
Graphics. This patch removes those unused methods.
No new tests (No change in behavior).
* platform/graphics/texmap/TextureMapperGL.cpp:
2012-10-30 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Multiple segment polygon layout does not get all segments
https://bugs.webkit.org/show_bug.cgi?id=100039
Reviewed by Dirk Schulze.
Corrected the algorithm for computing included polygon intervals for rectilinear polygons,
and polygons with horizontal edges in general.
Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-001.html
fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-002.html
* rendering/ExclusionPolygon.cpp: Removed some internal dead code related to the no-longer-used sortedEdgesMinY Vector.
(WebCore::ExclusionPolygon::ExclusionPolygon): Initialize new ExclusionPolygonEdge edgeIndex field.
(WebCore::getVertexIntersectionVertices): Return the previous, next, and target vertex indices for a vertex intersection.
(WebCore::ExclusionPolygon::computeXIntersections): Refactored the core of this method to improve handling of horizontal edges.
(WebCore::ExclusionPolygon::computeEdgeIntersections): Ignore zero-width edges.
* rendering/ExclusionPolygon.h: Removed the rightVertexY() method, since it's no longer used.
(WebCore::ExclusionPolygon::edgeAt): New method.
(WebCore::ExclusionPolygon::numberOfEdges): New method.
(ExclusionPolygon): Added support for retrieving edges.
(WebCore::ExclusionPolygonEdge::vertex1): Use vertex1Index.
(WebCore::ExclusionPolygonEdge::vertex2): Use vertex2Index.
(ExclusionPolygonEdge): Renamed index1, index2 fields to vertex1Index, vertex2Index.
(WebCore::ExclusionPolygonEdge::previousEdge): New method.
(WebCore::ExclusionPolygonEdge::nextEdge): New method.
2012-10-30 Chris Evans <cevans@google.com>
Improve performance of MaskPtr.
https://bugs.webkit.org/show_bug.cgi?id=100790
Reviewed by Eric Seidel.
Calculate the mask once, and store it as a fast-access member variable.
Also avoid unneccessary integer width expansion in index calculation.
Parser/tiny-innerHTML.html has a high stddev.
Best result I've seen pre-patch is 5.70 runs/s.
Best result I've seen post-patch is 5.72 runs/s, but this is not statistically significant.
MaskPtr is still showing as ~2% in the profile, so we're not sure we trust the profile symbolization at this time.
MaskPtr is now reduced to a single inline instruction (was: 4) so this seems like a strict improvement worth landing.
* rendering/RenderArena.cpp:
(MaskPtr): Use a passed-in mask for the mask operation.
(WebCore::RenderArena::RenderArena): Calculate the mask and store it.
(WebCore::RenderArena::allocate):
(WebCore::RenderArena::free): Use stored mask and avoid unneccessary casts.
* rendering/RenderArena.h:
(RenderArena): Store the freelist mask as a member variable.
2012-10-30 Kenichi Ishibashi <bashi@chromium.org>
local(Helvetica) in src descriptor prevent fallback
https://bugs.webkit.org/show_bug.cgi?id=100446
Reviewed by Dan Bernstein.
FontCache::getCachedFontData() has a mechanism that aliases a few pairs
of font family names, so that if the family name specified in the font-family
property is not available on the system, but the its alias is available,
it will be used instead. This is appropriate for the font-family property,
but not for font family names specified in the local() function of the src
descriptor in a @font-face rule.
This patch disables the mechanism while checking src descriptor of @font-face.
No new tests. It's difficult to test the change because 'Helvetica' can
be mapped any other font. For example, chromium DRT uses FontConfig to
map Helvetica to Times New Roman. Other ports may map Helvetica to other
fonts. We can't define the expected result.
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::getFontData):
Call fontCache()->getCachedFontData() with checkingAlternateName = true.
This disables aliasing font family names in FontCache.
2012-10-30 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=100796
Should add FixedPositionViewportConstraints to ScrollingConstraints.h
Reviewed by Simon Fraser.
ScrollingConstraints.h currently contains an abstract class called
ViewportConstraints that is intended to encapsulate data and logic
required to reposition elements whose layout depends on the viewport
rect (positions fixed and sticky), when scrolling and zooming.
However, at this time there is only a subclass for sticky. We should
add a sub-class for fixed. This is required to get pages with fixed
position elements scrolling on the scrolling thread.
* page/scrolling/ScrollingConstraints.cpp:
(WebCore::FixedPositionViewportConstraints::layerPositionForViewportRect):
(WebCore):
* page/scrolling/ScrollingConstraints.h:
(WebCore::ViewportConstraints::ViewportConstraints):
(ViewportConstraints):
(WebCore::ViewportConstraints::setAnchorEdges):
(FixedPositionViewportConstraints):
(WebCore::FixedPositionViewportConstraints::FixedPositionViewportConstraints):
(WebCore::FixedPositionViewportConstraints::viewportRectAtLastLayout):
(WebCore::FixedPositionViewportConstraints::setViewportRectAtLastLayout):
(WebCore::FixedPositionViewportConstraints::layerPositionAtLastLayout):
(WebCore::FixedPositionViewportConstraints::setLayerPositionAtLastLayout):
(WebCore):
2012-10-30 Tiancheng Jiang <tijiang@rim.com>
[BlackBerry] update form theme for BB10.
https://bugs.webkit.org/show_bug.cgi?id=100760
Reviewed by Rob Buis.
RIM PR:222126
Introduce slide function to paint new theme for the form controls.
No new tests.
* css/themeBlackBerry.css:
(select):
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore):
(WebCore::drawControl): Added.
(WebCore::drawThreeSlice): Added.
(WebCore::drawNineSlice): Added.
(WebCore::loadImage): Added.
(WebCore::RenderThemeBlackBerry::systemFont): Modified.
(WebCore::RenderThemeBlackBerry::paintTextFieldOrTextAreaOrSearchField): Modified.
(WebCore::RenderThemeBlackBerry::paintCheckbox): Modified.
(WebCore::RenderThemeBlackBerry::paintRadio): Modified.
(WebCore::RenderThemeBlackBerry::paintButton): Modified.
(WebCore::RenderThemeBlackBerry::paintMenuList): Modified.
(WebCore::RenderThemeBlackBerry::paintMenuListButton): Modified.
(WebCore::RenderThemeBlackBerry::paintSliderTrackRect): Modified.
(WebCore::RenderThemeBlackBerry::paintSliderThumb): Modified.
* platform/blackberry/RenderThemeBlackBerry.h:
(RenderThemeBlackBerry):
2012-10-30 Rick Byers <rbyers@chromium.org>
cssText for cursor property doesn't include hotspot
https://bugs.webkit.org/show_bug.cgi?id=99530
Reviewed by Darin Adler.
Implement customCssText in CSSCursorImageValue to include the hotspot when present.
Also explicitly track whether or not a hotspot was supplied in the parser,
while still using the existing convention of (-1,-1) to denote no hotspot
in the rest of the system.
Test: fast/css/cursor-parsing.html
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::customCssText):
* css/CSSCursorImageValue.h:
(CSSCursorImageValue):
2012-10-30 Kenneth Russell <kbr@google.com>
Temporarily restrict use of ImageBufferSkia::copyToPlatformTexture until bugs resolved
https://bugs.webkit.org/show_bug.cgi?id=100714
Reviewed by Stephen White.
For the moment, only use ImageBuffer::copyToPlatformTexture when
copying to RGBA/UNSIGNED_BYTE textures, and document restriction
in header. Restriction will be lifted once the implementations
(currently only Chromium has one) have been fixed; see bug 100715.
No new tests; manually ran WebGL conformance test
tex-image-and-sub-image-2d-with-canvas-rgba5551.html on NVIDIA
hardware on Mac OS.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::texImage2D):
* platform/graphics/ImageBuffer.h:
(ImageBuffer):
2012-10-30 Nico Weber <thakis@chromium.org>
Fix potential overflow in jpeg exif reader. Found by aedla@google.com.
https://bugs.webkit.org/show_bug.cgi?id=100320
Reviewed by Eric Seidel.
Adding more than 1 element past an array is undefined, so don't do it.
No test, since in practice ifd will just overflow and `end - ifd` will
become much larget than 2 and the `if (end - ifd < 2)` a few lines
down will catch that case.
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::readImageOrientation):
2012-10-26 Alexandru Chiculita <achicu@adobe.com>
[CSS Shaders] Add the ValidatedCustomFilterOperation class
https://bugs.webkit.org/show_bug.cgi?id=100558
Reviewed by Dean Jackson.
Added the ValidatedCustomFilterOperation class. The file is now almost empty,
but more is going to come in the following patches.
Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
such operations for now.
No new tests, there is no new functionality yet.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::valueForFilter):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::createFilterOperations):
* platform/graphics/blackberry/LayerWebKitThread.cpp:
(WebCore::LayerWebKitThread::filtersCanBeComposited):
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::filtersCanBeComposited):
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
* platform/graphics/filters/FilterOperation.h:
* platform/graphics/filters/FilterOperations.cpp:
(WebCore::FilterOperations::hasCustomFilter):
(WebCore::FilterOperations::getOutsets):
* platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
(WebCore):
(WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
(WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
(WebCore::ValidatedCustomFilterOperation::blend):
* platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
(WebCore):
(ValidatedCustomFilterOperation):
(WebCore::ValidatedCustomFilterOperation::create):
(WebCore::ValidatedCustomFilterOperation::affectsOpacity):
(WebCore::ValidatedCustomFilterOperation::movesPixels):
(WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
(WebCore::ValidatedCustomFilterOperation::operator==):
2012-10-30 Joseph Pecoraro <pecoraro@apple.com>
[Mac] Sync up FeatureDefine Configuration Files
https://bugs.webkit.org/show_bug.cgi?id=100171
Reviewed by David Kilzer.
Follow up to better coordinate with iOS feature defines. Make:
- ENABLE_FILTERS always on
- ENABLE_INPUT_* iphonesimulator values point to the iphoneos values
* Configurations/FeatureDefines.xcconfig:
2012-10-30 Joseph Pecoraro <pecoraro@apple.com>
[Mac] Sync up FeatureDefine Configuration Files
https://bugs.webkit.org/show_bug.cgi?id=100171
Reviewed by David Kilzer.
Ensure an identical FeatureDefine files across all projects. Changes:
- ENABLE_CSS_BOX_DECORATION_BREAK should be in all
- ENABLE_PDFKIT_PLUGIN should be in all
- ENABLE_RESOLUTION_MEDIA_QUERY should be in all
- ENABLE_ENCRYPTED_MEDIA should be in all
- ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING with corrected value
- Some alphabetical ordering cleanup
* Configurations/FeatureDefines.xcconfig:
2012-10-30 Andreas Kling <kling@webkit.org>
StylePropertySet: Convert more logic to use PropertyReference.
<http://webkit.org/b/100779>
Reviewed by Antti Koivisto.
Rewrite more of the StylePropertySet logic to use PropertyReference instead of CSSProperty.
This is cleanup before changing the internal storage layout of immutable StylePropertySet.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
* css/CSSComputedStyleDeclaration.h:
* css/CSSStyleDeclaration.h:
* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
* css/PropertySetCSSStyleDeclaration.h:
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::appendFontLonghandValueIfExplicit):
(WebCore::StylePropertySet::fontValue):
(WebCore::StylePropertySet::get4Values):
(WebCore::StylePropertySet::getPropertyCSSValue):
(WebCore::StylePropertySet::removeProperty):
(WebCore::StylePropertySet::propertyIsImportant):
(WebCore::StylePropertySet::getPropertyShorthand):
(WebCore::StylePropertySet::isPropertyImplicit):
(WebCore::StylePropertySet::setProperty):
(WebCore::StylePropertySet::mergeAndOverrideOnConflict):
(WebCore::StylePropertySet::findPropertyIndex):
(WebCore::StylePropertySet::findMutableCSSPropertyWithID):
(WebCore::StylePropertySet::propertyMatches):
(WebCore::StylePropertySet::removeEquivalentProperties):
* css/StylePropertySet.h:
(WebCore::StylePropertySet::PropertyReference::shorthandID):
(WebCore::StylePropertySet::PropertyReference::isImplicit):
2012-10-30 Eric Seidel <eric@webkit.org>
Teach RenderTable how to use Vector::insert and Vector::append instead of its own custom memmove code
https://bugs.webkit.org/show_bug.cgi?id=100428
Reviewed by Julien Chaffraix.
RenderTable is now like all other clients of Vector instead of being
needlessly different. :)
insert, append and grow all use the same expandCapacity logic under the covers
and Vector::insert uses TypeOperations::moveOverlapping which should use memmove
by default for unknown types.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::splitColumn):
(WebCore::RenderTable::appendColumn):
* rendering/RenderTable.h:
(WebCore::RenderTable::ColumnStruct::ColumnStruct):
2012-10-30 Vincent Scheib <scheib@chromium.org>
Unreviewed, rolling out r132927.
http://trac.webkit.org/changeset/132927
https://bugs.webkit.org/show_bug.cgi?id=100558
Compile error on Chromium builders
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::valueForFilter):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::createFilterOperations):
* platform/graphics/blackberry/LayerWebKitThread.cpp:
(WebCore::LayerWebKitThread::filtersCanBeComposited):
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::filtersCanBeComposited):
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
* platform/graphics/filters/FilterOperation.h:
* platform/graphics/filters/FilterOperations.cpp:
(WebCore::FilterOperations::hasCustomFilter):
(WebCore::FilterOperations::getOutsets):
* platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Removed.
* platform/graphics/filters/ValidatedCustomFilterOperation.h: Removed.
2012-10-30 W. James MacLean <wjmaclean@chromium.org>
[chromium] Restrict link highlights to targets that display a hand-cursor
https://bugs.webkit.org/show_bug.cgi?id=99862
Reviewed by James Robinson.
To avoid applying highlights to inappropriate targets, such as large divs with
click handlers installed, test candidate targets and only highlight them if they
would normally display a hand cursor on mouse over. This is a heuristic, but has
been tested and found effective in practice.
This CL refactors EventHandler::selectCursor() to make the logic for determining
if CURSOR_AUTO should resolve to CURSOR_POINTER available outside EventHandler.
Relies on existing cursor tests.
* page/EventHandler.cpp:
(WebCore::EventHandler::useHandCursor):
(WebCore):
(WebCore::EventHandler::selectCursor):
* page/EventHandler.h:
(EventHandler):
2012-10-30 Rob Buis <rbuis@rim.com>
[BlackBerry] Remove CookieDatabaseBackingStore::upgradeTableIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=100783
Reviewed by Yong Li.
PR 220513.
Remove CookieDatabaseBackingStore::upgradeTableIfNeeded, it was needed for backwards
compatibility, but not needed anymore.
* platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
(WebCore::CookieDatabaseBackingStore::invokeOpen):
* platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
2012-10-30 Glenn Adams <glenn@skynav.com>
[CSS] Expand -webkit-line-break value space
https://bugs.webkit.org/show_bug.cgi?id=100739
Reviewed by Eric Seidel.
(1) expand -webkit-line-break to include new values defined by CSS3 Text [1], i.e., 'auto', 'strict', 'loose';
(2) change default (initial) value for -webkit-line-break to 'auto' to match CSS3 Text;
(3) rename enum EKHTMLLineBreak to LineBreak, renaming enum values appropriately;
New tests to be added when functionality of new values is added. No rendering behavior change at this time.
Only externally visible change is default (initial) value returning 'auto' rather than 'normal', for which 3 existing
tests that were sensitive to this value have been updated. Note that until the functionality for the new values is
added, any actual use of the new values will be treated as the same as the pre-existing 'normal' value, i.e., the
default semantics.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
Update from kthmlLineBreak() to lineBreak().
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
Update values supported for CSSPropertyWebkitLineBreak.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator LineBreak):
Update LineBreak enumeration values (previously EKHTMLLineBreak).
* css/CSSValueKeywords.in:
Update keywords used for -webkit-line-break.
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
Update names for line break style getter/setter.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff):
Remove khtml prefix on line break related state.
* rendering/style/RenderStyle.h:
Remove khtml prefix on line break related methods. Update to redefined LineBreak
enumeration type.
* rendering/style/RenderStyleConstants.h:
Rename EKHTMLLineBreak enumeration to LineBreak.
Redefine LineBreak enumeration to include new CSS3 Text modes (auto, loose, strict) and
use better names.
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
Remove khtml prefix on line break related state references.
* rendering/style/StyleRareInheritedData.h:
(StyleRareInheritedData):
Remove khtml prefix on line break related state. Widen field to 3 bits to support 8 values,
of which 5 are now used.
2012-10-30 Antti Koivisto <antti@apple.com>
Avoid unnecessary style recalcs on class attribute mutation
https://bugs.webkit.org/show_bug.cgi?id=100776
Reviewed by Andreas Kling.
There is no need to invalidate element style on class attribute change if neither the added
or removed classes featured in any active stylesheet.
* css/RuleFeature.cpp:
(WebCore::RuleFeatureSet::add):
(WebCore::RuleFeatureSet::clear):
(WebCore::RuleFeatureSet::reportMemoryUsage):
* css/RuleFeature.h:
(RuleFeatureSet):
* css/RuleSet.cpp:
(WebCore::collectFeaturesFromSelector):
Collect classes mentioned in CSS selectors the same way ids and attribute names are
already collected.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::hasSelectorForClass):
Add a method to test if a given class name is mentioned anywhere in stylehseets.
(WebCore):
* css/StyleResolver.h:
* css/StyleScopeResolver.h:
(WebCore):
* dom/Element.cpp:
(WebCore::collectAddedAndRemovedClasses):
(WebCore):
(WebCore::Element::classAttributeChanged):
Figure out which classes were added and removed. Test if they are present in any style
rule and invalidate the style only if they are.
* dom/SpaceSplitString.cpp:
(WebCore::SpaceSplitStringData::add):
(WebCore::SpaceSplitStringData::remove):
(WebCore::SpaceSplitString::add):
(WebCore::SpaceSplitString::remove):
Added bool return value to indicate if anything was actually removed. Reorganized
the code a bit to avoid unnecessary uniquing when nothing changes.
* dom/SpaceSplitString.h:
(SpaceSplitStringData):
(SpaceSplitString):
2012-10-30 Robert Hogan <robert@webkit.org>
white-space: nowrap inline element beside a floated element wraps incorrectly without trailing textnode/newline
https://bugs.webkit.org/show_bug.cgi?id=29648
Reviewed by Levi Weintraub.
A no-wrap child on a line inside an autowrap container should move to the next line if a float doesn't allow
it to fit. This will happen if there is trailing space after the no-wrap child but not if it's the last renderer
on the line. This is because nextLineBreak() is only interested in the white-space style of the current renderer
and the renderer's next sibling (if there is one) when deciding whether it needs to fit below any floats that
push it beyond the edge of the container. There isn't any situation in which a no-wrap child shouldn't move
below a float on an auto-wrap line though, so this check always needs to respect the container's white-space style too.
Test: fast/text/whitespace/no-wrap-child-in-auto-wrap-container.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextLineBreak):
2012-10-26 Alexandru Chiculita <achicu@adobe.com>
[CSS Shaders] Add the ValidatedCustomFilterOperation class
https://bugs.webkit.org/show_bug.cgi?id=100558
Reviewed by Dean Jackson.
Added the ValidatedCustomFilterOperation class. The file is now almost empty,
but more is going to come in the following patches.
Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
such operations for now.
No new tests, there is no new functionality yet.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::valueForFilter):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::createFilterOperations):
* platform/graphics/blackberry/LayerWebKitThread.cpp:
(WebCore::LayerWebKitThread::filtersCanBeComposited):
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::filtersCanBeComposited):
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
* platform/graphics/filters/FilterOperation.h:
* platform/graphics/filters/FilterOperations.cpp:
(WebCore::FilterOperations::hasCustomFilter):
(WebCore::FilterOperations::getOutsets):
* platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
(WebCore):
(WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
(WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
(WebCore::ValidatedCustomFilterOperation::blend):
* platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
(WebCore):
(ValidatedCustomFilterOperation):
(WebCore::ValidatedCustomFilterOperation::create):
(WebCore::ValidatedCustomFilterOperation::affectsOpacity):
(WebCore::ValidatedCustomFilterOperation::movesPixels):
(WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
(WebCore::ValidatedCustomFilterOperation::operator==):
2012-10-29 Anders Carlsson <andersca@apple.com>
Build WebKit as C++11 on Mac
https://bugs.webkit.org/show_bug.cgi?id=100720
Reviewed by Daniel Bates.
* Configurations/Base.xcconfig:
Add CLANG_CXX_LANGUAGE_STANDARD=gnu++0x.
* platform/graphics/FontPlatformData.h:
(WebCore::FontPlatformData::hash):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::strokeArc):
* platform/graphics/filters/CustomFilterProgramInfo.cpp:
(WebCore::CustomFilterProgramInfo::hash):
(WebCore::ProtectionSpaceHash::hash):
* platform/network/cf/FormDataStreamCFNet.cpp:
(WebCore::setHTTPBody):
Add static_casts to prevent implicit type conversions in non-constant initializer lists.
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::createDragImage):
* platform/mac/CursorMac.mm:
(WebCore::createNamedCursor):
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::platformSetContentsSize):
Use NSMakePoint to prevent implicit type conversions in non-constant initializer lists.
* platform/mac/CookieJar.mm:
(WebCore::cookiesEnabled):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::shouldRelaxThirdPartyCookiePolicy):
Add explicit casts to NSHTTPCookieAcceptPolicy.
* platform/mac/WebCoreNSURLExtras.h:
* platform/mac/WebCoreNSURLExtras.mm:
(WebCore::URLByTruncatingOneCharacterBeforeComponent):
(WebCore::dataForURLComponentType):
* platform/network/ProtectionSpaceHash.h:
Use CFIndex instead of CFURLComponentType, the enum can be mangled differently in some cases, and these
functions are exported from WebCore.
2012-10-30 Dan Bernstein <mitz@apple.com>
<rdar://problem/12395187> REGRESSION (r121299): OS X Text Replacement forces cursor out of text fields
https://bugs.webkit.org/show_bug.cgi?id=100768
Reviewed by Anders Carlsson.
r121299 introduced code to restore the paragraph range by saving its length and start offset
relative to the document. The latter was obtained by iterating over the range starting at
the beginning of the document and ending at the beginning of the paragraph range. However,
such a range could not be constructed if the paragraph range was contained in a shadow DOM,
since a range must have both its endpoints within the same shadow tree (or not in a shadow
tree).
Test: platform/mac/editing/spelling/autocorrection-in-textarea.html
* editing/Editor.cpp:
(WebCore::Editor::markAndReplaceFor): Changed paragraphStartIndex to be relative to the
root container of paragraphRange, using the same logic used by
checkForDifferentRootContainer() in Range.cpp.
2012-10-30 Dan Carney <dcarney@google.com>
Remove ensureAuxiliaryContext
https://bugs.webkit.org/show_bug.cgi?id=99975
Reviewed by Adam Barth.
Removed auxilliaryContext as use if it is problematic in IDB.
No new tests. No change in functionality.
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::setValueReady):
* Modules/indexeddb/IDBCursor.h:
(IDBCursor):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::generateIndexKeysForValue):
(WebCore::IDBObjectStore::put):
(WebCore):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess):
(WebCore::IDBRequest::dispatchEvent):
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromScriptValueAndKeyPath):
(WebCore::deserializeIDBValue):
(WebCore::injectIDBKeyIntoScriptValue):
* bindings/v8/IDBBindingUtilities.h:
(WebCore):
* bindings/v8/V8Binding.cpp:
(WebCore::toV8Context):
(WebCore):
* bindings/v8/V8Binding.h:
(WebCore):
* bindings/v8/V8PerIsolateData.cpp:
(WebCore):
* bindings/v8/V8PerIsolateData.h:
2012-10-30 Huang Dongsung <luxtella@company100.net>
[CSS Shaders] Add CustomFilterRenderer to reuse this class by Accelerated Compositing.
https://bugs.webkit.org/show_bug.cgi?id=98989
Reviewed by Dean Jackson.
Extract CustomFilterRenderer class from the rendering part of FECustomFilter.
FECustomFilter now plays a role in extending FilterEffect and delegates
rendering CSS Shaders to CustomFilterRenderer.
CustomFilterRenderer does not know Filter and FilterEffect. We can
create a CustomFilterRenderer instance with only GraphicsContext3D and
CustomFilterValidatedProgram. It means that Accelerated Compositing can
create the CustomFilterRenderer instance if Accelerated Compositing has
GraphicsContext3D and CustomFilterOperation, and it is already possible.
This patch prepares to enable CSS Shaders on Accelerated Compositing.
No new tests. Covered by css3/filters/custom
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/filters/CustomFilterRenderer.cpp: Added.
(WebCore):
(WebCore::orthogonalProjectionMatrix):
(WebCore::CustomFilterRenderer::create):
(WebCore::CustomFilterRenderer::CustomFilterRenderer):
(WebCore::CustomFilterRenderer::~CustomFilterRenderer):
(WebCore::CustomFilterRenderer::premultipliedAlpha):
(WebCore::CustomFilterRenderer::programNeedsInputTexture):
(WebCore::CustomFilterRenderer::draw):
(WebCore::CustomFilterRenderer::prepareForDrawing):
(WebCore::CustomFilterRenderer::initializeCompiledProgramIfNeeded):
(WebCore::CustomFilterRenderer::initializeMeshIfNeeded):
(WebCore::CustomFilterRenderer::bindVertexAttribute):
(WebCore::CustomFilterRenderer::unbindVertexAttribute):
(WebCore::CustomFilterRenderer::bindProgramArrayParameters):
(WebCore::CustomFilterRenderer::bindProgramNumberParameters):
(WebCore::CustomFilterRenderer::bindProgramTransformParameter):
(WebCore::CustomFilterRenderer::bindProgramParameters):
(WebCore::CustomFilterRenderer::bindProgramAndBuffers):
(WebCore::CustomFilterRenderer::unbindVertexAttributes):
* platform/graphics/filters/CustomFilterRenderer.h: Copied from Source/WebCore/platform/graphics/filters/FECustomFilter.h.
(WebCore):
(CustomFilterRenderer):
CustomFilterRenderer renders custom filters in GPU using a
GraphicsContext3D.
* platform/graphics/filters/FECustomFilter.cpp:
(WebCore::FECustomFilter::FECustomFilter):
(WebCore::FECustomFilter::create):
(WebCore::FECustomFilter::deleteRenderBuffers):
(WebCore::FECustomFilter::drawFilterMesh):
(WebCore::FECustomFilter::prepareForDrawing):
(WebCore::FECustomFilter::applyShader):
(WebCore::FECustomFilter::resolveMultisampleBuffer):
(WebCore::FECustomFilter::resizeMultisampleBuffers):
(WebCore::FECustomFilter::resizeContext):
* platform/graphics/filters/FECustomFilter.h:
(WebCore):
(FECustomFilter):
* rendering/FilterEffectRenderer.cpp:
(WebCore::createCustomFilterEffect):
2012-10-30 Mike West <mkwst@chromium.org>
Web Inspector: Associate console messages with the requests that caused them.
https://bugs.webkit.org/show_bug.cgi?id=99941
Reviewed by Pavel Feldman.
The inspector currently supports the concept of a request's "initiator"
in order to add context to console messages that are generated in
response to a specific request. The initiator is used as the message's
anchor link iff a requestID is present, and no stack trace is present.
Currently, this functionality is only exposed to three specific
callsites: 'InspectorConsoleAgent::didFinishXHRLoading',
'InspectorConsoleAgent::didReceiveResponse', and
'InspectorConsoleAgent::didFailLoading'. This patch adds a generic
mechanism to associate requests with console messages by passing the
request's identifier through 'ScriptExecutionContext::addConsoleMessage'
or 'Console::addMessage' when relevant.
This patch should have no visible changes. It just installs some new
piping, and adjusts the three methods mentioned above to use it.
Existing tests shouldn't break.
* dom/Document.cpp:
(WebCore::Document::addMessage):
* dom/Document.h:
(Document):
Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
through to Console::addMessage.
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::addConsoleMessage):
* dom/ScriptExecutionContext.h:
(ScriptExecutionContext):
Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
through to the subclass' addMessage method.
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
Accept an unsigned long instead of a string, and move the conversion
from WebCore request identifiers to Inspector request identifiers
into ConsoleMessage.
* inspector/ConsoleMessage.h:
(ConsoleMessage):
Add 'requestIdentifier' (defaulting to 0) to the
ConsoleMessage constructor that accepts a ScriptCallStack (it was
already part of the constructor that accepted a line number).
* inspector/IdentifiersFactory.cpp:
(WebCore::IdentifiersFactory::requestId):
If the provided request identifier is 0, return an empty string.
This simplifies the logic at the callsite.
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::addMessageToConsole):
Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
through to the 'ConsoleMessage' constructor after converting it to
an internal identifier via 'IdentifiersFactor::requestId'.
(WebCore::InspectorConsoleAgent::didFinishXHRLoading):
(WebCore::InspectorConsoleAgent::didReceiveResponse):
(WebCore::InspectorConsoleAgent::didFailLoading):
Use the new 'requestIdentifier' parameter on addMessageToConsole
rather than replicating the behavior in each of these three methods.
* inspector/InspectorConsoleAgent.h:
(InspectorConsoleAgent):
Add a 'requestIdentifier' parameter (defaulting to 0).
* inspector/InspectorConsoleInstrumentation.h:
(WebCore::InspectorInstrumentation::addMessageToConsole):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
through to lower levels of the stack.
* page/Console.cpp:
(WebCore::Console::addMessage):
* page/Console.h:
(Console):
Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
through to 'InspectorInstrumentation::addMessageToConsole'.
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::addMessage):
(WebCore::WorkerContext::addMessageToWorkerConsole):
* workers/WorkerContext.h:
(WorkerContext):
Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
through to 'InspectorInstrumentation::addMessageToConsole'.
2012-10-29 Anders Carlsson <andersca@apple.com>
String::createCFString should return a RetainPtr
https://bugs.webkit.org/show_bug.cgi?id=100419
Reviewed by Andreas Kling.
Update callers of String::createCFString.
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::callObjCFallbackObject):
* html/HTMLMediaElement.cpp:
(WebCore::createFileURLForApplicationCacheResource):
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::createPropertyListRepresentation):
* platform/LocalizedStrings.cpp:
(WebCore::formatLocalizedString):
(WebCore::contextMenuItemTagLookUpInDictionary):
(WebCore::keygenKeychainItemName):
(WebCore::imageTitle):
* platform/RuntimeApplicationChecks.cpp:
(WebCore::mainBundleIsEqualTo):
* platform/cf/FileSystemCF.cpp:
(WebCore::fileSystemRepresentation):
(WebCore::pathAsURL):
* platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
(PlatformCAAnimation::PlatformCAAnimation):
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
(resubmitAllAnimations):
(PlatformCALayer::addAnimationForKey):
(PlatformCALayer::removeAnimationForKey):
(PlatformCALayer::setName):
* platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
(PlatformCALayerWinInternal::updateTiles):
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::utiFromMIMEType):
* platform/graphics/cg/ImageSourceCGMac.mm:
(WebCore::MIMETypeForImageSourceType):
(WebCore::preferredExtensionForImageSourceType):
* platform/mac/ClipboardMac.mm:
(WebCore::cocoaTypeFromHTMLClipboardType):
(WebCore::utiTypeFromCocoaType):
* platform/mac/SSLKeyGeneratorMac.cpp:
(WebCore::signedPublicKeyAndChallengeString):
* platform/network/cf/AuthenticationCF.cpp:
(WebCore::createCF):
* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::setCookies):
* platform/network/cf/DNSCFNet.cpp:
(WebCore::DNSResolveQueue::platformResolve):
* platform/network/cf/ResourceErrorCF.cpp:
(WebCore::ResourceError::cfError):
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::setDefaultMIMEType):
(WebCore::willSendRequest):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::setPrivateBrowsingEnabled):
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::setHeaderFields):
(WebCore::ResourceRequest::doUpdatePlatformRequest):
* platform/network/cf/ResourceResponseCFNet.cpp:
(WebCore::ResourceResponse::cfURLResponse):
* platform/network/cf/SocketStreamHandleCFNet.cpp:
(WebCore::SocketStreamHandle::createStreams):
(WebCore::SocketStreamHandle::addCONNECTCredentials):
(WebCore::SocketStreamHandle::copyCFStreamDescription):
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::doUpdatePlatformRequest):
* platform/network/mac/WebCoreURLResponse.mm:
(WebCore::adjustMIMETypeIfNecessary):
* platform/text/cf/HyphenationCF.cpp:
(WebCore::::createValueForKey):
* platform/text/cf/StringCF.cpp:
(WTF::String::createCFString):
* platform/text/cf/StringImplCF.cpp:
(WTF::StringImpl::createCFString):
* platform/text/mac/StringImplMac.mm:
(WTF::StringImpl::operator NSString *):
* platform/text/mac/TextCodecMac.cpp:
(WebCore::TextCodecMac::encode):
* platform/win/SearchPopupMenuWin.cpp:
(WebCore::autosaveKey):
(WebCore::SearchPopupMenuWin::saveRecentSearches):
2012-10-30 Chris Fleizach <cfleizach@apple.com>
AX: Support embedded SVG objects in AX tree
https://bugs.webkit.org/show_bug.cgi?id=97571
Reviewed by Tim Horton.
This patch allows an SVG image from another resource to be hooked into the AX
hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto
its native parent image. The SVGChromeClient is then used to connect to this SVG resource.
Test: accessibility/svg-remote-element.html
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* accessibility/AXObjectCache.cpp:
(WebCore::createFromRenderer):
* accessibility/AccessibilityAllInOne.cpp:
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isAccessibilitySVGRoot):
(AccessibilityObject):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::detach):
(WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement):
(WebCore::AccessibilityRenderObject::boundingBoxRect):
(WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
(WebCore::AccessibilityRenderObject::elementAccessibilityHitTest):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
(WebCore::AccessibilityRenderObject::isSVGImage):
(WebCore::AccessibilityRenderObject::detachRemoteSVGRoot):
(WebCore::AccessibilityRenderObject::remoteSVGRootElement):
(WebCore::AccessibilityRenderObject::addRemoteSVGChildren):
(WebCore::AccessibilityRenderObject::addChildren):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
* accessibility/AccessibilitySVGRoot.cpp: Added.
(WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot):
(WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot):
(WebCore::AccessibilitySVGRoot::create):
(WebCore::AccessibilitySVGRoot::parentObject):
* accessibility/AccessibilitySVGRoot.h: Added.
(AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element.
(WebCore::AccessibilitySVGRoot::setParent):
(WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot):
(WebCore::toAccessibilitySVGRoot):
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled
in a special manner.
(createAccessibilityRoleMap):
* loader/EmptyClients.h:
(EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding
the accessibility bounding rect of elements.
(WebCore::EmptyChromeClient::isEmptyChromeClient):
* page/ChromeClient.h:
(WebCore::ChromeClient::isEmptyChromeClient):
(ChromeClient):
* svg/graphics/SVGImage.cpp:
* svg/graphics/SVGImageChromeClient.h: Added.
(SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image.
(WebCore::SVGImageChromeClient::SVGImageChromeClient):
(WebCore::SVGImageChromeClient::isSVGImageChromeClient):
(WebCore::SVGImageChromeClient::image):
(WebCore::SVGImageChromeClient::chromeDestroyed):
(WebCore::SVGImageChromeClient::invalidateContentsAndRootView):
(WebCore::toSVGImageChromeClient):
2012-10-30 Dan Carney <dcarney@google.com>
add 7 bit strings capabilities to the v8 binding layer
https://bugs.webkit.org/show_bug.cgi?id=91850
Reviewed by Adam Barth.
This change enables the v8 binding layer to make use of webkit's
8 bit string capabilities. Using 8 bit strings leads to certain
benchmark performance improvemnts as can be seen in
https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
No new tests. Test coverage already extensive.
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::visitExternalStrings):
* bindings/v8/V8StringResource.cpp:
(StringTraits):
(WebCore::false):
(WebCore):
(WebCore::true):
(WebCore::v8StringToWebCoreString):
* bindings/v8/V8ValueCache.cpp:
(WebCore::makeExternalString):
(WebCore::WebCoreStringResourceBase::visitStrings):
* bindings/v8/V8ValueCache.h:
(WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
(WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
(WebCore::WebCoreStringResourceBase::atomicString):
(WebCoreStringResourceBase):
(WebCore::WebCoreStringResourceBase::memoryConsumption):
2012-10-30 Christophe Dumez <christophe.dumez@intel.com>
[AC] Fix compilation warnings when enabling Accelerated Compositing
https://bugs.webkit.org/show_bug.cgi?id=100741
Reviewed by Kenneth Rohde Christiansen.
Fix a few compilation warnings when building EFL port
with accelerated compositing enabled.
No new tests, no behavior change.
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::resolveGLMethods):
(WebCore::GraphicsSurface::platformCopyToGLTexture):
(WebCore::GraphicsSurface::platformLock):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::BitmapTextureGL::updateContents):
2012-10-30 No'am Rosenthal <noam.rosenthal@nokia.com>
[Qt] Animations jump when the page is suspended
https://bugs.webkit.org/show_bug.cgi?id=100673
Reviewed by Kenneth Rohde Christiansen.
GraphicsLayerAnimations::pause() should accept time from start and not an offset.
We need to support the "freeze" API before this can be reliably tested.
See https://bugs.webkit.org/show_bug.cgi?id=100703.
* platform/graphics/GraphicsLayerAnimation.cpp:
(WebCore::GraphicsLayerAnimation::pause):
2012-10-30 Kondapally Kalyan <kalyan.kondapally@intel.com>
[Qt][EFL][AC] While Using WebGL, MiniBrowser segfaults on Refreshing the page.
https://bugs.webkit.org/show_bug.cgi?id=100639.
Reviewed by Kenneth Rohde Christiansen.
TextureMapperSurfaceBackingStore can import textures from a GraphicSurface.
In such cases GraphicsSurfaceGLX creates an XPixmap to read texture content
from a given WindowId, but doesn't create any new window.
However, OffScreenRootWindow always tries to unmap window (in its destructor) resulting in segfault.
With this patch OffScreenRootWindow would check for a valid window before trying to unmap it.
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore::OffScreenRootWindow::~OffScreenRootWindow):
2012-10-30 Emil A Eklund <eae@chromium.org>
[subixel] Change LineWidth::shrinkAvailableWidthForNewFloatIfNeeded to not pixel snap
https://bugs.webkit.org/show_bug.cgi?id=100742
Reviewed by Levi Weintraub.
As we no longer pixel snap values when computing the current width for a
line we should not do it in shrinkAvailableWidthForNewFloatIfNeeded
either.
Test: fast/sub-pixel/float-wrap-zoom.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::LineWidth::LineWidth): Remove unnecessary ifdef.
(WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Use float values instead of pixel snapped/floored values as the line width calculations uses floats.
2012-10-30 Max Vujovic <mvujovic@adobe.com>
[CSS Shaders] Reject vertex shaders with custom attributes
https://bugs.webkit.org/show_bug.cgi?id=98973
Reviewed by Dean Jackson.
Improved CSS Custom Filters shader validation. With this patch:
(1) Shaders with custom attributes do not execute (e.g. attribute float my_attribute;).
(2) Shaders with a_triangleCoord defined do not execute with an attached mesh.
Most of the changes are from renaming CustomFilterOperation::MeshType to
CustomFilterMeshType, and moving the enumeration to CustomFilterConstants.h. This avoids
pulling in CustomFilterOperation for classes that only care about the mesh type.
Note that in CSS Custom Filters, the a_triangleCoord attribute is only available in detached
meshes. In detached meshes, no vertices are shared between triangles. Thus, each vertex
belongs to a specific triangle, which a_triangleCoord identifies. In attached meshes,
vertices can belong to many triangles, which a_triangleCoord cannot identify because it's
only a vec3.
Tests:
Add two new checks to the test file:
css3/filters/custom/invalid-custom-filter-attribute-types.html
Add two new shaders:
css3/filters/resources/invalid-custom-attribute.vs
css3/filters/resources/invalid-a-triangle-coord-with-attached-mesh.vs
* WebCore.xcodeproj/project.pbxproj:
Update a broken reference to CustomFilterConstants.h in the Xcode project file.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::valueForFilter):
Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::createCustomFilterOperation): Ditto.
* platform/graphics/filters/CustomFilterConstants.h:
Add CustomFilterMeshType enum to share across the Custom Filters codebase, so that we
don't have to include CustomFilterOperation just to access the old
CustomFilterOperation::MeshType enum.
* platform/graphics/filters/CustomFilterMesh.cpp:
(WebCore::CustomFilterMesh::CustomFilterMesh):
Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
* platform/graphics/filters/CustomFilterMesh.h:
(WebCore::CustomFilterMesh::create): Ditto.
(WebCore::CustomFilterMesh::meshType): Ditto.
(CustomFilterMesh): Ditto.
* platform/graphics/filters/CustomFilterMeshGenerator.cpp: Ditto.
(WebCore::CustomFilterMeshGenerator::CustomFilterMeshGenerator): Ditto.
(WebCore::CustomFilterMeshGenerator::dumpBuffers): Ditto.
* platform/graphics/filters/CustomFilterMeshGenerator.h:
(CustomFilterMeshGenerator): Ditto.
(WebCore::CustomFilterMeshGenerator::floatsPerVertex): Ditto.
(WebCore::CustomFilterMeshGenerator::verticesCount): Ditto.
* platform/graphics/filters/CustomFilterOperation.cpp:
(WebCore::CustomFilterOperation::CustomFilterOperation): Ditto.
* platform/graphics/filters/CustomFilterOperation.h:
(WebCore::CustomFilterOperation::create): Ditto.
(WebCore::CustomFilterOperation::meshType): Ditto.
(CustomFilterOperation): Ditto.
* platform/graphics/filters/CustomFilterProgram.cpp:
(WebCore::CustomFilterProgram::CustomFilterProgram):
Add a meshType constructor parameter because the program now needs to know the meshType
to properly validate.
(WebCore::CustomFilterProgram::programInfo):
Pass meshType to CustomFilterProgram constructor.
(WebCore::CustomFilterProgram::operator==):
Check the meshType in the equals operator.
* platform/graphics/filters/CustomFilterProgram.h:
Make vertexShaderString() and fragmentShaderString() public so that we don't have to ask
for a programInfo object just to get the shader strings in
CoordinatedGraphicsArgumentCoders.cpp.
* platform/graphics/filters/CustomFilterProgramInfo.cpp:
(WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo):
Add a meshType constructor parameter.
(WebCore::CustomFilterProgramInfo::hash):
Include the meshType in the validated program hash, since the same shader code can pass
or fail validation based on the meshType.
(WebCore::CustomFilterProgramInfo::operator==):
Check the meshType in the equals operator.
* platform/graphics/filters/CustomFilterProgramInfo.h:
(CustomFilterProgramInfo):
Update method prototype.
(WebCore::CustomFilterProgramInfo::meshType):
Add meshType getter.
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore::CustomFilterValidatedProgram::validateSymbols):
If the author defines attribute that is is not found in the built-in attribute map,
reject the shader.
If the author defines a_triangleCoord without a detached mesh type, reject the shader.
Also, make this previously file-static function into a method of
CustomFilterValidatedProgram because it now needs to access the m_meshType.
* platform/graphics/filters/CustomFilterValidatedProgram.h:
(CustomFilterValidatedProgram):
Add a meshType constructor parameter because the program now needs to know the meshType
to properly validate.
* platform/graphics/filters/FECustomFilter.cpp:
(WebCore::FECustomFilter::FECustomFilter):
Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
(WebCore::FECustomFilter::create): Ditto.
(WebCore::FECustomFilter::bindProgramAndBuffers): Ditto.
(WebCore::FECustomFilter::unbindVertexAttributes): Ditto.
* platform/graphics/filters/FECustomFilter.h:
(FECustomFilter): Ditto.
* rendering/style/StyleCustomFilterProgram.h:
(WebCore::StyleCustomFilterProgram::create):
Add a meshType constructor parameter.
(WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): Ditto.
2012-10-30 Andrey Lushnikov <lushnikov@google.com>
Web Inspector: adds isOwnProperty to remote protocol
https://bugs.webkit.org/show_bug.cgi?id=100664
Reviewed by Pavel Feldman.
Test: inspector/runtime/runtime-getProperties-isOwnProperty.html
Adds requested 'isOwn' property to the 'PropertyDescriptor' class of the
remote debugging protocol.
* inspector/InjectedScriptSource.js:
(.):
* inspector/Inspector.json:
2012-10-30 Zeno Albisser <zeno@webkit.org>
[Qt][Win] BitmapTextureGL::updateContents() broken after r132019.
https://bugs.webkit.org/show_bug.cgi?id=100680
When creating a temporary for swizzling the image data,
the temporary will have the target size.
Therefore no offset within the available image data
shall be applied in this case.
Reviewed by Noam Rosenthal.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::BitmapTextureGL::updateContents):
2012-10-30 Kent Tamura <tkent@chromium.org>
Remove unused code for old input[type=date] UI
https://bugs.webkit.org/show_bug.cgi?id=100734
Reviewed by Hajime Morita.
The old input[type=date] UI used in Google Chrome 20-23 (text field with
a fixed placeholder) was replaced with ENABLE_INPUT_MULTIPLE_FIELDS_UI.
No new tests because of no behavior changes.
* html/DateInputType.cpp: Remove ENABLE_INPUT_TYPE_DATE_LEGACY_UI code path.
* html/DateInputType.h: Ditto.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::supportsPlaceholder):
Remove fixed-placeholder feature.
* html/HTMLInputElement.h:
(HTMLInputElement): Ditto.
* html/HTMLTextFormControlElement.h:
(HTMLTextFormControlElement): isPlaceholderEmpty() is not needed to be virtual
* html/InputType.cpp: Remove fixed-placeholder feature.
* html/InputType.h: Ditto.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::updatePlaceholderText): Ditto.
* platform/text/PlatformLocale.h:
(Locale): Remove dateFormatText.
* platform/text/LocaleICU.cpp: Ditto.
* platform/text/LocaleICU.h: Ditto.
* platform/text/LocaleNone.cpp: Ditto.
* platform/text/mac/LocaleMac.h: Ditto.
* platform/text/mac/LocaleMac.mm: Ditto.
* platform/text/win/LocaleWin.cpp: Ditto.
* platform/text/win/LocaleWin.h: Ditto.
* platform/LocalizedStrings.h:
(WebCore): Remove unused functions; calendarTodayText,
calendarClearText, dateFormatYearText, dateFormatMonthText,
dateFormatDayInMonthText
2012-10-30 Kent Tamura <tkent@chromium.org>
Fix crash by calendar picker or suggestion picker
https://bugs.webkit.org/show_bug.cgi?id=100728
Reviewed by Hajime Morita.
Change DateTimeChooser so that it is ref-coutned.
Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange.html
* platform/DateTimeChooser.h: Made DateTimeChooser RefCounted.
* page/ChromeClient.h:
(ChromeClient): openDateTimeChooser should return PassRefPtr<DateTimeChooser>.
* loader/EmptyClients.h:
(EmptyChromeClient): Follow the above change.
* loader/EmptyClients.cpp:
(WebCore::EmptyChromeClient::openDateTimeChooser): Ditto.
* html/shadow/PickerIndicatorElement.h:
(PickerIndicatorElement): Hold DateTimeChooser in RefPtr<DateTimeChooser>.
* html/shadow/PickerIndicatorElement.cpp:
(WebCore::PickerIndicatorElement::PickerIndicatorElement):
Remove unnecessary initialization.
2012-10-30 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Timeline: promote "cpu activity" out of experiment
https://bugs.webkit.org/show_bug.cgi?id=100726
Reviewed by Pavel Feldman.
1. CPU actibity bars redesigned
2. Experiment setting removed
3. Feature setting added
* English.lproj/localizedStrings.js: Updated setting label.
* inspector/front-end/Settings.js: Replaced experiment with setting.
* inspector/front-end/SettingsScreen.js: Added new setting.
* inspector/front-end/TimelinePanel.js: Update cpu bars appearance.
* inspector/front-end/timelinePanel.css: Ditto.
2012-10-30 Michelangelo De Simone <michelangelo@webkit.org>
[CSS Shaders] Change the default compositing mode and the default CSS value for <fragmentShader>
https://bugs.webkit.org/show_bug.cgi?id=94020
Reviewed by Dean Jackson.
The default compositing mode has been changed from "normal source-over" to
"normal source-atop". This applies to the default fragment shader that will
kick in when there is no explicit fragment shader or mix function defined.
This has required to update all the existing tests; the dummy empty fragment
shader has also been removed because not needed.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::valueForFilter): An existence check
for the fragment shader has been added.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::createCustomFilterOperation): The default program
has been updated: PROGRAM_TYPE_BLENDS_TEXTURE (compositing enabled) now is
the default.
* platform/graphics/filters/CustomFilterProgramInfo.h:
(WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings):
New CustomFilterProgramMixSettings defaults to "source-atop" composite
operator.
2012-10-30 Ádám Kallai <kadam@inf.u-szeged.hu>
[Qt][Mac] Unreviewed build fix.
https://bugs.webkit.org/show_bug.cgi?id=100727.
Speculative build fix after 132858. Include missing CoreFoundation/CoreFoundation.h header.
* platform/text/cf/AtomicStringCF.cpp:
2012-10-30 Gabor Rapcsanyi <rgabor@webkit.org>
Optimize vclip for NEON in VectorMath
https://bugs.webkit.org/show_bug.cgi?id=100737
Reviewed by Zoltan Herczeg.
Speed up vclip in VectorMath with NEON intrinsics.
* platform/audio/VectorMath.cpp:
(WebCore::VectorMath::vclip):
2012-10-30 Alexandru Chiculita <achicu@adobe.com>
[CSS Shaders] Software and composited filters should have a common path
https://bugs.webkit.org/show_bug.cgi?id=100532
Reviewed by Dean Jackson.
Added computeFilterOperations as a common method between the software filters
and hardware composited ones. The method rejects custom filters that are not
loaded yet. In bug 100533 it will also convert the CustomFilterOperation to a
ValidatedCustomFilterOperation. That will help us keep the loading and verification
code for the custom filters common across all the ports.
No new tests, just refactoring existing code.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::computeFilterOperations):
(WebCore):
(WebCore::RenderLayer::updateOrRemoveFilterEffect):
* rendering/RenderLayer.h:
(WebCore):
(RenderLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateFilters):
2012-10-30 Alexei Filippov <alph@chromium.org>
Web Inspector: Implement native memory snapshot grid view
https://bugs.webkit.org/show_bug.cgi?id=100656
Native memory snapshots are now shown as an expandable tree form
using the grid control.
Reviewed by Yury Semikhatsky.
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeMemorySnapshotView):
(WebInspector.NativeSnapshotDataGrid):
(WebInspector.NativeSnapshotNode):
(WebInspector.NativeSnapshotNode.prototype.createCell):
(WebInspector.NativeSnapshotNode.prototype._createSizeCell):
(WebInspector.NativeSnapshotNode.prototype._populate):
(WebInspector.MemoryBlockViewProperties._initialize):
(WebInspector.MemoryBlockViewProperties._forMemoryBlock):
* inspector/front-end/dataGrid.css:
(.data-grid td):
* inspector/front-end/nativeMemoryProfiler.css:
(.memory-bar-chart-bar):
(.native-snapshot-view):
(.native-snapshot-view.visible):
(.native-snapshot-view .data-grid):
(.native-snapshot-view .data-grid table):
(.native-snapshot-view .data-grid div.size-text):
(.native-snapshot-view .data-grid div.size-bar):
(.native-snapshot-view .data-grid div.percent-text):
2012-10-30 Zoltan Nyul <zoltan.nyul@intel.com>
3d rotation with [0, 0, 0] direction vector should not be applied
https://bugs.webkit.org/show_bug.cgi?id=100733
Reviewed by Levi Weintraub.
As stated in the specification (http://dev.w3.org/csswg/css3-3d-transforms/#transform-functions),
a direction vector that cannot be normalized, such as [0, 0, 0], will cause the rotation to not be applied,
but webkit applies it with [1, 0, 0] direction vector.
Test: transforms/3d/general/3dtransform-values.html
* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::rotate3d):
2012-10-30 Yury Semikhatsky <yurys@chromium.org>
Memory instrumentation: report actual object address for CachedResourceClients
https://bugs.webkit.org/show_bug.cgi?id=100659
Reviewed by Alexander Pavlov.
Skipped pointers to objects that are not allocated on the heap directly.
To test this we need to compare addresses of objects traversed by the memory
insrumentation with those allocated by the memory allocator. The latter set
should include the former one.
* css/StyleResolver.cpp:
(WTF): skip pointers to RuleData structures as they are stored by value in RuleSet
objects and should not be reported separately.
* loader/cache/CachedResource.cpp:
(WTF): do not report memory occupied by CachedResourceClients as objects implementing
the interface may have address which differ from CachedResourceClient*. The clients
should be reachable from their instrumented owners where we know exact type of the
clients and hence can figure correct address.
2012-10-29 Shinya Kawanaka <shinyak@chromium.org>
[Refatoring] Remove ElementShadow::insertionPointFor
https://bugs.webkit.org/show_bug.cgi?id=100625
Reviewed by Hajime Morita.
Now that ElementShadow::insertionPointFor does not do any special things, and it's only used in
ComposedShadowTreeWalker. So we can remove it.
No new tests, simple refactoring.
* dom/ComposedShadowTreeWalker.cpp:
(WebCore::resolveReprojection):
(WebCore::AncestorChainWalker::parent):
* dom/ElementShadow.cpp:
* dom/ElementShadow.h:
(ElementShadow):
* dom/ShadowRoot.h: ShadowRoot has insertionPointFor declaration, but we don't have any implementation.
We should remove it.
2012-10-29 Andy Estes <aestes@apple.com>
Fix a typo that caused SVG external resources to be blocked on
platforms other than Chromium.
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::canRequest):
2012-10-29 Keishi Hattori <keishi@webkit.org>
NSLocale leaks in LocaleMac
https://bugs.webkit.org/show_bug.cgi?id=97628
Reviewed by Kent Tamura.
We need to adopt the NSLocale object so it doesn't leak and
determineLocale() should return a NSLocale without additional retain.
No new tests.
* platform/text/mac/LocaleMac.mm:
(WebCore::determineLocale): Returns a RetainPtr<NSLocale>.
(WebCore::Locale::create):
(WebCore::LocaleMac::LocaleMac): m_locale should adopt the NSLocale object.
(WebCore::LocaleMac::create): LocaleMac constructor takes NSLocale without additional retain.
2012-10-29 Charles Wei <charles.wei@torchmobile.com.cn>
[BlackBerry] Disable redirect to data scheme for potential fishing.
https://bugs.webkit.org/show_bug.cgi?id=100713
Reviewed by George Staikos.
We will disable redirect to data scheme to avoid potential security concern,
described in klevjers.com/papers/phishing.pdf.
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::handleRedirect):
2012-10-29 Vincent Scheib <scheib@chromium.org>
Unreviewed, rolling out r132845.
http://trac.webkit.org/changeset/132845
https://bugs.webkit.org/show_bug.cgi?id=99975
Broke chromium builds, linker errors from
IDBBindingUtilitiesTest
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::onSuccess):
(WebCore::IDBRequest::dispatchEvent):
* Modules/indexeddb/IDBRequest.h:
(IDBRequest):
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromScriptValueAndKeyPath):
(WebCore):
(WebCore::deserializeIDBValue):
(WebCore::injectIDBKeyIntoScriptValue):
(WebCore::idbKeyToScriptValue):
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::ensureAuxiliaryContext):
(WebCore):
* bindings/v8/V8PerIsolateData.h:
(V8PerIsolateData):
2012-10-29 Anders Carlsson <andersca@apple.com>
Fix Windows build.
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::setHeaderFields):
2012-10-28 Mark Rowe <mrowe@apple.com>
Simplify Xcode configuration settings that used to vary between OS versions.
Reviewed by Dan Bernstein.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/WebCore.xcconfig:
2012-10-28 Mark Rowe <mrowe@apple.com>
Remove references to unsupported OS and Xcode versions.
Reviewed by Anders Carlsson.
* Configurations/Base.xcconfig:
* Configurations/CompilerVersion.xcconfig: Removed.
* Configurations/DebugRelease.xcconfig:
* Configurations/Version.xcconfig:
* Configurations/WebCore.xcconfig:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
2012-10-29 Anders Carlsson <andersca@apple.com>
AtomicString(CFStringRef) shouldn't unconditionally create a StringImpl
https://bugs.webkit.org/show_bug.cgi?id=100701
Reviewed by Dan Bernstein.
* WebCore.exp.in:
Export AtomicString::add(CFStringRef).
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Add AtomicStringCF.cpp
* platform/text/cf/AtomicStringCF.cpp: Added.
(WTF::AtomicString::add):
When trying to add the atomic string to the table, first try to get a Latin-1 pointer
from the string. Second, try to get a Unicode pointer from the string.
If that also fails, copy the string to a temporary unicode buffer and add it from there.
* platform/text/cf/HyphenationCF.cpp:
(WebCore::::createValueForKey):
Update for AtomicString::createCFString being removed.
2012-10-25 Stephen Chenney <schenney@chromium.org>
feImage should not be allowed to self reference
https://bugs.webkit.org/show_bug.cgi?id=94652
Reviewed by Eric Seidel.
Add cycle detection for SVG filter application, and also fix a problem
with graphics context restore when filters are applied. This also
converts the flags in FilterData to a state tracking system, as the
number of flags was getting messy and only one flag is valid at any given time.
Test: svg/filters/feImage-self-and-other-referencing.html
* rendering/svg/RenderSVGResourceFilter.cpp: Convert to new FilterData
state management and enable cycle detection.
(WebCore):
(WebCore::RenderSVGResourceFilter::removeClientFromCache): Change isBuilt and markedForRemoval flags to state enums.
(WebCore::RenderSVGResourceFilter::applyResource): Change flags to state enums and detect cycles.
(WebCore::RenderSVGResourceFilter::postApplyResource): Change flags to state and add handling
for the various states.
(WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Change isBuilt flag to state enums.
* rendering/svg/RenderSVGResourceFilter.h:
(WebCore::FilterData::FilterData):
(FilterData): Convert to a state tracking system.
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::paintReplaced): Add a block around the
SVGRenderingContext so that it applies the filter and reverts the
context before the calling method restores the context.
2012-10-29 Dan Bernstein <mitz@apple.com>
<rdar://problem/12592716> REGRESSION (r132545): With full-page accelerated drawing, a
reproducible hang occurs at <http://www.cbsnews.com/stories/2010/01/24/ftn/main6136386.shtml>.
Reviewed by Anders Carlsson.
Work around <rdar://problem/12584492> by limiting the scope of the fix for <http://webkit.org/b/100413>.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::clipOut): Reverted to using CGContextGetClipBoundingBox() rather
than CGRectInfinite when the context is accelerated and has a transform that is not just
a translation or a scale.
2012-10-29 Rob Buis <rbuis@rim.com>
[BlackBerry] Simplify AuthenticationChallengeManager::instance
https://bugs.webkit.org/show_bug.cgi?id=100614
Reviewed by Yong Li.
Internally reviewed by Lyon Chen.
Use a standard Singleton pattern here, this makes sure we create lazily.
* platform/blackberry/AuthenticationChallengeManager.cpp:
(WebCore):
* platform/blackberry/AuthenticationChallengeManager.h:
(AuthenticationChallengeManager):
2012-10-29 Adam Barth <abarth@webkit.org>
Block SVG external references pending a security review
https://bugs.webkit.org/show_bug.cgi?id=100635
Reviewed by Eric Seidel.
We need to do a security review of loading external SVG references
before we're sure that it is safe.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::createFilterOperations):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::canRequest):
2012-10-29 Joshua Bell <jsbell@chromium.org>
IndexedDB: Crash on checking version of corrupt backing store
https://bugs.webkit.org/show_bug.cgi?id=100692
Reviewed by Tony Chang.
If the backing store fails to open (due to corruption, non-writeable disk, etc)
the subsequent schema version check dereferences a null pointer. Fix to only
do the schema check if the database opened.
Chromium tests will be included with crrev.com/11196029
* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
(WebCore::IDBLevelDBBackingStore::open):
2012-10-29 Philip Rogers <pdr@google.com>
Let SVGElements have pending resources.
https://bugs.webkit.org/show_bug.cgi?id=99694
Reviewed by Eric Seidel.
Our SVG pending resource tracking is used for handling dynamic id changes. For example,
if an SVG element references an id that is not yet in the document (or has been removed),
the SVG element will be 'pending' an id. When styled elements are inserted into
the document, buildPendingResourcesIfNeeded() is called to force any pending elements
to resolve their dependencies. Only SVGStyledElement targets can be referenced using
this infrastructure, and that is not changed with this patch.
Previously, only SVGStyledElements could have pending resources. Some examples of where
this is violated are SVGAnimateElement and SVGMPathElement which are not a styled elements
but which can have pending references (they can reference styled elements and
paths, respectively). This patch changes the pending resource handling to allow
any SVGElement to have pending resources.
This patch is only a refactoring of code in preparation for WK99694 and does not
affect existing functionality or tests.
* svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::addPendingResource):
(WebCore::SVGDocumentExtensions::isElementPendingResources):
(WebCore::SVGDocumentExtensions::isElementPendingResource):
(WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
(WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
* svg/SVGDocumentExtensions.h:
(WebCore):
(SVGDocumentExtensions):
* svg/SVGElement.cpp:
(WebCore::SVGElement::~SVGElement):
(WebCore::SVGElement::removedFrom):
(WebCore::SVGElement::hasPendingResources):
(WebCore):
(WebCore::SVGElement::setHasPendingResources):
(WebCore::SVGElement::clearHasPendingResourcesIfPossible):
* svg/SVGElement.h:
(SVGElement):
(WebCore::SVGElement::buildPendingResource):
* svg/SVGStyledElement.cpp:
(WebCore):
(WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
(WebCore::SVGStyledElement::removedFrom):
* svg/SVGStyledElement.h:
(SVGStyledElement):
(WebCore::SVGStyledElement::selfHasRelativeLengths):
2012-10-29 Dan Carney <dcarney@google.com>
Remove ensureAuxiliaryContext
https://bugs.webkit.org/show_bug.cgi?id=99975
Reviewed by Adam Barth.
Removed auxilliaryContext as use if it is problematic in IDB.
No new tests. No change in functionality.
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::setValueReady):
* Modules/indexeddb/IDBCursor.h:
(IDBCursor):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::generateIndexKeysForValue):
(WebCore::IDBObjectStore::put):
(WebCore):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess):
(WebCore::IDBRequest::dispatchEvent):
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromScriptValueAndKeyPath):
(WebCore::deserializeIDBValue):
(WebCore::injectIDBKeyIntoScriptValue):
* bindings/v8/IDBBindingUtilities.h:
(WebCore):
* bindings/v8/V8Binding.cpp:
(WebCore::toV8Context):
(WebCore):
* bindings/v8/V8Binding.h:
(WebCore):
* bindings/v8/V8PerIsolateData.cpp:
(WebCore):
* bindings/v8/V8PerIsolateData.h:
2012-10-29 Alpha Lam <hclam@chromium.org>
[skia] Handle mask box image.
https://bugs.webkit.org/show_bug.cgi?id=100570
Reviewed by James Robinson.
When drawing an image with source rectangle it should intersect with image rectangle.
This should be the case for drawing single image and tiling an image.
Test: fast/images/mask-box-image-crash.html
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::Image::drawPattern):
(WebCore::BitmapImage::draw):
(WebCore::BitmapImageSingleFrameSkia::draw):
2012-10-29 Eric Carlson <eric.carlson@apple.com>
Support captions when PLUGIN_PROXY_FOR_VIDEO
https://bugs.webkit.org/show_bug.cgi?id=100690
Reviewed by Simon Fraser.
When built with PLUGIN_PROXY_FOR_VIDEO, WebCore uses a plug-in for the media element's
platform media engine. Update this code path so the shadow DOM elements used to display
text tracks are created and configured correctly.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::configureMediaControls): Create media controls if necessary.
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::layout): Set the position and size of the shadow DOM when the
position of the embedded element changes.
* rendering/RenderEmbeddedObject.h:
2012-10-29 Justin Novosad <junov@google.com>
[Chromium] flickering observed when copying 2D canvas to webGL texture
https://bugs.webkit.org/show_bug.cgi?id=100691
Reviewed by Stephen White.
Added a flush to the webgl context after texture upload from an image
buffer to ensure proper graphics context synchronization with respect
to subsequent changes to the source image.
Tests: fast/canvas/webgl/canvas-2d-webgl-texture.html
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::ImageBuffer::copyToPlatformTexture):
2012-10-29 Glenn Adams <glenn@skynav.com>
[CSSOM] Extraneous whitespace in CSSImportRule.cssText
https://bugs.webkit.org/show_bug.cgi?id=100657
Reviewed by Simon Fraser.
Remove extraneous whitespace when serializing CSSImportRule.cssText when
media list is empty.
Test: cssom/cssimportrule-media.html
* css/CSSImportRule.cpp:
(WebCore::CSSImportRule::cssText):
Don't append extra whitespace if mediaText is empty.
2012-10-29 Arnaud Renevier <a.renevier@sisa.samsung.com>
webview not redrawn as needed when accelerated compositing is enabled.
https://bugs.webkit.org/show_bug.cgi?id=99109
Reviewed by Martin Robinson.
GL shared display is not in the gtk loop and therefore, its events are
not captured by gtk. So, we use gdk default instead.
No new tests, covered by existing tests.
* platform/gtk/RedirectedXCompositeWindow.cpp:
(WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
(WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
(WebCore::RedirectedXCompositeWindow::resize):
2012-10-29 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: bind redo to Ctrl+Y on non-mac platforms
https://bugs.webkit.org/show_bug.cgi?id=100685
Reviewed by Vsevolod Vlasov.
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype._registerShortcuts):
2012-10-29 Enrica Casucci <enrica@apple.com>
Add ENABLE_USERSELECT_ALL feature flag.
https://bugs.webkit.org/show_bug.cgi?id=100559
Reviewed by Eric Seidel.
* Configurations/FeatureDefines.xcconfig:
2012-10-29 Alexandru Chiculita <achicu@adobe.com>
[CSS Shaders] Extract the CustomFilterParameterList to its own file
https://bugs.webkit.org/show_bug.cgi?id=100548
Reviewed by Dean Jackson.
Moved all the CustomFilterParameterList related methods to their own file.
Also made CustomFilterParameterList inherit from Vector instead of typedefing it,
so that we can add a different operator== and a blend method to it.
No new tests, just refactoring existing code.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* css/StyleResolver.h:
* platform/graphics/filters/CustomFilterOperation.cpp:
(WebCore::CustomFilterOperation::CustomFilterOperation):
(WebCore::CustomFilterOperation::blend):
* platform/graphics/filters/CustomFilterOperation.h:
(WebCore):
(WebCore::CustomFilterOperation::operator==):
* platform/graphics/filters/CustomFilterParameterList.cpp: Added.
(WebCore):
(WebCore::CustomFilterParameterList::operator==):
(WebCore::CustomFilterParameterList::checkAlphabeticalOrder):
(WebCore::CustomFilterParameterList::blend):
* platform/graphics/filters/CustomFilterParameterList.h: Added.
(WebCore):
(CustomFilterParameterList):
2012-10-29 Brady Eidson <beidson@apple.com>
Try to fix 32-bit builds after my incompletely tested m_identifier change.
Not reviewed.
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::identifier): Revert my "unsigned long" -> "uint64_t" change in two places.
2012-10-29 Csaba Osztrogonác <ossy@webkit.org>
[Qt] Text with zero font size renders as X px sometimes, causing fast/text/zero-font-size-2.html to fail
https://bugs.webkit.org/show_bug.cgi?id=100115
Reviewed by Noam Rosenthal.
* platform/graphics/qt/FontQt.cpp:
(WebCore::Font::drawGlyphs):
2012-10-29 Huang Dongsung <luxtella@company100.net>
[TexMap] Make GraphicsLayerAnimation choose a proper timing function.
https://bugs.webkit.org/show_bug.cgi?id=100623
Reviewed by Noam Rosenthal.
Currently, GraphicsLayerAnimation chooses a timing function in the wrong
way. Other GraphicsLayers choose a timing function in the similar way to
GraphicsLayerCA::timingFunctionForAnimationValue(). The way consists of
the following steps.
1. Try to query the timing function of the current keyframe animation value.
2. If the timing function of #1 is null, try to query the timing function of Animation.
3. If the timing function of #2 is null, return CubicBezierTimingFunction::defaultTimingFunction().
This patch makes GraphicsLayerAnimation choose a timing function in the same way
to other implementations.
Covered by existing animations tests.
* platform/graphics/GraphicsLayerAnimation.cpp:
(WebCore::timingFunctionForAnimationValue):
(WebCore::GraphicsLayerAnimation::apply):
2012-10-29 Patrick Dubroy <dubroy@chromium.org>
Web Inspector: Toolbar overflow appears outside window
https://bugs.webkit.org/show_bug.cgi?id=100663
Reviewed by Pavel Feldman.
Since the search bar was removed from the toolbar, the overflow menu appears too far
to the right, and is unreadable. Fixed this by aligning it relative to the right side
of the window, rather than the left.
* inspector/front-end/Toolbar.js:
(WebInspector.ToolbarDropdown.prototype.show):
* inspector/front-end/inspector.css:
(#toolbar-dropdown .toolbar-label):
2012-10-29 Michelangelo De Simone <michelangelo@webkit.org>
[CSS Shaders] Implement CustomFilterArrayParameter::blend
https://bugs.webkit.org/show_bug.cgi?id=96437
Reviewed by Dean Jackson.
This patch adds the missing code to blend values within
an array() when using Custom Filters.
Test: css3/filters/custom/custom-filter-array-blending.html
* platform/graphics/filters/CustomFilterArrayParameter.h:
(WebCore::CustomFilterArrayParameter::blend):
2012-10-29 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Drag and drop a URL in inspector is not working as expected
https://bugs.webkit.org/show_bug.cgi?id=100527
Reviewed by Yury Semikhatsky.
Inhibit custom dragstart handling when the active element is A.
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline.prototype._ondragstart):
2012-10-29 Mike West <mkwst@chromium.org>
Web Inspector: Error/warning count is one pixel off.
https://bugs.webkit.org/show_bug.cgi?id=100660
Reviewed by Pavel Feldman.
The error/warning count div had a top padding of 6. That was one pixel
too many.
* inspector/front-end/inspector.css:
(#error-warning-count):
2012-10-29 Shinya Kawanaka <shinyak@chromium.org>
[Refactoring] Use isActiveInsertionPoint() instead of isInsertionPoint()
https://bugs.webkit.org/show_bug.cgi?id=100459
Reviewed by Hajime Morita.
Checking InsertionPoint and its activeness with two if-statement is error-prone. We would like to
use a utility function which checks both at once.
We rewrite some lines with such function.
No new tests, simple refactoring.
* dom/ComposedShadowTreeWalker.cpp:
(WebCore::ComposedShadowTreeWalker::traverseNode):
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::populate):
(WebCore::ContentDistributor::distribute):
(WebCore::ContentDistributor::distributeNodeChildrenTo):
* html/shadow/InsertionPoint.h:
(WebCore::isInsertionPoint): Since our convention is the argument of this kind of function should not be null,
we would like to make it similar to the other functions.
(WebCore::toInsertionPoint):
(WebCore::isLowerEncapsulationBoundary):
2012-10-29 Patrick Dubroy <dubroy@chromium.org>
Web Inspector: Fix vertical alignment in toolbar backgrounds and overflow button.
https://bugs.webkit.org/show_bug.cgi?id=100373
Reviewed by Pavel Feldman.
Fix the background image for the selected toolbar item to be vertically centered.
Make close button and toolbar overflow button vertically centered for any toolbar
height.
* inspector/front-end/Toolbar.js: Remove unused variable.
* inspector/front-end/inspector.css:
(.toolbar-item.toggleable):
(body.compact .toolbar-item.toggleable):
(.toolbar-item.toggleable.toggled-on):
(body.compact .toolbar-label):
(#toolbar-dropdown-arrow):
(#close-button-left, #close-button-right):
(.toolbar-item.close-left):
* inspector/front-end/inspector.html:
2012-10-29 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Timeline: Overview bars do not correspond to timeline bars
https://bugs.webkit.org/show_bug.cgi?id=100500
Reviewed by Yury Semikhatsky.
Fix: do not shorten bars by nested records of the same category.
* inspector/front-end/TimelineOverviewPane.js: Check added.
2012-10-29 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Timeline: make cpu-monitoring feature available only on capable browsers
https://bugs.webkit.org/show_bug.cgi?id=100530
Reviewed by Yury Semikhatsky.
Motivation: cpu-monitoring feature looks like a glitch,
when it is not supported by browser.
* inspector/Inspector.json: Added capability getter to protocol.
* inspector/InspectorClient.h: Added capability getter.
* inspector/InspectorTimelineAgent.cpp: Proxy to request to client.
* inspector/InspectorTimelineAgent.h: Added capability getter.
* inspector/front-end/Settings.js: Added capability field.
* inspector/front-end/TimelinePanel.js: Check capability.
* inspector/front-end/inspector.js: Forward capability value.
2012-10-29 Antti Koivisto <antti@apple.com>
Move seamless stylesheet collecting to DocumentStyleSheetCollection
https://bugs.webkit.org/show_bug.cgi?id=100655
Reviewed by Andreas Kling.
Move the code from StyleResolver to DocumentStyleSheetCollection. StyleResolver should focus on resolving style.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
Use standard create() pattern.
(WebCore):
* css/StyleResolver.h:
(StyleResolver):
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::collectActiveCSSStyleSheetsFromSeamlessParents):
Since parent activeAuthorStyleSheets() contains all seamlessly inherited sheets too, this does not need to
iterate to ancestors anymore.
(WebCore):
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
* dom/DocumentStyleSheetCollection.h:
(WebCore::DocumentStyleSheetCollection::create):
(DocumentStyleSheetCollection):
(WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
(WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
activeAuthorStyleSheets() now includes the stylesheets inherited from the seamless parent too.
(WebCore::DocumentStyleSheetCollection::needsUpdateActiveStylesheetsOnStyleRecalc):
2012-10-29 Andreas Kling <kling@webkit.org>
Don't expose implementation details of StylePropertySet storage.
<http://webkit.org/b/100644>
Reviewed by Antti Koivisto.
Add a StylePropertySet::PropertyReference class, now returned by propertyAt(index).
This will allow us to refactor the internal storage of StylePropertySet without
breaking its API.
A PropertyReference is a simple inlinable wrapper around a StylePropertySet&/index pair.
* css/CSSComputedStyleDeclaration.cpp:
* css/CSSParser.cpp:
* css/CSSParser.h:
* css/SVGCSSParser.cpp:
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::asText):
(WebCore::StylePropertySet::mergeAndOverrideOnConflict):
(WebCore::StylePropertySet::findPropertyWithId):
(WebCore::StylePropertySet::reportMemoryUsage):
* css/StylePropertySet.h:
(StylePropertySet):
(PropertyReference):
(WebCore::StylePropertySet::PropertyReference::PropertyReference):
(WebCore::StylePropertySet::PropertyReference::id):
(WebCore::StylePropertySet::PropertyReference::isImportant):
(WebCore::StylePropertySet::PropertyReference::isInherited):
(WebCore::StylePropertySet::PropertyReference::cssName):
(WebCore::StylePropertySet::PropertyReference::cssText):
(WebCore::StylePropertySet::PropertyReference::value):
(WebCore::StylePropertySet::PropertyReference::propertyInternal):
(WebCore::StylePropertySet::propertyAt):
(WebCore::StylePropertySet::propertyAtInternal):
(WebCore):
* css/StyleResolver.cpp:
(WebCore::attributeStylesEqual):
(WebCore::StyleResolver::applyProperties):
(WebCore::StyleResolver::resolveVariables):
* editing/ApplyStyleCommand.cpp:
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::mergeStyle):
(WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
* editing/Editor.cpp:
* editing/markup.cpp:
* page/Frame.cpp:
* svg/SVGFontFaceElement.cpp:
2012-10-29 Kent Tamura <tkent@chromium.org>
Move LocaleWin.{cpp,h} to platform/text/win/
https://bugs.webkit.org/show_bug.cgi?id=100641
Reviewed by Kentaro Hara.
We have platform/text/win/ directory. Windows-specific files should be
in it.
Note that these files are used only in Chromium-win for now.
No new tests. This doesn't change any behavior.
* WebCore.gyp/WebCore.gyp: Fix path names.
* WebCore.gypi: Ditto.
* platform/text/win/LocaleWin.cpp: Renamed from Source/WebCore/platform/text/LocaleWin.cpp.
* platform/text/win/LocaleWin.h: Renamed from Source/WebCore/platform/text/LocaleWin.h.
2012-10-29 Kent Tamura <tkent@chromium.org>
Rename Localizer to Locale
https://bugs.webkit.org/show_bug.cgi?id=100634
Reviewed by Kentaro Hara.
- Rename Localizer class to Locale
- Rename localizer with locale in variable names
- Rename localizer with locale in function names
No new tests. This doesn't make any behavior changes.
* dom/Document.h:
(WebCore): Declare Locale instead of Localizer.
(Document):
- Rename getCachedLocalizer to getCachedLocale.
- Rename LocaleToLocalizerMap to LocaleIdentifierToLocaleMap.
- Rename m_localizerCache to m_localeCache.
* dom/Document.cpp:
(WebCore::Document::getCachedLocale): Follow renamings.
* dom/Element.h:
(WebCore): Declare Locale instead of Localizer.
(Element): Rename localizer() to locale().
* dom/Element.cpp:
(WebCore::Element::locale): Follow renamings.
* html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::localizeValue): Ditto.
(WebCore::BaseDateAndTimeInputType::convertFromVisibleValue): Ditto.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Ditto.
* html/DateInputType.cpp:
(WebCore::DateInputType::fixedPlaceholder): Ditto.
(WebCore::DateInputType::setupLayoutParameters): Ditto.
* html/DateTimeInputType.cpp:
(WebCore::DateTimeInputType::setupLayoutParameters): Ditto.
* html/DateTimeLocalInputType.cpp:
(WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
* html/MonthInputType.cpp:
(WebCore::MonthInputType::setupLayoutParameters): Ditto.
* html/NumberInputType.cpp:
(WebCore::NumberInputType::localizeValue): Ditto.
(WebCore::NumberInputType::convertFromVisibleValue): Ditto.
* html/TimeInputType.cpp:
(WebCore::TimeInputType::localizeValue): Ditto.
(WebCore::TimeInputType::setupLayoutParameters): Ditto.
* html/shadow/DateTimeEditElement.h:
(WebCore): Declare Locale instead of Localizer.
(LayoutParameters): Rename localizer data member to locale.
(WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters): Follow renamings.
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitField): Ditto.
* html/shadow/DateTimeNumericFieldElement.h:
(DateTimeNumericFieldElement): Rename localizerForOwner to localeForOwner.
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore::DateTimeNumericFieldElement::formatValue): Follow renamings.
(WebCore::DateTimeNumericFieldElement::handleKeyboardEvent): Ditto.
(WebCore::DateTimeNumericFieldElement::localeForOwner): Ditto.
* page/PagePopupClient.h:
(WebCore): Declare Locale instead of Localizer.
(PagePopupClient): Rename localizer member function to locale.
* page/PagePopupController.cpp:
(WebCore::PagePopupController::localizeNumberString): Follow renamings.
* platform/text/PlatformLocale.cpp: Rename the Localizer class to Locale.
(DateTimeStringBuilder):
(WebCore::DateTimeStringBuilder::DateTimeStringBuilder):
(WebCore::Locale::~Locale):
(WebCore::Locale::setLocaleData): Renamed from setLocalizerData.
(WebCore::Locale::convertToLocalizedNumber):
(WebCore::Locale::detectSignAndGetDigitRange):
(WebCore::Locale::matchedDecimalSymbolIndex):
(WebCore::Locale::convertFromLocalizedNumber):
(WebCore::Locale::localizedDecimalSeparator):
(WebCore::Locale::dateTimeFormatWithSeconds):
(WebCore::Locale::dateTimeFormatWithoutSeconds):
(WebCore::Locale::formatDateTime):
* platform/text/PlatformLocale.h: Update the ifndef macro.
(Locale): Renamed from Localizer. Also, renamed the followings:
- initializeLocalizerData -> initializeLocaleData
- setLocalizerData -> setLocaleData
- m_hasLocalizerData -> m_hasLocaleData
(WebCore::Locale::Locale):
(WebCore::Locale::createDefault):
* platform/text/LocaleICU.cpp: Follow renamings.
* platform/text/LocaleICU.h: Ditto.
* platform/text/LocaleNone.cpp: Ditto.
* platform/text/LocaleWin.cpp: Ditto.
* platform/text/LocaleWin.h: Ditto.
* platform/text/mac/LocaleMac.h: Ditto.
* platform/text/mac/LocaleMac.mm: Ditto.
2012-10-29 Mike West <mkwst@chromium.org>
Web Inspector: Error messages lines in console are 1px taller than regular messages
https://bugs.webkit.org/show_bug.cgi?id=100521
Reviewed by Pavel Feldman.
The inspector is adding a 1px bottom border to list elements inside
a disclosure list. This is unnecessary in the current layout; it's
causing console messages with stack traces to be one pixel taller than
other console messages, which this patch fixes.
As a drive-by, this patch also adjusts the disclosure triangle's
position to match.
* inspector/front-end/inspector.css:
(.outline-disclosure li):
(.outline-disclosure li.parent::before):
2012-10-29 Mike West <mkwst@chromium.org>
Web Inspector: The bubble for repeated errors is misplaced.
https://bugs.webkit.org/show_bug.cgi?id=100525
Reviewed by Pavel Feldman.
The repeated-message bubble is displayed as an inline-block element,
which works well as long as no stack trace is present. If present, the
message is wrapped in an 'ol' element displayed as a block, which pushes
itself down to the next line.
To avoid that issue, this patch switches the wrapper element to flexbox,
glorious flexbox.
* inspector/front-end/inspector.css:
(.console-message .bubble):
(.repeated-message .outline-disclosure):
(.filter-all .console-log-level.repeated-message, .filter-logs .console-log-level.repeated-message):
2012-10-29 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Styles] Handle non-parsedOk properties as inactive ones
https://bugs.webkit.org/show_bug.cgi?id=100119
Reviewed by Vsevolod Vlasov.
Test: inspector/styles/inactive-properties.html
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.createExclamationMark):
(WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
* inspector/front-end/elementsPanel.css:
(.styles-section.computed-style .properties li.not-parsed-ok):
(.styles-section.computed-style .properties li.not-parsed-ok img.exclamation-mark):
(.styles-section .properties .not-parsed-ok):
2012-10-29 Eric Seidel <eric@webkit.org>
Make rendering tables with <colgroups> twice as fast by avoiding walking the DOM for colgroups 4 times for each cell
https://bugs.webkit.org/show_bug.cgi?id=100630
Reviewed by Ojan Vafai.
This is not a complete fix. Our rendering of this large tables still takes 7.8 seconds
on my retina MBP (down from 14.3s before this change).
It's very expensive to walk the DOM each time we call RenderTable::colElement
so this caches the RenderTableCol* in a vector for easier walking.
We invalidate the cache any time a RenderTableCol is added or removed from the
rendering sub-tree to avoid holding a bad pointer.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable):
(WebCore::RenderTable::invalidateCachedColumns):
(WebCore):
(WebCore::RenderTable::addColumn):
(WebCore::RenderTable::removeColumn):
(WebCore::RenderTable::updateColumnCache):
(WebCore::RenderTable::slowColElement):
* rendering/RenderTable.h:
(RenderTable):
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::insertedIntoTree):
(WebCore):
(WebCore::RenderTableCol::willBeRemovedFromTree):
* rendering/RenderTableCol.h:
2012-10-28 Kent Tamura <tkent@chromium.org>
Rename Localizer.{cpp,h} to PlatformLocale.{cpp,h}
https://bugs.webkit.org/show_bug.cgi?id=100627
Reviewed by Yuta Kitamura.
We'd like to rename Localizer class to Locale class. However we use
PlatformLocale.cpp and PlatformLocale.h as their file names because
<locale.h> exists in the C standard. In this patch, we rename only file
names. We're going to rename the class name later.
No new tests. This doesn't make any behavior change.
* platform/text/PlatformLocale.h: Renamed from Source/WebCore/platform/text/Localizer.h.
* platform/text/PlatformLocale.cpp: Renamed from Source/WebCore/platform/text/Localizer.cpp.
Follow the Localizer.h -> PlatformLocale.cpp renaming.
* CMakeLists.txt: Follow the file name renaming.
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* dom/Document.cpp: Ditto.
* html/BaseDateAndTimeInputType.cpp: Ditto.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
* html/DateInputType.cpp: Ditto.
* html/DateTimeInputType.cpp: Ditto.
* html/DateTimeLocalInputType.cpp: Ditto.
* html/MonthInputType.cpp: Ditto.
* html/NumberInputType.cpp: Ditto.
* html/TimeInputType.cpp: Ditto.
* html/shadow/DateTimeEditElement.cpp: Ditto.
* html/shadow/DateTimeNumericFieldElement.cpp: Ditto.
* page/PagePopupController.cpp: Ditto.
* platform/text/LocaleICU.h: Ditto.
* platform/text/LocaleNone.cpp: Ditto.
* platform/text/LocaleWin.h: Ditto.
* platform/text/mac/LocaleMac.h: Ditto.
2012-10-28 Shinya Kawanaka <shinyak@chromium.org>
The shadow element is not reprojected to a nested ShadowRoot.
https://bugs.webkit.org/show_bug.cgi?id=99228
Reviewed by Dimitri Glazkov.
We support shadow reprojection; elements distributed to <shadow> element can be reprojected to <content> now.
First, we have a distribution vector for each InsertionPoint, even if InsertionPoint is a shadow insertion point.
And we update a node-distribution map. Basically We're creating a map from node to InsertionPoint in ElementShadow.
If a node can be distributed to several InsertionPoint (e.g. in case reprojection happens),
the InsertionPoint in older ShadowDOM is chosen.
We also fix ComposedShadowTreeWalker to consider shadow reprojection.
Tests: fast/dom/shadow/composed-shadow-tree-walker-shadow-reprojection.html
fast/dom/shadow/shadow-reprojection-click.html
fast/dom/shadow/shadow-reprojection-dynamic.html
fast/dom/shadow/shadow-reprojection-fallback.html
fast/dom/shadow/shadow-reprojection.html
fast/dom/shadow/shadow-reprojection2.html
* css/StyleResolver.cpp:
(WebCore::shouldResetStyleInheritance): Now context.insertionPoint() returns the final insertion point where
a node is distributed. So we don't have to trace shadow insertion point anymore here.
(WebCore::StyleResolver::styleForElement): Since a direct child of ShadowRoot can be distributed now. In that case,
we don't have any parentElement. The parent node is a ShadowRoot in that case.
* dom/ComposedShadowTreeWalker.cpp:
(WebCore::nodeCanBeDistributed): If a node can be distributed, returns true.
(WebCore):
(WebCore::resolveReprojection): Resolves content-reprojection and shadow-reprojection both.
(WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
(WebCore::ComposedShadowTreeWalker::traverseParent):
(WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost): A case ShadowRoot is assigned
to some InsertionPoint should be handled with in traverseSiblingOrBackToInsertionPoint. So we remove it.
(WebCore::AncestorChainWalker::parent): Now we have a case that a direct child of ShadowRoot can be distributed.
In that case, we should not update m_distributedNode.
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::insertionPointFor): Since we have a distribution vector for each InsertionPoint,
we don't have a special case that a ShadowRoot is assigned to some InsertionPoint. Actually the existing code
is not correct now due to shadow reprojection.
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::populate): Populate a POOL. If a node is InsertionPoint, we fill it with the
distributed nodes.
(WebCore):
(WebCore::ContentDistributor::distribute): Since we want to make a distribution vector for each InsertionPoint,
we have to resolve a shadow InsertionPoint
(WebCore::ContentDistributor::distributeNodeChildrenTo):
* html/shadow/ContentDistributor.h:
(ContentDistributor):
* html/shadow/HTMLShadowElement.h:
(WebCore::toHTMLShadowElement):
(WebCore):
* html/shadow/InsertionPoint.h:
(WebCore::parentNodeForDistribution):
(WebCore::parentElementForDistribution):
(WebCore):
2012-10-28 Kunihiko Sakamoto <ksakamoto@chromium.org>
Webkit adds a boundary to the Content-Type: text/plain POST header
https://bugs.webkit.org/show_bug.cgi?id=100445
Reviewed by Kent Tamura.
Fixed a bug where an empty boundary parameter was added to Content-Type
header when POSTing forms with enctype=text/plain.
Test: http/tests/misc/form-post-textplain.html
* loader/FormSubmission.cpp:
(WebCore::FormSubmission::populateFrameLoadRequest): Add boundary parameter to
Content-Type only when a boundary string is generated.
2012-10-28 Philip Rogers <pdr@google.com>
Cache calcMode() value for SVG animations.
https://bugs.webkit.org/show_bug.cgi?id=99694
Reviewed by Eric Seidel.
This patch refactors SVGAnimationElement::calcMode() to return a cached value instead
of recalculating its value on every call. On a simple test of 100 rectangles with 100
animations each, calls to calcMode() account for 3% of the total animation. After this
patch, calcMode() no longer appears in animation profiles at all.
No new tests as this functionality is covered by existing tests.
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
The default calcMode for all animation types is linear except AnimateMotion,
which defaults to CalcModePaced.
See: http://www.w3.org/TR/SVG/single-page.html#animate-CalcModeAttribute
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::SVGAnimationElement):
(WebCore::SVGAnimationElement::isSupportedAttribute):
(WebCore::SVGAnimationElement::parseAttribute):
(WebCore::SVGAnimationElement::setCalcMode):
* svg/SVGAnimationElement.h:
(WebCore::SVGAnimationElement::calcMode):
(WebCore::SVGAnimationElement::setCalcMode):
(SVGAnimationElement):
2012-10-28 Dimitri Glazkov <dglazkov@chromium.org>
Get rid of StyleResolver state related to unknown pseudo-elements.
https://bugs.webkit.org/show_bug.cgi?id=100582
Reviewed by Eric Seidel.
All of the state, related to unknown pseudo-elements is already understood at the time of collecting rules.
We can just get rid of most of this code in StyleResolver.
At the time of matching rules, we know for certain that only rules that contain unknown pseudo-elements,
or are UA rules, or are explicitly invited by a TreeScope will match. So we can just return early in many cases.
No change in behavior, covered by existing tests.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkSelector): Removed now-unnecessary param.
(WebCore::SelectorChecker::checkOneSelector): Ditto.
* css/SelectorChecker.h:
(SelectorChecker): Ditto.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver): Ditto.
(MatchingUARulesScope): Moved class definition here, since we now use it in a different place.
(WebCore::StyleResolver::collectMatchingRules): Changed the logic to stop matching rules that definitely won't match in a different scope.
(WebCore::StyleResolver::collectMatchingRulesForList): Removed code that's now unnecesssary.
(WebCore::StyleResolver::checkSelector): Removed now-unnecessary param.
(WebCore::StyleResolver::checkRegionSelector): Removed weird dead code.
* css/StyleResolver.h:
(StyleResolver): Removed now-unnecessary member.
2012-10-28 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r132696.
http://trac.webkit.org/changeset/132696
https://bugs.webkit.org/show_bug.cgi?id=100609
Needs a bit more clean-up on Chrome Web UI side. (Requested by
dglazkov on #webkit).
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetter):
* rendering/RenderListBox.h:
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::updateBeforeAfterContent):
2012-10-27 Alexey Proskuryakov <ap@apple.com>
All tests crash in WebKit1 mode
https://bugs.webkit.org/show_bug.cgi?id=100602
Reviewed by Sam Weinig.
* platform/PlatformStrategies.cpp: (WebCore::setPlatformStrategies): Fix an incorrect
assertion - if this function is called twice, it should be with the same strategy.
2012-10-27 Anders Carlsson <andersca@apple.com>
Fix AVFoundation build.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::addKey):
2012-10-27 David Barton <dbarton@mathscribe.com>
ASSERTION FAILED: m_next in LayoutState.cpp
https://bugs.webkit.org/show_bug.cgi?id=99796
Reviewed by Eric Seidel.
Before RenderMathMLBlock::computeChildrenPreferredLogicalHeights calls child->layoutIfNeeded(),
it must ensure a layoutState exists. We disable it in any case, since we are just calculating
metrics here, and the final layout may well happen again.
No new tests. I don't know how to create an automated test for this. The crashes users are
seeing are flaky.
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
2012-10-27 David Barton <dbarton@mathscribe.com>
[MathML] Improve some addChild methods
https://bugs.webkit.org/show_bug.cgi?id=98791
Reviewed by Eric Seidel.
MathML addChild methods need to handle any anonymous renderers correctly. Actually, most MathML elements have a fixed
number of children, so conformant javascript won't be doing arbitrary addChild and removeChild calls. However, we don't
want any assertions to fail, and we do want addChild to work correctly when beforeChild == 0, to build up the original
renderer, and then replaceChild at least should work correctly after that. We therefore clean up these routines before
giving them to the chromium fuzzers.
It's best to build the anonymous wrappers just once initially if possible, so empty wrappers aren't left in the render
tree after later removeChild calls.
Test: mathml/presentation/dynamic.html added for mfrac and msqrt. There are already tests for dynamically changing
msub/sup elements, in mathml/presentation/m*-changed.xhtml.
* rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::addChild):
- The two wrappers are built initially. Also, the old RenderMathMLBlock::addChild(row, beforeChild); doesn't really
work because beforeChild is buried inside a wrapper. This new routine allows the numerator and denominator to be
added initially, and then later replaced with replaceChild. It's not clear whether e.g. a plain removeChild of a
numerator should move the remaining child from the denominator to the numerator or not, so we ignore that for now.
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::addChild):
- A bit of bullet-proofing for the fuzzers.
* rendering/mathml/RenderMathMLSubSup.cpp:
(WebCore::RenderMathMLSubSup::addChild):
- Like RenderMathMLFraction::addChild, we create the wrappers once initially, and then fill them dynamically.
2012-10-27 Levi Weintraub <leviw@chromium.org>
Background images can incorrectly repeat with sub-pixel layout
https://bugs.webkit.org/show_bug.cgi?id=94622
Reviewed by Emil A Eklund.
Attempting to better match author expectations when painting tiled background images. When under
the effects of zoom with sub-pixel layout enabled, the drawn size of a rendered element can
differ depending on its location. This change looks at the size of the scaled tiled background
image size, and either ceils or floors that value depending on if tiling that value will
result in us being one pixel or less short of covering the background size. This is a heuristic,
as sub-pixel/zooming isn't specced.
Test: fast/sub-pixel/scaled-background-image.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::applySubPixelHeuristicForTileSize):
(WebCore):
(WebCore::RenderBoxModelObject::calculateFillTileSize):
2012-10-27 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r132725.
http://trac.webkit.org/changeset/132725
https://bugs.webkit.org/show_bug.cgi?id=100596
it broke linking on chromium debug bots (Requested by loislo
on #webkit).
* inspector/InspectorMemoryAgent.cpp:
(WebCore::addPlatformComponentsInfo):
(WebCore):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* platform/MemoryUsageSupport.cpp:
(WebCore::MemoryUsageSupport::memoryUsageByComponents):
* platform/MemoryUsageSupport.h:
(ComponentInfo):
(WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
(MemoryUsageSupport):
* platform/PlatformMemoryInstrumentation.cpp:
(WebCore):
* platform/PlatformMemoryInstrumentation.h:
(PlatformMemoryTypes):
* platform/chromium/MemoryUsageSupportChromium.cpp:
(WebCore::MemoryUsageSupport::memoryUsageByComponents):
* platform/qt/MemoryUsageSupportQt.cpp:
(WebCore::MemoryUsageSupport::memoryUsageByComponents):
2012-10-27 Dan Bernstein <mitz@apple.com>
REAL_PLATFORM_NAME build setting is no longer needed
https://bugs.webkit.org/show_bug.cgi?id=100587
Reviewed by Mark Rowe.
Removed the definition of REAL_PLATFORM_NAME and replaced references to it with references
to PLATFORM_NAME.
* Configurations/Base.xcconfig:
* Configurations/CompilerVersion.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:
* Configurations/WebCore.xcconfig:
2012-10-27 Tony Chang <tony@chromium.org>
Remove internals shouldDisplayTrackKind methods; these are also on internals.settings
https://bugs.webkit.org/show_bug.cgi?id=100564
Reviewed by Adam Barth.
Remove duplicate methods from internals that was just forwarding on the call to internals.settings.
Also fix a bug where we didn't reset these settings properly.
No new tests, this is covered by existing media/track tests.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Properly save display track settings.
(WebCore::InternalSettings::Backup::restoreTo): Restore display track settings.
* testing/InternalSettings.h:
* testing/InternalSettings.idl: Use [Conditional=VIDEO_TRACK].
* testing/Internals.cpp: Remove code.
* testing/Internals.h: Remove code.
* testing/Internals.idl: Remove code.
2012-10-26 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: instrument chromium GlyphCache. It keeps ~2mb.
https://bugs.webkit.org/show_bug.cgi?id=100515
Reviewed by Yury Semikhatsky.
I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* platform/MemoryUsageSupport.cpp:
(WebCore::MemoryUsageSupport::reportMemoryUsage):
* platform/MemoryUsageSupport.h:
(MemoryUsageSupport):
* platform/PlatformMemoryInstrumentation.cpp:
(WebCore):
* platform/PlatformMemoryInstrumentation.h:
(PlatformMemoryTypes):
* platform/chromium/MemoryUsageSupportChromium.cpp:
(reportMemoryUsage):
(WebCore::reportGlyphCache):
(WebCore):
(WebCore::MemoryUsageSupport::reportMemoryUsage):
* platform/qt/MemoryUsageSupportQt.cpp:
(WebCore::MemoryUsageSupport::reportMemoryUsage):
2012-10-26 Philip Rogers <pdr@google.com>
Prevent NaN offset values in ElementTimeControl.
https://bugs.webkit.org/show_bug.cgi?id=100322
Reviewed by Abhishek Arya.
NaN values can cause ElementTimeControl to go back in time!
If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
because NaN values are not properly sorted. NaN SMILTime values
should not be allowed at all, so this patch adds a check for them in
ElementTimeControl's setters.
This patch also adds preventative asserts to catch if SMILTime is ever
initialized with NaN, or if addEndTime/addBeginTime are ever called
with NaN values.
Test: svg/custom/elementTimeControl-nan-crash.html
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::beginElementAt):
(WebCore::SVGAnimationElement::endElementAt):
* svg/animation/SMILTime.h:
(WebCore::SMILTime::SMILTime):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::addBeginTime):
(WebCore::SVGSMILElement::addEndTime):
2012-10-26 Charles Wei <charles.wei@torchmobile.com.cn>
[BlackBerry] Browser prematurely sends wrong credentials
https://bugs.webkit.org/show_bug.cgi?id=100585
Reviewed by Yong Li.
Manually revert the patch for bug 96362, which causes regressions and the right patch has been
submitted with patch for bug 100448. Since the auto-revert fails, we use this patch to manually
revert.
No new tests. The test is coverted by patch for 100448.
* platform/network/blackberry/CredentialBackingStore.cpp:
* platform/network/blackberry/CredentialBackingStore.h:
(CredentialBackingStore):
* platform/network/blackberry/NetworkManager.cpp:
(WebCore::NetworkManager::startJob):
2012-10-26 Brady Eidson <beidson@apple.com>
Have NetworkProcess manage resource load scheduling.
https://bugs.webkit.org/show_bug.cgi?id=100479
Reviewed by Alexey Proskuryakov.
Down in WebCore we need to virtualize a handful of ResourceLoadScheduler methods
to be overridden by WebKit's implementation.
No new tests (No change in Core behavior).
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* loader/ResourceLoadScheduler.cpp:
(WebCore::resourceLoadScheduler): Gracefully handle LoaderStrategies wanting to return the default scheduler.
(WebCore::ResourceLoadScheduler::scheduleLoad): Call notifyDidScheduleResourceRequest.
(WebCore::ResourceLoadScheduler::notifyDidScheduleResourceRequest): Moved InspectorInstrumentation call
here so derived classes can do it indirectly.
(WebCore::ResourceLoadScheduler::startResourceLoader): To allow derived classes the ability to call
ResourceLoader::start() which only ResourceLoadScheduler can do.
* loader/ResourceLoadScheduler.h:
(ResourceLoadScheduler): Virtualize some core public methods so they can be overridden.
(WebCore::ResourceLoadScheduler::setSerialLoadingEnabled): Make virtual.
(WebCore::ResourceLoadScheduler::isSuspendingPendingRequests): Make private as it's internal only.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::setIdentifier): Add this setter so outside clients can manually change the identifier.
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::identifier): Change identifier to explicitly be uint64_t.
(WebCore::ResourceLoader::request): Make public.
(ResourceLoader):
2012-10-26 Chris Rogers <crogers@google.com>
Implement AudioBufferSourceNode .loopStart and .loopEnd attributes
https://bugs.webkit.org/show_bug.cgi?id=100170
Reviewed by Kenneth Russell.
AudioBufferSourceNode currently only supports looping of an entire AudioBuffer.
Sample-based synthesis is a very common technique which requires "internal" loop-points.
For example, the first part of the sample data might represent the attack portion of
a synthesized instrument, which then enters a loop portion.
Tests: webaudio/audiobuffersource-loop-comprehensive.html
webaudio/audiobuffersource-loop-points.html
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
(WebCore::AudioBufferSourceNode::process):
(WebCore::AudioBufferSourceNode::renderFromBuffer):
* Modules/webaudio/AudioBufferSourceNode.h:
(AudioBufferSourceNode):
(WebCore::AudioBufferSourceNode::loopStart):
(WebCore::AudioBufferSourceNode::loopEnd):
(WebCore::AudioBufferSourceNode::setLoopStart):
(WebCore::AudioBufferSourceNode::setLoopEnd):
* Modules/webaudio/AudioBufferSourceNode.idl:
2012-10-26 Daniel Cheng <dcheng@chromium.org>
dragover's default action should prevent drop for file drags
https://bugs.webkit.org/show_bug.cgi?id=79173
Reviewed by Tony Chang.
During a file drag, we need to keep track of whether or not the document has cancelled the
dragover action. We should only send a drop event if the dragover event was cancelled; this
matches the behavior of the spec, as well as IE, Gecko, and Opera. The relevant sections
from the spec are the sections pertaining to dragover and drop events at:
http://www.whatwg.org/specs/web-apps/current-work/#drag-and-drop-processing-model
Test: fast/events/only-valid-drop-targets-receive-file-drop.html
* page/DragController.cpp:
(WebCore::DragController::performDrag):
(WebCore::DragController::dragEnteredOrUpdated):
(WebCore::DragController::tryDocumentDrag):
* page/DragController.h:
(DragController): Cleanup to repurpose a variable that doesn't need to be a member anymore
and remove the corresponding getter/setter.
2012-10-26 Nico Weber <thakis@chromium.org>
Fix a operator ordering bug in SVGSMILElement::calculateAnimationPercentAndRepeat
https://bugs.webkit.org/show_bug.cgi?id=94756
Reviewed by Dirk Schulze.
The function has an early exit for !simpleDuration.value(), so
!simpleDuration.value() always is 0 when passed as second parameter to
fmod(), which means fmod() always returns NaN, which always evaluates
to true. Simplify the code by removing that explicit check.
No observable behavior change.
Covered by existing svg tests.
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):
2012-10-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r132695.
http://trac.webkit.org/changeset/132695
https://bugs.webkit.org/show_bug.cgi?id=100581
caused 20+ test crashes on bots (Requested by estes on
#webkit).
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::suspendPostAttachCallbacks):
(WebCore::ContainerNode::resumePostAttachCallbacks):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::loadNow):
* loader/ResourceLoadScheduler.cpp:
(WebCore::resourceLoadScheduler):
* loader/ResourceLoadScheduler.h:
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::releaseResources):
(WebCore::ResourceLoader::willSendRequest):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::performPostLoadActions):
2012-10-26 Vincent Scheib <scheib@chromium.org>
Unreviewed, rolling out r132702.
http://trac.webkit.org/changeset/132702
https://bugs.webkit.org/show_bug.cgi?id=100322
Compile error on Chromium Linux dbg builder (and others)
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::beginElementAt):
(WebCore::SVGAnimationElement::endElementAt):
* svg/animation/SMILTime.h:
(WebCore::SMILTime::SMILTime):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::addBeginTime):
(WebCore::SVGSMILElement::addEndTime):
2012-10-26 Philip Rogers <pdr@google.com>
Prevent NaN offset values in ElementTimeControl.
https://bugs.webkit.org/show_bug.cgi?id=100322
Reviewed by Abhishek Arya.
NaN values can cause ElementTimeControl to go back in time!
If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
because NaN values are not properly sorted. NaN SMILTime values
should not be allowed at all, so this patch adds a check for them in
ElementTimeControl's setters.
This patch also adds preventative asserts to catch if SMILTime is ever
initialized with NaN, or if addEndTime/addBeginTime are ever called
with NaN values.
Test: svg/custom/elementTimeControl-nan-crash.html
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::beginElementAt):
(WebCore::SVGAnimationElement::endElementAt):
* svg/animation/SMILTime.h:
(WebCore::SMILTime::SMILTime):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::addBeginTime):
(WebCore::SVGSMILElement::addEndTime):
2012-10-26 Tony Chang <tony@chromium.org>
Move non-Settings Inspector methods from internals.settings to internals
https://bugs.webkit.org/show_bug.cgi?id=100392
Reviewed by Adam Barth.
These methods don't have to do with the WebCore Settings object, so move them up to internals.
I moved the reset code from InternalSettings to Internals.
No new tests, this is just a rename. Existing tests should pass.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Remove inspector methods.
(WebCore::InternalSettings::Backup::restoreTo): Remove inspector methods.
* testing/InternalSettings.h:
* testing/InternalSettings.idl:
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState): New method for resetting page state. Named after similar
methods in WTR.
(WebCore::Internals::setInspectorResourcesDataSizeLimits): Moved from InspectorSettings.
(WebCore::Internals::setJavaScriptProfilingEnabled): Moved from InspectorSettings.
* testing/Internals.h:
* testing/Internals.idl:
* testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
* testing/v8/WebCoreTestSupport.cpp:
(WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
2012-10-26 Dominic Mazzoni <dmazzoni@google.com>
AX: Notification should be sent when accessibilityIsIgnored changes
https://bugs.webkit.org/show_bug.cgi?id=99547
Reviewed by Chris Fleizach.
Adds a new flag in AccessibilityObject that keeps track of the most recent
value of accessibilityIsIgnored(). After certain events such as an ARIA
attribute change or content change, checks the new value of
accessibilityIsIgnored() and posts a "children changed" notification on the
parent node if it changed, making sure the parent recomputes its vector of
(unignored) children.
Also moves handling of attribute changes to AXObjectCache, and sends
notifications for some attribute changes that were previously silent. On
Chromium, all changes to an accessibility object's attributes should
result in some notification.
Some tests would have broken because an AccessibilityScrollView was created
and holding a reference to a ScrollView for an iframe after it was deleted,
so this change switches AccessibilityScrollView to hold a weak reference
to ScrollView instead.
Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
platform/chromium/accessibility/text-change-notification.html
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::focusedUIElementForPage):
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::textChanged):
(WebCore):
(WebCore::AXObjectCache::childrenChanged):
(WebCore::AXObjectCache::handleAriaRoleChanged):
(WebCore::AXObjectCache::handleAttributeChanged):
(WebCore::AXObjectCache::labelChanged):
(WebCore::AXObjectCache::recomputeIsIgnored):
* accessibility/AXObjectCache.h:
(AXObjectCache):
(WebCore::AXObjectCache::childrenChanged):
(WebCore::AXObjectCache::textChanged):
(WebCore::AXObjectCache::handleAttributeChanged):
(WebCore::AXObjectCache::recomputeIsIgnored):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::insertChild):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::AccessibilityObject):
(WebCore::AccessibilityObject::cachedIsIgnoredValue):
(WebCore):
(WebCore::AccessibilityObject::setCachedIsIgnoredValue):
(WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::textChanged):
(AccessibilityObject):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
(WebCore::AccessibilityRenderObject::textChanged):
(WebCore::AccessibilityRenderObject::addHiddenChildren):
(WebCore::AccessibilityRenderObject::addChildren):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::~AccessibilityScrollView):
(WebCore):
(WebCore::AccessibilityScrollView::detach):
(WebCore::AccessibilityScrollView::isAttachment):
(WebCore::AccessibilityScrollView::widgetForAttachmentView):
(WebCore::AccessibilityScrollView::updateScrollbars):
(WebCore::AccessibilityScrollView::webAreaObject):
(WebCore::AccessibilityScrollView::elementRect):
(WebCore::AccessibilityScrollView::documentFrameView):
(WebCore::AccessibilityScrollView::parentObject):
(WebCore::AccessibilityScrollView::parentObjectIfExists):
(WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
(WebCore::AccessibilityScrollView::scrollTo):
* accessibility/AccessibilityScrollView.h:
(WebCore::AccessibilityScrollView::scrollView):
(AccessibilityScrollView):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isDataTable):
* accessibility/chromium/AXObjectCacheChromium.cpp:
(WebCore::AXObjectCache::postPlatformNotification):
* dom/Element.cpp:
(WebCore::Element::attributeChanged):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::deleteLineBoxTree):
(WebCore::RenderBlock::createAndAppendRootInlineBox):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
* rendering/RenderText.cpp:
(WebCore::RenderText::setText):
2012-10-26 Joshua Bell <jsbell@chromium.org>
[WebKitIDL] Optional dictionary types should have default values of empty dictionary
https://bugs.webkit.org/show_bug.cgi?id=100547
Reviewed by Adam Barth.
Per WebIDL, "Optional dictionary type arguments are always considered to have a default
value of an empty dictionary." WebKitIDL already supported this via the extended attribute
[Optional=DefaultIsUndefined] but make this the default for Dictionary.
Binding test expectations updated.
* Modules/filesystem/DirectoryEntry.h: Remove default parameters.
(DirectoryEntry):
* Modules/indexeddb/IDBDatabase.h: Remove overloads.
(IDBDatabase):
* Modules/indexeddb/IDBObjectStore.h: Remove overloads.
(IDBObjectStore):
* Modules/mediastream/RTCPeerConnection.idl: Remove DefaultIsUndefined annotations.
* bindings/scripts/CodeGeneratorJS.pm: Special case for Optional Dictionary.
(GenerateParametersCheck):
* bindings/scripts/CodeGeneratorV8.pm: Ditto.
(GenerateParametersCheck):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionOptionsObject): Updated expectation - no early call.
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::optionsObjectCallback): Ditto.
2012-10-26 Vincent Scheib <scheib@chromium.org>
Generated should not be supported for things with a shadow
https://bugs.webkit.org/show_bug.cgi?id=98836
Unreviewed rollout of rollout of http://trac.webkit.org/changeset/132269.
Initial rollout was speculative and was shown not to be related to crashes.
Change author: Elliott Sprehn <esprehn@chromium.org>
As far as CSS is concerned inputs and things with shadow content inside
shouldn't support pseudo elements like :before, :after or :first-letter.
Neither Gecko or Presto supports it, and we only accidentally supported
it.
Until the spec tells us what to do we should disable support. This is
also neccesary because the new generated content implementation doesn't
support shadows.
Test: fast/forms/pseudo-elements.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetter):
* rendering/RenderListBox.h:
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::updateBeforeAfterContent):
2012-10-26 Brady Eidson <beidson@apple.com>
Crash in WebProces at WebCore::ResourceLoadScheduler::crossOriginRedirectReceived + 78
<rdar://problem/12575514> and https://bugs.webkit.org/show_bug.cgi?id=100554
Reviewed by Alexey Proskuryakov.
This was fallout from http://trac.webkit.org/changeset/132501 where I missed some of the
spots that call resourceLoadScheduler().
As a result we were creating more than one ResourceLoadScheduler, allowing the host records
to get out of sync.
The fix that also results in less #ifdefs scattered throughout the code is to use a single
choke point for all ResourceLoadScheduler access.
No new tests
(No change of behavior for the default config, not testable at this time in the repro config)
Add a single choke point for accessing the correct ResourceLoadScheduler:
* loader/ResourceLoadScheduler.cpp:
(WebCore::defaultResourceLoadScheduler): New private function that keeps the singleton default ResourceLoadScheduler.
(WebCore::resourceLoadScheduler): Refactor this function to either ask the LoaderStrategy or call through to
Revert back to using that single choke point everywhere:
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::suspendPostAttachCallbacks):
(WebCore::ContainerNode::resumePostAttachCallbacks):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::loadNow):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::releaseResources):
(WebCore::ResourceLoader::willSendRequest):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::performPostLoadActions):
2012-10-26 Elliott Sprehn <esprehn@chromium.org>
Try to fix the windows build
https://bugs.webkit.org/show_bug.cgi?id=100556
Reviewed by Eric Seidel.
Touch files by adding whitespace to try and make the windows
build bot regenerate files.
No new tests, just kick the bot.
* dom/DOMAllInOne.cpp:
* html/HTMLElementsAllInOne.cpp:
* html/shadow/TextControlInnerElements.cpp:
2012-10-26 Rob Buis <rbuis@rim.com>
[BlackBerry] Platform Abstraction for WebKit Resource/Image Loading
https://bugs.webkit.org/show_bug.cgi?id=100518
PR 231732
Reviewed by Yong Li.
Use the new resource/image loading abstraction ResourceStore.
* platform/graphics/blackberry/ImageBlackBerry.cpp:
(WebCore::Image::loadPlatformResource):
2012-10-26 Bear Travis <betravis@adobe.com>
[CSS Exclusions] Block children have incorrect offset when shape-inside element lays out below other elements
https://bugs.webkit.org/show_bug.cgi?id=98189
Reviewed by Dirk Schulze.
The initial code assumed that each block created a new layout state, such that
LayoutState::layoutOffset would be specific to each block child of a shape-inside.
Typically, however, block children of a shape-inside do not create a new layout state,
and therefore we use the current element's offset instead.
Test: fast/exclusions/shape-inside/shape-inside-subsequent-blocks.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange): Modified to use only logicalTop
rather than LayoutState::layoutOffset::width/height and logicalTop.
2012-10-26 Elliott Sprehn <esprehn@chromium.org>
Remove setRenderStyle in favor of callbacks on HTMLOptionElement and HTMLOptGroupElement
https://bugs.webkit.org/show_bug.cgi?id=100397
Reviewed by Ojan Vafai.
Use Node custom callbacks to support the non-renderer style caching for option
and optgroup eliminating the need for setRenderStyle.
setRenderStyle only existed to support HTMLOptionElement and HTMLOptGroupElement
so they could store their RenderStyle even though they have no renderer. This
means all style setting went through the virtual call to setRenderStyle, and it
also hid the if statement protecting against null renderers meaning we end up
checking if the renderer is null repeatedly in recalcStyle. This refactor cleans
up recalcStyle to be more clear about what's going on.
No new tests needed, this is just a refactor.
* dom/Element.cpp:
(WebCore::Element::pseudoStyleCacheIsInvalid):
(WebCore::Element::recalcStyle):
* dom/Node.cpp:
(WebCore::Node::createRenderer):
(WebCore::Node::setRenderStyle):
Removed this method because it was only here to support HTMLOptionElement
and HTMLOptGroupElement. Instead we can use node custom callbacks.
* dom/Node.h:
(WebCore::Node::nonRendererStyle): Renamed from nonRendererRenderStyle to match other style methods.
* dom/NodeRenderStyle.h:
(WebCore::Node::renderStyle):
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
(WebCore::HTMLOptGroupElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
(WebCore::HTMLOptGroupElement::updateNonRenderStyle): Updates the cached non-renderer style.
(WebCore::HTMLOptGroupElement::nonRendererStyle):
(WebCore::HTMLOptGroupElement::customStyleForRenderer):
* html/HTMLOptGroupElement.h:
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::HTMLOptionElement):
(WebCore::HTMLOptionElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
(WebCore::HTMLOptionElement::updateNonRenderStyle): Updates the cached non-renderer style.
(WebCore::HTMLOptionElement::nonRendererStyle):
(WebCore::HTMLOptionElement::customStyleForRenderer):
(WebCore::HTMLOptionElement::didRecalcStyle): Requests the repaint of the select like setRenderStyle used to.
* html/HTMLOptionElement.h:
2012-10-26 Dirk Schulze <krit@webkit.org>
-webkit-clip-path property should just reference clipPath
https://bugs.webkit.org/show_bug.cgi?id=100531
Reviewed by Eric Seidel.
The -webkit-clip-path property should just reference clipPath. Added a check for that.
Test: css3/masking/clip-path-reference-of-fake-clipPath.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents):
2012-10-26 Aaron Colwell <acolwell@chromium.org>
Remove the circular reference between TextTrack and TextTrackCue
https://bugs.webkit.org/show_bug.cgi?id=100300
Reviewed by Eric Carlson.
Changed TextTrackCue.m_track to a normal pointer to break the circular
reference that was keeping both objects from ever getting deleted.
No new tests. This simply fixes a memory leak.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::~TextTrack):
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::TextTrackCue):
(WebCore::TextTrackCue::~TextTrackCue):
(WebCore::TextTrackCue::track):
(WebCore::TextTrackCue::setTrack):
* html/track/TextTrackCue.h:
(TextTrackCue):
2012-10-26 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Breakpoints are not managed correctly when editing uiSourceCode that was bound to ScriptFile after JavaScriptSourceFrame creation.
https://bugs.webkit.org/show_bug.cgi?id=100535
Reviewed by Pavel Feldman.
Added SourceMappingChanged event to UISourceCode and made
JavaScriptSourceFrame update ScriptFile events listeners on it.
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame):
(WebInspector.JavaScriptSourceFrame.prototype._onSourceMappingChanged):
(WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.setSourceMapping):
2012-10-26 Vincent Scheib <scheib@chromium.org>
Unreviewed, rolling out r132644.
http://trac.webkit.org/changeset/132644
https://bugs.webkit.org/show_bug.cgi?id=100497
Causes webkit_unit_tests
MemoryInstrumentationTest.ImageObserver to fail.
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::reportMemoryUsage):
* platform/network/ResourceRequestBase.h:
(ResourceRequestBase):
* platform/network/chromium/ResourceRequest.cpp:
* platform/network/chromium/ResourceRequest.h:
2012-10-26 Zeno Albisser <zeno@webkit.org>
[Qt] MiniBrowser segfaults on exit after using WebGL.
https://bugs.webkit.org/show_bug.cgi?id=100523
The display connection must not be closed before
destroying the offscreen window.
Therefore opening the connection is moved to the
getXWindow() function. And closing the connection
is being moved to the destructor of the offscreen window.
Reviewed by Kenneth Rohde Christiansen.
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore::OffScreenRootWindow::OffScreenRootWindow):
(WebCore::OffScreenRootWindow::getXWindow):
(OffScreenRootWindow):
(WebCore::OffScreenRootWindow::display):
(WebCore::OffScreenRootWindow::~OffScreenRootWindow):
(WebCore):
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createSurface):
2012-10-26 Parth Patel <parpatel@rim.com>
[BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
Generic ThreadUnsafe Singleton
https://bugs.webkit.org/show_bug.cgi?id=100529
Reviewed by Yong Li.
No new tests added as there was no behavioural change.
* platform/network/blackberry/NetworkManager.cpp:
(WebCore):
* platform/network/blackberry/NetworkManager.h:
(NetworkManager):
2012-10-26 Mike West <mkwst@chromium.org>
Web Inspector: Fix log-type icon alignment.
https://bugs.webkit.org/show_bug.cgi?id=100520
Reviewed by Yury Semikhatsky.
The icons are just a pixel or two off, and it's driving me nuts.
* inspector/front-end/inspector.css:
(.console-message::before, .console-user-command::before, #console-prompt::before, .console-group-title::before):
(.console-warning-level::before):
2012-10-26 Erik Arvidsson <arv@chromium.org>
Replaceable attributes should also have readonly
https://bugs.webkit.org/show_bug.cgi?id=91768
Reviewed by Adam Barth.
This updates the code generators for JSC and V8 to handle this case correctly.
* Modules/intents/DOMWindowIntents.idl:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/V8/V8TestObj.cpp:
* page/DOMWindow.idl:
* workers/WorkerContext.idl:
2012-10-26 Nico Weber <thakis@chromium.org>
Clear m_orientation in FrameData::clear() for skia
https://bugs.webkit.org/show_bug.cgi?id=100456
Reviewed by Stephen White.
clear() is only called by the FrameData destructor and for multi-image
images in BitmapImage::destroyDecodedData(). Multi-frame images don't
have exif data, so this patch should have no effect in practice. It
makes the skia code match the CG code in BitmapImageCG.cpp though.
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::FrameData::clear):
2012-10-26 Florin Malita <fmalita@chromium.org>
Crash on loading SVG filter resource on HTML element
https://bugs.webkit.org/show_bug.cgi?id=100491
Reviewed by Dirk Schulze.
Skip non-filter elements referenced via -webkit-filter.
Test: svg/filters/filter-reference-crash.html
* rendering/RenderLayerFilterInfo.cpp:
(WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
2012-10-26 Antti Koivisto <antti@apple.com>
Lots of time spent under DNSResolveQueue::platformProxyIsEnabledInSystemPreferences
https://bugs.webkit.org/show_bug.cgi?id=100514
Reviewed by Anders Carlsson.
DNSResolveQueue::platformProxyIsEnabledInSystemPreferences gets called for every link in
the document. The function is relatively slow.
This patch caches the result of the last check for 5 seconds. Based on code comments
prefetching is disabled with proxies due to regressing performance with some configurations.
Proxy status changes rarely and a slight reaction delay shoudn't cause practical problems.
* platform/network/DNSResolveQueue.cpp:
(WebCore::DNSResolveQueue::DNSResolveQueue):
Add constructor. Also fixes a bug, m_requestsInFlight was not initialized.
(WebCore):
(WebCore::DNSResolveQueue::isUsingProxy):
(WebCore::DNSResolveQueue::add):
(WebCore::DNSResolveQueue::fired):
* platform/network/DNSResolveQueue.h:
(DNSResolveQueue):
2012-10-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r132662.
http://trac.webkit.org/changeset/132662
https://bugs.webkit.org/show_bug.cgi?id=100528
It is not necessary any more. (Requested by loislo on
#webkit).
* platform/qt/MemoryUsageSupportQt.cpp:
(WebCore::MemoryUsageSupport::memoryUsageByComponents):
(WebCore):
2012-10-26 Ilya Tikhonovsky <loislo@chromium.org>
Unreviewed build fix for Qt builders.
* platform/qt/MemoryUsageSupportQt.cpp:
2012-10-26 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed, rolling out r132658.
http://trac.webkit.org/changeset/132658
https://bugs.webkit.org/show_bug.cgi?id=100515
It broke the Qt build
* inspector/InspectorMemoryAgent.cpp:
(WebCore::addPlatformComponentsInfo):
(WebCore):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* platform/MemoryUsageSupport.cpp:
(WebCore::MemoryUsageSupport::memoryUsageByComponents):
* platform/MemoryUsageSupport.h:
(ComponentInfo):
(WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
(MemoryUsageSupport):
* platform/PlatformMemoryInstrumentation.cpp:
(WebCore):
* platform/PlatformMemoryInstrumentation.h:
(PlatformMemoryTypes):
* platform/chromium/MemoryUsageSupportChromium.cpp:
(WebCore::MemoryUsageSupport::memoryUsageByComponents):
2012-10-26 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Some context menu items are duplicated on Resources and Sources panels.
https://bugs.webkit.org/show_bug.cgi?id=100522
Reviewed by Pavel Feldman.
Method appendApplicableItems now receives event as a parameter.
HandlerRegistry now makes sure that it is not called more than once for certain context menu event.
* inspector/front-end/BreakpointsSidebarPane.js:
(WebInspector.JavaScriptBreakpointsSidebarPane.prototype._emptyElementContextMenu):
(WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu):
(WebInspector.XHRBreakpointsSidebarPane.prototype._emptyElementContextMenu):
(WebInspector.XHRBreakpointsSidebarPane.prototype._contextMenu):
* inspector/front-end/CallStackSidebarPane.js:
(WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
* inspector/front-end/ConsoleView.js:
* inspector/front-end/ContextMenu.js:
(WebInspector.ContextMenu):
(WebInspector.ContextMenu.prototype.show):
(WebInspector.ContextMenu.prototype.appendApplicableItems):
(WebInspector.ContextMenu.Provider.prototype.appendApplicableItems):
* inspector/front-end/CookieItemsView.js:
(WebInspector.CookieItemsView.prototype._contextMenu):
* inspector/front-end/DOMBreakpointsSidebarPane.js:
(WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu):
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid.prototype._contextMenuInDataTable):
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype._contextMenu):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
* inspector/front-end/ElementsPanelDescriptor.js:
(WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
* inspector/front-end/HandlerRegistry.js:
(WebInspector.HandlerRegistry.prototype.appendApplicableItems):
* inspector/front-end/ImageView.js:
(WebInspector.ImageView.prototype._contextMenu):
* inspector/front-end/NavigatorView.js:
(WebInspector.NavigatorView.prototype.handleContextMenu):
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._contextMenu):
* inspector/front-end/NetworkPanelDescriptor.js:
(WebInspector.NetworkPanelDescriptor.prototype.appendApplicableItems):
* inspector/front-end/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertiesSection.prototype._contextMenuEventFired):
(WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
(WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.FrameResourceTreeElement.prototype._handleContextMenuEvent):
(WebInspector.IndexedDBTreeElement.prototype._handleContextMenuEvent):
(WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
(WebInspector.IDBDatabaseTreeElement.prototype._handleContextMenuEvent):
* inspector/front-end/ScriptsNavigator.js:
(WebInspector.SnippetsNavigatorView.prototype.handleContextMenu):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.appendApplicableItems):
* inspector/front-end/ScriptsPanelDescriptor.js:
(WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype._contextMenuEventFired):
* inspector/front-end/TabbedPane.js:
(WebInspector.TabbedPaneTab.prototype._tabContextMenu):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._contextMenu):
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionsSection.prototype._emptyElementContextMenu):
(WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
2012-10-26 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: instrument chromium GlyphCache. It keeps ~2mb data on gmail.
https://bugs.webkit.org/show_bug.cgi?id=100515
Reviewed by Yury Semikhatsky.
I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* platform/MemoryUsageSupport.cpp:
(WebCore::MemoryUsageSupport::reportMemoryUsage):
* platform/MemoryUsageSupport.h:
(MemoryUsageSupport):
* platform/PlatformMemoryInstrumentation.cpp:
(WebCore):
* platform/PlatformMemoryInstrumentation.h:
(PlatformMemoryTypes):
* platform/chromium/MemoryUsageSupportChromium.cpp:
(reportMemoryUsage):
(WebCore::reportGlyphCache):
(WebCore):
(WebCore::MemoryUsageSupport::reportMemoryUsage):
2012-10-26 Kent Tamura <tkent@chromium.org>
[Chromium] Build fix for r132650.
https://bugs.webkit.org/show_bug.cgi?id=100482
* platform/text/LocaleWin.cpp:
(WebCore::LocaleWin::timeFormat):
2012-10-26 Yury Semikhatsky <yurys@chromium.org>
[v8] Memory instrumentation: don't count memory of WrapperTypeInfo
https://bugs.webkit.org/show_bug.cgi?id=100517
Reviewed by Alexander Pavlov.
* bindings/v8/V8PerIsolateData.cpp: when estimating bindings memory size skip
pointers to WrapperTypeInfo objects as they are static fields and belong to
the data segment.
(WTF):
2012-10-26 Kent Tamura <tkent@chromium.org>
Refactor Localizer-related classes.
https://bugs.webkit.org/show_bug.cgi?id=100482
Reviewed by Kentaro Hara.
- Localizer has unused code
Localizer should have function implementations only if they are used in
multiple subclasses.
- Some Localizer subclasses hide Localizer data members
- Should use String::isNull to check initialization-or-not
No new tests. This should not change any behavior.
* platform/text/Localizer.h:
(Localizer):
- timeFormat, shortTimeFormat, and timeAMPMLabels should be pure virtual.
- Remove m_localizedDateFormatText, m_localizedShortTimeFormatText, and
m_timeAMPMLabels
* platform/text/Localizer.cpp:
Remove implementations of timeFormat, shortTimeFormat, and timeAMPMLabels.
* platform/text/LocaleICU.h:
(LocaleICU): Introduce m_timeFormatWithSeconds and m_timeFormatWithoutSeconds.
* platform/text/LocaleICU.cpp:
(WebCore::LocaleICU::initializeDateTimeFormat):
Use new data members instead of Localizer data members.
(WebCore::LocaleICU::dateFormat): Use isNull.
* platform/text/LocaleNone.cpp:
(LocaleNone): Add timeFormat, shortTimeFormat, timeAMPMLabels
implementations, and m_timeAMPMLabels.
(WebCore::LocaleNone::timeFormat): Returns the HTML time format.
(WebCore::LocaleNone::shortTimeFormat): Returns the HTML time format.
(WebCore::LocaleNone::timeAMPMLabels): Returns "AM" and "PM".
* platform/text/LocaleWin.h:
(LocaleWin): Add m_timeFormatWithSeconds.
* platform/text/LocaleWin.cpp:
(WebCore::LocaleWin::dateFormat): Use isNull.
(WebCore::LocaleWin::timeFormat): Use m_timeFormatWithSeconds.
* platform/text/mac/LocaleMac.h:
(LocaleMac): Rename m_localized*TimeFormatText to m_timeFormatWith*Seconds.
* platform/text/mac/LocaleMac.mm:
(WebCore::LocaleMac::timeFormat): Follow the renaming.
(WebCore::LocaleMac::shortTimeFormat): Ditto.
2012-10-26 Kent Tamura <tkent@chromium.org>
Crash in PagePopupController by events after WebPagePopupImpl::closePopup
https://bugs.webkit.org/show_bug.cgi?id=100454
Reviewed by Hajime Morita.
No new tests. The bug is timing-dependent.
* page/DOMWindowPagePopup.cpp:
(WebCore::DOMWindowPagePopup::~DOMWindowPagePopup):
Calls clearPagePopupClient for the associalated PagePopupController object.
* page/PagePopupController.cpp:
(WebCore::PagePopupController::setValueAndClosePopup):
Do nothing if m_popupClient is 0.
(WebCore::PagePopupController::localizeNumberString): Ditto.
(WebCore::PagePopupController::clearPagePopupClient): Added.
* page/PagePopupController.h:
(PagePopupController): Declare clearPagePopupClient.
2012-10-25 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Bring device geolocation and orientation emulation from behind the experiment
https://bugs.webkit.org/show_bug.cgi?id=100220
Reviewed by Yury Semikhatsky.
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/SettingsScreen.js:
(WebInspector.UserAgentSettingsTab):
2012-10-26 Yury Semikhatsky <yurys@chromium.org>
Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
https://bugs.webkit.org/show_bug.cgi?id=100497
Reviewed by Alexander Pavlov.
Added memory reporting method to Chromium implementation of ResourceRequest.
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
rather make ResourceRequestBase::reportMemoryUsage virtual and override it
in the descendant but ResourceRequestBase doesn't have any virtual methods
and shouldn't be used directly (ResourceRequest should be used instead).
* platform/network/ResourceRequestBase.h:
(ResourceRequestBase):
* platform/network/chromium/ResourceRequest.cpp:
(WebCore::ResourceRequest::reportMemoryUsage):
(WebCore):
* platform/network/chromium/ResourceRequest.h:
(ResourceRequest):
2012-10-26 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Remove the on-hover highlighting of console messages
https://bugs.webkit.org/show_bug.cgi?id=100511
Reviewed by Pavel Feldman.
This clashes with the hovered element highlight in console messages.
* inspector/front-end/inspector.css:
(ol.watch-expressions > li.hovered):
2012-10-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r132612.
http://trac.webkit.org/changeset/132612
https://bugs.webkit.org/show_bug.cgi?id=100512
Crashes fast/events/tabindex-focus-blur-all.html in debug mode
(Requested by pfeldman on #webkit).
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::calcWidthArray):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::styleDidChange):
(WebCore::RenderTableCol::updateFromElement):
(WebCore::RenderTableCol::computePreferredLogicalWidths):
* rendering/RenderTableCol.h:
(RenderTableCol):
2012-10-26 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: fast return upon setting the same dock side.
https://bugs.webkit.org/show_bug.cgi?id=100510
Reviewed by Vsevolod Vlasov.
Added fast return.
* inspector/front-end/DockController.js:
2012-10-26 Simon Hausmann <simon.hausmann@digia.com>
Unreviewed trivial build fix: It's glXGetCurrentContext not glxGetCurrentContext :)
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
2012-10-26 Kenneth Rohde Christiansen <kenneth@webkit.org>
Printing should use use high resolution images when available
https://bugs.webkit.org/show_bug.cgi?id=100488
Reviewed by Antti Koivisto.
The images loaded using -webkit-device-pixel-ratio depends on
the display type (deviceScaleFactor) and thus affects which
images are being used for printing. Printing should always
use the higher resolution images (aka 'retina' images).
Test: fast/media/mq-pixel-ratio-print.html
* css/MediaQueryEvaluator.cpp:
(WebCore::device_pixel_ratioMediaFeatureEval):
2012-10-26 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: NMI instrument InspectorResourceAgent. it caches resources for the front-end.
https://bugs.webkit.org/show_bug.cgi?id=100496
Reviewed by Yury Semikhatsky.
It is plain instrumentation for InspectorResourceAgent and NetworkResourceData which is used by the agent.
* dom/WebCoreMemoryInstrumentation.cpp:
(WebCore):
* dom/WebCoreMemoryInstrumentation.h:
(WebCoreMemoryTypes):
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::reportMemoryUsage):
(WebCore):
* inspector/InspectorResourceAgent.h:
(InspectorResourceAgent):
* inspector/NetworkResourcesData.cpp:
(WebCore::XHRReplayData::reportMemoryUsage):
(WebCore):
(WebCore::NetworkResourcesData::ResourceData::reportMemoryUsage):
(WebCore::NetworkResourcesData::reportMemoryUsage):
* inspector/NetworkResourcesData.h:
(XHRReplayData):
(ResourceData):
(NetworkResourcesData):
2012-10-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r132493.
http://trac.webkit.org/changeset/132493
https://bugs.webkit.org/show_bug.cgi?id=100509
It didn't fix the tests on the bot as we had hoped. (Requested
by drott on #webkit).
* platform/network/cf/ResourceErrorCF.cpp:
(WebCore::ResourceError::ResourceError):
2012-10-26 Zeno Albisser <zeno@webkit.org>
[Qt] Temporarily disable use of QXcbNativeInterface in GraphicsSurfaceGLX.
https://bugs.webkit.org/show_bug.cgi?id=100493
Once QXcbNativeInterface::nativeResourceForContext() can provide the
GLXContext for an existing QOpenGLContext, this patch shall be reverted.
Reviewed by Simon Hausmann.
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
2012-10-26 Zeno Albisser <zeno@webkit.org>
[Qt] Remove QOpenGL specific code from GraphicsSurfaceGLX.
https://bugs.webkit.org/show_bug.cgi?id=100492
This patch removes most of the QOpenGLContext related code
from GraphicsSurfaceGLX. This allows sharing almost all
GraphicsSurfaceGLX code with EFL, by relying on pure GLX.
Reviewed by Kenneth Rohde Christiansen.
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore::OffScreenRootWindow::get):
(WebCore::OffScreenRootWindow::~OffScreenRootWindow):
(OffScreenRootWindow):
(WebCore):
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createSurface):
(WebCore::GraphicsSurfacePrivate::makeCurrent):
(WebCore::GraphicsSurfacePrivate::doneCurrent):
(WebCore::GraphicsSurfacePrivate::swapBuffers):
(WebCore::GraphicsSurfacePrivate::copyFromTexture):
(GraphicsSurfacePrivate):
(WebCore::resolveGLMethods):
2012-10-26 Regina Chung <heejin.r.chung@samsung.com>
[EFL][WK2] Enable WebGL
https://bugs.webkit.org/show_bug.cgi?id=97652
Reviewed by Gyuyoung Kim.
Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
Depends on GLX since Evas doesn't provide the necessary functionality.
No new tests. Covered by existing tests.
* PlatformEfl.cmake:
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::createGraphicsSurfaces):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
(WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
(WebCore):
(WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
(WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
(WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
* platform/graphics/efl/GraphicsContext3DPrivate.h:
(GraphicsContext3DPrivate):
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::reshape):
* platform/graphics/surfaces/efl: Added.
* platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
(WebCore):
(WebCore::OffScreenRootWindow::get):
(WebCore::OffScreenRootWindow::~OffScreenRootWindow):
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createSurface):
(WebCore::GraphicsSurfacePrivate::makeCurrent):
(WebCore::GraphicsSurfacePrivate::doneCurrent):
(WebCore::GraphicsSurfacePrivate::swapBuffers):
(WebCore::GraphicsSurface::platformBeginPaint):
(WebCore::GraphicsSurface::createReadOnlyImage):
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
(WebCore):
(OffScreenRootWindow):
(WebCore::OffScreenRootWindow::OffScreenRootWindow):
(GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createPixmap):
(WebCore::GraphicsSurfacePrivate::copyFromTexture):
(WebCore::GraphicsSurfacePrivate::display):
(WebCore::GraphicsSurfacePrivate::glxPixmap):
(WebCore::GraphicsSurfacePrivate::size):
(WebCore::GraphicsSurfacePrivate::glContext):
(WebCore::resolveGLMethods):
* platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
(WebCore):
(WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
(WebCore::OffScreenRootWindow::~OffScreenRootWindow):
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createSurface):
(WebCore::GraphicsSurfacePrivate::makeCurrent):
(WebCore::GraphicsSurfacePrivate::doneCurrent):
(WebCore::GraphicsSurfacePrivate::swapBuffers):
2012-10-26 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Overrides] Do not persist the User Agent "master switch"
https://bugs.webkit.org/show_bug.cgi?id=100484
Reviewed by Yury Semikhatsky.
The User Agent override state is managed in the front-end, just like for other override-able parameters.
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::disable):
* inspector/front-end/NetworkManager.js:
(WebInspector.NetworkManager.get NetworkAgent):
(WebInspector.NetworkManager):
* inspector/front-end/SettingsScreen.js:
(WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.set checkboxClicked):
(WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement):
* inspector/front-end/UserAgentSupport.js:
(WebInspector.UserAgentSupport):
(WebInspector.UserAgentSupport.prototype.toggleUserAgentOverride):
(WebInspector.UserAgentSupport.prototype._userAgentChanged):
2012-10-26 Takashi Sakamoto <tasak@google.com>
[Shadow]: removing styles in shadow dom subtree causes crash.
https://bugs.webkit.org/show_bug.cgi?id=100455
Reviewed by Hajime Morita.
To quickly check whether shadow roots or elements have any scoped
styles or not, elements have hasStyleScoped flag. If elements have
any scoped styles, the styles are direct children of the element.
The original code just sees how many chilren are scoped style or not.
However styles in shadow dom subtree are registered with the shadow
root but are not always direct children of shadow roots. So to check
whether shadow roots have any scoped styles, modified to count
number of styles registered with the shadow root.
Test: fast/dom/shadow/remove-styles-in-shadow-crash.html
* dom/Node.cpp:
(WebCore::Node::registerScopedHTMLStyleChild):
(WebCore::Node::unregisterScopedHTMLStyleChild):
Made the above two method virtual. class ShadowRoot overrides these
methods.
(WebCore::Node::numberOfScopedHTMLStyleChildren):
Moved HTMLStyleElement.cpp to Node.cpp, because the above two methods
are moved into Node.cpp.
* dom/Node.h:
(Node):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
(WebCore::ShadowRoot::registerScopedHTMLStyleChild):
(WebCore::ShadowRoot::unregisterScopedHTMLStyleChild):
Modify to count how many styles are registered with the shadow root.
The "counting" is done when styles are registered and unregistered
with the shadow root, i.e. style element is inserted into document or
removed from document. When unregister some style, there are no more
styles registered with the shadow root. Set style scoped flag false.
* dom/ShadowRoot.h:
(ShadowRoot):
* html/HTMLStyleElement.cpp:
* html/HTMLStyleElement.h:
(WebCore::HTMLStyleElement::isRegisteredAsScoped):
Now isRegisteredAsScoped is used in Node.cpp, so removed inline and
moved .cpp to .h.
2012-10-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r132589.
http://trac.webkit.org/changeset/132589
https://bugs.webkit.org/show_bug.cgi?id=100498
Breaks font-face layout tests (Requested by pfeldman on
#webkit).
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::getFontData):
2012-10-26 Takashi Sakamoto <tasak@google.com>
[Shadow DOM] Needs @host rule for ShadowDOM styling
https://bugs.webkit.org/show_bug.cgi?id=88606
Reviewed by Hajime Morita.
Implemented @host-@rules according to the shadow dom spec:
http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
The design doc is:
https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
Test: fast/dom/shadow/athost-atrules.html
* css/CSSGrammar.y.in:
Added rules for parsing @host @-rules.
* css/CSSParser.cpp:
(WebCore::CSSParser::detectAtToken):
Added a new token "@host".
(WebCore::CSSParser::createHostRule):
Added a new method to create an @host @-rule, which is invoked from
(WebCore):
* css/CSSParser.h:
Added a declaration of the above new method: createHostRule.
* css/CSSPropertySourceData.h:
Added HOST_RULE to enum Type.
* css/RuleSet.cpp:
(WebCore::RuleData::RuleData):
Modified multiple bool arguments into one argument. Now it
uses combinations of values from enum AddRuleFlags.
(WebCore::RuleSet::addRule):
(WebCore::RuleSet::addRegionRule):
(WebCore::RuleSet::addStyleRule):
Updated according to the RuleData's change.
Modified to Invoke increaseSpecificity if the given rule is @host
@-rule.
(WebCore::RuleSet::addRulesFromSheet):
Invoked addHostRule if the given rule is @host @-rule.
* css/RuleSet.h:
(RuleData):
(WebCore::RuleData::increaseSpecificity):
Added a new method to increase selector's specificity. This method is
used to make @host @-rules' specificity larger than normal author
rules' specificity.
(RuleSet):
* css/StyleResolver.cpp:
(WebCore::makeRuleSet):
(WebCore::StyleResolver::addHostRule):
A wrapper method to invoke StyleScopeResolver::addHostRule. The method
is used to make only StyleResolver know an implementation detail about
class StyleScopeResolver.
(WebCore::StyleResolver::appendAuthorStylesheets):
Updated according to the RuleData's change.
(WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
A new method to find matched host rules when an element is given.
This method invokes
StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
matched host rules.
(WebCore):
(WebCore::StyleResolver::matchHostRules):
A new method to find matched host rules when an element is given.
This method invokes StyleScopeResolver::matchHostRules to find
matched host rules.
(WebCore::StyleResolver::matchScopedAuthorRules):
Modified to invoke matchHostRules.
(WebCore::StyleResolver::locateSharedStyle):
Disable sibling style cache if the given element is a shadow host and
any @host @-rules are applied to the element.
* css/StyleResolver.h:
(WebCore::StyleResolver::ensureScopeResolver):
If no scopeResolver is created, create and return the instance.
If created, just return the instance.
(StyleResolver):
* css/StyleRule.cpp:
(WebCore::StyleRuleBase::reportMemoryUsage):
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy):
(WebCore::StyleRuleBase::createCSSOMWrapper):
(WebCore::StyleRuleHost::StyleRuleHost):
Implemented class StyleRuleHost. The class is almost the same as
StyleRuleBlock except type.
(WebCore):
* css/StyleRule.h:
(WebCore::StyleRuleBase::isHostRule):
(StyleRuleHost):
(WebCore::StyleRuleHost::create):
(WebCore::StyleRuleHost::copy):
(WebCore):
* css/StyleScopeResolver.cpp:
(WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
A new method to create a new RuleSet for the given shadow root.
(WebCore):
(WebCore::StyleScopeResolver::atHostRuleSetFor):
A new private inline method to obtain @host @-rules declared in
the given shadow root.
(WebCore::StyleScopeResolver::addHostRule):
Added a new method to register @host @-rules with shadow roots.
(WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
A new method to find whether any @host @-rules are applied to
the given host element.
(WebCore::StyleScopeResolver::matchHostRules):
A new method to find matched rules for the given host element.
(WebCore::StyleScopeResolver::reportMemoryUsage):
* css/StyleScopeResolver.h:
(WebCore):
(StyleScopeResolver):
* css/StyleSheetContents.cpp:
(WebCore::childRulesHaveFailedOrCanceledSubresources):
2012-10-26 Jaehun Lim <ljaehun.lim@samsung.com>
[CMAKE] Add TextAutosizer.cpp in WebCore/CMakeLists.txt
https://bugs.webkit.org/show_bug.cgi?id=100476
Reviewed by Kentaro Hara.
ENABLE_TEXT_AUTOSIZING option is added in CMAKE,
but the source file for that feature is omitted.
No new tests. Covered by existing tests.
* CMakeLists.txt:
2012-10-26 Julien Chaffraix <jchaffraix@webkit.org>
RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
https://bugs.webkit.org/show_bug.cgi?id=99861
Reviewed by Ojan Vafai.
RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
widths dirty / layout flag so that we would properly propagate the information to our containing table. This
led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
or else we would ignore the next layout hint on the <col> or <colgroup>.
Tests: fast/table/col-span-change-relayout.html
fast/table/simplified-layout-table.html
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
Simplified the code now that we only need to iterate over the sections.
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::calcWidthArray):
Removed call to computePreferredLogicalWidths.
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::styleDidChange):
(WebCore::RenderTableCol::updateFromElement):
Forward a layout hint to the table so that we properly recompute the cell's logical withs.
(WebCore::RenderTableCol::computePreferredLogicalWidths):
(WebCore::RenderTableCol::layout):
Change our implementations of those 2 methods to be no-ops, while enforcing that they are
never called when it was possible.
(WebCore::RenderTableCol::propagateLayoutCueToTable):
New helper function that forward any layout cue to the containing table, this works around
us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
invalidateContainerPreferredLogicalWidths.
* rendering/RenderTableCol.h:
Made the function that we are not expected to be called private.
2012-10-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r132601.
http://trac.webkit.org/changeset/132601
https://bugs.webkit.org/show_bug.cgi?id=100494
It broke the Qt build (Requested by Ossy on #webkit).
* PlatformEfl.cmake:
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::createGraphicsSurfaces):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
(WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
(WebCore):
* platform/graphics/efl/GraphicsContext3DPrivate.h:
(GraphicsContext3DPrivate):
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::reshape):
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore::OffScreenRootWindow::get):
(WebCore::OffScreenRootWindow::~OffScreenRootWindow):
(OffScreenRootWindow):
(WebCore):
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createSurface):
(WebCore::GraphicsSurfacePrivate::makeCurrent):
(WebCore::GraphicsSurfacePrivate::doneCurrent):
(WebCore::GraphicsSurfacePrivate::swapBuffers):
(WebCore::GraphicsSurfacePrivate::copyFromTexture):
(GraphicsSurfacePrivate):
(WebCore::resolveGLMethods):
2012-10-26 Yury Semikhatsky <yurys@chromium.org>
Memory instrumentation: do not report memory occupied by v8::String
https://bugs.webkit.org/show_bug.cgi?id=100487
Reviewed by Alexander Pavlov.
Pointers to v8::String are skipped when reporting memory usage of V8 bindings'
string cache.
* bindings/v8/V8Binding.cpp:
(WTF):
2012-10-26 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Add support for auto-height regions with region-breaks
https://bugs.webkit.org/show_bug.cgi?id=99952
Reviewed by David Hyatt.
This patch takes region breaks into account when computing the height for auto logical height regions.
When a region break is encountered before/after an element from within a flow thread and we are in the layout
phase in which we lay out the flow threads in regions unconstrained, we use the region break to
compute the region override logical content height if the region break fits inside an auto logical height region.
A region break inside an auto logical height region determines the region override logical content height, taking
min/max height into account.
Tests: fast/regions/autoheight-allregions-nobreaks.html
fast/regions/autoheight-allregions.html
fast/regions/autoheight-breakafteralways-maxheight.html
fast/regions/autoheight-breakbeforealways.html
fast/regions/autoheight-firstregion-breakalways.html
fast/regions/autoheight-lastregion-overflowauto-breaksignored.html
fast/regions/autoheight-lastregion-overflowauto.html
fast/regions/autoheight-middleregion.html
fast/regions/autoheight-secondregion-breakoutside.html
fast/regions/autoheight-secondregion.html
fast/regions/autoheight-singleregion-breakafteralways-maxheight.html
fast/regions/autoheight-singleregion-breakafteralways.html
fast/regions/autoheight-singleregion-breakaftermargin.html
fast/regions/autoheight-singleregion-breakbeforealways-minheight.html
fast/regions/autoheight-singleregion-breakbeforealways.html
fast/regions/autoheight-singleregion-multiplebreaks.html
fast/regions/autoheight-singleregion-overflowauto-breaksignored.html
fast/regions/autoheight-singleregion-overflowauto.html
* rendering/RenderBlock.cpp: When encounter a region break before/after an element inside a flow thread,
try to use it to determine the override logical content height for auto logical height regions.
(WebCore::RenderBlock::applyBeforeBreak):
(WebCore::RenderBlock::applyAfterBreak):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::layout):
(WebCore::RenderFlowThread::computeOverflowStateForRegions):
Simulate a region break at the end of the flow thread content.
(WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
(WebCore::RenderFlowThread::clearOverrideLogicalContentHeightInRegions):
Helper method used to clear the overrideLogicalContentHeight for auto logical height regions.
(WebCore::RenderFlowThread::addForcedRegionBreak):
Extend the method to process region breaks. The method returns true if at least one auto logical height region
has its override logical content height computed.
* rendering/RenderFlowThread.h:
* rendering/RenderRegion.cpp: Make these methods work with auto logical height regions.
(WebCore::RenderRegion::pageLogicalHeight):
(WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent):
2012-10-26 Regina Chung <heejin.r.chung@samsung.com>
[EFL][WK2] Enable WebGL
https://bugs.webkit.org/show_bug.cgi?id=97652
Reviewed by Gyuyoung Kim.
Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
Depends on GLX since Evas doesn't provide the necessary functionality.
No new tests. Covered by existing tests.
* PlatformEfl.cmake:
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::createGraphicsSurfaces):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
(WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
(WebCore):
(WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
(WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
(WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
* platform/graphics/efl/GraphicsContext3DPrivate.h:
(GraphicsContext3DPrivate):
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::reshape):
* platform/graphics/surfaces/efl: Added.
* platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
(WebCore):
(WebCore::OffScreenRootWindow::get):
(WebCore::OffScreenRootWindow::~OffScreenRootWindow):
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createSurface):
(WebCore::GraphicsSurfacePrivate::makeCurrent):
(WebCore::GraphicsSurfacePrivate::doneCurrent):
(WebCore::GraphicsSurfacePrivate::swapBuffers):
(WebCore::GraphicsSurface::platformBeginPaint):
(WebCore::GraphicsSurface::createReadOnlyImage):
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
(WebCore):
(OffScreenRootWindow):
(WebCore::OffScreenRootWindow::OffScreenRootWindow):
(GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createPixmap):
(WebCore::GraphicsSurfacePrivate::copyFromTexture):
(WebCore::GraphicsSurfacePrivate::display):
(WebCore::GraphicsSurfacePrivate::glxPixmap):
(WebCore::GraphicsSurfacePrivate::size):
(WebCore::GraphicsSurfacePrivate::glContext):
(WebCore::resolveGLMethods):
* platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
(WebCore):
(WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
(WebCore::OffScreenRootWindow::~OffScreenRootWindow):
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createSurface):
(WebCore::GraphicsSurfacePrivate::makeCurrent):
(WebCore::GraphicsSurfacePrivate::doneCurrent):
(WebCore::GraphicsSurfacePrivate::swapBuffers):
2012-10-26 Thiago Marcos P. Santos <thiago.santos@intel.com>
Add feature flags for CSS Device Adaptation
https://bugs.webkit.org/show_bug.cgi?id=95960
Reviewed by Kenneth Rohde Christiansen.
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
* GNUmakefile.features.am:
2012-10-26 Li Yin <li.yin@intel.com>
fast/forms/file/input-file-write-files.html should cover correct setting value
https://bugs.webkit.org/show_bug.cgi?id=100085
Reviewed by Kentaro Hara.
From Spec: http://dev.w3.org/html5/spec/single-page.html#dom-input-value-filename
On setting, if the new value is the empty string, it must empty the list of selected
files; otherwise, it must throw an InvalidStateError exception.
Test: fast/forms/file/input-file-value.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setValue):
(WebCore):
* html/HTMLInputElement.h:
(HTMLInputElement):
* html/HTMLInputElement.idl:
2012-10-26 Keishi Hattori <keishi@webkit.org>
Refactor calendar picker to remove _x/_y from DaysTable
https://bugs.webkit.org/show_bug.cgi?id=100460
Reviewed by Kent Tamura.
_x/_y properties keep the coordinates for the selection but when we add
week and month picking capabilities, the selection can't be expressed as
a set of coordinates. This change will remove it.
No new tests. Covered by calendar-picker-*.html tests.
* Resources/pagepopups/calendarPicker.js:
(DaysTable): Removed _x/_y properties.
(DaysTable.prototype._hasSelection): Changed to refer to the DOM to see if we have a selection.
(DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Lookup the selection position.
(DaysTable.prototype.selectDate): Deselect first so we don't have two selections.
(DaysTable.prototype._selectRangeContainingNode): Selects date/week/month containing the given day node.
(DaysTable.prototype._selectRangeAtPosition): Selects date/week/month at the given position.
(DaysTable.prototype._firstNodeInSelectedRange): Returns first selected day node.
(DaysTable.prototype._deselect): Deselects all selections.
(DaysTable.prototype._handleMouseOver): Use _selectRangeContainingNode so we don't have many places handling the selection.
(DaysTable.prototype._handleMouseOut): Use _deselect.
(DaysTable.prototype._handleKey): Lookup the selection position.
(DaysTable.prototype.updateSelection): Use _selectRangeAtPosition.
2012-10-26 Ningxin Hu <ningxin.hu@intel.com>
FileReader abort case causes Chromium renderer crash
https://bugs.webkit.org/show_bug.cgi?id=99142
Reviewed by Kentaro Hara.
Before dispatching load event, FileReader should check if it is
in aborting.
Test: manually launch fast/files/file-reader-abort.html in Chromium
browser and compare the result with
fast/files/file-reader-abort-expected.txt.
* fileapi/FileReader.cpp:
(WebCore::FileReader::didFinishLoading):
2012-10-26 Julien Chaffraix <jchaffraix@webkit.org>
Generate less repaint calls during subtree detaching
https://bugs.webkit.org/show_bug.cgi?id=99741
Reviewed by Eric Seidel.
Following bug 98336, detach is now a subtree top-down operation. Because we
track visual overflow from our children during layout for most cases, we can
generate a repaint only on the subtree root.
On http://dglazkov.github.com/performance-tests/redraw.html, this ups the FPS to
26 fps from 22 fps on my MBP (+ 15%). On PerformanceTests/layout/subtree-detach.html,
it decreases the time by 35%. This is due to being the best case and we now generate
only one repaint per detach phase.
Covered by existing pixels tests (including but not limited to repaint ones).
* rendering/RenderObject.cpp:
(WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
Changed the function not to be recursive anymore to generate one painting for
our root only. Added a FIXME about using our RenderLayer for repainting to avoid
the cost of computing our absolute repaint rectangle.
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::removeChildNode):
Removed the logic for repainting in the general case. However we still force a repaint
if we have a RenderLayer as we don't track their overflow in some cases (e.g. positioned
objects). This check is conservative and could be narrowed down (e.g overflow RenderLayers
are properly accounted for in our clipppedOverflowRectForRepaint).
2012-10-26 Kenichi Ishibashi <bashi@chromium.org>
local(Helvetica) in src descriptor prevent fallback
https://bugs.webkit.org/show_bug.cgi?id=100446
Reviewed by Dan Bernstein.
FontCache::getCachedFontData() has a mechanism that aliases a few pairs
of font family names, so that if the family name specified in the font-family
property is not available on the system, but the its alias is available,
it will be used instead. This is appropriate for the font-family property,
but not for font family names specified in the local() function of the src
descriptor in a @font-face rule.
This patch disables the mechanism while checking src descriptor of @font-face.
No new tests. It's difficult to test the change because 'Helvetica' can
be mapped any other font. For example, chromium DRT uses FontConfig to
map Helvetica to Times New Roman. Other ports may map Helvetica to other
fonts. We can't define the expected result.
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::getFontData):
Call fontCache()->getCachedFontData() with checkingAlternateName = true.
This disables aliasing font family names in FontCache.
2012-10-26 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Doctype Audits panel code
https://bugs.webkit.org/show_bug.cgi?id=100371
Reviewed by Alexander Pavlov.
This is a preparation step for ongoing refactoring.
It is much easier to read doctyped code.
* inspector/front-end/AuditRules.js:
(WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype.doRun):
Replaced "undefined" with "null"
* inspector/front-end/AuditsPanel.js:
(WebInspector.AuditCategory.prototype.callbackWrapper):
Removed callback parameter indirection.
(WebInspector.AuditRuleResult.prototype.addFormatted):
Converted private instance function to scoped function.
2012-10-26 János Badics <jbadics@inf.u-szeged.hu>
[Qt]REGRESSION(r131428): cookies.db created on wrong place
https://bugs.webkit.org/show_bug.cgi?id=99445
Reviewed by Simon Hausmann.
Added a slash to the path of cookies.db in CookieJarQt.cpp.
* platform/qt/CookieJarQt.cpp:
(WebCore::SharedCookieJarQt::SharedCookieJarQt):
2012-10-26 Adam Barth <abarth@webkit.org>
Unreviewed. This ASSERT is no longer correct (and fires on many tests.)
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
2012-10-26 Kent Tamura <tkent@chromium.org>
[Chromium-Win] Support shortTimeFormat
https://bugs.webkit.org/show_bug.cgi?id=100471
Reviewed by Kentaro Hara.
No new tests. Covered by fast/forms/time-multiple-fields/ and
WebKit/chromium/tests/LocaleWinTest.
* platform/text/LocaleWin.cpp:
(WebCore::LocaleWin::shortTimeFormat):
Gets a format by LOCALE_SSHORTTIME. If it fails, remove "<delimiter>ss"
from the format by LOCALE_STIMEFORMAT.
* platform/text/LocaleWin.h:
(LocaleWin): Declare m_timeFormatWithoutSeconds.
2012-10-26 Adam Barth <abarth@webkit.org>
Unreviewed. Update run-bindings-tests results after recent active DOM
object changes.
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::V8TestInterface::constructorCallback):
(WebCore::V8TestInterface::wrapSlow):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::V8TestInterface::wrap):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructorCallback):
(WebCore::V8TestNamedConstructor::wrapSlow):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::V8TestNamedConstructor::wrap):
2012-10-26 MORITA Hajime <morrita@google.com>
[V8] REGRESSION(132540) Assertion failure on V8DOMWrapper::setJSWrapperForDOMNode()
https://bugs.webkit.org/show_bug.cgi?id=100462
Reviewed by Adam Barth.
Removed the no longer correct assertion statement.
No new tests. Covered by breaking tests.
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
2012-10-25 Adam Barth <abarth@webkit.org>
[V8] WorkerContextExecutionProxy should use ScopedPersistent
https://bugs.webkit.org/show_bug.cgi?id=100443
Reviewed by Eric Seidel.
This class was manually re-implementing the ScopedPersistent pattern.
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::WorkerContextExecutionProxy::dispose):
(WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
(WebCore::WorkerContextExecutionProxy::evaluate):
* bindings/v8/WorkerContextExecutionProxy.h:
(WebCore::WorkerContextExecutionProxy::context):
(WorkerContextExecutionProxy):
2012-10-25 Peter Wang <peter.wang@torchmobile.com.cn>
A mistake in WebCore::JavaScriptCallFrame::evaluate which will cause assert failed
https://bugs.webkit.org/show_bug.cgi?id=100347
Reviewed by Mark Lam and Filip Pizlo.
In worker context, calling "JSDOMWindowBase::commonJSGlobalData" will cause assert,
since there is "ASSERT(isMainThread())" in "JSDOMWindowBase::commonJSGlobalData".
No new test case, since no behaviour changed.
* bindings/js/JavaScriptCallFrame.cpp:
(WebCore::JavaScriptCallFrame::evaluate):
2012-10-25 Adam Barth <abarth@webkit.org>
[V8] We can merge the wrapper maps for DOM objects and active DOM objects
https://bugs.webkit.org/show_bug.cgi?id=100432
Reviewed by Eric Seidel.
Now that we use the same object to visit both DOM objects and active
DOM objects, there's no reason to keep them in separate hash maps.
* bindings/scripts/CodeGeneratorV8.pm:
(GetDomMapName):
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::DOMDataStore):
(WebCore::DOMDataStore::~DOMDataStore):
(WebCore::DOMDataStore::reportMemoryUsage):
* bindings/v8/DOMDataStore.h:
(DOMDataStore):
* bindings/v8/V8DOMMap.cpp:
* bindings/v8/V8DOMMap.h:
(NodeWrapperVisitor):
(WebCore):
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
* bindings/v8/V8GCController.cpp:
(WebCore::V8GCController::majorGCPrologue):
* bindings/v8/custom/V8WebSocketCustom.cpp:
(WebCore::V8WebSocket::constructorCallback):
* bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
(WebCore::V8XMLHttpRequest::constructorCallback):
2012-10-25 Charles Wei <charles.wei@torchmobile.com.cn>
[BlackBerry] User Challenged again after browser restart for HTTP/FTP sites already successfully authenticated.
https://bugs.webkit.org/show_bug.cgi?id=100448
Reviewed by George Staikos.
Internally reviewed by Joe Mason.
We didn't check the persistent Credential Storage for Credentials when challenged by the server.
Manual Test: login to ftp://localhost on BlackBerry device, and restart the browser to login again.
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::sendRequestWithCredentials):
2012-10-25 Joshua Bell <jsbell@chromium.org>
IndexedDB: Add histogram statistics for backing store errors
https://bugs.webkit.org/show_bug.cgi?id=98465
Reviewed by Adam Barth.
Define a macro for consistent asserting (during development), logging, and recording
internal backing store errors via histograms. Define specific histogram values to
track issues with opening backing stores to gather stats on corruption.
No new tests - just the stats, ma'am, just the stats.
* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
(WebCore):
(WebCore::setUpMetadata):
(WebCore::IDBLevelDBBackingStore::open):
(WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
(WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
(WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
(WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
(WebCore::deleteRange):
(WebCore::IDBLevelDBBackingStore::getObjectStores):
(WebCore::IDBLevelDBBackingStore::createObjectStore):
(WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
(WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
(WebCore::IDBLevelDBBackingStore::getIndexes):
(WebCore::IDBLevelDBBackingStore::createIndex):
(WebCore::IDBLevelDBBackingStore::deleteIndex):
(WebCore::IDBLevelDBBackingStore::findKeyInIndex):
2012-10-25 Adam Barth <abarth@webkit.org>
[V8] We can merge ActiveDOMObjectPrologueVisitor with ObjectVisitor
https://bugs.webkit.org/show_bug.cgi?id=100430
Reviewed by Eric Seidel.
There's no reason for these visitors to be separate objects anymore.
* bindings/v8/V8GCController.cpp:
(WebCore::ObjectVisitor::ObjectVisitor):
(WebCore::ObjectVisitor::visitDOMWrapper):
(WebCore::V8GCController::majorGCPrologue):
2012-10-25 Tony Chang <tony@chromium.org>
Remove unused static methods from DOMTimer.h
https://bugs.webkit.org/show_bug.cgi?id=100427
Reviewed by Kenneth Russell.
Since these values got moved into Settings, these methods are no longer called.
No new tests, removing dead code.
* page/DOMTimer.h:
(DOMTimer): Remove unused getters.
2012-10-25 Leo Yang <leoyang@rim.com>
[BlackBerry] Infinite redirect loop is not displayed to user
https://bugs.webkit.org/show_bug.cgi?id=100420
Reviewed by George Staikos.
CNN.com is redirecting us infinitely with 302 http code and response body. We catch
it my setting our extended error code as we defined. But we were not trying to notify
error because we have received body. This was wrong. For extended http status code
which is less than 0 we should display our own error page regardless there was data
received from the server or not.
Tested by manually loading CNN.com.
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::shouldNotifyClientFailed):
2012-10-25 Nico Weber <thakis@chromium.org>
Flip ImageOrientation coordinate system from lefthanded to righthanded
https://bugs.webkit.org/show_bug.cgi?id=100414
Reviewed by Eric Seidel.
platform/graphics, noteably GraphicsContext uses a right-handed
coordinate system (origin in the top left corner, x growing to the
right, y to the bottom). ImageOrientation was an outlier from
and used a left-handed coordinate system. This patch makes
ImageOrientation match the rest of platform/graphics.
This is a pure refactoring and has no observable effects.
* platform/chromium/DragImageChromiumSkia.cpp:
(WebCore::createDragImageFromImage):
* platform/graphics/ImageOrientation.cpp:
(WebCore::ImageOrientation::transformFromDefault):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawNativeImage):
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::BitmapImage::draw):
* platform/mac/DragImageMac.mm:
(WebCore::createDragImageFromImage):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::shouldRespectImageOrientation):
2012-10-25 Keishi Hattori <keishi@webkit.org>
Hide popup while transitioning from the suggestion picker to the calendar picker
https://bugs.webkit.org/show_bug.cgi?id=99537
Reviewed by Kent Tamura.
Right now you can see a squished calendar picker while transitioning
from suggestion picker from calendar picker. This change will hide the
popup before opening the calendar picker.
No new tests.
* Resources/pagepopups/pickerCommon.js: Hiding the window will also trigger a resize event so I created a separate event, didOpenPicker.
(hideWindow): Resize the window to 1x1 because we can't resize to 0x0.
* Resources/pagepopups/suggestionPicker.js:
(SuggestionPicker.prototype.selectEntry): Hide the window first and then open the calendar picker.
2012-10-25 Anders Carlsson <andersca@apple.com>
Fix build.
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
2012-10-25 Anders Carlsson <andersca@apple.com>
Remove feed and feeds URL scheme workarounds
https://bugs.webkit.org/show_bug.cgi?id=100442
Reviewed by Dan Bernstein.
* dom/DocumentEventQueue.cpp:
(WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent):
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
2012-10-25 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r132514.
http://trac.webkit.org/changeset/132514
https://bugs.webkit.org/show_bug.cgi?id=100440
"Broke chromium content_browsertests AccessibilityAriaMenu
AccessibilityInputRange AccessibilityListMarkers" (Requested
by scheib on #webkit).
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::contentChanged):
(WebCore::AXObjectCache::childrenChanged):
(WebCore::AXObjectCache::handleAriaRoleChanged):
* accessibility/AXObjectCache.h:
(AXObjectCache):
(WebCore::AXObjectCache::contentChanged):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::AccessibilityObject):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::contentChanged):
(AccessibilityObject):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
(WebCore::AccessibilityRenderObject::contentChanged):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::isAttachment):
(WebCore::AccessibilityScrollView::widgetForAttachmentView):
(WebCore::AccessibilityScrollView::updateScrollbars):
(WebCore::AccessibilityScrollView::webAreaObject):
(WebCore::AccessibilityScrollView::elementRect):
(WebCore::AccessibilityScrollView::documentFrameView):
(WebCore::AccessibilityScrollView::parentObject):
(WebCore::AccessibilityScrollView::parentObjectIfExists):
(WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
(WebCore::AccessibilityScrollView::scrollTo):
* accessibility/AccessibilityScrollView.h:
(WebCore::AccessibilityScrollView::scrollView):
(AccessibilityScrollView):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isDataTable):
* accessibility/chromium/AXObjectCacheChromium.cpp:
(WebCore::AXObjectCache::postPlatformNotification):
* dom/Element.cpp:
(WebCore::Element::attributeChanged):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::deleteLineBoxTree):
(WebCore::RenderBlock::createAndAppendRootInlineBox):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
* rendering/RenderText.cpp:
(WebCore::RenderText::setText):
2012-10-25 Dan Bernstein <mitz@apple.com>
<rdar://problem/12544626> [cg] RenderBlock::selectionGaps() is extremely slow when there are many floats
https://bugs.webkit.org/show_bug.cgi?id=100413
Reviewed by Anders Carlsson.
RenderBlock::selectionGaps() calls GraphicsContext::clipOut(const IntRect&) for each float.
Sped up the Core Graphics implementation of this function considerably by removing an
unnecessary call to CGContextGetClipBoundingBox.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::clipOut): Changed to use CGRectInfinite rather than the bounding
box of the current clip.
2012-10-25 Tim Horton <timothy_horton@apple.com>
REGRESSION (132422): Tiles don't move when the Find dialog causes programmatic scrolls
https://bugs.webkit.org/show_bug.cgi?id=100433
<rdar://problem/12575582>
Reviewed by Simon Fraser.
Actually update GraphicsLayer positions from updateMainFrameScrollPosition if
we're doing a programmatic scroll; otherwise programmatic scrolls while scrolling
on the main thread will short-circuit and end up only updating the GraphicsLayer's
notion of its current position, but never synchronizing that to the layer itself.
No new tests, as this is currently untestable.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
2012-10-25 Simon Fraser <simon.fraser@apple.com>
Tiled layers are missing content on zooming
https://bugs.webkit.org/show_bug.cgi?id=100422
Reviewed by Beth Dakin.
Tiled layers using TileCaches were missing content after
zooming. TileCache was confused in the presence of scaling;
it unapplies the scale on the layer above the tiles (so the tiles
live in screen space), and computed the tile coverage rect
in these tile coordinates. This worked for the page tile cache,
because its visibleRect was sent in pre-scaled. However, for
tiled layer TileCaches this was wrong.
Fix by scaling the tile coverage rect by m_scale before
using it to compute which tiles to throw away and bring in.
To fix the problem of the visibleRect being pre-scaled
for the page tile cache, remove the setting of the visibleRect
in RenderLayerCompositor::frameViewDidScroll(), and rely on
GraphicsLayerCA::updateVisibleRect() which computes the
visible rect in the correct, layer coordinates.
Test: compositing/tiling/tile-cache-zoomed.html
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateVisibleRect): Call setVisibleRect()
for all tile cache layers, not just tiled layer ones, but only do
the visible rect adjustment for those that are not the page tile cache.
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::revalidateTiles): Use a coverageRectInTileCoords rect,
which is scaled to be in the same coordinate space as the tile grid.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::frameViewDidScroll): Remove the code
that sets the setVisibleRect() on the TiledBacking.
2012-10-25 Adam Barth <abarth@webkit.org>
[V8] ActiveDOMNodes no longer require a separate wrapper map
https://bugs.webkit.org/show_bug.cgi?id=100352
Reviewed by Eric Seidel.
There is no longer any reason to keep a separate DOM wrapper map for
active DOM nodes. We can simply store them in the normal DOM node
wrapper map (which is more efficient because it doesn't use a HashMap).
* bindings/scripts/CodeGeneratorV8.pm:
(GetDomMapName):
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::DOMDataStore):
(WebCore::DOMDataStore::~DOMDataStore):
(WebCore::DOMDataStore::reportMemoryUsage):
* bindings/v8/DOMDataStore.h:
(DOMDataStore):
* bindings/v8/IntrusiveDOMWrapperMap.h:
* bindings/v8/V8DOMMap.cpp:
* bindings/v8/V8DOMMap.h:
(WebCore):
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/V8DOMWrapper.h:
(V8DOMWrapper):
(WebCore::V8DOMWrapper::getCachedWrapper):
2012-10-25 Tony Chang <tony@chromium.org>
Unreviewed, fix the build on Mac.
Putting the getter in the Settings.h caused the global variable to be inlined and needing it to be exported.
Instead, put the implementation in the cpp file.
* page/Settings.cpp:
(WebCore::Settings::defaultMinDOMTimerInterval):
(WebCore):
(WebCore::Settings::defaultDOMTimerAlignmentInterval):
* page/Settings.h:
(Settings):
2012-10-25 Tony Chang <tony@chromium.org>
Move default DOM Timer values into Settings
https://bugs.webkit.org/show_bug.cgi?id=100405
Reviewed by Kenneth Russell.
Move the global values for defaultMinDOMTimerInterval and defaultDOMTimerAlignmentInterval into
the Settings object. This is more consistent with other global settings and allows us to remove
the setters on the DOMTimer object.
No new tests, this is a refactor.
* page/DOMTimer.cpp: Remove globals.
* page/DOMTimer.h:
(WebCore::DOMTimer::defaultMinTimerInterval): Call through to Settings
(WebCore::DOMTimer::defaultTimerAlignmentInterval): Call through to Settings.
(DOMTimer): Remove setters.
* page/Settings.cpp:
(WebCore::Settings::setDefaultMinDOMTimerInterval): Use a global in Settings.
(WebCore::Settings::setDefaultDOMTimerAlignmentInterval): Use a global in Settings.
* page/Settings.h:
(WebCore::Settings::defaultMinDOMTimerInterval): Inline the getter.
(WebCore::Settings::defaultDOMTimerAlignmentInterval): Inline the getter.
(Settings): Add globals.
2012-10-25 Simon Fraser <simon.fraser@apple.com>
Report the tile coverage rect in layer coords, and add some tests for tiled backing and zooming
https://bugs.webkit.org/show_bug.cgi?id=100416
Reviewed by Beth Dakin.
The tileCoverageRect is computed in "tile" coordinates, which don't match
the visibleRect coordinates. It's more useful when testing to see the
tile coverage relative to the view bounds, so unapply the scale whem
reporting tile coverage in tests.
Tests: platform/mac/tiled-drawing/tiled-drawing-zoom-scrolled.html
platform/mac/tiled-drawing/tiled-drawing-zoom.html
* platform/graphics/ca/mac/TileCache.h:
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::tileCoverageRect):
2012-10-25 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r132269.
http://trac.webkit.org/changeset/132269
https://bugs.webkit.org/show_bug.cgi?id=100412
"Speculative rollout of r132269 in hopes of fixing a
mysterious recalcStyle crasher" (Requested by eseidel on
#webkit).
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetter):
* rendering/RenderListBox.h:
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::updateBeforeAfterContent):
2012-10-25 Stephen White <senorblanco@chromium.org>
Change ReferenceFilterOperations to reference (own) the data passed to
them.
https://bugs.webkit.org/show_bug.cgi?id=97715
Reviewed by Nate Chapin.
Covered by css3/filters/reference-filter-update-after-remove.html
* css/CachedSVGDocumentReference.h: Added.
(CachedSVGDocumentReference):
New class which holds a CachedResourceHandle<CachedSVGDocument>, but
can be placed in ReferenceFilterOperation's Data. It also calls
addClient() / removeClient(), in order to keep the CachedSVGDocument
alive until the FilterEffectRenderer can get it.
(WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
(WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
(WebCore::CachedSVGDocumentReference::document):
Accessor for the underlying document.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingSVGDocuments):
Wrap the CachedSVGDocument handle in a CachedSVGDocumentReference, and
transfer ownership to the ReferenceFilterOperation.
(WebCore::StyleResolver::createFilterOperations):
Same as above.
* platform/graphics/filters/FilterOperation.h:
(Data):
New base class for generic data which can be deleted polymorphically.
(WebCore::FilterOperation::ReferenceFilterOperation::data):
(WebCore::FilterOperation::ReferenceFilterOperation::setData):
Use the above-mentioned Data class, instead of a void *.
(WebCore::FilterOperation::ReferenceFilterOperation::ReferenceFilterOperation):
Don't initialize data to null; OwnPtr will do that for us.
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::buildReferenceFilter):
Extract the cached SVG document from the reference data.
* rendering/RenderLayerFilterInfo.cpp:
(WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
Extract the cached SVG document from the reference data.
2012-10-25 Simon Fraser <simon.fraser@apple.com>
Incorrect tile size in the slow scrolling case
https://bugs.webkit.org/show_bug.cgi?id=100411
Reviewed by Beth Dakin.
If we're in slow scrolling mode, we don't want to inflate the
coverage rect based on scrollability. This ensures that the few
big tiles we create have the correct size.
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::computeTileCoverageRect):
2012-10-25 Nico Weber <thakis@chromium.org>
Move ImageOrientation transform back in CG space (lower-left origin), adapt the skia code to work with that, turn on feature for chromium
https://bugs.webkit.org/show_bug.cgi?id=100401
Reviewed by Eric Seidel.
This is an alternative fix for the regression caused by r132384 / bug
100179. The bug exists because different pieces of code didn't agree
which space the transformation returned by ImageOrientation was in.
r132384 moved it from CG coordinates to skia coordinates, but didn't
do it completetely. This CL reverts this part of r132384 so that the
transformation is in CG coordinates again, and adapts the skia code to
work in that space.
Alternatively, https://bugs.webkit.org/show_bug.cgi?id=100319 woudl
make the cg code work with the transform in skia coordinates.
Covered by fast/images/exif-orientation.html
* platform/chromium/DragImageChromiumSkia.cpp:
(WebCore::createDragImageFromImage):
* platform/graphics/ImageOrientation.cpp:
(WebCore::ImageOrientation::transformFromDefault):
* platform/graphics/ImageOrientation.h:
(WebCore):
(WebCore::ImageOrientation::usesWidthAsHeight):
(WebCore::ImageOrientation::fromEXIFValue):
(ImageOrientation):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawNativeImage):
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::BitmapImage::draw):
* platform/mac/DragImageMac.mm:
(WebCore::createDragImageFromImage):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::shouldRespectImageOrientation):
2012-10-25 Simon Fraser <simon.fraser@apple.com>
Log the tile cache tile size in test output
https://bugs.webkit.org/show_bug.cgi?id=100409
Reviewed by Beth Dakin.
When dumping tile cache information in tests, also dump the tile size.
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):
* platform/graphics/ca/mac/TileCache.h:
2012-10-25 Arnaud Renevier <a.renevier@sisa.samsung.com>
do not multiply/demultiply colors when alpha is 255
https://bugs.webkit.org/show_bug.cgi?id=89246
Reviewed by Kenneth Rohde Christiansen.
Do not use colorFromPremultipliedARGB in getImageData nor
premultipliedARGBFromColor in putByteArray. Avoiding object creation
and function call make canvas.getImageData about 10% faster and
canvas.putImageData about 30% faster.
Also, we avoid multiplication/demultiplication computation when alpha
is 255. Result is the same, but when there is no transparency,
canvas.getImageData is about 4x faster, and canvas.putImageData is
about 2x faster.
No new tests. No change in behavior.
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::getImageData):
(WebCore::ImageBuffer::putByteArray):
2012-10-25 Nate Chapin <japhet@chromium.org>
Add a main resource type to the memory cache
https://bugs.webkit.org/show_bug.cgi?id=99864
Reviewed by Adam Barth.
No new tests, no functionality change.
* inspector/InspectorPageAgent.cpp:
(WebCore::hasTextContent):
(WebCore::InspectorPageAgent::cachedResourceType):
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequest):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::didFail):
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::CachedRawResource):
(WebCore::CachedRawResource::addAdditionalRequestHeaders):
(WebCore):
(WebCore::CachedRawResource::setShouldBufferData):
(WebCore::CachedRawResource::loader):
(WebCore::CachedRawResource::clear):
* loader/cache/CachedRawResource.h:
(WebCore):
(CachedRawResource):
* loader/cache/CachedResource.cpp:
(WebCore::defaultPriorityForResourceType):
(WebCore::cachedResourceTypeToTargetType):
(WebCore::CachedResource::updateResourceRequest):
(WebCore):
* loader/cache/CachedResource.h:
(WebCore::CachedResource::setResourceError):
(WebCore::CachedResource::resourceError):
(CachedResource):
(WebCore::CachedResource::ignoreForRequestCount):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::createResource):
(WebCore::CachedResourceLoader::requestRawResource):
(WebCore::CachedResourceLoader::checkInsecureContent):
(WebCore::CachedResourceLoader::canRequest):
(WebCore::CachedResourceLoader::determineRevalidationPolicy):
* loader/cache/CachedResourceLoader.h:
(CachedResourceLoader):
* platform/network/ResourceLoadPriority.h:
* platform/network/cf/ResourceRequestCFNet.h:
(WebCore::toResourceLoadPriority):
(WebCore::toHTTPPipeliningPriority):
2012-10-25 Ojan Vafai <ojan@chromium.org>
[V8] Add histograms to measure V8 work done during window close and navigation
https://bugs.webkit.org/show_bug.cgi?id=100358
Reviewed by Adam Barth.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::clearForClose):
(WebCore::ScriptController::clearWindowShell):
2012-10-25 Antti Koivisto <antti@apple.com>
Avoid unnecessary style recalcs on id attribute mutation.
https://bugs.webkit.org/show_bug.cgi?id=100395
Reviewed by Andreas Kling.
There is no need to invalidate element style on id attribute change if neither the old nor the new id were
mentioned in any stylesheet. This is similar to the optimization we already have for class attributes.
Recalculating element style is expensive. It seems id attribute mutation is often used in scripts for purposes other than styling.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::hasSelectorForId):
(WebCore):
* css/StyleResolver.h:
* dom/Element.cpp:
(WebCore::makeIdForStyleResolution):
(WebCore):
(WebCore::Element::attributeChanged):
2012-10-25 Dominic Mazzoni <dmazzoni@google.com>
AX: Notification should be sent when accessibilityIsIgnored changes
https://bugs.webkit.org/show_bug.cgi?id=99547
Reviewed by Chris Fleizach.
Adds a new flag in AccessibilityObject that keeps track of the most recent
value of accessibilityIsIgnored(). After certain events such as an ARIA
attribute change or content change, checks the new value of
accessibilityIsIgnored() and posts a "children changed" notification on the
parent node if it changed, making sure the parent recomputes its vector of
(unignored) children.
Also moves handling of attribute changes to AXObjectCache, and sends
notifications for some attribute changes that were previously silent. On
Chromium, all changes to an accessibility object's attributes should
result in some notification.
Some tests would have broken because an AccessibilityScrollView was created
and holding a reference to a ScrollView for an iframe after it was deleted,
so this change switches AccessibilityScrollView to hold a weak reference
to ScrollView instead.
Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
platform/chromium/accessibility/text-change-notification.html
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::focusedUIElementForPage):
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::textChanged):
(WebCore):
(WebCore::AXObjectCache::childrenChanged):
(WebCore::AXObjectCache::handleAriaRoleChanged):
(WebCore::AXObjectCache::handleAttributeChanged):
(WebCore::AXObjectCache::labelChanged):
(WebCore::AXObjectCache::recomputeIsIgnored):
* accessibility/AXObjectCache.h:
(AXObjectCache):
(WebCore::AXObjectCache::childrenChanged):
(WebCore::AXObjectCache::textChanged):
(WebCore::AXObjectCache::handleAttributeChanged):
(WebCore::AXObjectCache::recomputeIsIgnored):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::insertChild):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::AccessibilityObject):
(WebCore::AccessibilityObject::cachedIsIgnoredValue):
(WebCore):
(WebCore::AccessibilityObject::setCachedIsIgnoredValue):
(WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::textChanged):
(AccessibilityObject):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
(WebCore::AccessibilityRenderObject::textChanged):
(WebCore::AccessibilityRenderObject::addHiddenChildren):
(WebCore::AccessibilityRenderObject::addChildren):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::~AccessibilityScrollView):
(WebCore):
(WebCore::AccessibilityScrollView::detach):
(WebCore::AccessibilityScrollView::isAttachment):
(WebCore::AccessibilityScrollView::widgetForAttachmentView):
(WebCore::AccessibilityScrollView::updateScrollbars):
(WebCore::AccessibilityScrollView::webAreaObject):
(WebCore::AccessibilityScrollView::elementRect):
(WebCore::AccessibilityScrollView::documentFrameView):
(WebCore::AccessibilityScrollView::parentObject):
(WebCore::AccessibilityScrollView::parentObjectIfExists):
(WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
(WebCore::AccessibilityScrollView::scrollTo):
* accessibility/AccessibilityScrollView.h:
(WebCore::AccessibilityScrollView::scrollView):
(AccessibilityScrollView):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isDataTable):
* accessibility/chromium/AXObjectCacheChromium.cpp:
(WebCore::AXObjectCache::postPlatformNotification):
* dom/Element.cpp:
(WebCore::Element::attributeChanged):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::deleteLineBoxTree):
(WebCore::RenderBlock::createAndAppendRootInlineBox):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
* rendering/RenderText.cpp:
(WebCore::RenderText::setText):
2012-10-25 Dominik Röttsches <dominik.rottsches@intel.com>
Conditionalize XHR timeout support
https://bugs.webkit.org/show_bug.cgi?id=100356
Reviewed by Adam Barth.
Adding feature for XHR_TIMEOUT to disable it on ports that don't have
network backend support for setTimeoutInterval.
No new tests, covered by http/tests/xmlhttprequest/timeout/*
* Configurations/FeatureDefines.xcconfig: Default ON on mac.
* GNUmakefile.am:
* GNUmakefile.features.am:
Autotools support for the flag.
* xml/XMLHttpRequest.cpp: #if ENABLE(XHR_TIMEOUT) wrapping
(WebCore::XMLHttpRequest::XMLHttpRequest):
(WebCore):
(WebCore::XMLHttpRequest::open):
(WebCore::XMLHttpRequest::createRequest):
(WebCore::XMLHttpRequest::didFail):
* xml/XMLHttpRequest.h: #if ENABLE(XHR_TIMEOUT) wrapping
(XMLHttpRequest):
* xml/XMLHttpRequest.idl: Conditional properties timeout and ontimeout (event handler).
2012-10-25 Tom Sepez <tsepez@chromium.org>
XSSAuditor must replace form action with about:blank when reflected action detected.
https://bugs.webkit.org/show_bug.cgi?id=100280
Reviewed by Daniel Bates.
Changes empty string form-action replacement to about:blank.
Existing form-action.html test modified to check this case.
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::filterFormToken):
2012-10-25 Kevin Ellis <kevers@chromium.org>
Touch adjustment snaps to wrong target at a plugin boundary.
https://bugs.webkit.org/show_bug.cgi?id=99938
Reviewed by Antonio Gomes.
Inidcate that an <embed> element can respond to
mouse click events, since mouse events are forwarded
to the plugin. Fixes touch adjustment at a plugin
boundary. Prior to the patch a clickable element
adjacent to the plugin would capture synthetic mouse
events from tap gestures that spanned the plugin
boundary.
Test: touchadjustment/plugin.html
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::willRespondToMouseClickEvents):
(WebCore):
* html/HTMLEmbedElement.h:
2012-10-25 Ojan Vafai <ojan@chromium.org>
Get rid of ScriptController::clearForNavigation
https://bugs.webkit.org/show_bug.cgi?id=100390
Reviewed by Adam Barth.
Get rid of clearForNavigation and change resetIsolatedWorlds
to reset so that it can also do the hintForCollectGarbage call.
No new tests. No behavior change.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::reset):
(WebCore::ScriptController::clearForClose):
(WebCore::ScriptController::clearWindowShell):
* bindings/v8/ScriptController.h:
(ScriptController):
2012-10-25 Simon Fraser <simon.fraser@apple.com>
r132427 changed the tiling behavior of tiled layer TileCaches as well as the page tile cache
https://bugs.webkit.org/show_bug.cgi?id=100323
Reviewed by Anders Carlsson.
r132427 assumed that TileCaches were only used for the page, and changed the tile
size behavior of all non-page TileCaches.
Fix by giving TiledBacking a new 'CoverageForSlowScrolling' flag which
affects the tile size behavior.
Consolidated the two places that set TileCoverage into one, and in the process
reduced FrameView's direct communication with TiledBacking.
No new tests because we can't test tile size via tests.
* page/FrameView.cpp:
(WebCore::FrameView::didMoveOnscreen): Rely on RenderLayerCompositor to
call setIsInWindow() on the main page tile cache.
(WebCore::FrameView::willMoveOffscreen): Ditto.
(WebCore::FrameView::performPostLayoutTasks): Rather than explicitly tell
the TiledBacking that it should do stuff, just tell the compositor that
layout happened.
* platform/graphics/TiledBacking.h: New CoverageForSlowScrolling flag.
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::tileSizeForCoverageRect): Only use one big tile
if the CoverageForSlowScrolling flag is set.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking): layer->isRootLayer()
is equivalent to renderer()->isRenderView() and clearer.
(WebCore::RenderLayerBacking::tiledBacking): Call adjustTileCacheCoverage().
It would be nice to move the rest of this TiledBacking code from here somehow.
(WebCore::RenderLayerBacking::adjustTileCacheCoverage): Update the TileCoverage
flags, taking into account horizontal and vertical scrollability independently,
and whether we're in slow scrolling mode.
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::frameViewDidLayout): Have the page
tiled backing update it's coverage flags.
(WebCore::RenderLayerCompositor::pageTiledBacking): Utility function.
(WebCore::RenderLayerCompositor::didMoveOnscreen): Moved from FrameView.
(WebCore::RenderLayerCompositor::willMoveOffscreen): Ditto.
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):
2012-10-25 Elliott Sprehn <esprehn@chromium.org>
Everything that sets RenderObject::m_style should go through setStyleInternal
https://bugs.webkit.org/show_bug.cgi?id=100338
Reviewed by Ojan Vafai.
Whenever we set m_style in RenderObject go through setStyleInternal and make
it inline. This gives a common place to put printfs and makes the code cleaner.
No new tests, just a refactor.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::createObject):
(WebCore::RenderObject::setStyle):
* rendering/RenderObject.h:
(WebCore::RenderObject::setStyleInternal):
2012-10-25 Brady Eidson <beidson@apple.com>
Allow LoaderStrategy to override the ResourceLoadScheduler
https://bugs.webkit.org/show_bug.cgi?id=100355
Reviewed by Anders Carlsson.
Allow LoaderStrategy to override the implementation of the ResourceLoadScheduler.
Add a default implementation that just returns the current ResourceLoadScheduler.
No new tests (No behavior change).
Project file stuff:
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
"Virtualize" ResourceLoadScheduler to expose build issues in preparation for future virtualization:
* loader/ResourceLoadScheduler.cpp:
(WebCore::ResourceLoadScheduler::~ResourceLoadScheduler):
* loader/ResourceLoadScheduler.h:
(ResourceLoadScheduler):
Add the new method plus a default implementation:
* loader/LoaderStrategy.cpp:
(WebCore::LoaderStrategy::resourceLoadScheduler):
* loader/LoaderStrategy.h:
When strategies are enabled, use the LoaderStrategy for this:
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::suspendPostAttachCallbacks):
(WebCore::ContainerNode::resumePostAttachCallbacks):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::loadNow):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::releaseResources):
(WebCore::ResourceLoader::willSendRequest):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::performPostLoadActions):
2012-10-25 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: inspector tests failing after r132454
https://bugs.webkit.org/show_bug.cgi?id=100381
Reviewed by Pavel Feldman.
Added implementation for DOMNodeWrapperMap::reportMemoryUsage method,
otherwise no actual pointer is reported which breaks instrumentation.
* bindings/v8/IntrusiveDOMWrapperMap.h:
2012-10-25 Dominik Röttsches <dominik.rottsches@intel.com>
Init timeout flag in ResourceErrorCF
https://bugs.webkit.org/show_bug.cgi?id=100349
Reviewed by Alexey Proskuryakov.
Initialize the timeout property to true if the network error was a timeout error.
This is a speculative fix for the XHR timeout test cases failing on Apple Win -
I can't verify this on a local machine.
No new tests, covered by
LayoutTests/http/tests/xmlhttprequest/timeout/*
* platform/network/cf/ResourceErrorCF.cpp:
(WebCore::ResourceError::ResourceError): Init m_timeout from error code.
2012-10-25 Kenneth Rohde Christiansen <kenneth@webkit.org>
'resolution' MQ: Printing should use use high resolution images when available
https://bugs.webkit.org/show_bug.cgi?id=100382
Reviewed by Antti Koivisto.
Special case print to not use the dpi of the screen, but one of 300.
Updated the resolution media query test to cover this.
* css/MediaQueryEvaluator.cpp:
(WebCore::resolutionMediaFeatureEval): Update compared decimal points
to three, due to 300 / 96 being equal to 3.125.
2012-10-25 Kinuko Yasuda <kinuko@chromium.org>
[chromium] External FileSystem should use the root path returned by requestFileSystem
https://bugs.webkit.org/show_bug.cgi?id=100372
Reviewed by Kentaro Hara.
External FileSystem should use the root path returned by
requestFileSystem as other type is doing. Current implementation
completely ignore the returned path.
New tests are to be added in chromium (as the type is only available in chromeos and chrome extensions)
* Modules/filesystem/chromium/DOMFileSystemChromium.cpp:
(WebCore::DOMFileSystemBase::createFileSystemURL):
2012-10-25 Kevin Ellis <kevers@chromium.org>
Can't easily position the cursor on an empty line in a textarea with touch if touch adjustment is enabled
https://bugs.webkit.org/show_bug.cgi?id=97576
Reviewed by Antonio Gomes.
Consolidate touch adjustment candidates that are
editable. Adjustment becomes coarse being based
on the bounds of the outermost editable element.
This fix allows tap positioning of the text caret
on a blank line immediately above or below another
element.
Test: touchadjustment/editable-content.html
* page/TouchAdjustment.cpp:
(WebCore::TouchAdjustment::compileSubtargetList):
(WebCore::TouchAdjustment::hybridDistanceFunction):
2012-10-25 Yury Semikhatsky <yurys@chromium.org>
Memory instrumentation: add reportMemoryUsage to ImageObserver interface
https://bugs.webkit.org/show_bug.cgi?id=100091
Reviewed by Pavel Feldman.
Added reportMemoryUsage method to ImageObserver to make sure it is reported as
appropriate descendant(with pointer adjusted due to offsets added by inheritance)
rather than as a standalone memory block.
* platform/graphics/ImageObserver.h:
(ImageObserver):
2012-10-25 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Overrides] Add latitude and longitude labels for the geolocation fields
https://bugs.webkit.org/show_bug.cgi?id=100375
Reviewed by Yury Semikhatsky.
No new tests, a UI change.
* English.lproj/localizedStrings.js:
* inspector/front-end/SettingsScreen.js:
(WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):
2012-10-25 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
Add setMediaTypeOverride to window.internals.settings
https://bugs.webkit.org/show_bug.cgi?id=100249
Reviewed by Kenneth Rohde Christiansen.
Added setMediaTypeOverride to window.internals.settings.
Test: fast/media/print-restores-previous-mediatype.html
* WebCore.exp.in: Exported WebCore::Settings::setMediaTypeOverride(WTF::String const&) for MAC.
* page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::setMediaTypeOverride):
(WebCore):
* page/Settings.h:
(Settings):
(WebCore::Settings::mediaTypeOverride):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setMediaTypeOverride):
(WebCore):
* testing/InternalSettings.h:
(Backup):
(InternalSettings):
* testing/InternalSettings.idl:
2012-10-22 Mikhail Naganov <mnaganov@chromium.org>
[Chromium] Add supportMultipleWindows setting, needed for Android
https://bugs.webkit.org/show_bug.cgi?id=99716
Reviewed by Adam Barth.
Add supportMultipleWindows settings for reusing the same view when
opening popups. This is required for emulating the behavior of
Android WebView. Adding into WebCore, as other ports might want to
use this setting in the future.
Tests: fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html
fast/dom/Window/window-open-no-multiple-windows.html
fast/forms/post-popup-no-multiple-windows.html
* loader/FrameLoader.cpp:
(WebCore::createWindow):
* page/ContextMenuController.cpp:
(WebCore::openNewWindow):
* page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::setSupportsMultipleWindows):
(WebCore):
* page/Settings.h:
(Settings):
(WebCore::Settings::supportsMultipleWindows):
2012-10-25 Alexander Pavlov <apavlov@chromium.org>
Unreviewed, fix Web Inspector frontend compilability
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline.prototype._ondragstart):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
(WebInspector.StylePropertyTreeElement.prototype):
2012-10-23 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Drag and drop property value from Inspector is not working as expected
https://bugs.webkit.org/show_bug.cgi?id=100040
Reviewed by Vsevolod Vlasov.
Do not start a custom drag for a tree element if there is a non-collapsed selection in the Inspector.
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline.prototype._ondragstart):
2012-10-25 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: NMI instrument InspectorDebuggerAgent. It uses a lot of memory on heavy js sites because it keeps all the scripts in a map.
https://bugs.webkit.org/show_bug.cgi?id=100340
Reviewed by Yury Semikhatsky.
* dom/WebCoreMemoryInstrumentation.cpp:
(WebCore):
* dom/WebCoreMemoryInstrumentation.h:
(WebCoreMemoryTypes):
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::reportMemoryUsage):
(WebCore):
(WebCore::ScriptDebugListener::Script::reportMemoryUsage):
* inspector/InspectorDebuggerAgent.h:
(InspectorDebuggerAgent):
* inspector/ScriptDebugListener.h:
(Script):
2012-10-25 Adam Barth <abarth@webkit.org>
[V8] We can handle ActiveDOMNodes and DOMNodes in the same GC visitor
https://bugs.webkit.org/show_bug.cgi?id=100351
Reviewed by Eric Seidel.
There is no reason to handle active DOM nodes in a separate pass from
regular DOM nodes anymore.
* bindings/v8/V8DOMMap.cpp:
* bindings/v8/V8DOMMap.h:
(WebCore):
* bindings/v8/V8GCController.cpp:
(WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
(WebCore::NodeVisitor::NodeVisitor):
(NodeVisitor):
(WebCore::NodeVisitor::visitNodeWrapper):
(WebCore::V8GCController::majorGCPrologue):
2012-10-25 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Improper out-of-order call on a rule that is being removed from the stylesheet.
https://bugs.webkit.org/show_bug.cgi?id=100357
Reviewed by Vsevolod Vlasov.
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::deleteRule):
2012-10-25 Adam Barth <abarth@webkit.org>
[V8] DOMDataStoreHandle serves no purpose and can be removed
https://bugs.webkit.org/show_bug.cgi?id=100333
Reviewed by Eric Seidel.
After https://bugs.webkit.org/show_bug.cgi?id=100316,
DOMDataStoreHandle is just a glorified OwnPtr.
* bindings/v8/DOMWrapperWorld.h:
(WebCore::DOMWrapperWorld::domDataStore):
(DOMWrapperWorld):
(WebCore::DOMWrapperWorld::DOMWrapperWorld):
* bindings/v8/V8DOMMap.cpp:
* bindings/v8/V8DOMMap.h:
2012-10-25 Elliott Sprehn <esprehn@chromium.org>
Remove dead Node::isBlockFlowOrBlockTable
https://bugs.webkit.org/show_bug.cgi?id=100336
Reviewed by Eric Seidel.
Nothing uses Node::isBlockFlowOrBlockTable anymore so remove it.
No new tests needed, just removing dead code.
* dom/Node.cpp:
* dom/Node.h:
(Node):
2012-10-25 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Fix "check-inspector-strings" script and fix localized strings.
https://bugs.webkit.org/show_bug.cgi?id=100090
Reviewed by Vsevolod Vlasov.
Fixed localized strings table.
* English.lproj/localizedStrings.js: Added missing, removed orhans.
* inspector/front-end/CSSNamedFlowView.js: Removed tailing whitespaces.
* inspector/front-end/NativeMemorySnapshotView.js:
Removed double localization.
2012-10-25 Adam Barth <abarth@webkit.org>
[V8] We can merge DOMDataStore, ScopedDOMDataStore, and StaticDOMDataStore into one class
https://bugs.webkit.org/show_bug.cgi?id=100316
Reviewed by Eric Seidel.
Prior to this patch, DOMDataStore had two subclasses,
ScopedDOMDataStore and StaticDOMDataStore, which used slighly different
wrapper map base classes and had different lifetimes. This patch
unifies all these classes into DOMDataStore itself. This makes this
code much more straightforward.
* WebCore.gypi:
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::DOMDataStore):
(WebCore::DOMDataStore::~DOMDataStore):
(WebCore::DOMDataStore::current):
(WebCore::DOMDataStore::reportMemoryUsage):
* bindings/v8/DOMDataStore.h:
(DOMDataStore):
(WebCore::DOMDataStore::domNodeMap):
(WebCore::DOMDataStore::activeDomNodeMap):
(WebCore::DOMDataStore::domObjectMap):
(WebCore::DOMDataStore::activeDomObjectMap):
* bindings/v8/ScopedDOMDataStore.cpp: Removed.
* bindings/v8/ScopedDOMDataStore.h: Removed.
* bindings/v8/SerializedScriptValue.cpp:
(WebCore::neuterBinding):
* bindings/v8/StaticDOMDataStore.cpp: Removed.
* bindings/v8/StaticDOMDataStore.h: Removed.
* bindings/v8/V8DOMMap.cpp:
(WebCore::DOMDataStoreHandle::DOMDataStoreHandle):
(WebCore::DOMDataStoreHandle::~DOMDataStoreHandle):
(WebCore::visitActiveDOMNodes):
(WebCore::visitDOMObjects):
(WebCore::visitActiveDOMObjects):
* bindings/v8/V8DOMMap.h:
(WebCore):
* bindings/v8/V8PerIsolateData.h:
(V8PerIsolateData):
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::WorkerScriptController):
(WebCore::WorkerScriptController::~WorkerScriptController):
* bindings/v8/WorkerScriptController.h:
(WorkerScriptController):
2012-10-24 Kent Tamura <tkent@chromium.org>
Minimize CSS rulesets for multiple-fields input
https://bugs.webkit.org/show_bug.cgi?id=100198
Reviewed by Kentaro Hara.
- Unify rulesets for input::-webkit-datetime-edit-*-field.
input::-webkit-datetime-edit-*-field had identical ruleset.
- Move some rulesets near to related rulesets.
Move -webkit-datetime-edit-*-field:focus nearby the new unified ruleset.
Move input::-webkit-datetime-edit-second-field[readonly] nearby
input::-webkit-datetime-edit-minute-field[readonly].
No new tests. This shouldn't make any behavior change.
* css/html.css:
(input::-webkit-datetime-edit-year-field):
(input::-webkit-datetime-edit-year-field:focus):
(input::-webkit-datetime-edit-second-field[readonly]):
2012-10-24 Kent Tamura <tkent@chromium.org>
REGRESSION(r132291): Crash in BaseMultipleFieldsDateAndTimeInputType
https://bugs.webkit.org/show_bug.cgi?id=100326
Reviewed by Eric Seidel.
Test: fast/forms/time-multiple-fields/time-multiple-fields-change-type.html
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
We need to disconnect m_spinButtonElement before destructing the UA shadow tree.
2012-10-24 Adam Barth <abarth@webkit.org>
[V8] DOMData is no longer needed
https://bugs.webkit.org/show_bug.cgi?id=100313
Reviewed by Eric Seidel.
This class serves no purpose anymore and can be deleted.
* WebCore.gypi:
* bindings/v8/DOMData.cpp: Removed.
* bindings/v8/DOMData.h: Removed.
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
* bindings/v8/DOMDataStore.h:
(WebCore):
(DOMDataStore):
* bindings/v8/SerializedScriptValue.cpp:
(WebCore::neuterBinding):
* bindings/v8/V8DOMMap.cpp:
(WebCore::getDOMNodeMap):
(WebCore::getActiveDOMNodeMap):
(WebCore::getDOMObjectMap):
(WebCore::getActiveDOMObjectMap):
(WebCore::removeAllDOMObjects):
(WebCore::visitActiveDOMNodes):
(WebCore::visitDOMObjects):
(WebCore::visitActiveDOMObjects):
2012-10-24 Kent Tamura <tkent@chromium.org>
Sort an Xcode project file.
* WebCore.xcodeproj/project.pbxproj: Sorted.
2012-10-24 Adam Barth <abarth@webkit.org>
[V8] AbstractWeakReferenceMap is unnecessarily general and complex
https://bugs.webkit.org/show_bug.cgi?id=100175
Reviewed by Eric Seidel.
Before this patch, AbstractWeakReferenceMap served two masters:
1) DOM wrappers
2) NPV8 function templates
These two uses cases pushed AbstractWeakReferenceMap to be more general
and complex that needed. This patch separates these two uses cases into
two separate classes. V8NPTemplateMap is all of 40 lines of code. It's
not worth complicating the DOM wrapper code path to share that tiny
amount of code.
The other thing this patch does is store a pointer to the DOM wrapper
map as the weak callback context object. That means we no longer need
to search through all the wrapper maps in order to find the map that
contains this particular DOM wrapper.
* WebCore.gypi:
* bindings/v8/DOMData.cpp:
* bindings/v8/DOMData.h:
(DOMData):
* bindings/v8/DOMDataStore.cpp:
- Delete all these complicated weak callback functions. The weak
callback functions are now an order of magnitude simpler and
declared as private member functions on the wrapper map.
* bindings/v8/DOMDataStore.h:
(WebCore::DOMDataStore::domNodeMap):
(WebCore::DOMDataStore::activeDomNodeMap):
(DOMDataStore):
- We now have a consistent type to use for all these wrapper maps.
Both the hash map and the intrusive map derive from
DOMWrapperMap (with a single template parameter).
* bindings/v8/DOMWrapperMap.h: Added.
(WebCore):
(DOMWrapperVisitor):
- The visitor is no longer an inner class. It's just a top-level
class that does the same thing.
(DOMWrapperMap):
- The abstract interface for DOMWrapperMap has about half as many
functions as the old AbstractWeakReferenceMap because the two use
cases are disentangled.
(WebCore::DOMWrapperMap::~DOMWrapperMap):
(DOMWrapperHashMap):
- This is a concrete instance of DOMWrapperMap that uses a hash map.
(WebCore::DOMWrapperHashMap::DOMWrapperHashMap):
(WebCore::DOMWrapperHashMap::remove):
(WebCore::DOMWrapperHashMap::defaultWeakCallback):
- Notice that the context parameter now points to the hashmap
itself rather than to the native object. Now that we don't need
to handle the NPAPI case, we can recover the native object from
the wrapper using toNative. The assert in set() ensures that this
always works.
* bindings/v8/DOMWrapperWorld.h:
* bindings/v8/IntrusiveDOMWrapperMap.h:
- These classes are now simplified because they need to implement
fewer functions.
(WebCore::DOMNodeWrapperMap::weakCallback):
- For this weak callback, we still use the native object as the
context parameter. We could also recover the native object from
the wrapper, which means this context parameter is available to
do other work.
* bindings/v8/ScopedDOMDataStore.cpp:
(WebCore::ScopedDOMDataStore::ScopedDOMDataStore):
- This code no longer needs to have knowledge of which weak
callbacks these objects use.
(WebCore::ScopedDOMDataStore::~ScopedDOMDataStore):
- We need to clear the maps before deleting them because there are
still JavaScript objects that have references to the map in their
weak callback parameter. Previously, we handled this case because
we would search all the wrapper maps and fail to find the wrapper.
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::visitExternalArrays):
* bindings/v8/StaticDOMDataStore.cpp:
- This code no longer needs to have knowledge of which weak
callback these maps use.
* bindings/v8/StaticDOMDataStore.h:
(StaticDOMDataStore):
* bindings/v8/V8DOMMap.cpp:
(WebCore::getDOMNodeMap):
(WebCore::getActiveDOMNodeMap):
(WebCore::removeAllDOMObjects):
- Rather than using some complicated visitor pattern, we can now
just call clear() directly on the maps to remove all the objects.
(WebCore::visitActiveDOMNodes):
(WebCore::visitDOMObjects):
(WebCore::visitActiveDOMObjects):
* bindings/v8/V8DOMMap.h:
(WebCore):
- Delete the old versions of these classes.
(DOMDataStoreHandle):
- Style nit: one-argument constructors should be marked explicit.
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::domWrapperType):
- I moved this logic into WrapperTypeInfo.h to avoid a circular
header dependency.
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::getCachedWrapper):
* bindings/v8/V8GCController.cpp:
- EnsureWeakDOMNodeVisitor is no longer used (or needed since we no
longer clear the weak callbacks in V8GCController).
* bindings/v8/V8NPObject.cpp:
(V8NPTemplateMap):
- staticTemplateMap is no longer an instance of WeakReferenceMap.
Instead, this patch just implements the functionality we need
here directly.
(WebCore::V8NPTemplateMap::get):
(WebCore::V8NPTemplateMap::set):
(WebCore::V8NPTemplateMap::sharedInstance):
(WebCore::V8NPTemplateMap::weakCallback):
(WebCore::V8NPTemplateMap::dispose):
(WebCore::npObjectGetProperty):
(WebCore):
(WebCore::staticNPObjectMap):
(WebCore::weakNPObjectCallback):
- DOMWrapperMap no longer exposes a "forget" function. Instead, we
just use the more basic "remove" and "Dispose" operations to do
the same thing. This is possible now because we no longer have
"removeIfPossible" to support searching all the wrapper maps for
the one that has the right wrapper.
(WebCore::createV8ObjectForNPObject):
- DOMWrapperMap No longer has a "contains" function. Instead, we
use get, which actually makes this code more efficient because we
only do one hash map lookup.
(WebCore::forgetV8ObjectForNPObject):
- The changes here are a combination of the two sorts of changes
above.
* bindings/v8/WrapperTypeInfo.h:
(WebCore::toNative):
(WebCore::toWrapperTypeInfo):
- The patch moves these functions into this header to avoid a
circular header dependency.
2012-10-24 Arnaud Renevier <a.renevier@sisa.samsung.com>
[cairo] unneeded FloatRect object creation in BitmapImage::draw
https://bugs.webkit.org/show_bug.cgi?id=100298
Reviewed by Martin Robinson.
Do not copy FloatRect arguments src and dst to local variables.
Instead, use src and dst directly.
No new tests. No change in behavior.
* platform/graphics/cairo/BitmapImageCairo.cpp:
(WebCore::BitmapImage::draw):
2012-10-24 Seokju Kwon <seokju.kwon@samsung.com>
[SOUP] Provide logging for SocketStreamHandleSoup
https://bugs.webkit.org/show_bug.cgi?id=100215
Reviewed by Alexey Proskuryakov.
Add logging to SocketStreamHandleSoup to facilitate debugging.
* platform/network/soup/SocketStreamHandleSoup.cpp:
(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::~SocketStreamHandle):
(WebCore::SocketStreamHandle::platformSend):
(WebCore::SocketStreamHandle::platformClose):
2012-10-24 Nico Weber <thakis@chromium.org>
Pass on exif orientation from ImageSource when using the open-source image decoders
https://bugs.webkit.org/show_bug.cgi?id=100164
Reviewed by Eric Seidel.
The orientation is honored always for image documents, and optionally
for <img> elements if shouldRespectImageOrientation is set (off by
default). However, the feature needs port-specific modifications to
GraphicsContext (without this, webcore will use the rotated bounds but
draw the image as if it hadn't be rotated, resulting in squished
pixels), and most ports don't implement these yet -- so put
turning this on for image documents behind a port-specific #ifdef.
No observable behavior change. Once it's hooked up, it will be tested
by fast/images/exif-orientation.html.
* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::size):
(WebCore::ImageSource::frameSizeAtIndex):
(WebCore::ImageSource::orientationAtIndex):
* platform/graphics/chromium/DeferredImageDecoder.cpp:
(WebCore::DeferredImageDecoder::orientation):
(WebCore):
* platform/graphics/chromium/DeferredImageDecoder.h:
(DeferredImageDecoder):
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::readImageOrientation):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::shouldRespectImageOrientation):
2012-10-24 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=100169
We should make TileCache tiles the size of the tile coverage rect
when we can't do fast scrolling
-and-
<rdar://problem/12505021>
Reviewed by Simon Fraser.
Some websites that don't do fast scrolling still scroll slower than
they do with tiled drawing disabled.
https://bugs.webkit.org/show_bug.cgi?id=99768 addressed some of this
performance problem, but there is still more ground to make up. This
patch addresses the remaining issue by making tiles the size of the
window when we can't do fast scrolling.
The constructor and create function no longer take a size parameter.
That's all fully controlled within TileCache now. m_tileSize is no
longer const.
* platform/graphics/ca/mac/TileCache.h:
Store the current default size as constants so that we can access it
in both the constructor and adjustTileSizeForCoverageRect().
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::TileCache):
This new function will set m_tileSize to the size of the tile
coverage rect if the tile coverage is limited to the visible area.
Otherwise, the tiles are set to be the default size.
(WebCore::TileCache::adjustTileSizeForCoverageRect):
Call adjustTileSizeForCoverageRect().
(WebCore::TileCache::revalidateTiles):
No need to send in a size anymore.
* platform/graphics/ca/mac/WebTileCacheLayer.h:
(WebCore):
2012-10-24 David Barton <dbarton@mathscribe.com>
MathML tests trigger font cache assertions in debug bots
https://bugs.webkit.org/show_bug.cgi?id=100268
Reviewed by Eric Seidel.
Add a FontCachePurgePreventer to fix this.
Tested by existing tests.
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::updateFromElement):
2012-10-24 Tim Horton <timothy_horton@apple.com>
Update main frame scroll position immediately for programmatic scrolls
https://bugs.webkit.org/show_bug.cgi?id=98074
Reviewed by Simon Fraser.
Immediately update the main frame scroll position after a programmatic scroll,
so that performing a scrollBy or scrollTo will be instantly reflected in
all of the scroll offset accessors.
No new tests; this will be tested by many scrolling tests once WebKitTestRunner
can use threaded scrolling.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
2012-10-24 Mihai Parparita <mihaip@chromium.org>
[Chromium] Allow pushState and related history APIs to be disabled per context
https://bugs.webkit.org/show_bug.cgi?id=99780
Reviewed by Adam Barth.
Chrome Apps do not support the history API (or navigation in general).
Since pushState is generally feature detected, it's cleanest to disable
it via a V8 per-context feature, so that applications can have the
appropriate fallback behavior (other history APIs are re-mapped to throw
exceptions, since history.back() and the link are not feature detected).
* dom/ContextFeatures.cpp:
(WebCore::ContextFeatures::pushStateEnabled):
(WebCore):
* dom/ContextFeatures.h:
* dom/Document.cpp:
(WebCore::Document::enqueuePopstateEvent):
* page/History.idl:
2012-10-24 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Make sure all events are dispatched asynchronously
https://bugs.webkit.org/show_bug.cgi?id=100286
Reviewed by Adam Barth.
This is necessary to safeguard against if the UA uses synchronous UA->WebKit calls,
and the web application calls methods on the RTCPeerConnection in the event callbacks.
Test: fast/mediastream/RTCPeerConnection-events.html
Also tested by the chromium webrtc fuzz tests.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::negotiationNeeded):
(WebCore::RTCPeerConnection::didGenerateIceCandidate):
(WebCore::RTCPeerConnection::didAddRemoteStream):
(WebCore::RTCPeerConnection::didRemoveRemoteStream):
(WebCore::RTCPeerConnection::didAddRemoteDataChannel):
(WebCore::RTCPeerConnection::changeReadyState):
(WebCore::RTCPeerConnection::changeIceState):
(WebCore):
(WebCore::RTCPeerConnection::scheduleDispatchEvent):
(WebCore::RTCPeerConnection::scheduledEventTimerFired):
* Modules/mediastream/RTCPeerConnection.h:
(RTCPeerConnection):
2012-10-24 Mark Pilgrim <pilgrim@chromium.org>
[Chromium] Remove screen-related functions from PlatformSupport
https://bugs.webkit.org/show_bug.cgi?id=97474
Reviewed by Adam Barth.
Screen-related functions like screenHorizontalDPI that
used to be on PlatformSupport are now accessed through a new
PlatformPageClient attached to Widget in WebCore-land, which is
implemented by ChromeClientImpl in WebKit-land, which proxies
calls to WebWidgetClient, which is actually implemented in
Chromium-land.
* WebCore.gypi:
* platform/Widget.h:
* platform/chromium/PageClientChromium.h: Copied from Source/WebCore/platform/chromium/PlatformWidget.h.
(PageClientChromium):
* platform/chromium/PlatformScreenChromium.cpp:
(WebCore::toPlatformPageClient):
(WebCore):
(WebCore::screenHorizontalDPI):
(WebCore::screenVerticalDPI):
(WebCore::screenDepth):
(WebCore::screenDepthPerComponent):
(WebCore::screenIsMonochrome):
(WebCore::screenRect):
(WebCore::screenAvailableRect):
* platform/chromium/PlatformSupport.h:
(PlatformSupport):
2012-10-24 Adam Barth <abarth@webkit.org>
[V8] WorkerContextExecutionProxy doesn't need to track events
https://bugs.webkit.org/show_bug.cgi?id=100295
Reviewed by Eric Seidel.
This code was added when this code was originally upstreamed as part of
the Chromium port. There doesn't appear to be any reason why
WorkerContextExecutionProxy needs to keep a Vector of raw event
pointers. Those points are likely to become dangling, making the rest
of what this code does very sketchy.
* bindings/v8/V8WorkerContextEventListener.cpp:
(WebCore::V8WorkerContextEventListener::callListenerFunction):
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::WorkerContextExecutionProxy::dispose):
* bindings/v8/WorkerContextExecutionProxy.h:
(WebCore::WorkerContextExecutionState::WorkerContextExecutionState):
(WorkerContextExecutionProxy):
2012-10-24 Max Vujovic <mvujovic@adobe.com>
[CSS Shaders] The mesh should be specified using <column, row> order
https://bugs.webkit.org/show_bug.cgi?id=96285
Reviewed by Dean Jackson.
Change StyleResolver and CSSComputedStyleDeclaration to handle the mesh parameters in
column, row order.
Test: css3/filters/custom/custom-filter-mesh-column-row-order.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::valueForFilter):
Append the number of columns before the number of rows in the meshParameters
CSSValueList.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::createCustomFilterOperation):
Store the second mesh parameter in meshRows instead of meshColumns.
2012-10-24 Jae Hyun Park <jae.park@company100.net>
loaderRunLoop() should use synchronization instead of while loop
https://bugs.webkit.org/show_bug.cgi?id=55402
Reviewed by Alexey Proskuryakov.
Originally, loaderRunLoop() sleeps until a thread has started and set
the loaderRunLoopObject static variable. This patch uses
ThreadCondition to synchronize instead of a while loop.
No new tests (No behavior change).
* platform/network/cf/LoaderRunLoopCF.cpp:
(WebCore::runLoaderThread):
(WebCore::loaderRunLoop):
* platform/network/cf/LoaderRunLoopCF.h:
(WebCore):
2012-10-24 Sailesh Agrawal <sail@chromium.org>
Incorrect keycodes for numpad /, -, +, .
https://bugs.webkit.org/show_bug.cgi?id=99188
Reviewed by Tony Chang.
In r57951 we switched to mapping keys by character code.
This regressed the numpad keys which no longer match the Windows virtual key codes.
This CL fixes this by never mapping numpad keys by character code.
Test: platform/mac/fast/events/numpad-keycode-mapping.html
* platform/mac/PlatformEventFactoryMac.mm:
(WebCore::windowsKeyCodeForKeyEvent):
2012-10-24 Simon Fraser <simon.fraser@apple.com>
Null-check the RenderView in ocument::windowScreenDidChange to fix a crash when saving PDFs
https://bugs.webkit.org/show_bug.cgi?id=100141
<rdar://problem/12559147>
Reviewed by Tim Horton.
For PDF documents the RenderView is null, so null-check it to avoid a crash
when saving PDFs.
* dom/Document.cpp:
(WebCore::Document::windowScreenDidChange):
2012-10-24 Terry Anderson <tdanderson@chromium.org>
Handle two-finger tap gestures in the same way as long-press gestures
https://bugs.webkit.org/show_bug.cgi?id=99947
Reviewed by Adam Barth.
Currently a long-press gesture is used to dispatch a context menu (for platforms
defining CONTEXT_MENUS) or to select text (for Android). Additionally, for platforms
defining TOUCH_ADJUSTMENT, gesture target fuzzing is performed on the location and
touch area of the long-press gesture.
This CL will cause two-finger tap gestures to be handled in the same way as long-press
gestures. The location and touch area of a two-finger tap gesture will correspond to
the location and touch area of the first finger down; the location/area of the second
finger will be ignored.
Test: touchadjustment/touch-links-two-finger-tap.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureLongPress):
(WebCore):
(WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
(WebCore::EventHandler::handleGestureTwoFingerTap):
(WebCore::EventHandler::adjustGesturePosition):
* page/EventHandler.h:
(EventHandler):
2012-10-24 Chris Fleizach <cfleizach@apple.com>
AX:When aria-label is used, the text under an element is still appearing as the AXTitle
https://bugs.webkit.org/show_bug.cgi?id=98167
Reviewed by Beth Dakin.
According to WAI-ARIA text computation, the presence of aria-label and alternative text
should override the visible text within an element.
Test: platform/mac/accessibility/aria-label-overrides-visible-text.html
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper accessibilityTitle]):
2012-10-24 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r132303 and r132312.
http://trac.webkit.org/changeset/132303
http://trac.webkit.org/changeset/132312
https://bugs.webkit.org/show_bug.cgi?id=100287
Triggering crashes on many popular websites (Requested by
leviw|gardening on #webkit).
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::detectAtToken):
* css/CSSParser.h:
* css/CSSPropertySourceData.h:
* css/RuleSet.cpp:
(WebCore::RuleData::RuleData):
(WebCore::RuleSet::addRule):
(WebCore::RuleSet::addRegionRule):
(WebCore::RuleSet::addRulesFromSheet):
(WebCore::RuleSet::addStyleRule):
* css/RuleSet.h:
(RuleData):
(RuleSet):
* css/StyleResolver.cpp:
(WebCore::makeRuleSet):
(WebCore::StyleResolver::appendAuthorStyleSheets):
(WebCore::StyleResolver::matchScopedAuthorRules):
(WebCore::StyleResolver::locateSharedStyle):
* css/StyleResolver.h:
(StyleResolver):
* css/StyleRule.cpp:
(WebCore::StyleRuleBase::reportMemoryUsage):
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy):
(WebCore::StyleRuleBase::createCSSOMWrapper):
* css/StyleRule.h:
* css/StyleScopeResolver.cpp:
(WebCore::StyleScopeResolver::reportMemoryUsage):
* css/StyleScopeResolver.h:
(WebCore):
(StyleScopeResolver):
* css/StyleSheetContents.cpp:
(WebCore::childRulesHaveFailedOrCanceledSubresources):
2012-10-24 Joshua Bell <jsbell@chromium.org>
IndexedDB: Cursor property value identities should be preserved
https://bugs.webkit.org/show_bug.cgi?id=100051
Reviewed by Tony Chang.
Some W3C test submissions point out that subsequent accesses to cursor properties should
yield the same value until the cursor advances. We handled this with custom binding code for
IDBCursor.value but not IDBCursor.key or IDBCursor.primaryKey. The custom value code is
being removed in webkit.org/b/100034 in favor of returning ScriptValue and the same fix can
be applied to key/primaryKey.
Test: storage/indexeddb/cursor-properties.html
* Modules/indexeddb/IDBCursor.cpp: Compute/store/serve up ScriptValues instead of IDBKeys
(WebCore::IDBCursor::key):
(WebCore::IDBCursor::primaryKey):
(WebCore::IDBCursor::setValueReady):
* Modules/indexeddb/IDBCursor.h:
(IDBCursor):
(WebCore::IDBCursor::idbPrimaryKey): Expose this for callers that need access to the IDBKey
* Modules/indexeddb/IDBCursor.idl:
* Modules/indexeddb/IDBObjectStore.cpp: ... like this one.
(WebCore):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::dispatchEvent): Pass along script context, for the conversion.
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::idbKeyToScriptValue): New method for explicit conversion.
(WebCore):
* bindings/v8/IDBBindingUtilities.h:
(WebCore):
2012-10-24 Ami Fischman <fischman@chromium.org>
call to setNeedsLayout during RenderVideo::paintReplaced
https://bugs.webkit.org/show_bug.cgi?id=100265
Reviewed by Eric Carlson.
Removed unnecessary call and added new defensive guards to catch erroneous setNeedsLayout() calls
during paints earlier (so the offending calls are in the emitted stacktrace).
No new tests - new defensive checks are triggered by existing tests.
* page/FrameView.cpp:
(WebCore::FrameView::paintContents): forbid setNeedsLayout() during painting
* rendering/RenderObject.cpp:
(WebCore):
(WebCore::RenderObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope):
(WebCore::RenderObject::SetLayoutNeededForbiddenScope::~SetLayoutNeededForbiddenScope):
* rendering/RenderObject.h:
(RenderObject):
(SetLayoutNeededForbiddenScope): added helper class for forbidding setNeedsLayout() in a scope.
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::paintReplaced): drop the offending & unnecessary call to updatePlayer().
2012-10-24 Adam Barth <abarth@webkit.org>
[V8] ActiveDOMObjectEpilogueVisitor is unnecessary and can be deleted
https://bugs.webkit.org/show_bug.cgi?id=100208
Reviewed by Eric Seidel.
Rather than clearing and re-establishing the weak callback for
ActiveDOMObjects during every GC, this patch puts all the
ActiveDOMObjects with pending activity into an object group with a live
object, causing them not to be garbage collected.
In addition to simplifying this code, this patch makes the patch in
https://bugs.webkit.org/show_bug.cgi?id=100175 much easier because
V8GCController no longer needs to know how to configure the weak
callbacks for these objects.
* bindings/v8/V8GCController.cpp:
(WebCore::ActiveDOMObjectPrologueVisitor::ActiveDOMObjectPrologueVisitor):
(ActiveDOMObjectPrologueVisitor):
(WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
(WebCore::V8GCController::majorGCPrologue):
(WebCore::V8GCController::majorGCEpilogue):
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::V8PerIsolateData):
* bindings/v8/V8PerIsolateData.h:
(WebCore::V8PerIsolateData::liveRoot):
(V8PerIsolateData):
2012-10-24 Brady Eidson <beidson@apple.com>
Add a strategy for loader customization.
https://bugs.webkit.org/show_bug.cgi?id=100278
Reviewed by Alexey Proskuryakov.
It's empty for now and does nothing, just like the goggles.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/PlatformStrategies.h:
(WebCore::PlatformStrategies::loaderStrategy):
(PlatformStrategies):
(WebCore::PlatformStrategies::PlatformStrategies):
2012-10-24 Tony Chang <tony@chromium.org>
Setting width of a flexitem causes the adjacent flex item to be displayed poorly.
https://bugs.webkit.org/show_bug.cgi?id=99925
Reviewed by Ojan Vafai.
Make sure that we always repaint when moving a child. This is similar to what RenderDeprecatedFlexibleBox does.
Test: css3/flexbox/repaint-during-resize-no-flex.html
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::setFlowAwareLocationForChild): Move logic for repaining into the helper method
for setting the location of a child.
(WebCore::RenderFlexibleBox::layoutColumnReverse): Remove code for repaint since it's now in setFlowAwareLocationForChild.
(WebCore::RenderFlexibleBox::adjustAlignmentForChild): Remove code for repaint since it's now in setFlowAwareLocationForChild.
2012-10-24 Simon Fraser <simon.fraser@apple.com>
Fix CALayer hiearchy when combining tiling with preserve-3d
https://bugs.webkit.org/show_bug.cgi?id=100205
Reviewed by Dean Jackson.
When an element has "transform-style: preserve-3d", its GraphicsLayerCA has a
m_structuralLayer which is a CATransformLayer. The primary CALayer which contains rendered
content becomes a sublayer of the CATransformLayer. If the element has backface-visibility:hidden,
it is the primary layer that is set to be single-sided.
In r131940 we started to use TileCaches in place of CATiledLayer. TileCaches work via
"customSublayers" returned from the PlatformCALayer, where the custom sublayer is
the tile cache container layer. However, the custom sublayers were being added as
children of the structural (CATransformLayer) layer, not of the primary (CALayer) layer,
thus they were not affected by the doubleSided property.
This change cleans up the confusing code in GraphicsLayerCA::updateSublayerList()
by maintaining two vectors of PlatformCALayers, one for sublayers of the structural
layer, and one for sublayers of the primary layer. It adds custom sublayers to
the latter list, so now the tile cache container layer becomes a sublayer of
the primary layer, so is affected by that layer's doubleSided property.
Test: compositing/tiling/backface-preserve-3d-tiled.html
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateSublayerList):
2012-10-23 Zhenyao Mo <zmo@google.com>
Update mozilla's CheckedInt.h to the latest version
https://bugs.webkit.org/show_bug.cgi?id=100177
Reviewed by Kenneth Russell.
* html/canvas/CheckedInt.h: Sync with mozilla's copy with minumum modifications.
(detail):
(IsSupportedPass2):
(IsSupported):
(UnsignedType):
(IsSigned):
(TwiceBiggerType):
(PositionOfSignBit):
(MinValue):
(MaxValue):
(WebCore::detail::HasSignBit):
(WebCore::detail::BinaryComplement):
(WebCore::detail::IsInRange):
(WebCore::detail::IsAddValid):
(WebCore::detail::IsSubValid):
(WebCore::detail::IsMulValid):
(WebCore::detail::IsDivValid):
(WebCore::detail::OppositeIfSignedImpl::run):
(WebCore::detail::OppositeIfSigned):
(WebCore):
(CheckedInt):
(WebCore::CheckedInt::CheckedInt):
(WebCore::CheckedInt::value):
(WebCore::CheckedInt::isValid):
(WebCore::CheckedInt::operator -):
(WebCore::CheckedInt::operator ==):
(WebCore::CheckedInt::operator++):
(WebCore::CheckedInt::operator--):
(CastToCheckedIntImpl):
(WebCore::detail::CastToCheckedIntImpl::run):
(WebCore::castToCheckedInt):
(WebCore::operator ==):
* html/canvas/DataView.cpp: change valid() to isValid().
(WebCore::DataView::create):
* html/canvas/WebGLBuffer.cpp: Ditto.
(WebCore::WebGLBuffer::associateBufferDataImpl):
(WebCore::WebGLBuffer::associateBufferSubDataImpl):
* html/canvas/WebGLRenderingContext.cpp: Ditto.
(WebCore):
(WebCore::WebGLRenderingContext::drawArrays):
* platform/graphics/GraphicsContext3D.cpp: Ditto.
(WebCore::GraphicsContext3D::computeImageSizeInBytes):
2012-10-24 Noam Rosenthal <noam.rosenthal@nokia.com>
[Qt-on-Mac] GraphicsSurfaces should not create a global IOSurface handle
https://bugs.webkit.org/show_bug.cgi?id=89885
Reviewed by Kenneth Rohde Christiansen.
Use mach_port instead of global tokens for IOSurfaces.
Global IOSurfaces are accessible from other processes using their handle, while mach_ports
can only be shared directly via IPC.
Tested by existing WebGL tests.
* platform/graphics/surfaces/GraphicsSurfaceToken.h:
(GraphicsSurfaceToken):
* platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
2012-10-24 Rick Byers <rbyers@chromium.org>
image-set doesn't round-trip properly with cssText
https://bugs.webkit.org/show_bug.cgi?id=99725
Reviewed by Beth Dakin.
Fix serialization of -webkit-image-set rules to use the same format as
is used for parsing.
Test: fast/css/image-set-setting.html
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::customCssText):
* css/CSSValueList.h:
(WebCore::CSSValueList::item): Add const overload
2012-10-24 Jonathan Feldstein <jfeldstein@rim.com>
BlackBerry fix for webgl-depth-texture.html
https://bugs.webkit.org/show_bug.cgi?id=100258
Reviewed by Yong Li.
Removed a platform specific define that is unnecessary.
* platform/graphics/GraphicsContext3D.cpp:
(WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
2012-10-24 Nico Weber <thakis@chromium.org>
Honor image orientation in GraphicsContextSkia
https://bugs.webkit.org/show_bug.cgi?id=100179
Reviewed by Stephen White.
Also fix a bug in ImageOrientation.h: Some of the values were
switched. They now match the description in the exif spec at
http://www.exif.org/Exif2-2.PDF page 18, and the notes at
http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html and
the picture at http://www.80sidea.com/archives/2316.
They showed up correctly in Safari because the orientation transform
was done after flipping Y. Let the flipping happen later. I verified
that flipping transformation order and fixing the exif enum cancelled
each other out, so this has no effect on the apple port.
Not hooked up yet, so no observable difference.
* platform/graphics/BitmapImage.h:
* platform/graphics/ImageOrientation.h:
(WebCore::ImageOrientation::usesWidthAsHeight):
(WebCore::ImageOrientation::fromEXIFValue):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawNativeImage):
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::paintSkBitmap):
(WebCore::BitmapImage::draw):
(WebCore):
2012-10-24 Alexey Proskuryakov <ap@apple.com>
Fixed Windows path for SharedWorkerStrategy.h - it's in workers/, not platform/.
* WebCore.vcproj/WebCore.vcproj:
2012-10-24 Chris Fleizach <cfleizach@apple.com>
AX: WebKit exposes abstract ARIA role range as AXSlider; should be generic AXGroup
https://bugs.webkit.org/show_bug.cgi?id=100204
Reviewed by Beth Dakin.
Remove the "range" role as a valid ARIA role.
Test: platform/mac/accessibility/aria-slider-value.html
* accessibility/AccessibilityObject.cpp:
(WebCore::createARIARoleMap):
2012-10-24 Florin Malita <fmalita@chromium.org>
[Chromium] SVG repaint issues
https://bugs.webkit.org/show_bug.cgi?id=99874
Reviewed by Levi Weintraub.
RenderSVGRoot::paintReplaced() converts the container offsets to a relative transform,
but in doing so it ends up accumulating subpixel rounding deltas twice: first for
adjustedPaintOffset and second in localToParentTransform(). If coordinates are on
half-pixel boundaries, the 2x rounding delta yields a full pixel drift and we end up
painting at the wrong location.
This can be avoided by using localToBorderBoxTransform() directly, which (unlike
localToParentTransform()) doesn't perform rounding.
No new tests: existing pixel results cover this change after rebaseline.
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::paintReplaced):
2012-10-24 Levi Weintraub <leviw@chromium.org>
Fixing the Chromium build after typo in r132367.
* WebCore.gypi:
2012-10-24 Nico Weber <thakis@chromium.org>
[chromium] Respect image orientation in image dragging code
https://bugs.webkit.org/show_bug.cgi?id=100200
Reviewed by Tony Chang.
Based on the corresponding code in DragImageMac.mm. The image
rotation code isn't hooked up yet, so no observable effect for now.
* platform/chromium/DragImageChromiumSkia.cpp:
(WebCore::createDragImageFromImage):
2012-10-24 Michael Saboff <msaboff@apple.com>
Code cleanup after r132165
https://bugs.webkit.org/show_bug.cgi?id=100135
Reviewed by Geoffrey Garen.
Fixed up some unneccesary and inefficient constructs in MarkupTokenBase.h.
Code clean up without functional changes, therefore no new tests.
* xml/parser/MarkupTokenBase.h:
(WebCore::MarkupTokenBase::beginEndTag): Changed argument to be const Vector<LChar, 32>&.
(WebCore::MarkupTokenBase::appendToCharacter): Changed argument to be const Vector<LChar, 32>&.
(WebCore::MarkupTokenBase::appendToName): Elimintated inline.
(WebCore::MarkupTokenBase::name): Elimintated inline.
(WebCore::MarkupTokenBase::nameString): Elimintated inline.
2012-10-24 Toni Barzic <tbarzic@chromium.org>
Crash when trying to write exception message to null console
https://bugs.webkit.org/show_bug.cgi?id=99658
Reviewed by Adam Barth.
DOMWindow::console may return NULL, so we should do a NULL check before adding message to it.
This may happen e.g. if a worker throws an exception just as the document is being replaced in the view.
The exception task could be processes after current window in the frame changes, and console in the document window is nulled.
Test: fast/workers/worker-exception-during-navigation.html
* dom/Document.cpp:
(WebCore::Document::addMessage):
2012-10-24 Cosmin Truta <ctruta@rim.com>
Incorrect conditional use of LogFTP
https://bugs.webkit.org/show_bug.cgi?id=100260
Reviewed by Alexey Proskuryakov.
Use LogFTP if !LOG_DISABLED, to allow toggling ASSERTIONS_DISABLED_DEFAULT
without breaking the build.
* html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocument::FTPDirectoryDocument):
2012-10-23 Alexey Proskuryakov <ap@apple.com>
Add a strategy for shared workers
https://bugs.webkit.org/show_bug.cgi?id=100165
Reviewed by Brady Eidson.
Also a little bit of alphabetization.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/PlatformStrategies.h:
* workers/SharedWorkerStrategy.h: Added.
2012-10-24 David Barton <dbarton@mathscribe.com>
[MathML] Timeouts on linux after r132264
https://bugs.webkit.org/show_bug.cgi?id=100202
Reviewed by Eric Seidel.
When building a stretched operator, such as a large parenthesis or bracket, we need to
check that the extension glyph's height is > 0, to avoid an infinite loop. The 0 height
can occur if the glyph is missing on the host system.
Tested by existing tests.
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::updateFromElement):
2012-10-24 Parth Patel <parpatel@rim.com>
[BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
Generic ThreadUnsafe Singleton
https://bugs.webkit.org/show_bug.cgi?id=100145
Reviewed by Rob Buis.
Extending the singletons to generic singleton and changing
getInstance() in IconDatabaseClientBlackBerry to instance()
to match the generic singleton template.
Reviewed Internally by Yong Li.
Tests are not modified and added as there was no behavioural change.
* platform/blackberry/SharedTimerBlackBerry.cpp:
(SharedTimerBlackBerry):
(WebCore):
2012-10-24 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: NMI add instrumentation for ResourceBuffer. It gives us 10mb on gmail
https://bugs.webkit.org/show_bug.cgi?id=100254
Reviewed by Yury Semikhatsky.
* loader/ResourceBuffer.cpp:
(WebCore::ResourceBuffer::reportMemoryUsage):
(WebCore):
* loader/ResourceBuffer.h:
(ResourceBuffer):
2012-10-24 Eric Carlson <eric.carlson@apple.com>
Allow ports to override text track rendering style
https://bugs.webkit.org/show_bug.cgi?id=97800
<rdar://problem/12044964>
Unreviewed Build fix.
CGFloat is already a float in a 32-bit build so narrowPrecisionToFloat() is unnecessary
* page/CaptionUserPreferencesMac.mm:
(WebCore::CaptionUserPreferencesMac::captionFontSizeScale):
2012-10-24 Eric Carlson <eric.carlson@apple.com>
Allow ports to override text track rendering style
https://bugs.webkit.org/show_bug.cgi?id=97800
<rdar://problem/12044964>
Reviewed by Maciej Stachowiak.
* WebCore.exp.in: Export new WebkitSystemInterface functions.
* WebCore.xcodeproj/project.pbxproj: Add CaptionUserPreferences.h, CaptionUserPreferencesMac.mm,
and CaptionUserPreferencesMac.h.
* css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
background, and text independently.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
(WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
(WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
(WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
(WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
(WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
(WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
(WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from
setClosedCaptionsVisible
* html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
variable. Get caption font scale from theme instead of hard coding.
* html/shadow/MediaControlElements.h:
* html/track/TextTrack.cpp:
(WebCore::TextTrack::TextTrack): Change attributes from String to AtomicString.
(WebCore::TextTrack::isValidKindKeyword): Ditto.
(WebCore::TextTrack::setKind): Ditto.
(WebCore::TextTrack::setMode): Ditto.
(WebCore::TextTrack::mode): Ditto.
* html/track/TextTrack.h:
(WebCore::TextTrack::create): Ditto.
(WebCore::TextTrack::kind): Ditto.
(WebCore::TextTrack::label): Ditto.
(WebCore::TextTrack::setLabel): Ditto.
(WebCore::TextTrack::language): Ditto.
(WebCore::TextTrack::setLanguage): Ditto.
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
(WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the
shadow pseudo id so it can be used elsewhere.
(WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
(WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the
shadow pseudo id so it can be used elsewhere.
(WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
(WebCore::TextTrackCue::updateDisplayTree):
* html/track/TextTrackCue.h:
* page/CaptionUserPreferences.h: Added.
* page/CaptionUserPreferencesMac.h: Added.
* page/CaptionUserPreferencesMac.mm: Added.
(WebCore::userCaptionPreferencesChangedNotificationCallback):
(WebCore::CaptionUserPreferencesMac::CaptionUserPreferencesMac):
(WebCore::CaptionUserPreferencesMac::~CaptionUserPreferencesMac):
(WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): New, passthrough to WKSI function.
(WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Ditto.
(WebCore::CaptionUserPreferencesMac::captionsWindowColor): Return Color with user's caption window color preference.
(WebCore::CaptionUserPreferencesMac::captionsBackgroundColor): Return Color with user's caption
background color preference.
(WebCore::CaptionUserPreferencesMac::captionsTextColor): Return Color with user's caption text color preference.
(WebCore::CaptionUserPreferencesMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
(WebCore::CaptionUserPreferencesMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
or webkit-text-stroke property.
(WebCore::CaptionUserPreferencesMac::cssColorProperty): Return a String with css to set a property
with a color value.
(WebCore::CaptionUserPreferencesMac::captionsTextEdgeStyle): Return a String with css to style caption
text with the user's preferred text edge stye.
(WebCore::CaptionUserPreferencesMac::captionsDefaultFont): Return a String with css to style caption
text with the user's preferred font.
(WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Return a String with css to style captions
with the user's preferred style.
(WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Return the user's preferred caption font scale.
(WebCore::CaptionUserPreferencesMac::captionPreferencesChanged): Notify listeners of caption preference change.
(WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences
changes listener.
(WebCore::CaptionUserPreferencesMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
changes listener.
(WebCore::CaptionUserPreferencesMac::updateCaptionStyleSheetOveride): New, if theme has a captions style sheet override,
inject it into the current page group, otherwise remove injected sheet.
* page/PageGroup.cpp:
(WebCore::PageGroup::captionPreferences):
(WebCore::PageGroup::registerForCaptionPreferencesChangedCallbacks): New, passthrough to platform specific function
of the same name.
(WebCore::PageGroup::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
(WebCore::PageGroup::userPrefersCaptions): Ditto.
(WebCore::PageGroup::userHasCaptionPreferences): Ditto.
(WebCore::PageGroup::captionFontSizeScale): Ditto.
* page/PageGroup.h:
* platform/mac/WebCoreSystemInterface.h: Updated.
* platform/mac/WebCoreSystemInterface.mm: Ditto.
2012-10-24 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Introduce workspace provider as a content providing backend for project.
https://bugs.webkit.org/show_bug.cgi?id=100244
Reviewed by Pavel Feldman.
Introduced WorkspaceProvider interface as a content providing backend for project.
Added NetworkWorkspaceProvider as a network based (default) implementation.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/CompilerScriptMapping.js:
(WebInspector.CompilerScriptMapping):
* inspector/front-end/DebuggerScriptMapping.js:
(WebInspector.DebuggerScriptMapping):
* inspector/front-end/NetworkUISourceCodeProvider.js:
(WebInspector.NetworkUISourceCodeProvider):
(WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
(WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
(WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
* inspector/front-end/NetworkWorkspaceProvider.js: Added.
(WebInspector.NetworkWorkspaceProvider):
(WebInspector.NetworkWorkspaceProvider.prototype.requestFileContent):
(WebInspector.NetworkWorkspaceProvider.prototype.setFileContent):
(WebInspector.NetworkWorkspaceProvider.prototype.searchInFileContent):
(WebInspector.NetworkWorkspaceProvider.prototype.addFile):
(WebInspector.NetworkWorkspaceProvider.prototype.removeFile):
(WebInspector.NetworkWorkspaceProvider.prototype.reset):
* inspector/front-end/SASSSourceMapping.js:
(WebInspector.SASSSourceMapping):
(_bindUISourceCode):
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.ScriptSnippetModel):
(WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/Workspace.js:
(WebInspector.FileDescriptor):
(WebInspector.WorkspaceProvider):
(WebInspector.WorkspaceProvider.prototype.requestFileContent):
(WebInspector.WorkspaceProvider.prototype.searchInFileContent):
(WebInspector.WorkspaceProvider.prototype.addEventListener):
(WebInspector.WorkspaceProvider.prototype.removeEventListener):
(WebInspector.Project):
(WebInspector.Project.prototype.reset):
(WebInspector.Project.prototype._fileAdded):
(WebInspector.Project.prototype._fileRemoved):
(WebInspector.Project.prototype.requestFileContent):
(WebInspector.Project.prototype.searchInFileContent):
(WebInspector.Workspace):
(WebInspector.Workspace.prototype.addProject):
(WebInspector.Workspace.prototype.project):
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
2012-10-24 Nikita Vasilyev <me@elv1s.ru>
Web Inspector: Styles pane: Don't select whole value when I select just a part
https://bugs.webkit.org/show_bug.cgi?id=100242
Reviewed by Alexander Pavlov.
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
(WebInspector.StylePropertyTreeElement.prototype):
2012-10-24 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: UiSourceCode should rely on the workspace as a content provider.
https://bugs.webkit.org/show_bug.cgi?id=100216
Reviewed by Pavel Feldman.
Workspace is now passed to UISourceCode to be used as a content provider.
Content providers are now stored in the workspace/project.
Next step would be to move content providers to workspace providers.
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.breakpointStorageId):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode):
(WebInspector.UISourceCode.prototype.contentType):
(WebInspector.UISourceCode.prototype.requestContent):
(WebInspector.UISourceCode.prototype.requestOriginalContent):
(WebInspector.UISourceCode.prototype._commitContent):
(WebInspector.UISourceCode.prototype.searchInContent):
* inspector/front-end/Workspace.js:
(WebInspector.WorkspaceController.prototype._mainFrameNavigated):
(WebInspector.Project):
(WebInspector.Project.prototype.addUISourceCode):
(WebInspector.Project.prototype.removeUISourceCode):
(WebInspector.Project.prototype.uiSourceCodes):
(WebInspector.Project.prototype.requestFileContent):
(WebInspector.Project.prototype.searchInFileContent):
(WebInspector.Workspace):
(WebInspector.Workspace.prototype.addTemporaryUISourceCode):
(WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
(WebInspector.Workspace.prototype.reset):
2012-10-24 Zeno Albisser <zeno@webkit.org>
Implement GraphicsSurface for Windows.
https://bugs.webkit.org/show_bug.cgi?id=98147
Reviewed by Kenneth Rohde Christiansen.
* Target.pri:
Include GraphicsSurfaceWin.cpp in SOURCES on Windows.
* platform/graphics/surfaces/GraphicsSurface.h:
Add typedef for PlatformGraphicsSurface on Windows.
* platform/graphics/surfaces/GraphicsSurfaceToken.h:
Add typedef for BufferHandle on Windows.
(GraphicsSurfaceToken):
* platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp: Added.
The GraphicsSurface implementation on Windows relies on the
availability of ANGLE and the EGL_ANGLE_query_surface_pointer extension.
For Qt this requirements are implicitly satisfied, when Qt is built
on Windows and QT_CONFIG contains OpenGLES2.
The GraphicsSurface then renders a given texture onto an offscreen
pixel buffer surface, queries the surface pointer using the
EGL_ANGLE_query_surface_pointer extension, and transmits the received
surface pointer (share handle) over IPC.
On the UIProcess side, the surface pointer can then be resolved
using eglCreatePbufferFromClientBuffer.
(WebCore):
(WebCore::loadShader):
Initialize the shaders needed for drawing onto the GraphicsSurface.
(GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
In case of the instance being on the WebProcess side,
create an EGLContext that shares the texture objects with the provided
share context. Also create two pixel buffer surfaces, one as front- and
one as backbuffer.
Query the surface pointers for the pixel buffer surfaces and initialize
the GraphicsSurfaceToken that can be passed over IPC later.
(WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
Release all aquired resources and destroy the pixel buffer surfaces.
Also close the EGL-Display connection.
(WebCore::GraphicsSurfacePrivate::copyFromTexture):
Make the belonging context current on the back buffer surface
and use drawTexture() to draw the provided texture onto the GraphicsSurface.
(WebCore::GraphicsSurfacePrivate::makeCurrent):
Save the previously current context, then make the context belonging
to the GraphicsSurface current.
(WebCore::GraphicsSurfacePrivate::doneCurrent):
Restore the context that was current before calling makeCurrent().
(WebCore::GraphicsSurfacePrivate::swapBuffers):
Swap front and back buffer surfaces and handles.
(WebCore::GraphicsSurfacePrivate::token):
(WebCore::GraphicsSurfacePrivate::frontBufferTextureID):
This function is meant to be called from the UIProcess side.
If no front buffer surface has been created before for the current
front buffer handle, one will be created.
Then eglBindTexImage will be used to actually bind the current
front buffer surface to a texture as a source for drawing.
(WebCore::GraphicsSurfacePrivate::initialFrontBufferShareHandle):
(WebCore::GraphicsSurfacePrivate::frontBufferShareHandle):
(WebCore::GraphicsSurfacePrivate::backBufferShareHandle):
(WebCore::GraphicsSurfacePrivate::releaseFrontBufferTexture):
Free the resources related to the front buffer surface.
On the UIProcess side we never actually bind the back buffer.
(WebCore::GraphicsSurfacePrivate::initializeShaderProgram):
Initialize and link the shader programs necessary for drawing
onto the GraphicsSurface.
(WebCore::GraphicsSurfacePrivate::createSurfaceFromShareHandle):
Creates a single pixel buffer surface from a share Handle.
This function will be called on the UIProcess side,
for the front buffer handle, whenever the buffers have been swapped.
(WebCore::GraphicsSurfacePrivate::drawTexture):
The WebProcess uses this function to draw a given
texture onto the GraphicsSurface's back buffer.
(WebCore::GraphicsSurface::platformExport):
(WebCore::GraphicsSurface::platformGetTextureID):
(WebCore::GraphicsSurface::platformCopyToGLTexture):
(WebCore::GraphicsSurface::platformCopyFromTexture):
(WebCore::GraphicsSurface::platformPaintToTextureMapper):
Uses TextureMapperGL::drawTexture() to draw the front buffer texture
to the TextureMapper on the UIProcess side.
(WebCore::GraphicsSurface::platformFrontBuffer):
(WebCore::GraphicsSurface::platformSwapBuffers):
(WebCore::GraphicsSurface::platformCreate):
(WebCore::GraphicsSurface::platformImport):
(WebCore::GraphicsSurface::platformLock):
(WebCore::GraphicsSurface::platformUnlock):
(WebCore::GraphicsSurface::platformDestroy):
2012-09-27 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: provide memory instrumentation for ListHashSet
https://bugs.webkit.org/show_bug.cgi?id=97786
Reviewed by Vsevolod Vlasov.
Switched existing usages of addListHashSet to the generic instrumentation mechanism
as it should work just just fine now that there is a memory instrumentation of
ListHashSet.
* dom/DocumentEventQueue.cpp:
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::reportMemoryUsage):
2012-10-24 Charles Wei <charles.wei@torchmobile.com.cn>
[BlackBerry] Credentials not re-used for a redirected request to the same domain
https://bugs.webkit.org/show_bug.cgi?id=100193
Reviewed by George Staikos.
We should store the credentials in the redirection response handler, if the request is challenged.
Because the redirect response suggests the authentication succeeds.
Test: http://browsertest01.rim.net/authbasic
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::handleRedirect):
2012-10-24 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Implement CSS reload upon related SASS resource saving
https://bugs.webkit.org/show_bug.cgi?id=98024
Reviewed by Vsevolod Vlasov.
SASS-generated debug info in CSS is parsed to find out which SASS files contributed to this stylesheet.
Upon SASS file save in the Sources panel, all affected external CSS stylesheets are reloaded to update
the page styles (presuming that SASS is running in the "watch" mode during the development cycle).
* English.lproj/localizedStrings.js:
* inspector/front-end/SASSSourceMapping.js:
(WebInspector.SASSSourceMapping):
(WebInspector.SASSSourceMapping.prototype._fileSaveFinished.callback):
(WebInspector.SASSSourceMapping.prototype._reloadCSS):
(_bindUISourceCode):
(_addCSSURLforSASSURL):
* inspector/front-end/Settings.js:
* inspector/front-end/SettingsScreen.js:
(WebInspector.GenericSettingsTab):
2012-10-23 Yury Semikhatsky <yurys@chromium.org>
Memory instrumentation: don't count agent-specific front-ends separately
https://bugs.webkit.org/show_bug.cgi?id=100087
Reviewed by Alexander Pavlov.
Pointers to domain-specific inspector front-end interfaces are reported as
weak pointers instead of members to avoid double-counting.
Test by comparing set of reported instrumented objects with the set of objects
allocated by tcmalloc.
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
* inspector/InspectorDOMStorageResource.cpp:
(WebCore::InspectorDOMStorageResource::reportMemoryUsage):
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::reportMemoryUsage):
2012-10-23 Christophe Dumez <christophe.dumez@intel.com>
Regression(r132303) Broke debug build when SHADOW_DOM is enabled but STYLE_SCOPED is disabled
https://bugs.webkit.org/show_bug.cgi?id=100203
Unreviewed Build fix.
Fix compilation error in StyleResolver.h when SHADOW_DOM flag is
set and STYLE_SCOPED is not.
No new tests, no behavior change.
* css/StyleResolver.h:
(WebCore::StyleResolver::ensureScopeResolver):
2012-10-23 Andreas Kling <kling@webkit.org>
Remove specialized hash traits for GlyphPages.
<http://webkit.org/b/100185>
Reviewed by Dan Bernstein.
Now that the default minimum table size has been lowered for all tables, there's no need
for this specialization anymore.
* platform/graphics/FontFallbackList.h:
(FontFallbackList):
2012-10-23 Kent Tamura <tkent@chromium.org>
Multiple fields input UI: Don't use CSS properties for physical direction
https://bugs.webkit.org/show_bug.cgi?id=100195
Reviewed by Kentaro Hara.
CSS declarations such as "padding: 0 0 0 1px;" "margin-left: 0.2em;" are
not direction-neutral, and makes unexpected appearance in RTL. We should
use -webkit-padding-start or -webkit-margin-start.
No new tests. Covered by date-multiple-fields-appearance-l10n.html and
month-multiple-fields-appearance-l10n.html
* css/html.css:
(input[type="date"]): Use padding:0 and -webkit-padding-start:1px;
(input[type="datetime"]): Ditto.
(input[type="datetime-local"]): Ditto.
(input[type="month"]): Ditto.
(input[type="time"]): Ditto.
(input[type="week"]): Ditto.
(input[type="week"]::-webkit-inner-spin-button):
Use -webkit-margin-start. Also use an integral pixel size instead of
avoid a fractional relative size to avoid subpixel layout rounding.
2012-10-23 Dan Bernstein <mitz@apple.com>
The font cache evicts inactive font data too aggressively when not under memory pressure
https://bugs.webkit.org/show_bug.cgi?id=100194
Reviewed by Sam Weinig.
Increasing the number of inactive font data objects the cache may hold increases the hit
rate, leading to improved page load performance. When memory pressure is detected,
MemoryPressureHandler evicts all inactive objects, regardless of the limits we are
increasing here.
* platform/graphics/FontCache.cpp:
(WebCore): Increased the maximum number of inactive font data objects in the cache from 50
to 225, and the number of objects to evict once the limit is met from 20 to 25.
2012-10-23 Takashi Sakamoto <tasak@google.com>
[Shadow DOM] Needs @host rule for ShadowDOM styling
https://bugs.webkit.org/show_bug.cgi?id=88606
Reviewed by Hajime Morita.
Implemented @host-@rules according to the shadow dom spec:
http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
The design doc is:
https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
Test: fast/dom/shadow/athost-atrules.html
* css/CSSGrammar.y.in:
Added rules for parsing @host @-rules.
* css/CSSParser.cpp:
(WebCore::CSSParser::detectAtToken):
Added a new token "@host".
(WebCore::CSSParser::createHostRule):
Added a new method to create an @host @-rule, which is invoked from
(WebCore):
* css/CSSParser.h:
Added a declaration of the above new method: createHostRule.
* css/CSSPropertySourceData.h:
Added HOST_RULE to enum Type.
* css/RuleSet.cpp:
(WebCore::RuleData::RuleData):
Modified multiple bool arguments into one argument. Now it
uses combinations of values from enum AddRuleFlags.
(WebCore::RuleSet::addRule):
(WebCore::RuleSet::addRegionRule):
(WebCore::RuleSet::addStyleRule):
Updated according to the RuleData's change.
Modified to Invoke increaseSpecificity if the given rule is @host
@-rule.
(WebCore::RuleSet::addRulesFromSheet):
Invoked addHostRule if the given rule is @host @-rule.
* css/RuleSet.h:
(RuleData):
(WebCore::RuleData::increaseSpecificity):
Added a new method to increase selector's specificity. This method is
used to make @host @-rules' specificity larger than normal author
rules' specificity.
(RuleSet):
* css/StyleResolver.cpp:
(WebCore::makeRuleSet):
(WebCore::StyleResolver::addHostRule):
A wrapper method to invoke StyleScopeResolver::addHostRule. The method
is used to make only StyleResolver know an implementation detail about
class StyleScopeResolver.
(WebCore::StyleResolver::appendAuthorStylesheets):
Updated according to the RuleData's change.
(WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
A new method to find matched host rules when an element is given.
This method invokes
StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
matched host rules.
(WebCore):
(WebCore::StyleResolver::matchHostRules):
A new method to find matched host rules when an element is given.
This method invokes StyleScopeResolver::matchHostRules to find
matched host rules.
(WebCore::StyleResolver::matchScopedAuthorRules):
Modified to invoke matchHostRules.
(WebCore::StyleResolver::locateSharedStyle):
Disable sibling style cache if the given element is a shadow host and
any @host @-rules are applied to the element.
* css/StyleResolver.h:
(WebCore::StyleResolver::ensureScopeResolver):
If no scopeResolver is created, create and return the instance.
If created, just return the instance.
(StyleResolver):
* css/StyleRule.cpp:
(WebCore::StyleRuleBase::reportMemoryUsage):
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy):
(WebCore::StyleRuleBase::createCSSOMWrapper):
(WebCore::StyleRuleHost::StyleRuleHost):
Implemented class StyleRuleHost. The class is almost the same as
StyleRuleBlock except type.
(WebCore):
* css/StyleRule.h:
(WebCore::StyleRuleBase::isHostRule):
(StyleRuleHost):
(WebCore::StyleRuleHost::create):
(WebCore::StyleRuleHost::copy):
(WebCore):
* css/StyleScopeResolver.cpp:
(WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
A new method to create a new RuleSet for the given shadow root.
(WebCore):
(WebCore::StyleScopeResolver::atHostRuleSetFor):
A new private inline method to obtain @host @-rules declared in
the given shadow root.
(WebCore::StyleScopeResolver::addHostRule):
Added a new method to register @host @-rules with shadow roots.
(WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
A new method to find whether any @host @-rules are applied to
the given host element.
(WebCore::StyleScopeResolver::matchHostRules):
A new method to find matched rules for the given host element.
(WebCore::StyleScopeResolver::reportMemoryUsage):
* css/StyleScopeResolver.h:
(WebCore):
(StyleScopeResolver):
* css/StyleSheetContents.cpp:
(WebCore::childRulesHaveFailedOrCanceledSubresources):
2012-10-23 Andreas Kling <kling@webkit.org>
REGRESSION(r130643): ASSERTION FAILED: result.iterator != end() below PluginDatabase::add
<http://webkit.org/b/100065>
Reviewed by Anders Carlsson.
Restore the pre-r130643 hash table size for PluginDatabase to prevent these easily reproducible
collisions. This will need a proper fix at some point.
* plugins/PluginDatabase.h:
* plugins/PluginPackage.h:
(PluginPackageHashTraits):
2012-10-23 Simon Fraser <simon.fraser@apple.com>
Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
https://bugs.webkit.org/show_bug.cgi?id=100159
Reviewed by Tim Horton.
Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.
Test: platform/mac/tiled-drawing/use-tiled-drawing.html
* page/Frame.h:
* platform/graphics/GraphicsLayer.cpp:
(showGraphicsLayerTree):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::tiledBacking):
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::tiledBacking):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):
* platform/graphics/ca/GraphicsLayerCA.h:
(GraphicsLayerCA):
* platform/graphics/ca/mac/TileCache.h:
(WebCore::TileCache::tileCoverageRect):
(TileCache):
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::computeTileCoverageRect):
(WebCore::TileCache::revalidateTiles):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::layerTreeAsText):
* testing/Internals.cpp:
(WebCore::Internals::layerTreeAsText):
* testing/Internals.h:
* testing/Internals.idl:
2012-10-23 Simon Fraser <simon.fraser@apple.com>
Flush pending GraphicsLayer changes when reattaching compositing layers if necessary
https://bugs.webkit.org/show_bug.cgi?id=100187
<rdar://problem/12546770>
Reviewed by Dan Bernstein.
Fix a regression from r131940. That revision changed RenderLayerCompositor::flushPendingLayerChanges()
to bail if the root layer is unattached, which indicates that we're in the page cache, or in a
background tab. However, that dropped the layer flush on the floor, so that any subsequent changes
to GraphicsLayerCAs would just pile up and never get flushed. This was most evident on pages
that require frequent flushing, such as those running animated GIFs.
Fix by setting a flag in flushPendingLayerChanges() if we're unattached. Consult the flag
when re-attaching the root layer, and if it's set, flush the GraphicsLayers.
Not testable because we can't test detaching and re-adding web views in DRT/WTR.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor): Initialize m_shouldFlushOnReattach to false.
(WebCore::RenderLayerCompositor::flushPendingLayerChanges): If the root layer attachment
is RootLayerUnattached, set the m_shouldFlushOnReattach flag before returning.
(WebCore::RenderLayerCompositor::attachRootLayer): If m_shouldFlushOnReattach, flush the layers,
saying that we're the flush root.
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor): Add m_shouldFlushOnReattach flag.
2012-10-23 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r132276.
http://trac.webkit.org/changeset/132276
https://bugs.webkit.org/show_bug.cgi?id=100189
It broke the Qt-WK2 build intentionally (Requested by
Ossy_night on #webkit).
* page/Frame.h:
* platform/graphics/GraphicsLayer.cpp:
(showGraphicsLayerTree):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::tiledBacking):
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::tiledBacking):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):
* platform/graphics/ca/GraphicsLayerCA.h:
(GraphicsLayerCA):
* platform/graphics/ca/mac/TileCache.h:
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::tileCoverageRect):
(WebCore::TileCache::revalidateTiles):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::layerTreeAsText):
* testing/Internals.cpp:
(WebCore::Internals::layerTreeAsText):
* testing/Internals.h:
* testing/Internals.idl:
2012-10-23 Philip Rogers <pdr@google.com>
Add extra check for data() in PageSerializer.
https://bugs.webkit.org/show_bug.cgi?id=99102
Reviewed by Eric Seidel.
The image returned from imageForRenderer() does not contain the raw SVG data
so this patch adds a check for image->image()->data() before writing SVG
in PageSerializer::addImageToResources.
Covered by existing test WebPageNewSerializeTest.SVGImageDontCrash.
* page/PageSerializer.cpp:
(WebCore::PageSerializer::addImageToResources):
2012-10-23 Kent Tamura <tkent@chromium.org>
Move appendAsLDMLLiteral in LocaleWin.cpp to a common place
https://bugs.webkit.org/show_bug.cgi?id=100129
Reviewed by Kentaro Hara.
We're going to use appendAsLDMLLiteral in other code, and it is
related to DateTimeFormat class. So we move it to DateTimeFormat
class as quoteAndAppendLiteral.
No new tests because of no behavior change.
* platform/text/DateTimeFormat.cpp:
(WebCore::DateTimeFormat::quoteAndAppendLiteral):
Moved from LocaleWin.cpp
* platform/text/DateTimeFormat.h:
Declare StringBuilder by wtf/Forward.h. It also declares String.
(DateTimeFormat): Declare quoteAndAppendLiteral.
* platform/text/LocaleWin.cpp:
(WebCore): Move appendLDMLLiteral to DateTimeFormat.
(WebCore::convertWindowsDateFormatToLDML):
Follow the moving.
2012-10-23 Kent Tamura <tkent@chromium.org>
REGRESSION(r131421): Text baseline is not aligned in some locales
https://bugs.webkit.org/show_bug.cgi?id=100088
Reviewed by Hajime Morita.
Before this patch, the element with ::-webkit-datetime-edit had
-webkit-align-items:center. It was incorrect at all because it
ignores baselines of each of inner fields. We need to change it to
-webkit-align-items:baseline, or stop using -webkit-flex.
However -webkit-align-items:baseline doesn't work because a spin
button element in the element doesn't have the baseline. If we
specified -webkit-align-items:baseline, the spin button would
shift up.
So, we change the element structure for multiple fields input
elements. Before this patch, the structure was:
input
|
- ::-webkit-date-and-time-container (flex cotainer)
|
|- ::-webkit-datetime-edit (has flexibility in date-and-time-container, also this is a flex container)
| |- ::-webkit-datetime-edit-foo
| | :
| |
| |- ::-webkit-date-time-edit-gap (has flexibility in datetime-edit)
| - ::-webkit-inne-spin-button
- ::-webkit-calendar-picker-indicator
After the patch, the structure will be:
input
|
- ::-webkit-date-and-time-container (flexible box)
|
|- ::-webkit-datetime-edit (has flexibility in date-and-time-container)
| |- ::-webkit-datetime-edit-foo
| | :
| |
|
|- ::-webkit-inne-spin-button
- ::-webkit-calendar-picker-indicator
Because the spin button owner is date-and-time-container, we don't
need to make the datetime-edit element a flex container.
Also, we had rounding error by subpixel layout. To avoid it, we
stop using fractional paddings.
In order to implement this, we need to change the SpinButtonOwner
interface provider from DateTimeEditElement to
BaseMultipleFieldsDateAndTimeInputType.
No new tests. Covered by month-multiple-fields-appearance-l10n.html.
* css/html.css:
(input::-webkit-datetime-edit): Stop making this a flex
container. Inner fields in this use the single baseline.
(input::-webkit-datetime-edit-ampm-field):
Don't use fractional paddings to avoid rounding erros of subpixel
layout. Use integral margin instead to avoid overwrap of focus
ring and background-color of the field.
(input::-webkit-datetime-edit-day-field): Ditto.
(input::-webkit-datetime-edit-hour-field): Ditto.
(input::-webkit-datetime-edit-millisecond-field): Ditto.
(input::-webkit-datetime-edit-minute-field): Ditto.
(input::-webkit-datetime-edit-month-field): Ditto.
(input::-webkit-datetime-edit-second-field): Ditto.
(input::-webkit-datetime-edit-week-field): Ditto.
(input::-webkit-datetime-edit-year-field): Ditto.
(input::-webkit-date-and-time-container): Ditto.
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType): Overrides
SpinButtonOwner functions, and add m_spinButtonElement.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner):
Just delegate to DateTimeEditElement::focusIfNoFocus.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToMouseEvents):
Moved from DateTimeEditElement::shouldSpinButtonRespondToMouseEvents.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents):
Moved from DateTimeEditElement::shouldSpinButtonRespondToWheelEvents.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown):
Delegate to DateTimeEditElement::stepDown.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp):
Delegate to DateTimeEditElement::stepUp.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
Initialize m_spinButtonElement.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
Reset SpinButtonOwner for m_spinButtonElement like the old code of ~DateTimeEditElement.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
Put a SpinButtonElement between the DateTimeEditElement and the PickerIndicatorElement.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::forwardEvent):
Take care of SpinButtonElement.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged):
Release capture of SpinButtonElement. This corresponds to the old
code of DateTimeEditElement::updateUIState.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged): Ditto.
* html/TextFieldInputType.h:
Make SpinButtonElement::SpinButtonOwner protected to allow overriding.
* html/shadow/DateTimeEditElement.h:
(DateTimeEditElement): Remove SpniButtonOwner implementation,
m_spinButton, and rename some functions.
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditElement::DateTimeEditElement):
Remove m_spinButton.
(WebCore::DateTimeEditElement::~DateTimeEditElement): Ditto.
(WebCore::DateTimeEditElement::focusIfNoFocus):
Renamed from focusAndSelectSpinButtonOwner. This is called
BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner.
(WebCore::DateTimeEditElement::layout):
Remove creation code for -webkit-datetime-edit-gap and SpinButtonElement.
(WebCore::DateTimeEditElement::defaultEventHandler):
Move the code for m_spinButton to
BaseMultipleFieldsDateAndTimeInputType::forwardEvent.
(WebCore::DateTimeEditElement::hasFocusedField): A helper for
BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents.
(WebCore::DateTimeEditElement::stepDown): A helper for
BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown.
(WebCore::DateTimeEditElement::stepUp): A helper for
BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp.
(WebCore::DateTimeEditElement::updateUIState): Move the code to
BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged
and readonlyAttributeChanged.
2012-10-23 Andreas Kling <kling@webkit.org>
Shrink immutable ElementAttributeData and StylePropertySet by one pointer each.
<http://webkit.org/b/100123>
Reviewed by Anders Carlsson.
Remove one pointer of unintentional padding in the immutable versions of these objects.
583kB progression on Membuster3.
* css/StylePropertySet.cpp:
(WebCore::immutableStylePropertySetSize):
* dom/ElementAttributeData.cpp:
(WebCore::immutableElementAttributeDataSize):
2012-10-23 Nate Chapin <japhet@chromium.org>
Crash in WebCore::SubresourceLoader::willSendRequest.
https://bugs.webkit.org/show_bug.cgi?id=100147
Reviewed by Abhishek Arya.
No new tests. There is a test case that should cover this, but it doesn't
work correctly on many platforms due to its use of testRunner.addURLToRedirect().
See http/tests/loading/cross-origin-XHR-willLoadRequest.html.
Tested manually on http://www.nick.co.uk/shows/spongebob
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequest):
2012-10-23 Martin Robinson <mrobinson@igalia.com>
[GTK][Soup] Implement the default authentication dialog via WebCoreSupport
https://bugs.webkit.org/show_bug.cgi?id=99351
Reviewed by Carlos Garcia Campos.
Instead of connecting to the SoupSession::authenticate signal in the API layer
via a SoupSessionFeature, route the message through the typical WebCore authentication
mechanism. This is a step on the path to having full-blown support for authentication
in the API allowing for custom authentication dialogs and behavior in clients.
No new tests. This should not change behavior.
* GNUmakefile.list.am: Add the new implementation file for the AuthenticationChallenge.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Include GTK+ here as well.
* platform/gtk/GtkAuthenticationDialog.cpp: Instead of carrying a raw pointer to a SoupAuth
carry a GRefPtr which will allow the dialog to be used even after the AuthenticationChallenge
is destroyed.
* platform/gtk/GtkAuthenticationDialog.h: ditto.
* platform/network/ResourceHandle.h: Add a didReceiveAuthenticationChallenge method.
* platform/network/ResourceHandleInternal.h:
(ResourceHandleInternal): Remove the getter for the initiating page ID.
* platform/network/soup/AuthenticationChallenge.h: Added an implementation of AuthenticationChallenge
that takes a bit of data from the handle including SoupMessage, SoupAuth, and SoupSession.
* platform/network/soup/AuthenticationChallengeSoup.cpp: Added. Ditto.
* platform/network/soup/ResourceError.h:
(ResourceError): Added a factory for authentication errors.
* platform/network/soup/ResourceErrorSoup.cpp: Ditto.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::setSoupRequestInitiaingPageID): Just get the page directly from the NetworkingContext.
(WebCore::createSoupMessageForHandleAndRequest): Always set the "handle" data on the message.
It's always used now.
(WebCore::ResourceHandle::start): Get the initiating page ID directly from the NetworkingContext.
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Added this method which routes
the authentication challenge to the client.
(WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added a stub for this method.
(WebCore::ResourceHandle::loadResourceSynchronously): Don't pass the session to the loader.
(WebCore::authenicateCallback): Added.
(WebCore::ResourceHandle::defaultSession): Connect the authenticate callback.
2012-10-23 Adam Barth <abarth@webkit.org>
[V8] Simplify GCEpilogueVisitor along the same lines as GCPrologueVisitor
https://bugs.webkit.org/show_bug.cgi?id=100157
Reviewed by Eric Seidel.
This patch removes the traits template parameter from GCEpilogueVisitor
and makes it mirror GCPrologueVisitor again.
* bindings/v8/V8GCController.cpp:
(WebCore):
(ActiveDOMObjectEpilogueVisitor):
(WebCore::ActiveDOMObjectEpilogueVisitor::ActiveDOMObjectEpilogueVisitor):
(WebCore::ActiveDOMObjectEpilogueVisitor::visitDOMWrapper):
(WebCore::V8GCController::majorGCEpilogue):
2012-10-23 Varun Jain <varunjain@chromium.org>
Context menu generated from touch gestures on textareas has
context of the cursor position instead of the position where the event occurs.
https://bugs.webkit.org/show_bug.cgi?id=99520
Reviewed by Kenneth Rohde Christiansen.
Send a synthetic mouse down event for context menu-summoning-gesture events so
that textareas can correctly set cursors before receiving the context menu event.
Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureEvent):
(WebCore::EventHandler::handleGestureTwoFingerTap):
(WebCore):
(WebCore::EventHandler::sendContextMenuEventForGesture):
* page/EventHandler.h:
(EventHandler):
2012-10-23 Andy Estes <aestes@apple.com>
[WebKit2 API] Add properties to get textRects from a WKDOMRange or WKDOMNode
https://bugs.webkit.org/show_bug.cgi?id=100162
Reviewed by Sam Weinig.
* WebCore.exp.in: Exported symbols needed by WebKit2.
* bindings/objc/DOM.mm:
(-[DOMNode textRects]): Moved some logic into Node::textRects()
(everything but the call to updateLayoutIgnorePendingStylesheets()).
* dom/Node.cpp:
(WebCore::Node::textRects):
* dom/Node.h:
2012-10-23 Adam Barth <abarth@webkit.org>
[V8] Remove unused function from DOM wrapper visitor
https://bugs.webkit.org/show_bug.cgi?id=100163
Reviewed by Eric Seidel.
No one overrides these virtual functions. They were added in
http://trac.webkit.org/changeset/73491, but we don't use them in the GC
controller anymore.
* bindings/v8/V8DOMMap.h:
(WebCore::WeakReferenceMap::visit):
2012-10-23 Aaron Colwell <acolwell@chromium.org>
Clear m_mediaSource reference when the MediaSource is closed
https://bugs.webkit.org/show_bug.cgi?id=100047
Reviewed by Eric Carlson.
The m_mediaSource object shouldn't be accessed after the object
transitions to closed so this change simply clears the reference
when that transition happens.
No new tests because the change isn't visible to JavaScript.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadResource): Removed a closed transition that is actually dead code.
(WebCore::HTMLMediaElement::setSourceState): Clear the m_mediaSource reference on closed transition.
2012-10-23 Simon Fraser <simon.fraser@apple.com>
Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
https://bugs.webkit.org/show_bug.cgi?id=100159
Reviewed by Tim Horton.
Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.
Test: platform/mac/tiled-drawing/use-tiled-drawing.html
* page/Frame.h:
* platform/graphics/GraphicsLayer.cpp:
(showGraphicsLayerTree):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::tiledBacking):
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::tiledBacking):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):
* platform/graphics/ca/GraphicsLayerCA.h:
(GraphicsLayerCA):
* platform/graphics/ca/mac/TileCache.h:
(WebCore::TileCache::tileCoverageRect):
(TileCache):
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::computeTileCoverageRect):
(WebCore::TileCache::revalidateTiles):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::layerTreeAsText):
* testing/Internals.cpp:
(WebCore::Internals::layerTreeAsText):
* testing/Internals.h:
* testing/Internals.idl:
2012-10-23 No'am Rosenthal <noam.rosenthal@nokia.com>
Coordinated Graphics: Enable threaded/IPC animations
https://bugs.webkit.org/show_bug.cgi?id=93146
Reviewed by Kenneth Rohde Christiansen.
Add enablers to TextureMapper and GraphicsLayerAnimation so that they could be used
across processes with IPC. Added some public accessors to GraphicsLayerAnimation,
and allowed a GraphicsLayerTextureMapper to receive a full list of animations.
Covered by existing animation and compositing tests.
* platform/graphics/GraphicsLayerAnimation.cpp:
(WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
Initialize the animation with the startTime instead of the offset.
(WebCore::GraphicsLayerAnimations::getActiveAnimations):
* platform/graphics/GraphicsLayerAnimation.h:
(WebCore::GraphicsLayerAnimation::setState):
Allow setting the pause time as well.
(WebCore::GraphicsLayerAnimation::boxSize):
(WebCore::GraphicsLayerAnimation::startTime):
(WebCore::GraphicsLayerAnimation::pauseTime):
(WebCore::GraphicsLayerAnimation::animation):
(WebCore::GraphicsLayerAnimation::keyframes):
(WebCore::GraphicsLayerAnimation::listsMatch):
(WebCore::GraphicsLayerAnimations::size):
(WebCore::GraphicsLayerAnimations::animations):
Add public accessors to GraphicsLayerAnimation properties.
(GraphicsLayerAnimation):
(GraphicsLayerAnimations):
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::addAnimation):
(WebCore::GraphicsLayerTextureMapper::setAnimations):
Allow replacing the entire list of animations.
(WebCore):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(GraphicsLayerTextureMapper):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::applyAnimationsRecursively):
(WebCore):
* platform/graphics/texmap/TextureMapperLayer.h:
(TextureMapperLayer):
2012-10-23 Chris Rogers <crogers@google.com>
Change setTargetValueAtTime() to setTargetAtTime()
https://bugs.webkit.org/show_bug.cgi?id=100153
Reviewed by Adam Barth.
The AudioParam method name has changed due to Web Audio API spec review.
Keep legacy support for the old name.
Test: webaudio/audioparam-setTargetAtTime.html
* Modules/webaudio/AudioParam.h:
(WebCore::AudioParam::setTargetAtTime):
* Modules/webaudio/AudioParam.idl:
* Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::setTargetAtTime):
(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
* Modules/webaudio/AudioParamTimeline.h:
(AudioParamTimeline):
2012-10-23 Benjamin Poulain <benjamin@webkit.org>
[Mac] Remove extraneous conversion to String->NSString
https://bugs.webkit.org/show_bug.cgi?id=100044
Reviewed by Darin Adler.
Improve some unfortunate use of String->NSString.
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification): The variable macNotification is ultimately
needed as NSString, and all its value are or can be NSString.
Convert the last 3 char* values to NSString literal and use NSString* all the way.
* loader/mac/LoaderNSURLExtras.h:
* loader/mac/LoaderNSURLExtras.mm:
(suggestedFilenameWithMIMEType):
We converted the String to NSString to pass to suggestedFilenameWithMIMEType. There is no need
for the string to be a NSSTring there, we can leave it in its original type.
The case checking for a nil MIMEType was dead code because the implicit conversion never returns nil.
* platform/mac/DragImageMac.mm:
(WebCore::createDragImageForLink):
Use String's nsStringNilIfEmpty().
* platform/mac/HTMLConverter.mm:
(-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
Fix the coding style. Do the conversion to NSString only when needed.
2012-10-23 Roger Fong <roger_fong@apple.com>
[Win] Popup menus positioning needs to take multiple monitors into account.
https://bugs.webkit.org/show_bug.cgi?id=100158
Reviewed by Timothy Horton.
Add screen.x() to repositioning check to account for position of current monitor.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::calculatePositionAndSize):
2012-10-23 Huang Dongsung <luxtella@company100.net>
[CSS Shaders] Set FilterOperations on GraphicsLayer after the program of CSS Shaders is loaded.
https://bugs.webkit.org/show_bug.cgi?id=99908
Reviewed by Dean Jackson.
CSS Shaders can not render anything until the program is loaded. If there is
partial loaded shaders program, whole FilterOperations chain can not render
anything. It occurs a flash. So We have to wait until the program is loaded, to
prevent a flash as RenderLayerBacking::updateImageContents() waits until an
image is fully loaded.
No new tests, CSS Shaders on Accelerated Compositing are not activated yet.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateFilters):
2012-10-23 Elliott Sprehn <esprehn@chromium.org>
Generated should not be supported for things with a shadow
https://bugs.webkit.org/show_bug.cgi?id=98836
Reviewed by Dimitri Glazkov.
As far as CSS is concerned inputs and things with shadow content inside
shouldn't support pseudo elements like :before, :after or :first-letter.
Neither Gecko or Presto supports it, and we only accidentally supported
it.
Until the spec tells us what to do we should disable support. This is
also neccesary because the new generated content implementation doesn't
support shadows.
Test: fast/forms/pseudo-elements.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetter):
* rendering/RenderListBox.h: Added missing canHaveGeneratedChildren() that returns false.
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::updateBeforeAfterContent):
2012-10-23 Huang Dongsung <luxtella@company100.net>
[CSS Shaders] Implement overlay, color-dodge, color-burn, hard-light, soft-light blend modes.
https://bugs.webkit.org/show_bug.cgi?id=98504
Reviewed by Dean Jackson.
Add expressions for the aforementioned blend modes. The expressions are lifted
directly from the CSS Compositing and Blending spec [1]. WebKit adds these
blending expressions to the author's shader.
[1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnormal
Test: css3/filters/custom/custom-filter-blend-modes.html
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
(WebCore::CustomFilterValidatedProgram::blendFunctionString):
2012-10-23 Huang Dongsung <luxtella@company100.net>
[CSS Shaders] Implement all composite operators except destination and lighter.
https://bugs.webkit.org/show_bug.cgi?id=97859
Reviewed by Dean Jackson.
Add expressions for all composite operators except destination and
lighter. The expressions are lifted directly from the CSS Compositing
and Blending spec [1]. WebKit adds these compositing expressions to the
author's shader.
[1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#advancedcompositing
Test: css3/filters/custom/custom-filter-composite-operators.html
* platform/graphics/filters/CustomFilterCompiledProgram.cpp:
(WebCore::CustomFilterCompiledProgram::initializeParameterLocations):
Remove ASSERTION checking if glGetUniformLocation returns negative,
because ASSERTION can fail with clear and copy composite operations.
Clear and copy composite operations do not need "css_u_texture"
representing the DOM element texture. If the driver compiler is
smart, "css_u_texture" is not regarded as an active uniform, so
glGetuniformLocation returns -1. glGetAttribLocation ditto.
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore::CustomFilterValidatedProgram::compiledProgram):
Move the above ASSERTION in CustomFilterCompiledProgram to here.
ASSERTION checks if m_samplerLocation is not -1 when the author
shader needs an input texture.
(WebCore::CustomFilterValidatedProgram::needsInputTexture):
(WebCore):
(WebCore::CustomFilterValidatedProgram::compositeFunctionString):
* platform/graphics/filters/CustomFilterValidatedProgram.h:
(CustomFilterValidatedProgram):
2012-10-23 Max Vujovic <mvujovic@adobe.com>
[CSS Shaders] Changing the blend mode in CSS doesn't update the custom filter rendering
https://bugs.webkit.org/show_bug.cgi?id=99887
Reviewed by Dirk Schulze.
Before this patch, WebKit would not recompute an element's style when just its custom filter
blend mode changed.
For example, suppose an element initially has the style:
-webkit-filter: custom(none mix(url(shader.fs) multiply source-atop));
Then, we change the blend mode from "multiply" to "normal":
-webkit-filter: custom(none mix(url(shader.fs) normal source-atop));
WebKit now detects this change and recomputes the style.
CustomFilterProgram now has an equals operator that considers the program type and the mix
settings. The mix settings contain the blend mode.
Test: css3/filters/custom/custom-filter-change-blend-mode.html
* platform/graphics/filters/CustomFilterProgram.cpp:
(WebCore::CustomFilterProgram::operator==):
Previously, the equals operator was pure virtual in CustomFilterProgram. Now,
CustomFilterProgram implements it and compares the program type and mix settings, if
appropriate.
(WebCore):
* platform/graphics/filters/CustomFilterProgram.h:
* platform/graphics/filters/CustomFilterProgramInfo.cpp:
(WebCore::CustomFilterProgramInfo::hash):
Refactor a repeated condition into a boolean to improve readability.
(WebCore::CustomFilterProgramInfo::operator==):
Refactor repeated conditions to improve readability. Reorder the conditions so the less
expensive ones occur first.
* rendering/style/StyleCustomFilterProgram.h:
(WebCore::StyleCustomFilterProgram::operator==):
Call the base class's equals operator.
2012-10-23 David Barton <dbarton@mathscribe.com>
[MathML] Symbol font uses greek letters for roman ones on linux and Windows
https://bugs.webkit.org/show_bug.cgi?id=99921
Reviewed by Eric Seidel.
For parts of stretched parentheses and brackets, mathml.css currently uses the Symbol font,
which on linux and Windows has greek letters at roman code points. To fix this, we switch
to the STIXSizeOneSym font when available. However, this can cause vertical gaps between
glyph parts, because of hard-coded constants in RenderMathMLOperator.cpp. We eliminate all
these constants. We also shift glyphs upward by 1px and truncate them to avoid the gaps.
Tested by existing tests, and one test added to LayoutTests/mathml/presentation/mo.xhtml.
* css/mathml.css:
(math, mfenced > *):
- Set font-family for mn, mi, etc.
(mo, mfenced):
- Set font-family for mo and anonymous operators, including extension glyphs for
stretched operators like parentheses and brackets.
(math):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore):
- Change 0x23d0 to 0x23aa for STIX & Cambria Math fonts.
(WebCore::RenderMathMLOperator::glyphHeightForCharacter):
(WebCore::RenderMathMLOperator::updateFromElement):
(WebCore::RenderMathMLOperator::createStackableStyle):
- Eliminate unused lineHeight and topRelative parameters, and the hard-coded font size
of 14.
(WebCore::RenderMathMLOperator::createGlyph):
- Eliminate unused lineHeight and topRelative parameters.
* rendering/mathml/RenderMathMLOperator.h:
(RenderMathMLOperator):
2012-10-23 Benjamin Poulain <benjamin@webkit.org>
WTFURL: Implement KURL::setPort()
https://bugs.webkit.org/show_bug.cgi?id=99898
Reviewed by Adam Barth.
* platform/KURLWTFURL.cpp:
(WebCore::KURL::setPort):
2012-10-23 Nico Weber <thakis@chromium.org>
In the open-source jpeg decoder, read image orientation from the exif data
https://bugs.webkit.org/show_bug.cgi?id=100144
Reviewed by Eric Seidel.
This will be used to implement the shouldRespectImageOrientation
setting (see bug 19688). Currently this isn't hooked up anywhere, so
it has no observable effect for now.
Once it's hooked up, it will be tested by
fast/images/exif-orientation.html
* platform/graphics/BitmapImage.h:
* platform/image-decoders/ImageDecoder.h:
(WebCore::ImageDecoder::orientation):
(ImageDecoder):
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::readUint16):
(WebCore):
(WebCore::readUint32):
(WebCore::checkExifHeader):
(WebCore::readImageOrientation):
(WebCore::JPEGImageReader::JPEGImageReader):
(WebCore::JPEGImageReader::decode):
* platform/image-decoders/jpeg/JPEGImageDecoder.h:
(WebCore::JPEGImageDecoder::setOrientation):
2012-10-23 Chris Rogers <crogers@google.com>
Fix thread safety issue in AudioParamTimeline
https://bugs.webkit.org/show_bug.cgi?id=100154
Reviewed by Kenneth Russell.
Add appropriate locking in AudioParamTimeline::valueForContextTime()
* Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::valueForContextTime):
2012-10-23 Alec Flett <alecflett@chromium.org>
IndexedDB: refactor backend to use IDB*Metadata
https://bugs.webkit.org/show_bug.cgi?id=100055
Reviewed by Tony Chang.
This further encapsulates the static data in
IDBObjectStoreBackendImpl and IDBIndexBackendImp into their
respective IDB*Metadata structs, in preparation for
https://bugs.webkit.org/show_bug.cgi?id=99774.
No new tests as this is purely a refactor.
* Modules/indexeddb/IDBBackingStore.h:
(IDBBackingStore):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::createObjectStore):
(WebCore::IDBDatabaseBackendImpl::loadObjectStores):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
(WebCore::IDBIndexBackendImpl::metadata):
* Modules/indexeddb/IDBIndexBackendImpl.h:
(WebCore::IDBIndexBackendImpl::create):
(WebCore::IDBIndexBackendImpl::id):
(WebCore::IDBIndexBackendImpl::setId):
(WebCore::IDBIndexBackendImpl::hasValidId):
(WebCore::IDBIndexBackendImpl::name):
(WebCore::IDBIndexBackendImpl::keyPath):
(WebCore::IDBIndexBackendImpl::unique):
(WebCore::IDBIndexBackendImpl::multiEntry):
(IDBIndexBackendImpl):
* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
(WebCore::IDBLevelDBBackingStore::getObjectStores):
(WebCore::IDBLevelDBBackingStore::getIndexes):
* Modules/indexeddb/IDBLevelDBBackingStore.h:
(IDBLevelDBBackingStore):
* Modules/indexeddb/IDBMetadata.h:
(WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
(WebCore::IDBObjectStoreBackendImpl::metadata):
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::createIndex):
(WebCore::IDBObjectStoreBackendImpl::loadIndexes):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(WebCore::IDBObjectStoreBackendImpl::create):
(WebCore::IDBObjectStoreBackendImpl::id):
(WebCore::IDBObjectStoreBackendImpl::setId):
(WebCore::IDBObjectStoreBackendImpl::name):
(WebCore::IDBObjectStoreBackendImpl::keyPath):
(WebCore::IDBObjectStoreBackendImpl::autoIncrement):
(IDBObjectStoreBackendImpl):
2012-10-19 Roger Fong <roger_fong@apple.com>
[WebGL] conformance/textures/texture-size.html is failing on Apple Mountain Lion
https://bugs.webkit.org/show_bug.cgi?id=94041
Reviewed by Dean Jackson.
When binding a texture to GL_TEXTURE_2D when GL_ACTIVE_TEXTURE is 0, we set m_boundTexture0 to the texture unit.
However when we delete the texture, we need to be setting m_boundTexture0 to 0.
Otherwise when we draw to the screen we bind m_boundTexture0 in the prepareTexture() method and since the associated texture
has already been deleted we end up in an error state.
Tested using Khronos WebGL conformance suite:
conformance/textures/texture-size.html
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::deleteTexture):
2012-10-22 Dirk Schulze <krit@webkit.org>
BasicShapePolygon::path takes width instead of height for boundary calculation
https://bugs.webkit.org/show_bug.cgi?id=99919
Reviewed by Darin Adler.
The 'y' parameters of polygon were calculated by the with of the bounding box of the object.
This caused problems on percentage values for point positions.
Changed it to the height of the bounding box.
Test: css3/masking/clip-path-polygon-percentage.html
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShapePolygon::path):
2012-10-23 Dominik Röttsches <dominik.rottsches@intel.com>
Add timeout support to XMLHttpRequest
https://bugs.webkit.org/show_bug.cgi?id=74802
Reviewed by Nate Chapin.
An implementation of XHR2 timeouts by using ResourceRequest's setTimeoutInterval.
This made several changes necessary in CachedResource and SubresourceLoader in order
to distinguish and forward the timeout case from there.
The case of late updates to the timeout property, changing the timeout value after send()
is not supported yet and handled separately in bug 98156.
XHR2 timeout tests were initially written by Mozilla's Alex Vincent's. He granted
permission to reuse them under PD/BSD license
in https://bugzilla.mozilla.org/show_bug.cgi?id=525816#c86 - big thanks!
I adapted them for W3C testharness.js and split them into groups with shorter test running time
so that they can be used as WebKit layout tests.
Tests: http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-abortedonmain.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-twice.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-simple.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-synconworker.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-twice.html
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::notifyFinished): Forward information about timeout case.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didFail): Distinguish timeout case when informing client.
* loader/cache/CachedResource.h: Distinguishing timeout case for errors.
(WebCore::CachedResource::errorOccurred):
(WebCore::CachedResource::loadFailedOrCanceled):
(WebCore::CachedResource::timedOut):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::XMLHttpRequest): Initializing m_timeout value to zero.
(WebCore::XMLHttpRequest::setTimeout): Setter function, possibly raising JS exception.
(WebCore):
(WebCore::XMLHttpRequest::open): Open call may raise exception for synchronous requests when timeout value is set.
(WebCore::XMLHttpRequest::createRequest): Assigning timeout value to ResourceRequest.
(WebCore::XMLHttpRequest::didFail): Handling timeout case separately.
(WebCore::XMLHttpRequest::didTimeout): Timeout case state transisition and event firing as spec'ed.
* xml/XMLHttpRequest.h: New event listener, member and callback for handling timeout.
(WebCore::XMLHttpRequest::timeout):
(XMLHttpRequest):
* xml/XMLHttpRequest.idl: New event listener and property added.
* xml/XMLHttpRequestException.cpp:
* xml/XMLHttpRequestException.h: Added an exception value for the timeout case.
2012-10-23 Christophe Dumez <christophe.dumez@intel.com>
Possible assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection()
https://bugs.webkit.org/show_bug.cgi?id=99967
Reviewed by Tony Chang.
Fix assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection() when
pressing the left mouse button outside a multiselect and then moving the cursor
over the multiselect element while holding the button down.
The issue is that the HTMLSelectElement handler for the mouse move event does
not check if there is a selection before trying to extend the selection.
Test: fast/dom/HTMLSelectElement/select-selectedIndex-noAnchorIndex-crash.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
2012-10-23 Adam Barth <abarth@webkit.org>
[V8] ScriptWrappable should hold the wrapper handle directly (Dromaeo/dom-modify and dom-traverse get ~2.5% faster)
https://bugs.webkit.org/show_bug.cgi?id=97974
Reviewed by Eric Seidel.
Previously, we stored a pointer to a handle to a wrapper in Node. That
is an extra layer of indirection that slows down finding the wrapper
for the node. A handle is just a pointer, so we might as we just store
the handle in the Node directly. That speeds up dom-modify and
dom-traverse by about 2.5%.
This change also lets us get rid of the ChunkedTable we were using to
store all the wrappers because they're now stored in the Nodes
directly.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* bindings/v8/IntrusiveDOMWrapperMap.h:
(WebCore::IntrusiveDOMWrapperMap::IntrusiveDOMWrapperMap):
(WebCore::IntrusiveDOMWrapperMap::get):
(WebCore::IntrusiveDOMWrapperMap::set):
(WebCore::IntrusiveDOMWrapperMap::contains):
(WebCore::IntrusiveDOMWrapperMap::visit):
(WebCore::IntrusiveDOMWrapperMap::removeIfPresent):
(WebCore::IntrusiveDOMWrapperMap::clear):
* bindings/v8/ScriptWrappable.h:
(WebCore::ScriptWrappable::ScriptWrappable):
(WebCore::ScriptWrappable::wrapper):
(WebCore::ScriptWrappable::setWrapper):
(WebCore::ScriptWrappable::disposeWrapper):
(WebCore::ScriptWrappable::reportMemoryUsage):
(ScriptWrappable):
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::getCachedWrapper):
2012-10-23 Kentaro Hara <haraken@chromium.org>
[V8] Replace SetGlobalGCPrologueCallback() with AddGCPrologueCallback()
https://bugs.webkit.org/show_bug.cgi?id=100140
Reviewed by Adam Barth.
SetGlobalGCPrologueCallback() and SetGlobalGCEpilogueCallback()
are deprecated (See http://code.google.com/codesearch#OAMlx_jo-ck/src/v8/include/v8.h&exact_package=chromium&q=v8.h&type=cs&l=3149)
Instead we should use AddGCPrologueCallback()
and AddGCEpilogueCallback().
No tests. No change in behavior.
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::initializeV8IfNeeded):
* bindings/v8/V8GCController.cpp:
(WebCore::V8GCController::gcPrologue):
(WebCore):
(WebCore::V8GCController::minorGCPrologue):
(WebCore::V8GCController::majorGCPrologue):
(WebCore::V8GCController::gcEpilogue):
(WebCore::V8GCController::minorGCEpilogue):
(WebCore::V8GCController::majorGCEpilogue):
* bindings/v8/V8GCController.h:
(V8GCController):
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::WorkerContextExecutionProxy::initIsolate):
2012-10-23 Adam Barth <abarth@webkit.org>
[V8] Enumerate Nodes via the V8 heap rather than via a list in WebCore
https://bugs.webkit.org/show_bug.cgi?id=100033
Reviewed by Eric Seidel.
This patch changes how we enumerate nodes during garbage collection.
After this patch, we use V8's list of open handles to enumerate node
wrappers rather than using a separate list that we maintain in WebCore
for this purpose. A future patch will remove the list in WebCore for a
DOM performance gain.
* bindings/js/ScriptProfiler.h:
(WebCore):
(WebCore::ScriptProfiler::visitNodeWrappers):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateToV8Converters):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore::V8TestNode::wrapSlow):
* bindings/v8/IntrusiveDOMWrapperMap.h:
(WebCore::IntrusiveDOMWrapperMap::set):
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::visitNodeWrappers):
* bindings/v8/ScriptProfiler.h:
(WebCore):
(ScriptProfiler):
* bindings/v8/V8DOMMap.cpp:
(WebCore::NodeWrapperVisitor::~NodeWrapperVisitor):
(WebCore):
(WebCore::visitAllDOMNodes):
* bindings/v8/V8DOMMap.h:
(WebCore):
(NodeWrapperVisitor):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
(WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode):
* bindings/v8/V8GCController.cpp:
(WebCore::NodeVisitor::visitNodeWrapper):
(WebCore::V8GCController::gcPrologue):
(WebCore::V8GCController::gcEpilogue):
* inspector/BindingVisitors.h:
(WebCore::WrappedNodeVisitor::~WrappedNodeVisitor):
* inspector/InspectorMemoryAgent.cpp:
(WebCore):
2012-10-22 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: paint rectangles are incorrectly shown in case subframes are present
https://bugs.webkit.org/show_bug.cgi?id=99849
Reviewed by Pavel Feldman.
Move GraphicsContext and paint rectangle from willPaint() to didPaint(), so we don't have
to store them as a state of InspectorPageAgent
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willPaintImpl):
(WebCore::InspectorInstrumentation::didPaintImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::willPaint):
(WebCore::InspectorInstrumentation::didPaint):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::didPaint):
* inspector/InspectorPageAgent.h:
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::willPaint):
(WebCore::InspectorTimelineAgent::didPaint):
* inspector/InspectorTimelineAgent.h:
(InspectorTimelineAgent):
* inspector/TimelineRecordFactory.cpp:
* inspector/TimelineRecordFactory.h:
(TimelineRecordFactory):
* page/FrameView.cpp:
(WebCore::FrameView::paintContents):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintContents):
2012-10-23 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: array grouping does not work for arrays with exactly 10000 elements.
https://bugs.webkit.org/show_bug.cgi?id=100131
Reviewed by Vsevolod Vlasov.
Using ceil() - 1 instead of floor() in bucket size calculation.
* inspector/front-end/ObjectPropertiesSection.js:
2012-10-23 Shinya Kawanaka <shinyak@chromium.org>
The order of resolving distribution in tree composition is wrong.
https://bugs.webkit.org/show_bug.cgi?id=99552
Reviewed by Dimitri Glazkov.
According to the current ShadowDOM spec, we have to resolve <content> first, then resolve <shadow>.
However, the order of resolution is now the mixed tree order of <content> and <shadow>.
Test: fast/dom/shadow/content-reprojection-order.html
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::distribute): We should resolve <content> before <shadow>.
Only the first active shadow insertion point can select the rest of contents.
* html/shadow/HTMLContentElement.h:
(HTMLContentElement):
* html/shadow/HTMLShadowElement.cpp:
* html/shadow/HTMLShadowElement.h:
(WebCore::isHTMLShadowElement):
(WebCore):
(WebCore::toHTMLShadowElement):
* html/shadow/InsertionPoint.h:
(InsertionPoint): We don't need doesSelectFromHostChildren() anymore.
2012-10-23 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Move UISourceCode creation out of mappings to workspace.
https://bugs.webkit.org/show_bug.cgi?id=100092
Reviewed by Pavel Feldman.
Moved uiSourceCode constructor calls out of mappings to workspace.
* inspector/front-end/CompilerScriptMapping.js:
* inspector/front-end/NetworkUISourceCodeProvider.js:
(WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
(WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
(WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
(WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
(WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
(WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
(WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
* inspector/front-end/SASSSourceMapping.js:
(_bindUISourceCode):
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
(WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
* inspector/front-end/Workspace.js:
(WebInspector.Project.prototype.addUISourceCode):
(WebInspector.Project.prototype.removeUISourceCode):
(WebInspector.Workspace.prototype.addTemporaryUISourceCode):
(WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
2012-10-23 Emil A Eklund <eae@chromium.org>
Remove unnecessary m_layoutDelta[XY]Saturated initialization
https://bugs.webkit.org/show_bug.cgi?id=100018
Reviewed by Julien Chaffraix.
Remove unnecessary initialization from LayoutState constructor
added in r132105.
No new tests, no change in functionality.
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
2012-10-23 Zeno Albisser <zeno@webkit.org>
[Texmap] Fix drawTextureRectangleARB after r131485.
https://bugs.webkit.org/show_bug.cgi?id=100133
Consistently rename u_textureSize to u_samplerSize.
Reviewed by Noam Rosenthal.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawTextureRectangleARB):
* platform/graphics/texmap/TextureMapperShaderManager.cpp:
(WebCore::getShaderSpec):
* platform/graphics/texmap/TextureMapperShaderManager.h:
(TextureMapperShaderProgram):
2012-10-23 Mike West <mkwst@chromium.org>
Web Inspector: 'data:' URLs should be properly trimmed for readability.
https://bugs.webkit.org/show_bug.cgi?id=100083
Reviewed by Pavel Feldman.
We recently landed a patch to trim the middle out of long URLs in
console messages in order to improve readability. That patch didn't
effect 'data:' URLs, as they didn't match the regex in the linkifier.
This patch ensures that 'data:' URLs are properly trimmed down to
size.
This problem came to light while resolving a different, smaller issue:
'image/jpg' wasn't whitelisted as an image MIME type. That trivial fix
is included in this patch.
Test: http/tests/inspector/network/image-as-text-loading-data-url.html
* inspector/front-end/NetworkManager.js:
(WebInspector.NetworkManager):
Adds 'image/jpg' as a valid image type.
* inspector/front-end/ResourceUtils.js:
(WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
Supports 'data:' URLs in the linkifier's regex.
2012-10-23 Mike West <mkwst@chromium.org>
Web Inspector: Floated anchor element sometimes overlaps following content.
https://bugs.webkit.org/show_bug.cgi?id=100105
Reviewed by Pavel Feldman.
This patch ensures that each console message clears the
potentially-overlapping floated anchor element.
* inspector/front-end/inspector.css:
(#console-prompt):
(.console-message, .console-user-command):
Clear the float, and flip the border from the bottom of the
message to the top. Do the same for the prompt.
(.console-message:first-child):
Ensure that the first message doesn't have a top border.
2012-10-23 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Crash when adding a keyframes rule in the Styles pane
https://bugs.webkit.org/show_bug.cgi?id=99826
Reviewed by Pavel Feldman.
The client-supplied selector text is first parsed to make sure it results in a valid style rule selector.
Test: inspector/styles/add-new-rule-invalid-selector.html
* inspector/InspectorStyleSheet.cpp:
(WebCore::createCSSParser):
(WebCore):
(WebCore::InspectorStyle::setPropertyText):
(WebCore::checkStyleRuleSelector):
(WebCore::InspectorStyleSheet::addRule):
(WebCore::InspectorStyleSheet::ensureSourceData):
(WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
2012-10-15 Kenneth Rohde Christiansen <kenneth@webkit.org>
Add support for resolution media query
https://bugs.webkit.org/show_bug.cgi?id=99077
Reviewed by Antti Koivisto.
Add support for 'resolution' media query feature.
Background info:
http://www.w3.org/blog/CSS/2012/06/14/unprefix-webkit-device-pixel-ratio
Related spec links:
http://www.w3.org/TR/css3-mediaqueries/#resolution (recommendation)
http://www.w3.org/TR/css3-values/#resolution (candidate recommentation)
Add infrastructure to make it testable.
Test: fast/media/mq-resolution.html
* css/CSSParser.cpp:
(WebCore::CSSParser::validUnit):
(WebCore::CSSParser::createPrimitiveNumericValue):
(WebCore::CSSParser::parseValidPrimitive):
(WebCore::CSSParser::detectNumberToken):
* css/CSSParser.h:
* css/CSSPrimitiveValue.cpp:
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::unitCategory):
(WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
(WebCore::CSSPrimitiveValue::customCssText):
(WebCore::CSSPrimitiveValue::cloneForCSSOM):
* css/CSSPrimitiveValue.h:
Enable dpi, dpcm and dppx units when RESOLUTION_MEDIA_QUERY
is enabled.
* WebCore.exp.in:
Export the WebCore::Settings setting.
* css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::isDotsPerInch):
(WebCore::CSSPrimitiveValue::isDotsPerPixel):
(WebCore::CSSPrimitiveValue::isDotsPerCentimeter):
(CSSPrimitiveValue):
Add function for checking the recently added density types.
* css/MediaFeatureNames.h:
(MediaFeatureNames):
Add support for resolution, min-resolution and max-resolution.
* css/MediaQueryEvaluator.cpp:
(WebCore::compareResolution): Add methods for comparing resolutions.
(WebCore):
(WebCore::resolutionMediaFeatureEval):
(WebCore::min_resolutionMediaFeatureEval):
(WebCore::max_resolutionMediaFeatureEval):
Implement the resolution method evaluation.
* css/MediaQueryExp.cpp:
(WebCore::featureWithValidPositiveDensity):
(WebCore):
(WebCore::featureWithoutValue):
(WebCore::MediaQueryExp::MediaQueryExp):
Hook up resolution with the right pre-checks.
* page/Screen.cpp:
(WebCore::Screen::horizontalDPI):
(WebCore::Screen::verticalDPI):
Check whether an override exists, and if so, uses it.
If not calculate the value given the device scale factor.
* page/Settings.cpp:
(WebCore::Settings::setResolutionOverride):
(WebCore):
* page/Settings.h:
(Settings):
(WebCore::Settings::resolutionOverride):
Add a resolution override to settings.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setResolutionOverride):
(WebCore):
* testing/InternalSettings.h:
(Backup):
(InternalSettings):
* testing/InternalSettings.idl:
Add a new setResolutionOverride method to internals.settings.
2012-10-23 Filip Spacek <fspacek@rim.com>
[BlackBerry] Improve the use of stencil buffer during compositing
https://bugs.webkit.org/show_bug.cgi?id=100020
We always want to scissor so remove the define.
Only turn stenciling on if needed.
Reviewed by Rob Buis.
Reviewed internally by Arvid Nilsson.
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::setViewport):
(WebCore::LayerRenderer::compositeLayers):
(WebCore::LayerRenderer::drawLayersOnSurfaces):
(WebCore::LayerRenderer::compositeLayersRecursive):
(WebCore::LayerRenderer::updateScissorIfNeeded):
2012-10-23 'Pavel Feldman' <pfeldman@chromium.org>
Not reviewed: kick out non-chromium files from WebCore.gypi.
* WebCore.gypi:
2012-10-23 Alexander Shalamov <alexander.shalamov@intel.com>
[EFL][WK2] ecore_x should be initialised in WebProcess to avoid re-initialization by PlatformScreenEfl utilities and systemBeep() function
https://bugs.webkit.org/show_bug.cgi?id=100110
Reviewed by Kenneth Rohde Christiansen.
Removed initialization of ecore_x, since it is initialized when process starts.
test: fast/media/*
* platform/efl/PlatformScreenEfl.cpp:
(WebCore::screenDepth):
(WebCore::screenRect):
* platform/efl/SoundEfl.cpp:
(WebCore::systemBeep):
2012-10-23 Adam Klein <adamk@chromium.org>
Always parse pasted fragments as HTML even on XHTML pages
https://bugs.webkit.org/show_bug.cgi?id=99880
Reviewed by Ojan Vafai.
When pasting HTML into a page, using the XML parser is unlikely
to work correctly, as the contents of the clipboard are unlikely
to be properly-formed XHTML. Thus, for the pasting case, it's always
better to use HTML parsing, which will properly parse either HTML
(which is what's usually in the clipboard) or XHTML (which is
sometimes there as well).
The Mac port previously worked around this problem by falling back to plain text
when parsing failed, but switching to HTML seems like a clear improvement.
This also fixes a crash in Chromium (see http://webkit.org/b/99607
and http://crbug.com/136218); it erroneously assumed that createFragmentFromMarkup()
would never return null. This patch makes that true.
* editing/markup.cpp:
(WebCore::createFragmentFromMarkup): Don't delegate to createContextualFragment:
we already know our context element is safe (i.e., it's <body>),
and we want to force HTML (not XML) parsing.
2012-10-23 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] REGRESSION (r130851): fast/text/word-space-with-kerning.html fails
https://bugs.webkit.org/show_bug.cgi?id=98876
Reviewed by Simon Hausmann.
Do not add word-spacing for leading space. This matches what simple path font-width does.
Tested by existing tests.
* platform/graphics/qt/FontQt.cpp:
(WebCore::Font::floatWidthForComplexText):
2012-10-23 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Incorrect resolution of relative URLs containing a scheme in query parameters
https://bugs.webkit.org/show_bug.cgi?id=100084
Reviewed by Vsevolod Vlasov.
Use the RFC 3986 grammar for the URL scheme.
* inspector/front-end/ParsedURL.js:
(WebInspector.ParsedURL):
2012-10-23 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Elaborate source panel sidebar context menus.
https://bugs.webkit.org/show_bug.cgi?id=99980
Reviewed by Vsevolod Vlasov.
- Watches: add "Add watch expression" item to items and empty element
- Watches: hide "Remove watch expression" from editing prompt context menu
- Watches: add titles to header buttons
- XHR Breakpoints: add "Add Breakpoint" item to items and empty element
- XHR Breakpoints: add "Remove all breakpoints" item to items (when >1)
- XHR Breakpoints: add title to header button
- JS Breakpoints: hide "Remove/(De)Activate breakpoints" when only 1 item present
- JS Breakpoints: add "(De)Activate breakpoints" to empty element context menu
* English.lproj/localizedStrings.js: Added corresponding strings.
* inspector/front-end/BreakpointsSidebarPane.js: Adjusted context menu.
(WebInspector.XHRBreakpointsSidebarPane): Ditto.
* inspector/front-end/ObjectPropertiesSection.js: Added "isEditing()"
* inspector/front-end/WatchExpressionsSidebarPane.js: Adjusted context menu.
2012-10-23 Kent Tamura <tkent@chromium.org>
Update binding test results for r132194
https://bugs.webkit.org/show_bug.cgi?id=100097
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::V8TestObj::installPerContextProperties):
2012-10-23 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Sass can only resolve same folder paths
https://bugs.webkit.org/show_bug.cgi?id=99259
Reviewed by Vsevolod Vlasov.
The actual reason is that the rule source location linkifier tries to linkify a resource (*.scss), which does not exist,
and falls back to just stripping the main page URL prefix from the rule location URL. This change introduces LiveLocations
for CSSRule locations and makes sure they are linkified using uiSourceCode's parsedURL.displayName.
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSStyleModel): Introduced LiveLocation management for CSSRules.
(WebInspector.CSSStyleModel.prototype.setSourceMapping):
(WebInspector.CSSStyleModel.prototype._updateLocations):
(WebInspector.CSSStyleModel.prototype.createLiveLocation):
(WebInspector.CSSStyleModel.prototype.updateLocations):
(WebInspector.CSSStyleModel.LiveLocation): A LiveLocation for the CSS domain.
(WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
(WebInspector.CSSStyleModel.LiveLocation.prototype.dispose):
* inspector/front-end/Linkifier.js:
(WebInspector.Linkifier.prototype.linkifyCSSRuleLocation): CSSRule LiveLocation-based link builder.
(WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor): Add a title for anchors.
(WebInspector.Linkifier.DefaultCSSFormatter): Formatter for CSS location links.
(WebInspector.Linkifier.DefaultCSSFormatter.prototype.formatLiveAnchor):
* inspector/front-end/ResourceUtils.js:
(WebInspector.displayNameForURL): Use parsedURL.displayName if uiSourceCode is present for the specified URL.
* inspector/front-end/SASSSourceMapping.js:
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane):
(WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
* inspector/front-end/inspector.html:
2012-10-23 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r132149.
http://trac.webkit.org/changeset/132149
https://bugs.webkit.org/show_bug.cgi?id=100098
Breaks inspector profiler tests in debug mode. (Requested by
pfeldman1 on #webkit).
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::calcWidthArray):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::styleDidChange):
(WebCore::RenderTableCol::updateFromElement):
(WebCore::RenderTableCol::computePreferredLogicalWidths):
* rendering/RenderTableCol.h:
(RenderTableCol):
2012-10-23 Simon Hausmann <simon.hausmann@digia.com>
Unreviewed trivial Qt build fix: Fix build without USE_3D_GRAPHICS
Move the #if USE(GRAPHICS_SURFACE) up to protect the inclusion of
GraphicsContext3D.h to be done only if we use the surface.
* platform/graphics/surfaces/GraphicsSurface.h:
2012-10-23 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r132033.
http://trac.webkit.org/changeset/132033
https://bugs.webkit.org/show_bug.cgi?id=100097
Broke calendar picker (Requested by tkent on #webkit).
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateImplementation):
2012-10-23 Andras Becsi <andras.becsi@digia.com>
Remove devicePixelRatio from ViewportAttributes
https://bugs.webkit.org/show_bug.cgi?id=99845
Reviewed by Adam Barth.
Since r121555 the devicePixelRatio is not calculated any more
and the scale factor is stored in Page::m_deviceScaleFactor,
thus it can be removed from ViewportAttributes to reduce
redundancy and unnecessary client code.
Use a new parameter in viewport calculation functions using
the visible viewport size (instead of passing the adjusted
viewport size) so that after this change clients do not end
up using the unadjusted viewport size for calculations.
No behavioural change, no new tests needed.
* WebCore.exp.in:
* dom/ViewportArguments.cpp:
(WebCore::computeViewportAttributes):
(WebCore::computeMinimumScaleFactorForContentContained):
Add the devicePixelRatio as a parameter.
(WebCore::restrictMinimumScaleFactorToViewportSize): Ditto.
* dom/ViewportArguments.h:
(ViewportAttributes):
(WebCore):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::configurationForViewport):
2012-10-23 Kent Tamura <tkent@chromium.org>
Support full month names in DateTimeEditElement, and use them in input[type=month] by default
https://bugs.webkit.org/show_bug.cgi?id=100060
Reviewed by Kentaro Hara.
According to https://plus.google.com/104770450049736549185/posts/4zsoeHoa7SM
no one wants to show abbreviated month names for input[type=month].
This change add support for full month names in DateTimeEditELement, and
LocaleICU and LocaleMac retun month formats with full month names. Note
that LocaleWin::monthFormat returns formats for full month names.
No new tests. Covered by fast/forms/month-multiple-fields/month-multiple-fields-appearance-*.html
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitField):
If count is 4, use Localizer::monthLabels or standAloneMonthLabels.
* platform/text/LocaleICU.cpp:
(WebCore::LocaleICU::monthFormat):
Returns a format for full month names.
* platform/text/mac/LocaleMac.mm:
(WebCore::LocaleMac::monthFormat): Ditto.
2012-10-23 Mike West <mkwst@chromium.org>
Viewport errors should be slightly friendlier with regard to ';'.
https://bugs.webkit.org/show_bug.cgi?id=100003
Reviewed by Adam Barth.
This patch scans viewport values that cause errors for ';'. If found,
a quick message is appended to the error, noting that semicolons are
not valid separators in viewport contents, and that commas would be
the proper substitute.
No functional changes, just a better error message.
* dom/ViewportArguments.cpp:
(WebCore::reportViewportWarning):
2012-10-23 Timothy Hatcher <timothy@apple.com>
Docking/undocking the Web Inspector does not work correctly in Safari.
The "docked" and "bottom" strings need quoted instead of being passed as identifiers.
https://bugs.webkit.org/show_bug.cgi?id=100080
Reviewed by Yury Semikhatsky.
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::setAttachedWindow): Put quotes around the %s.
2012-10-23 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
[EFL][WK2] Compilation warning in GraphicsContext3DPrivate.cpp when AC is enabled
https://bugs.webkit.org/show_bug.cgi?id=99723
Reviewed by Kenneth Rohde Christiansen.
Fix compilation warning in GraphicsContext3DPrivate.cpp when AC is
enabled.
No new tests, no change in behavior.
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::createSurface):
2012-10-23 Dan Carney <dcarney@google.com>
When blocking localStorage, Firefox throws a security exception on access, and maybe so should we
https://bugs.webkit.org/show_bug.cgi?id=63257
Reviewed by Jochen Eisinger.
Throw security exception when local storage is accessed
under certain circumstances to match firefox.
No new tests. Existing tests modified.
* bindings/js/JSStorageCustom.cpp:
(WebCore::JSStorage::canGetItemsForName):
(WebCore::JSStorage::nameGetter):
(WebCore::JSStorage::deleteProperty):
(WebCore::JSStorage::getOwnPropertyNames):
* bindings/v8/custom/V8StorageCustom.cpp:
(WebCore):
(WebCore::setDOMException):
(WebCore::V8Storage::namedPropertyEnumerator):
(WebCore::storageGetter):
(WebCore::V8Storage::namedPropertyQuery):
(WebCore::storageDeleter):
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
(WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::sessionStorage):
(WebCore::DOMWindow::localStorage):
* storage/Storage.cpp:
* storage/Storage.h:
(WebCore):
(WebCore::Storage::length):
(WebCore::Storage::key):
(WebCore::Storage::getItem):
(WebCore::Storage::setItem):
(WebCore::Storage::removeItem):
(WebCore::Storage::clear):
(WebCore::Storage::contains):
* storage/Storage.idl:
* storage/StorageArea.h:
(StorageArea):
* storage/StorageAreaImpl.cpp:
(WebCore::StorageAreaImpl::canAccessStorage): Checks whether access to storage is a security violation.
(WebCore):
(WebCore::StorageAreaImpl::disabledByPrivateBrowsingInFrame):
(WebCore::StorageAreaImpl::length):
(WebCore::StorageAreaImpl::key):
(WebCore::StorageAreaImpl::getItem):
(WebCore::StorageAreaImpl::setItem):
(WebCore::StorageAreaImpl::removeItem):
(WebCore::StorageAreaImpl::clear):
(WebCore::StorageAreaImpl::contains):
* storage/StorageAreaImpl.h:
(StorageAreaImpl):
2012-10-22 Joshua Bell <jsbell@chromium.org>
IndexedDB: Remove custom binding code for IDBCursor.value
https://bugs.webkit.org/show_bug.cgi?id=100034
Reviewed by Kentaro Hara.
Now that we're using ScriptValue instead of SerializedScriptValue we can just expose
IDBCursor.value as an |any| (IDL) or |ScriptValue| (C++) to maintain the specified
semantics that the object identity is retained across accesses.
Test: storage/indexeddb/cursor-value.html
* Modules/indexeddb/IDBCursor.cpp: Remove "dirty" tracking.
(WebCore::IDBCursor::IDBCursor):
(WebCore::IDBCursor::value):
(WebCore::IDBCursor::setValueReady):
* Modules/indexeddb/IDBCursor.h: IDBAny -> ScriptValue
(IDBCursor):
* Modules/indexeddb/IDBCursorWithValue.idl: IDBAny -> any
* Modules/indexeddb/IDBObjectStore.cpp: No need to route through IDBAny to get ScriptValue.
(WebCore):
* UseV8.cmake: Remove references to IDBCustomBindings.cpp
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* bindings/v8/IDBCustomBindings.cpp: Removed.
2012-10-22 Dan Bernstein <mitz@apple.com>
Font’s fast code path is used for partial runs with kerning and ligatures, but shouldn’t be
https://bugs.webkit.org/show_bug.cgi?id=100068
Reviewed by Sam Weinig.
As described in <http://webkit.org/b/100050>, the fast code path doesn’t handle partial runs
correctly when kerning or ligatures are enabled. Since the partial-run case is uncommon,
for now just use the complex code path in this case.
* platform/graphics/Font.cpp:
(WebCore::Font::drawText): Changed to use the complex path for partial runs if there are any
typesetting features.
(WebCore::Font::drawEmphasisMarks): Ditto.
(WebCore::Font::selectionRectForText): Ditto.
(WebCore::Font::offsetForPosition): Changed to use the complex path if there are any
typesetting features.
2012-10-22 Peter Wang <peter.wang@torchmobile.com.cn>
[BlackBerry] Missing some cookies in HTTP response header when set several cookies in one "Set-Cookie" header.
https://bugs.webkit.org/show_bug.cgi?id=99950
Reviewed by George Staikos.
In "NetworkJob::handleNotifyHeaderReceived", if there are several "Set-Cookie" headers,
we should combine the following ones with the first.
No new test case.
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::handleNotifyHeaderReceived):
2012-10-22 MORITA Hajime <morrita@google.com>
Assertion failed at WebCore::toInsertionPoint / WebCore::ContentDistributor::distribute
https://bugs.webkit.org/show_bug.cgi?id=100038
Reviewed by Kent Tamura.
isHTMLContentElement() assumes that the content element always has
a tag name "content" but it doesn't when Shadow DOM feature is
disabled. This fix let the function see the correct tag name.
Test: fast/dom/shadow/insertion-points-with-shadow-disabled.html
* html/shadow/HTMLContentElement.cpp:
(WebCore::HTMLContentElement::contentTagName):
* html/shadow/HTMLContentElement.h:
(HTMLContentElement):
(WebCore::isHTMLContentElement):
2012-10-22 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] Fallback content should also be reprojection.
https://bugs.webkit.org/show_bug.cgi?id=99750
Reviewed by Dimitri Glazkov.
Fallback content of InsertionPoint should be reprojected. The existing assumption that
only the direct child of host element can be distributed to InsertionPoint does not hold anymore.
So, if the parent of an element is InsertionPoint which should show fallback element, we have to
check the grand parent of the element instead of the element.
Tests: fast/dom/shadow/content-reprojection-fallback-reprojection.html
fast/dom/shadow/content-reprojection-fallback.html
* css/StyleResolver.cpp:
(WebCore::shouldResetStyleInheritance): Checks the grandparent of the element if the parent is
an InsertionPoint which uses fallback content.
* dom/ComposedShadowTreeWalker.cpp:
(WebCore::shadowOfParentForDistribution):
(WebCore):
(WebCore::resolveReprojection):
(WebCore::ComposedShadowTreeWalker::traverseParent):
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::shouldUseFallbackElements): True if the InsertionPoint should use fallback content.
(WebCore):
* html/shadow/InsertionPoint.h:
(WebCore::parentElementForDistribution): Returns the grandparent element if the parent is InsertionPoint which uses
fallback content. Returns parent element otherwise.
(WebCore):
2012-10-22 Keishi Hattori <keishi@webkit.org>
Label position is wrong in the suggestion picker when all the suggestions have labels
https://bugs.webkit.org/show_bug.cgi?id=99965
Reviewed by Kent Tamura.
Somehow the scrollbar was appearing and so the label element was being wrapped to the next line.
No new tests. Can't reproduce in layout test.
* Resources/pagepopups/suggestionPicker.css:
(.suggestion-list):
* Resources/pagepopups/suggestionPicker.js:
(SuggestionPicker.prototype._fixWindowSize): Explicitly show the scroll bar.
2012-10-22 MORITA Hajime <morrita@google.com>
[Chromium] Needs to track ShadowRoot usage
https://bugs.webkit.org/show_bug.cgi?id=99955
Reviewed by Dimitri Glazkov.
Added an UMA instrumentation.
* dom/ShadowRoot.cpp:
(WebCore::determineUsageType):
(WebCore):
(WebCore::ShadowRoot::create):
2012-10-22 Kent Tamura <tkent@chromium.org>
Introduce Localizer::standAloneMonthLabels
https://bugs.webkit.org/show_bug.cgi?id=99963
Reviewed by Kentaro Hara.
We realized full month names and full stand-alone month names were
necessary for input[type=month] UI. We change the compile-flag for
Localizer::monthLabels from "ENABLE(CALENDAR_PICKER)" to
"ENABLE(CALENDAR_PICKER) || ENABLE(INPUT_MULTIPLE_FIELDS_UI)," and
introduce Localizer::standAloneMonthLabels.
Tests: Add some test cases to Source/WebKit/chromium/LocaleMacTest.cpp
and LocalizedDateICUTest.cpp.
* platform/text/Localizer.h:
(Localizer):
- Add pure virtual standAloneMonthLabels.
- Change the condition for monthLabels.
* platform/text/LocaleNone.cpp:
(LocaleNone): Declare monthLabels, standAloneMonthLabels, and m_monthLabels.
(WebCore::LocaleNone::monthLabels):
Added. It always returns English month names.
(WebCore::LocaleNone::standAloneMonthLabels):
Added. Just calls monthLabels.
* platform/text/LocaleWin.h:
(LocaleWin):
Declare standAloneMonthLabels, and change the condition for monthLabels.
* platform/text/LocaleWin.cpp:
(WebCore): Change the condition for monthLabels.
(WebCore::LocaleWin::standAloneMonthLabels):
Added. Just calls monthLabels.
* platform/text/mac/LocaleMac.h:
(LocaleMac):
- Add standAloneMonthLabels and m_standAloneMonthLabels
- Change the condition for monthLabels and m_monthLabels.
* platform/text/mac/LocaleMac.mm:
(WebCore): Change the condition for monthLabels.
(WebCore::LocaleMac::standAloneMonthLabels):
Added. Get the information with NSDateFormatter::standaloneMonthSymbols.
* platform/text/LocaleICU.h:
(LocaleICU):
- Add standAloneMonthLabels and m_standAloneMonthLabels
- Change the condition for monthLabels and m_monthLabels.
* platform/text/LocaleICU.cpp:
(WebCore::LocaleICU::initializeCalendar):
Remove m_monthLabels initialization in order to avoid dependecy from monthLabels.
(WebCore):
(WebCore::createFallbackMonthLabels): Change the compile condition.
(WebCore::LocaleICU::monthLabels):
- Change the compile condition.
- Don't depend on initializeCalendar to make the code for
ENABLE(INPUT_MULTIPLE_FIELDS_UI) && !ENABLE(CALENDAR_PICKER) minimal.
(WebCore::LocaleICU::standAloneMonthLabels):
Added. The code is similar to shortStandAloneMonthLabels.
2012-10-22 Shinya Kawanaka <shinyak@chromium.org>
Refactoring around ContainerNode::attachChildren
https://bugs.webkit.org/show_bug.cgi?id=99968
Reviewed by Hajime Morita.
Since ContainerNode::attach() is now equivalent to ContainerNode::attachChildren() + Node::attach(), we should call
ContainerNode::attach() instead of calling them.
No new tests, no change in behavior.
* dom/ContainerNode.h:
(ContainerNode):
* dom/Element.cpp:
(WebCore::Element::attach):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::attach):
2012-10-22 Michael Saboff <msaboff@apple.com>
HTML Parser should produce 8 bit strings for doctype, comment and tagName tokens
https://bugs.webkit.org/show_bug.cgi?id=99889
Reviewed by Geoffrey Garen.
Added 8 bit check for accumulating all token data in MarkupTokenBase. Added code to convert
"name" token data directly to a string (8 or 16 as appropriate). Changed to accumulate
m_bufferedEndTagName as LChar's.
No new tests, covered by existing tests.
* html/parser/HTMLToken.h:
(HTMLToken):
* html/parser/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::nextToken):
(WebCore::HTMLTokenizer::addToPossibleEndTag):
(WebCore::HTMLTokenizer::isAppropriateEndTag):
* html/parser/HTMLTokenizer.h:
(HTMLTokenizer):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeLeading):
* xml/parser/MarkupTokenBase.h:
(WebCore::MarkupTokenBase::beginStartTag):
(WebCore::MarkupTokenBase::beginEndTag):
(MarkupTokenBase):
(WebCore::MarkupTokenBase::beginDOCTYPE):
(WebCore::MarkupTokenBase::appendToComment):
(WebCore::MarkupTokenBase::appendToName):
(WebCore::MarkupTokenBase::nameString):
(WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
2012-10-22 Tony Chang <tony@chromium.org>
margin-top/bottom has no effect for child nodes of flex items
https://bugs.webkit.org/show_bug.cgi?id=99923
Reviewed by Ojan Vafai.
Flexitems, like table cells, shouldn't collapse margins.
Test: css3/flexbox/flexitem-no-margin-collapsing.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::MarginInfo::MarginInfo): Check to see if the parent is a flexible box.
We should always have a parent if we make it this far in the check.
2012-10-22 Marja Hölttä <marja@chromium.org>
Refactor CachedResourceLoader: add CachedResourceRequest
https://bugs.webkit.org/show_bug.cgi?id=99736
Reviewed by Adam Barth.
For fixing bugs 84883 and 92761,
CachedResourceLoader::requestResource should take as parameter
information about who initiated the request. But the parameter
list was already long. This gathers all the parameters into a
separate class, CachedResourceRequest. The next step is to add
information about who initiated the request into
CachedResourceRequest.
No new tests because no changes in functionality, just moving code
around.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSFontFaceSrcValue.cpp:
(WebCore::CSSFontFaceSrcValue::cachedFont):
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::cachedImageSet):
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::cachedImage):
* css/StyleRuleImport.cpp:
(WebCore::StyleRuleImport::requestStyleSheet):
* css/WebKitCSSSVGDocumentValue.cpp:
(WebCore::WebKitCSSSVGDocumentValue::load):
* css/WebKitCSSShaderValue.cpp:
(WebCore::WebKitCSSShaderValue::cachedShader):
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::checkStyleSheet):
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestScript):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadRequest):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement):
* loader/LinkLoader.cpp:
(WebCore::LinkLoader::loadLink):
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::load):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestImage):
(WebCore::CachedResourceLoader::requestFont):
(WebCore::CachedResourceLoader::requestTextTrack):
(WebCore::CachedResourceLoader::requestShader):
(WebCore::CachedResourceLoader::requestCSSStyleSheet):
(WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
(WebCore::CachedResourceLoader::requestScript):
(WebCore::CachedResourceLoader::requestXSLStyleSheet):
(WebCore::CachedResourceLoader::requestSVGDocument):
(WebCore::CachedResourceLoader::requestLinkResource):
(WebCore::CachedResourceLoader::requestRawResource):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::requestPreload):
(WebCore::CachedResourceLoader::defaultCachedResourceOptions):
(WebCore):
* loader/cache/CachedResourceLoader.h:
(WebCore):
(CachedResourceLoader):
* loader/cache/CachedResourceRequest.cpp: Added.
(WebCore):
(WebCore::CachedResourceRequest::CachedResourceRequest):
* loader/cache/CachedResourceRequest.h: Added.
(WebCore):
(CachedResourceRequest):
(WebCore::CachedResourceRequest::mutableResourceRequest):
(WebCore::CachedResourceRequest::resourceRequest):
(WebCore::CachedResourceRequest::charset):
(WebCore::CachedResourceRequest::setCharset):
(WebCore::CachedResourceRequest::options):
(WebCore::CachedResourceRequest::priority):
(WebCore::CachedResourceRequest::forPreload):
(WebCore::CachedResourceRequest::setForPreload):
(WebCore::CachedResourceRequest::defer):
(WebCore::CachedResourceRequest::setDefer):
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::startLoading):
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::requestImageResource):
* svg/SVGFontFaceUriElement.cpp:
(WebCore::SVGFontFaceUriElement::loadFont):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::svgAttributeChanged):
* xml/XSLImportRule.cpp:
(WebCore::XSLImportRule::loadSheet):
2012-10-22 Adam Barth <abarth@webkit.org>
[V8] ASSERT that removeAllDOMObjects() is called only on worker threads
https://bugs.webkit.org/show_bug.cgi?id=100046
Reviewed by Eric Seidel.
This function is called only on worker threads. We should ASSERT that
fact and remove the dead code that tries to handle the main thread
case.
* bindings/v8/V8DOMMap.cpp:
(WebCore::removeAllDOMObjects):
2012-10-22 Adam Barth <abarth@webkit.org>
[V8] We should call the faster v8::Integer::New APIs
https://bugs.webkit.org/show_bug.cgi?id=100016
Reviewed by Eric Seidel.
In working to remove the integer cache, I added some faster APIs for
creating v8::Integers. These APIs are faster than the old APIs, but not
quite fast enough to replace the integer cache. We should still use
them when we miss the integer cache.
I've also included a small refactoring to V8PerIsolateData to make it
clearer when we're calling v8::Isolate::GetCurrent().
* bindings/v8/DOMData.cpp:
(WebCore::DOMData::getCurrentStore):
* bindings/v8/V8Binding.h:
(WebCore::v8ExternalString):
(WebCore::v8Integer):
(WebCore::v8UnsignedInteger):
* bindings/v8/V8PerIsolateData.h:
(WebCore::V8PerIsolateData::current):
(WebCore::V8PerIsolateData::from):
* bindings/v8/V8ValueCache.cpp:
(WebCore::StringCache::v8ExternalStringSlow):
(WebCore::IntegerCache::createSmallIntegers):
* bindings/v8/V8ValueCache.h:
(WebCore::IntegerCache::v8Integer):
(WebCore::IntegerCache::v8UnsignedInteger):
(IntegerCache):
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::V8HTMLCanvasElement::getContextCallback):
2012-10-22 Julien Chaffraix <jchaffraix@webkit.org>
RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
https://bugs.webkit.org/show_bug.cgi?id=99861
Reviewed by Ojan Vafai.
RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
widths dirty / layout flag so that we would properly propagate the information to our containing table. This
led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
or else we would ignore the next layout hint on the <col> or <colgroup>.
Test: fast/table/col-span-change-relayout.html
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
Simplified the code now that we only need to iterate over the sections.
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::calcWidthArray):
Removed call to computePreferredLogicalWidths.
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::styleDidChange):
(WebCore::RenderTableCol::updateFromElement):
Forward a layout hint to the table so that we properly recompute the cell's logical withs.
(WebCore::RenderTableCol::computePreferredLogicalWidths):
(WebCore::RenderTableCol::layout):
Change our implementations of those 2 methods to be no-ops, while enforcing that they are
never called.
(WebCore::RenderTableCol::propagateLayoutCueToTable):
New helper function that forward any layout cue to the containing table, this works around
us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
invalidateContainerPreferredLogicalWidths.
* rendering/RenderTableCol.h:
Made the function that we are not expected to be called private.
2012-10-22 Pan Deng <pan.deng@intel.com>
[User Timing]Integrate with Perforamnce Timeline.
https://bugs.webkit.org/show_bug.cgi?id=91072.
Reviewed by Tony Gentilcore.
This patch expose user timing entries via performance timeline interface. JavaScriptCore custom binding will be another patch
No new tests, user timing test cases have been landed.
* page/Performance.cpp:
(WebCore::Performance::Performance):
(WebCore::Performance::webkitGetEntries):
(WebCore::Performance::webkitGetEntriesByType):
(WebCore::Performance::webkitGetEntriesByName):
* page/PerformanceEntry.h:
(WebCore::PerformanceEntry::startTimeCompareLessThan):
(PerformanceEntry):
* page/PerformanceEntryList.cpp:
(WebCore::PerformanceEntryList::sort):
(WebCore):
* page/PerformanceEntryList.h:
(PerformanceEntryList):
* page/PerformanceUserTiming.cpp:
(WebCore::convertToEntrySequence):
(WebCore):
(WebCore::getEntrySequenceByName):
(WebCore::UserTiming::getMarks):
(WebCore::UserTiming::getMeasures):
* page/PerformanceUserTiming.h:
(UserTiming):
2012-10-22 Pan Deng <pan.deng@intel.com>
Modify obsolete code in User Timing
https://bugs.webkit.org/show_bug.cgi?id=99851
Reviewed by Tony Gentilcore.
Modify user timing implementation as PlatformString.h, prefix of webkitNow is removed, etc.
No new tests.
* page/PerformanceUserTiming.cpp:
(WebCore::insertPerformanceEntry):
(WebCore::UserTiming::mark):
(WebCore::UserTiming::measure):
* page/PerformanceUserTiming.h:
2012-10-22 Mark Lam <mark.lam@apple.com>
Change stack recursion checks to be based on stack availability.
https://bugs.webkit.org/show_bug.cgi?id=99872.
Reviewed by Filip Pizlo and Geoffrey Garen.
Removed the use of ThreadStackType. Enabled the reserved JSStack space
for error processing before doing work in reportException().
* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::commonJSGlobalData):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::WorkerScriptController):
2012-10-22 Andreas Kling <kling@webkit.org>
REGRESSION(r131104): Heap-use-after-free in WebCore::Element::attributeChanged
<http://webkit.org/b/99937>
Reviewed by Anders Carlsson.
Setting the "type" attribute on an HTMLInputElement that has no "value" attribute set will cause the
input type changing mechanism to write a value attribute onto the element. This happens in
HTMLInputElement::updateType(), below parseAttribute().
It's done via Element::setAttribute(), so we end up re-entering Element::setAttributeInternal()
where the 'existingAttribute' pointer may now be invalid if adding the "value" attribute caused
a reallocation in the ElementAttributeData's underlying Vector<Attribute>.
To make it harder to introduce this kind of bug in the future, I changed almost all functions that take
a "const Attribute&" to take a QualifiedName/AtomicString couple instead (the idea being that the
fewer references into the attribute store we have, the better.)
Test: fast/html/input-type-change-crash.html
* dom/Attr.cpp:
(WebCore::Attr::setValue):
(WebCore::Attr::childrenChanged):
* dom/Element.cpp:
(WebCore::Element::setAttributeInternal):
(WebCore::Element::attributeChanged):
(WebCore::Element::parserSetAttributes):
(WebCore::Element::addAttributeInternal):
(WebCore::Element::didAddAttribute):
(WebCore::Element::didModifyAttribute):
(WebCore::Element::didRemoveAttribute):
* dom/Element.h:
(Element):
* dom/ElementAttributeData.cpp:
(WebCore::ElementAttributeData::cloneDataFrom):
* dom/StyledElement.cpp:
(WebCore::StyledElement::attributeChanged):
* dom/StyledElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
* svg/SVGElement.cpp:
(WebCore::SVGElement::attributeChanged):
* svg/SVGElement.h:
(SVGElement):
2012-10-22 Joshua Bell <jsbell@chromium.org>
IndexedDB: Bounds check for IDBCursor.advance() incorrect
https://bugs.webkit.org/show_bug.cgi?id=100014
Reviewed by Tony Chang.
Fix introduced by trac.webkit.org/changeset/131658 restricted cursor.advance()'s argument
as [EnforceRange] unsigned long long, but it's typed as [EnforceRange] unsigned long; the
useless comparison was caught by a clang check.
In lieu of webkit.org/b/96798 make it long long and correct the range check.
Test: storage/indexeddb/cursor-advance.html
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::advance):
* Modules/indexeddb/IDBCursor.h:
(IDBCursor):
* Modules/indexeddb/IDBCursor.idl:
2012-10-22 Tony Chang <tony@chromium.org>
WebKit does not support 'flex-wrap: nowrap'
https://bugs.webkit.org/show_bug.cgi?id=99924
Reviewed by Ojan Vafai.
The spec changed back from using none to nowrap for the single-line
flexbox case.
http://dev.w3.org/csswg/css3-flexbox/#flex-wrap-property
No new tests, covered by css3/flexbox/css-properties.html and others.
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EFlexWrap):
* css/CSSValueKeywords.in:
* rendering/RenderBox.cpp:
(WebCore::isStretchingColumnFlexItem):
(WebCore::RenderBox::sizesLogicalWidthToFitContent):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::isMultiline):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
2012-10-22 Mike West <mkwst@chromium.org>
'image/pjpeg' should be treated as an image by Web Inspector.
https://bugs.webkit.org/show_bug.cgi?id=100001
Reviewed by Pavel Feldman.
It's not exactly a "real" MIME type, but it's in use.
* inspector/front-end/NetworkManager.js:
(WebInspector.NetworkManager):
Adding 'image/pjpeg' as an image MIME type.
2012-10-22 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r132119.
http://trac.webkit.org/changeset/132119
https://bugs.webkit.org/show_bug.cgi?id=100019
Fails its own test on Mac platforms. (Requested by leviw on
#webkit).
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureEvent):
(WebCore::EventHandler::sendContextMenuEventForGesture):
* page/EventHandler.h:
(EventHandler):
2012-10-22 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Points on the bottom and right edges of an exclusion shape should be classified as "outside"
https://bugs.webkit.org/show_bug.cgi?id=98967
Reviewed by Dirk Schulze.
Changed the way lines are represented in the ExclusionShapeInsideInfo and ExclusionShape classes
so that they're consistent with the rendering code that depends on them. Lines are now defined
by logicalTop, logicalHeight, instead of logicalTop,logicalBottom. This a clean-up, not a change
in functionality. It's already covered by the existing fast/exclusions LayoutTests.
Test: fast/exclusions/shape-inside/shape-inside-bottom-edge.html
* rendering/ExclusionPolygon.cpp:
(WebCore::ExclusionPolygon::getExcludedIntervals):
(WebCore::ExclusionPolygon::getIncludedIntervals):
* rendering/ExclusionPolygon.h:
* rendering/ExclusionRectangle.cpp:
(WebCore::ExclusionRectangle::getExcludedIntervals):
(WebCore::ExclusionRectangle::getIncludedIntervals):
* rendering/ExclusionRectangle.h:
* rendering/ExclusionShape.h:
(LineSegment): Moved the struct fields below the constructor per webkit style.
(ExclusionShape):
(WebCore::ExclusionShape::minYForLogicalLine):
(WebCore::ExclusionShape::maxYForLogicalLine):
* rendering/ExclusionShapeInsideInfo.cpp:
(WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine):
* rendering/ExclusionShapeInsideInfo.h:
(ExclusionShapeInsideInfo):
(WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Changed the test to not include
lines whose logicalTop is equal to the shape's top+height.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange):
2012-10-22 Chris Rogers <crogers@google.com>
Update some AudioContext create() method names to latest Web Audio spec
https://bugs.webkit.org/show_bug.cgi?id=99888
Reviewed by Adam Barth.
The following AudioContext method names are being changed, with legacy support for the old names:
createGainNode -> createGain
createDelayNode -> createDelay
createJavaScriptNode -> createScriptProcessor
For details:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=18332
Tests changed: webaudio/delaynode.html, webaudio/gain.html, webaudio/javascriptaudionode.html
to test coverage of the new names.
* Modules/webaudio/AudioBufferSourceNode.idl:
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createScriptProcessor):
(WebCore::AudioContext::createGain):
(WebCore::AudioContext::createDelay):
* Modules/webaudio/AudioContext.h:
(AudioContext):
* Modules/webaudio/AudioContext.idl:
* page/FeatureObserver.h:
2012-10-22 Varun Jain <varunjain@chromium.org>
Context menu generated from touch gestures on textareas has
context of the cursor position instead of the position where the event occurs.
https://bugs.webkit.org/show_bug.cgi?id=99520
Reviewed by Kenneth Rohde Christiansen.
Send a synthetic mouse down event for context menu-summoning-gesture events so
that textareas can correctly set cursors before receiving the context menu event.
Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureEvent):
(WebCore::EventHandler::handleGestureTwoFingerTap):
(WebCore):
(WebCore::EventHandler::sendContextMenuEventForGesture):
* page/EventHandler.h:
(EventHandler):
2012-10-22 Zeno Albisser <zeno@webkit.org>
TextureMapperSurfaceBackingStore should check if GraphicsSurface is valid.
https://bugs.webkit.org/show_bug.cgi?id=100002
Reviewed by Kenneth Rohde Christiansen.
* platform/graphics/texmap/TextureMapperBackingStore.cpp:
(WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
Check if a surface has been created before accessing the pointer.
(WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
Check if m_graphicsSurface is a valid pointer before dereferencing it.
2012-10-22 Michael Saboff <msaboff@apple.com>
r131955 is has improper function call in LinkHashChromium.cpp
https://bugs.webkit.org/show_bug.cgi?id=100008
Reviewed by Alexey Proskuryakov.
Followup fix to r131955 for chromium platform. Added call to
(const UChar*, unsigned) version of visitedLinkHash from String& version.
* platform/chromium/LinkHashChromium.cpp:
(WebCore::visitedLinkHash):
2012-10-22 Aaron Colwell <acolwell@chromium.org>
webkitsourceopen event doesn't always fire
https://bugs.webkit.org/show_bug.cgi?id=99868
Reviewed by Adam Barth.
Changed MediaSource to derive from ActiveDOMObject so that event listeners
will still fire even if all references to the object go out of scope.
Test: http/tests/media/media-source/video-media-source-garbage-collection-before-sourceopen.html
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::create):
(WebCore::MediaSource::MediaSource):
(WebCore::MediaSource::scriptExecutionContext):
(WebCore):
(WebCore::MediaSource::hasPendingActivity):
(WebCore::MediaSource::stop): Clears m_player & m_asyncEventQueue so they don't indicate pending activity anymore.
* Modules/mediasource/MediaSource.h:
(MediaSource):
* Modules/mediasource/MediaSource.idl:
* Modules/mediasource/MediaSourceRegistry.cpp:
(WebCore::MediaSourceRegistry::registerMediaSourceURL): Added setPendingActivity() call so the MediaSource object stays active while in the registry.
(WebCore::MediaSourceRegistry::unregisterMediaSourceURL): Added unsetPendingActivity() call so the MediaSource object can become inactive after being removed from the registry.
2012-10-22 Adam Barth <abarth@webkit.org>
[V8] Vastly simplify V8GCController's NodeVisitor
https://bugs.webkit.org/show_bug.cgi?id=99884
Reviewed by Kentaro Hara.
NodeVisitor was vastly more complicated than necessary.
This patch improve performance on these new gc benchmarks:
gc-forest: 1.14% better
gc-mini-tree: 5.09% better
gc-tree: 4.60% better
* bindings/v8/V8GCController.cpp:
(WebCore::ObjectVisitor::visitDOMWrapper):
(WebCore::addImplicitReferencesForNodeWithEventListeners):
(WebCore::rootForGC):
(WebCore::NodeVisitor::visitDOMWrapper):
(WebCore::NodeVisitor::applyGrouping):
(NodeVisitor):
2012-10-22 Emil A Eklund <eae@chromium.org>
Change baselinePosition and maxAscent/maxDescent to int
https://bugs.webkit.org/show_bug.cgi?id=99767
Reviewed by Levi Weintraub.
Currently baselinePostion, maxAscent and maxDescent are
LayoutUnits while ascent, descent and m_lineHeight are ints.
This can lead to subtle alignment and rounding problems.
Change baselinePosition and maxAscent/maxDescent to int to avoid
these issues.
Test: fast/sub-pixel/replaced-element-baseline.html
* editing/FrameSelection.cpp:
(WebCore::repaintRectForCaret):
Inflate Y dimension just like we do for X to ensure that the
repaint rect fully contains the caret.
* rendering/InlineBox.cpp:
(WebCore::InlineBox::baselinePosition):
* rendering/InlineBox.h:
(InlineBox):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
(WebCore::InlineFlowBox::computeLogicalBoxHeights):
(WebCore::InlineFlowBox::placeBoxesInBlockDirection):
Change maxAscent/maxDescent to int to match ascent/descent.
* rendering/InlineFlowBox.h:
(InlineFlowBox):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::baselinePosition):
* rendering/InlineTextBox.h:
(InlineTextBox):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::baselinePosition):
(WebCore::RenderBlock::firstLineBoxBaseline):
(WebCore::RenderBlock::lastLineBoxBaseline):
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::baselinePosition):
* rendering/RenderBox.h:
(WebCore::RenderBox::firstLineBoxBaseline):
(WebCore::RenderBox::lastLineBoxBaseline):
(RenderBox):
* rendering/RenderBoxModelObject.h:
(RenderBoxModelObject):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::baselinePosition):
(WebCore::RenderFlexibleBox::firstLineBoxBaseline):
* rendering/RenderFlexibleBox.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::baselinePosition):
* rendering/RenderInline.h:
(RenderInline):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::baselinePosition):
* rendering/RenderListBox.h:
(RenderListBox):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::baselinePosition):
* rendering/RenderListMarker.h:
(RenderListMarker):
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::baselinePosition):
* rendering/RenderSlider.h:
(RenderSlider):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::baselinePosition):
(WebCore::RenderTable::lastLineBoxBaseline):
(WebCore::RenderTable::firstLineBoxBaseline):
* rendering/RenderTable.h:
(RenderTable):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::firstLineBoxBaseline):
* rendering/RenderTableSection.h:
(RenderTableSection):
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::baselinePosition):
* rendering/RenderTextControlMultiLine.h:
(RenderTextControlMultiLine):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::baselinePosition):
* rendering/RenderTheme.h:
(RenderTheme):
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderThemeSafari::baselinePosition):
* rendering/RenderThemeSafari.h:
(RenderThemeSafari):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::baselinePosition):
(WebCore::RootInlineBox::alignBoxesInBlockDirection):
* rendering/RootInlineBox.h:
(RootInlineBox):
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::baselinePosition):
(WebCore::RenderMathMLTable::firstLineBoxBaseline):
* rendering/mathml/RenderMathMLBlock.h:
(RenderMathMLBlock):
(RenderMathMLTable):
* rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::firstLineBoxBaseline):
* rendering/mathml/RenderMathMLFraction.h:
(RenderMathMLFraction):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::firstLineBoxBaseline):
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLUnderOver.cpp:
(WebCore::RenderMathMLUnderOver::firstLineBoxBaseline):
* rendering/mathml/RenderMathMLUnderOver.h:
(RenderMathMLUnderOver):
2012-10-22 Emil A Eklund <eae@chromium.org>
Modify LayoutState ASSERTS to support SATURATED_LAYOUT_ARITHMETIC
https://bugs.webkit.org/show_bug.cgi?id=98692
Reviewed by Dan Bernstein.
We currently overflow/wrap when computing the delta in
RenderBlock::setLogicalTopForChild in cases where we have an
element with a width or height exceeding maxLayoutUnit. When
the delta is later added back in RenderBlock::layoutBlockChild
the number wraps again getting us back to the correct value.
With SATURATED_LAYOUT_ARITHMETIC enabled the values no longer
wraps, which seems like the correct thing to do however this
causes the compare to fail for obvious reasons. By accounting
for this we can keep the asserts (which have proven very
helpful) even when SATURATED_LAYOUT_ARITHMETIC is turned on.
No new tests, covered by existing tests.
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/LayoutState.h:
(WebCore::LayoutState::LayoutState):
(LayoutState):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlockChild):
* rendering/RenderView.cpp:
(WebCore::RenderView::layout):
* rendering/RenderView.h:
(WebCore::RenderView::addLayoutDelta):
(RenderView):
(WebCore::RenderView::layoutDeltaMatches):
2012-10-22 Tony Chang <tony@chromium.org>
Fix some baseline flexbox alignment
https://bugs.webkit.org/show_bug.cgi?id=99879
Reviewed by Ojan Vafai.
Fix a bug where we weren't handling margin properly on inline-flexbox.
Fix a bug where we weren't getting the edge of the content box properly when synthesizing
a baseline.
Test: css3/flexbox/flexbox-baseline-margins.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::baselinePosition):
(WebCore::RenderBlock::inlineBlockBaseline): Add a new method that is used when calculating an inline-block's
baseline. Previously we would use lastLineBoxBaseline.
(WebCore::RenderBlock::lastLineBoxBaseline): Pass in direction and when searching children, use inlineBlockBaseline.
* rendering/RenderBlock.h:
(RenderBlock): Make lastLineBoxBaseline non-virtual.
* rendering/RenderBox.h:
(WebCore::RenderBox::inlineBlockBaseline): Replace lastLineBoxBaseline with inlineBlockBaseline.
* rendering/RenderFlexibleBox.cpp:
(WebCore::synthesizedBaselineFromContentBox): Helper method for getting the baseline from the content box.
(WebCore::RenderFlexibleBox::baselinePosition): Always include the margin. This fixes the inline-flexbox case.
(WebCore::RenderFlexibleBox::firstLineBoxBaseline): Fix a case where we didn't synthesize a baseline. Returning -1 means there is no baseline, but we can
synthesize a baseline if we have a flexitem without text.
(WebCore::RenderFlexibleBox::inlineBlockBaseline):
* rendering/RenderFlexibleBox.h:
* rendering/RenderTable.cpp: Replace lastLineBoxBaseline with inlineBlockBaseline.
(WebCore::RenderTable::inlineBlockBaseline): Try to make comment more direct.
* rendering/RenderTable.h:
(RenderTable): Replace lastLineBoxBaseline with inlineBlockBaseline.
2012-10-22 Levi Weintraub <leviw@chromium.org>
Unreviewed Chromium build fix following r132074.
* WebCore.gypi:
2012-10-22 Mario Sanchez Prada <msanchez@igalia.com>
[GTK] Don't use deprecated AccessibilityObject methods after r99502
https://bugs.webkit.org/show_bug.cgi?id=99985
Reviewed by Chris Fleizach.
Update callers for AccessibilityObject's title() and
accessibilityDescription() so they now use AccessibilityText.
* accessibility/gtk/WebKitAccessibleUtil.cpp:
(titleTagShouldBeUsedInDescriptionField): Internal helper function.
(accessibilityTitle): New helper function, returns an String with
the title for a AccessibilityObject, using AccessibleText.
(accessibilityDescription): New helper function, returns an String with
the description for a AccessibilityObject, using AccessibleText.
* accessibility/gtk/WebKitAccessibleUtil.h: Added public
declarations for accessibilityTitle and accessibilityDescription.
* accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetName): Use new helpers for retrieving the title.
(webkitAccessibleGetDescription): Use new helpers for retrieving
the title and description.
* accessibility/gtk/WebKitAccessibleInterfaceImage.cpp:
(webkitAccessibleImageGetImageDescription): Use new helpers for
retrieving the title.
2012-10-16 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: add timeline instrumentation for scrolling of a layer
https://bugs.webkit.org/show_bug.cgi?id=99461
Reviewed by Pavel Feldman.
- added timeline instrumentation for scrolling of a layer;
- added TRACE_EVENT for ScrollableArea::scrollPositionChanged()
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::willScrollLayerImpl):
(WebCore::InspectorInstrumentation::didScrollLayerImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::willScrollLayer):
(WebCore):
(WebCore::InspectorInstrumentation::didScrollLayer):
* inspector/InspectorTimelineAgent.cpp:
(TimelineRecordType):
(WebCore::InspectorTimelineAgent::willScroll):
(WebCore):
(WebCore::InspectorTimelineAgent::didScroll):
* inspector/InspectorTimelineAgent.h:
(InspectorTimelineAgent):
* inspector/front-end/TimelineModel.js:
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel._initRecordStyles):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollTo):
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::scrollPositionChanged):
2012-10-22 Jan Keromnes <janx@linux.com>
Moved cmdevtools.js to folder cm/
Web Inspector: Move file `cmdevtools.css` to `cm/`
https://bugs.webkit.org/show_bug.cgi?id=99956
Reviewed by Pavel Feldman.
The file cmdevtools.js belongs to the CodeMirror editor experiment in cm/.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/WebKit.qrc:
* inspector/front-end/cm/cmdevtools.css: Renamed from Source/WebCore/inspector/front-end/cmdevtools.css.
(.CodeMirror):
(.CodeMirror-scroll):
(.cm-highlight):
(@-webkit-keyframes fadeout):
(to):
(.cm-breakpoint):
(.cm-breakpoint-disabled):
(.cm-breakpoint-conditional):
(.cm-execution-line):
(.cm-s-web-inspector-js span.cm-keyword):
(.cm-s-web-inspector-js span.cm-number):
(.cm-s-web-inspector-js span.cm-comment):
(.cm-s-web-inspector-js span.cm-string):
(.cm-s-web-inspector-js span.cm-string-2):
(.cm-s-web-inspector-css span.cm-keyword):
(.cm-s-web-inspector-css span.cm-number):
(.cm-s-web-inspector-css span.cm-comment):
(.cm-s-web-inspector-css span.cm-string):
(.cm-s-web-inspector-css span.cm-string-2):
(.cm-s-web-inspector-css span.cm-link):
(.cm-s-web-inspector-css span.cm-variable):
(.cm-s-web-inspector-html span.cm-meta):
(.cm-s-web-inspector-html span.cm-comment):
(.cm-s-web-inspector-html span.cm-string):
(.cm-s-web-inspector-html span.cm-tag):
(.cm-s-web-inspector-html span.cm-attribute):
(.cm-s-web-inspector-html span.cm-link):
(.webkit-html-message-bubble):
(.webkit-html-warning-message):
(.webkit-html-error-message):
(.webkit-html-message-line):
(.webkit-html-message-line-hover):
2012-10-22 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Prepare mappings to moving uiSourceCodes creation out of them to workspace.
https://bugs.webkit.org/show_bug.cgi?id=99997
Reviewed by Pavel Feldman.
Source mappings could now store a link to temporary uiSourceCodes only.
Otherwise it should retrieve uiSourceCodes from workspace by URL.
Original uiSourceCodes are now temporary in CompilerScriptMapping.
* inspector/front-end/CompilerScriptMapping.js:
(WebInspector.CompilerScriptMapping):
(WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
(WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
(WebInspector.CompilerScriptMapping.prototype._reset):
* inspector/front-end/NetworkUISourceCodeProvider.js:
(WebInspector.NetworkUISourceCodeProvider):
(WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
(WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
(WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
(WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):
* inspector/front-end/SASSSourceMapping.js:
(WebInspector.SASSSourceMapping):
(_bindUISourceCode):
(_reset):
2012-10-22 Nicolas Dufresne <nicolas.dufresne@collabora.com>
Gstreamer 1.0 not working
https://bugs.webkit.org/show_bug.cgi?id=99852
Reviewed by Philippe Normand.
There was a series of trivial issue, g_object_is_floating() was called
on type GstCaps (which is not a GObject), webkitGstGetPadCaps() was
returning non-fixed caps and GST_MESSAGE_DURATION has been renamed
to GST_MESSAGE_DURATION_CHANGED.
Most failing test passes now.
* platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
(WTF::adoptGRef):
* platform/graphics/gstreamer/GStreamerVersioning.cpp:
(webkitGstGetPadCaps):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
2012-10-22 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Treat dynamic anonymous scripts as other anonymous and fix anonymous script editing and breakpoints.
https://bugs.webkit.org/show_bug.cgi?id=99989
Reviewed by Pavel Feldman.
Dynamic anonymous scripts are now mapped to anonymous temporary uiSourceCodes.
ResourceScriptMapping now supports two types of temporary uiSourceCodes:
- original uiSourceCodes represent scripts while main uiSourceCodes are diverged;
- temporary uiSourceCodes represent scripts for which resources are not yet loaded.
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.breakpointStorageId):
(WebInspector.BreakpointManager.Storage.prototype._updateBreakpoint):
* inspector/front-end/NetworkUISourceCodeProvider.js:
(WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping):
(WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
(WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
(WebInspector.ResourceScriptMapping.prototype.addScript):
(WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
(WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
(WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
(WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
(WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
(WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
(WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
(WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode.get if):
(WebInspector.ResourceScriptMapping.prototype._reset):
2012-10-22 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
[css3-text] Add rendering support for -webkit-text-decoration-style
https://bugs.webkit.org/show_bug.cgi?id=94094
Reviewed by Julien Chaffraix.
This patch implements the "text-decoration-style" property rendering as
specified in CSS3 working draft, with "-webkit-" prefix. The specification can
be found here: http://dev.w3.org/csswg/css3-text/#text-decoration-style
Additionally, Mozilla implementation details can be found here:
https://developer.mozilla.org/en/CSS/text-decoration-style
Tests: fast/css3-text/css3-text-decoration/repaint/repaint-text-decoration-style.html
fast/css3-text/css3-text-decoration/text-decoration-style.html
* platform/graphics/GraphicsContext.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::setPlatformStrokeStyle):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLine):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::toQPenStyle):
(WebCore::GraphicsContext::drawLine):
* platform/graphics/skia/PlatformContextSkia.cpp:
(WebCore::PlatformContextSkia::setupPaintForStroking):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::createPen):
* platform/graphics/wx/GraphicsContextWx.cpp:
(WebCore::strokeStyleToWxPenStyle):
Added 'DoubleStroke' and 'WavyStroke' to StrokeStyle enum and updated
platform-specific stroke handling. Some styles requires
platform-specific implementation (handled in bug 92868).
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint):
(WebCore::textDecorationStyleToStrokeStyle): Added static function that
translates text decoration to stroke styles.
(WebCore::InlineTextBox::paintDecoration): Text decoration style does
not specify a property for line thickness (like border-width does for
border style), so we statically set it to 1 for now. The 'double' style
implementation simply adds a parallel line (depending if it is
underline, overline or line-through) and the space between lines follows
the approach used by border's 'double' style.
* rendering/InlineTextBox.h:
(InlineTextBox):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
Added text decoration style rendering support to
InlineTextBox::paintDecoration().
2012-10-22 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Use the DNS resolve queue
https://bugs.webkit.org/show_bug.cgi?id=99994
Reviewed by Simon Hausmann.
Use the DNS resolve queue, to ensure we can prefetch more than just the first 10 hostname encountered
during parsing. It also ensure each hostname is only appears once in the queue.
* Target.pri:
* platform/network/qt/DNSQt.cpp: Added.
(DnsPrefetchHelper):
(WebCore::DnsPrefetchHelper::DnsPrefetchHelper):
(WebCore::DnsPrefetchHelper::lookup):
(WebCore::DnsPrefetchHelper::lookedUp):
(WebCore::prefetchDNS):
(WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
(WebCore::DNSResolveQueue::platformResolve):
* platform/network/qt/DnsPrefetchHelper.cpp: Removed.
* platform/network/qt/DnsPrefetchHelper.h: Removed.
(DnsPrefetchHelper):
2012-10-22 Erik Arvidsson <arv@chromium.org>
HTMLBaseElement href attribute binding returns wrong URL
https://bugs.webkit.org/show_bug.cgi?id=98184
Reviewed by Ojan Vafai.
Resolve the href attribute binding relative to the document URL instead of resolving it to the
base element itself. If there is no href attribute this should return the fallback base URL.
http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-base-element
Tests: fast/dom/HTMLAnchorElement/set-href-attribute-rebase.html
fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document.html
* html/HTMLBaseElement.cpp:
(WebCore::HTMLBaseElement::href): Don't use completeURL. Resolve href based on document's URL instead
of the generic [Reflect, URL] binding.
(WebCore::HTMLBaseElement::setHref): Just sets the attribute.
* html/HTMLBaseElement.h:
* html/HTMLBaseElement.idl: We can no longer use [Reflect, URL]
2012-10-22 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Revisions should not be restored and persisted for anonymous uiSourceCodes.
https://bugs.webkit.org/show_bug.cgi?id=99991
Reviewed by Alexander Pavlov.
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode):
2012-10-22 Florin Malita <fmalita@chromium.org>
Incorrect embedded SVG image sizing on first load
https://bugs.webkit.org/show_bug.cgi?id=99489
Reviewed by Nikolas Zimmermann.
RenderSVGImage::updateImageViewport() must be called after the image loader is finished,
to ensure that a SVGImageCache::SizeAndScalesMap entry is created even if layout has
already been performed.
Test: svg/custom/svg-image-initial-size.html
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::imageChanged):
2012-10-22 Keishi Hattori <keishi@webkit.org>
Remove monthFormatInLDML
https://bugs.webkit.org/show_bug.cgi?id=99971
Reviewed by Kent Tamura.
Removing monthFormatInLDML from localized strings because Localizer class now provides the same functionality.
No new tests. Just removing unused code.
* platform/LocalizedStrings.h:
(WebCore):
2012-10-22 Zan Dobersek <zandobersek@gmail.com>
[GTK] Enable Microdata DOM API
https://bugs.webkit.org/show_bug.cgi?id=99033
Reviewed by Martin Robinson.
Enable the Microdata DOM API, but still disable it when the unstable
features should be disabled (for instance in release builds).
No new tests - related tests are being unskipped and are expected to pass.
* GNUmakefile.am:
* GNUmakefile.features.am:
* bindings/gobject/GNUmakefile.am: Add the required files so the Microdata
API GObject bindings are generated and built.
2012-10-22 Zan Dobersek <zandobersek@gmail.com>
[GTK] Enable CSP 1.1
https://bugs.webkit.org/show_bug.cgi?id=99064
Reviewed by Martin Robinson.
Enable CSP 1.1 in development builds but keep it disabled when the
unstable features should not be enabled (like in stable releases).
No new tests - they already exist and will be unskipped.
* GNUmakefile.am:
* GNUmakefile.features.am:
2012-10-22 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Qt] Fix "ASSERTION FAILED: !document->inPageCache()" when loading a page
https://bugs.webkit.org/show_bug.cgi?id=98514
Reviewed by Kenneth Rohde Christiansen.
The problem is that we call setFixedVisibleContentRect, which triggers
a layout, after the document has been put in the page cache and before
the load has been actually committed.
This applies the same trick as with setFixedLayoutSize by passing the rect
in Frame::createView and calling setFixedVisibleContentRect before the
new FrameView gets attached to the Frame/Document to prevent the layout.
* WebCore.exp.in:
* page/Frame.cpp:
(WebCore::Frame::createView): Give a default value to the fixedLayoutSize and
useFixedLayout arguments as well since they are used exceptionally.
* page/Frame.h:
(Frame):
2012-10-22 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Handle GET of blob URLs.
https://bugs.webkit.org/show_bug.cgi?id=99053
Reviewed by Simon Hausmann.
Let BlobResourceHandle handle Blob request internally.
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::loadResourceSynchronously):
2012-10-22 Kenichi Ishibashi <bashi@chromium.org>
HarfBuzzShaper::shape() should return false when it adds no glyph to GlyphBuffer
https://bugs.webkit.org/show_bug.cgi?id=99966
Reviewed by Kent Tamura.
If no glyph is added to GlyphBuffer, HarfBuzzShaper::shape() returns false.
No new tests. Confirmed the fix by using Address Sanitizer.
* platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::shape):
(WebCore::HarfBuzzShaper::fillGlyphBuffer): Returns false when glyphBuffer.size() == 0
* platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
(HarfBuzzShaper):
2012-10-22 Shinya Kawanaka <shinyak@chromium.org>
[Shadow] ASSERT triggered when we try reprojecting fallback elements.
https://bugs.webkit.org/show_bug.cgi?id=99815
Reviewed by Hajime Morita.
When fallback elements of InsertionPoint is reprojected, they were attached twice.
We have to skip attaching them if they are attached. We also add a few ASSERT not to
allow attaching twice if not necessary.
We have confirmed that this patch does not regress the performance. The summary of the
performance test is the following:
Dromaeo/dom-modify.html [runs/s]:
median stdev min max
without this patch: 3928 184 3655 4361
with this patch : 3925 178 3652 4350
Parser/html5-full-render.html [s]:
median stdev min max
without this patch: 3821 17 3811 3850
with this patch : 3838 4.4 3833 3844
Test: fast/dom/shadow/content-reprojection-fallback-crash.html
* dom/ContainerNode.cpp:
(WebCore):
(WebCore::childAttachedAllowedWhenAttachingChildren): If true, children of this node might
be attached in advance because of ShadowDOM attaching process.
* dom/ContainerNode.h:
(ContainerNode):
(WebCore):
(WebCore::ContainerNode::attachChildren):
* dom/Element.cpp:
(WebCore::Element::attach):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::attach):
2012-10-22 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: merge "docked" state into the "dock side" enum.
https://bugs.webkit.org/show_bug.cgi?id=99717
Reviewed by Vsevolod Vlasov.
Otherwise, it is hard to manage these inter-dependent flags.
* WebCore.exp.in:
* inspector/InspectorFrontendClient.h:
(InspectorFrontendClient):
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::requestSetDockSide):
(WebCore::InspectorFrontendClientLocal::setAttachedWindow):
* inspector/InspectorFrontendClientLocal.h:
(InspectorFrontendClientLocal):
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::requestSetDockSide):
* inspector/InspectorFrontendHost.h:
(InspectorFrontendHost):
* inspector/InspectorFrontendHost.idl:
* inspector/front-end/DockController.js:
(WebInspector.DockController):
(WebInspector.DockController.prototype._updateUI.get sides):
(WebInspector.DockController.prototype._updateUI):
(WebInspector.DockController.prototype._toggleDockState):
* inspector/front-end/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setAttachedWindow):
(InspectorFrontendAPI.setDockSide):
* inspector/front-end/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
* inspector/front-end/externs.js:
2012-10-22 MORITA Hajime <morrita@google.com>
Unreviewed follow up to update test result after r132033.
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::V8TestObj::installPerContextProperties):
2012-10-21 MORITA Hajime <morrita@google.com>
[V8] V8EnablePerContext shouldn't require document() accessor to the native object.
https://bugs.webkit.org/show_bug.cgi?id=99954
Reviewed by Kentaro Hara.
It now refers ScriptExecutionContext of the creation context instead of document() of
wrapped object.
No new tests. No behavior change at this time.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateImplementation):
2012-10-21 Kent Tamura <tkent@chromium.org>
Page popup: Fix crash by events after closing
https://bugs.webkit.org/show_bug.cgi?id=99951
Reviewed by Hajime Morita.
WebCore should provide a way to uninstall a DOMWindowPagePopup supplement.
No new tests. The bug is timing-dependent.
* page/DOMWindowPagePopup.cpp:
(WebCore::DOMWindowPagePopup::uninstall):
Added. Calls Supplementable::removeSupplement.
* page/DOMWindowPagePopup.h:
(DOMWindowPagePopup): Declare uninstall.
* platform/Supplementable.h:
(WebCore::Supplementable::removeSupplement): Added.
2012-10-21 Keishi Hattori <keishi@webkit.org>
Refactor picker tests to fix flakiness and share code
https://bugs.webkit.org/show_bug.cgi?id=99671
Reviewed by Kent Tamura.
Disable transitions until the picker is fully ready. This should fix flakiness.
No new tests.
* Resources/pagepopups/calendarPicker.css:
(.preparing .unavailable): Disable transitions.
(.preparing .available): Disable transitions.
* Resources/pagepopups/calendarPicker.js:
(CalendarPicker): Set "preparing" class.
(CalendarPicker.prototype._handleWindowResize): Remove the "preparing" class when the window finishes resizing.
2012-10-21 Shinya Kawanaka <shinyak@chromium.org>
Web Inspector: Shadow DOM: Node removal doesn't reflect.
https://bugs.webkit.org/show_bug.cgi?id=99567
Reviewed by Pavel Feldman.
We have to call InspectorInstrumentation::willRemoveDOMNode() even if a node is in a shadow tree.
Otherwise, node won't be removed from the inspector.
Test: inspector/elements/update-shadowdom.html
* dom/ContainerNode.cpp:
(WebCore::dispatchChildRemovalEvents):
2012-10-21 Andreas Kling <kling@webkit.org>
Remove Page::javaScriptURLsAreAllowed setting.
<http://webkit.org/b/99944>
Reviewed by Anders Carlsson.
This setting was exposed through internal WebView API in Apple's WebKit1.
There are no longer any clients of that API.
This is a step towards preventing elements from modifying their own attributes
below attributeChanged().
* WebCore.exp.in:
* WebCore.order:
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::executeIfJavaScriptURL):
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parseAttribute):
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h:
(Page):
2012-10-21 Hyungchan Kim <hyungchan2.kim@lge.com>
Add a separate flag for rgb swizzling whether it can be modified or not
https://bugs.webkit.org/show_bug.cgi?id=98728
BitmapTexture swizzles the source image if the OpenGL driver
doesn't support the BGRA extension.
In case of directly composited images, the source image should not
be modified.
http://www.satine.org/research/webkit/snowleopard/snowstack.html
Reviewed by Noam Rosenthal.
No new tests as this is only testable on specific hardware and
currently not avaiable in the bots.
* platform/graphics/texmap/TextureMapper.h:
(BitmapTexture):
* platform/graphics/texmap/TextureMapperBackingStore.cpp:
(WebCore::TextureMapperTile::updateContents):
(WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
(WebCore::TextureMapperTiledBackingStore::updateContents):
* platform/graphics/texmap/TextureMapperBackingStore.h:
(TextureMapperTile):
(TextureMapperTiledBackingStore):
(WebCore::TextureMapperTiledBackingStore::updateContents):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawRepaintCounter):
(WebCore::BitmapTextureGL::updateContents):
* platform/graphics/texmap/TextureMapperGL.h:
(BitmapTextureGL):
* platform/graphics/texmap/TextureMapperImageBuffer.cpp:
(WebCore::BitmapTextureImageBuffer::updateContents):
* platform/graphics/texmap/TextureMapperImageBuffer.h:
(BitmapTextureImageBuffer):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::updateBackingStore):
2012-10-21 Antti Koivisto <antti@apple.com>
Factor stylesheet invalidation analysis code into a class
https://bugs.webkit.org/show_bug.cgi?id=99933
Reviewed by Sam Weinig.
Currently the stylesheet analysis code is all over the place. It should be factored into a class to make
further progress easier.
The patch adds StyleInvalidationAnalysis class and moves a bunch of code from SelectorChecker, StyleResolver
and DocumentStyleSheetCollection there. No functional changes.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/SelectorChecker.cpp:
(WebCore):
* css/SelectorChecker.h:
(WebCore):
* css/StyleInvalidationAnalysis.cpp: Added.
(WebCore):
(WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
(WebCore::StyleInvalidationAnalysis::create):
(WebCore::determineSelectorScopes):
(WebCore::StyleInvalidationAnalysis::analyzeStyleSheet):
(WebCore::elementMatchesSelectorScopes):
(WebCore::StyleInvalidationAnalysis::invalidateStyle):
* css/StyleInvalidationAnalysis.h: Added.
(WebCore):
(StyleInvalidationAnalysis):
(WebCore::StyleInvalidationAnalysis::dirtiesAllStyle):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::checkRegionSelector):
* css/StyleResolver.h:
(StyleResolver):
* dom/DocumentStyleSheetCollection.cpp:
(WebCore):
(WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
* dom/DocumentStyleSheetCollection.h:
(DocumentStyleSheetCollection):
2012-10-08 Robert Hogan <robert@webkit.org>
In some float situations, the original layout is wrong and only corrects itself on repaint
https://bugs.webkit.org/show_bug.cgi?id=18939
Reviewed by Levi Weintraub.
A <br> that follows collapsing spaces and has clearance set always needs to get a run and a linebox of its own.
This allows the line below it to check for clearance from the <br> if it gets dirtied but the line with the <br>
does not.
Test: fast/block/br-with-clearance-after-collapsing-space.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextLineBreak):
2012-10-08 Robert Hogan <robert@webkit.org>
floated element with negative margin causes text wrap bug
https://bugs.webkit.org/show_bug.cgi?id=94825
Reviewed by Levi Weintraub.
Avoid over-estimating the available width on the line by ensuring that the offset taken to avoid
floats on the line is at least as much as the offset given by border, margin and padding. This only
happens when a negative margin on the float brings its edge back before the offset
given by the border, margin and padding of its parents.
Test: fast/block/float/float-on-line-obeys-container-padding.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
2012-10-20 Martin Robinson <mrobinson@igalia.com>
Fix 'make dist' for the GTK+ port
* GNUmakefile.am: Add missing files to the source list.
* GNUmakefile.list.am: Ditto.
2012-10-20 Dan Bernstein <mitz@apple.com>
<rdar://problem/12512710> [mac] Text with zero font size renders as 12px sometimes
https://bugs.webkit.org/show_bug.cgi?id=99918
Reviewed by Geoff Garen.
-[NSFont fontWithName:size:] returns an NSFont of size 12 (the default User Font size) when
asked for size 0, and this is what Font::drawGlyphs uses to draw the text.
Test: fast/text/zero-font-size-2.html
* platform/graphics/mac/FontMac.mm:
(WebCore::Font::drawGlyphs): Added an early return if the size is zero.
2012-10-20 Andreas Kling <kling@webkit.org>
Clean up QualifiedName-as-hash-key scenario.
<http://webkit.org/b/99394>
Reviewed by Anders Carlsson.
Cache the hash on QualifiedNameImpl after the first time it's computed.
This grows QualifiedNameImpl by 4 bytes on 32-bit (no change on 64-bit due to base class padding)
which I believe is fine, since QualifiedName is a shared object.
Add a global nullQName() function that returns a QualifiedName(nullAtom, nullAtom, nullAtom)
and use this to implement HashTraits<QualifiedName>::emptyValue(). The old implementation would
create a new QualifiedName(nullAtom, nullAtom, nullAtom) each time, which had to be hashed,
added to the global QualifiedName cache, etc.
Finally, don't have SVGAttributeHashTranslator create a temporary QualifiedName just to compute
the hash of a (namespace, prefix, localName) tuple, use QualifiedNameComponents and hashComponents()
directly instead.
Altogether this shaves ~100ms off of the RoboHornet svgresize.html benchmark on my MBP.
* dom/QualifiedName.cpp:
(WebCore::nullQName):
(WebCore::QualifiedName::QualifiedNameImpl::computeHash):
* dom/QualifiedName.h:
(QualifiedNameImpl):
(WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
(WebCore::QualifiedNameHash::hash):
* svg/SVGElement.h:
(WebCore::SVGAttributeHashTranslator::hash):
2012-10-20 Yael Aharon <yael.aharon@intel.com>
[EFL][AC] Build fix after r131933
https://bugs.webkit.org/show_bug.cgi?id=99901
Reviewed by Kentaro Hara.
Add ArrayBoundsClamper.cpp to WebCore/CMakeLists.txt.
No new tests.
* CMakeLists.txt:
2012-10-19 Adam Barth <abarth@webkit.org>
[V8] V8DOMWrapper should avoid using its document parameter (so we can remove it soon)
https://bugs.webkit.org/show_bug.cgi?id=99876
Reviewed by Kentaro Hara.
We want to remove the document parameter to instantiateV8Object. There
isn't always a Document available, so it doesn't make sense to pass it
as a parameter. We're just waiting for a V8 API change so we can still
construct Node wrappers quickly.
This patch removes a use of the document that snuck in. Rather than
passing the ScriptExecutionContext around, we get it from the
CreationContext of the prototype object (and only when we actually need
it).
* Modules/notifications/NotificationCenter.cpp:
* Modules/notifications/NotificationCenter.h:
(NotificationCenter):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateConstructorGetter):
(GenerateImplementation):
(GenerateToV8Converters):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::installDOMWindow):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::instantiateV8Object):
* bindings/v8/V8PerContextData.cpp:
(WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
(WebCore::V8PerContextData::constructorForTypeSlowCase):
* bindings/v8/V8PerContextData.h:
(WebCore::V8PerContextData::createWrapperFromCache):
(WebCore::V8PerContextData::constructorForType):
(V8PerContextData):
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
* bindings/v8/WrapperTypeInfo.h:
(WebCore):
(WebCore::WrapperTypeInfo::installPerContextPrototypeProperties):
2012-10-19 Florin Malita <fmalita@chromium.org>
Incorrect pattern scaling
https://bugs.webkit.org/show_bug.cgi?id=99870
Reviewed by Dirk Schulze.
The pattern space transform scale should reflect the tile_size(user space)
to tile_image_size ratio, instead of tile_size to absolute_tile_size.
Test: svg/custom/pattern-scaling.svg
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::applyResource):
2012-10-19 Tony Chang <tony@chromium.org>
RenderFlexibleBox::preferredMainAxisContentExtentForChild can return a negative value
https://bugs.webkit.org/show_bug.cgi?id=97827
Reviewed by Ojan Vafai.
I'm pretty sure this isn't possible (logicalHeight and maxPreferredLogicalWidth should always include
border and padding), so just add an assert.
No new tests, the assert is for code clarity.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
2012-10-19 Tony Chang <tony@chromium.org>
Replace calls to updateLogicalHeight with calls to computeLogicalHeight
https://bugs.webkit.org/show_bug.cgi?id=99883
Reviewed by Ojan Vafai.
In RenderBox and RenderBlock, switch to using computeLogicalHeight instead of
saving the old height, calling update logical height, then restoring the old height.
No new tests, this is just a refactoring.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeBlockPreferredLogicalWidths): Simple replace.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePercentageLogicalHeight): Adjust for content height.
(WebCore::RenderBox::computeReplacedLogicalHeightUsing): Adjust for content height.
(WebCore::RenderBox::availableLogicalHeightUsing): Adjust for content height.
2012-10-19 Pablo Flouret <pablof@motorola.com>
Implement setRangeText() on text controls
https://bugs.webkit.org/show_bug.cgi?id=91907
Reviewed by Kent Tamura.
setRangeText() replaces a range of text with some other text, and
adjusts the existing selection according to its parameters.
Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-textarea/input-setrangetext
Tests: fast/forms/color/color-setrangetext.html
fast/forms/date/date-setrangetext.html
fast/forms/datetime/datetime-setrangetext.html
fast/forms/datetimelocal/datetimelocal-setrangetext.html
fast/forms/file/file-setrangetext.html
fast/forms/hidden/hidden-setrangetext.html
fast/forms/image/image-setrangetext.html
fast/forms/month/month-setrangetext.html
fast/forms/number/number-setrangetext.html
fast/forms/range/range-setrangetext.html
fast/forms/search/search-setrangetext.html
fast/forms/setrangetext.html
fast/forms/textarea/textarea-setrangetext.html
fast/forms/time/time-setrangetext.html
fast/forms/week/week-setrangetext.html
* bindings/scripts/CodeGeneratorGObject.pm:
(SkipFunction):
The GObject generator doesn't support function overloads, so skip the
version of setRangeText() that has only one argument, its behavior
can be emulated with the four-argument version.
* html/InputType.cpp:
(WebCore::InputType::supportsSelectionAPI):
(WebCore):
* html/InputType.h:
(InputType):
Add supportsSelectionAPI() which indicates whether the various
selection api functions like setRangeText, setSelectionRange, etc.
are supported by this input element.
* html/BaseTextInputType.cpp:
(WebCore::BaseTextInputType::supportsSelectionAPI):
(WebCore):
* html/BaseTextInputType.h:
(BaseTextInputType):
Text-based input types support the selection APIs.
* html/EmailInputType.cpp:
(WebCore::EmailInputType::supportsSelectionAPI):
(WebCore):
* html/EmailInputType.h:
(EmailInputType):
Email inputs don't support the selection APIs.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setRangeText):
* html/HTMLInputElement.h:
(HTMLInputElement):
Add a setRangeText override which checks if it should apply to the
input type, and calls the actual implementation on the parent class.
* html/HTMLInputElement.idl:
* html/HTMLTextAreaElement.idl:
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setRangeText):
* html/HTMLTextFormControlElement.h:
(HTMLTextFormControlElement):
setRangeText implementation.
2012-10-19 Luke Macpherson <macpherson@chromium.org>
Remove HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro in StyleResolver.
https://bugs.webkit.org/show_bug.cgi?id=99782
Reviewed by Sam Weinig.
Removes last usage of HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro, so that in future there will be no temptation
to use it instead of adding a line to StyleBuilder.
Also removes redundant checks for inital and inherit (HANDLE_INHERIT_AND_INTIAL already returns in those cases).
I don't want to move this code into StyleBuilder until the FIXME that is already there is fixed.
Covered by many existing writing mode tests (eg. fast/html/details-writing-mode.html)
* css/StyleResolver.cpp:
(WebCore):
(WebCore::StyleResolver::applyProperty):
2012-10-19 Joshua Bell <jsbell@chromium.org>
IndexedDB: Hidden indexing events are visible to script via bubbling/capture
https://bugs.webkit.org/show_bug.cgi?id=96566
Reviewed by Tony Chang.
Stop propagation of error events fired at internal indexing requests as a result of
aborting, as they should not be visible to scripts.
Test: storage/indexeddb/index-population.html
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::createIndex):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::dispatchEvent):
* Modules/indexeddb/IDBRequest.h:
(WebCore::IDBRequest::preventPropagation):
(IDBRequest):
2012-10-19 Simon Fraser <simon.fraser@apple.com>
Remove .get() calls in assertions as suggested by Darin Adler.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::appendSublayer):
(PlatformCALayer::insertSublayer):
(PlatformCALayer::replaceSublayer):
2012-10-19 Simon Fraser <simon.fraser@apple.com>
Fix a hang when combining tile cache layers with preserve-3d or reflections
https://bugs.webkit.org/show_bug.cgi?id=99890
<rdar://problem/12539560>
Reviewed by Dean Jackson.
The new tile cache code added an updateSublayers() call when switching to/from
tiled layers. This confused later sublayer rebuilding, causing us to attempt to
add a layer as a child of itself, causing a hang in CA.
Fix by removing all the explicit calls to updateFoo when updating the structural
layer and switching to/from tiled layers. Instead, we set dirty flags, and rely
on the fact that these flag-dirtying functions get called before the later functions
that process those dirty flags. This is assured by some reordering of the update
function calls.
A final wrinkle is that ensureStructuralLayer() can change the layer that our
parent GraphicsLayer put in its sublayer list. Rather than diddle with that sublayer
list directly like we used to, just call noteSublayersChanged() on the parent, and have
commitLayerChangesAfterSublayers() check the ChildrenChanged and do a second update
of sublayers if necessary (we clear the flag in commitLayerChangesBeforeSublayers(), so
only do this work if a sublayer requested it).
Tests: compositing/tiling/preserve3d-tiled.html
compositing/tiling/reflected-tiled.html
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers):
(WebCore::GraphicsLayerCA::ensureStructuralLayer):
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::appendSublayer): Add assertion about adding a layer to itself.
(PlatformCALayer::insertSublayer): Ditto.
(PlatformCALayer::replaceSublayer): Ditto.
2012-10-19 Chris Fleizach <cfleizach@apple.com>
AX: aria-hidden=false does not work as expected
https://bugs.webkit.org/show_bug.cgi?id=98787
Reviewed by Beth Dakin.
ARIA requires that aria-hidden=false override an element's native visibility and include that
node in the AX hierarchy.
To accomplish this we have to allow invisible items to be included, as well as items that
have no renderers associated with them.
Test: accessibility/aria-hidden-negates-no-visibility.html
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
* accessibility/AccessibilityARIAGrid.cpp:
(WebCore::AccessibilityARIAGrid::addTableCellChild):
(WebCore::AccessibilityARIAGrid::addChildren):
* accessibility/AccessibilityARIAGrid.h:
(AccessibilityARIAGrid):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore):
(WebCore::AccessibilityNodeObject::boundingBoxRect):
(WebCore::AccessibilityNodeObject::insertChild):
(WebCore::AccessibilityNodeObject::addChild):
(WebCore::AccessibilityNodeObject::addChildren):
(WebCore::AccessibilityNodeObject::textUnderElement):
* accessibility/AccessibilityNodeObject.h:
(AccessibilityNodeObject):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
(WebCore):
* accessibility/AccessibilityObject.h:
(AccessibilityObject):
(WebCore::AccessibilityObject::addChild):
(WebCore::AccessibilityObject::insertChild):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore):
(WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
(WebCore::AccessibilityRenderObject::addHiddenChildren):
(WebCore::AccessibilityRenderObject::addChildren):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
2012-10-19 Michael Saboff <msaboff@apple.com>
Add String version of visitedLinkHash() to properly handle 8-bit URL Strings.
https://bugs.webkit.org/show_bug.cgi?id=99735
Reviewed by Filip Pizlo.
Added String version of visitedLinkHash(). Made speculative addition of visitedLinkHash()
to chromium platform version of LinkHashChromium.cpp.
Changed calls in the form of visitedLinkHash(string.characters(), string.length()) to use the
new form.
No changes to functionality, so no new tests.
* WebCore.exp.in:
* loader/HistoryController.cpp:
(WebCore::addVisitedLink):
* page/PageGroup.cpp:
(WebCore::PageGroup::addVisitedLink):
* platform/LinkHash.cpp:
(WebCore::visitedLinkHashInline):
(WebCore::visitedLinkHash):
* platform/LinkHash.h:
* platform/chromium/LinkHashChromium.cpp:
(WebCore::visitedLinkHash):
2012-10-19 Michael Saboff <msaboff@apple.com>
String(CFStringRef) should try to converting to an 8 bit string before converting to 16 bit string
https://bugs.webkit.org/show_bug.cgi?id=99794
Reviewed by Filip Pizlo.
Try getting a Latin1 byte string before getting a UTF16 (UChar*) string.
No new test, added 8 bit path.
* platform/text/cf/StringCF.cpp:
(WTF::String::String):
2012-10-19 Dima Gorbik <dgorbik@apple.com>
Page should be removed from the cache right after restore was called.
https://bugs.webkit.org/show_bug.cgi?id=99737
Reviewed by Brady Eidson.
The pageCache was inconsistent after the restoration for a period of time because the cachedFrame is being nulled,
but the page is still in the Cache. Now the page is being removed from the cache right after the restoration.
This issue was spotted in a custom built application using WebKit and unfortunately there is no way to test this
behavior in LayoutTests. All the current tests that exercise the page cache do pass.
No new tests.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
2012-10-19 Max Vujovic <mvujovic@adobe.com>
[WebGL] getUniformLocation fails for uniform array name without array brackets
https://bugs.webkit.org/show_bug.cgi?id=99854
Reviewed by Dean Jackson.
Before this patch, gl.getUniformLocation(program, "array[0]") would return the array
location, but gl.getUniformLocation(program, "array") would not. Now, the latter also
returns the array location.
In the process of adding a check to the following Khronos WebGL conformance test:
conformance/glsl/misc/glsl-long-variable-names.html
* platform/graphics/ANGLEWebKitBridge.cpp:
(WebCore::getSymbolInfo):
Before, we used to check that the symbol size was greater than one to determine that the
symbol was an array. However, this doesn't identify arrays of length one. Now, we check
if the symbol name ends in "[0]", since ANGLE appends this suffix to array symbol
names.
If the symbol is an array, we strip off the "[0]" and add a symbol with just the base
name. We set the isArray flag on the symbol, so we don't lose the information that it is
an array.
Then, we create symbols for each array element like before. However, instead of
replacing the "0" in array[0]" with each index, we take the base name "array" and
append array brackets containing each index (e.g. "array" + "[7]").
* platform/graphics/ANGLEWebKitBridge.h:
(ANGLEShaderSymbol):
Add isArray boolean to ANGLEShaderSymbol. Since array symbols don't end in "[0]"
anymore, this is the only way to identify arrays.
2012-10-19 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed, rolling out r131915.
http://trac.webkit.org/changeset/131915
https://bugs.webkit.org/show_bug.cgi?id=98787
It broke the build on platforms with \!HAVE(ACCESSIBILITY)
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::nodeIsTextControl):
* accessibility/AXObjectCache.h:
(WebCore):
* accessibility/AccessibilityARIAGrid.cpp:
(WebCore::AccessibilityARIAGrid::addChild):
(WebCore::AccessibilityARIAGrid::addChildren):
* accessibility/AccessibilityARIAGrid.h:
(AccessibilityARIAGrid):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::elementRect):
(WebCore::AccessibilityNodeObject::addChildren):
(WebCore::AccessibilityNodeObject::textUnderElement):
* accessibility/AccessibilityNodeObject.h:
(AccessibilityNodeObject):
* accessibility/AccessibilityObject.cpp:
* accessibility/AccessibilityObject.h:
(AccessibilityObject):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::textIteratorBehaviorForTextRange):
(WebCore):
(WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
(WebCore::AccessibilityRenderObject::addChildren):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
2012-10-19 Tony Chang <tony@chromium.org>
Unreviewed, rolling out r131936.
http://trac.webkit.org/changeset/131936
https://bugs.webkit.org/show_bug.cgi?id=99717
Broke the clang build
* WebCore.exp.in:
* inspector/InspectorFrontendClient.h:
(InspectorFrontendClient):
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::requestAttachWindow):
(WebCore):
(WebCore::InspectorFrontendClientLocal::requestDetachWindow):
(WebCore::InspectorFrontendClientLocal::setAttachedWindow):
* inspector/InspectorFrontendClientLocal.h:
(InspectorFrontendClientLocal):
(WebCore::InspectorFrontendClientLocal::requestSetDockSide):
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::requestAttachWindow):
(WebCore):
(WebCore::InspectorFrontendHost::requestDetachWindow):
(WebCore::InspectorFrontendHost::requestSetDockSide):
* inspector/InspectorFrontendHost.h:
(InspectorFrontendHost):
* inspector/InspectorFrontendHost.idl:
* inspector/front-end/DockController.js:
(WebInspector.DockController):
(WebInspector.DockController.prototype.setDocked):
(WebInspector.DockController.prototype._innerSetDocked.set if):
(WebInspector.DockController.prototype._innerSetDocked):
(WebInspector.DockController.prototype._updateUI.get states):
(WebInspector.DockController.prototype._updateUI):
(WebInspector.DockController.prototype._toggleDockState):
* inspector/front-end/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setAttachedWindow):
(InspectorFrontendAPI.setDockSide):
* inspector/front-end/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
(.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
(.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
* inspector/front-end/externs.js:
(InspectorFrontendHostAPI.prototype.requestAttachWindow):
(InspectorFrontendHostAPI.prototype.requestDetachWindow):
2012-10-09 Martin Robinson <mrobinson@igalia.com>
REGRESSION (r130699): 5 various fast/ tests started failing
https://bugs.webkit.org/show_bug.cgi?id=98729
Reviewed by Xan Lopez.
Do not try to remove the URL fragment for data URLs. This will likely
just corrupt the URL.
No new tests. This unskips some previously failing tests.
* platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::urlStringForSoup): Do nothing for data URLs.
2012-10-19 Simon Fraser <simon.fraser@apple.com>
Use tile caches in place of CATiledLayer
https://bugs.webkit.org/show_bug.cgi?id=99806
<rdar://problem/6474145>
Reviewed by Tim Horton.
Have GraphicsLayerCA use TileCaches instead of CATiledLayer now for
layers that exceed the 2000px size threshold.
* platform/graphics/TiledBacking.h:
(TiledBacking): Have normal getter and setter for the visible rect.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly): We need
to pass in an old visibleRect to commitLayerChangesBeforeSublayers(). Just use
our current visible rect, which result in no tile area work.
(WebCore::GraphicsLayerCA::computeVisibleRect): Make this const and have it
return the rect, for clarity.
(WebCore::GraphicsLayerCA::recursiveCommitChanges): Keep track of the old
visible rect, and use the change flags mechanism to ensure that we recompute
tile areas later.
When calling commitLayerChangesBeforeSublayers() on the mask layer, just pass
its own visible rect as the old visible rect.
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Pass in the
oldVisibleRect so that updateVisibleRect() can use this to see how the
visibleRect is changing.
(WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect): This member function
compares the old and new visible rects, and extends the tile coverage area
in directions where more content is being exposed. It takes care to avoid
"jitter" in the visible rect deltas causing edge tiles to get created then
destroyed by keeping any extra padding that already exists in a direction
where more content is being exposed.
(WebCore::GraphicsLayerCA::updateVisibleRect): Call adjustTiledLayerVisibleRect()
and use the result to update the TiledBacking's visibleRect.
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Create layers of type
LayerTypeTileCacheLayer instead of LayerTypeWebTiledLayer. Because tile
cache layers involve adding an extra layer to the hierarchy (the tile container),
we call updateSublayerList() when changing layer type.
* platform/graphics/ca/GraphicsLayerCA.h: New m_sizeAtLastVisibleRectUpdate member
that is used to prevent the adjustTiledLayerVisibleRect() logic being confused by
size changes.
(WebCore::GraphicsLayerCA::visibleRect):
* platform/graphics/ca/mac/TileCache.h: Have normal getter and setter for the visible rect.
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::setVisibleRect): Renamed to setVisibleRect().
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges): Avoid doing work
for pages in the page cache, for which the root layer is unattached.
(WebCore::RenderLayerCompositor::frameViewDidScroll): visibleRectChanged() was renamed
to setVisibleRect().
2012-10-19 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=99768
We should limit the tile cache coverage when a page can't take
advantage of fast tile scrolling anyway
Reviewed by Simon Fraser.
When sites can't use fast-scrolling, there is no need to inflate the
tile cache. In fact, we get a performance boost by keeping it small
on painting-intensive sites.
Instead of just looking a whether or not the FrameView
canHaveScrollbar(), consult
shouldUpdateScrollLayerPositionOnMainThread().
* page/FrameView.cpp:
(WebCore::FrameView::performPostLayoutTasks):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
Expose shouldUpdateScrollLayerPositionOnMainThread().
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::hasNonLayerFixedObjects):
(WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionOnMainThread):
(WebCore):
(WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
* page/scrolling/ScrollingCoordinator.h:
(ScrollingCoordinator):
Bug fix. Should be bitwise and.
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::tileCoverageRect):
2012-10-19 Mark Lam <mark.lam@apple.com>
Added WTF::StackStats mechanism.
https://bugs.webkit.org/show_bug.cgi?id=99805.
Reviewed by Geoffrey Garen.
Added StackStats probes in layout methods.
* dom/Document.cpp:
(WebCore::Document::updateLayout):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layout):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::layout):
* rendering/RenderDialog.cpp:
(WebCore::RenderDialog::layout):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::layout):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::layout):
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::layout):
* rendering/RenderIFrame.cpp:
(WebCore::RenderIFrame::layout):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::layout):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::layout):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::layout):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::layout):
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::layout):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::layout):
* rendering/RenderObject.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::layout):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::layout):
* rendering/RenderReplica.cpp:
(WebCore::RenderReplica::layout):
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::layoutSpecialExcludedChild):
* rendering/RenderScrollbarPart.cpp:
(WebCore::RenderScrollbarPart::layout):
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::layout):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::layout):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::layout):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::layout):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout):
* rendering/RenderTextTrackCue.cpp:
(WebCore::RenderTextTrackCue::layout):
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::layout):
* rendering/RenderView.cpp:
(WebCore::RenderView::layout):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::layout):
* rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout):
* rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::layout):
* rendering/svg/RenderSVGGradientStop.cpp:
(WebCore::RenderSVGGradientStop::layout):
* rendering/svg/RenderSVGHiddenContainer.cpp:
(WebCore::RenderSVGHiddenContainer::layout):
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::layout):
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::layout):
* rendering/svg/RenderSVGResourceMarker.cpp:
(WebCore::RenderSVGResourceMarker::layout):
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::layout):
* rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::layout):
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::layout):
2012-10-19 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: merge "docked" state into the "dock side" enum.
https://bugs.webkit.org/show_bug.cgi?id=99717
Reviewed by Vsevolod Vlasov.
Otherwise, it is hard to manage these inter-dependent flags.
* inspector/InspectorFrontendClient.h:
(InspectorFrontendClient):
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::requestSetDockSide):
(WebCore::InspectorFrontendClientLocal::setAttachedWindow):
* inspector/InspectorFrontendClientLocal.h:
(InspectorFrontendClientLocal):
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::requestSetDockSide):
* inspector/InspectorFrontendHost.h:
(InspectorFrontendHost):
* inspector/InspectorFrontendHost.idl:
* inspector/front-end/DockController.js:
(WebInspector.DockController):
(WebInspector.DockController.prototype._updateUI.get sides):
(WebInspector.DockController.prototype._updateUI):
(WebInspector.DockController.prototype._toggleDockState):
* inspector/front-end/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setAttachedWindow):
* inspector/front-end/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
2012-10-19 Joshua Bell <jsbell@chromium.org>
[V8] IndexedDB: Crash when lazy-indexing Date keys
https://bugs.webkit.org/show_bug.cgi?id=99860
Reviewed by Adam Barth.
Missing a scope/context needed when digging values out of Date objects
in an indexing callback.
Test: storage/indexeddb/lazy-index-types.html
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromScriptValueAndKeyPath):
2012-10-18 Dean Jackson <dino@apple.com>
Shader translator needs option to clamp uniform array accesses in vertex shaders
https://bugs.webkit.org/show_bug.cgi?id=98977
https://code.google.com/p/angleproject/issues/detail?id=49
Reviewed by Alok Priyadarshi and Ken Russell.
WebGL forbids out-of-bounds array access in shaders. Rewrite any shaders to
ensure that non-direct array indexing is clamped to the bounds of the array.
Test: fast/canvas/webgl/array-bounds-clamping.html
* platform/graphics/ANGLEWebKitBridge.cpp:
(WebCore::ANGLEWebKitBridge::compileShaderSource): Pass new compiler option SH_CLAMP_INDIRECT_ARRAY_BOUNDS
2012-10-19 Justin Novosad <junov@chromium.org>
[Chromium] Reduce memory footprint of canvas pattern object with deferred rendering
https://bugs.webkit.org/show_bug.cgi?id=99856
Reviewed by Stephen White.
Marking internal bitmap copy as immutable to prevent it from being
unnecessarily duplicated in skia by SkBitmapHeap.
No new tests: code path already well covered by existing layout tests
fast/canvas/canvas-pattern-*
* platform/graphics/skia/PatternSkia.cpp:
(WebCore::Pattern::platformPattern):
2012-10-19 Antti Koivisto <antti@apple.com>
Maintain a list of active CSS stylesheets
https://bugs.webkit.org/show_bug.cgi?id=99843
Reviewed by Andreas Kling.
Currently we maintain a per-document list of stylesheets that matches what is returned by the StyleSheetList DOM API.
This list contains both CSS and XSLT stylesheets which internally have basically nothing in common. Maintaining
a list of active CSS stylesheets separately simplifies code in number of places.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::addStylesheetsFromSeamlessParents):
(WebCore::StyleResolver::appendAuthorStyleSheets):
(WebCore::collectCSSOMWrappers):
* css/StyleResolver.h:
(StyleResolver):
* css/StyleSheetList.cpp:
(WebCore::StyleSheetList::styleSheets):
(WebCore::StyleSheetList::detachFromDocument):
* dom/Document.cpp:
(WebCore::Document::setCompatibilityMode):
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
(WebCore::styleSheetsUseRemUnits):
(WebCore::filterEnabledCSSStyleSheets):
(WebCore):
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
(WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
* dom/DocumentStyleSheetCollection.h:
(WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
(DocumentStyleSheetCollection):
(WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
2012-09-08 Alpha Lam <hclam@chromium.org>
[chromium] Implement deferred image decoding
https://bugs.webkit.org/show_bug.cgi?id=94240
Reviewed by Stephen White.
Objectives:
To record image decoding operations during painting and to defer
decoding operations until rasterization.
Rationale:
This is a key feature that enables impl-side painting which requires
fast recording of drawing operations. The existing decode-on-draw
restricts that recording has to block on expensive decoding operations.
This change allows recording of image decoding operations during paint
time.
Design:
Image decoding happens when a BitmapImage is drawn into a
GraphicsContext. When per-tile painting is enabled GraphicsContext
is backed by SkCanvas in recording mode. This SkCanvas records drawing
and image decoding operations to minimize recording time.
An image decoding operation is recorded as a SkPixelRef object
implemented by LazyDecodingPixelRef. This object references raw encoded
data, regions to be decoded and scaling information.
When used in conjunction with per-tile painting this feature defers
image decoding until the SkCanvas referencing the image is rasterized.
Both recording and rasterization happen on the main thread.
Performance Impact:
This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
and does not have an impact when disabled.
This feature is disabled by default.
Upcoming Changes:
1. Implement a full-featured image cache in ImageDecodingStore.
2. Allow rasterization and decoding on impl thread.
Classes Involved:
BitmapImage
BitmapImage is the entry point for deferred image decoding. When
drawing a BitmapImage into a GraphicsContext it makes a request to
create a NativeImageSkia. We substitute the content in NativeImageSkia
such that it is lazily decoded.
DeferredImageDecoder
This is the platform implementation of a image decoder for Chromium.
This is a bridge layer that either delegates calls to the actual
ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
to ImageDecodingStore.
ImageDecodingStore
This object manages all encoded images. It keeps track of encoded
data and the corresponding ImageDecoder for doing actual decoding. It
is also responsible for generating lazily decoded SkBitmaps. This
SkBitmap contains a LazyDecodingPixelRef object which references to an
image entry in ImageDecodingStore.
ScaledImageFragment
A container for a scaled image fragment. In addition to bitmap pixels
it contains information about the ID of the image, scale and clipping.
ImageFrameGenerator
This object is responsible for generating decoded pixels. It is also
a container for encoded image data and corresponding image decoder.
LazyDecodingPixelRef
This object is embedded in a SkBitmap to enable lazy decoding. When
SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
contains information to locate an image and scaling info, these
information is submitted to ImageDecodingStore to access actual pixels.
Layout tests. There are about 80 tests in this virtual test suite
running this feature in this directory:
platform/chromium/virtual/deferred/fast/images
Unit tests. Added DeferredImageDecoderTest to verify deferred
image decoding behavior.
* WebCore.gypi:
* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::setData):
* platform/graphics/ImageSource.h:
(WebCore):
(ImageSource):
* platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
(WebCore):
(WebCore::DeferredImageDecoder::DeferredImageDecoder):
(WebCore::DeferredImageDecoder::~DeferredImageDecoder):
(WebCore::DeferredImageDecoder::create):
(WebCore::DeferredImageDecoder::createForTesting):
(WebCore::DeferredImageDecoder::filenameExtension):
(WebCore::DeferredImageDecoder::frameBufferAtIndex):
(WebCore::DeferredImageDecoder::setData):
(WebCore::DeferredImageDecoder::isSizeAvailable):
(WebCore::DeferredImageDecoder::size):
(WebCore::DeferredImageDecoder::frameSizeAtIndex):
(WebCore::DeferredImageDecoder::frameCount):
(WebCore::DeferredImageDecoder::repetitionCount):
(WebCore::DeferredImageDecoder::clearFrameBufferCache):
(WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
(WebCore::DeferredImageDecoder::frameBytesAtIndex):
* platform/graphics/chromium/DeferredImageDecoder.h: Added.
(WebCore):
(DeferredImageDecoder):
* platform/graphics/chromium/ImageDecodingStore.cpp: Added.
(WebCore::ImageDecodingStore::ImageDecodingStore):
(WebCore):
(WebCore::ImageDecodingStore::~ImageDecodingStore):
(WebCore::ImageDecodingStore::instanceOnMainThread):
(WebCore::ImageDecodingStore::initializeOnMainThread):
(WebCore::ImageDecodingStore::shutdown):
(WebCore::ImageDecodingStore::isLazyDecoded):
(WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
(WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
(WebCore::ImageDecodingStore::setData):
(WebCore::ImageDecodingStore::lockPixels):
(WebCore::ImageDecodingStore::unlockPixels):
(WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
(WebCore::ImageDecodingStore::calledOnValidThread):
(WebCore::ImageDecodingStore::lookupFrameCache):
(WebCore::ImageDecodingStore::deleteFrameCache):
* platform/graphics/chromium/ImageDecodingStore.h: Added.
(WebCore):
(ImageDecodingStore):
(WebCore::ImageDecodingStore::create):
* platform/graphics/chromium/ScaledImageFragment.cpp: Added.
(WebCore):
(WebCore::ScaledImageFragment::~ScaledImageFragment):
(WebCore::ScaledImageFragment::ScaledImageFragment):
(WebCore::ScaledImageFragment::isEqual):
* platform/graphics/chromium/ScaledImageFragment.h: Added.
(WebCore):
(ScaledImageFragment):
(WebCore::ScaledImageFragment::create):
(WebCore::ScaledImageFragment::bitmap):
(WebCore::ScaledImageFragment::isComplete):
* platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
(WebCore):
(WebCore::ImageFrameGenerator::ImageFrameGenerator):
(WebCore::ImageFrameGenerator::~ImageFrameGenerator):
(WebCore::ImageFrameGenerator::decoder):
(WebCore::ImageFrameGenerator::setData):
* platform/graphics/chromium/ImageFrameGenerator.h: Added.
(WebCore):
(ImageFrameGenerator):
(WebCore::ImageFrameGenerator::create):
(WebCore::ImageFrameGenerator::size):
(WebCore::ImageFrameGenerator::imageId):
* platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
(WebCore):
(WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
(WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
(WebCore::LazyDecodingPixelRef::isScaled):
(WebCore::LazyDecodingPixelRef::isClipped):
(WebCore::LazyDecodingPixelRef::onLockPixels):
(WebCore::LazyDecodingPixelRef::onUnlockPixels):
(WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
* platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
(WebCore):
(LazyDecodingPixelRef):
(WebCore::LazyDecodingPixelRef::frameGenerator):
* platform/graphics/skia/NativeImageSkia.cpp:
(WebCore::NativeImageSkia::resizedBitmap):
* platform/image-decoders/ImageDecoder.h:
(ImageFrame):
(WebCore::ImageFrame::setSkBitmap):
(WebCore::ImageFrame::getSkBitmap):
2012-10-18 Yael Aharon <yael.aharon@intel.com>
[EFL] GraphicsContext3D::m_renderStyle is not initialized
https://bugs.webkit.org/show_bug.cgi?id=99721
Reviewed by Antonio Gomes.
Initialize GraphicsContext3D::m_renderStyle.
No new tests, no new functionality.
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
2012-10-19 Dongwoo Joshua Im <dw.im@samsung.com>
Rename ENABLE_CSS3_TEXT_DECORATION to ENABLE_CSS3_TEXT
https://bugs.webkit.org/show_bug.cgi?id=99804
Reviewed by Julien Chaffraix.
CSS3 text related properties will be implemented under this flag,
including text decoration, text-align-last, and text-justify.
No new functionality, no new test.
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
* GNUmakefile.features.am:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::addTextDecorationProperty):
(WebCore::CSSParser::parseTextDecoration):
* css/CSSPrimitiveValueMappings.h:
(WebCore):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
(WebCore):
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
(StyleRareNonInheritedData):
2012-10-19 Nate Chapin <japhet@chromium.org>
Reorder some functions in SubresourceLoader to permit main resources
https://bugs.webkit.org/show_bug.cgi?id=99769
Reviewed by Adam Barth.
Most resource types that go through the memory cache (and therefore
through SubresourceLoader) are not sensitive to the exact ordering of
the callbacks they receive, particularly as it relates to ResourceLoadNotifier
calls. Main resources are not so lenient. For main resources to be cacheable
and maintain the current behavior as precisely as possible, we will need to
rearrange SubresourceLoader's willSendRequest() and didReceiveData().
No new tests, refactor only.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequest): There are a series of checks that can result
in the request being canceled, plus calls to CachedResource::willSendRequest() and
ResourceLoader::willSendRequest(). MainResourceLoader (which will be a
CachedResourceClient) has work it expects to do before ResourceLoader::willSendRequest()
is called, but the calls are out of order for that, so swap those.
(WebCore::SubresourceLoader::didReceiveData): We need to populate ResourceLoader::m_resourceData
before notifying CachedResource of new data, but we also want to do CachedResourceClients calls
before calling ResourceLoadNotifier. This means we can't delegate to ResourceLoader.
2012-10-19 Chris Fleizach <cfleizach@apple.com>
AX: aria-hidden=false does not work as expected
https://bugs.webkit.org/show_bug.cgi?id=98787
Reviewed by Beth Dakin.
ARIA requires that aria-hidden=false override an element's native visibility and include that
node in the AX hierarchy.
To accomplish this we have to allow invisible items to be included, as well as items that
have no renderers associated with them.
Test: accessibility/aria-hidden-negates-no-visibility.html
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
* accessibility/AccessibilityARIAGrid.cpp:
(WebCore::AccessibilityARIAGrid::addTableCellChild):
(WebCore::AccessibilityARIAGrid::addChildren):
* accessibility/AccessibilityARIAGrid.h:
(AccessibilityARIAGrid):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore):
(WebCore::AccessibilityNodeObject::boundingBoxRect):
(WebCore::AccessibilityNodeObject::insertChild):
(WebCore::AccessibilityNodeObject::addChild):
(WebCore::AccessibilityNodeObject::addChildren):
(WebCore::AccessibilityNodeObject::textUnderElement):
* accessibility/AccessibilityNodeObject.h:
(AccessibilityNodeObject):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
(WebCore):
* accessibility/AccessibilityObject.h:
(AccessibilityObject):
(WebCore::AccessibilityObject::addChild):
(WebCore::AccessibilityObject::insertChild):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore):
(WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
(WebCore::AccessibilityRenderObject::addHiddenChildren):
(WebCore::AccessibilityRenderObject::addChildren):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
2012-10-19 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Rename owner to client in MediaStreamDescriptor
https://bugs.webkit.org/show_bug.cgi?id=99593
Reviewed by Adam Barth.
This patch renames owner to client in MediaStreamDescriptor as discussed in #99080.
No new tests needed, covered by existing tests.
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::MediaStream):
(WebCore::MediaStream::~MediaStream):
* Modules/mediastream/MediaStream.h:
(MediaStream):
* Modules/mediastream/PeerConnection00.cpp:
(WebCore::PeerConnection00::didRemoveRemoteStream):
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::didRemoveRemoteStream):
* platform/mediastream/MediaStreamCenter.cpp:
(WebCore::MediaStreamCenter::endLocalMediaStream):
(WebCore::MediaStreamCenter::addMediaStreamTrack):
(WebCore::MediaStreamCenter::removeMediaStreamTrack):
* platform/mediastream/MediaStreamDescriptor.h:
(WebCore::MediaStreamDescriptorClient::~MediaStreamDescriptorClient):
(WebCore::MediaStreamDescriptor::client):
(WebCore::MediaStreamDescriptor::setClient):
(WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
(MediaStreamDescriptor):
2012-10-19 Shinya Kawanaka <shinyak@chromium.org>
Elements assigned to <shadow> should not be reprojected.
https://bugs.webkit.org/show_bug.cgi?id=99680
Reviewed by Dimitri Glazkov.
In the current spec, we don't have shadow reprojection, i.e. elements assigned to <shadow> should not be
reprojected to content. However, we can select them by <shadow>.
Tests: fast/dom/shadow/content-reprojection-complex.html
fast/dom/shadow/content-reprojection-shadow.html
fast/dom/shadow/shadow-reprojection-prohibited.html
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::distribute): When a node is <shadow>, we should not add elements assigned to <shadow>
to POOL. Instead, <shadow> itself should be added to POOL.
* html/shadow/HTMLContentElement.h:
(WebCore::isHTMLContentElement):
(WebCore):
2012-10-19 Chris Fleizach <cfleizach@apple.com>
VO issues with hidden <legend> and last explicitly labelled element within a group <fieldset>
https://bugs.webkit.org/show_bug.cgi?id=96325
Reviewed by Beth Dakin.
When finding a <legend> for accessibility, we need to consider those that are offscreen. This patch
modifies the original findLegend method to take a parameter to determine what should be done.
Test: accessibility/hidden-legend.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::titleUIElement):
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::findLegend):
* rendering/RenderFieldset.h:
2012-10-17 Chris Fleizach <cfleizach@apple.com>
AX: Refactor accessibility name computation so it's more platform independent
https://bugs.webkit.org/show_bug.cgi?id=99502
Reviewed by Beth Dakin.
The current model of determining the accessible text for an object has a lot of Mac biases built in
due to legacy implementation.
This change categorizes and orders accessibility text based on WAI-ARIA text computation rules and then
allows the platform (only Mac right now) to decide how best to apply that text to its own AX API.
http://www.w3.org/TR/wai-aria/roles#textalternativecomputation
This change tried very hard not to change any test behavior, even though it exposed a number of weird
edge cases where we were treating attributes differently based on element type.
Future patches will resolve those discrepancies.
* accessibility/AccessibilityImageMapLink.cpp:
(WebCore::AccessibilityImageMapLink::accessibilityText):
* accessibility/AccessibilityImageMapLink.h:
(AccessibilityImageMapLink):
* accessibility/AccessibilityMediaControls.cpp:
(WebCore::AccessibilityMediaControl::accessibilityText):
* accessibility/AccessibilityMediaControls.h:
(AccessibilityMediaControl):
(WebCore::AccessibilityMediaTimeDisplay::isMediaControlLabel):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::titleElementText):
(WebCore::AccessibilityNodeObject::accessibilityText):
(WebCore::AccessibilityNodeObject::ariaLabeledByText):
(WebCore::AccessibilityNodeObject::alternativeText):
(WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
(WebCore::AccessibilityNodeObject::visibleText):
(WebCore::AccessibilityNodeObject::helpText):
(WebCore::AccessibilityNodeObject::ariaDescribedByAttribute):
* accessibility/AccessibilityNodeObject.h:
(AccessibilityNodeObject):
* accessibility/AccessibilityObject.h:
(AccessibilityText):
(WebCore::AccessibilityText::AccessibilityText):
(WebCore::AccessibilityObject::isMediaControlLabel):
(AccessibilityObject):
(WebCore::AccessibilityObject::accessibilityText):
(WebCore::AccessibilityObject::setAccessibleName):
(WebCore::AccessibilityObject::accessibilityDescription):
(WebCore::AccessibilityObject::title):
(WebCore::AccessibilityObject::helpText):
(WebCore::AccessibilityObject::stringValue):
(WebCore::AccessibilityObject::textUnderElement):
(WebCore::AccessibilityObject::text):
(WebCore::AccessibilityObject::textLength):
(WebCore::AccessibilityObject::setRoleValue):
(WebCore::AccessibilityObject::roleValue):
(WebCore::AccessibilityObject::selection):
(WebCore::AccessibilityObject::hierarchicalLevel):
* accessibility/AccessibilityRenderObject.cpp:
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
(-[WebAccessibilityObjectWrapper accessibilityTitle]):
(-[WebAccessibilityObjectWrapper accessibilityDescription]):
(-[WebAccessibilityObjectWrapper accessibilityHelpText]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
* platform/LocalizedStrings.cpp:
(WebCore::localizedMediaControlElementHelpText):
2012-10-19 Kent Tamura <tkent@chromium.org>
Use Localizer::monthFormat to construct input[type=month] UI
https://bugs.webkit.org/show_bug.cgi?id=99818
Reviewed by Kentaro Hara.
Use an LDML format returned by Localizer::monthFormat for
input[type=month] UI.
Because the format may contain symbolic month names and symbolic
stand-alone month names, we need to add:
- Symbolic/numeric detection in DateTimeEditBuilder
- Normal/stand-alone detection in DateTimeEditBuilder
- Symbolic edit field for months
Test: fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n.html,
fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
* html/MonthInputType.cpp:
(WebCore::MonthInputType::setupLayoutParameters):
Use Localizer::monthFormat.
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitField):
- If the number of continuous field character is greater than 2, use
DateTimeSymbolicMonthFieldElement.
- Supports stand-alone month field.
* html/shadow/DateTimeFieldElements.h:
(DateTimeSymbolicMonthFieldElement): Added. A subclass of DateTimeSymbolicFieldElement.
* html/shadow/DateTimeFieldElements.cpp:
(WebCore::DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement):
Added.
(WebCore::DateTimeSymbolicMonthFieldElement::create): Added.
(WebCore::DateTimeSymbolicMonthFieldElement::populateDateTimeFieldsState):
We need to add 1 because the internal integer representation is 0-based
and DateTimeFieldsState uses 1-based month.
(WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDate):
DateComponents::month is 0-based.
(WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState):
We need to subtract 1 because the internal integer representation is 0-based
and DateTimeFieldsState uses 1-based month.
* html/shadow/DateTimeSymbolicFieldElement.h:
(WebCore::DateTimeSymbolicFieldElement::symbolsSize):
Added for DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState.
2012-10-19 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: inspector/styles/styles-history.html is failing Text on Windows and Linux
https://bugs.webkit.org/show_bug.cgi?id=99519
Reviewed by Alexander Pavlov.
Extracted _styleContentSet callback in a class method to make it sniffable by tests.
* inspector/front-end/StylesSourceMapping.js:
(WebInspector.StyleFile.prototype._commitIncrementalEdit):
(WebInspector.StyleFile.prototype._styleContentSet):
2012-10-19 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: add object-src 'none' to the inspector.html
https://bugs.webkit.org/show_bug.cgi?id=99728
Reviewed by Vsevolod Vlasov.
* inspector/front-end/inspector.html:
2012-10-19 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Get rid of isSnippetEvaluation flag on UISourceCode
https://bugs.webkit.org/show_bug.cgi?id=99823
Reviewed by Yury Semikhatsky.
Replaced isSnippetEvaluation flag with a pair of isSnippet and isTemporary set.
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.ScriptSnippetModel.prototype._releasedUISourceCodes):
(WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
* inspector/front-end/ScriptsNavigator.js:
(WebInspector.ScriptsNavigator.prototype._snippetsNavigatorViewForUISourceCode):
(WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._createSourceFrame):
* inspector/front-end/Workspace.js:
(WebInspector.Project.prototype.addTemporaryUISourceCode):
2012-10-19 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Invalid Regex in SASSSourceMapping/didRequestContent, breaks Support for Sass experiment
https://bugs.webkit.org/show_bug.cgi?id=99729
Reviewed by Vsevolod Vlasov.
Decode only the first line number digit written in a six-character escaped Unicode format.
* inspector/front-end/SASSSourceMapping.js:
(WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
(WebInspector.SASSSourceMapping.prototype._resourceAdded):
2012-10-19 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Update the RuntimeEnabledFeatures flags
https://bugs.webkit.org/show_bug.cgi?id=99714
Reviewed by Adam Barth.
Updating the RuntimeEnabledFeatures flags to match reality:
isMediaStreamEnabled and isPeerConnectionEnabled should be true by default and
isDeprecatedPeerConnectionEnabled false.
Patch covered by existing tests.
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
2012-10-19 Adam Barth <abarth@webkit.org>
[V8] Simplify GCPrologueVisitor
https://bugs.webkit.org/show_bug.cgi?id=99819
Reviewed by Kentaro Hara.
Previously, GCPrologueVisitor used a complicated traits-based template
design. That's not necessary. We can just implement it directly without
template magic.
The one subtly here is that MessagePort is not actually a subclass of
ActiveDOMObject. The next stage of this cleanup is to make MessagePort
inherit from ActiveDOMObject and remove this special case entirely.
* bindings/v8/V8GCController.cpp:
(WebCore::EnsureWeakDOMNodeVisitor::visitDOMWrapper):
(WebCore):
(WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
(WebCore::NodeVisitor::visitDOMWrapper):
(WebCore::V8GCController::gcPrologue):
2012-10-19 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Saving HAR, snapshots and timeline data do not work in remote debugging mode
https://bugs.webkit.org/show_bug.cgi?id=99179
Reviewed by Yury Semikhatsky.
Added method "close" to InspectorFrontendHost.
Symantically, this method forces to flush all unsaved buffers for
specified file. In native implementation this turns to be no-op.
In stub implementation "close" causes compilation of blob object an
navigating to blob-schema url.
Removed "canAppend", as appending in now suppurted
by all implementations.
Repaced schema "data" with "blob" in InspectorFrontendHostStub "save"
to avoid out-of-memory errors.
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::close): Compiles blob object and
navigates to blob-object url.
(WebCore):
* inspector/InspectorFrontendHost.h: Added "close" method.
* inspector/InspectorFrontendHost.idl: Ditto.
* inspector/front-end/FileManager.js:
(WebInspector.FileManager.prototype.close): Proxy to InspectorFrontend.
* inspector/front-end/FileUtils.js:
(WebInspector.FileOutputStream.prototype.close):
Invoke "close" on FileManager.
(WebInspector.FileOutputStream.prototype._onAppendDone): Ditto.
* inspector/front-end/HandlerRegistry.js: Added mandatory "close" call.
* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapProfileHeader.prototype.canSaveToFile): Fixed check.
* inspector/front-end/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub):
Added "appendable" behaviour emulation.
* inspector/front-end/SourceFrame.js: Added mandatory "close" call.
* inspector/front-end/externs.js: Replaced "canAppend" with "close"
2012-10-18 Dominic Mazzoni <dmazzoni@google.com>
AX: labelForElement is slow when there are a lot of DOM elements
https://bugs.webkit.org/show_bug.cgi?id=97825
Reviewed by Ryosuke Niwa.
Adds a DocumentOrderedMap to TreeScope that allows accessibility to
quickly map from an id to the label for that id. This speeds up
AccessibilityNode::labelForElement, which was a bottleneck in Chromium
when accessibility was on.
Tests: accessibility/title-ui-element-correctness.html
perf/accessibility-title-ui-element.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::labelForElement):
* dom/DocumentOrderedMap.cpp:
(WebCore::keyMatchesLabelForAttribute):
(WebCore):
(WebCore::DocumentOrderedMap::get):
(WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
* dom/DocumentOrderedMap.h:
(DocumentOrderedMap):
* dom/Element.cpp:
(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):
(WebCore::Element::updateLabel):
(WebCore):
(WebCore::Element::willModifyAttribute):
* dom/Element.h:
(Element):
* dom/TreeScope.cpp:
(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::destroyTreeScopeData):
(WebCore::TreeScope::addLabel):
(WebCore):
(WebCore::TreeScope::removeLabel):
(WebCore::TreeScope::labelElementForId):
* dom/TreeScope.h:
(WebCore):
(TreeScope):
(WebCore::TreeScope::shouldCacheLabelsByForAttribute):
2012-10-19 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Update localizedStrings.js
https://bugs.webkit.org/show_bug.cgi?id=99701
Reviewed by Yury Semikhatsky.
Fixed most of missing strings and orphans.
* English.lproj/localizedStrings.js:
* inspector/front-end/SettingsScreen.js:
2012-10-17 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: NMI provide data for mixing with tcmalloc heap dumps.
https://bugs.webkit.org/show_bug.cgi?id=99457
Reviewed by Yury Semikhatsky.
countObjectSize now accepts ptr as the first argument and saves it into HashMap if the binary was ran with HEAPPROFILE env variable.
getProcessMemoryDistribution does snapshot and calls the downstream code with the map of counted objects.
* inspector/InspectorClient.h:
(WebCore::InspectorClient::dumpUncountedAllocatedObjects):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::reportJSHeapInfo):
(WebCore::reportRenderTreeInfo):
(WebCore):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* inspector/MemoryInstrumentationImpl.cpp:
(WebCore::MemoryInstrumentationClientImpl::countObjectSize):
(WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
* inspector/MemoryInstrumentationImpl.h:
(MemoryInstrumentationClientImpl):
(WebCore::MemoryInstrumentationClientImpl::countedObjects):
2012-10-19 Adam Barth <abarth@webkit.org>
[V8] DOMObjectVisitor does nothing
https://bugs.webkit.org/show_bug.cgi?id=99812
Reviewed by Kentaro Hara.
This code doesn't do anything, even in Debug! We should just remove it.
* bindings/v8/V8GCController.cpp:
(WebCore):
(WebCore::V8GCController::gcPrologue):
(WebCore::V8GCController::gcEpilogue):
2012-10-19 Adam Barth <abarth@webkit.org>
[V8] Remove unused typedef from V8GCController.cpp
https://bugs.webkit.org/show_bug.cgi?id=99808
Reviewed by Kentaro Hara.
This typedef is not used.
* bindings/v8/V8GCController.cpp:
2012-10-18 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Styles] Property considered overridden if it is non-inherited important property in inherited style
https://bugs.webkit.org/show_bug.cgi?id=99720
Reviewed by Yury Semikhatsky.
Non-inherited properties are now disregarded in inherited styles.
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype._refreshStyleRules):
(WebInspector.StylesSidebarPane.prototype._markUsedProperties):
2012-10-18 Adam Barth <abarth@webkit.org>
[V8] GrouperVisitor is secretly two entirely separate objects
https://bugs.webkit.org/show_bug.cgi?id=99810
Reviewed by Kentaro Hara.
We can separate out the two things that GrouperVisitor is trying to do
because they have nothing to do with each other.
* bindings/v8/V8GCController.cpp:
(ObjectVisitor):
(WebCore::ObjectVisitor::visitDOMWrapper):
(WebCore):
(WebCore::V8GCController::gcPrologue):
2012-10-18 Kiran Muppala <cmuppala@apple.com>
Automatically start plugins created within a user gesture, skipping snapshotting
https://bugs.webkit.org/show_bug.cgi?id=99778
Reviewed by Alexey Proskuryakov.
If a user gesture is being processed, do not set the display state of
HTMLPluginImageElement to WaitingForSnapshot.
No new tests, since it only affects when plugins switch from snapshot to running
state. Does not affect rendering of other elements.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
2012-10-18 Kent Tamura <tkent@chromium.org>
Add shortMonthLabels and shortStandAloneMonthLabels to Localizer
https://bugs.webkit.org/show_bug.cgi?id=99787
Reviewed by Kentaro Hara.
This is going to be used for input[type=month] UI. This doesn't affect
any bahevior yet.
Tests: Add some tests to Source/WebKit/chromium/tests/, and will add
layout tests later.
* platform/text/Localizer.h:
(Localizer): Add shortMonthLabels and shortStandAloneMonthLabels as pure
virtual member functions.
* platform/text/LocaleICU.h:
(LocaleICU): Declare shortMonthLabels and shortStandAloneMonthLabels.
* platform/text/LocaleICU.cpp:
(WebCore::LocaleICU::shortMonthLabels): Added.
(WebCore::LocaleICU::shortStandAloneMonthLabels): Added.
* platform/text/LocaleNone.cpp:
(LocaleNone): Declare shortMonthLabels and shortStandAloneMonthLabels.
(WebCore::LocaleNone::shortMonthLabels):
Added. Always returns English labels.
(WebCore::LocaleNone::shortStandAloneMonthLabels):
Addes. Just calls shortMonthLabels.
* platform/text/LocaleWin.h:
(LocaleWin): Declare shortMonthLabels and shortStandAloneMonthLabels.
* platform/text/LocaleWin.cpp:
(WebCore::LocaleWin::shortMonthLabels): Added.
(WebCore::LocaleWin::shortStandAloneMonthLabels):
Added. Always returns shortMonthLabels.
* platform/text/mac/LocaleMac.h:
(LocaleMac): Declare shortMonthLabels and shortStandAloneMonthLabels.
* platform/text/mac/LocaleMac.mm:
(WebCore::LocaleMac::shortMonthLabels): Added.
(WebCore::LocaleMac::shortStandAloneMonthLabels): Added.
2012-10-18 Kunihiko Sakamoto <ksakamoto@chromium.org>
Implement value sanitization algorithm for type=datetime
https://bugs.webkit.org/show_bug.cgi?id=76893
Reviewed by Kent Tamura.
Implement the value sanitization algorithm for type=datetime that adjusts
the value to a valid normalized forced-UTC global date and time string.
See http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#valid-normalized-forced-utc-global-date-and-time-string
Test: fast/forms/datetime/datetime-value-sanitization.html
* html/DateTimeInputType.cpp:
(WebCore::DateTimeInputType::sanitizeValue): Implemented.
(WebCore):
* html/DateTimeInputType.h:
(DateTimeInputType): Add sanitizeValue.
* platform/DateComponents.cpp:
(WebCore::DateComponents::addMinute): Fixed a bug that caused wrong adjustment
of timezone offset (e.g. 2012-10-17T01:00+01:00 -> 2012-10-17T01:-60Z).
2012-10-18 Byungwoo Lee <bw80.lee@samsung.com>
Fix build warning.
https://bugs.webkit.org/show_bug.cgi?id=99788
Reviewed by Kentaro Hara.
Use UNUSED_PARAM macro for removing -Wunused-parameter.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::currentTransform):
2012-10-18 Benjamin Poulain <bpoulain@apple.com>
[WK2] WebKit2 does not build without PLUGIN_PROCESS on Mac
https://bugs.webkit.org/show_bug.cgi?id=99771
Reviewed by Anders Carlsson.
* WebCore.exp.in: The symbol is used by WebCore Test Support, move it
to the general section.
2012-10-18 Adam Barth <abarth@webkit.org>
[V8] fast/dom/gc-9.html fails for document.styleSheets
https://bugs.webkit.org/show_bug.cgi?id=99786
Reviewed by Kentaro Hara.
V8 needs to know about this IDL attribute as well.
* css/StyleSheetList.idl:
2012-10-18 Adam Barth <abarth@webkit.org>
[V8] fast/dom/gc-9.html fails for document.implementation
https://bugs.webkit.org/show_bug.cgi?id=99783
Reviewed by Kentaro Hara.
In order to correctly manage the lifetime of document.implementation,
we need to implement GenerateIsReachable=ImplDocument.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateVisitDOMWrapper):
* bindings/scripts/IDLAttributes.txt:
* dom/DOMImplementation.idl:
2012-10-18 Chris Fleizach <cfleizach@apple.com>
AX: Crashes in WebProcess at com.apple.WebCore: -[AccessibilityObjectWrapper remoteAccessibilityParentObject] + 78
https://bugs.webkit.org/show_bug.cgi?id=96443
Reviewed by Beth Dakin.
Separate out the chain of calls so that the number of times document() is called is reduced and it will be easier
to determine which line this crash is happening on.
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]):
2012-10-18 Alec Flett <alecflett@chromium.org>
IndexedDB: Refactor IDBDatabaseBackendImpl to use IDBDatabaseMetadata
https://bugs.webkit.org/show_bug.cgi?id=99773
Reviewed by Tony Chang.
Refactor to begin separating out metadata from stateful backend objects,
in preparation for https://bugs.webkit.org/show_bug.cgi?id=99774.
Also includes some #include dependency cleanup so that the backing store
depends less on the stateful backend objects.
No new tests as this is purely a refactor.
* Modules/indexeddb/IDBBackingStore.h:
(WebCore):
(IDBBackingStore):
* Modules/indexeddb/IDBCursor.h:
* Modules/indexeddb/IDBCursorBackendImpl.h:
(WebCore):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
(WebCore::IDBDatabaseBackendImpl::openInternal):
(WebCore::IDBDatabaseBackendImpl::metadata):
(WebCore::IDBDatabaseBackendImpl::createObjectStore):
(WebCore::IDBDatabaseBackendImpl::setVersion):
(WebCore::IDBDatabaseBackendImpl::setVersionInternal):
(WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::openConnection):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
(WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
(WebCore::IDBDatabaseBackendImpl::deleteDatabase):
(WebCore::IDBDatabaseBackendImpl::loadObjectStores):
(WebCore::IDBDatabaseBackendImpl::resetVersion):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(WebCore::IDBDatabaseBackendImpl::id):
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
(WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
(WebCore::IDBLevelDBBackingStore::deleteDatabase):
* Modules/indexeddb/IDBLevelDBBackingStore.h:
(IDBLevelDBBackingStore):
* Modules/indexeddb/IDBObjectStoreBackendInterface.h:
* Modules/indexeddb/IDBTransaction.h:
(WebCore):
2012-10-18 Peter Kasting <pkasting@google.com>
[Skia] Set m_hasAlpha correctly in ImageFrame::copyBitmapData.
https://bugs.webkit.org/show_bug.cgi?id=99781
Reviewed by Adam Barth.
No tests, since the actual effects of this bug are fickle and it's not
clear how to extract and check particular subframes of an animated GIF.
* platform/image-decoders/skia/ImageDecoderSkia.cpp:
(WebCore::ImageFrame::copyBitmapData):
2012-10-18 Pan Deng <pan.deng@intel.com>
[Resource Timing]Implementation of resource timing buffer size restriction functionality
https://bugs.webkit.org/show_bug.cgi?id=84885.
Reviewed by Tony Gentilcore.
http://www.w3.org/TR/2012/CR-resource-timing-20120522/
This patch enable functionality of set buffer size(default is 150 as spec). When buffer is full, resourceTimingBufferFull event will be fired. Incoming entries will be dropped if no more space for them.
Tests: http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries.html
http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size.html
http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction.html
http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality.html
http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size.html
http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback.html
* page/Performance.cpp:
(WebCore):
(WebCore::Performance::Performance):
(WebCore::Performance::webkitSetResourceTimingBufferSize):
(WebCore::Performance::addResourceTiming):
(WebCore::Performance::isResourceTimingBufferFull):
* page/Performance.h:
(Performance):
2012-10-18 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r130411): Copying & pasting the first line of text can move caret to the end of text area
https://bugs.webkit.org/show_bug.cgi?id=99663
Reviewed by Enrica Casucci and Levi Weintraub.
The bug was caused by positionOnlyToBeUpdated's offset not being shifted correctly in
ReplaceSelectionCommand::mergeTextNodesAroundPosition. Suppose we have text nodes t1 and t2 and
positionOnlyToBeUpdated had offset k in t2. When t2 is merged into t1, positionOnlyToBeUpdated should be
moved to (t1, n + k) where n is the ORIGINAL length of t1 before t2 is merged. But we were using
the length after t2 is merged.
Fixed the bug by saving the original length of t1 and using that in the offset adjustment.
Also use the right offset.
Test: editing/pasteboard/copy-paste-first-line-in-textarea.html
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
2012-10-18 Claudio Saavedra <csaavedra@igalia.com>
[GTK] Invalid read from WebKit::DOMObjectCache::clearByFrame
https://bugs.webkit.org/show_bug.cgi?id=82882
Reviewed by Xan Lopez.
Based on a patch by Milan Crha <mcrha@redhat.com>
Prevent an invalid access to a pointer while clearing the DOM
object cache.
* bindings/gobject/DOMObjectCache.cpp:
(WebKit::DOMObjectCache::clearByFrame): Prevent an invalid access.
2012-10-18 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r131810.
http://trac.webkit.org/changeset/131810
https://bugs.webkit.org/show_bug.cgi?id=99762
Broke linux debug webkit_unit_tests (Requested by
danakj|gardening on #webkit).
* WebCore.gypi:
* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::setData):
* platform/graphics/ImageSource.h:
(WebCore):
(ImageSource):
* platform/graphics/chromium/DeferredImageDecoder.cpp: Removed.
* platform/graphics/chromium/DeferredImageDecoder.h: Removed.
* platform/graphics/chromium/ImageDecodingStore.cpp: Removed.
* platform/graphics/chromium/ImageDecodingStore.h: Removed.
* platform/graphics/chromium/ImageFrameGenerator.cpp: Removed.
* platform/graphics/chromium/ImageFrameGenerator.h: Removed.
* platform/graphics/chromium/LazyDecodingPixelRef.cpp: Removed.
* platform/graphics/chromium/LazyDecodingPixelRef.h: Removed.
* platform/graphics/chromium/ScaledImageFragment.cpp: Removed.
* platform/graphics/chromium/ScaledImageFragment.h: Removed.
* platform/graphics/skia/NativeImageSkia.cpp:
(WebCore::NativeImageSkia::resizedBitmap):
* platform/image-decoders/ImageDecoder.h:
(ImageFrame):
2012-10-18 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Do some cleanup in the chromium WebKit API
https://bugs.webkit.org/show_bug.cgi?id=99713
Reviewed by Adam Barth.
Removing the deprecated version of WebMediaStreamDescriptor::initialize.
No testing needed since only an unused function is removed.
* platform/chromium/support/WebMediaStreamDescriptor.cpp:
2012-10-18 Alpha Lam <hclam@chromium.org>
[chromium] Implement deferred image decoding
https://bugs.webkit.org/show_bug.cgi?id=94240
Reviewed by Stephen White.
Objectives:
To record image decoding operations during painting and to defer
decoding operations until rasterization.
Rationale:
This is a key feature that enables impl-side painting which requires
fast recording of drawing operations. The existing decode-on-draw
restricts that recording has to block on expensive decoding operations.
This change allows recording of image decoding operations during paint
time.
Design:
Image decoding happens when a BitmapImage is drawn into a
GraphicsContext. When per-tile painting is enabled GraphicsContext
is backed by SkCanvas in recording mode. This SkCanvas records drawing
and image decoding operations to minimize recording time.
An image decoding operation is recorded as a SkPixelRef object
implemented by LazyDecodingPixelRef. This object references raw encoded
data, regions to be decoded and scaling information.
When used in conjunction with per-tile painting this feature defers
image decoding until the SkCanvas referencing the image is rasterized.
Both recording and rasterization happen on the main thread.
Performance Impact:
This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
and does not have an impact when disabled.
This feature is disabled by default.
Upcoming Changes:
1. Implement a full-featured image cache in ImageDecodingStore.
2. Allow rasterization and decoding on impl thread.
Classes Involved:
BitmapImage
BitmapImage is the entry point for deferred image decoding. When
drawing a BitmapImage into a GraphicsContext it makes a request to
create a NativeImageSkia. We substitute the content in NativeImageSkia
such that it is lazily decoded.
DeferredImageDecoder
This is the platform implementation of a image decoder for Chromium.
This is a bridge layer that either delegates calls to the actual
ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
to ImageDecodingStore.
ImageDecodingStore
This object manages all encoded images. It keeps track of encoded
data and the corresponding ImageDecoder for doing actual decoding. It
is also responsible for generating lazily decoded SkBitmaps. This
SkBitmap contains a LazyDecodingPixelRef object which references to an
image entry in ImageDecodingStore.
ScaledImageFragment
A container for a scaled image fragment. In addition to bitmap pixels
it contains information about the ID of the image, scale and clipping.
ImageFrameGenerator
This object is responsible for generating decoded pixels. It is also
a container for encoded image data and corresponding image decoder.
LazyDecodingPixelRef
This object is embedded in a SkBitmap to enable lazy decoding. When
SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
contains information to locate an image and scaling info, these
information is submitted to ImageDecodingStore to access actual pixels.
Layout tests. There are about 80 tests in this virtual test suite
running this feature in this directory:
platform/chromium/virtual/deferred/fast/images
Unit tests. Added DeferredImageDecoderTest to verify deferred
image decoding behavior.
* WebCore.gypi:
* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::setData):
* platform/graphics/ImageSource.h:
(WebCore):
(ImageSource):
* platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
(WebCore):
(WebCore::DeferredImageDecoder::DeferredImageDecoder):
(WebCore::DeferredImageDecoder::~DeferredImageDecoder):
(WebCore::DeferredImageDecoder::create):
(WebCore::DeferredImageDecoder::createForTesting):
(WebCore::DeferredImageDecoder::filenameExtension):
(WebCore::DeferredImageDecoder::frameBufferAtIndex):
(WebCore::DeferredImageDecoder::setData):
(WebCore::DeferredImageDecoder::isSizeAvailable):
(WebCore::DeferredImageDecoder::size):
(WebCore::DeferredImageDecoder::frameSizeAtIndex):
(WebCore::DeferredImageDecoder::frameCount):
(WebCore::DeferredImageDecoder::repetitionCount):
(WebCore::DeferredImageDecoder::clearFrameBufferCache):
(WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
(WebCore::DeferredImageDecoder::frameBytesAtIndex):
* platform/graphics/chromium/DeferredImageDecoder.h: Added.
(WebCore):
(DeferredImageDecoder):
* platform/graphics/chromium/ImageDecodingStore.cpp: Added.
(WebCore::ImageDecodingStore::ImageDecodingStore):
(WebCore):
(WebCore::ImageDecodingStore::~ImageDecodingStore):
(WebCore::ImageDecodingStore::instanceOnMainThread):
(WebCore::ImageDecodingStore::initializeOnMainThread):
(WebCore::ImageDecodingStore::shutdown):
(WebCore::ImageDecodingStore::isLazyDecoded):
(WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
(WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
(WebCore::ImageDecodingStore::setData):
(WebCore::ImageDecodingStore::lockPixels):
(WebCore::ImageDecodingStore::unlockPixels):
(WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
(WebCore::ImageDecodingStore::calledOnValidThread):
(WebCore::ImageDecodingStore::lookupFrameCache):
(WebCore::ImageDecodingStore::deleteFrameCache):
* platform/graphics/chromium/ImageDecodingStore.h: Added.
(WebCore):
(ImageDecodingStore):
(WebCore::ImageDecodingStore::create):
* platform/graphics/chromium/ScaledImageFragment.cpp: Added.
(WebCore):
(WebCore::ScaledImageFragment::~ScaledImageFragment):
(WebCore::ScaledImageFragment::ScaledImageFragment):
(WebCore::ScaledImageFragment::isEqual):
* platform/graphics/chromium/ScaledImageFragment.h: Added.
(WebCore):
(ScaledImageFragment):
(WebCore::ScaledImageFragment::create):
(WebCore::ScaledImageFragment::bitmap):
(WebCore::ScaledImageFragment::isComplete):
* platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
(WebCore):
(WebCore::ImageFrameGenerator::ImageFrameGenerator):
(WebCore::ImageFrameGenerator::~ImageFrameGenerator):
(WebCore::ImageFrameGenerator::decoder):
(WebCore::ImageFrameGenerator::setData):
* platform/graphics/chromium/ImageFrameGenerator.h: Added.
(WebCore):
(ImageFrameGenerator):
(WebCore::ImageFrameGenerator::create):
(WebCore::ImageFrameGenerator::size):
(WebCore::ImageFrameGenerator::imageId):
* platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
(WebCore):
(WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
(WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
(WebCore::LazyDecodingPixelRef::isScaled):
(WebCore::LazyDecodingPixelRef::isClipped):
(WebCore::LazyDecodingPixelRef::onLockPixels):
(WebCore::LazyDecodingPixelRef::onUnlockPixels):
(WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
* platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
(WebCore):
(LazyDecodingPixelRef):
(WebCore::LazyDecodingPixelRef::frameGenerator):
* platform/graphics/skia/NativeImageSkia.cpp:
(WebCore::NativeImageSkia::resizedBitmap):
* platform/image-decoders/ImageDecoder.h:
(ImageFrame):
(WebCore::ImageFrame::setSkBitmap):
(WebCore::ImageFrame::getSkBitmap):
2012-10-18 Yael Aharon <yael.aharon@intel.com>
[EFL] GraphicsContext3D::m_renderStyle is not initialized
https://bugs.webkit.org/show_bug.cgi?id=99721
Reviewed by Antonio Gomes.
Initialize GraphicsContext3D::m_renderStyle.
No new tests, no new functionality.
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
2012-10-18 Max Vujovic <mvujovic@adobe.com>
[CSS Shaders] Validate types of built-in vertex attributes
https://bugs.webkit.org/show_bug.cgi?id=98972
Reviewed by Dean Jackson.
Reject custom filters in which the author defined built-in attributes with the wrong type.
For example, the GLSL declaration "attribute float a_position" is incorrect because
a_position should be a vec4, not a float.
Test: css3/filters/custom/invalid-custom-filter-attribute-types.html
* platform/graphics/ANGLEWebKitBridge.h:
(WebCore::ANGLEShaderSymbol::isSampler):
Add const qualifier to isSampler method.
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore):
(WebCore::builtInAttributeNameToTypeMap):
New file static function. Returns a map of the CSS Custom Filters built-in attribute
names and their expected types.
(WebCore::validateSymbols):
New file static function. Loop through all of the symbols. Reject the shader if we find
a built-in attribute defined with the wrong type.
(WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
Call the new validateSymbols function. If it returns false, exit the constructor early,
which rejects the program.
Move the loop that checks if any uniform is a sampler into the the validateSymbols
function.
2012-10-18 Mike Reed <reed@google.com>
Handle if we fail to allocate nonPlatformCanvas in ImageBuffer constructor
https://bugs.webkit.org/show_bug.cgi?id=99752
Reviewed by Stephen White.
Current code does not check if we were able to allocate the pixels, but still returns the canvas.
However, the caller explicitly is checking for null on failure, so it will continue (and possibly
crash later on).
This change brings the nonPlatformCanvas behavior inline with createAcceleratedCanvas and
TryCreateBitmapCanvas, both of which are also called by ImageBuffer's constructor.
No new tests. Existing tests exercise ImageBuffer constructor.
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::createNonPlatformCanvas):
2012-10-18 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=99668
REGRESSION: Crash in
WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion
-and corresponding-
<rdar://problem/12491901>
Reviewed by Simon Fraser.
http://trac.webkit.org/changeset/130783 changed the lifetime of the
ScrollingStateTree's rootStateNode. Before that patch, the root state
node was never destroyed. It was just constantly re-used for
different RenderLayerBackings. This crash is just one of a few bugs
that has occurred because of that change. I have fixed the other bugs
individually, but I think that long-term, it is the safest solution
to go back to the original ownership model.
So this patch ensures that the state tree will always have a root
state node. Instead of destroying and re-creating the root node when
it's scroll ID changes, we just update the ID.
attachToStateTree() now takes an additional ID representing the ID of
the parent node.
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::attachToStateTree):
Add a way to set the scrolling node ID.
* page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::setScrollingNodeID):
This code that provided a way to mark all properties as having
changed was added in http://trac.webkit.org/changeset/130989 as a way
to ensure we would re-set ScrollingThread's nodes when we destroyed
and re-created the rootStateNode. Now that we are no longer
destroying and re-creating the rootStateNode, this code is no longer
necessary.
* page/scrolling/ScrollingStateScrollingNode.cpp:
* page/scrolling/ScrollingStateScrollingNode.h:
create m_rootStateNode right in the ScrollingStateTree's constructor.
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::ScrollingStateTree):
Don't let removeNode() destroy m_rootStateNode.
(WebCore::ScrollingStateTree::removeNode):
Also a part of r130989 that is no longer needed.
(WebCore::ScrollingStateTree::rootLayerDidChange():
* page/scrolling/ScrollingStateTree.h:
(WebCore::ScrollingStateTree::rootStateNode):
(ScrollingStateTree):
(WebCore::ScrollingStateTree::setRootStateNode):
attachToStateTree() now takes an additional ID representing the ID of
the parent node.
* page/scrolling/mac/ScrollingCoordinatorMac.h:
(ScrollingCoordinatorMac):
We no longer need ScrollingStateTree::rootLayerDidChange()
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
Do not destroy and re-create the state node. Just update its ID. When
we support child nodes soon, we will create them in this function.
(WebCore::ScrollingCoordinatorMac::attachToStateTree):
No need to null-check the rootStateNode.
(WebCore::ScrollingCoordinatorMac::clearStateTree):
Send 0 as the parent node ID to attachToStateTree() to represent the
root node.
(WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
* rendering/RenderLayerBacking.cpp:
RenderLayerBacking::attachToScrollingCoordinator() now takes a parent
layer.
(WebCore::RenderLayerBacking::attachToScrollingCoordinator):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
Since this is the root, send 0 to represent the parent layer.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBacking):
2012-10-18 Yael Aharon <yael.aharon@intel.com>
[EFL] GraphicsContext3D::m_renderStyle is not initialized
https://bugs.webkit.org/show_bug.cgi?id=99721
Reviewed by Antonio Gomes.
Initialize GraphicsContext3D::m_renderStyle.
No new tests, no new functionality.
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
2012-10-18 Brian White <bcwhite@chromium.org>
WebKit Doesn't Recognize Content-Language HTTP Header
https://bugs.webkit.org/show_bug.cgi?id=97929
Reviewed by Alexey Proskuryakov.
The HTTP "Content-Language" header may be present and include the
language of the page contents (as opposed to an embedded meta tag).
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didBeginDocument):
2012-10-18 Jer Noble <jer.noble@apple.com>
Crash in WebCore::Document::webkitExitFullscreen + 618
https://bugs.webkit.org/show_bug.cgi?id=99496
Reviewed by Eric Carlson.
Prospective fix for null-dereference crash in Document::webkitExitFullscreen().
* dom/Document.cpp:
(WebCore::Document::webkitExitFullscreen): Null check page() before calling page()->chrome.
2012-10-18 Pablo Flouret <pablof@motorola.com>
Implement css3-conditional's @supports rule
https://bugs.webkit.org/show_bug.cgi?id=86146
Reviewed by Antti Koivisto.
The "@supports" rule is a conditional group rule whose condition tests
whether the user agent supports CSS property:value pairs.
http://dev.w3.org/csswg/css3-conditional/#at-supports
Test: css3/supports.html
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
* GNUmakefile.features.am:
Add an ENABLE_CSS3_CONDITIONAL_RULES flag.
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore):
(WebCore::CSSParser::detectSupportsToken): Tries to find 'and', 'not' and 'or' tokens.
(WebCore::CSSParser::detectAtToken): Enter SupportsMode if @supports is detected.
(WebCore::CSSParser::realLex): Try to detect supports tokens when in SupportsMode.
* css/CSSParser.h: Added new SupportsMode parsing mode.
(CSSParser):
2012-10-18 Marja Hölttä <marja@chromium.org>
Fix: CachedResourceLoader::requestSVGDocument was passing an URL as charset
https://bugs.webkit.org/show_bug.cgi?id=99730
Reviewed by Jochen Eisinger.
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestSVGDocument):
2012-10-18 Jer Noble <jer.noble@apple.com>
Fullscreen movie controls behave incorrectly when clicked (and dragged)
https://bugs.webkit.org/show_bug.cgi?id=99610
Reviewed by Eric Carlson.
Do not reset the relative drag position to 0,0 at the beginning of every drag. Instead,
store the cumulative drag offset and accumulate during each additional drag.
No new tests; modified the fullscreen/video-controls-drag.html test.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlPanelElement::startDrag): Reset m_lastDragEventLocation.
(WebCore::MediaControlPanelElement::continueDrag): Accumulate drag distance in m_cumulativeDragOffset.
(WebCore::MediaControlPanelElement::resetPosition): Reset m_cumulativeDragOffset.
* html/shadow/MediaControlElements.h:
2012-10-18 Brandon Jones <bajones@google.com>
Implement OES_element_index_uint / WEBKIT_OES_element_index_uint
https://bugs.webkit.org/show_bug.cgi?id=97400
Reviewed by Kenneth Russell.
Implemented OES_element_index_uint WebGL extension
Test: fast/canvas/webgl/oes-element-index-uint.html
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::toJS):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toV8Object):
* html/canvas/OESElementIndexUint.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
(WebCore):
(WebCore::OESElementIndexUint::OESElementIndexUint):
(WebCore::OESElementIndexUint::~OESElementIndexUint):
(WebCore::OESElementIndexUint::getName):
(WebCore::OESElementIndexUint::create):
* html/canvas/OESElementIndexUint.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
(WebCore):
(OESElementIndexUint):
* html/canvas/OESElementIndexUint.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
* html/canvas/WebGLExtension.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::validateElementArraySize):
(WebCore::WebGLRenderingContext::validateIndexArrayConservative):
(WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
(WebCore::WebGLRenderingContext::validateRenderingState):
(WebCore::WebGLRenderingContext::drawElements):
(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getSupportedExtensions):
* html/canvas/WebGLRenderingContext.h:
(WebCore):
(WebGLRenderingContext):
* platform/graphics/Extensions3D.h:
(Extensions3D):
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::supportsExtension):
2012-10-18 Jer Noble <jer.noble@apple.com>
Add diagnostic logging to track per-page media engine usage.
https://bugs.webkit.org/show_bug.cgi?id=99615
<rdar://problem/12476473>
Reviewed by Eric Carlson.
Add diagnostic logging triggered only once-per-page and once-per-page-per-engine.
* html/HTMLMediaElement.cpp:
(WebCore::logMediaLoadRequest): Encapsulate diagnostic logging into single static method.
(WebCore::HTMLMediaElement::mediaLoadingFailed): Call logMediaLoadRequest.
(WebCore::HTMLMediaElement::setReadyState): Ditto.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::dispatchDidCommitLoad): Reset the set of seen media engines.
Add new methods to Page to track per-page media engine diagnostic info, similar to plugin diagnostic info.
* page/Page.cpp:
(WebCore::Page::hasSeenAnyMediaEngine):
(WebCore::Page::hasSeenMediaEngine):
(WebCore::Page::sawMediaEngine):
(WebCore::Page::resetSeenMediaEngines):
* page/Page.h:
Add new static logging key definitions:
* page/DiagnosticLoggingKeys.cpp:
(WebCore::DiagnosticLoggingKeys::pageContainsMediaEngineKey):
(WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOneMediaEngineKey):
* page/DiagnosticLoggingKeys.h:
2012-10-18 Michael Saboff <msaboff@apple.com>
Add 8-bit path to RenderBlock::handleTrailingSpaces()
https://bugs.webkit.org/show_bug.cgi?id=99731
Reviewed by Dan Bernstein.
Factored out and added findFirstTrailingSpace() templated helper function that is called with the
approriate character pointer type.
No tests needed, change covered by existing tests.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::findFirstTrailingSpace):
(WebCore::RenderBlock::handleTrailingSpaces):
2012-10-18 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Add ExclusionShape::shapeBoundingBox() method
https://bugs.webkit.org/show_bug.cgi?id=99216
Reviewed by Dirk Schulze.
Added a FloatRect::extend() method which simplifies writing loops that
accumulate the bounding box for a sequence of FloatPoints. The new method
is used by ExclusionPolygon to initialize the shape's logical and physical
bounding boxes. This a clean-up, not a change in functionality. It's already
covered by the existing fast/exclusions LayoutTests.
* platform/graphics/FloatRect.cpp:
(WebCore::FloatRect::extend): Extend the FloatRect's bounds to include a FloatPoint.
(WebCore):
* platform/graphics/FloatRect.h:
(FloatRect): Added extend() method.
* rendering/ExclusionPolygon.cpp:
(WebCore::ExclusionPolygon::ExclusionPolygon): Use FloatRect::extend() to compute the polygon's internal bounding box.
* rendering/ExclusionShape.cpp:
(WebCore::ExclusionShape::createExclusionShape): Use FloatRect::extend() to compute the polygon's physical bounding box.
* rendering/ExclusionShape.h:
(WebCore::ExclusionShape::shapeBoundingBox): Return the shape's bounding box in physical coordinates.
(ExclusionShape):
2012-10-18 Hans Muller <hmuller@adobe.com>
[CSS Exclusions] Handle special case "empty" shapes
https://bugs.webkit.org/show_bug.cgi?id=99342
Reviewed by Dirk Schulze.
Provide expclit coverage of the simple "empty" shape-inside shapes.
Shapes will be considered "empty" in the sense that ExclusionShape::getIncludedIntervals()
and ExclusionShape::getExcludedIntervals() will always return empty lists of intervals.
This patch covers rectangles of zero width or height, circles with 0 radius, ellipses
with 0 radiusX or radiusY, polygons with less than 3 vertices.
Test: fast/exclusions/shape-inside/shape-inside-empty.html
* rendering/ExclusionPolygon.cpp:
(WebCore::ExclusionPolygon::ExclusionPolygon): Initialize the m_empty flag.
(WebCore::ExclusionPolygon::getExcludedIntervals): Added short-circuit return when the polygon is empty.
(WebCore::ExclusionPolygon::getIncludedIntervals): Added short-circuit return when the polygon is empty.
* rendering/ExclusionPolygon.h: Added the isEmpty() method.
* rendering/ExclusionRectangle.cpp:
(WebCore::ExclusionRectangle::getExcludedIntervals): Added short-circuit return when the rectangle is empty.
(WebCore::ExclusionRectangle::getIncludedIntervals): Added short-circuit return when the rectangle is empty.
* rendering/ExclusionRectangle.h: Added the isEmpty() method.
* rendering/ExclusionShape.h: Added a virtual isEmpty() ExclusionShape method.
(ExclusionShape):
2012-10-18 Takashi Sakamoto <tasak@google.com>
REGRESSION(r131464): Null-pointer crash in StyleResolver::styleForElement
https://bugs.webkit.org/show_bug.cgi?id=99587
Reviewed by Dimitri Glazkov.
Since contents in datalist are not shown, summary in datalist is not
shown either. So the summary has no render style. On the other hand,
the summary is implemented by shadow DOM and it has some insertion
point. Its child, e.g. title in the below test, is distributed.
To solve the child's user-modify, looking at shadow host(=summary)'s
style causes null-pointer crash.
Test: fast/dom/shadow/user-modify-in-datalist-crash.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::styleForElement):
Added a code to check whether the shadow host has any style or not.
2012-10-17 Philippe Normand <pnormand@igalia.com>
[GTK] AudioBusGtk sometimes fails to load the HRTF database
https://bugs.webkit.org/show_bug.cgi?id=99601
Reviewed by Martin Robinson.
AudioBusGtk now first lookup for the uninstalled resource files,
if the AUDIO_RESOURCES_PATH environment variable is
set. Additionally the audio file reader is now better dealing with
errors, returning an empty AudioBus in such cases and issuing
warnings on the console output. The cleanup of some member
variables was also moved to the destructor.
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(AudioFileReader):
(WebCore::AudioFileReader::AudioFileReader):
(WebCore::AudioFileReader::~AudioFileReader): Clear and free
member variables. This was done in createBus before.
(WebCore::AudioFileReader::handleMessage): Issue warnings in case
of error and exit from the main loop so the pipeline is not
forever stuck.
(WebCore::AudioFileReader::createBus): Return an empty bus in case
of error.
* platform/audio/gtk/AudioBusGtk.cpp:
(WebCore::AudioBus::loadPlatformResource): Load uninstalled
resources first if AUDIO_RESOURCES_PATH is set.
2012-10-18 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: provisional change for merging "doced" state into the "dock side" enum.
https://bugs.webkit.org/show_bug.cgi?id=99718
Reviewed by Vsevolod Vlasov.
Adds stub method that could be executed from the embedder.
* inspector/front-end/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setDockSide):
2012-10-18 Kent Tamura <tkent@chromium.org>
Add Localizer::monthFormat and implementations
https://bugs.webkit.org/show_bug.cgi?id=99704
Reviewed by Kentaro Hara.
Localizer::monthFormat will be used for constructing input[type=month] UI.
Tests: Add unit tests to Source/WebKit/chromium/tests/.
* platform/text/Localizer.h:
(Localizer): Declare pure virtual monthFormat function.
* platform/text/LocaleNone.cpp:
(LocaleNone): Declare monthFormat.
(WebCore::LocaleNone::monthFormat):
Added. Always reutrns an ISO-8601 format, "yyyy-MM"
* platform/text/LocaleICU.h:
(LocaleICU): Declare monthFormat.
* platform/text/LocaleICU.cpp:
(WebCore::getFormatForSkeleton):
A helper to get a format for the specified skeleton.
The overflow-allocalte-try-again pattern is similar to
LocaleICU::decimalSymbol and LocaleICU::decimalTextAttribute.
(WebCore::LocaleICU::monthFormat):
Added. Calls getFormatForSkeleton with "yyyyMMM".
* platform/text/mac/LocaleMac.h:
(LocaleMac): Declare monthFormat.
* platform/text/mac/LocaleMac.mm:
(WebCore::LocaleMac::monthFormat):
Added. Calls NSDateFormatter::dateFormatFromTemplate with "yyyyMMM".
* platform/text/LocaleWin.h:
(LocaleWin): Declare monthFormat.
* platform/text/LocaleWin.cpp:
(WebCore::LocaleWin::monthFormat):
Get a format by LOCALE_SYEARMONTH, and convert it to an LDML format.
2012-10-18 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: add X-WebKit-CSP header into inspector.html
https://bugs.webkit.org/show_bug.cgi?id=99710
Reviewed by Vsevolod Vlasov.
A simple sanity measure.
* inspector/front-end/inspector.html:
2012-10-18 Huang Dongsung <luxtella@company100.net>
[WK2] Add CustomFilterOperation serialization in ArgumentCoder.
https://bugs.webkit.org/show_bug.cgi?id=98733
Reviewed by Noam Rosenthal.
Change CustomFilterOperation::parameters() to const function, because
this method is a getter and a const instance needs to call this method.
No new tests because there is no change in behavior.
* platform/graphics/filters/CustomFilterOperation.h:
(WebCore::CustomFilterOperation::parameters):
2012-10-18 Hayato Ito <hayato@chromium.org>
treeScopeOfParent doesn't return the TreeScope of the parent
https://bugs.webkit.org/show_bug.cgi?id=98207
Reviewed by Hajime Morita.
A minor clean up. Remove treeScopeOfParent() in Element.cpp.
No tests needed, this is just a clean up.
* dom/Element.cpp:
(WebCore::Element::removedFrom):
2012-10-18 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Styles] Forcibly invoke property names suggestion box for empty prefix
https://bugs.webkit.org/show_bug.cgi?id=99711
Reviewed by Vsevolod Vlasov.
Suggestions should be returned unconditionally for CSS property names, regardless of the prefix.
* inspector/front-end/CSSCompletions.js:
(WebInspector.CSSCompletions):
(WebInspector.CSSCompletions.requestCSSNameCompletions):
(WebInspector.CSSCompletions.prototype._firstIndexOfPrefix):
* inspector/front-end/CSSKeywordCompletions.js:
(WebInspector.CSSKeywordCompletions.forProperty):
2012-10-18 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Unreviewed, do not make UseV8.cmake executable.
* UseV8.cmake: Removed property svn:executable.
2012-10-18 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Add better RTCPeerConnectionHandler creation logic
https://bugs.webkit.org/show_bug.cgi?id=99308
Reviewed by Adam Barth.
This patch makes sure that if the RTCPeerConnectionHandler can't be fully initialized/created
the RTCPeerConnection constructor throws an exception.
Not full testable, existing tests cover the normal case though.
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandler::create):
(WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
(WebCore::RTCPeerConnectionHandlerChromium::createWebHandler):
(WebCore::RTCPeerConnectionHandlerChromium::initialize):
(WebCore::RTCPeerConnectionHandlerChromium::createOffer):
(WebCore::RTCPeerConnectionHandlerChromium::createAnswer):
(WebCore::RTCPeerConnectionHandlerChromium::setLocalDescription):
(WebCore::RTCPeerConnectionHandlerChromium::setRemoteDescription):
(WebCore::RTCPeerConnectionHandlerChromium::updateIce):
(WebCore::RTCPeerConnectionHandlerChromium::addIceCandidate):
(WebCore::RTCPeerConnectionHandlerChromium::localDescription):
(WebCore::RTCPeerConnectionHandlerChromium::remoteDescription):
(WebCore::RTCPeerConnectionHandlerChromium::addStream):
(WebCore::RTCPeerConnectionHandlerChromium::removeStream):
(WebCore::RTCPeerConnectionHandlerChromium::getStats):
(WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
(WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
(WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
(WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
(WebCore::RTCPeerConnectionHandlerChromium::stop):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
(RTCPeerConnectionHandlerChromium):
2012-10-19 Zeno Albisser <zeno@webkit.org>
Temporarily disable use of QCocoaNativeInterface in GraphicsSurfaceMac.
https://bugs.webkit.org/show_bug.cgi?id=99320
The current version of Qt5 deployed on the buildbots does not yet have
an implementation for QCocoaNativeInterface::nativeResourceForContext().
Therefore we disable this code path until Qt5/qtbase has been updated to
a revision above Change-Id: Id00efc88a73d7df04a68c022f19d9d1c4f6d386b.
Once Qt5 has been updated, this patch must be reverted.
Reviewed by Noam Rosenthal.
* platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
2012-10-18 Zeno Albisser <zeno@webkit.org>
GraphicsSurface should not modify the current GL context.
https://bugs.webkit.org/show_bug.cgi?id=99320
Instead of reusing the currently bound GL context for drawing
the texture onto the GraphicsSurface, GraphicsSurface should
create a new context that shares the texture names with a context
provided by the caller.
This way the OpenGL states are clearly separated and we do not
risk interfeering with the currently bound GL context.
Reviewed by Noam Rosenthal.
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
When creating a GraphicsSurface pass the platform GL context
as a parameter, so it can be used for sharing textures with.
(WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
Pass the texture instead of the FBO. A Texture can be drawn
directly or bound to another FBO, where a framebuffer
always needs to be blit onto the surface.
(WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
Pass the platform GL context as a parameter.
* platform/graphics/surfaces/GraphicsSurface.cpp:
(WebCore::GraphicsSurface::create):
(WebCore::GraphicsSurface::copyFromTexture):
* platform/graphics/surfaces/GraphicsSurface.h:
(GraphicsSurface):
* platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
Create a new GL context that shares the textures with the
context provided by the caller.
(WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::makeCurrent):
Add a convenience function to make the context that
belongs to the surface current.
(GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::doneCurrent):
Add a convenience function to make the previously
bound context current again.
(WebCore::GraphicsSurfacePrivate::copyFromTexture):
Move blitting of the texture onto the surface
into a separate function within GraphicsSurfacePrivate.
(WebCore::GraphicsSurface::platformCopyFromTexture):
Rename function platformCopyFromFramebuffer to
platformCopyFromTexture, as we are now passing the texture only.
(WebCore::GraphicsSurface::platformCreate):
* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore):
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::makeCurrent):
Add a convenience function to make the context that
belongs to the surface current.
(GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::doneCurrent):
Add a convenience function to make the previously
(WebCore::GraphicsSurfacePrivate::copyFromTexture):
Move blitting of the texture onto the surface
into a separate function within GraphicsSurfacePrivate.
(WebCore::resolveGLMethods):
Resolve additional GL methods necessary for this change.
(WebCore::GraphicsSurface::platformCopyFromTexture):
Rename function platformCopyFromFramebuffer to
platformCopyFromTexture, as we are now passing the texture only.
(WebCore::GraphicsSurface::platformCreate):
2012-10-18 Kent Tamura <tkent@chromium.org>
Set min-width property instead of width property for date/time fields
https://bugs.webkit.org/show_bug.cgi?id=99673
Reviewed by Hajime Morita.
A field can have a text wider than pre-computed width because of
:first-letter property. So, we should set min-width, not width.
Tests: Covered by fast/forms/*-multiple-fields/*-multipe-fields-appearance-style.html
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
Set min-width instead of width.
* html/shadow/DateTimeSymbolicFieldElement.cpp:
(WebCore::DateTimeSymbolicFieldElement::customStyleForRenderer): Ditto.
2012-10-18 MORITA Hajime <morrita@google.com>
Assertion failure at TreeScopeAdopter::moveNodeToNewDocument()
https://bugs.webkit.org/show_bug.cgi?id=99510
Reviewed by Kent Tamura.
Shadow DOM notification call didn't have checks for mutation detection.
This change adds such checks.
Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing-with-style.html
* dom/ContainerNodeAlgorithms.cpp:
(WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
(WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
2012-10-17 Kentaro Hara <haraken@chromium.org>
Unreviewed. Rebaselined run-bindings-tests.
* bindings/scripts/test/V8/V8Float64Array.h:
(V8Float64Array):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(V8TestActiveDOMObject):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(V8TestCustomNamedGetter):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(V8TestEventConstructor):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(V8TestEventTarget):
* bindings/scripts/test/V8/V8TestException.h:
(V8TestException):
* bindings/scripts/test/V8/V8TestInterface.h:
(V8TestInterface):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(V8TestMediaQueryListListener):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(V8TestNamedConstructor):
* bindings/scripts/test/V8/V8TestNode.h:
(V8TestNode):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(V8TestSerializedScriptValueInterface):
2012-10-17 Mike West <mkwst@chromium.org>
Move mixed content logic out of FrameLoader
https://bugs.webkit.org/show_bug.cgi?id=45638
Reviewed by Eric Seidel.
This change moves checks for mixed content out of FrameLoader, and into
a new MixedContentChecker object. It's a pretty straightforward
refactoring with no change to the overall logic, and only minor changes
to the code to reduce repetition.
The only substantive change is renaming the methods from 'checkIf*' to
'can*' to reflect the value of the boolean they return.
The visible functionality shouldn't change; this change should be
covered by existing tests in http/tests/security/mixedContent.
This patch is mostly a revitalization of Eric Sidel's original
patch: https://bugs.webkit.org/attachment.cgi?id=67432&action=prettypatch
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Hey, look! A new file!
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
* loader/FrameLoader.h:
(WebCore::FrameLoader::mixedContentChecker):
(FrameLoader):
* loader/MixedContentChecker.cpp: Added.
(WebCore):
(WebCore::MixedContentChecker::MixedContentChecker):
(WebCore::MixedContentChecker::client):
(WebCore::asUTF8):
(WebCore::MixedContentChecker::isMixedContent):
(WebCore::MixedContentChecker::canDisplayInsecureContent):
(WebCore::MixedContentChecker::canRunInsecureContent):
(WebCore::MixedContentChecker::logWarning):
* loader/MixedContentChecker.h: Added.
(WebCore):
(MixedContentChecker):
Migrate functionality from FrameLoader::checkIf* to
MixedContentChecker::can*.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::willSendRequest):
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::pluginIsLoadable):
(WebCore::SubframeLoader::loadMediaPlayerProxyPlugin):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::checkInsecureContent):
Use the new method locations.
2012-10-17 Dan Bernstein <mitz@apple.com>
REGRESSION (r95391): ComplexTextController is unnecessarily slow with characters with combining marks when the base character is not covered by any font
https://bugs.webkit.org/show_bug.cgi?id=99654
Reviewed by Adele Peterson.
When the base character of a combining character sequence is not covered by any one of the
available fonts, there is no point looking for a font that covers the entire sequence, nor
to try to use a combination of fallback fonts for the entire sequence.
* platform/graphics/SimpleFontData.h:
(WebCore::SimpleFontData::systemFallback): Moved ComplexTextController::systemFallbackFontData
here and renamed it.
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::collectComplexTextRuns): This function used to use
systemFallbackFontData() whenever Font::fontDataForCombiningCharacterSequence returned 0
for a base character with combining marks, regardless of whether the base character was
covered by any font. Changed it to preserve the return value of
fontDataForCombiningCharacterSequence, which is now 0 only if the base charcater is not in
any font, while systemFallbackFontData() is used to indicate that no single font in the
fallback list covers all characters in the sequence, but the base character is in some font.
* platform/graphics/mac/ComplexTextController.h:
(ComplexTextController): Moved systemFallbackFontData from here to SimpleFontData.
* platform/graphics/mac/ComplexTextControllerCoreText.mm:
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Updated for the above
move.
* platform/graphics/mac/FontComplexTextMac.cpp:
(WebCore::Font::fontDataForCombiningCharacterSequence): Changed to return
systemFallbackFontData() if no single font in the fallback list covers all characters in the
sequence, while using 0 to signal the base character does not exist in any font.
2012-10-17 Dan Bernstein <mitz@apple.com>
Try to fix the build after r131701.
* WebCore.exp.in:
2012-10-17 Hayato Ito <hayato@chromium.org>
Content element does not expose distributedNodes property.
https://bugs.webkit.org/show_bug.cgi?id=99232
Reviewed by Dimitri Glazkov.
Add getDistributedNodes() to HTMLContentElement's IDL, which returns a
static NodeList whose node are distributed to the content element.
Test: fast/dom/shadow/content-element-distributed-nodes.html
* html/shadow/HTMLContentElement.idl:
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::getDistributedNodes):
* html/shadow/InsertionPoint.h:
(InsertionPoint):
* testing/Internals.cpp:
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
2012-10-17 Pan Deng <pan.deng@intel.com>
[User Timing] implement main interface in of User Timing, according to http://www.w3.org/TR/2012/CR-user-timing-20120726/
https://bugs.webkit.org/show_bug.cgi?id=90963
Reviewed by Tony Gentilcore.
This patch implemented mark(), measure(), clearMarks() and clearMeasures() interface of User Timing. Getters are not exposed by Performance Timeline yet, it will be future patch.
Tests: http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMarks.html
http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMeasures.html
http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark.html
http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark_exception.html
http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure.html
http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_associate_with_navigation_timing.html
http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_exception.html
http/tests/w3c/webperf/submission/user-timing/test_user_timing_method_exist.html
* GNUmakefile.list.am:
* WebCore.gypi:
* page/Performance.cpp:
(WebCore::Performance::webkitGetEntries):
(WebCore::Performance::webkitGetEntriesByType):
(WebCore::Performance::webkitGetEntriesByName):
(WebCore):
(WebCore::Performance::webkitMark):
(WebCore::Performance::webkitClearMarks):
(WebCore::Performance::webkitMeasure):
(WebCore::Performance::webkitClearMeasures):
* page/Performance.h:
(WebCore):
(Performance):
* page/Performance.idl:
* page/PerformanceMark.h: Added.
(WebCore):
(PerformanceMark):
(WebCore::PerformanceMark::create):
(WebCore::PerformanceMark::PerformanceMark):
(WebCore::PerformanceMark::~PerformanceMark):
* page/PerformanceMark.idl: Added.
* page/PerformanceMeasure.h: Added.
(WebCore):
(PerformanceMeasure):
(WebCore::PerformanceMeasure::create):
(WebCore::PerformanceMeasure::PerformanceMeasure):
(WebCore::PerformanceMeasure::~PerformanceMeasure):
* page/PerformanceMeasure.idl: Added.
* page/PerformanceUserTiming.cpp: Added.
(WebCore):
(WebCore::UserTiming::UserTiming):
(WebCore::insertPerformanceEntry):
(WebCore::clearPeformanceEntries):
(WebCore::UserTiming::mark):
(WebCore::UserTiming::clearMarks):
(WebCore::UserTiming::findExistingMarkStartTime):
(WebCore::UserTiming::measure):
(WebCore::UserTiming::clearMeasures):
* page/PerformanceUserTiming.h: Added.
(WebCore):
(UserTiming):
(WebCore::UserTiming::create):
2012-10-17 James Robinson <jamesr@chromium.org>
Unreviewed clang compile fix - GraphicsLayerUpdater needs a virtual destructor.
* platform/graphics/GraphicsLayerUpdater.h:
(GraphicsLayerUpdater):
2012-10-17 Ryuan Choi <ryuan.choi@samsung.com>
Attempt to fix the build after r131680.
Unreviewed build fix.
* dom/Document.cpp: Guard ACCELERATED_COMPOSITING for RenderLayerCompositor.h
2012-10-17 Elliott Sprehn <esprehn@chromium.org>
StyleRareNonInheritedData::contentDataEquivalent only looks at the first ContentData
https://bugs.webkit.org/show_bug.cgi?id=99560
Reviewed by Eric Seidel.
Previously we only compared the first ContentData in the linked
list of ContentData's which meant that if the resolved style
for content had the same prefix we wouldn't update the content.
This patch adds a loop to compare each of the ContentData objects
in the linked list.
Test: fast/css-generated-content/content-property-change.html
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::contentDataEquivalent):
2012-10-17 Elliott Sprehn <esprehn@chromium.org>
Remove StyleContentType since it's not used anymore
https://bugs.webkit.org/show_bug.cgi?id=99659
Reviewed by Eric Seidel.
Remove StyleContentType enum since it's not used anymore and
make the is*() type checking methods on ContentData public.
No new tests needed, this is just deleting dead code.
* rendering/style/ContentData.h:
(ContentData):
* rendering/style/RenderStyleConstants.h:
2012-10-17 Simon Fraser <simon.fraser@apple.com>
Create a GraphicsLayerUpdater class that will do periodic layer flushes for layer trees containing tile caches
https://bugs.webkit.org/show_bug.cgi?id=99518
Reviewed by Dean Jackson.
When using tile caches in place of tiled layers, we need to recompute their
visible area periodically while animations and scrolling are happening.
Make a new class, GraphicsLayerUpdater, to handle this updating.
Internally, it uses DisplayRefreshMonitor to generate the periodic updates.
GraphicsLayer clients are notified that layers need periodic updates. Clients
are free to make use of GraphicsLayerUpdater to handle this updating, as
RenderLayerCompositor does.
Also do some minor refactoring of methods in RenderLayerCompositor that
get to Page.
* CMakeLists.txt: Add GraphicsLayerUpdater.cpp to the build.
* GNUmakefile.list.am: Ditto.
* PlatformBlackBerry.cmake: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* dom/Document.cpp:
(WebCore::Document::windowScreenDidChange): Tell the compositor that the screen
changed, so it can tell the GraphicsLayerUpdater if it has one.
* platform/graphics/GraphicsLayerClient.h:
(WebCore::GraphicsLayerClient::notifyFlushBeforeDisplayRefresh): Method called
for layers that need periodic updates, like tile cache layers.
* platform/graphics/GraphicsLayerUpdater.cpp: Added. Uses DisplayRefreshMonitorManager
to flush layers before the next refresh.
(WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
(WebCore::GraphicsLayerUpdater::~GraphicsLayerUpdater):
(WebCore::GraphicsLayerUpdater::scheduleUpdate):
(WebCore::GraphicsLayerUpdater::screenDidChange):
(WebCore::GraphicsLayerUpdater::displayRefreshFired):
* platform/graphics/GraphicsLayerUpdater.h: Added.
(GraphicsLayerUpdaterClient): Clients need to implement flushLayers().
(WebCore::GraphicsLayerUpdaterClient::~GraphicsLayerUpdaterClient):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::recursiveCommitChanges): For tile cache layers,
tell the client that this layer should be updated soon to update the visible rect.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::notifyFlushBeforeDisplayRefresh): Pass this message
on to the compositor.
* rendering/RenderLayerBacking.h:
(RenderLayerBacking): Implement notifyFlushBeforeDisplayRefresh.
Add OVERRIDE to all the client overrides.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags): Use helper to get to Page.
(WebCore::RenderLayerCompositor::scheduleLayerFlush): Ditto.
(WebCore::RenderLayerCompositor::flushPendingLayerChanges): Soon we're going to be asking
about the current state of animations inside the flush (for visible rect computation), so we
need a AnimationUpdateBlock to make sure all the animation times are in sync.
(WebCore::RenderLayerCompositor::notifyFlushBeforeDisplayRefresh): Make a GraphicsLayerUpdater
if necessary, and tell it to update soon.
(WebCore::RenderLayerCompositor::flushLayers): The GraphicsLayerUpdater client method.
Just does a flush. For now, considers this Frame as the flush root, which will need fixing for iframes.
(WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame): Use helper to get to Page.
(WebCore::RenderLayerCompositor::deviceScaleFactor): Ditto.
(WebCore::RenderLayerCompositor::pageScaleFactor): Ditto.
(WebCore::RenderLayerCompositor::destroyRootLayer): Ditto.
(WebCore::RenderLayerCompositor::windowScreenDidChange): Tell the updater if we have one.
(WebCore::RenderLayerCompositor::scrollingCoordinator): Use helper to get to Page.
(WebCore::RenderLayerCompositor::graphicsLayerFactory): Use helper to get to Page.
(WebCore::RenderLayerCompositor::page): The helper.
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor): Add OVERRIDE to all the client overrides.
2012-10-17 Eric Seidel <eric@webkit.org>
Make dom-query.html slightly faster by removing unnecessary ref-churn in StringTraits
https://bugs.webkit.org/show_bug.cgi?id=99652
Reviewed by Adam Barth.
My testing showed this moved dom-query.html from 465560 runs/s to 479019
which is about 2% if I'm doing my math correctly.
I suspect that's due to avoiding the ref-churn we were incurring by using
return-by-value symantics here.
This is just the tip of the iceburg. :)
* bindings/v8/V8StringResource.cpp:
(StringTraits):
* bindings/v8/V8ValueCache.h:
(WebCore::WebCoreStringResource::webcoreString):
(WebCore::WebCoreStringResource::atomicString):
2012-10-17 Luke Macpherson <macpherson@chromium.org>
Move handling of CSSPropertyWebkitLineClamp from StyleResolver into StyleBuilder.
https://bugs.webkit.org/show_bug.cgi?id=99534
Reviewed by Alexis Menard.
One small step towards removing the giant switch statement in StyleResolver, this patch moves line clamp handling into StyleBuilder.
Covered by fast/overflow/line-clamp.html
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
2012-10-17 Andy Estes <aestes@apple.com>
[WebKit2] Add removeChild: to WKDOMNode and make WKDOMText.data read/write
https://bugs.webkit.org/show_bug.cgi?id=99662
Reviewed by Sam Weinig.
Export needed symbols.
* WebCore.exp.in:
2012-10-17 Adam Barth <abarth@webkit.org>
[V8] Don't generate code that declares visitDOMWrapper if we're not going to generate the implementation
https://bugs.webkit.org/show_bug.cgi?id=99653
Reviewed by Eric Seidel.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
2012-10-17 David Grogan <dgrogan@chromium.org>
IndexedDB: Destroy leveldb directory if unknown schema is detected
https://bugs.webkit.org/show_bug.cgi?id=99636
Reviewed by Tony Chang.
chromium browser test in progress at
https://codereview.chromium.org/11196029
* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
(WebCore):
(WebCore::isSchemaKnown):
Return true when the schema key doesn't exist because new databases
won't have one.
(WebCore::setUpMetadata):
(WebCore::IDBLevelDBBackingStore::open):
Piggy-back on existing leveldb::destroy code.
2012-10-17 Arpita Bahuguna <arpitabahuguna@gmail.com>
Incorrect rendering of borders on <col> with span > 1
https://bugs.webkit.org/show_bug.cgi?id=76246
Reviewed by Julien Chaffraix.
The HTML5 rendering specification [10.2.2 - Display Types] states that
"For the purposes of the CSS table model, the col element is expected to
be treated as if it was present as many times as its span attribute
specifies."
We should thus apply a col element's border as if the element is present
as many number of times as its span attribute.
Apart from this, we should also treat the col and its enclosing colgroup
separately while computing the collapsed borders.
Test: fast/table/border-collapsing/collapsed-border-with-col-colgroup-span.html
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::computeCollapsedStartBorder):
(WebCore::RenderTableCell::computeCollapsedEndBorder):
Borders from col and its enclosing colgroup element should be handled
separately, while considering the preceeding col's end border (for start
border computation) and the next col's start border (for end border
computation).
Also, have made changes for handling of col elements with span attribute as
per the specification. We now apply the border (start or end) of the col
element irrespective of whether it has any span specified for it or not.
2012-10-17 Tom Sepez <tsepez@chromium.org>
Crash in ContainerNode::removeAllChildren()
https://bugs.webkit.org/show_bug.cgi?id=98443
Reviewed by Eric Carlson.
This patch makes the errorEventSender added in WebKit Revision 112190 interact
with the updatedHasPendingLoadEvent() mechanism in the same manner as the other
existing event senders.
Test: http/tests/security/video-poster-cross-origin-crash2.html
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::setImage):
(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::notifyFinished):
(WebCore::ImageLoader::updatedHasPendingEvent):
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
(WebCore::ImageLoader::dispatchPendingLoadEvent):
* loader/ImageLoader.h:
(ImageLoader):
2012-10-17 Joshua Bell <jsbell@chromium.org>
IndexedDB: Closing connection in upgradeneeded should result in error event
https://bugs.webkit.org/show_bug.cgi?id=99486
Reviewed by Tony Chang.
The IDB spec requires that "...if connection is closed, return a DOMError of type AbortError".
This was being handled during the "enqueue" phase, which was too early either for synchronously
executing scripts or asynchronous messaging in multiprocess ports (crbug.com/150691). Move the
logic to the "dispatch" phase.
Test: storage/indexeddb/intversion-close-in-oncomplete.html
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onSuccess): Move success to error morphing from here...
(WebCore::IDBOpenDBRequest::dispatchEvent): To here.
* Modules/indexeddb/IDBOpenDBRequest.h:
(IDBOpenDBRequest):
2012-10-17 Elliott Sprehn <esprehn@chromium.org>
Use virtual dispatch to create ContentData renderers
https://bugs.webkit.org/show_bug.cgi?id=99646
Reviewed by Eric Seidel.
ContentData are conceptually very similar to Nodes and we can use
the same createRenderer pattern on them to simplify creating
renderers for generated content. Now each ContentData class knows
how to create its own renderer.
Previously we switched over the StyleContentType which required a
case for CONTENT_NONE and made the code look like it could return
null, but this case is actually impossible because no ContentData
class ever has a type of CONTENT_NONE and no null checks are really
needed.
This is the final step in removing dependence on StyleContentType.
No new tests needed, this is just a refactor.
* rendering/RenderObjectChildList.cpp: Remove createRendererForBeforeAfterContent.
(WebCore::RenderObjectChildList::updateBeforeAfterContent):
* rendering/style/ContentData.cpp:
(WebCore::ImageContentData::createRenderer):
(WebCore):
(WebCore::TextContentData::createRenderer):
(WebCore::CounterContentData::createRenderer):
(WebCore::QuoteContentData::createRenderer):
* rendering/style/ContentData.h: Added a new virtual method createRenderer.
(WebCore):
(ContentData):
(ImageContentData):
(TextContentData):
(CounterContentData):
(QuoteContentData):
2012-10-17 Julien Chaffraix <jchaffraix@webkit.org>
RenderLayer subtrees without any self-painting layer shouldn't be walked during hit testing
https://bugs.webkit.org/show_bug.cgi?id=89393
Reviewed by Eric Seidel.
Performance optimization, covered by existing tests.
Bug 88888 added an peformance optimization for painting. As hit testing is very similar to
painting, it would benefit from the same optimization.
On http://dglazkov.github.com/performance-tests/biggrid.html, with a 10,000 * 100 tables,
it reduces the time to select some text inside a cell from 1-2 seconds to a usable time
(I didn't measure the exact timing).
Note that as in bug 88888, the multi-column code is not covered by this optimization.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTest):
This is the entrance to the hit testing code so we check if we can bail out early.
(WebCore::RenderLayer::hitTestList):
If we have no self-painting descendant layers, we can bail out.
(WebCore::RenderLayer::hitTestContents):
(WebCore::RenderLayer::hitTestLayer):
hitTest should filter the layers that call these functions. Added some ASSERT to
make sure we don't mistakenly call them when could avoid it.
2012-10-17 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Certain SVG content freezes QtWebKit
https://bugs.webkit.org/show_bug.cgi?id=97258
Reviewed by Simon Hausmann.
Ensure dashpattern is well-formed by avoiding divisions by zero.
Test: svg/stroke/zero-width-hang.html
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::setLineDash):
2012-10-17 Alec Flett <alecflett@chromium.org>
IndexedDB: Explicitly send null/undefined/integers to frontend IDBCallbacks
https://bugs.webkit.org/show_bug.cgi?id=99619
Reviewed by Adam Barth.
Rather than pass SerializedScriptValue tokens from the backend,
send explicit null, (as onSuccess(static_cast<SerializedScriptValue*>(0)))
undefined, (as onSucess()), and integers (as onSuccess(long long))
This reduces backend dependency on things that might require a JS
interpreter on the backend.
No new tests, this is a refactor and existing tests cover
correctness. Tests that might fail include:
Test: storage/indexeddb/index-count.html
Test: storage/indexeddb/objectstore-count.html
Test: storage/indexeddb/database-basics.html
* Modules/indexeddb/IDBCallbacks.h:
(IDBCallbacks):
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::advanceInternal):
(WebCore::IDBCursorBackendImpl::continueFunctionInternal):
(WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
* Modules/indexeddb/IDBCursorBackendImpl.h:
(WebCore::IDBCursorBackendImpl::value):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::deleteDatabase):
* Modules/indexeddb/IDBIndex.cpp:
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::openCursorInternal):
(WebCore::IDBIndexBackendImpl::countInternal):
(WebCore::IDBIndexBackendImpl::getInternal):
* Modules/indexeddb/IDBObjectStore.cpp:
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::getInternal):
(WebCore::IDBObjectStoreBackendImpl::deleteInternal):
(WebCore::IDBObjectStoreBackendImpl::clearInternal):
(WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
(WebCore::IDBObjectStoreBackendImpl::countInternal):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess):
(WebCore):
* Modules/indexeddb/IDBRequest.h:
* Modules/indexeddb/IDBTransaction.cpp:
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
* Modules/indexeddb/IDBTransactionBackendImpl.h:
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::deserializeIDBValue):
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore):
2012-10-17 Nate Chapin <japhet@chromium.org>
Move ResourceRequest construction out of SubresourceLoader
https://bugs.webkit.org/show_bug.cgi?id=99627
Reviewed by Adam Barth.
CachedResource::load() fills out a bunch of http headers.
SubresourceLoader::create() adds a bunch more. Merge them.
Note that this merge requires a bit more care in CachedRawResource::canReuse(),
because more headers are set directly on CachedResource::m_resourceRequest, rather
than on a copy of it.
No new tests, no functionality change intended.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::create):
* loader/cache/CachedRawResource.cpp:
(WebCore::shouldIgnoreHeaderForCacheReuse):
(WebCore):
(WebCore::CachedRawResource::canReuse):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::failBeforeStarting):
(WebCore):
(WebCore::CachedResource::addAdditionalRequestHeaders):
(WebCore::CachedResource::load):
* loader/cache/CachedResource.h:
(CachedResource):
2012-10-17 Anders Carlsson <andersca@apple.com>
Clean up Vector.h
https://bugs.webkit.org/show_bug.cgi?id=99622
Reviewed by Benjamin Poulain.
Fix fallout from removing std::max and std::min using declarations.
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::currentAge):
2012-10-17 Joshua Bell <jsbell@chromium.org>
IndexedDB: Enforce unsigned long/unsigned long long ranges
https://bugs.webkit.org/show_bug.cgi?id=99637
Reviewed by Tony Chang.
The IndexedDB spec has [EnforceRange] specified on unsigned long and unsigned long long
arguments, which requires the implementation to throw TypeError for negative values or
values that exceed 2^53-1 (maximum JS number that behaves like an integer) - and 0 is
specifically forbidden by the APIs as well.
A more correct fix in the binding layer is in webkit.org/b/96798 but we can temporarily
address this in the implementation.
Also refactor to prevent IDBFactory.open(name, -1) from triggering an internal code path.
Tests: storage/indexeddb/cursor-advance.html
storage/indexeddb/intversion-bad-parameters.html
storage/indexeddb/intversion-encoding.html
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::advance): Validate argument range.
* Modules/indexeddb/IDBCursor.h:
(IDBCursor):
* Modules/indexeddb/IDBCursor.idl: Drop "unsigned" qualifier as the binding code is
not yet doing the correct validation.
* Modules/indexeddb/IDBFactory.cpp: Refactor to prevent open(name, -1)
(WebCore):
(WebCore::IDBFactory::open): Validate the int version here, then pass to...
(WebCore::IDBFactory::openInternal): ... this method.
* Modules/indexeddb/IDBFactory.h:
(IDBFactory):
* Modules/indexeddb/IDBFactory.idl: Drop "unsigned" qualifier; meaningless to binding
code right now, can be re-added once webkit.org/b/96798 lands.
2012-10-17 Tony Chang <tony@chromium.org>
fast/forms/range/input-appearance-range-rtl.html off by one pixel
https://bugs.webkit.org/show_bug.cgi?id=99625
Reviewed by Ojan Vafai.
Previously, we would assume that a vertical slider in RTL would render identically to
a vertical slider in LTR. Due to differing thumb sizes, there is an off by one.
This worked in deprecated flexbox because it doesn't adjust for RTL when applying
box-align: center.
Tests: fast/forms/range/input-appearance-range-rtl.html
* html/shadow/SliderThumbElement.cpp:
(WebCore::RenderSliderContainer::layout): Force LTR for flexbox layout when vertical. We have to restore the old value
just in case the user switches from vertical to horizontal.
2012-10-17 Michael Saboff <msaboff@apple.com>
Creating a String from an NSString should check for all 8 bit strings
https://bugs.webkit.org/show_bug.cgi?id=99392
Reviewed by Geoffrey Garen.
Use CFStringGetBytes() to try to get Latin1 data to create an 8 bit string.
No functional change, change covered by existing tests.
* platform/text/mac/StringMac.mm:
(WTF::String::String):
2012-10-17 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
[EFL] Remove redundant OpenGL library addition from the build system.
https://bugs.webkit.org/show_bug.cgi?id=99629
Reviewed by Rob Buis.
* PlatformEfl.cmake: Do not add OPENGL_gl_LIBRARY to
WebCore_LIBRARIES, this is already done in CMakeLists.txt these
days.
2012-10-17 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
[CMake] Set WebCore_LIBRARIES earlier.
https://bugs.webkit.org/show_bug.cgi?id=99630
Reviewed by Rob Buis.
* CMakeLists.txt: Follow the style we use in other CMakeList.txt
files and set the Foo_LIBRARIES variables before we start checking
for optional features, as they might append other libraries to the
list (it already happens with WTF_USE_3D_GRAPHICS, for example).
2012-10-17 Philip Rogers <pdr@google.com>
Allow lazy initialization of SVG XML animated properties.
https://bugs.webkit.org/show_bug.cgi?id=84657
Reviewed by Tim Horton.
When animating a property in the shadow tree, instance properties and tearoffs are created
but they simply reference the animated element's animating properties.
When starting an animation for the first time (see SVGAnimateElement::resetAnimatedType),
we initialize the root property and instance properties using startAnimValAnimation(...).
If an instance property is added while the root property is animating, this initialization
will not occur and we crash.
This patch updates the resetAnimValToBaseVal codepath to start (and initialize) an animated
property if it is not already animating. After this patch, instance properties can be added
in the middle of animation and they will be properly started/initialized.
Test: svg/animations/use-while-animating-crash.html
* svg/SVGAnimatedTypeAnimator.h:
(WebCore::SVGAnimatedTypeAnimator::resetFromBaseValue):
(WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
(WebCore::SVGAnimatedTypeAnimator::executeAction):
2012-10-17 Dan Carney <dcarney@google.com>
Bind isolatedWorldSecurityOrigin to world
https://bugs.webkit.org/show_bug.cgi?id=99582
Reviewed by Adam Barth.
Security origin of isolated worlds was not previously set at the world
level, although it could have been.
No new tests. No change in functionality.
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore::DOMWrapperWorld::deallocate):
(WebCore):
(WebCore::isolatedWorldSecurityOrigins):
(WebCore::DOMWrapperWorld::isolatedWorldSecurityOrigin):
(WebCore::DOMWrapperWorld::setIsolatedWorldSecurityOrigin):
(WebCore::DOMWrapperWorld::clearIsolatedWorldSecurityOrigin):
* bindings/v8/DOMWrapperWorld.h:
(DOMWrapperWorld):
(WebCore::DOMWrapperWorld::isIsolatedWorldId):
(WebCore::DOMWrapperWorld::isIsolatedWorld):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::resetIsolatedWorlds):
(WebCore::ScriptController::evaluateInIsolatedWorld):
(WebCore::ScriptController::collectIsolatedContexts):
* bindings/v8/ScriptController.h:
(ScriptController):
(WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initializeIfNeeded):
* bindings/v8/V8DOMWindowShell.h:
(V8DOMWindowShell):
* bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
(WebCore::V8XMLHttpRequest::constructorCallback):
2012-10-17 Simon Fraser <simon.fraser@apple.com>
GraphicsLayer visible rect computation needs to use the current animating transform
https://bugs.webkit.org/show_bug.cgi?id=99529
Reviewed by Dean Jackson.
If we're running an accelerated animation of transform
on a GraphicsLayerCA, the current value of the transform won't
be reflected in the GraphicsLayer's m_transform. However,
we need the current value of the transform in order to correctly
compute the visible rect of this layer and descendants.
Add a function to GraphicsLayerClient to retrieve the current
value of the transform from the client.
RenderLayer's currentTransform() used to return a transform
with transform-origin baked in; GraphicsLayerClient needs one
that excludes transform-origin, so enhance RenderLayer::currentTransform()
to be able to produce either.
Tests: compositing/visible-rect/animated-from-none.html
compositing/visible-rect/animated.html
* platform/graphics/GraphicsLayerClient.h:
(WebCore):
(GraphicsLayerClient):
(WebCore::GraphicsLayerClient::getCurrentTransform):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::computeVisibleRect):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::currentTransform):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::currentTransform):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
2012-10-17 Sadrul Habib Chowdhury <sadrul@chromium.org>
plugins: Allow a plugin to dictate whether it can receive drag events or not.
https://bugs.webkit.org/show_bug.cgi?id=99355
Reviewed by Tony Chang.
When doing a drag over a plugin, ask the plugin whether it can accept
drag/drop to decide whether drag/drop is possible or not. At present,
plugins do not receive drag events through WebCore (i.e. various
implementations of PluginView::handleMouseEvent ignores the
drop-events). This change makes it possible for the ports to ask the
plugin first to decide whether it can (or wants to) accept drag events.
The default implementation remains the same, i.e. plugins do not receive
drag events. For chromium, the overridden implementation uses the
WebPlugin interface to check whether the plugin can accept drag events.
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::canProcessDrag):
(WebCore):
* html/HTMLPlugInElement.h:
(WebCore):
(HTMLPlugInElement):
* page/DragController.cpp:
(WebCore::DragController::canProcessDrag):
* plugins/PluginViewBase.h:
(WebCore):
(WebCore::PluginViewBase::canProcessDrag):
2012-10-17 Andreas Kling <kling@webkit.org>
Shrink EventTargetData by making firingEventListeners vector optional.
<http://webkit.org/b/99532>
<rdar://problem/12515099>
Reviewed by Anders Carlsson.
The majority of event listeners never actually fire, and EventTargetData::firingEventListeners
is just sitting there taking up space. Make it an OwnPtr instead, shrinking EventTargetData
by 48 bytes and progressing Membuster3 by 395kB.
* dom/EventTarget.cpp:
(WebCore::EventTarget::removeEventListener):
(WebCore::EventTarget::fireEventListeners):
(WebCore::EventTarget::removeAllEventListeners):
* dom/EventTarget.h:
(WebCore::EventTarget::isFiringEventListeners):
2012-10-17 Christophe Dumez <christophe.dumez@intel.com>
xss-DENIED-xsl-document-securityOrigin.xml crashes with icon assertion
https://bugs.webkit.org/show_bug.cgi?id=99571
Reviewed by Kenneth Rohde Christiansen.
Check that the iconURL is not empty in IconController::continueLoadWithDecision()
to avoid hitting assertions later when trying to commit this empty URL to the
database. IconController::url() may indeed return an empty URL but there was
no check for it.
No new tests, already covered by http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml.
* loader/icon/IconController.cpp:
(WebCore::IconController::continueLoadWithDecision):
2012-10-17 Byungwoo Lee <bw80.lee@samsung.com>
Fix build warnings : -Wunused-parameter, -Wunused-variable
https://bugs.webkit.org/show_bug.cgi?id=99539
Reviewed by Kentaro Hara.
Fix build warnings about unused parameter or unused variable when
WTF_USE_TILED_BACKING_STORE option is enabled.
* html/shadow/HTMLContentElement.cpp:
(WebCore::contentTagName):
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::getImageData):
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::createSurface):
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::bindVertexArrayOES):
* platform/graphics/texmap/TextureMapper.h:
(WebCore::BitmapTexture::canReuseWith):
(WebCore::TextureMapper::beginPainting):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawRepaintCounter):
* platform/graphics/texmap/TextureMapperImageBuffer.cpp:
(WebCore::BitmapTextureImageBuffer::updateContents):
* platform/graphics/texmap/TextureMapperImageBuffer.h:
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::sortByZOrder):
(WebCore::TextureMapperLayer::flushCompositingStateSelf):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::allowsIndependentlyCompositedFrames):
2012-10-17 Shinya Kawanaka <shinyak@chromium.org>
Dynamically added elements do not get re-projected.
https://bugs.webkit.org/show_bug.cgi?id=99227
Reviewed by Dimitri Glazkov.
When distribution happens, we have to invalidate its host shadow's distribution, since the children of the host
is changed.
Test: fast/dom/shadow/content-reprojection-dynamic.html
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::distribute):
2012-10-17 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: no "delete watch expression" context menu item when clicking on the expression value
https://bugs.webkit.org/show_bug.cgi?id=99602
Reviewed by Pavel Feldman.
Add delete items to the watch expression's value's context menu.
* inspector/front-end/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
(WebInspector.ObjectPropertyTreeElement.prototype.populateContextMenu):
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionTreeElement.prototype.populateContextMenu):
(WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
2012-10-17 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: [Regression] Undoing script changes does not restore breakpoints.
https://bugs.webkit.org/show_bug.cgi?id=99598
Reviewed by Pavel Feldman.
workingCopyChanged now dispatches did/willMergeToVM instead of did/willDivergeFromVM
when change returns uiSourceCode to non dirty state.
Added wasDirty parameter to workingCopyChanged event.
Test: inspector/debugger/live-edit-breakpoints.html
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
(WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.setWorkingCopy):
2012-10-17 Simon Hausmann <simon.hausmann@digia.com>
[Qt] Avoid re-creating CSSGrammar.cpp with each (incremental) build
Reviewed by Tor Arne Vestbø.
The expected output is CSSGrammar.cpp and the input file used to be CSSGrammar.y,
so ${QMAKE_FILE_BASE}.cpp did the correct transformation. Recently the input has
changed to CSSGrammar.y.in, in which case the ${QMAKE_FILE_BASE} is CSSGrammar.y
unfortunately. The resulting target CSSGrammar.y.cpp will never be created and
therefore the target will always run.
* DerivedSources.pri:
2012-10-17 Ilya Tikhonovsky <loislo@chromium.org>
Unreviewed fix for ImageSourceCG.
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::reportMemoryUsage):
2012-10-17 Ilya Tikhonovsky <loislo@chromium.org>
Unreviewed fix for compilation on CG bots.
* platform/graphics/cg/ImageSourceCG.cpp:
2012-10-16 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: NMI instrument ImageDecoder. It owns a buffer that could be quite big.
https://bugs.webkit.org/show_bug.cgi?id=99540
Reviewed by Yury Semikhatsky.
* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::reportMemoryUsage):
(WebCore):
* platform/graphics/ImageSource.h:
(ImageSource):
* platform/image-decoders/ImageDecoder.cpp:
(WebCore::ImageFrame::reportMemoryUsage):
(WebCore):
(WebCore::ImageDecoder::reportMemoryUsage):
* platform/image-decoders/ImageDecoder.h:
(ImageFrame):
(ImageDecoder):
* platform/image-decoders/skia/ImageDecoderSkia.cpp:
(WebCore::ImageFrame::reportMemoryUsage):
(WebCore):
2012-10-17 Zeno Albisser <zeno@webkit.org>
[Qt] Fix build on Mac OSX 10.6 and earlier.
https://bugs.webkit.org/show_bug.cgi?id=99595
Reviewed by Simon Hausmann.
* Target.pri:
2012-10-17 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: display "disconnected" message when remote debugging terminates
https://bugs.webkit.org/show_bug.cgi?id=99316
Reviewed by Yury Semikhatsky.
Otherwise, it is not clear that the front-end is no longer functional.
* inspector/front-end/InspectorFrontendHostStub.js:
(WebInspector.RemoteDebuggingTerminatedScreen):
* inspector/front-end/inspector.js:
(WebInspector.loaded.WebInspector.socket.onclose):
(WebInspector.loaded):
2012-10-17 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: delete watch expression button overlaps with the expression value
https://bugs.webkit.org/show_bug.cgi?id=99569
Reviewed by Vsevolod Vlasov.
Delete watch expression button now doesn't overlap with the watch expression.
* inspector/front-end/inspector.css:
(.properties-tree.watch-expressions > li > .value):
2012-10-17 Luke Macpherson <macpherson@chromium.org>
Move handling of CSSPropertyPointerEvents from StyleResolver into StyleBuilder.
https://bugs.webkit.org/show_bug.cgi?id=99536
Reviewed by Alexis Menard.
One small step towards removing the giant switch statement in StyleResolver,
this patch moves pointer event property into StyleBuilder.
Covered by fast/events/pointer-events.html and fast/events/pointer-events-2.html.
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
2012-10-17 Keishi Hattori <keishi@webkit.org>
Localized date should be based on LDML
https://bugs.webkit.org/show_bug.cgi?id=99570
Reviewed by Kent Tamura.
Localized date should be based on LDML to match the format inside DateTimeEditElement.
No new tests. Covered by LocaleMacTest.formatDate and LocaleWinTest.formatDate.
* platform/text/LocaleICU.cpp: Removed formatDateTime.
* platform/text/LocaleICU.h:
(LocaleICU):
* platform/text/LocaleNone.cpp: Removed formatDateTime.
(LocaleNone):
* platform/text/LocaleWin.cpp: Removed formatDateTime and formatDate.
(WebCore):
* platform/text/LocaleWin.h:
(LocaleWin):
* platform/text/Localizer.cpp:
(WebCore::DateTimeStringBuilder::visitField): Added support for year/month/day.
(WebCore::Localizer::formatDateTime): Creates the formatted string based on the format from dateFormat().
* platform/text/Localizer.h:
* platform/text/mac/LocaleMac.h:
(LocaleMac):
* platform/text/mac/LocaleMac.mm: Removed formatDateTime.
2012-10-17 Harald Alvestrand <hta@google.com>
Implement the Selector argument to RTCPeerConnection.getStats
https://bugs.webkit.org/show_bug.cgi?id=99460
Reviewed by Adam Barth.
The change adds two new parameters to the RTCStatsRequest object:
stream and component. Together these are enough to identify a
MediaStreamTrack.
Test: fast/mediastream/RTCPeerConnection-statsSelector.html
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::streamDescriptor):
(WebCore):
* Modules/mediastream/MediaStreamTrack.h:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::getStats):
* Modules/mediastream/RTCStatsRequestImpl.cpp:
(WebCore::RTCStatsRequestImpl::create):
(WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
(WebCore::RTCStatsRequestImpl::hasSelector):
(WebCore):
(WebCore::RTCStatsRequestImpl::stream):
(WebCore::RTCStatsRequestImpl::component):
* Modules/mediastream/RTCStatsRequestImpl.h:
(RTCStatsRequestImpl):
* platform/chromium/support/WebRTCStatsRequest.cpp:
(WebKit):
(WebKit::WebRTCStatsRequest::hasSelector):
(WebKit::WebRTCStatsRequest::stream):
(WebKit::WebRTCStatsRequest::component):
* platform/mediastream/RTCStatsRequest.h:
(WebCore):
(RTCStatsRequest):
2012-10-17 Simon Hausmann <simon.hausmann@digia.com>
[Qt] Enable use of more AllInOne files
https://bugs.webkit.org/show_bug.cgi?id=99579
Reviewed by Tor Arne Vestbø.
The AllInOne files reduce pressure during final link time because the object files contain less duplicated
symbols.
* Target.pri: Add HTMLElementsAllInOne, EditingAllInOne and RenderingAllInOne to the build
* editing/EditingAllInOne.cpp: Place a #if USE(CF) around the inclusion of SmartReplaceCF.cpp
* html/HTMLElementsAllInOne.cpp: Move HTMLPlugInElement.cpp to the top to fix builds on X11 based platforms
where the X headers get confused by the "Region" type that's also declared in WebCore.
* rendering/RenderingAllInOne.cpp: Fix build on case-sensitive file systems (Plugin -> PlugIn) and added a
#if PLATFORM(WIN) around the inclusion of RenderThemeWin.cpp.
2012-10-17 Kent Tamura <tkent@chromium.org>
REGRESSION(r131421): Text baseline becomes incorrect after re-layout of input[type=time]
https://bugs.webkit.org/show_bug.cgi?id=99572
Reviewed by Kentaro Hara.
We use flexible box since r131421, and it seems text baseline becomes
incorrect if there are text nodes in a flex container.
Test: fast/forms/time-multiple-fields/time-multiple-fields-static-relayout.html
* css/html.css:
(input::-webkit-datetime-edit-text): Added.
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitLiteral):
Wrap text with an element with ::-webkit-datetime-edit-text.
2012-10-17 Grzegorz Czajkowski <g.czajkowski@samsung.com>, Michal Roj <m.roj@samsung.com>
[WK2][EFL] Implementation of spellchecking feature.
https://bugs.webkit.org/show_bug.cgi?id=91854
Reviewed by Gyuyoung Kim.
* PlatformEfl.cmake:
Add enchant-related compiler flags: header paths and the library flag.
2012-10-17 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Avoid style updates when retrieving the inline stylesheet text
https://bugs.webkit.org/show_bug.cgi?id=99576
Reviewed by Vsevolod Vlasov.
Avoid using innerText() to retrieve inline stylesheet text, which may result in style and layout updates.
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::inlineStyleSheetText):
2012-10-17 Patrick Gansterer <paroga@webkit.org>
Build fix for WinCE after r131365.
* platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBufferAdvance::width):
* platform/graphics/wince/FontWinCE.cpp:
(WebCore::cursorToX):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::drawText):
2012-10-17 Mike West <mkwst@chromium.org>
V8 should throw a more descriptive exception when blocking 'eval' via CSP.
https://bugs.webkit.org/show_bug.cgi?id=94332
Reviewed by Adam Barth.
Following up on https://bugs.webkit.org/show_bug.cgi?id=94331, this
patch wires up the new error message mechanism to V8, and updates the
Chromium test expectations accordingly.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::disableEval):
Pass 'errorMessage' through to V8.
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initializeIfNeeded):
Grab the error message from ContentSecurityPolicy, and pass it
through to V8.
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
(WebCore::WorkerContextExecutionProxy::evaluate):
(WebCore::WorkerContextExecutionProxy::setEvalAllowed):
* bindings/v8/WorkerContextExecutionProxy.h:
(WorkerContextExecutionProxy):
Convert 'm_disableEvalPending' to a string to store the current
error message, and use it to set the eval state.
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::disableEval):
Pass 'errorMessage' through to V8.
2012-10-17 MORITA Hajime <morrita@google.com>
Assertion failed on HTMLFormControlElement.cpp: updateFromElementCallback()
https://bugs.webkit.org/show_bug.cgi?id=99566
Reviewed by Kent Tamura.
It had a too optimistic assertion. This change removes it.
Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing.html
* html/HTMLFormControlElement.cpp:
(WebCore::updateFromElementCallback):
2012-10-17 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: When dirty uiSourceCode is saved to disk from scripts navigator context menu working copy is not committed.
https://bugs.webkit.org/show_bug.cgi?id=99555
Reviewed by Yury Semikhatsky.
Save As context menu handler now commits working copy for dirty UISourceCodes.
* inspector/front-end/HandlerRegistry.js:
2012-10-17 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Stylesheets saved with FileManager are not saved to disk when edited from Elements panel.
https://bugs.webkit.org/show_bug.cgi?id=99554
Reviewed by Yury Semikhatsky.
Moved saving to disk from SourceFrame to UISourceCode.
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype._commitEditing):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype._commitContent):
2012-10-17 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: [Regression] SASS sources are not saved to disk.
https://bugs.webkit.org/show_bug.cgi?id=99551
Reviewed by Yury Semikhatsky.
Added resource null checks.
* inspector/front-end/StylesSourceMapping.js:
(WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
2012-10-17 Elliott Sprehn <esprehn@chromium.org>
Clean up ContentData operator overloads
https://bugs.webkit.org/show_bug.cgi?id=99556
Reviewed by Eric Seidel.
Use virtual dispatch for checking ContentData equality instead
of a switch over the type. This the first step in getting rid
of the StyleContentType enum and all the switch statements over
the type().
No tests needed, this is just a refactor.
* rendering/style/ContentData.cpp:
* rendering/style/ContentData.h:
(ContentData):
(WebCore::operator==):
(WebCore):
(WebCore::operator!=):
2012-10-17 Gabor Rapcsanyi <rgabor@webkit.org>
NEON intrinsics Gauss filter does not work properly
https://bugs.webkit.org/show_bug.cgi?id=98875
Reviewed by Zoltan Herczeg.
Fixing the NEON intrinsics Gauss filter. The stride parameter
was missing from the intrinsics algorithm. Tested with pixel
checks, now it's working properly.
* platform/graphics/filters/arm/FEGaussianBlurNEON.h:
(WebCore::boxBlurNEON):
2012-10-17 MORITA Hajime <morrita@google.com>
Crash on Frame::inScope() part 2
https://bugs.webkit.org/show_bug.cgi?id=99543
Reviewed by Kent Tamura.
FrameTree::scopedChildCount() can be called even when the one of child frames
is in orphan state. This change added a guard for that case.
No new tests. A hard-to-test timing issue.
* page/Frame.cpp:
(WebCore::Frame::inScope):
2012-10-17 Shinya Kawanaka <shinyak@chromium.org>
Remove shadowAncestorNode() from VisibleSelection
https://bugs.webkit.org/show_bug.cgi?id=99544
Reviewed by Hajime Morita.
An effort to replace shadowAncestorNode() with shadowHost(), since shadowAncestorNode() is now deprecated.
No new tests, no change in behavior.
* editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries): Since shadowHost() returns 0 if
an element is not in shadowRoot, it's ok to compare shadowAncestor to 0.
2012-10-17 Douglas Stockwell <dstockwell@chromium.org>
Content of replaced elements should be trimmed to the content edge curve.
https://bugs.webkit.org/show_bug.cgi?id=63899
Reviewed by Simon Fraser.
When a border-radius is specified the content of replaced elements needs to be clipped to avoid
being painted over the padding or border in the corners. Previously the clip that was applied
was set to the border-edge curve, this patch contracts the clip by the size of the border and
padding (the content-edge curve) to match the css3 spec.
Spec: http://www.w3.org/TR/css3-background/#corner-clipping
Test: fast/replaced/border-radius-clip-content-edge.html
* rendering/RenderBoxModelObject.h:
(RenderBoxModelObject):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::paint):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paint):
2012-10-17 Kunihiko Sakamoto <ksakamoto@chromium.org>
The HTML5 formtarget/formaction/formenctyp/formmethod/formnovalidate attributes don't work in button tags with nested elements
https://bugs.webkit.org/show_bug.cgi?id=90539
Reviewed by Kent Tamura.
Fix a bug where form(action|enctype|method|target) attributes of <button> are not
honored if the target of the click event is an element nested within the button.
Test: fast/forms/formaction-attribute.html
* loader/FormSubmission.cpp:
(WebCore::FormSubmission::create): Looks for the attributes for form submission
from the nearest FormControlElement ancestor of the event target.
2012-10-16 MORITA Hajime <morrita@google.com>
[Shadow DOM][V8] WebCore::V8DOMWindow::installPerContextProperties() is slow when shadowDOMEnabled flag is on.
https://bugs.webkit.org/show_bug.cgi?id=99428
Reviewed by Adam Barth.
A benchmark unveiled that installPerContextProperties() could have made DOMWindow setup slower when
- Some properties are added per-context basis by turnin the flag on and
- There are bunch of DOMWindow object in the page (that is, there are many iframes.)
This change eliminates Shadow DOM related per-context properties from DOMWindow for getting rid of that slowness.
* dom/ContextFeatures.cpp:
* dom/ContextFeatures.h: Removed shadowDOMEnabled() method and related enum entry.
* dom/Position.cpp:
(WebCore::Position::Position):
(WebCore::Position::findParent):
* dom/TreeScope.cpp:
(WebCore::TreeScope::getSelection):
* dom/make_names.pl: Re-introduced "runtimeConditional" directive.
(defaultTagPropertyHash):
(printConstructorInterior):
(printFactoryCppFile):
(printWrapperFunctions):
(printWrapperFactoryCppFile):
* html/HTMLTagNames.in:
* html/shadow/HTMLContentElement.cpp:
(WebCore::contentTagName):
* page/DOMWindow.idl:
2012-10-16 Julien Chaffraix <jchaffraix@webkit.org>
Make RenderObject destruction during detach a top-down operation
https://bugs.webkit.org/show_bug.cgi?id=98336
Reviewed by Eric Seidel.
detach() is a DOM-driven operation that destroys the renderers bottom-up.
While this is correct, it causes extra-work to be done (tree cleaning, ...)
as it doesn't know about the render tree's structure.
The render tree on the other side already supports top-down operations
but it was overriden by the DOM side of detach.
This change only makes ContainerNode::detach do a top-down render tree
destruction. This is a required step towards doing smarter destruction.
Refactoring covered by existing tests.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::detach):
Changed the method to do a top-down destruction.
* dom/Node.cpp:
(WebCore::Node::detach):
Added this ASSERT that ensures that we have properly cleaned up the
whole DOM subtree. The only exception is child content belonging to a
flow-thread as the code will shuffle the renderers under the flow-thread.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::willBeDestroyed):
As we don't update the node's renderer on the DOM side, do it here.
The upside is that it ensures that we don't left any stray renderer
in the tree.
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::destroyLeftoverChildren):
Removed the calls to setRenderer as they are redundant with what we do
in willBeDestroyed.
* rendering/RenderTextFragment.cpp:
(WebCore::RenderTextFragment::setText):
Removed some now unneeded code, replaced by an ASSERT. This is because
destroying m_firstLetter would automatically reset the node's renderer
in destroyLeftoverChildren.
2012-10-16 Joseph Pecoraro <pecoraro@apple.com>
HTMLSelectElement::optionSelectedByUser confuses listIndex and optionIndex
https://bugs.webkit.org/show_bug.cgi?id=99523
Reviewed by Simon Fraser.
There was a call site where the optionIndex was being passed to a
function that expected the listIndex. Convert appropriately.
Extends Test: platform/mac/fast/objc/dom-html-select-activate.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::optionSelectedByUser):
2012-10-16 Jian Li <jianli@chromium.org>
Rename feature define ENABLE_WIDGET_REGION to ENABLE_DRAGGBALE_REGION
https://bugs.webkit.org/show_bug.cgi?id=98975
Reviewed by Adam Barth.
Renaming is needed to better match with the draggable region code.
No new tests due to no functional change.
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.make:
* WebCore.exp.in:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore):
(WebCore::Document::reportMemoryUsage):
* dom/Document.h:
(WebCore):
(Document):
* page/Chrome.cpp:
(WebCore):
* page/ChromeClient.h:
(ChromeClient):
* page/FrameView.cpp:
(WebCore::FrameView::layout):
(WebCore):
(WebCore::FrameView::paintContents):
* page/FrameView.h:
(FrameView):
* rendering/RenderInline.cpp:
(WebCore):
(WebCore::RenderInline::addAnnotatedRegions):
* rendering/RenderInline.h:
(RenderInline):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::setHasHorizontalScrollbar):
(WebCore::RenderLayer::setHasVerticalScrollbar):
(WebCore::RenderLayer::updateScrollbarsAfterLayout):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::setHasVerticalScrollbar):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
(WebCore):
(WebCore::RenderObject::addAnnotatedRegions):
* rendering/RenderObject.h:
(WebCore::AnnotatedRegionValue::operator==):
(AnnotatedRegionValue):
(RenderObject):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
(StyleRareNonInheritedData):
2012-10-16 James Simonsen <simonjam@chromium.org>
[Page Visibility API] View-less documents should report as hidden
https://bugs.webkit.org/show_bug.cgi?id=99410
Reviewed by Tony Gentilcore.
Test: fast/events/page-visibility-null-view.html
* dom/Document.cpp:
(WebCore::Document::visibilityState):
2012-10-16 Michael Saboff <msaboff@apple.com>
Change WTF_USE_8BIT_TEXTRUN to ENABLE_8BIT_TEXTRUN
https://bugs.webkit.org/show_bug.cgi?id=99484
Reviewed by Eric Seidel.
Changed macro name to align with it's purpose, therefore changed USE(8BIT_TEXTRUN) to ENABLE(8BIT_TEXTRUN).
No new tests. Changed macro name, no functional change.
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun):
(WebCore::TextRun::subRun):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::constructTextRun):
* rendering/RenderBlock.h:
(RenderBlock):
2012-10-16 Noam Rosenthal <noam.rosenthal@nokia.com>
[Qt] REGRESSION(r131485): It broke the build
https://bugs.webkit.org/show_bug.cgi?id=99499
Unreviewed build (warning) fix.
* platform/graphics/texmap/TextureMapperShaderManager.cpp:
(WebCore::TextureMapperShaderProgram::getLocation):
2012-10-16 David Grogan <dgrogan@chromium.org>
Inspector: Don't fire assert when inspecting an empty db
https://bugs.webkit.org/show_bug.cgi?id=99370
Reviewed by Vsevolod Vlasov.
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore):
2012-10-16 Tony Chang <tony@chromium.org>
Unreviewed, try to fix the Apple Win build by forcing a rebuild of RenderingAllInOne.cpp.
* rendering/RenderingAllInOne.cpp:
2012-10-16 Andrew Scherkus <scherkus@chromium.org>
Fix crash in WebCore::MediaControlPanelElement::makeTransparent()
https://bugs.webkit.org/show_bug.cgi?id=97951
Reviewed by Simon Fraser.
No new tests as it's a speculative fix based on crash dump analysis.
Despite MediaControlPanelElement checking for document()->page() nullity in other places, it forgot one check in makeTransparent().
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlPanelElement::makeTransparent):
2012-10-16 Emil A Eklund <eae@chromium.org>
Remove special-case flooring of baselinePosition for replaced elements in InlineFlowBox::placeBoxesInBlockDirection
https://bugs.webkit.org/show_bug.cgi?id=99376
Reviewed by Levi Weintraub.
In r122769 (bug 91410) we added a special-case handling for
replaced elements in InlineFlowBox::placeBoxesInBlockDirection
to work around positioning issues in a couple of svg tests.
This was needed to compensate for a workaround in the table
painting code that was fixed in r131358 (bug 99364). As such the
special-case handling for replaced elements is no longer needed
in InlineFlowBox::placeBoxesInBlockDirection.
Furthermore this caused problems with caret repainting leaving
residual pixels which motivated this change.
No new tests, have not been able to write a repaint test to
demonstrate the caret repaint issue.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesInBlockDirection):
2012-10-16 Simon Fraser <simon.fraser@apple.com>
Some #include hygiene
https://bugs.webkit.org/show_bug.cgi?id=99500
Reviewed by Tony Chang.
Clean up some #includes, mostly related to GraphicsLayer.h. In many
cases this can be replaced by PlatformLayer.h.
Remove an #include of PluginViewBase.h from Page.h, which was a source
of #include fan-out.
* html/canvas/CanvasRenderingContext2D.h:
* page/Page.h:
* page/scrolling/ScrollingCoordinator.h:
* page/scrolling/ScrollingStateNode.h:
* page/scrolling/mac/ScrollingStateNodeMac.mm:
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/MediaPlayer.h:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
* platform/graphics/gpu/DrawingBuffer.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
* plugins/PluginViewBase.h:
2012-10-16 Adam Barth <abarth@webkit.org>
Document::adoptNode shouldn't special-case <iframe>
https://bugs.webkit.org/show_bug.cgi?id=99247
Reviewed by Ryosuke Niwa.
The special case was added in http://trac.webkit.org/changeset/75293 to
fix a bug with magic iframes. Originally, I planned to remove this
special case, but further investigation reveals that other browsers
throw exceptions for other frame owner elements as well. Now we treat
all frame owner elements the same way.
Test: fast/frames/adopt-object-into-itself.html
* dom/Document.cpp:
(WebCore::Document::adoptNode):
2012-10-16 Dominik Röttsches <dominik.rottsches@intel.com>
Init timeout flag in ResourceErrorMac
https://bugs.webkit.org/show_bug.cgi?id=99478
Reviewed by Alexey Proskuryakov.
On construction from platform error types, initialize the timeout flag
to true if the error results from a timeout.
No new tests, covered by tests that will be added in bug 74802.
* platform/network/mac/ResourceErrorMac.mm:
(WebCore::ResourceError::platformLazyInit): Initializing timeout flag if the error was a timeout.
2012-10-16 Tony Chang <tony@chromium.org>
input[type=range] as a flex item renders thumb at wrong position
https://bugs.webkit.org/show_bug.cgi?id=98666
Reviewed by Ojan Vafai.
Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
The previous code was trying to set the height to 100% and had a bunch of hacks in
the renderer code to set an explicit height. Using the new flexbox allows us to
remove these renderer hacks.
Test: css3/flexbox/flexitem-stretch-range.html
* css/html.css:
(input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
(input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
(input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
no longer setting top/left in the layout code.
* css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
* css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
* html/RangeInputType.cpp:
(WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
since the height of the control should change when adding/removing a datalist.
* html/shadow/SliderThumbElement.cpp:
(WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
(WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
height when asked. If we have a datalist, we increase the height (same code as before). If we're vertical,
we use the intrinsic size.
(WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
This used to be handled in the thumb's layout method, but I deleted that.
* html/shadow/SliderThumbElement.h:
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::RenderSlider): Use new flexbox.
(WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
and expects the input to also have a height of 1px. It worked before because the height of the input
didn't depend on the height of its children.
* rendering/RenderSlider.h: Fix indentation.
(RenderSlider): Use new flexible box.
2012-10-16 Dima Gorbik <dgorbik@apple.com>
Remove Platform.h include from the header files.
https://bugs.webkit.org/show_bug.cgi?id=98665
Reviewed by Eric Seidel.
We don't want other clients that include WebKit headers to know about Platform.h.
No new tests.
* platform/MemoryPressureHandler.h:
* platform/graphics/filters/arm/FECompositeArithmeticNEON.h:
* platform/graphics/filters/arm/FEGaussianBlurNEON.h:
* platform/graphics/filters/arm/FELightingNEON.h:
2012-10-16 Xianzhu Wang <wangxianzhu@chromium.org>
[Chromium] Android: Need a way to get appropriate font for some specific characters.
https://bugs.webkit.org/show_bug.cgi?id=67587
Reviewed by Adam Barth.
Use the new Skia API SkGetFallbackFamilyNameForChar() to get the family name for individual characters.
No new tests. The following existing tests pass with the change:
fast/writing-mode/vertical-subst-font-vert-no-dflt.html
fast/dynamic/text-combine.html
fast/writing-mode/japanese-rl-text.html
fast/writing-mode/japanese-rl-selection.html
fast/writing-mode/japanese-lr-text.html
fast/repaint/japanese-rl-selection-repaint.html
fast/writing-mode/border-vertical-lr.html
* platform/graphics/chromium/FontCacheAndroid.cpp:
(WebCore::FontCache::getFontDataForCharacters):
2012-10-16 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Add the chromium API for RTCDataChannel
https://bugs.webkit.org/show_bug.cgi?id=99435
Reviewed by Adam Barth.
Adding WebRTCDataChannel.
Test: fast/mediastream/RTCPeerConnection-datachannel.html
* WebCore.gypi:
* platform/chromium/support/WebRTCDataChannel.cpp: Added.
(WebKit):
(ExtraDataContainer):
(WebKit::ExtraDataContainer::ExtraDataContainer):
(WebKit::ExtraDataContainer::extraData):
(WebKit::WebRTCDataChannel::WebRTCDataChannel):
(WebKit::WebRTCDataChannel::initialize):
(WebKit::WebRTCDataChannel::assign):
(WebKit::WebRTCDataChannel::reset):
(WebKit::WebRTCDataChannel::operator PassRefPtr<WebCore::RTCDataChannelDescriptor>):
(WebKit::WebRTCDataChannel::operator WebCore::RTCDataChannelDescriptor*):
(WebKit::WebRTCDataChannel::extraData):
(WebKit::WebRTCDataChannel::setExtraData):
(WebKit::WebRTCDataChannel::label):
(WebKit::WebRTCDataChannel::reliable):
(WebKit::WebRTCDataChannel::setBufferedAmount):
(WebKit::WebRTCDataChannel::readyStateChanged):
(WebKit::WebRTCDataChannel::dataArrived):
(WebKit::WebRTCDataChannel::error):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandlerChromium::negotiationNeeded):
(WebCore::RTCPeerConnectionHandlerChromium::didGenerateICECandidate):
(WebCore):
(WebCore::RTCPeerConnectionHandlerChromium::didChangeReadyState):
(WebCore::RTCPeerConnectionHandlerChromium::didChangeICEState):
(WebCore::RTCPeerConnectionHandlerChromium::didRemoveRemoteStream):
2012-10-16 Brady Eidson <beidson@apple.com>
Update indentation in *ResourceLoader headers to match modern WebKit style
https://bugs.webkit.org/show_bug.cgi?id=99487
Reviewed by Beth Dakin.
I'm going to be working on these classes and the indentation is driving me crazy.
* loader/MainResourceLoader.h:
(WebCore):
(MainResourceLoader):
(WebCore::MainResourceLoader::isLoadingMultipartContent):
* loader/NetscapePlugInStreamLoader.h:
(WebCore):
(NetscapePlugInStreamLoaderClient):
(WebCore::NetscapePlugInStreamLoaderClient::didFinishLoading):
(WebCore::NetscapePlugInStreamLoaderClient::wantsAllStreams):
(WebCore::NetscapePlugInStreamLoaderClient::~NetscapePlugInStreamLoaderClient):
(NetscapePlugInStreamLoader):
* loader/ResourceLoader.h:
(WebCore):
(ResourceLoader):
(WebCore::ResourceLoader::documentLoader):
(WebCore::ResourceLoader::originalRequest):
(WebCore::ResourceLoader::identifier):
(WebCore::ResourceLoader::didReceiveCachedMetadata):
(WebCore::ResourceLoader::willStopBufferingData):
(WebCore::ResourceLoader::shouldUseCredentialStorage):
(WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
(WebCore::ResourceLoader::didCancelAuthenticationChallenge):
(WebCore::ResourceLoader::canAuthenticateAgainstProtectionSpace):
(WebCore::ResourceLoader::receivedCancellation):
(WebCore::ResourceLoader::url):
(WebCore::ResourceLoader::handle):
(WebCore::ResourceLoader::sendResourceLoadCallbacks):
(WebCore::ResourceLoader::reachedTerminalState):
(WebCore::ResourceLoader::request):
(WebCore::ResourceLoader::cancelled):
(WebCore::ResourceLoader::defersLoading):
2012-10-16 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=99254
Make ScrollingTree an actual tree of nodes, and have it reflect the
ScrollingStateTree
Reviewed by Simon Fraser.
This patch finally makes the ScrollingTree over on the
ScrollingThread aware of the changes that we have been making to the
ScrollingStateTree.
First, it makes ScrollingTreeNode a much more generic class, similar
to ScrollingStateNode. It is an abstract class and we will add other
types of nodes such as ScrollingTreeFixedNodes that will inherit from
this class.
All of the scrolling functionality that was in ScrollingTreeNode has
been moved to ScrollingTreeScrollingNode. And likewise,
ScrollingTreeNodeMac has been re-named to
ScrollingTreeScrollingNodeMac.
And finally, instead of just updating and creating the root node,
ScrollingTree now recurses through the whole ScrollingStateTree to
create and update a full tree of nodes.
New files and moves files.
* WebCore.xcodeproj/project.pbxproj:
Add a getter for the children vector since we need to recurse it in
ScrollingTree.
* page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::children):
(ScrollingStateNode):
m_rootNode is now a ScrollingTreeScrollingNode.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::ScrollingTree):
Instead of just updating the root node, call two new functions that
will take care of updating the whole tree.
(WebCore::ScrollingTree::commitNewTreeState):
This function ecurses through the ScrollingStateTree and updates the
corresponding ScrollingTreeNodes.
(WebCore::ScrollingTree::updateNodesFromStateNode):
This function takes the ScrollingStateTree's list of removed nodes
and removes the corresponding nodes from the ScrollingTree. It will
destroy the nodes after removing it as long as it's not the root
node. I think it's the safest choice for now to never remove the root
node.
(WebCore::ScrollingTree::removeDestroyedNodes):
ScrollingTree now keeps a HashMap mapping ScrollingNodeIDs to
ScrollingTreeNodes.
* page/scrolling/ScrollingTree.h:
All of the scrolling-related functionality has been moved from this
class to new class ScrollingTreeScrollingNode. And some basic tree
traversal functionality has been added.
* page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::ScrollingTreeNode):
(WebCore::ScrollingTreeNode::appendChild):
(WebCore::ScrollingTreeNode::removeChild):
* page/scrolling/ScrollingTreeNode.h:
(WebCore):
(ScrollingTreeNode):
(WebCore::ScrollingTreeNode::scrollingNodeID):
(WebCore::ScrollingTreeNode::setScrollingNodeID):
(WebCore::ScrollingTreeNode::parent):
(WebCore::ScrollingTreeNode::setParent):
(WebCore::ScrollingTreeNode::scrollingTree):
This class contains all of the scrolling-related work that used to be
done in ScrollingTreeNode.
* page/scrolling/ScrollingTreeScrollingNode.cpp: Added.
(WebCore):
(WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
(WebCore::ScrollingTreeScrollingNode::~ScrollingTreeScrollingNode):
(WebCore::ScrollingTreeScrollingNode::update):
* page/scrolling/ScrollingTreeScrollingNode.h: Added.
(WebCore):
(ScrollingTreeScrollingNode):
(WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionOnMainThread):
(WebCore::ScrollingTreeScrollingNode::viewportRect):
(WebCore::ScrollingTreeScrollingNode::contentsSize):
(WebCore::ScrollingTreeScrollingNode::horizontalScrollElasticity):
(WebCore::ScrollingTreeScrollingNode::verticalScrollElasticity):
(WebCore::ScrollingTreeScrollingNode::hasEnabledHorizontalScrollbar):
(WebCore::ScrollingTreeScrollingNode::hasEnabledVerticalScrollbar):
(WebCore::ScrollingTreeScrollingNode::canHaveScrollbars):
(WebCore::ScrollingTreeScrollingNode::scrollOrigin):
I noticed this whitespace error and had to fix it.
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::detachFromStateTree):
Include ScrollingTreeScrollingNodeMac.h instead of
ScrollingTreeNodeMac.h
* page/scrolling/mac/ScrollingTreeMac.mm:
This class was just re-named.
* page/scrolling/mac/ScrollingTreeNodeMac.h: Removed.
* page/scrolling/mac/ScrollingTreeNodeMac.mm: Removed.
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h: Copied from page/scrolling/mac/ScrollingTreeNodeMac.h.
(ScrollingTreeScrollingNodeMac):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm: Copied from page/scrolling/mac/ScrollingTreeNodeMac.mm.
(WebCore::ScrollingTreeScrollingNode::create):
(WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
(WebCore::ScrollingTreeScrollingNodeMac::~ScrollingTreeScrollingNodeMac):
(WebCore::ScrollingTreeScrollingNodeMac::update):
(WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
(WebCore::ScrollingTreeScrollingNodeMac::allowsHorizontalStretching):
(WebCore::ScrollingTreeScrollingNodeMac::allowsVerticalStretching):
(WebCore::ScrollingTreeScrollingNodeMac::stretchAmount):
(WebCore::ScrollingTreeScrollingNodeMac::pinnedInDirection):
(WebCore::ScrollingTreeScrollingNodeMac::canScrollHorizontally):
(WebCore::ScrollingTreeScrollingNodeMac::canScrollVertically):
(WebCore::ScrollingTreeScrollingNodeMac::shouldRubberBandInDirection):
(WebCore::ScrollingTreeScrollingNodeMac::absoluteScrollPosition):
(WebCore::ScrollingTreeScrollingNodeMac::immediateScrollBy):
(WebCore::ScrollingTreeScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeScrollingNodeMac::startSnapRubberbandTimer):
(WebCore::ScrollingTreeScrollingNodeMac::stopSnapRubberbandTimer):
(WebCore::ScrollingTreeScrollingNodeMac::scrollPosition):
(WebCore::ScrollingTreeScrollingNodeMac::setScrollPosition):
(WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
(WebCore::ScrollingTreeScrollingNodeMac::minimumScrollPosition):
(WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
(WebCore::ScrollingTreeScrollingNodeMac::scrollBy):
(WebCore::ScrollingTreeScrollingNodeMac::scrollByWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeScrollingNodeMac::updateMainFramePinState):
(WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
2012-10-16 Simon Fraser <simon.fraser@apple.com>
Add a new layer type for the page tiled cache layer
https://bugs.webkit.org/show_bug.cgi?id=99491
Reviewed by Dean Jackson.
In preparation for using tile cache layers in place of CATiledLayer,
add a new PlatformCALayer layer type LayerTypePageTileCacheLayer,
since the page tile cache will have some different behavior from
other tile cache layers.
Generalize code that was looking at LayerTypeTileCacheLayer to use
usesTileCacheLayer() if it applies to both types of tile caches.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::recursiveCommitChanges): Show the tile
wash for tiled layers as well as layers with transforms (the tile
wash is just for debugging).
(WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
* platform/graphics/ca/PlatformCALayer.h:
(WebCore::PlatformCALayer::usesTileCacheLayer):
(PlatformCALayer):
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::PlatformCALayer):
(PlatformCALayer::~PlatformCALayer):
(PlatformCALayer::tiledBacking):
* platform/graphics/mac/WebLayer.mm:
(drawLayerContents): Avoid double-drawing the repaint counter in tile cache layers.
2012-10-16 Stephen Chenney <schenney@chromium.org>
An feImage that tries to render itself should be stopped
https://bugs.webkit.org/show_bug.cgi?id=94652
Reviewed by Eric Seidel.
An SVG feImage filter element will accept, as the src to render, an
SVG document that makes use of the feImage itself. This causes the
feImage to try to draw itself while already in the process of drawing
itself. Various problems arise from this. The invariant we wish to
maintain is that no element in the src tree of an feImage element
refers to that feImage.
This patch adds a flag to all FilterData objects that tracks whether or
not the filter is currently applying itself, and avoids applying the
filter recursively.
While it may seem better to catch this problem when the src is set, or
when the filter is built, that turns out to be challenging and
inefficient. Say we choose to test when the src atttribute is set. To
do so would require looking through all of the DOM nodes that will be
rendered for the src, finding all resources used, and checking if any
of them make use fo the feImage element that we are setting the source
for. The infrastructure is not in place to do that, and it would
involve walking a potentially very large portion of the DOM in order
to detect a very rare situation. Note that it is not enough just to
walk the DOM directly under the src; we also need to recursively follow any
resource links to see if they use the feImage (e.g. patterns or
masks or use or ...).
If we instead try to use the renderer node to find self referencing,
we need to recursively walk a potentially very large render tree,
tracing all resources in search of the feImage. This would need to be
done every time the filter is built, which is again a significant
overhead for a situation that is very unlikely to occur. And we do not
have methods that make it easy to find feImage filter effect nodes; they are
hidden behind filter resource nodes.
Hence the runtime check to catch the problem. The check must be in
FilterData and RenderSVGResourceFilter code because we must prevent
the destruction of the feImage when we encounter it recursively.
This patch also renames FilterData::builded to FilterData::isBuilt.
Test: svg/filters/feImage-self-referencing.html
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::ApplyingFilterEffectGuard): Guard to ensure that, in the future, we always
clear the isApplying flag even if the postApplyResource method returns early.
(WebCore::RenderSVGResourceFilter::applyResource): Do not apply a resource that is already applying and
rename builded to isBuilt.
(WebCore::RenderSVGResourceFilter::postApplyResource): Mark a resource as applying and clear after
it is done. Abort if a resource is already applying when the method begins. Rename builded to isBuilt.
(WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Rename builded to isBuilt.
* rendering/svg/RenderSVGResourceFilter.h:
(WebCore::FilterData::FilterData):
(FilterData): Add isApplying and rename builded to isBuilt.
2012-10-16 Nate Chapin <japhet@chromium.org>
sendResourceLoadCallbacks() is poorly named
https://bugs.webkit.org/show_bug.cgi?id=99482
Reviewed by Alexey Proskuryakov.
In both CachedResource and ResourceLoader, rename sendResourceLoadCallbacks()
to shouldSendResourceLoadCallbacks() to better indicate that it is a simple getter.
No new tests, simple renaming.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::shouldSendResourceLoadCallbacks):
* loader/cache/CachedResource.h:
(WebCore::CachedResource::shouldSendResourceLoadCallbacks):
2012-10-16 Chris Rogers <crogers@google.com>
Rename some AudioNodes
https://bugs.webkit.org/show_bug.cgi?id=99358
Reviewed by Daniel Bates.
Here's a list of the node names, showing the changing ones:
AudioBufferSourceNode
MediaElementAudioSourceNode
MediaStreamAudioSourceNode
JavaScriptAudioNode ------------> ScriptProcessorNode
RealtimeAnalyserNode ------------> AnalyserNode
AudioGainNode ------------> GainNode
DelayNode
BiquadFilterNode
AudioPannerNode ------------> PannerNode
ConvolverNode
AudioChannelSplitter ------------> ChannelSplitterNode
AudioChannelMerger ------------> ChannelMergerNode
DynamicsCompressorNode
Oscillator ------------> OscillatorNode
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Modules/webaudio/AnalyserNode.cpp: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.cpp.
* Modules/webaudio/AnalyserNode.idl: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.idl.
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::setPannerNode):
* Modules/webaudio/AudioBufferSourceNode.h:
(AudioBufferSourceNode):
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createJavaScriptNode):
(WebCore::AudioContext::createPanner):
(WebCore::AudioContext::createAnalyser):
(WebCore::AudioContext::createGainNode):
(WebCore::AudioContext::createChannelSplitter):
(WebCore::AudioContext::createChannelMerger):
(WebCore::AudioContext::createOscillator):
* Modules/webaudio/AudioContext.h:
(WebCore):
(AudioContext):
* Modules/webaudio/AudioContext.idl:
* Modules/webaudio/ChannelMergerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.cpp.
* Modules/webaudio/ChannelMergerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.h.
(WebCore):
(ChannelMergerNode):
* Modules/webaudio/ChannelMergerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.idl.
* Modules/webaudio/ChannelSplitterNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.cpp.
* Modules/webaudio/ChannelSplitterNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.h.
(WebCore):
(ChannelSplitterNode):
* Modules/webaudio/ChannelSplitterNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.idl.
* Modules/webaudio/DOMWindowWebAudio.idl:
* Modules/webaudio/GainNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.cpp.
* Modules/webaudio/GainNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.h.
* Modules/webaudio/GainNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.idl.
* Modules/webaudio/OscillatorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/Oscillator.cpp.
* Modules/webaudio/OscillatorNode.h: Renamed from Source/WebCore/Modules/webaudio/Oscillator.h.
* Modules/webaudio/OscillatorNode.idl: Renamed from Source/WebCore/Modules/webaudio/Oscillator.idl.
* Modules/webaudio/PannerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.cpp.
* Modules/webaudio/PannerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.h.
(WebCore):
* Modules/webaudio/PannerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.idl.
* Modules/webaudio/ScriptProcessorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.cpp.
* Modules/webaudio/ScriptProcessorNode.h: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.h.
(WebCore):
* Modules/webaudio/ScriptProcessorNode.idl: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.idl.
* Modules/webaudio/WaveTable.cpp:
(WebCore::WaveTable::createSine):
(WebCore::WaveTable::createSquare):
(WebCore::WaveTable::createSawtooth):
(WebCore::WaveTable::createTriangle):
(WebCore::WaveTable::generateBasicWaveform):
* Target.pri:
* UseJSC.cmake:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSScriptProcessorNodeCustom.cpp: Renamed from Source/WebCore/bindings/js/JSJavaScriptAudioNodeCustom.cpp.
(WebCore):
(WebCore::JSScriptProcessorNode::visitChildren):
* dom/EventTarget.h:
(WebCore):
* dom/EventTargetFactory.in:
2012-10-16 Noam Rosenthal <noam.rosenthal@nokia.com>
[Texmap] Refactor TextureMapperShaderManager to be clearer
https://bugs.webkit.org/show_bug.cgi?id=86048
Reviewed by Martin Robinson.
Previous implementation of TextureMapperShaderManager was very verbose, calling for too
many casts and ambiguous ownership.
This refactor does the following:
1. TextureMapperShaderProgram is one class without subclasses.
2. Uniform/Attribute accessors are generated by special macros (TEXMAP_DECLARE_...) that
generate both the C++ access function, as well as the GLSL name of the variable. This
allows adding/removing variables from a shader without adding broiler-plate code like
before.
After this change TextureMapperShaderManager has only one responsibility - dealing with
TextureMapperGL's built-in shaders and their lifecycle. Preparing filters etc. is done
in TextureMapperGL.
This is a refactor without new functionality. It has been verified to not break any existing
relevant test.
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawBorder):
(WebCore::TextureMapperGL::drawQuad):
(WebCore::TextureMapperGL::drawTextureRectangleARB):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawTextureWithAntialiasing):
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
(WebCore::TextureMapperGL::beginClip):
Use the MACRO-generated uniform accessors.
(WebCore):
(WebCore::keyForFilterType):
(WebCore::getPassesRequiredForFilter):
(WebCore::gauss):
(WebCore::gaussianKernel):
(WebCore::prepareFilterProgram):
(WebCore::TextureMapperGL::drawFiltered):
(WebCore::BitmapTextureGL::applyFilters):
Move the filter logic to TextureMapperGL
* platform/graphics/texmap/TextureMapperShaderManager.cpp:
(WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
(WebCore::TextureMapperShaderProgram::getLocation):
(ShaderSpec):
(WebCore::ShaderSpec::ShaderSpec):
(WebCore::getShaderSpec):
(WebCore::TextureMapperShaderManager::TextureMapperShaderManager):
(WebCore::TextureMapperShaderManager::~TextureMapperShaderManager):
(WebCore::TextureMapperShaderManager::getShaderProgram):
* platform/graphics/texmap/TextureMapperShaderManager.h:
(WebCore):
(WebCore::TextureMapperShaderProgram::programID):
(WebCore::TextureMapperShaderProgram::context):
(WebCore::TextureMapperShaderProgram::create):
(TextureMapperShaderProgram):
(TextureMapperShaderManager):
See description.
2012-10-16 Nico Weber <thakis@chromium.org>
[chromium/mac] Make spelling indicator HighDPI
https://bugs.webkit.org/show_bug.cgi?id=99417
Reviewed by Stephen White.
This is the mac version of http://trac.webkit.org/changeset/130940
Since the mac and non-mac code are very similar again, merge the two
code paths again.
Covered by editing/spelling/(inline-spelling|grammar)-markers-hidpi.html
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::drawLineForDocumentMarker):
2012-10-16 Tony Chang <tony@chromium.org>
in a column flexbox, input overflows the box when stretched
https://bugs.webkit.org/show_bug.cgi?id=99273
Reviewed by Ojan Vafai.
Fix a bug where we didn't properly subtract padding and border when overriding the child size.
We didn't see this because of a performance optimization in RenderBox where we stretch children.
Also apply this performance optimization in new flexbox for form controls.
Test: css3/flexbox/stretch-input-in-column.html
* rendering/RenderBox.cpp:
(WebCore::flexboxChildHasStretchAlignment):
(WebCore::isStretchingVerticalFlexboxChild):
(WebCore::RenderBox::sizesLogicalWidthToFitContent): Apply performance optimization to form controls in new flexbox.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Properly subtract border and padding.
2012-10-16 Simon Fraser <simon.fraser@apple.com>
REGRESSION (r128787): Fixed position div causes other elements to not update correctly
https://bugs.webkit.org/show_bug.cgi?id=98579
Reviewed by Beth Dakin.
RenderLayers cache repaint rects which are computed relative to the repaint container.
Repaint containers depend on whether a RenderLayerBacking has its own backing store,
so if that changes, we need to recompute repaint rects for all descendants.
Test: compositing/repaint/requires-backing-repaint.html
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::setRequiresOwnBackingStore):
2012-10-16 Zan Dobersek <zandobersek@gmail.com>
[GStreamer] GstBuffer ref race in WebKitWebAudioSrcLoop
https://bugs.webkit.org/show_bug.cgi?id=95833
Reviewed by Philippe Normand.
The render bus used in GStreamer's implementation of AudioDestination no longer
allocates memory for each of its channels. Rather than that, when looping, the
data is rendered into a channel-specific GstBuffer. Each buffer is then chained
to the appropriate GstPad, as has been the case before.
No new tests - there are tests covering this change but they are not yet working
on the GTK port or any other GStreamer implementation of Web Audio.
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(_WebKitWebAudioSourcePrivate): Remove an unused member variable.
(webkit_web_audio_src_init): Remove an unnecessary line.
(webKitWebAudioSrcConstructed): Ditto.
(webKitWebAudioSrcLoop):
2012-10-16 Pablo Flouret <pablof@motorola.com>
Pre-process CSSGrammar.y before running through bison.
https://bugs.webkit.org/show_bug.cgi?id=94290
Reviewed by Tony Chang.
Running CSSGrammar.y through a preprocessor allows the use of feature
defines in all places of the yacc file (i.e. not just in C blocks).
Mostly useful to be able to keep every part of a feature under feature
flags for self-documenting purposes.
No new tests, CSSGrammar.y should be generated correctly and everything
should keep working as before.
* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.am:
Modify build systems to use makegrammar.pl to generate the .y files
and run those through bison.
* WebCore.gyp/WebCore.gyp:
Add a new action to preprocess the CSSGrammar.y.in file before the
bison rule is run.
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Add the new .y.in / .y.includes files.
* css/CSSGrammar.y.in: Renamed from Source/WebCore/css/CSSGrammar.y.
Also moved the top declarations section that has includes, defines,
etc. to its own file. These shouldn't be touched by the first
pass of the preprocessor. And changed the existing ENABLE(FEATURE)
ifdefs to ENABLE_FEATURE since the ENABLE() macro is not available
yet.
* css/CSSGrammar.y.includes: Added.
The aforementioned declarations header section. After the .y.in file
is processed it will be concatenated with this one to make the
CSSGrammar.y file.
* css/makegrammar.pl:
Modify the script to handle .y.in files.
2012-10-16 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Implement testRunner.dumpSelectionRect() in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=69545
Reviewed by Simon Fraser.
* WebCore.exp.in:
2012-10-16 Allan Sandfeld Jensen <allan.jensen@digia.com>
[Qt] Implement fastBoundingPath/boundingPath distinction.
https://bugs.webkit.org/show_bug.cgi?id=99471
Reviewed by Noam Rosenthal.
Tested by existing test: svg/custom/getBBox-path.svg
* platform/graphics/Path.cpp:
* platform/graphics/qt/PathQt.cpp:
(WebCore::Path::fastBoundingRect):
(WebCore::Path::boundingRect):
2012-10-16 Rob Buis <rbuis@rim.com>
[BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
https://bugs.webkit.org/show_bug.cgi?id=99302
Reviewed by Yong Li.
Fix a warning introduced by r131335. Since in release BBLOG is empty, only enable this block in debug builds.
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::compileShader):
2012-10-16 Antoine Quint <graouts@apple.com>
Inspector should allow reading the compositing debug settings
https://bugs.webkit.org/show_bug.cgi?id=99458
Reviewed by Timothy Hatcher.
* inspector/Inspector.json:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::getCompositingBordersVisible):
* inspector/InspectorPageAgent.h:
2012-10-16 Dan Bernstein <mitz@apple.com>
Code to reverse a GlyphBuffer range is repeated in several places
https://bugs.webkit.org/show_bug.cgi?id=99424
Reviewed by Adele Peterson.
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced for loop with a call to
GlyphBuffer::reverse.
* platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBuffer::reverse): Added. Reverses the given range.
(WebCore::GlyphBuffer::swap): Made private.
* platform/graphics/WidthIterator.cpp:
(WebCore::applyFontTransforms): Replaced for loops with calls to GlyphBuffer::reverse and
corrected their bounds.
* platform/graphics/mac/FontComplexTextMac.cpp:
(WebCore::Font::getGlyphsAndAdvancesForComplexText): Replaced for loop with a call to
GlyphBuffer::range.
2012-10-16 Nate Chapin <japhet@chromium.org>
Re-order CachedRawResource::data() to set m_data earlier
https://bugs.webkit.org/show_bug.cgi?id=99361
Reviewed by Adam Barth.
Currently, we calculate the diff between the data parameter and m_data, call
dataReceived(), then set m_data to data. If something inside dataReceived()
tries to access m_data via CachedResource::resourceBuffer(), it will see the
old data instead of the new data, which seems inconsistent.
No new tests, as no one appears to try to access m_data within dataReceived() currently.
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::data):
2012-10-16 Julien Chaffraix <jchaffraix@webkit.org>
Fold setCellLogicalWidths logic into RenderTableSection layout
https://bugs.webkit.org/show_bug.cgi?id=99382
Reviewed by Eric Seidel.
setCellLogicalWidths was implemented as a pre-phase to laying out
the table's sections. This split was artificial as any change in
the columns' logical width should trigger a sections' relayout, which
could propagate and mark the cells / rows as needed.
Merging setCellLogicalWidths into RenderTableSection::layout removes
an unneeded cells walking and some clunkiness from our implementation.
Refactoring covered by the existing tests.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable): Initialize our new boolean.
(WebCore::RenderTable::layout):
If m_columnLogicalWidthChanged, we force a relayout on our sections so that the cells and rows
are marked for layout if there is the logical width change.
* rendering/RenderTable.h:
(WebCore::RenderTable):
Added a new boolean to track if a column logical width changed (m_columnLogicalWidthChanged).
(WebCore::RenderTable::setColumnPosition):
If a column position changed, register that our column logical widths changed. This is not
totally true, so added a comment about when it will be wrong.
* rendering/RenderTableCell.h:
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::setCellLogicalWidth):
Updated the function to mark the cell and the row for layout. Also changed the argument to
be an 'int' as this was what was passed in.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::layout):
* rendering/RenderTableSection.h:
Removed setCellLogicalWidths and merged the logic into RenderTableSection::layout. We propagate
the table layout's logical widths first so that rows are marked as needing layout as appropriate.
2012-10-16 Takashi Sakamoto <tasak@google.com>
[Meta] [Shadow] contenteditable attribute for distributed nodes.
https://bugs.webkit.org/show_bug.cgi?id=90017
Reviewed by Dimitri Glazkov.
If an element is distributed to an insertion point, the element's
webkit-user-modify is inherited from its shadow host.
No new tests, because the existing test: user-modify-inheritance.html
covers this change.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::styleForElement):
After an element inherits a style from its parent, override user-modify
by using the shadow host's style if the element is distributed.
2012-10-16 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Get rid of (now empty) JavaScriptSource and StyleSource, rename all usages to UISourceCode.
https://bugs.webkit.org/show_bug.cgi?id=99469
Reviewed by Pavel Feldman.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.py:
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
(WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
* inspector/front-end/CompilerScriptMapping.js:
* inspector/front-end/JavaScriptSource.js: Removed.
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame):
(WebInspector.JavaScriptSourceFrame.prototype.canEditSource):
(WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyChanged):
(WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
(WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
(WebInspector.JavaScriptSourceFrame.prototype.populateLineGutterContextMenu):
(WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
(WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
(WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
(WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
(WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
(WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
(WebInspector.JavaScriptSourceFrame.prototype.onTextEditorContentLoaded):
(WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
(WebInspector.JavaScriptSourceFrame.prototype._toggleBreakpoint):
(WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
(WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
* inspector/front-end/NetworkUISourceCodeProvider.js:
(WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
(WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.ScriptSnippetModel):
(WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
(WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.get var):
(WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.compileCallback):
(WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet):
(WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
(WebInspector.ScriptSnippetModel.prototype._removeBreakpoints):
(WebInspector.ScriptSnippetModel.prototype._projectWillReset):
(WebInspector.SnippetScriptFile):
(WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
(WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
* inspector/front-end/ScriptsNavigator.js:
(WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
(WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._createSourceFrame):
(WebInspector.ScriptsPanel.prototype._uiSourceCodeFormatted):
(WebInspector.ScriptsPanel.prototype._showOutlineDialog):
(WebInspector.ScriptsPanel.prototype.set _fileRenamed):
(WebInspector.ScriptsPanel.prototype._snippetCreationRequested.callback):
(WebInspector.ScriptsPanel.prototype._snippetCreationRequested):
* inspector/front-end/SnippetJavaScriptSourceFrame.js:
(WebInspector.SnippetJavaScriptSourceFrame):
(WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
* inspector/front-end/StyleSheetOutlineDialog.js:
(WebInspector.StyleSheetOutlineDialog):
(WebInspector.StyleSheetOutlineDialog.show):
(WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
* inspector/front-end/StyleSource.js: Removed.
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2012-10-15 Jer Noble <jer.noble@apple.com>
WebAudio: limit output level to 0db
https://bugs.webkit.org/show_bug.cgi?id=95792
<rdar://problem/11966135>
Reviewed by Chris Rogers.
Clamp the output buffer data to the range of [-1,1], which limits
output volume to 0db. This ensures that malicious or poorly-written
pages will not be able to blow through the system volume limit by
creating >0db buffers and effects.
No new tests; added ManualTests/webaudio/limit-level-0db.html.
Clamp the output vector to values of [-1,1]:
* platform/audio/mac/AudioDestinationMac.cpp:
(WebCore::AudioDestinationMac::render):
Add a VectorMath wrapper for vDSP_clip to provide accelerated vector threshold operations:
* platform/audio/VectorMath.h:
* platform/audio/VectorMath.cpp:
(VectorMath):
(WebCore::VectorMath::vclip):
2012-10-15 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Extract domain specific editing handling logic from UISourceCode (step 2).
https://bugs.webkit.org/show_bug.cgi?id=99301
Reviewed by Pavel Feldman.
StyleFile and ScriptFile now listen for the UISourceCode WorkingCopyChanged/Committed events and process
them instead of being called explicitly.
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame):
(WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
(WebInspector.JavaScriptSourceFrame.prototype._willMergeToVM):
(WebInspector.JavaScriptSourceFrame.prototype._didMergeToVM):
(WebInspector.JavaScriptSourceFrame.prototype._willDivergeFromVM):
(WebInspector.JavaScriptSourceFrame.prototype._didDivergeFromVM):
(WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
(WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
(WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
(WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
(WebInspector.ResourceScriptFile):
(WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
(WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
* inspector/front-end/ScriptSnippetModel.js:
(WebInspector.SnippetScriptFile):
(WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
(WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
* inspector/front-end/StylesSourceMapping.js:
(WebInspector.StyleFile):
(WebInspector.StyleFile.prototype._workingCopyCommitted):
(WebInspector.StyleFile.prototype._workingCopyChanged):
(WebInspector.StyleFile.prototype._commitIncrementalEdit):
(WebInspector.StyleFile.prototype._clearIncrementalUpdateTimer):
(WebInspector.StyleFile.prototype.addRevision):
(WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.setWorkingCopy):
(WebInspector.UISourceCode.prototype.commitWorkingCopy):
2012-10-16 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Elements] Double-click to live edit style tags changes text to 'undefined' in some situations
https://bugs.webkit.org/show_bug.cgi?id=99336
Reviewed by Vsevolod Vlasov.
Before editing text nodes, set their textContent to the nodeValue() of the corresponding WebInspector.DOMNode in the UI.
Drive-by: fix text node editing artifact in the DOM tree.
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype._startEditingTextNode):
(WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted):
2012-10-16 Mike West <mkwst@chromium.org>
Web Inspector: Whitelist safe styles for 'console.log('%c...', ...)'.
https://bugs.webkit.org/show_bug.cgi?id=98945
Reviewed by Pavel Feldman.
Support for styling console messages via '%c' landed without any
parsing of the style information provided. This means that it's fairly
simple to accidentally or maliciously break the console with cleverly
styled messages. To mitigate this risk, whitelisting a safe subset of
CSS seems appropriate.
As a first pass at a reasonable whitelist, this patch allows
'background[-*]', 'border[-*]', 'color[-*]', 'font[-*]',
'margin[-*]', 'padding[-*]', 'text[-*]', '-webkit-background[-*]',
'-webkit-border[-*]', '-webkit-font[-*]', '-webkit-margin[-*]',
'-webkit-padding[-*]', and '-webkit-text[-*]'.
Test: inspector/console/console-format-style-whitelist.html
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.styleFormatter):
Create a buffer element onto which the user-provided styles are
applied. Whitelisted styles are transfered from the buffer onto
the actual console message.
(WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.isWhitelistedProperty):
Returns true if the specific style is whitelisted. Expects styles
in the hyphenated form (that is, '-webkit-padding-start' rather than
CSSOM's 'webkitPaddingStart').
2012-10-16 Luke Macpherson <macpherson@chromium.org>
Handle CSSPropertyOpacity in StyleBuilder.
https://bugs.webkit.org/show_bug.cgi?id=99418
Reviewed by Alexis Menard.
One small step in moving from the huge switch in StyleResolver::applyProperty() to the StyleBuilder approach.
Covered by many existing tests, for example fast/text/complex-text-opacity.html.
* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
2012-10-16 Kent Tamura <tkent@chromium.org>
Fix some appearance glitches of multiple fields input elements
https://bugs.webkit.org/show_bug.cgi?id=99412
A follow-up change for r131421.
* css/themeWin.css:
(input[type="text"]): Don't reset paddings for date/time types.
2012-10-16 Kenichi Ishibashi <bashi@chromium.org>
hb_face_t instances should not depend on FontPlatformData
https://bugs.webkit.org/show_bug.cgi?id=99430
Reviewed by Kent Tamura.
Use platform specific font data (e.g. SkTypeface) to get
font tables for harfbuzz-ng.
No new tests. No changes in behavior.
* platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCairo.cpp:
(WebCore::harfbuzzCairoGetTable): Takes cairo_scaled_font_t* as userData.
(WebCore::HarfBuzzNGFace::createFace):
* platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCoreText.cpp:
(WebCore::harfbuzzCoreTextGetTable): Takes CGFontRef as userData.
(WebCore::HarfBuzzNGFace::createFace):
* platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
(WebCore::harfbuzzSkiaGetTable): Takes SkFontID as userData.
(WebCore::HarfBuzzNGFace::createFace):
2012-10-16 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r131418.
http://trac.webkit.org/changeset/131418
https://bugs.webkit.org/show_bug.cgi?id=99431
since 131403 seems innocent (Requested by shinyak|_ on
#webkit).
* dom/Document.cpp:
(WebCore::isValidNameNonASCII):
(WebCore):
(WebCore::Document::isValidName):
2012-10-16 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: NMI Instrument InspectorOverlay. It costs us ~9Mb because it creates page size canvas.
https://bugs.webkit.org/show_bug.cgi?id=99426
Reviewed by Yury Semikhatsky.
New object type InspectorOverlay was added. InspectorOverlay was instrumented.
The instrumentation code automatically visits all the objects that can be reached via m_overlayPage.
* dom/WebCoreMemoryInstrumentation.cpp:
(WebCore):
* dom/WebCoreMemoryInstrumentation.h:
(WebCoreMemoryTypes):
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::reportMemoryUsage):
(WebCore):
* inspector/InspectorOverlay.h:
(InspectorOverlay):
2012-10-16 Kent Tamura <tkent@chromium.org>
Remove unused functions in Locale* classes
https://bugs.webkit.org/show_bug.cgi?id=99425
Reviewed by Yuta Kitamura.
Locale*::currentLocale has been unused since LocalizedDate* and
LocalizedNumber* were removed.
No new tests. This shouldn't change any behavior.
* platform/text/LocaleICU.cpp: Remove createForCurrentLocale and currentLocale.
* platform/text/LocaleICU.h: Ditto.
* platform/text/LocaleWin.cpp: Remove currentLocale.
* platform/text/LocaleWin.h: Ditto.
* platform/text/mac/LocaleMac.h: Remove currentLocale.
* platform/text/mac/LocaleMac.mm: Ditto.
2012-10-15 Kent Tamura <tkent@chromium.org>
Fix some appearance glitches of multiple fields input elements
https://bugs.webkit.org/show_bug.cgi?id=99412
Reviewed by Kentaro Hara.
1. If CSS-specified width is wider than the intrinsic width of an input,
the spin button and the picker indicator triangle should be put at the
right side of the content area.
2. Remove top, right, and bottom paddings to match input[type=number]
appearance as possible.
3. Remove unnecessary position:relative for spin buttons.
4. Center content vertically if the height is taller than the intrinsic height.
Tests: Update all of rendering tests for input element with multiple fields UI.
* css/html.css:
(input[type="date"]):
- Specify display:-webkit-inline-flex and -webkit-align-items:stretch to center contents.
- Remove top/right/bottom paddings.
(input[type="datetime"]): Ditto.
(input[type="datetime-local"]): Ditto.
(input[type="month"]): Ditto.
(input[type="time"]): Ditto.
(input[type="week"]): Ditto.
(input::-webkit-datetime-edit):
- Switch to the starndard flexible box from the legacy one.
- Add white-space:pre to avoid to collapse white spaces.
(input::-webkit-datetime-edit-gap):
Added. This element is added to push a spin button to the right side.
(input::-webkit-date-and-time-container):
Add -webkit-flex:1 for the input flexible box.
Sort properties.
(input[type="week"]::-webkit-inner-spin-button):
- Use this in date, datetime, datetime-local, and week types.
- Add display:inline-block because other elements in -webkit-datetime-edit is inilne.
- Add position:static to cancel position:relative below.
* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditElement::layout):
Add an element with -webkit-datetime-edit-gap before a spin button.
2012-10-15 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: can't click delete button if watch expression is very long
https://bugs.webkit.org/show_bug.cgi?id=99414
Reviewed by Vsevolod Vlasov.
Minus button in watch expression section doesn't overlap with the
expression/value anymore.
* inspector/front-end/inspector.css:
(.properties-tree.watch-expressions > li.hovered):
2012-10-15 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r131403.
http://trac.webkit.org/changeset/131403
https://bugs.webkit.org/show_bug.cgi?id=99420
Suspicious to cause Performance test failing (Requested by
shinyak|gardenin on #webkit).
* dom/Document.cpp:
(WebCore::Document::isValidName):
2012-10-15 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: restore watch expression expansion state
https://bugs.webkit.org/show_bug.cgi?id=99304
Reviewed by Pavel Feldman.
Expand watch expression value and its properties if they were expanded
before update.
Test: inspector/debugger/watch-expressions-preserve-expansion.html
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionTreeElement.prototype.onexpand):
(WebInspector.WatchExpressionTreeElement.prototype.oncollapse):
(WebInspector.WatchExpressionTreeElement.prototype.onattach):
(WebInspector.WatchExpressionTreeElement.prototype._expression):
(WebInspector.WatchedPropertyTreeElement):
(WebInspector.WatchedPropertyTreeElement.prototype.onattach):
(WebInspector.WatchedPropertyTreeElement.prototype.onexpand):
(WebInspector.WatchedPropertyTreeElement.prototype.oncollapse):
(WebInspector.WatchedPropertyTreeElement.prototype._propertyPath):
2012-10-15 Mike West <mkwst@chromium.org>
Warn when CSP headers don't separate directives with ';'.
https://bugs.webkit.org/show_bug.cgi?id=99274
Reviewed by Adam Barth.
A recent bug report exhibited confusion as to what role, exactly,
semicolons play in Content Security Policy definitions. This patch
adjusts the parser to warn web authors if a directive name is
encountered while parsing a source list, which would almost certainly
point to a missing semicolon. For example, something like:
script-src 'self' object-src 'self' style-src *
would throw two warnings, noting that 'object-src' and 'style-src' are
probably meant as directives, and not as source expressions in the
'script-src' source list.
Test: http/tests/security/contentSecurityPolicy/source-list-parsing-no-semicolon.html
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPSourceList::parse):
Throw the new warning onto the console if the hostname of a source
expression matches a CSP directive name.
(WebCore::CSPDirectiveList::addDirective):
Use the exciting new static variables so that the names of various
directives are available outside of CSPDirectiveList::addDirective.
These were previously defined as local static ASCIILiterals. Now
they're static const char[] in an anonymous namespace.
(WebCore::ContentSecurityPolicy::isDirectiveName):
Static method that compares a string to all the known directive
names, returning true if there's a (case-insensitive) match.
(WebCore):
(WebCore::ContentSecurityPolicy::reportDirectiveAsSourceExpression):
A new warning message which should be printed when a directive name
is encountered as a source expression. Matching the directive name
is done via a new 'isDirectiveName' function which lives in an
anonymous namespace along with the other CSP helper functions.
* page/ContentSecurityPolicy.h:
Added 'reportDirectiveAsSourceExpression' signature.
2012-10-15 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Unreviewed, rolling out r131349.
http://trac.webkit.org/changeset/131349
https://bugs.webkit.org/show_bug.cgi?id=97173
Revert r131349 because API test is broken by this commit.
* platform/efl/RunLoopEfl.cpp:
(WebCore::RunLoop::RunLoop):
(WebCore::RunLoop::~RunLoop):
2012-10-15 Nate Chapin <japhet@chromium.org>
ResourceLoader::sendResourceLoadCallbacks() is backwards
https://bugs.webkit.org/show_bug.cgi?id=99366
Reviewed by Daniel Bates.
No new tests, this function is uncalled but will be used
in a later patch.
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::sendResourceLoadCallbacks):
2012-10-15 Dan Bernstein <mitz@apple.com>
REGRESSION (r131365): WidthIterator::advance() is needlessly passed a GlyphBuffer in many cases
https://bugs.webkit.org/show_bug.cgi?id=99413
Reviewed by Adele Peterson.
r131365 made Font::width() always pass a GlyphBuffer pointer to floatWidthForSimpleText and
from there down to WidthIterator::advance(). However, when measuring the width of a run, a
GlyphBuffer is only needed if font transforms (kerning and ligatures) need to be applied.
No new test, because there is no change in behavior.
* platform/graphics/Font.cpp:
(WebCore::Font::width): Removed the local GlyphBuffer that was passed down to
floatWidthForSimpleText().
* platform/graphics/Font.h: Removed the GlyphBuffer* parameter to floatWidthForSimpleText.
All but the above caller were passing 0.
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::floatWidthForSimpleText): Removed the GlyphBuffer* parameter and added a
local GlyphBuffer, which is passed by reference to WidthIterator::advance() only if
typesetting features require it.
(WebCore::Font::offsetForPositionForSimpleText): Updated for change to
floatWidthForSimpleText.
* platform/graphics/pango/FontPango.cpp:
(WebCore::Font::floatWidthForComplexText): Ditto.
2012-10-15 Pablo Flouret <pablof@motorola.com>
Add force parameter to DOMTokenList.toggle
https://bugs.webkit.org/show_bug.cgi?id=99375
Reviewed by Darin Adler.
See http://dom.spec.whatwg.org/#dom-domtokenlist-toggle and
https://www.w3.org/Bugs/Public/show_bug.cgi?id=18463
Essentially, the optional boolean force parameter, if present, makes
toggle always add or remove a class.
No new tests, modified fast/dom/HTMLElement/script-tests/class-list.js
* html/DOMTokenList.cpp:
(WebCore::DOMTokenList::toggle):
(WebCore):
* html/DOMTokenList.h:
(DOMTokenList):
* html/DOMTokenList.idl:
New toggle() overload that takes a force parameter and calls
addInternal() or removeInternal() based on it.
2012-10-15 Dan Bernstein <mitz@apple.com>
Layout Test fast/text/justify-ideograph-leading-expansion.html is failing an assertion chromium mac
https://bugs.webkit.org/show_bug.cgi?id=99406
Reviewed by Darin Adler.
* platform/graphics/WidthIterator.cpp:
* platform/graphics/WidthIterator.h:
(WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
shorter than 2 characters. 1-character runs are invariant under font transforms, and therefore
Font::codePath() sends them through WidthIterator even on platforms where WidthIterator
does not support kerning and ligatures.
2012-10-15 Michael Saboff <msaboff@apple.com>
Add 8 bit patch to Document::isValidName() for the non ASCII case
https://bugs.webkit.org/show_bug.cgi?id=99402
Reviewed by Darin Adler.
Added 8 bit path to complete the processing of an 8 bit names without up-converting.
* dom/Document.cpp:
(WebCore::isValidNameNonASCII):
(WebCore::Document::isValidName):
2012-10-15 Vlad Grecescu <igrecesc@adobe.com>, Douglas Stockwell <dstockwell@chromium.org>
Support for background-clip:content-box and padding-box with border-radius
https://bugs.webkit.org/show_bug.cgi?id=23166
Reviewed by Simon Fraser.
Test: fast/css/background-clip-radius-values.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::clipRoundedInnerRect):
(WebCore):
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderBoxModelObject.h:
2012-10-15 Byungwoo Lee <bw80.lee@samsung.com>
Fix unused parameter build warning.
https://bugs.webkit.org/show_bug.cgi?id=99400
Reviewed by Gyuyoung Kim.
Remove the name of unused parameters to fix the build warning (-Wunused-parameter).
* platform/network/soup/ResourceErrorSoup.cpp:
(WebCore::ResourceError::tlsError):
2012-10-15 Kenichi Ishibashi <bashi@chromium.org>
[WebSocket] WebSocketInflater should handle BFINAL = 1 blocks
https://bugs.webkit.org/show_bug.cgi?id=99282
Reviewed by Yuta Kitamura.
Reset decompression state if WebSocketInflater decompress a block with
BFINAL set to 1.
Test: http/tests/websocket/tests/hybi/deflate-frame-set-bfinal.html
* Modules/websockets/WebSocketDeflater.cpp:
(WebCore::WebSocketInflater::addBytes):
Reset decompression state if inflate() returns Z_STREAM_END, which means the BFINAL
of the current block was set to 1.
(WebCore::WebSocketInflater::finish): Add an assertion.
2012-10-15 Simon Fraser <simon.fraser@apple.com>
Fix GraphicsLayer visible rect computation when scrolling in WebKit1
https://bugs.webkit.org/show_bug.cgi?id=99385
Reviewed by Dean Jackson, Tim Horton.
RenderLayerCompositor always used frameView->frameRect() as the visible
rect on the root used for GraphicsLayer visibleRect computation. This
was wrong for subframes, which require a rect with an origin of (0,0)
and size of the contentsSize().
It was also wrong when the scrolling is not represented in the GraphicsLayer
tree. When scrolling is done elsewhere, we need to use the ScrollView's
visibleContentRect().
Tests: compositing/visible-rect/scrolled.html
compositing/visible-rect/iframe-and-layers.html
compositing/visible-rect/iframe-no-layers.html
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
2012-10-15 Julien Chaffraix <jchaffraix@webkit.org>
Remove page visibility hidden histograms
https://bugs.webkit.org/show_bug.cgi?id=99360
Reviewed by Ojan Vafai.
The 2 page visibility hidden histograms were added in http://webkit.org/b/85537 to
investigate a potential optimization where we would destroy the render tree when
a tab was hidden. The optimization was abandoned but the histograms were never
removed. They are too narrow to be reused so this change removes them.
* page/Page.cpp:
(WebCore::Page::setVisibilityState):
2012-10-15 Ryuan Choi <ryuan.choi@samsung.com>
REGRESSION: Build break after r131373 when ACCELERATED_COMPOSITING disabled
https://bugs.webkit.org/show_bug.cgi?id=99397
Unreviewed, build fix.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
2012-10-14 Kent Tamura <tkent@chromium.org>
Input elements with multiple fields UI should set appropriate direction for browser locale automatically
https://bugs.webkit.org/show_bug.cgi?id=99291
Reviewed by Hajime Morita.
Input elemnts with multiple fields UI ignores HTML dir attribute or CSS
direction property, and their direction should be decided by the browser
locale. If the browser locale is a RTL language, date/time input fields
show formats/digits for the RTL language. The layout should be always
RTL regardless of the direction in such case.
Test: fast/forms/date-multiple-fields/date-multiple-fields-appearance-l10n.html
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
Set approriate dir attribute value to the child element of the UA shadow root.
2012-10-15 Andreas Kling <kling@webkit.org>
StyleResolver: Garbage collect the matched properties cache on a timer.
<http://webkit.org/b/98625>
Reviewed by Eric Seidel.
Sweeping the matched properties cache once every 100 additions ended up choking RoboHornet's
svgresize.html benchmark. Move it to a single-shot timer that's refreshed every 100 additions
and defers the actual sweep for 60 seconds.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::sweepMatchedPropertiesCache):
(WebCore::StyleResolver::addToMatchedPropertiesCache):
* css/StyleResolver.h:
(StyleResolver):
2012-10-15 Arnaud Renevier <a.renevier@sisa.samsung.com>
[GStreamer] GstCaps are leaked when building with gstreamer-1.0
https://bugs.webkit.org/show_bug.cgi?id=99362
Reviewed by Martin Robinson.
Implement GRefPtr<GstCaps> adoptGRef(GstCaps*).
Change webkitGstGetPadCaps signature to return a GRefPtr<GstCaps>, and
use GRefPtr<GstCaps> also in webkitVideoSinkRender to simply GstCaps
refeference count.
Covered by existing tests.
* platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
(WTF::adoptGRef):
(WTF):
* platform/graphics/gstreamer/GRefPtrGStreamer.h:
(WTF):
* platform/graphics/gstreamer/GStreamerVersioning.cpp:
(webkitGstGetPadCaps):
* platform/graphics/gstreamer/GStreamerVersioning.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::naturalSize):
* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkitVideoSinkRender):
2012-10-15 Tony Chang <tony@chromium.org>
Unreviewed, rolling out r131367.
http://trac.webkit.org/changeset/131367
https://bugs.webkit.org/show_bug.cgi?id=98666
crashes on Apple Mac
* css/html.css:
(input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container):
(input[type="range"]::-webkit-slider-runnable-track):
(input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
* css/mediaControlsChromium.css:
(input[type="range"]::-webkit-media-slider-thumb):
* css/mediaControlsChromiumAndroid.css:
(input[type="range"]::-webkit-media-slider-thumb):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::listAttributeTargetChanged):
* html/shadow/SliderThumbElement.cpp:
(WebCore::RenderSliderThumb::layout):
(WebCore):
(WebCore::RenderSliderContainer::RenderSliderContainer):
(RenderSliderContainer):
(WebCore::RenderSliderContainer::layout):
* html/shadow/SliderThumbElement.h:
(RenderSliderThumb):
* rendering/RenderSlider.cpp:
(WebCore):
(WebCore::RenderSlider::RenderSlider):
(WebCore::RenderSlider::layout):
* rendering/RenderSlider.h:
(WebCore):
(RenderSlider):
(WebCore::RenderSlider::renderName):
(WebCore::RenderSlider::isSlider):
(WebCore::RenderSlider::requiresForcedStyleRecalcPropagation):
(WebCore::toRenderSlider):
2012-10-15 Dan Bernstein <mitz@apple.com>
Try to fix the build again after r131375.
* platform/graphics/WidthIterator.h:
(WebCore::WidthIterator::shouldApplyFontTransforms): Removed the length check from here.
2012-10-15 Dan Bernstein <mitz@apple.com>
Try to fix assertion failures on ports that do not support kerning and ligatures on the fast
code path after r131365.
* platform/graphics/WidthIterator.cpp:
(WebCore::applyFontTransforms): Changed the early return condition to not bother with 1-glyph
sequences.
* platform/graphics/WidthIterator.h:
(WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
shorter than 2 characters.
2012-10-15 Dan Bernstein <mitz@apple.com>
Try to fix the Chromium Mac build after r131365.
* platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBufferAdvance::height): Added.
* platform/graphics/skia/FontSkia.cpp:
(WebCore::Font::drawGlyphs): Changed to use accessors for the GlyphBufferAdvance’s width and height.
2012-10-15 Simon Fraser <simon.fraser@apple.com>
Ensure that GraphicsLayer positions are updated while doing threaded scrolling
https://bugs.webkit.org/show_bug.cgi?id=99372
Reviewed by Anders Carlsson.
When doing threaded scrolling, the scrolling thread updates the positions of CALayers,
but doesn't update GraphicsLayers. This means that code that relies on GraphicsLayer positions
works incorrectly.
Threaded scrolling is not testabled in layout tests.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
* platform/graphics/GraphicsLayer.h:
(GraphicsLayer):
(WebCore::GraphicsLayer::syncPosition):
2012-10-15 Tommy Widenflycht <tommyw@google.com>
MediaStream API: Implement RTCDataChannel
https://bugs.webkit.org/show_bug.cgi?id=99080
Reviewed by Adam Barth.
This patch introduces RTCDataChannel which is a pipe for sending data between two RTCPeerConnections.
Since the data channel belongs to a peer connection object I have reused part of its infrastructure.
Not currently testable. My next patch will add the chromium WebKit functionality, together with mocks and tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/RTCDataChannel.cpp: Added.
(WebCore):
(WebCore::RTCDataChannel::create):
(WebCore::RTCDataChannel::RTCDataChannel):
(WebCore::RTCDataChannel::~RTCDataChannel):
(WebCore::RTCDataChannel::label):
(WebCore::RTCDataChannel::reliable):
(WebCore::RTCDataChannel::readyState):
(WebCore::RTCDataChannel::bufferedAmount):
(WebCore::RTCDataChannel::binaryType):
(WebCore::RTCDataChannel::setBinaryType):
(WebCore::RTCDataChannel::send):
(WebCore::RTCDataChannel::close):
(WebCore::RTCDataChannel::readyStateChanged):
(WebCore::RTCDataChannel::dataArrived):
(WebCore::RTCDataChannel::error):
(WebCore::RTCDataChannel::descriptor):
(WebCore::RTCDataChannel::interfaceName):
(WebCore::RTCDataChannel::scriptExecutionContext):
(WebCore::RTCDataChannel::stop):
(WebCore::RTCDataChannel::eventTargetData):
(WebCore::RTCDataChannel::ensureEventTargetData):
* Modules/mediastream/RTCDataChannel.h: Added.
(WebCore):
(RTCDataChannel):
(WebCore::RTCDataChannel::refEventTarget):
(WebCore::RTCDataChannel::derefEventTarget):
* Modules/mediastream/RTCDataChannel.idl: Added.
* Modules/mediastream/RTCDataChannelEvent.cpp: Added.
(WebCore):
(WebCore::RTCDataChannelEvent::create):
(WebCore::RTCDataChannelEvent::RTCDataChannelEvent):
(WebCore::RTCDataChannelEvent::~RTCDataChannelEvent):
(WebCore::RTCDataChannelEvent::channel):
(WebCore::RTCDataChannelEvent::interfaceName):
* Modules/mediastream/RTCDataChannelEvent.h: Added.
(WebCore):
(RTCDataChannelEvent):
* Modules/mediastream/RTCDataChannelEvent.idl: Added.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::createDataChannel):
(WebCore):
(WebCore::RTCPeerConnection::close):
(WebCore::RTCPeerConnection::didAddRemoteDataChannel):
(WebCore::RTCPeerConnection::stop):
* Modules/mediastream/RTCPeerConnection.h:
(WebCore):
(RTCPeerConnection):
* Modules/mediastream/RTCPeerConnection.idl:
* WebCore.gypi:
* dom/EventNames.h:
(WebCore):
* dom/EventNames.in:
* dom/EventTargetFactory.in:
* platform/mediastream/RTCDataChannelDescriptor.cpp: Added.
(WebCore):
(WebCore::RTCDataChannelDescriptor::create):
(WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
(WebCore::RTCDataChannelDescriptor::~RTCDataChannelDescriptor):
(WebCore::RTCDataChannelDescriptor::readyStateChanged):
(WebCore::RTCDataChannelDescriptor::dataArrived):
(WebCore::RTCDataChannelDescriptor::error):
* platform/mediastream/RTCDataChannelDescriptor.h: Added.
(WebCore):
(RTCDataChannelDescriptorClient):
(WebCore::RTCDataChannelDescriptorClient::~RTCDataChannelDescriptorClient):
(RTCDataChannelDescriptor):
(ExtraData):
(WebCore::RTCDataChannelDescriptor::ExtraData::~ExtraData):
(WebCore::RTCDataChannelDescriptor::client):
(WebCore::RTCDataChannelDescriptor::setClient):
(WebCore::RTCDataChannelDescriptor::label):
(WebCore::RTCDataChannelDescriptor::reliable):
(WebCore::RTCDataChannelDescriptor::readyState):
(WebCore::RTCDataChannelDescriptor::bufferedAmount):
(WebCore::RTCDataChannelDescriptor::setBufferedAmount):
(WebCore::RTCDataChannelDescriptor::extraData):
(WebCore::RTCDataChannelDescriptor::setExtraData):
* platform/mediastream/RTCPeerConnectionHandler.cpp:
(RTCPeerConnectionHandlerDummy):
(WebCore::RTCPeerConnectionHandlerDummy::openDataChannel):
(WebCore):
(WebCore::RTCPeerConnectionHandlerDummy::sendStringData):
(WebCore::RTCPeerConnectionHandlerDummy::sendRawData):
(WebCore::RTCPeerConnectionHandlerDummy::closeDataChannel):
* platform/mediastream/RTCPeerConnectionHandler.h:
(WebCore):
(RTCPeerConnectionHandler):
* platform/mediastream/RTCPeerConnectionHandlerClient.h:
(WebCore):
(RTCPeerConnectionHandlerClient):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
(WebCore):
(WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
(WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
(WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
(RTCPeerConnectionHandlerChromium):
2012-10-15 Joshua Bell <jsbell@chromium.org>
IndexedDB: Pass type of error causing abort to IDBTransaction::onAbort
https://bugs.webkit.org/show_bug.cgi?id=99097
Reviewed by Tony Chang.
Include the error causing the abort in the callback from back end to
front end so it can be exposed on the IDBTransaction.error property.
Test: lazy-index-population.html
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::setVersionInternal):
(WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
* Modules/indexeddb/IDBDatabaseCallbacks.h:
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::onAbort):
* Modules/indexeddb/IDBTransaction.h:
(IDBTransaction):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::abort):
(WebCore):
(WebCore::IDBTransactionBackendImpl::commit):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionCallbacks.h:
(IDBTransactionCallbacks):
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore):
2012-10-15 Mike Reed <reed@google.com>
In Skia's ImageFrame, only set the isOpaque flag when the frame is complete
https://bugs.webkit.org/show_bug.cgi?id=99326
Reviewed by Stephen White.
No new tests -- existing layouttests exercise this, esp.
png-partial-load-no-alpha.html
webp-partial-load.html
These two fail if skia is told that these are opaque, which it is w/o this CL.
At the moment, Skia has a hack to ignore the opaque-setting, so that these tests will pass as is.
This change is to first, correct webkit to only set isOpaque when the frame is complete, so that
in a later change, Skia can remove the hack, and re-enable its opaqueness optimization.
* platform/image-decoders/skia/ImageDecoderSkia.cpp:
(WebCore::ImageFrame::ImageFrame):
(WebCore::ImageFrame::operator=):
(WebCore::ImageFrame::zeroFillPixelData):
(WebCore::ImageFrame::hasAlpha):
(WebCore::ImageFrame::setHasAlpha):
(WebCore::ImageFrame::setStatus):
2012-10-12 Tony Chang <tony@chromium.org>
input[type=range] as a flex item renders thumb at wrong position
https://bugs.webkit.org/show_bug.cgi?id=98666
Reviewed by Ojan Vafai.
Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
The previous code was trying to set the height to 100% and had a bunch of hacks in
the renderer code to set an explicit height. Using the new flexbox allows us to
remove these renderer hacks.
Test: css3/flexbox/flexitem-stretch-range.html
* css/html.css:
(input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
(input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
(input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
no longer setting top/left in the layout code.
* css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
* css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
* html/RangeInputType.cpp:
(WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
since the height of the control should change when adding/removing a datalist.
* html/shadow/SliderThumbElement.cpp:
(WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
(WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
height when asked. If we have a datalist, we increase the height (same code as before). If we're vertical,
we use the intrinsic size.
(WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
This used to be handled in the thumb's layout method, but I deleted that.
* html/shadow/SliderThumbElement.h:
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::RenderSlider): Use new flexbox.
(WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
and expects the input to also have a height of 1px. It worked before because the height of the input
didn't depend on the height of its children.
* rendering/RenderSlider.h: Fix indentation.
(RenderSlider): Use new flexible box.
2012-10-15 Julien Chaffraix <jchaffraix@webkit.org>
Make RenderTable columns() and columnPositions() return a const reference
https://bugs.webkit.org/show_bug.cgi?id=99339
Reviewed by Abhishek Arya.
The 2 getters were returning a non-const reference. This means that callers
could have modified the Vector's where only FixedTableLayout and AutoTableLayout
were expected to (for columnPositions(), no one should modify columns()).
Refactoring covered by existing tests.
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::layout):
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::layout):
Updated those functions to use the new setter.
* rendering/RenderTable.h:
(WebCore::RenderTable::columns):
(WebCore::RenderTable::columnPositions):
Made the 2 functions return a const reference. They are also const now!
(WebCore::RenderTable::setColumnPosition):
Added this setter.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::addCell):
(WebCore::RenderTableSection::setCellLogicalWidths):
(WebCore::RenderTableSection::dirtiedColumns):
Updated to use a const reference.
2012-10-15 Dan Bernstein <mitz@apple.com>
WebCore part of <rdar://problem/12470680> Font’s fast code path doesn’t support kerning and ligatures
https://bugs.webkit.org/show_bug.cgi?id=99113
Reviewed by Tim Horton.
* WebCore.exp.in: Exported wkCTFontTransformGlyphs.
* platform/graphics/Font.cpp:
(WebCore::Font::width): Added a local GlyphBuffer to pass to floatWidthForSimpleText().
(WebCore::Font::codePath): Rather than always use the complex code path when any typesetting
features are enabled, changed to do so only if WidthIterator doesn’t support this Font’s
typesetting features.
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::getGlyphsAndAdvancesForSimpleText): Added a local GlyphBuffer to pass to
WidthIterator::advance() when advancing to or from the range of interest. Added a FIXME
about how this is not entirely correct when kerning or ligatures are enabled.
(WebCore::Font::selectionRectForSimpleText): Added a local GlyphBuffer to pass to
WidthIterator::advance() when advancing to or from the range of interest.
(WebCore::Font::offsetForPositionForSimpleText): Updated for the change to
WidthIterator::advanceOneCharacter().
* platform/graphics/SimpleFontData.h:
(WebCore::SimpleFontData::applyTransforms): Added. Calls wkCTFontTransformGlyphs() where
available.
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::WidthIterator): Added initializer for the new m_typesettingFeatures
data member.
(OriginalAdvancesForCharacterTreatedAsSpace): Added this data type, used to track spaces and
characters treated as spaces.
(WebCore::applyFontTransforms): Added. Applies shaping and positioning transforms, as
required by the typesetting features, to the glyphs recently added to a GlyphBuffer, while
maintaining the advances of characters that are treated as spaces and the characters
preceding them, if necessary.
(WebCore::WidthIterator::advanceInternal): Added calls to applyFontTransforms() at the end
of each contiguous run of glyphs from the same font. Also added code to maintain a vector
of spaces and characters treated as space.
(WebCore::WidthIterator::advanceOneCharacter): Changed the parameter type from a pointer to
a reference.
* platform/graphics/WidthIterator.h:
(WebCore::WidthIterator::supportsTypesettingFeatures): Added. Returns whether WidthIterator
instances support the typesetting features of the given font. Returns true if the font is
not a screen font and its typesetting features are kerning, ligatures or both.
(WebCore::WidthIterator::shouldApplyFontTransforms): Added. Returns true if the typesetting
features include kerning or ligatures.
* platform/mac/WebCoreSystemInterface.h: Defined wkCTFontTransformOptions and declared
wkCTFontTransformGlyphs.
* platform/mac/WebCoreSystemInterface.mm: Defined wkCTFontTransformGlyphs.
* rendering/svg/SVGTextMetricsBuilder.cpp:
(WebCore::SVGTextMetricsBuilder::advanceSimpleText): Added a local GlyphBuffer to pass to
WidthIterator::advance().
* rendering/svg/SVGTextRunRenderingContext.cpp:
(WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont): Ditto.
2012-10-15 Mark Lam <mark.lam@apple.com>
Fix build broken by r131348.
https://bugs.webkit.org/show_bug.cgi?id=97533.
Not reviewed.
* rendering/RenderView.cpp:
(WebCore::RenderView::layoutContent):
2012-10-15 Andreas Kling <kling@webkit.org>
Remove WTF::fastDeleteAllValues().
<http://webkit.org/b/99345>
Reviewed by Eric Seidel.
It was only used to fastDelete() a class that was already overriding operator delete
by way of WTF_MAKE_FAST_ALLOCATED anyway.
* css/CSSParser.cpp:
(WebCore::CSSParser::~CSSParser):
2012-10-15 Levi Weintraub <leviw@chromium.org>
Regression r130057: incorrect block pref width for alternating InlineFlow and inline Replaced
https://bugs.webkit.org/show_bug.cgi?id=99194
Reviewed by Eric Seidel.
Correctly breaking lines after inline replaced elements that follow inline flows. Previously, alternating
these two types of elements would cause us to increase our preferred width forever.
Test: fast/block/block-with-inline-replaced-children-in-inline-flows.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
2012-10-15 Emil A Eklund <eae@chromium.org>
Revert rounding change in RenderTable::paintObject
https://bugs.webkit.org/show_bug.cgi?id=99364
Reviewed by Levi Weintraub.
Bug 91410 changed RenderTable::paintObject to round the offset
in order to avoid table-background bleed through. The root cause
for that has since been fixed and the rounding workaround is no
longer needed. This change reverts the code change from bug
91410 while preserving the test added as a part of that change
as it now passes without the workaround.
No new tests, covered by fast/sub-pixel/table-rows-no-gaps-expected.html
* rendering/RenderTable.cpp:
(WebCore::RenderTable::paintObject):
Remove unnecessary rounding.
2012-10-15 Michelangelo De Simone <michelangelo@webkit.org>
[CSS Shaders] Add CustomFilterProgramType to CustomFilterProgramInfo
https://bugs.webkit.org/show_bug.cgi?id=96448
Reviewed by Kenneth Rohde Christiansen.
CustomFilterProgramInfo has been refactored to decouple the CustomFilterProgramType from
the CustomFilterProgramMixSetting: m_mixSettings.enabled was redundant in light of the fact
that m_programType encoded the very same information. Dependencies have been updated to reflect
this change.
Current tests already cover this code.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::valueForFilter): The check for mixSettings.enabled has been replaced
by an explicit check for PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE program type.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::createCustomFilterOperation): Setting the program type explicitly while creating a
new filter program.
* platform/graphics/filters/CustomFilterProgram.cpp:
(WebCore::CustomFilterProgram::CustomFilterProgram): CustomFilterProgram's constructor has been updated to
reflect the need of setting the program type explicitly.
(WebCore::CustomFilterProgram::programInfo): Updated to create new CustomFilterProgramInfo setting the program
type explicitly.
* platform/graphics/filters/CustomFilterProgram.h:
* platform/graphics/filters/CustomFilterProgramInfo.cpp:
(WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo): Added m_programType and udpated the related getter.
(WebCore::CustomFilterProgramInfo::hash): ditto
(WebCore::CustomFilterProgramInfo::operator==): MixSettings' equality check is being performed only whether
the CustomFilterProgramInfo's program type is PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE.
* platform/graphics/filters/CustomFilterProgramInfo.h:
(WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings): Got rid of the redundant enabled flag.
(WebCore::CustomFilterProgramMixSettings::operator==): ditto
(CustomFilterProgramInfo):
(WebCore::CustomFilterProgramInfo::programType):
* platform/graphics/filters/CustomFilterValidatedProgram.cpp: The right shader validator is now being
created according to the program type.
(WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
(WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader): The reference to MixSettings' enabled flag
has been replaced with a check for the program type.
(WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader): ditto
* rendering/style/StyleCustomFilterProgram.h:
(WebCore::StyleCustomFilterProgram::create): Updated to be aware of the program type.
(WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): ditto
2012-10-15 Joshua Bell <jsbell@chromium.org>
IndexedDB: Key paths should support non-ASCII identifiers
https://bugs.webkit.org/show_bug.cgi?id=98814
Reviewed by Kentaro Hara.
Update the parser for key paths to use the unicode classes from
the IdentifierName production in ECMA-262.
Test: storage/indexeddb/keypath-basics.html
* Modules/indexeddb/IDBKeyPath.cpp:
(WebCore):
(WebCore::IDBKeyPathLexer::lexIdentifier):
2012-10-15 Yael Aharon <yael.aharon@intel.com>
[EFL][WK2][Texmap] Set gl context in GraphicsContext3DPrivate
https://bugs.webkit.org/show_bug.cgi?id=99325
Reviewed by Kenneth Rohde Christiansen.
Based on a patch from Regina Chung.
This piece of code was lost in the final patch of https://bugs.webkit.org/show_bug.cgi?id=96627.
The gl context is used as key in a hash map and cannot be NULL.
No new tests. Accelerated compositing is not yet enabled in the EFL port.
* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
2012-10-15 Mike West <mkwst@chromium.org>
Console messages containing long URLs should cut at some reasonable length.
https://bugs.webkit.org/show_bug.cgi?id=97980
Reviewed by Pavel Feldman.
This patch lightly modifies the current styling of linkified URLs inside
console messages in order to cut them down to some reasonable size for
viewing. The middle of the URL is snipped out such that the whole
thing fits into 150 characters. This only effects the displayed text;
the link's href isn't changed; the link remains available via the
context menu, accessible via the title attribute, and clicking it still
takes the user directly to the resource in question.
Test: inspector/console/console-trim-long-urls.html
* inspector/front-end/ResourceUtils.js:
(WebInspector.linkifyURLAsNode):
Trim the middle of the URL to bring the whole string down to down
to 150 characters, and set the link's title to the full URL.
2012-10-15 Tony Chang <tony@chromium.org>
Add computeLogicalHeight override methods to RenderView and RenderMultiColumnSet
https://bugs.webkit.org/show_bug.cgi?id=99348
Reviewed by Ojan Vafai.
Add computeLogicalHeight to the last 2 RenderBoxes that override the method.
I'm unable to remove RenderMultiColumnSet::updateLogicalHeight and make the method
non-virtual since it sets ComputedColumnHeight. I'd like to remove this
eventually.
No new tests, this is just a code refactor.
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::updateLogicalHeight): Set computedColumnHeight.
(WebCore::RenderMultiColumnSet::computeLogicalHeight):
(WebCore):
* rendering/RenderMultiColumnSet.h:
(RenderMultiColumnSet):
* rendering/RenderView.cpp:
(WebCore::RenderView::computeLogicalHeight):
* rendering/RenderView.h:
2012-10-15 Eunmi Lee <eunmi15.lee@samsung.com>
[EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries.
https://bugs.webkit.org/show_bug.cgi?id=97173
Reviewed by Gyuyoung Kim.
Remove codes to initialize and shutdown the EFL libraries from
RunLoopEfl.cpp. Initialization and shutdown will be done in the
ewk_main.cpp for ui process and WebProcessMainEfl.cpp for web
process.
No new tests. This patch doesn't change behavior.
* platform/efl/RunLoopEfl.cpp:
(WebCore::RunLoop::RunLoop):
(WebCore::RunLoop::~RunLoop):
2012-10-15 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions]Add support for auto-height regions (without region-breaks)
https://bugs.webkit.org/show_bug.cgi?id=97533
Reviewed by Julien Chaffraix.
Implement the 2pass layout algorithm for computing the height of regions with auto logical height, without taking region breaks into account.
The algorithm is described in the CSSRegions spec: http://dev.w3.org/csswg/css3-regions/#regions-visual-formatting-steps
When the flow thread contains regions with auto logical height, a 2pass layout algorithm is needed to determine the height of auto logical height regions.
In each step of the layout, the regions are laid out before the flow thread is laid out.
In the first pass of layout (normal layout phase), the content of the flow thread is laid out unconstrained in the regions. The region marked as having auto logical height
displays all the corresponding content from the flow thread (taking min-height and max-height into account), and the height of the content displayed
determines the overridden logical content height. Thus, after the first pass of layout, each auto logical height region will store the logical height
value for the second pass in its overridden logical content height property.
In the second pass of layout (constrained flow threads layout phase), when the content of the flow thread is laid out constrained in the regions, the regions are laid out again and they are using
the overridden logical content height from the first pass to update their logical height. Then, the flow thread content is laid out in the associated region chain,
for which the auto logical height regions have proper logical height.
A future patch will properly take region breaks into account for the first pass of layout.
Tests: fast/regions/autoheight-abspos-region.html
fast/regions/autoheight-floatright-region.html
fast/regions/autoheight-horizontal-bt.html
fast/regions/autoheight-inlineblock-normalflow-region.html
fast/regions/autoheight-maxheight-region.html
fast/regions/autoheight-minheight-region.html
fast/regions/autoheight-normalflow-region.html
fast/regions/autoheight-vertical-lr.html
fast/regions/autoheight-vertical-rl.html
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::resetRegionsOverrideLogicalContentHeight):
For all the auto logical height regions, resets their associated overrideLogicalContentHeight.
Those regions are marked as needing layout (along with their ancestors).
(WebCore::FlowThreadController::markAutoLogicalHeightRegionsForLayout):
Mark all the auto logical height regions and their associated flow thread as needing layout (along with their ancestors).
* rendering/FlowThreadController.h:
* rendering/RenderBox.cpp:
Add helper functions to clear out individual logical content width/height.
(WebCore::RenderBox::clearOverrideLogicalContentHeight):
(WebCore::RenderBox::clearOverrideLogicalContentWidth):
(WebCore::RenderBox::clearOverrideSize):
* rendering/RenderBox.h:
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::layout):
(WebCore::RenderFlowThread::computeLogicalHeight):
If the flow thread has an auto logical height region for which we did not yet compute the overrideLogicalContentHeight value,
bail out early since we cannot compute the flow thread logical height.
(WebCore::RenderFlowThread::regionAtBlockOffset):
If the offset is inside an auto logical height region for which we did not compute the overrideLogicalContentHeight, then we consider this region tall enough to accommodate all
the content and we return this region. Otherwise, for an auto logical height region, we use either the overrideLogicalContentHeight (if we are in the first layout phase) or
the logicalHeight if we are in the second layout phase (because the overriderLogicalContentHeight was already transferred into region logical height).
(WebCore::RenderFlowThread::pageLogicalHeightForOffset):
(WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
(WebCore::RenderFlowThread::computeOverflowStateForRegions):
(WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight):
(WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
(WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
(WebCore::RenderFlowThread::addForcedRegionBreak):
Simulate a region break at the specified offset. It will be extended to properly process the region breaks. At this moment, only one auto height region for a thread
can have its height properly computed.
* rendering/RenderFlowThread.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::boxIntersectsRegion):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::updateLogicalHeight):
If the auto logical height region has an overrideLogicalContentHeight and we are in the second pass of layout,
we use the overrideLogicalContentHeight to update the region logical height.
(WebCore::RenderRegion::needsOverrideLogicalContentHeightComputation):
* rendering/RenderRegion.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore::RenderView::layoutContent):
Added a new function to contain the RenderView block layout and flow threads layout.
(WebCore::RenderView::checkLayoutState):
Helper function keeping the original asserts from RenderView, used in more than one place.
(WebCore::RenderView::layout):
* rendering/RenderView.h:
(WebCore::RenderView::normalLayoutPhase):
(WebCore::RenderView::constrainedFlowThreadsLayoutPhase):
2012-10-15 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Fix memory leak in TreeOutline
https://bugs.webkit.org/show_bug.cgi?id=99307
Reviewed by Alexander Pavlov.
Added cleanup of empty buckets in elements cache.
* inspector/front-end/treeoutline.js:
2012-10-15 Eugene Klyuchnikov <eustas.bug@gmail.com>
Web Inspector: Hide useless controls in remote-debugging mode.
https://bugs.webkit.org/show_bug.cgi?id=99300
Reviewed by Vsevolod Vlasov.
"Close inspector" and "change docking mode" buttons seem to be rather
useless in remote debugging mode.
* inspector/front-end/inspector.css:
(body.remote .toolbar-item.close-left, body.remote .toolbar-item.close-right):
(body.remote .dock-status-bar-item):
2012-10-15 Christophe Dumez <christophe.dumez@intel.com>
[EFL][WK2] Implement Favicons API
https://bugs.webkit.org/show_bug.cgi?id=99087
Reviewed by Kenneth Rohde Christiansen.
Moved ewk_util from WebKit to WebCore and rename it
to CairoUtilityEfl so that the code can be shared
between WebKit1 and WebKit2. Some related utility
code was also moved from RenderThemeEfl to
CairoUtilityEfl.
No new tests, no behavior change.
* PlatformEfl.cmake:
* platform/efl/RenderThemeEfl.cpp:
* platform/graphics/efl/CairoUtilitiesEfl.cpp: Renamed from Source/WebKit/efl/ewk/ewk_util.cpp.
(WebCore):
(WebCore::evasObjectFromCairoImageSurface):
(WebCore::createSurfaceForBackingStore):
* platform/graphics/efl/CairoUtilitiesEfl.h: Renamed from Source/WebKit/efl/ewk/ewk_util_private.h.
(WebCore):
2012-10-15 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=99350
REGRESSION (r131238): Repro crash in
WebCore::ScrollingStateTree::removeNode(WebCore::ScrollingStateNode*)
opening pdf page
-and corresponding-
<rdar://problem/12499839>
Reviewed by Simon Fraser.
We have to null-check node here. It won't be found if
clearStateTree() was recently called.
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::detachFromStateTree):
2012-10-15 Jonathan Dong <jonathan.dong@torchmobile.com.cn>
[BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
https://bugs.webkit.org/show_bug.cgi?id=99302
Reviewed by Rob Buis.
RIM PR: 210884
The marco BBLOG() is defined as a no-op in release mode which will
save a function call in the release build.
Internally reviewed by Charles Wei.
No new tests since there's no functional change.
* platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
* platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
(WebCore::GraphicsContext3D::logFrameBufferStatus):
* platform/graphics/blackberry/LayerCompositingThread.cpp:
(WebCore::LayerCompositingThread::getTransformedHolePunchRect):
* platform/graphics/blackberry/VideoLayerWebKitThread.cpp:
(WebCore::VideoLayerWebKitThread::setHolePunchRect):
(WebCore::VideoLayerWebKitThread::boundsChanged):
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::compileShader):
2012-10-15 Christophe Dumez <christophe.dumez@intel.com>
[EFL] Provide logging for OnlineState detection code
https://bugs.webkit.org/show_bug.cgi?id=99299
Reviewed by Kenneth Rohde Christiansen.
Add logging to NetworkStateNotifierEfl.cpp to facilitate
debugging of this functionality.
No new tests, no behavior change.
* platform/network/efl/NetworkStateNotifierEfl.cpp:
(WebCore::NetworkStateNotifier::updateState):
2012-10-15 MORITA Hajime <morrita@google.com>
[Regression r131167] run-webkit-tests fails
https://bugs.webkit.org/show_bug.cgi?id=99279
Reviewed by Kentaro Hara.
CodeGeneratorV8.pm assumed that there are only two objects which have constructor getters and
overlooked TestObj. This fix relaxes that assumption to accept it.
No new tests. Fixing an existing test.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateConstructorGetter):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::TestObjConstructorGetter):
2012-10-15 Joe Mason <jmason@rim.com>
[BlackBerry] Fix WebSockets which was disabled by recent string changes
https://bugs.webkit.org/show_bug.cgi?id=99248
Reviewed by George Staikos.
PR 223681: The signature of FilterStream::notifyStatusReceived changed to take a
BlackBerry::Platform::String instead of a char *. But SocketStreamHandleBlackBerry was not
updated to the new signature, so the status message is not getting passed on because it is
not calling the correct override.
No new tests because this is fixing a regression.
* platform/network/blackberry/SocketStreamHandle.h:
(SocketStreamHandle):
* platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
(WebCore::SocketStreamHandle::notifyStatusReceived):
2012-10-15 Rob Buis <rbuis@rim.com>
Remove RenderTextControl::isSelectableElement
https://bugs.webkit.org/show_bug.cgi?id=99334
Reviewed by Andreas Kling.
It seems this method is not used anymore.
* WebCore.order:
* rendering/RenderTextControl.h:
2012-10-15 Mike West <mkwst@chromium.org>
CSP source expressions should support paths at file-level granularity.
https://bugs.webkit.org/show_bug.cgi?id=99250
Reviewed by Adam Barth.
After a bit of discussion on public-webappsec[1], path support for CSP
source expressions has been tuned to support file-level granularity. In
particular, this means that:
- 'example.com/js' matches a file named 'js'
- 'example.com/js/' matches all files under a directory named 'js'
(note the trailing slash)
- 'example.com/js/file.js' matches only a file named 'file.js'
inside a directory named 'js'
Though this is part of the CSP 1.1 spec, it continues to be exposed
outside the CSP_NEXT flag for back-compatibility.
Test cases have been added to the existing
http/tests/security/contentSecurityPolicy/source-list-parsing-paths-*
in order ensure that the new functionality works correctly.
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPSource::pathMatches):
If the path ends with '/', do a prefix check. If not, check for an
exact match.
(WebCore::CSPSourceList::parsePath):
Don't automatically append a '/' to paths.
2012-10-15 George Staikos <staikos@webkit.org>
[BlackBerry] Adapt to Platform API changes in string handling
https://bugs.webkit.org/show_bug.cgi?id=99248
Reviewed by Yong Li.
Convert usage of WebString, char* and std::string to BlackBerry::Platform::String.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::TextTrack): Fix the build for BlackBerry.
* page/blackberry/SettingsBlackBerry.cpp:
(WebCore):
(WebCore::Settings::initializeDefaultFontFamilies):
* platform/blackberry/LocalizedStringsBlackBerry.cpp:
* platform/blackberry/MIMETypeRegistryBlackBerry.cpp:
(WebCore::MIMETypeRegistry::getMIMETypeForExtension):
(WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
* platform/blackberry/PasteboardBlackBerry.cpp:
(WebCore::Pasteboard::writeSelection):
(WebCore::Pasteboard::writeURL):
(WebCore::Pasteboard::writePlainText):
(WebCore::Pasteboard::plainText):
(WebCore::Pasteboard::documentFragment):
* platform/blackberry/ReadOnlyLatin1String.h: Removed.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::getSupportedTypes):
(WebCore::MediaPlayerPrivate::supportsType):
(WebCore::MediaPlayerPrivate::setCertificatePath):
(WebCore::MediaPlayerPrivate::load):
(WebCore::generateProtectionSpaceFromMMRAuthChallenge):
(WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
(WebCore::MediaPlayerPrivate::onAuthenticationAccepted):
(WebCore::MediaPlayerPrivate::lookupMediaStream):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
(MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::engineDescription):
* platform/network/blackberry/DNSBlackBerry.cpp:
(WebCore::prefetchDNS):
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::initialize):
(WebCore::NetworkJob::notifyStatusReceived):
(WebCore::NetworkJob::notifyHeadersReceived):
(WebCore::NetworkJob::handleNotifyClose):
(WebCore::NetworkJob::sendRequestWithCredentials):
* platform/network/blackberry/NetworkJob.h:
(NetworkJob):
* platform/network/blackberry/NetworkManager.cpp:
(WebCore::NetworkManager::startJob):
* platform/network/blackberry/ResourceRequestBlackBerry.cpp:
(WebCore::ResourceRequest::initializePlatformRequest):
* platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
(WebCore::SocketStreamHandle::SocketStreamHandle):
* platform/text/blackberry/StringBlackBerry.cpp:
(WTF::String::String):
(WTF::String::operator BlackBerry::Platform::String):
* platform/text/blackberry/TextBreakIteratorInternalICUBlackBerry.cpp:
2012-10-15 Jay Civelli <jcivelli@chromium.org>
Calling WebCore::SharedBuffer::append(data, 0) on a shared buffer when
its current position is at a segment boundary (4096) ends up adding an
unitialized segment (with uninitialized memory) to the SharedBuffer.
https://bugs.webkit.org/show_bug.cgi?id=99000
Reviewed by Adam Barth.
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::append):
2012-10-15 Luke Macpherson <macpherson@chromium.org>
Make CSS variable names case-insensitive.
https://bugs.webkit.org/show_bug.cgi?id=98712
Reviewed by Tony Chang.
This patch modifies the parser to normalize all variable names to lower case,
making variable definitions consistent with other property names, which are also case insensitive.
Spec: http://dev.w3.org/csswg/css-variables/#defining-variables
Test: fast/css/variables/case-insensitive.html
* css/CSSParser.cpp:
(WebCore::CSSParser::createPrimitiveNumericValue):
(WebCore):
(WebCore::CSSParser::createPrimitiveVariableNameValue):
(WebCore::CSSParser::parseValidPrimitive):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::storeVariableDeclaration):
(WebCore::CSSParserString::lowerSubstring):
Added function to compute a lower case substring as an AtomicString from a CSSParserString.
* css/CSSParser.h:
(CSSParser):
* css/CSSParserValues.h:
(CSSParserString):
(WebCore::CSSParserString::lowerSubstring):
2012-10-15 Michael Saboff <msaboff@apple.com>
Update RenderText to use String instead of UChar* for text
https://bugs.webkit.org/show_bug.cgi?id=96979
Reviewed by Dan Bernstein.
RenderText now uses a String for text. It keeps a cached LCHar* or UChar* pointer to the
actual text data for performance. Added a characterAt() indexed accessor to RenderText to avoid the
somewhat confusing construct for a RenderText* rt, e.g. (*re)[n] or rt->characters()[n]. This is
now written as rt->characterAt(n).
Enabled patch in the HTML parser to create 8 bit text data. Modified TextRun to create
text runs using 8 bit string data where possible. Added several flavors of RenderBlock::constructTextRun
to create TextRuns from RenderText objects including with an offset. Added an LChar flavor of constructTextRun()
as well. Eliminated the TextRunFlags argument to all but the String flavor as all other flavors used the default
parameter.
Encased the code that creates 8 bit TextRun's in #if USE(8BIT_TEXTRUN). Enabled WTF_USE_8BIT_TEXTRUN
for PLATFORM(MAC). Other platform can update this setting in Platform.h when their platform specific code is
updated to TextRun's with 8 bit data.
Added many 8/16 bit aware paths. Cleanup up some int / unsigned confusion in RenderBlockLineLayout.cpp.
No function change therefore no new tests.
* html/parser/HTMLTokenizer.cpp:
(WebCore::vectorEqualsString):
(WebCore::HTMLTokenizer::nextToken):
* html/parser/HTMLTokenizer.h:
(HTMLTokenizer):
* html/track/WebVTTTokenizer.cpp:
(WebCore::vectorEqualsString):
(WebCore::WebVTTTokenizer::nextToken):
* html/track/WebVTTTokenizer.h:
(WebVTTTokenizer):
* platform/graphics/Font.h:
(WebCore::Font::glyphDataForCharacter):
* platform/graphics/FontFastPath.cpp:
(WebCore):
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun):
(WebCore::TextRun::subRun):
(TextRun):
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::TextLayout::isNeeded):
(WebCore::TextLayout::constructTextRun):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesInInlineDirection):
* rendering/InlineIterator.h:
(WebCore::InlineIterator::atTextParagraphSeparator):
(WebCore::InlineIterator::current):